You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by mh...@apache.org on 2013/09/24 20:33:01 UTC

[25/50] [abbrv] git commit: Error Cleanup

Error Cleanup


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

Branch: refs/heads/branch_4x
Commit: 25ec42a2811e6eb428e804522ffd14e22756c9a1
Parents: 2a56f3b
Author: Paul Irwin <pa...@gmail.com>
Authored: Tue Aug 6 15:05:09 2013 -0400
Committer: Paul Irwin <pa...@gmail.com>
Committed: Tue Aug 6 15:05:09 2013 -0400

----------------------------------------------------------------------
 src/core/Codecs/Compressing/CompressionMode.cs  |   4 +-
 src/core/Codecs/Lucene3x/Lucene3xFields.cs      |  12 +-
 .../Codecs/Lucene3x/Lucene3xNormsProducer.cs    |   2 +-
 .../Codecs/Lucene40/Lucene40PostingsReader.cs   |   2 +-
 .../Codecs/Lucene41/Lucene41PostingsReader.cs   |   2 +-
 src/core/Document/DocumentStoredFieldVisitor.cs |   2 +-
 src/core/Index/AtomicReaderContext.cs           |  10 ++
 src/core/Index/BaseCompositeReader.cs           |   2 +-
 src/core/Index/CheckIndex.cs                    |  10 +-
 src/core/Index/CompositeReader.cs               |   2 +-
 src/core/Index/ConcurrentMergeScheduler.cs      |  12 +-
 src/core/Index/DocFieldProcessor.cs             |   4 +-
 src/core/Index/DocInverterPerField.cs           |   2 +-
 src/core/Index/DocValuesProcessor.cs            |   2 +-
 src/core/Index/DocumentsWriterDeleteQueue.cs    |  10 ++
 src/core/Index/FilterAtomicReader.cs            |   2 +-
 src/core/Index/FilterDirectoryReader.cs         |   4 +-
 src/core/Index/FlushPolicy.cs                   |   2 +-
 src/core/Index/FreqProxTermsWriter.cs           |   2 +-
 src/core/Index/FreqProxTermsWriterPerField.cs   |   2 +-
 src/core/Index/IndexFileDeleter.cs              |   4 +-
 src/core/Index/IndexReader.cs                   |   2 +-
 src/core/Index/IndexUpgrader.cs                 |   2 +-
 src/core/Index/IndexWriter.cs                   |   6 +-
 src/core/Index/MultiReader.cs                   |   2 +-
 src/core/Index/ParallelAtomicReader.cs          |   2 +-
 src/core/Index/ParallelCompositeReader.cs       |   6 +-
 src/core/Index/SegmentReader.cs                 |   2 +-
 src/core/Index/SlowCompositeReaderWrapper.cs    |   2 +-
 src/core/Index/StandardDirectoryReader.cs       |   2 +-
 src/core/Lucene.Net.csproj                      |   1 +
 src/core/Search/ConstantScoreQuery.cs           |   7 +-
 src/core/Search/DocTermOrdsRewriteMethod.cs     |   2 +-
 src/core/Search/FieldCacheRewriteMethod.cs      |   2 +-
 src/core/Search/FieldCacheTermsFilter.cs        |   2 +-
 src/core/Search/FieldComparator.cs              |  18 +--
 src/core/Search/FieldValueFilter.cs             |   2 +-
 src/core/Search/FilteredQuery.cs                |   2 +-
 src/core/Search/FuzzyTermsEnum.cs               |   7 +-
 .../Search/IMaxNonCompetitiveBoostAttribute.cs  |   3 +
 src/core/Search/IndexSearcher.cs                |   2 +-
 src/core/Search/LiveFieldValues.cs              |   2 +-
 .../Search/MaxNonCompetitiveBoostAttribute.cs   |  51 ++++++
 src/core/Search/ReferenceManager.cs             |  14 +-
 src/core/Store/CompoundFileDirectory.cs         |   4 +-
 src/core/Store/DataOutput.cs                    |   6 +-
 src/core/Util/Attribute.cs                      |   9 +-
 .../Util/Automaton/Lev2ParametricDescription.cs |  86 +++++-----
 .../Automaton/Lev2TParametricDescription.cs     | 156 +++++++++----------
 src/core/Util/CharsRef.cs                       |  67 +++++++-
 src/core/Util/FixedBitSet.cs                    |   8 +-
 src/core/Util/Fst/FST.cs                        |   4 +-
 src/core/Util/Fst/FSTEnum.cs                    |   2 +-
 src/core/Util/Fst/ForwardBytesReader.cs         |   2 +-
 src/core/Util/OpenBitSetIterator.cs             |   4 +-
 src/core/Util/Packed/BulkOperationPacked.cs     |   4 +-
 56 files changed, 367 insertions(+), 220 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Codecs/Compressing/CompressionMode.cs
----------------------------------------------------------------------
diff --git a/src/core/Codecs/Compressing/CompressionMode.cs b/src/core/Codecs/Compressing/CompressionMode.cs
index 0982fd0..92f5316 100644
--- a/src/core/Codecs/Compressing/CompressionMode.cs
+++ b/src/core/Codecs/Compressing/CompressionMode.cs
@@ -163,7 +163,7 @@ namespace Lucene.Net.Codecs.Compressing
 
             public override void Compress(sbyte[] bytes, int off, int len, DataOutput output)
             {
-                LZ4.Compress(bytes, off, len, output, ht);
+                LZ4.Compress((byte[])(Array)bytes, off, len, output, ht);
             }
 
         }
@@ -180,7 +180,7 @@ namespace Lucene.Net.Codecs.Compressing
 
             public override void Compress(sbyte[] bytes, int off, int len, DataOutput output)
             {
-                LZ4.CompressHC(bytes, off, len, output, ht);
+                LZ4.CompressHC((byte[])(Array)bytes, off, len, output, ht);
             }
 
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Codecs/Lucene3x/Lucene3xFields.cs
----------------------------------------------------------------------
diff --git a/src/core/Codecs/Lucene3x/Lucene3xFields.cs b/src/core/Codecs/Lucene3x/Lucene3xFields.cs
index 1c6d6e5..6476d00 100644
--- a/src/core/Codecs/Lucene3x/Lucene3xFields.cs
+++ b/src/core/Codecs/Lucene3x/Lucene3xFields.cs
@@ -136,7 +136,7 @@ namespace Lucene.Net.Codecs.Lucene3x
         {
             get
             {
-                return TermsDict.Count;
+                return TermsDict.Size;
             }
         }
 
@@ -329,7 +329,7 @@ namespace Lucene.Net.Codecs.Lucene3x
 
                 // Test if the term we seek'd to in fact found a
                 // surrogate pair at the same position as the E:
-                Term t2 = te.term();
+                Term t2 = te.Term;
 
                 // Cannot be null (or move to next field) because at
                 // "worst" it'd seek to the same term we are on now,
@@ -1129,7 +1129,7 @@ namespace Lucene.Net.Codecs.Lucene3x
             {
                 if (docs.Next())
                 {
-                    return docID = docs.Doc();
+                    return docID = docs.Doc;
                 }
                 else
                 {
@@ -1141,7 +1141,7 @@ namespace Lucene.Net.Codecs.Lucene3x
             {
                 if (docs.SkipTo(target))
                 {
-                    return docID = docs.Doc();
+                    return docID = docs.Doc;
                 }
                 else
                 {
@@ -1198,7 +1198,7 @@ namespace Lucene.Net.Codecs.Lucene3x
             {
                 if (pos.Next())
                 {
-                    return docID = pos.Doc();
+                    return docID = pos.Doc;
                 }
                 else
                 {
@@ -1210,7 +1210,7 @@ namespace Lucene.Net.Codecs.Lucene3x
             {
                 if (pos.SkipTo(target))
                 {
-                    return docID = pos.Doc();
+                    return docID = pos.Doc;
                 }
                 else
                 {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Codecs/Lucene3x/Lucene3xNormsProducer.cs
----------------------------------------------------------------------
diff --git a/src/core/Codecs/Lucene3x/Lucene3xNormsProducer.cs b/src/core/Codecs/Lucene3x/Lucene3xNormsProducer.cs
index add071a..f5b5243 100644
--- a/src/core/Codecs/Lucene3x/Lucene3xNormsProducer.cs
+++ b/src/core/Codecs/Lucene3x/Lucene3xNormsProducer.cs
@@ -13,7 +13,7 @@ namespace Lucene.Net.Codecs.Lucene3x
     internal class Lucene3xNormsProducer : DocValuesProducer
     {
         /** norms header placeholder */
-        internal static readonly byte[] NORMS_HEADER = new byte[] { (byte)'N', (byte)'R', (byte)'M', (byte)(sbyte)-1 };
+        internal static readonly byte[] NORMS_HEADER = new byte[] { (byte)'N', (byte)'R', (byte)'M', unchecked((byte)-1) };
 
         /** Extension of norms file */
         internal const string NORMS_EXTENSION = "nrm";

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Codecs/Lucene40/Lucene40PostingsReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Codecs/Lucene40/Lucene40PostingsReader.cs b/src/core/Codecs/Lucene40/Lucene40PostingsReader.cs
index 1917b75..997aa18 100644
--- a/src/core/Codecs/Lucene40/Lucene40PostingsReader.cs
+++ b/src/core/Codecs/Lucene40/Lucene40PostingsReader.cs
@@ -219,7 +219,7 @@ namespace Lucene.Net.Codecs.Lucene40
             if (CanReuse(reuse, liveDocs))
             {
                 // if (DEBUG) System.out.println("SPR.docs ts=" + termState);
-                return ((SegmentDocsEnumBase)reuse).reset(fieldInfo, (StandardTermState)termState);
+                return ((SegmentDocsEnumBase)reuse).Reset(fieldInfo, (StandardTermState)termState);
             }
             return NewDocsEnum(liveDocs, fieldInfo, (StandardTermState)termState);
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Codecs/Lucene41/Lucene41PostingsReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Codecs/Lucene41/Lucene41PostingsReader.cs b/src/core/Codecs/Lucene41/Lucene41PostingsReader.cs
index 5b13030..4ccc1db 100644
--- a/src/core/Codecs/Lucene41/Lucene41PostingsReader.cs
+++ b/src/core/Codecs/Lucene41/Lucene41PostingsReader.cs
@@ -555,7 +555,7 @@ namespace Lucene.Net.Codecs.Lucene41
                     if (skipper == null)
                     {
                         // Lazy init: first time this enum has ever been used for skipping
-                        skipper = new Lucene41SkipReader(docIn.Clone(),
+                        skipper = new Lucene41SkipReader((IndexInput)docIn.Clone(),
                                                       Lucene41PostingsWriter.maxSkipLevels,
                                                       Lucene41PostingsFormat.BLOCK_SIZE,
                                                       indexHasPos,

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Document/DocumentStoredFieldVisitor.cs
----------------------------------------------------------------------
diff --git a/src/core/Document/DocumentStoredFieldVisitor.cs b/src/core/Document/DocumentStoredFieldVisitor.cs
index 8cb2185..86fdfe6 100644
--- a/src/core/Document/DocumentStoredFieldVisitor.cs
+++ b/src/core/Document/DocumentStoredFieldVisitor.cs
@@ -42,7 +42,7 @@ namespace Lucene.Net.Documents
             ft.StoreTermVectors = fieldInfo.HasVectors;
             ft.Indexed = fieldInfo.IsIndexed;
             ft.OmitNorms = fieldInfo.OmitsNorms;
-            ft.IndexOptions = fieldInfo.IndexOptions;
+            ft.IndexOptions = fieldInfo.IndexOptionsValue.GetValueOrDefault();
             doc.Add(new Field(fieldInfo.name, value, ft));
         }
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/AtomicReaderContext.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/AtomicReaderContext.cs b/src/core/Index/AtomicReaderContext.cs
index 4a804b3..9f69fb6 100644
--- a/src/core/Index/AtomicReaderContext.cs
+++ b/src/core/Index/AtomicReaderContext.cs
@@ -56,5 +56,15 @@ namespace Lucene.Net.Index
                 return reader;
             }
         }
+
+        // .NET Port: Can't change return type on override like Java, so adding helper property
+        // to avoid a bunch of casting.
+        public AtomicReader AtomicReader
+        {
+            get
+            {
+                return reader;
+            }
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/BaseCompositeReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/BaseCompositeReader.cs b/src/core/Index/BaseCompositeReader.cs
index 81f8322..f5cbdb9 100644
--- a/src/core/Index/BaseCompositeReader.cs
+++ b/src/core/Index/BaseCompositeReader.cs
@@ -170,6 +170,6 @@ namespace Lucene.Net.Index
             return subReadersList.Cast<IndexReader>().ToList();
         }
 
-        protected override abstract void DoClose();
+        protected internal override abstract void DoClose();
     }
 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/CheckIndex.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/CheckIndex.cs b/src/core/Index/CheckIndex.cs
index 4ea52da..c74195c 100644
--- a/src/core/Index/CheckIndex.cs
+++ b/src/core/Index/CheckIndex.cs
@@ -384,7 +384,7 @@ namespace Lucene.Net.Index
             }
 
             int numSegments = sis.Count;
-            var segmentsFileName = sis.GetCurrentSegmentFileName();
+            var segmentsFileName = sis.SegmentsFileName;
             IndexInput input = null;
             try
             {
@@ -617,8 +617,8 @@ namespace Lucene.Net.Index
                         infoStream.Write("    test: fields..............");
                     }
                     FieldInfos fieldInfos = reader.FieldInfos;
-                    Msg(infoStream, "OK [" + fieldInfos.Size() + " fields]");
-                    segInfoStat.numFields = fieldInfos.Size();
+                    Msg(infoStream, "OK [" + fieldInfos.Size + " fields]");
+                    segInfoStat.numFields = fieldInfos.Size;
 
                     // Test Field Norms
                     segInfoStat.fieldNormStatus = TestFieldNorms(reader, infoStream);
@@ -680,7 +680,7 @@ namespace Lucene.Net.Index
                 }
 
                 // Keeper
-                result.newSegments.Add((SegmentInfo)info.Clone());
+                result.newSegments.Add((SegmentInfoPerCommit)info.Clone());
             }
 
             if (0 == result.numBadSegments)
@@ -706,7 +706,7 @@ namespace Lucene.Net.Index
         }
 
         /// <summary> Test field norms.</summary>
-        private Status.FieldNormStatus TestFieldNorms(IEnumerable<string> fieldNames, SegmentReader reader)
+        private Status.FieldNormStatus TestFieldNorms(AtomicReader reader, StreamWriter infoStream)
         {
             var status = new Status.FieldNormStatus();
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/CompositeReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/CompositeReader.cs b/src/core/Index/CompositeReader.cs
index 205c48e..4a0d61b 100644
--- a/src/core/Index/CompositeReader.cs
+++ b/src/core/Index/CompositeReader.cs
@@ -74,7 +74,7 @@ namespace Lucene.Net.Index
 
         public abstract override void Document(int docID, StoredFieldVisitor visitor);
 
-        protected abstract override void DoClose();
+        protected internal abstract override void DoClose();
 
         public abstract override int DocFreq(Term term);
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/ConcurrentMergeScheduler.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/ConcurrentMergeScheduler.cs b/src/core/Index/ConcurrentMergeScheduler.cs
index 709e784..aae11e2 100644
--- a/src/core/Index/ConcurrentMergeScheduler.cs
+++ b/src/core/Index/ConcurrentMergeScheduler.cs
@@ -139,8 +139,8 @@ namespace Lucene.Net.Index
                 MergePolicy.OneMerge m1 = t1.CurrentMerge;
                 MergePolicy.OneMerge m2 = t2.CurrentMerge;
 
-                int c1 = m1 == null ? int.MaxValue : m1.TotalDocCount;
-                int c2 = m2 == null ? int.MaxValue : m2.TotalDocCount;
+                int c1 = m1 == null ? int.MaxValue : m1.totalDocCount;
+                int c2 = m2 == null ? int.MaxValue : m2.totalDocCount;
 
                 return c2 - c1;
             }
@@ -224,13 +224,13 @@ namespace Lucene.Net.Index
 
         private bool Verbose()
         {
-            return writer != null && writer.InfoStream.IsEnabled("CMS");
+            return writer != null && writer.infoStream.IsEnabled("CMS");
         }
 
         private void Message(String message)
         {
             if (Verbose())
-                writer.InfoStream.Message("CMS", message);
+                writer.infoStream.Message("CMS", message);
         }
 
         private void InitMergeThreadPriority()
@@ -532,7 +532,7 @@ namespace Lucene.Net.Index
 
                         // Subsequent times through the loop we do any new
                         // merge that writer says is necessary:
-                        merge = tWriter.GetNextMerge();
+                        merge = tWriter.NextMerge;
 
                         // Notify here in case any threads were stalled;
                         // they will notice that the pending merge has
@@ -546,7 +546,7 @@ namespace Lucene.Net.Index
                         {
                             parent.UpdateMergeThreads();
                             if (parent.Verbose())
-                                parent.Message("  merge thread: do another merge " + merge.SegString(merge.segments));
+                                parent.Message("  merge thread: do another merge " + tWriter.SegString(merge.segments));
                         }
                         else
                             break;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/DocFieldProcessor.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/DocFieldProcessor.cs b/src/core/Index/DocFieldProcessor.cs
index 14c41c1..e93ff84 100644
--- a/src/core/Index/DocFieldProcessor.cs
+++ b/src/core/Index/DocFieldProcessor.cs
@@ -230,7 +230,7 @@ namespace Lucene.Net.Index
                     // needs to be more "pluggable" such that if I want
                     // to have a new "thing" my Fields can do, I can
                     // easily add it
-                    FieldInfo fi = fieldInfos.AddOrUpdate(fieldName, field.FieldType);
+                    FieldInfo fi = fieldInfos.AddOrUpdate(fieldName, field.FieldTypeValue);
 
                     fp = new DocFieldProcessorPerField(this, fi);
                     fp.next = fieldHash[hashPos];
@@ -244,7 +244,7 @@ namespace Lucene.Net.Index
                 }
                 else
                 {
-                    fp.fieldInfo.Update(field.FieldType);
+                    fp.fieldInfo.Update(field.FieldTypeValue);
                 }
 
                 if (thisFieldGen != fp.lastGen)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/DocInverterPerField.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/DocInverterPerField.cs b/src/core/Index/DocInverterPerField.cs
index 1d77aff..a2208d6 100644
--- a/src/core/Index/DocInverterPerField.cs
+++ b/src/core/Index/DocInverterPerField.cs
@@ -71,7 +71,7 @@ namespace Lucene.Net.Index
             {
 
                 IIndexableField field = fields[i];
-                IIndexableFieldType fieldType = field.FieldType;
+                IIndexableFieldType fieldType = field.FieldTypeValue;
 
                 // TODO FI: this should be "genericized" to querying
                 // consumer if it wants to see this particular field

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/DocValuesProcessor.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/DocValuesProcessor.cs b/src/core/Index/DocValuesProcessor.cs
index 5b94dce..4b90f37 100644
--- a/src/core/Index/DocValuesProcessor.cs
+++ b/src/core/Index/DocValuesProcessor.cs
@@ -66,7 +66,7 @@ namespace Lucene.Net.Index
         {
             if (writers.Count > 0)
             {
-                DocValuesFormat fmt = state.segmentInfo.Codec.DocValuesFormat();
+                DocValuesFormat fmt = state.segmentInfo.Codec.DocValuesFormat;
                 DocValuesConsumer dvConsumer = fmt.FieldsConsumer(state);
                 bool success = false;
                 try

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/DocumentsWriterDeleteQueue.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/DocumentsWriterDeleteQueue.cs b/src/core/Index/DocumentsWriterDeleteQueue.cs
index 358fcca..59ab8ad 100644
--- a/src/core/Index/DocumentsWriterDeleteQueue.cs
+++ b/src/core/Index/DocumentsWriterDeleteQueue.cs
@@ -432,5 +432,15 @@ namespace Lucene.Net.Index
                 }
             }
         }
+
+        public long BytesUsed
+        {
+            get { return Interlocked.Read(ref globalBufferedDeletes.bytesUsed); }
+        }
+
+        public override string ToString()
+        {
+            return "DWDQ: [ generation: " + generation + " ]";
+        }
     }
 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/FilterAtomicReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/FilterAtomicReader.cs b/src/core/Index/FilterAtomicReader.cs
index 16d49c3..b2d1bc1 100644
--- a/src/core/Index/FilterAtomicReader.cs
+++ b/src/core/Index/FilterAtomicReader.cs
@@ -307,7 +307,7 @@ namespace Lucene.Net.Index
             instance.Document(docID, visitor);
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             instance.Dispose();
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/FilterDirectoryReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/FilterDirectoryReader.cs b/src/core/Index/FilterDirectoryReader.cs
index 938e2f9..a76fbf1 100644
--- a/src/core/Index/FilterDirectoryReader.cs
+++ b/src/core/Index/FilterDirectoryReader.cs
@@ -43,7 +43,7 @@ namespace Lucene.Net.Index
         }
 
         public FilterDirectoryReader(DirectoryReader instance, SubReaderWrapper wrapper)
-            : base(instance.Directory, wrapper.Wrap(instance.GetSequentialSubReaders()))
+            : base(instance.Directory, wrapper.Wrap(instance.GetSequentialSubReaders().OfType<AtomicReader>().ToList()))
         {
             this.instance = instance;
         }
@@ -85,7 +85,7 @@ namespace Lucene.Net.Index
             get { return instance.IndexCommit; }
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             instance.DoClose();
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/FlushPolicy.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/FlushPolicy.cs b/src/core/Index/FlushPolicy.cs
index 3ac40cc..9546022 100644
--- a/src/core/Index/FlushPolicy.cs
+++ b/src/core/Index/FlushPolicy.cs
@@ -40,7 +40,7 @@ namespace Lucene.Net.Index
             // the dwpt which needs to be flushed eventually
             ThreadState maxRamUsingThreadState = perThreadState;
             //assert !perThreadState.flushPending : "DWPT should have flushed";
-            IEnumerator<ThreadState> activePerThreadsIterator = control.AllActiveThreadStates();
+            IEnumerator<ThreadState> activePerThreadsIterator = control.AllActiveThreadStates;
             while (activePerThreadsIterator.MoveNext())
             {
                 ThreadState next = activePerThreadsIterator.Current;

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/FreqProxTermsWriter.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/FreqProxTermsWriter.cs b/src/core/Index/FreqProxTermsWriter.cs
index b5d1d11..586fd35 100644
--- a/src/core/Index/FreqProxTermsWriter.cs
+++ b/src/core/Index/FreqProxTermsWriter.cs
@@ -54,7 +54,7 @@ namespace Lucene.Net.Index
             // Sort by field name
             CollectionUtil.QuickSort(allFields);
 
-            FieldsConsumer consumer = state.segmentInfo.Codec.PostingsFormat().FieldsConsumer(state);
+            FieldsConsumer consumer = state.segmentInfo.Codec.PostingsFormat.FieldsConsumer(state);
 
             bool success = false;
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/FreqProxTermsWriterPerField.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/FreqProxTermsWriterPerField.cs b/src/core/Index/FreqProxTermsWriterPerField.cs
index fed6bea..8726b6f 100644
--- a/src/core/Index/FreqProxTermsWriterPerField.cs
+++ b/src/core/Index/FreqProxTermsWriterPerField.cs
@@ -113,7 +113,7 @@ namespace Lucene.Net.Index
         {
             for (int i = 0; i < count; i++)
             {
-                if (fields[i].FieldType.Indexed)
+                if (fields[i].FieldTypeValue.Indexed)
                 {
                     return true;
                 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/IndexFileDeleter.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/IndexFileDeleter.cs b/src/core/Index/IndexFileDeleter.cs
index b0a3a6c..6f37614 100644
--- a/src/core/Index/IndexFileDeleter.cs
+++ b/src/core/Index/IndexFileDeleter.cs
@@ -213,7 +213,7 @@ namespace Lucene.Net.Index
                             }
                             if (sis != null)
                             {
-                                CommitPoint commitPoint = new CommitPoint(commitsToDelete, directory, sis);
+                                CommitPoint commitPoint = new CommitPoint(this, commitsToDelete, directory, sis);
                                 if (sis.Generation == segmentInfos.Generation)
                                 {
                                     currentCommitPoint = commitPoint;
@@ -253,7 +253,7 @@ namespace Lucene.Net.Index
                 {
                     infoStream.Message("IFD", "forced open of current segments file " + segmentInfos.SegmentsFileName);
                 }
-                currentCommitPoint = new CommitPoint(commitsToDelete, directory, sis);
+                currentCommitPoint = new CommitPoint(this, commitsToDelete, directory, sis);
                 commits.Add(currentCommitPoint);
                 IncRef(sis, true);
             }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/IndexReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/IndexReader.cs b/src/core/Index/IndexReader.cs
index a2c00dd..1276c89 100644
--- a/src/core/Index/IndexReader.cs
+++ b/src/core/Index/IndexReader.cs
@@ -394,7 +394,7 @@ namespace Lucene.Net.Index
         }
 
         /// <summary>Implements close. </summary>
-        protected abstract void DoClose();
+        protected internal abstract void DoClose();
 
         public abstract IndexReaderContext Context { get; }
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/IndexUpgrader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/IndexUpgrader.cs b/src/core/Index/IndexUpgrader.cs
index 52358ff..daec1fe 100644
--- a/src/core/Index/IndexUpgrader.cs
+++ b/src/core/Index/IndexUpgrader.cs
@@ -122,7 +122,7 @@ namespace Lucene.Net.Index
             }
 
             IndexWriterConfig c = (IndexWriterConfig)iwc.Clone();
-            c.MergePolicy = new UpgradeIndexMergePolicy(c.MergePolicy);
+            c.SetMergePolicy(new UpgradeIndexMergePolicy(c.MergePolicy));
             c.SetIndexDeletionPolicy(new KeepOnlyLastCommitDeletionPolicy());
 
             IndexWriter w = new IndexWriter(dir, c);

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/IndexWriter.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/IndexWriter.cs b/src/core/Index/IndexWriter.cs
index 2f4c37b..99c1d33 100644
--- a/src/core/Index/IndexWriter.cs
+++ b/src/core/Index/IndexWriter.cs
@@ -1176,7 +1176,7 @@ namespace Lucene.Net.Index
                     // Composite reader: lookup sub-reader and re-base docID:
                     IList<AtomicReaderContext> leaves = readerIn.Leaves;
                     int subIndex = ReaderUtil.SubIndex(docID, leaves);
-                    reader = leaves[subIndex].Reader;
+                    reader = leaves[subIndex].AtomicReader;
                     docID -= leaves[subIndex].docBase;
                     //assert docID >= 0;
                     //assert docID < reader.maxDoc();
@@ -1742,7 +1742,7 @@ namespace Lucene.Net.Index
                 mergeScheduler.Dispose();
 
                 bufferedDeletesStream.Clear();
-                docWriter.Close(); // mark it as closed first to prevent subsequent indexing actions/flushes 
+                docWriter.Dispose(); // mark it as closed first to prevent subsequent indexing actions/flushes 
                 docWriter.Abort(); // don't sync on IW here
                 lock (this)
                 {
@@ -2196,7 +2196,7 @@ namespace Lucene.Net.Index
                     numDocs += indexReader.NumDocs;
                     foreach (AtomicReaderContext ctx in indexReader.Leaves)
                     {
-                        mergeReaders.Add(ctx.Reader);
+                        mergeReaders.Add(ctx.AtomicReader);
                     }
                 }
                 IOContext context = new IOContext(new MergeInfo(numDocs, -1, true, -1));

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/MultiReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/MultiReader.cs b/src/core/Index/MultiReader.cs
index f1c31cc..c6c3778 100644
--- a/src/core/Index/MultiReader.cs
+++ b/src/core/Index/MultiReader.cs
@@ -64,7 +64,7 @@ namespace Lucene.Net.Index
             }
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             System.IO.IOException ioe = null;
             foreach (IndexReader r in GetSequentialSubReaders())

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/ParallelAtomicReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/ParallelAtomicReader.cs b/src/core/Index/ParallelAtomicReader.cs
index dc49acd..ea4fd73 100644
--- a/src/core/Index/ParallelAtomicReader.cs
+++ b/src/core/Index/ParallelAtomicReader.cs
@@ -219,7 +219,7 @@ namespace Lucene.Net.Index
             return fields;
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             System.IO.IOException ioe = null;
             foreach (AtomicReader reader in completeReaderSet)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/ParallelCompositeReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/ParallelCompositeReader.cs b/src/core/Index/ParallelCompositeReader.cs
index c3452b0..c9aaf7c 100644
--- a/src/core/Index/ParallelCompositeReader.cs
+++ b/src/core/Index/ParallelCompositeReader.cs
@@ -113,7 +113,7 @@ namespace Lucene.Net.Index
             {
             }
 
-            protected override void DoClose()
+            protected internal override void DoClose()
             {
             }
         }
@@ -125,7 +125,7 @@ namespace Lucene.Net.Index
             {
             }
 
-            protected override void DoClose()
+            protected internal override void DoClose()
             {
             }
         }
@@ -160,7 +160,7 @@ namespace Lucene.Net.Index
             }
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             System.IO.IOException ioe = null;
             foreach (IndexReader reader in completeReaderSet)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/SegmentReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/SegmentReader.cs b/src/core/Index/SegmentReader.cs
index ba84bf4..cf4f7f9 100644
--- a/src/core/Index/SegmentReader.cs
+++ b/src/core/Index/SegmentReader.cs
@@ -103,7 +103,7 @@ namespace Lucene.Net.Index
             }
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             core.DecRef();
         }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/SlowCompositeReaderWrapper.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/SlowCompositeReaderWrapper.cs b/src/core/Index/SlowCompositeReaderWrapper.cs
index 6542b13..958a627 100644
--- a/src/core/Index/SlowCompositeReaderWrapper.cs
+++ b/src/core/Index/SlowCompositeReaderWrapper.cs
@@ -221,7 +221,7 @@ namespace Lucene.Net.Index
             }
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             // TODO: as this is a wrapper, should we really close the delegate?
             in_renamed.Dispose();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Index/StandardDirectoryReader.cs
----------------------------------------------------------------------
diff --git a/src/core/Index/StandardDirectoryReader.cs b/src/core/Index/StandardDirectoryReader.cs
index dd9c006..4ec5e91 100644
--- a/src/core/Index/StandardDirectoryReader.cs
+++ b/src/core/Index/StandardDirectoryReader.cs
@@ -415,7 +415,7 @@ namespace Lucene.Net.Index
             }
         }
 
-        protected override void DoClose()
+        protected internal override void DoClose()
         {
             Exception firstExc = null;
             foreach (AtomicReader r in GetSequentialSubReaders())

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Lucene.Net.csproj
----------------------------------------------------------------------
diff --git a/src/core/Lucene.Net.csproj b/src/core/Lucene.Net.csproj
index de68b1d..4b17cab 100644
--- a/src/core/Lucene.Net.csproj
+++ b/src/core/Lucene.Net.csproj
@@ -585,6 +585,7 @@
     <Compile Include="Search\MatchAllDocsQuery.cs">
       <SubType>Code</SubType>
     </Compile>
+    <Compile Include="Search\MaxNonCompetitiveBoostAttribute.cs" />
     <Compile Include="Search\MinShouldMatchSumScorer.cs" />
     <Compile Include="Search\MultiPhraseQuery.cs">
       <SubType>Code</SubType>

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/ConstantScoreQuery.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/ConstantScoreQuery.cs b/src/core/Search/ConstantScoreQuery.cs
index 17ccd6d..26cfef6 100644
--- a/src/core/Search/ConstantScoreQuery.cs
+++ b/src/core/Search/ConstantScoreQuery.cs
@@ -112,7 +112,8 @@ namespace Lucene.Net.Search
                 get
                 {
                     // we calculate sumOfSquaredWeights of the inner weight, but ignore it (just to initialize everything)
-                    if (innerWeight != null) innerWeight.ValueForNormalization;
+                    // .NET Port: was this a bug in the Java code?
+                    //if (innerWeight != null) innerWeight.ValueForNormalization;
                     queryWeight = enclosingInstance.Boost;
                     return queryWeight * queryWeight;
                 }
@@ -149,7 +150,7 @@ namespace Lucene.Net.Search
                 {
                     return null;
                 }
-                return new ConstantScorer(disi, this, queryWeight);
+                return new ConstantScorer(enclosingInstance, disi, this, queryWeight);
             }
 
             public override bool ScoresDocsOutOfOrder
@@ -162,7 +163,7 @@ namespace Lucene.Net.Search
 
             public override Explanation Explain(AtomicReaderContext context, int doc)
             {
-                Scorer cs = Scorer(context, true, false, context.Reader.LiveDocs);
+                Scorer cs = Scorer(context, true, false, ((AtomicReader)context.Reader).LiveDocs);
                 bool exists = (cs != null && cs.Advance(doc) == doc);
 
                 ComplexExplanation result = new ComplexExplanation();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/DocTermOrdsRewriteMethod.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/DocTermOrdsRewriteMethod.cs b/src/core/Search/DocTermOrdsRewriteMethod.cs
index fcf85ab..f30a367 100644
--- a/src/core/Search/DocTermOrdsRewriteMethod.cs
+++ b/src/core/Search/DocTermOrdsRewriteMethod.cs
@@ -57,7 +57,7 @@ namespace Lucene.Net.Search
 
             public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
             {
-                SortedSetDocValues docTermOrds = FieldCache.DEFAULT.GetDocTermOrds(context.Reader, query.Field);
+                SortedSetDocValues docTermOrds = FieldCache.DEFAULT.GetDocTermOrds((AtomicReader)context.Reader, query.Field);
                 // Cannot use FixedBitSet because we require long index (ord):
                 OpenBitSet termSet = new OpenBitSet(docTermOrds.ValueCount);
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/FieldCacheRewriteMethod.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/FieldCacheRewriteMethod.cs b/src/core/Search/FieldCacheRewriteMethod.cs
index d86bbfc..03a57a5 100644
--- a/src/core/Search/FieldCacheRewriteMethod.cs
+++ b/src/core/Search/FieldCacheRewriteMethod.cs
@@ -54,7 +54,7 @@ namespace Lucene.Net.Search
 
             public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
             {
-                SortedDocValues fcsi = FieldCache.DEFAULT.GetTermsIndex(context.Reader, query.Field);
+                SortedDocValues fcsi = FieldCache.DEFAULT.GetTermsIndex(context.AtomicReader, query.Field);
                 // Cannot use FixedBitSet because we require long index (ord):
                 OpenBitSet termSet = new OpenBitSet(fcsi.ValueCount);
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/FieldCacheTermsFilter.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/FieldCacheTermsFilter.cs b/src/core/Search/FieldCacheTermsFilter.cs
index d1d6303..0776d2f 100644
--- a/src/core/Search/FieldCacheTermsFilter.cs
+++ b/src/core/Search/FieldCacheTermsFilter.cs
@@ -120,7 +120,7 @@ namespace Lucene.Net.Search
 
         public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
         {
-            SortedDocValues fcsi = FieldCache.GetTermsIndex(context.Reader, field);
+            SortedDocValues fcsi = FieldCache.GetTermsIndex(context.AtomicReader, field);
             FixedBitSet bits = new FixedBitSet(fcsi.ValueCount);
             for (int i = 0; i < terms.Length; i++)
             {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/FieldComparator.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/FieldComparator.cs b/src/core/Search/FieldComparator.cs
index 59ab91e..7caead2 100644
--- a/src/core/Search/FieldComparator.cs
+++ b/src/core/Search/FieldComparator.cs
@@ -223,7 +223,7 @@ namespace Lucene.Net.Search
             {
                 if (missingValue != null)
                 {
-                    docsWithField = FieldCache.DEFAULT.GetDocsWithField(context.Reader, field);
+                    docsWithField = FieldCache.DEFAULT.GetDocsWithField(context.AtomicReader, field);
                     // optimization to remove unneeded checks on the bit interface:
                     if (docsWithField is Bits.MatchAllBits)
                     {
@@ -289,7 +289,7 @@ namespace Lucene.Net.Search
             {
                 // NOTE: must do this before calling super otherwise
                 // we compute the docsWithField Bits twice!
-                currentReaderValues = FieldCache.DEFAULT.GetBytes(context.Reader, field, parser, missingValue != null);
+                currentReaderValues = FieldCache.DEFAULT.GetBytes(context.AtomicReader, field, parser, missingValue != null);
                 return base.SetNextReader(context);
             }
 
@@ -369,7 +369,7 @@ namespace Lucene.Net.Search
             {
                 // NOTE: must do this before calling super otherwise
                 // we compute the docsWithField Bits twice!
-                currentReaderValues = FieldCache.DEFAULT.GetDoubles(context.Reader, field, parser, missingValue != null);
+                currentReaderValues = FieldCache.DEFAULT.GetDoubles(context.AtomicReader, field, parser, missingValue != null);
                 return base.SetNextReader(context);
             }
 
@@ -450,7 +450,7 @@ namespace Lucene.Net.Search
             {
                 // NOTE: must do this before calling super otherwise
                 // we compute the docsWithField Bits twice!
-                currentReaderValues = FieldCache.DEFAULT.GetFloats(context.Reader, field, parser, missingValue != null);
+                currentReaderValues = FieldCache.DEFAULT.GetFloats(context.AtomicReader, field, parser, missingValue != null);
                 return base.SetNextReader(context);
             }
 
@@ -530,7 +530,7 @@ namespace Lucene.Net.Search
             {
                 // NOTE: must do this before calling super otherwise
                 // we compute the docsWithField Bits twice!
-                currentReaderValues = FieldCache.DEFAULT.GetShorts(context.Reader, field, parser, missingValue != null);
+                currentReaderValues = FieldCache.DEFAULT.GetShorts(context.AtomicReader, field, parser, missingValue != null);
                 return base.SetNextReader(context);
             }
 
@@ -642,7 +642,7 @@ namespace Lucene.Net.Search
             {
                 // NOTE: must do this before calling super otherwise
                 // we compute the docsWithField Bits twice!
-                currentReaderValues = FieldCache.DEFAULT.GetInts(context.Reader, field, parser, missingValue != null);
+                currentReaderValues = FieldCache.DEFAULT.GetInts(context.AtomicReader, field, parser, missingValue != null);
                 return base.SetNextReader(context);
             }
 
@@ -761,7 +761,7 @@ namespace Lucene.Net.Search
             {
                 // NOTE: must do this before calling super otherwise
                 // we compute the docsWithField Bits twice!
-                currentReaderValues = FieldCache.DEFAULT.GetLongs(context.Reader, field, parser, missingValue != null);
+                currentReaderValues = FieldCache.DEFAULT.GetLongs(context.AtomicReader, field, parser, missingValue != null);
                 return base.SetNextReader(context);
             }
 
@@ -1134,7 +1134,7 @@ namespace Lucene.Net.Search
             public override FieldComparator<BytesRef> SetNextReader(AtomicReaderContext context)
             {
                 int docBase = context.docBase;
-                termsIndex = FieldCache.DEFAULT.GetTermsIndex(context.Reader, field);
+                termsIndex = FieldCache.DEFAULT.GetTermsIndex(context.AtomicReader, field);
                 FieldComparator<BytesRef> perSegComp = new AnyOrdComparator(this, termsIndex, docBase);
                 currentReaderGen++;
                 if (bottomSlot != -1)
@@ -1254,7 +1254,7 @@ namespace Lucene.Net.Search
 
             public override FieldComparator<BytesRef> SetNextReader(AtomicReaderContext context)
             {
-                docTerms = FieldCache.DEFAULT.GetTerms(context.Reader, field);
+                docTerms = FieldCache.DEFAULT.GetTerms(context.AtomicReader, field);
                 return this;
             }
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/FieldValueFilter.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/FieldValueFilter.cs b/src/core/Search/FieldValueFilter.cs
index a38f93c..fcccda0 100644
--- a/src/core/Search/FieldValueFilter.cs
+++ b/src/core/Search/FieldValueFilter.cs
@@ -35,7 +35,7 @@ namespace Lucene.Net.Search
 
         public override DocIdSet GetDocIdSet(AtomicReaderContext context, IBits acceptDocs)
         {
-            IBits docsWithField = FieldCache.DEFAULT.GetDocsWithField(context.Reader, field);
+            IBits docsWithField = FieldCache.DEFAULT.GetDocsWithField(context.AtomicReader, field);
 
             if (negate)
             {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/FilteredQuery.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/FilteredQuery.cs b/src/core/Search/FilteredQuery.cs
index 076e7bc..515b2b9 100644
--- a/src/core/Search/FilteredQuery.cs
+++ b/src/core/Search/FilteredQuery.cs
@@ -118,7 +118,7 @@ namespace Lucene.Net.Search
             {
                 Explanation inner = weight.Explain(ir, i);
                 Filter f = enclosingInstance.filter;
-                DocIdSet docIdSet = f.GetDocIdSet(ir, ir.Reader.LiveDocs);
+                DocIdSet docIdSet = f.GetDocIdSet(ir, ir.AtomicReader.LiveDocs);
                 DocIdSetIterator docIdSetIterator = docIdSet == null ? DocIdSet.EMPTY_DOCIDSET.Iterator() : docIdSet.Iterator();
                 if (docIdSetIterator == null)
                 {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/FuzzyTermsEnum.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/FuzzyTermsEnum.cs b/src/core/Search/FuzzyTermsEnum.cs
index 4aa6ff0..dd680af 100644
--- a/src/core/Search/FuzzyTermsEnum.cs
+++ b/src/core/Search/FuzzyTermsEnum.cs
@@ -21,6 +21,7 @@ using Lucene.Net.Util;
 using Lucene.Net.Util.Automaton;
 using System;
 using System.Collections.Generic;
+using System.Linq;
 using IndexReader = Lucene.Net.Index.IndexReader;
 using Term = Lucene.Net.Index.Term;
 
@@ -119,7 +120,7 @@ namespace Lucene.Net.Search
 
         protected TermsEnum GetAutomatonEnum(int editDistance, BytesRef lastTerm)
         {
-            List<CompiledAutomaton> runAutomata = InitAutomata(editDistance);
+            IList<CompiledAutomaton> runAutomata = InitAutomata(editDistance);
             if (editDistance < runAutomata.Count)
             {
                 //if (BlockTreeTermsWriter.DEBUG) System.out.println("FuzzyTE.getAEnum: ed=" + editDistance + " lastTerm=" + (lastTerm==null ? "null" : lastTerm.utf8ToString()));
@@ -133,9 +134,9 @@ namespace Lucene.Net.Search
             }
         }
 
-        private List<CompiledAutomaton> InitAutomata(int maxDistance)
+        private IList<CompiledAutomaton> InitAutomata(int maxDistance)
         {
-            List<CompiledAutomaton> runAutomata = dfaAtt.Automata;
+            IList<CompiledAutomaton> runAutomata = dfaAtt.Automata;
             //System.out.println("cached automata size: " + runAutomata.size());
             if (runAutomata.Count <= maxDistance &&
                 maxDistance <= LevenshteinAutomata.MAXIMUM_SUPPORTED_DISTANCE)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/IMaxNonCompetitiveBoostAttribute.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/IMaxNonCompetitiveBoostAttribute.cs b/src/core/Search/IMaxNonCompetitiveBoostAttribute.cs
index 0d0b8f7..f79c618 100644
--- a/src/core/Search/IMaxNonCompetitiveBoostAttribute.cs
+++ b/src/core/Search/IMaxNonCompetitiveBoostAttribute.cs
@@ -4,5 +4,8 @@ namespace Lucene.Net.Search
 {
     public interface IMaxNonCompetitiveBoostAttribute : IAttribute
     {
+        float MaxNonCompetitiveBoost { get; set; }
+
+        BytesRef CompetitiveTerm { get; set; }
     }
 }

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/IndexSearcher.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/IndexSearcher.cs b/src/core/Search/IndexSearcher.cs
index d4bc615..03f5ccc 100644
--- a/src/core/Search/IndexSearcher.cs
+++ b/src/core/Search/IndexSearcher.cs
@@ -383,7 +383,7 @@ namespace Lucene.Net.Search
                     // continue with the following leaf
                     continue;
                 }
-                Scorer scorer = weight.Scorer(ctx, !collector.AcceptsDocsOutOfOrder, true, ctx.Reader.LiveDocs);
+                Scorer scorer = weight.Scorer(ctx, !collector.AcceptsDocsOutOfOrder, true, ctx.AtomicReader.LiveDocs);
                 if (scorer != null)
                 {
                     try

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/LiveFieldValues.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/LiveFieldValues.cs b/src/core/Search/LiveFieldValues.cs
index e745711..2ef729e 100644
--- a/src/core/Search/LiveFieldValues.cs
+++ b/src/core/Search/LiveFieldValues.cs
@@ -4,7 +4,7 @@ using Lucene.Net.Support;
 
 namespace Lucene.Net.Search
 {
-    public abstract class LiveFieldValues<T> : ReferenceManager<T>.RefreshListener, IDisposable
+    public abstract class LiveFieldValues<T> : ReferenceManager.RefreshListener, IDisposable
         where T : class
     {
         private volatile IDictionary<string, T> current = new ConcurrentHashMap<string, T>();

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/MaxNonCompetitiveBoostAttribute.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/MaxNonCompetitiveBoostAttribute.cs b/src/core/Search/MaxNonCompetitiveBoostAttribute.cs
new file mode 100644
index 0000000..4c3636f
--- /dev/null
+++ b/src/core/Search/MaxNonCompetitiveBoostAttribute.cs
@@ -0,0 +1,51 @@
+using Lucene.Net.Util;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace Lucene.Net.Search
+{
+    public sealed class MaxNonCompetitiveBoostAttribute : Lucene.Net.Util.Attribute, IMaxNonCompetitiveBoostAttribute
+    {
+        private float maxNonCompetitiveBoost = float.NegativeInfinity;
+        private BytesRef competitiveTerm = null;
+        
+        public float MaxNonCompetitiveBoost
+        {
+            get
+            {
+                return maxNonCompetitiveBoost;
+            }
+            set
+            {
+                this.maxNonCompetitiveBoost = value;
+            }
+        }
+
+        public BytesRef CompetitiveTerm
+        {
+            get
+            {
+                return competitiveTerm;
+            }
+            set
+            {
+                this.competitiveTerm = value;
+            }
+        }
+
+        public override void Clear()
+        {
+            maxNonCompetitiveBoost = float.NegativeInfinity;
+            competitiveTerm = null;
+        }
+
+        public override void CopyTo(Util.Attribute target)
+        {
+            MaxNonCompetitiveBoostAttribute t = (MaxNonCompetitiveBoostAttribute)target;
+            t.MaxNonCompetitiveBoost = maxNonCompetitiveBoost;
+            t.CompetitiveTerm = competitiveTerm;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Search/ReferenceManager.cs
----------------------------------------------------------------------
diff --git a/src/core/Search/ReferenceManager.cs b/src/core/Search/ReferenceManager.cs
index 8dcacc2..1741eeb 100644
--- a/src/core/Search/ReferenceManager.cs
+++ b/src/core/Search/ReferenceManager.cs
@@ -15,7 +15,7 @@ namespace Lucene.Net.Search
 		//private Lock refreshLock = new ReentrantLock();
 		private readonly ReentrantLock refreshLock = new ReentrantLock();
 		
-        private readonly ISet<RefreshListener> refreshListeners = new ConcurrentHashSet<RefreshListener>(new IdentityComparer<RefreshListener>());
+        private readonly ISet<ReferenceManager.RefreshListener> refreshListeners = new ConcurrentHashSet<ReferenceManager.RefreshListener>(new IdentityComparer<ReferenceManager.RefreshListener>());
 
 		private void EnsureOpen()
 		{
@@ -263,7 +263,7 @@ namespace Lucene.Net.Search
 
 		private void NotifyRefreshListenersBefore()
 		{
-			foreach (RefreshListener refreshListener in refreshListeners)
+			foreach (ReferenceManager.RefreshListener refreshListener in refreshListeners)
 			{
 				refreshListener.BeforeRefresh();
 			}
@@ -271,7 +271,7 @@ namespace Lucene.Net.Search
 
 		private void NotifyRefreshListenersRefreshed(bool didRefresh)
 		{
-			foreach (RefreshListener refreshListener in refreshListeners)
+            foreach (ReferenceManager.RefreshListener refreshListener in refreshListeners)
 			{
 				refreshListener.AfterRefresh(didRefresh);
 			}
@@ -280,7 +280,7 @@ namespace Lucene.Net.Search
 		/**
 		 * Adds a listener, to be notified when a reference is refreshed/swapped.
 		 */
-		public void AddListener(RefreshListener listener)
+        public void AddListener(ReferenceManager.RefreshListener listener)
 		{
 			if (listener == null)
 			{
@@ -292,7 +292,7 @@ namespace Lucene.Net.Search
 		/**
 		 * Remove a listener added with {@link #addListener(RefreshListener)}.
 		 */
-		public void RemoveListener(RefreshListener listener)
+        public void RemoveListener(ReferenceManager.RefreshListener listener)
 		{
 			if (listener == null)
 			{
@@ -301,6 +301,10 @@ namespace Lucene.Net.Search
 			refreshListeners.Remove(listener);
 		}
 
+    }
+    // .NET Port: non-generic type to hold RefreshListener
+    public static class ReferenceManager
+    {
 		/** Use to receive notification when a refresh has
 		 *  finished.  See {@link #addListener}. */
 		public interface RefreshListener

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Store/CompoundFileDirectory.cs
----------------------------------------------------------------------
diff --git a/src/core/Store/CompoundFileDirectory.cs b/src/core/Store/CompoundFileDirectory.cs
index cb92f8e..6bfa431 100644
--- a/src/core/Store/CompoundFileDirectory.cs
+++ b/src/core/Store/CompoundFileDirectory.cs
@@ -30,7 +30,7 @@ namespace Lucene.Net.Store
         {
             this.directory = directory;
             this.fileName = fileName;
-            this.readBufferSize = BufferedIndexInput.BufferSize(context);
+            this.readBufferSize = BufferedIndexInput.GetBufferSize(context);
             this.isOpen = false;
             this.openForWrite = openForWrite;
             if (!openForWrite)
@@ -65,7 +65,7 @@ namespace Lucene.Net.Store
         private static readonly byte CODEC_MAGIC_BYTE1 = (byte)Number.URShift(CodecUtil.CODEC_MAGIC, 24);
         private static readonly byte CODEC_MAGIC_BYTE2 = (byte)Number.URShift(CodecUtil.CODEC_MAGIC, 16);
         private static readonly byte CODEC_MAGIC_BYTE3 = (byte)Number.URShift(CodecUtil.CODEC_MAGIC, 8);
-        private static readonly byte CODEC_MAGIC_BYTE4 = (byte)CodecUtil.CODEC_MAGIC;
+        private static readonly byte CODEC_MAGIC_BYTE4 = unchecked((byte)CodecUtil.CODEC_MAGIC);
 
         private static IDictionary<string, FileEntry> ReadEntries(IndexInputSlicer handle, Directory dir, string name)
         {

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Store/DataOutput.cs
----------------------------------------------------------------------
diff --git a/src/core/Store/DataOutput.cs b/src/core/Store/DataOutput.cs
index cb78f34..2368b6f 100644
--- a/src/core/Store/DataOutput.cs
+++ b/src/core/Store/DataOutput.cs
@@ -19,11 +19,7 @@ namespace Lucene.Net.Store
 
         public void WriteBytes(sbyte[] b, int offset, int length)
         {
-            // helper method to account for java's byte being signed
-            byte[] ubytes = new byte[b.Length];
-            Support.Buffer.BlockCopy(b, 0, ubytes, 0, b.Length);
-
-            WriteBytes(ubytes, offset, length);
+            WriteBytes((byte[])(Array)b, offset, length);
         }
 
         public virtual void WriteBytes(byte[] b, int length)

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Util/Attribute.cs
----------------------------------------------------------------------
diff --git a/src/core/Util/Attribute.cs b/src/core/Util/Attribute.cs
index 1f11a3a..c022339 100644
--- a/src/core/Util/Attribute.cs
+++ b/src/core/Util/Attribute.cs
@@ -83,14 +83,19 @@ namespace Lucene.Net.Util
         public virtual void ReflectWith(IAttributeReflector reflector)
         {
             Type clazz = this.GetType();
-            LinkedList<Type> interfaces = AttributeSource.GetAttributeInterfaces(clazz);
+            LinkedList<WeakReference> interfaces = AttributeSource.GetAttributeInterfaces(clazz);
 
             if (interfaces.Count != 1)
             {
                 throw new NotSupportedException(clazz.Name + " implements more than one Attribute interface, the default ReflectWith() implementation cannot handle this.");
             }
 
-            Type interf = interfaces.First.Value;
+            object target = interfaces.First.Value.Get();
+
+            if (target == null)
+                return;
+
+            Type interf = target as Type;
 
             FieldInfo[] fields = clazz.GetFields(BindingFlags.Instance | BindingFlags.Public);
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Util/Automaton/Lev2ParametricDescription.cs
----------------------------------------------------------------------
diff --git a/src/core/Util/Automaton/Lev2ParametricDescription.cs b/src/core/Util/Automaton/Lev2ParametricDescription.cs
index c68a80a..85a9741 100644
--- a/src/core/Util/Automaton/Lev2ParametricDescription.cs
+++ b/src/core/Util/Automaton/Lev2ParametricDescription.cs
@@ -110,9 +110,9 @@ namespace Lucene.Net.Util.Automaton
 
         // 8 vectors; 21 states per vector; array length = 168
         private readonly static long[] toStates3 = new long[] /*5 bits per value */ {
-            0x380e014a051404L,0xe28245009451140L,(long)0x8a26880098a6268cL,0x180a288ca0246213L,
+            0x380e014a051404L,0xe28245009451140L,unchecked((long)0x8a26880098a6268cL),0x180a288ca0246213L,
             0x494053284a1080e1L,0x510265a89c311940L,0x4218c41188a6509cL,0x6340c4211c4710dL,
-            (long)0xa168398471882a12L,0x104c841c683a0425L,0x3294472904351483L,(long)0xe6290620a84a20d0L,
+            unchecked((long)0xa168398471882a12L),0x104c841c683a0425L,0x3294472904351483L,unchecked((long)0xe6290620a84a20d0L),
             0x1441a0ea2896a4a0L,0x32L
           };
         private readonly static long[] offsetIncrs3 = new long[] /*2 bits per value */ {
@@ -123,59 +123,59 @@ namespace Lucene.Net.Util.Automaton
         // 16 vectors; 30 states per vector; array length = 480
         private readonly static long[] toStates4 = new long[] /*5 bits per value */ {
             0x380e014a051404L,0xaa015452940L,0x55014501000000L,0x1843ddc771085c07L,
-            0x7141200040108405L,0x52b44004c5313460L,0x401080200063115cL,(long)0x85314c4d181c5048L,
-            0x1440190a3e5c7828L,0x28a232809100a21L,(long)0xa028ca2a84203846L,(long)0xca0240010800108aL,
-            (long)0xc7b4205c1580a508L,0x1021090251846b6L,0x4cb513862328090L,0x210863128ca2b8a2L,
-            0x4e188ca024402940L,0xa6b6c7c520532d4L,(long)0x8c41101451150219L,(long)0xa0c4211c4710d421L,
-            0x2108421094e15063L,(long)0x8f13c43708631044L,0x18274d908c611631L,0x1cc238c411098263L,
-            0x450e3a1d0212d0b4L,0x31050242048108c6L,0xfa318b42d07308eL,(long)0xa8865182356907c6L,
-            0x1ca410d4520c4140L,0x2954e13883a0ca51L,0x3714831044229442L,(long)0x93946116b58f2c84L,
-            (long)0xc41109a5631a574dL,0x1d4512d4941cc520L,0x52848294c643883aL,(long)0xb525073148310502L,
-            (long)0xa5356939460f7358L,0x409ca651L
+            0x7141200040108405L,0x52b44004c5313460L,0x401080200063115cL,unchecked((long)0x85314c4d181c5048L),
+            0x1440190a3e5c7828L,0x28a232809100a21L,unchecked((long)0xa028ca2a84203846L),unchecked((long)0xca0240010800108aL),
+            unchecked((long)0xc7b4205c1580a508L),0x1021090251846b6L,0x4cb513862328090L,0x210863128ca2b8a2L,
+            0x4e188ca024402940L,0xa6b6c7c520532d4L,unchecked((long)0x8c41101451150219L),unchecked((long)0xa0c4211c4710d421L),
+            0x2108421094e15063L,unchecked((long)0x8f13c43708631044L),0x18274d908c611631L,0x1cc238c411098263L,
+            0x450e3a1d0212d0b4L,0x31050242048108c6L,0xfa318b42d07308eL,unchecked((long)0xa8865182356907c6L),
+            0x1ca410d4520c4140L,0x2954e13883a0ca51L,0x3714831044229442L,unchecked((long)0x93946116b58f2c84L),
+            unchecked((long)0xc41109a5631a574dL),0x1d4512d4941cc520L,0x52848294c643883aL,unchecked((long)0xb525073148310502L),
+            unchecked((long)0xa5356939460f7358L),0x409ca651L
           };
         private readonly static long[] offsetIncrs4 = new long[] /*3 bits per value */ {
             0x20c0600000010000L,0x2000040000000001L,0x209204a40209L,0x301b6c0618018618L,
-            0x207206186000186cL,0x1200061b8e06dc0L,0x480492080612010L,(long)0xa20204a040048000L,
-            0x1061a0000129124L,0x1848349b680612L,(long)0xd26da0204a041868L,0x2492492492496128L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
-            0x2492492492492492L,(long)0x9249249249249249L,0x24924924L
+            0x207206186000186cL,0x1200061b8e06dc0L,0x480492080612010L,unchecked((long)0xa20204a040048000L),
+            0x1061a0000129124L,0x1848349b680612L,unchecked((long)0xd26da0204a041868L),0x2492492492496128L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
+            0x2492492492492492L,unchecked((long)0x9249249249249249L),0x24924924L
           };
 
         // 32 vectors; 30 states per vector; array length = 960
         private readonly static long[] toStates5 = new long[] /*5 bits per value */ {
-            0x380e014a051404L,0xaa015452940L,(long)0x8052814501000000L,(long)0xb80a515450000e03L,
-            0x5140410842108426L,0x71dc421701c01540L,0x100421014610f7L,(long)0x85c0700550145010L,
-            (long)0x94a271843ddc7710L,0x1346071412108a22L,0x3115c52b44004c53L,(long)0xc504840108020006L,
+            0x380e014a051404L,0xaa015452940L,unchecked((long)0x8052814501000000L),unchecked((long)0xb80a515450000e03L),
+            0x5140410842108426L,0x71dc421701c01540L,0x100421014610f7L,unchecked((long)0x85c0700550145010L),
+            unchecked((long)0x94a271843ddc7710L),0x1346071412108a22L,0x3115c52b44004c53L,unchecked((long)0xc504840108020006L),
             0x54d1001314c4d181L,0x9081204239c4a71L,0x14c5313460714124L,0x51006428f971e0a2L,
             0x4d181c5048402884L,0xa3e5c782885314cL,0x2809409482a8a239L,0x2a84203846028a23L,
-            0x10800108aa028caL,0xe1180a288ca0240L,(long)0x98c6b80e3294a108L,0x2942328091098c10L,
-            0x11adb1ed08170560L,(long)0xa024004084240946L,0x7b4205c1580a508cL,(long)0xa8c2968c71846b6cL,
-            0x4cb5138623280910L,0x10863128ca2b8a20L,(long)0xe188ca0244029402L,0x4e3294e288132d44L,
-            (long)0x809409ad1218c39cL,(long)0xf14814cb51386232L,0x514454086429adb1L,0x32d44e188ca02440L,
-            (long)0x8c390a6b6c7c5205L,(long)0xd4218c41409cd2aaL,0x5063a0c4211c4710L,0x10442108421094e1L,
-            0x31084711c4350863L,(long)0xbdef7bddf05918f2L,(long)0xc4f10dc218c41ef7L,0x9d3642318458c63L,
-            0x70863104426098c6L,0x8c6116318f13c43L,0x41ef75dd6b5de4d9L,(long)0xd0212d0b41cc238cL,
-            0x2048108c6450e3a1L,0x42d07308e3105024L,(long)0xdb591938f274084bL,(long)0xc238c41f77deefbbL,
-            0x1f183e8c62d0b41cL,0x502a2194608d5a4L,(long)0xa318b42d07308e31L,(long)0xed675db56907c60fL,
-            (long)0xa410d4520c41f773L,0x54e13883a0ca511cL,0x1483104422944229L,0x20f2329447290435L,
-            0x1ef6f7ef6f7df05cL,(long)0xad63cb210dc520c4L,0x58c695d364e51845L,(long)0xc843714831044269L,
-            (long)0xe4d93946116b58f2L,0x520c41ef717d6b17L,(long)0x83a1d4512d4941ccL,0x50252848294c6438L,
-            0x144b525073148310L,(long)0xefaf7b591c20f275L,(long)0x941cc520c41f777bL,(long)0xd5a4e5183dcd62d4L,
-            0x4831050272994694L,0x460f7358b5250731L,(long)0xf779bd6717b56939L
+            0x10800108aa028caL,0xe1180a288ca0240L,unchecked((long)0x98c6b80e3294a108L),0x2942328091098c10L,
+            0x11adb1ed08170560L,unchecked((long)0xa024004084240946L),0x7b4205c1580a508cL,unchecked((long)0xa8c2968c71846b6cL),
+            0x4cb5138623280910L,0x10863128ca2b8a20L,unchecked((long)0xe188ca0244029402L),0x4e3294e288132d44L,
+            unchecked((long)0x809409ad1218c39cL),unchecked((long)0xf14814cb51386232L),0x514454086429adb1L,0x32d44e188ca02440L,
+            unchecked((long)0x8c390a6b6c7c5205L),unchecked((long)0xd4218c41409cd2aaL),0x5063a0c4211c4710L,0x10442108421094e1L,
+            0x31084711c4350863L,unchecked((long)0xbdef7bddf05918f2L),unchecked((long)0xc4f10dc218c41ef7L),0x9d3642318458c63L,
+            0x70863104426098c6L,0x8c6116318f13c43L,0x41ef75dd6b5de4d9L,unchecked((long)0xd0212d0b41cc238cL),
+            0x2048108c6450e3a1L,0x42d07308e3105024L,unchecked((long)0xdb591938f274084bL),unchecked((long)0xc238c41f77deefbbL),
+            0x1f183e8c62d0b41cL,0x502a2194608d5a4L,unchecked((long)0xa318b42d07308e31L),unchecked((long)0xed675db56907c60fL),
+            unchecked((long)0xa410d4520c41f773L),0x54e13883a0ca511cL,0x1483104422944229L,0x20f2329447290435L,
+            0x1ef6f7ef6f7df05cL,unchecked((long)0xad63cb210dc520c4L),0x58c695d364e51845L,unchecked((long)0xc843714831044269L),
+            unchecked((long)0xe4d93946116b58f2L),0x520c41ef717d6b17L,unchecked((long)0x83a1d4512d4941ccL),0x50252848294c6438L,
+            0x144b525073148310L,unchecked((long)0xefaf7b591c20f275L),unchecked((long)0x941cc520c41f777bL),unchecked((long)0xd5a4e5183dcd62d4L),
+            0x4831050272994694L,0x460f7358b5250731L,unchecked((long)0xf779bd6717b56939L)
           };
         private readonly static long[] offsetIncrs5 = new long[] /*3 bits per value */ {
             0x20c0600000010000L,0x40000000001L,0xb6db6d4830180L,0x4812900824800010L,
-            0x2092000040000082L,0x618000b659254a40L,(long)0x86c301b6c0618018L,(long)0xdb01860061860001L,
-            (long)0x81861800075baed6L,0x186e381b70081cL,(long)0xe56dc02072061860L,0x61201001200075b8L,
-            0x480000480492080L,0x52b5248201848040L,(long)0x880812810012000bL,0x4004800004a4492L,
-            0xb529124a20204aL,0x49b68061201061a0L,(long)0x8480418680018483L,0x1a000752ad26da01L,
-            0x4a349b6808128106L,(long)0xa0204a0418680018L,0x492492497528d26dL,0x2492492492492492L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
-            0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
+            0x2092000040000082L,0x618000b659254a40L,unchecked((long)0x86c301b6c0618018L),unchecked((long)0xdb01860061860001L),
+            unchecked((long)0x81861800075baed6L),0x186e381b70081cL,unchecked((long)0xe56dc02072061860L),0x61201001200075b8L,
+            0x480000480492080L,0x52b5248201848040L,unchecked((long)0x880812810012000bL),0x4004800004a4492L,
+            0xb529124a20204aL,0x49b68061201061a0L,unchecked((long)0x8480418680018483L),0x1a000752ad26da01L,
+            0x4a349b6808128106L,unchecked((long)0xa0204a0418680018L),0x492492497528d26dL,0x2492492492492492L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
+            0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
             0x2492492492492492L
           };
 

http://git-wip-us.apache.org/repos/asf/lucenenet/blob/25ec42a2/src/core/Util/Automaton/Lev2TParametricDescription.cs
----------------------------------------------------------------------
diff --git a/src/core/Util/Automaton/Lev2TParametricDescription.cs b/src/core/Util/Automaton/Lev2TParametricDescription.cs
index f037620..b287d7f 100644
--- a/src/core/Util/Automaton/Lev2TParametricDescription.cs
+++ b/src/core/Util/Automaton/Lev2TParametricDescription.cs
@@ -110,11 +110,11 @@ namespace Lucene.Net.Util.Automaton
 
         // 8 vectors; 28 states per vector; array length = 224
         private readonly static long[] toStates3 = new long[] /*5 bits per value */ {
-            (long)0xe701c02940059404L,(long)0xa010162000a50000L,(long)0xb02c8c40a1416288L,(long)0xa821032310858c0L,
-            0x314423980d28b201L,0x5281e528847788e0L,(long)0xa23980d308c2280eL,0x1e3294b1a962278cL,
-            (long)0x8c41309e2288e528L,0x11444409021aca21L,0x11a4624886b1086bL,0x2a6258941d6240c4L,
-            0x5024a50b489074adL,0x14821aca520c411aL,0x5888b5890b594a44L,(long)0x941d6520c411a465L,
-            (long)0x8b589075ad6a62d4L,0x1a5055a4L
+            unchecked((long)0xe701c02940059404L),unchecked((long)0xa010162000a50000L),unchecked((long)0xb02c8c40a1416288L),unchecked((long)0xa821032310858c0L),
+            0x314423980d28b201L,0x5281e528847788e0L,unchecked((long)0xa23980d308c2280eL),0x1e3294b1a962278cL,
+            unchecked((long)0x8c41309e2288e528L),0x11444409021aca21L,0x11a4624886b1086bL,0x2a6258941d6240c4L,
+            0x5024a50b489074adL,0x14821aca520c411aL,0x5888b5890b594a44L,unchecked((long)0x941d6520c411a465L),
+            unchecked((long)0x8b589075ad6a62d4L),0x1a5055a4L
           };
         private readonly static long[] offsetIncrs3 = new long[] /*2 bits per value */ {
             0x30c30200002000L,0x2a0030f3c3fc333cL,0x233a00328282a820L,0x5555555532b283a8L,
@@ -123,91 +123,91 @@ namespace Lucene.Net.Util.Automaton
 
         // 16 vectors; 45 states per vector; array length = 720
         private readonly static long[] toStates4 = new long[] /*6 bits per value */ {
-            0x3801450002c5004L,(long)0xc500014b00000e38L,0x51451401402L,0x0L,
-            0x518000b14010000L,(long)0x9f1c20828e20230L,0x219f0df0830a70c2L,(long)0x8200008208208200L,
-            (long)0x805050160800800L,0x3082098602602643L,0x4564014250508064L,(long)0x850051420000831L,
-            0x4140582085002082L,0x456180980990c201L,(long)0x8316d0c50a01051L,0x21451420050df0e0L,
-            (long)0xd14214014508214L,0x3c21c01850821c60L,0x1cb1403cb142087L,(long)0x800821451851822cL,
-            0x20020820800020L,(long)0xd006182087180345L,(long)0xcb0a81cb24976b09L,(long)0x8b1a60e624709d1L,
-            0x249082082249089L,(long)0xc31421c600d2c024L,0x3c31451515454423L,0x31853c22c21cb140L,
-            0x4514500b2c208214L,(long)0x8718034508b0051L,(long)0xb2cb45515108f0c5L,(long)0xe824715d1cb0a810L,
-            0x1422cb14908b0e60L,0x30812c22c02cb145L,(long)0x842022020cb1420cL,0x5c20ce0820ce0850L,
-            0x208208208b0d70c2L,0x4208508214214208L,(long)0x920834050830c20L,(long)0xc6134dc613653592L,
-            (long)0xd309341c6dc4db4dL,0x6424d90854d34d34L,(long)0x92072c22030814c2L,0x4220724b24a30930L,
-            0x2470d72025c920e2L,(long)0x92c92d70975c9082L,(long)0xcb0880c204924e08L,0x45739728c24c2481L,
-            (long)0xc6da4db5da6174daL,0x4b5d35d75d30971dL,0x1030815c93825ce2L,0x51442051020cb145L,
-            (long)0xc538210e2c220e2cL,(long)0x851421452cb0d70L,0x204b085085145142L,(long)0x921560834051440cL,
-            0x4d660e4da60e6595L,(long)0x94d914e41c6dc658L,(long)0x826426591454d365L,0x2892072c51030813L,
-            (long)0xe2c22072cb2ca30bL,0x452c70d720538910L,(long)0x8b2cb2d708e3891L,(long)0x81cb1440c204b24eL,
-            (long)0xda44e38e28c2ca24L,0x1dc6da6585d660e4L,(long)0xe2cb5d338e5d914eL,0x38938238L
+            0x3801450002c5004L,unchecked((long)0xc500014b00000e38L),0x51451401402L,0x0L,
+            0x518000b14010000L,unchecked((long)0x9f1c20828e20230L),0x219f0df0830a70c2L,unchecked((long)0x8200008208208200L),
+            unchecked((long)0x805050160800800L),0x3082098602602643L,0x4564014250508064L,unchecked((long)0x850051420000831L),
+            0x4140582085002082L,0x456180980990c201L,unchecked((long)0x8316d0c50a01051L),0x21451420050df0e0L,
+            unchecked((long)0xd14214014508214L),0x3c21c01850821c60L,0x1cb1403cb142087L,unchecked((long)0x800821451851822cL),
+            0x20020820800020L,unchecked((long)0xd006182087180345L),unchecked((long)0xcb0a81cb24976b09L),unchecked((long)0x8b1a60e624709d1L),
+            0x249082082249089L,unchecked((long)0xc31421c600d2c024L),0x3c31451515454423L,0x31853c22c21cb140L,
+            0x4514500b2c208214L,unchecked((long)0x8718034508b0051L),unchecked((long)0xb2cb45515108f0c5L),unchecked((long)0xe824715d1cb0a810L),
+            0x1422cb14908b0e60L,0x30812c22c02cb145L,unchecked((long)0x842022020cb1420cL),0x5c20ce0820ce0850L,
+            0x208208208b0d70c2L,0x4208508214214208L,unchecked((long)0x920834050830c20L),unchecked((long)0xc6134dc613653592L),
+            unchecked((long)0xd309341c6dc4db4dL),0x6424d90854d34d34L,unchecked((long)0x92072c22030814c2L),0x4220724b24a30930L,
+            0x2470d72025c920e2L,unchecked((long)0x92c92d70975c9082L),unchecked((long)0xcb0880c204924e08L),0x45739728c24c2481L,
+            unchecked((long)0xc6da4db5da6174daL),0x4b5d35d75d30971dL,0x1030815c93825ce2L,0x51442051020cb145L,
+            unchecked((long)0xc538210e2c220e2cL),unchecked((long)0x851421452cb0d70L),0x204b085085145142L,unchecked((long)0x921560834051440cL),
+            0x4d660e4da60e6595L,unchecked((long)0x94d914e41c6dc658L),unchecked((long)0x826426591454d365L),0x2892072c51030813L,
+            unchecked((long)0xe2c22072cb2ca30bL),0x452c70d720538910L,unchecked((long)0x8b2cb2d708e3891L),unchecked((long)0x81cb1440c204b24eL),
+            unchecked((long)0xda44e38e28c2ca24L),0x1dc6da6585d660e4L,unchecked((long)0xe2cb5d338e5d914eL),0x38938238L
           };
         private readonly static long[] offsetIncrs4 = new long[] /*3 bits per value */ {
-            0x3002000000080000L,0x20c060L,(long)0x8149000004000000L,0x4024924110824824L,
-            (long)0xdb6030c360002082L,0x6c36c06c301b0d80L,(long)0xb01861b0000db0dbL,0x1b7036209188e06dL,
-            (long)0x800920006d86db7L,0x4920c2402402490L,0x49000208249009L,0x4908128128124804L,
-            0x34800104124a44a2L,(long)0xc30930900d24020cL,0x40009a0924c24d24L,0x4984a069201061aL,
-            0x494d049271269262L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
-            0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
+            0x3002000000080000L,0x20c060L,unchecked((long)0x8149000004000000L),0x4024924110824824L,
+            unchecked((long)0xdb6030c360002082L),0x6c36c06c301b0d80L,unchecked((long)0xb01861b0000db0dbL),0x1b7036209188e06dL,
+            unchecked((long)0x800920006d86db7L),0x4920c2402402490L,0x49000208249009L,0x4908128128124804L,
+            0x34800104124a44a2L,unchecked((long)0xc30930900d24020cL),0x40009a0924c24d24L,0x4984a069201061aL,
+            0x494d049271269262L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
+            0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
             0x2492492492492492L,0x249249249249L
           };
 
         // 32 vectors; 45 states per vector; array length = 1440
         private readonly static long[] toStates5 = new long[] /*6 bits per value */ {
-            0x3801450002c5004L,(long)0xc500014b00000e38L,0x51451401402L,0x0L,
-            0x514000b14010000L,0x550000038e00e0L,0x264518500600b180L,(long)0x8208208208208208L,
-            0x2c50040820820L,0x70820a38808c0146L,(long)0xc37c20c29c30827cL,0x20820820800867L,
-            (long)0xb140102002002080L,(long)0x828e202300518000L,(long)0x830a70c209f1c20L,0x51451450853df0dfL,
+            0x3801450002c5004L,unchecked((long)0xc500014b00000e38L),0x51451401402L,0x0L,
+            0x514000b14010000L,0x550000038e00e0L,0x264518500600b180L,unchecked((long)0x8208208208208208L),
+            0x2c50040820820L,0x70820a38808c0146L,unchecked((long)0xc37c20c29c30827cL),0x20820820800867L,
+            unchecked((long)0xb140102002002080L),unchecked((long)0x828e202300518000L),unchecked((long)0x830a70c209f1c20L),0x51451450853df0dfL,
             0x1614214214508214L,0x6026026430805050L,0x2505080643082098L,0x4200008314564014L,
-            (long)0x850020820850051L,(long)0x80990c2014140582L,(long)0x8201920208261809L,(long)0x892051990060941L,
-            0x22492492c22cb242L,0x430805050162492cL,(long)0x8041451586026026L,0x37c38020c5b43142L,
-            0x4208508514508014L,0x141405850850051L,0x51456180980990c2L,(long)0xe008316d0c50a010L,
-            0x2c52cb2c508b21f0L,0x600d2c92c22cb249L,(long)0x873c21c01850821cL,0x2c01cb1403cb1420L,
-            0x2080082145185182L,0x4500200208208000L,(long)0x870061420871803L,0x740500f5050821cfL,
-            (long)0x934d964618609000L,0x4c24d34d30824d30L,0x1860821c600d642L,(long)0xc2a072c925dac274L,
-            0x2c69839891c27472L,(long)0x9242082089242242L,(long)0x8208718034b00900L,0x1cb24976b09d0061L,
-            0x60e624709d1cb0a8L,(long)0xd31455d71574ce3eL,0x1c600d3825c25d74L,0x51515454423c3142L,
-            (long)0xc22c21cb1403c314L,(long)0xb2c20821431853L,0x34508b005145145L,0x5515108f0c508718L,
-            (long)0x8740500f2051454L,(long)0xe2534d920618f090L,0x493826596592c238L,0x4423c31421c600d6L,
-            0x72c2a042cb2d1545L,0x422c3983a091c574L,(long)0xb2c514508b2c52L,(long)0xf0c508718034b08bL,
-            (long)0xa810b2cb45515108L,0x2260e824715d1cb0L,(long)0xe6592c538e2d74ceL,0x420c308138938238L,
-            (long)0x850842022020cb1L,0x70c25c20ce0820ceL,0x4208208208208b0dL,(long)0xc20420850821421L,
-            0x21080880832c5083L,(long)0xa50838820838c214L,(long)0xaaaaaaaaa9c39430L,0x1aaa7eaa9fa9faaaL,
-            (long)0x824820d01420c308L,0x7184d37184d94d64L,0x34c24d071b7136d3L,(long)0x990936421534d34dL,
-            (long)0x834050830c20530L,0x34dc613653592092L,(long)0xa479c6dc4db4dc61L,(long)0x920a9f924924924aL,
-            0x72c220308192a82aL,0x724b24a30930920L,(long)0xd72025c920e2422L,(long)0x92d70975c9082247L,
-            (long)0x880c204924e0892cL,0x2c928c24c2481cb0L,(long)0x80a5248889088749L,0x6a861b2aaac74394L,
-            (long)0x81b2ca6ab27b278L,(long)0xa3093092072c2203L,(long)0xd76985d36915ce5cL,0x5d74c25c771b6936L,
+            unchecked((long)0x850020820850051L),unchecked((long)0x80990c2014140582L),unchecked((long)0x8201920208261809L),unchecked((long)0x892051990060941L),
+            0x22492492c22cb242L,0x430805050162492cL,unchecked((long)0x8041451586026026L),0x37c38020c5b43142L,
+            0x4208508514508014L,0x141405850850051L,0x51456180980990c2L,unchecked((long)0xe008316d0c50a010L),
+            0x2c52cb2c508b21f0L,0x600d2c92c22cb249L,unchecked((long)0x873c21c01850821cL),0x2c01cb1403cb1420L,
+            0x2080082145185182L,0x4500200208208000L,unchecked((long)0x870061420871803L),0x740500f5050821cfL,
+            unchecked((long)0x934d964618609000L),0x4c24d34d30824d30L,0x1860821c600d642L,unchecked((long)0xc2a072c925dac274L),
+            0x2c69839891c27472L,unchecked((long)0x9242082089242242L),unchecked((long)0x8208718034b00900L),0x1cb24976b09d0061L,
+            0x60e624709d1cb0a8L,unchecked((long)0xd31455d71574ce3eL),0x1c600d3825c25d74L,0x51515454423c3142L,
+            unchecked((long)0xc22c21cb1403c314L),unchecked((long)0xb2c20821431853L),0x34508b005145145L,0x5515108f0c508718L,
+            unchecked((long)0x8740500f2051454L),unchecked((long)0xe2534d920618f090L),0x493826596592c238L,0x4423c31421c600d6L,
+            0x72c2a042cb2d1545L,0x422c3983a091c574L,unchecked((long)0xb2c514508b2c52L),unchecked((long)0xf0c508718034b08bL),
+            unchecked((long)0xa810b2cb45515108L),0x2260e824715d1cb0L,unchecked((long)0xe6592c538e2d74ceL),0x420c308138938238L,
+            unchecked((long)0x850842022020cb1L),0x70c25c20ce0820ceL,0x4208208208208b0dL,unchecked((long)0xc20420850821421L),
+            0x21080880832c5083L,unchecked((long)0xa50838820838c214L),unchecked((long)0xaaaaaaaaa9c39430L),0x1aaa7eaa9fa9faaaL,
+            unchecked((long)0x824820d01420c308L),0x7184d37184d94d64L,0x34c24d071b7136d3L,unchecked((long)0x990936421534d34dL),
+            unchecked((long)0x834050830c20530L),0x34dc613653592092L,unchecked((long)0xa479c6dc4db4dc61L),unchecked((long)0x920a9f924924924aL),
+            0x72c220308192a82aL,0x724b24a30930920L,unchecked((long)0xd72025c920e2422L),unchecked((long)0x92d70975c9082247L),
+            unchecked((long)0x880c204924e0892cL),0x2c928c24c2481cb0L,unchecked((long)0x80a5248889088749L),0x6a861b2aaac74394L,
+            unchecked((long)0x81b2ca6ab27b278L),unchecked((long)0xa3093092072c2203L),unchecked((long)0xd76985d36915ce5cL),0x5d74c25c771b6936L,
             0x724e0973892d74d7L,0x4c2481cb0880c205L,0x6174da45739728c2L,0x4aa175c6da4db5daL,
-            0x6a869b2786486186L,(long)0xcb14510308186caL,0x220e2c5144205102L,(long)0xcb0d70c538210e2cL,
-            0x1451420851421452L,0x51440c204b085085L,(long)0xcb1451081440832cL,(long)0x94316208488b0888L,
-            (long)0xfaaa7dfa9f7e79c3L,0x30819ea7ea7df7dL,0x6564855820d01451L,(long)0x9613598393698399L,
-            (long)0xd965364539071b71L,0x4e0990996451534L,0x21560834051440c2L,(long)0xd660e4da60e65959L,
-            (long)0x9207e979c6dc6584L,(long)0xa82a8207df924820L,(long)0x892072c5103081a6L,0x2c22072cb2ca30b2L,
-            0x52c70d720538910eL,(long)0x8b2cb2d708e38914L,0x1cb1440c204b24e0L,(long)0x874b2cb28c2ca248L,
-            0x4394816224488b08L,(long)0x9e786aa69b1f7e77L,0x51030819eca6a9e7L,(long)0x8e38a30b2892072cL,
-            0x6996175983936913L,0x74ce39764538771bL,(long)0xc204e24e08e38b2dL,0x28c2ca2481cb1440L,
-            (long)0x85d660e4da44e38eL,0x698607e975c6da65L,(long)0xa6ca6aa699e7864aL
+            0x6a869b2786486186L,unchecked((long)0xcb14510308186caL),0x220e2c5144205102L,unchecked((long)0xcb0d70c538210e2cL),
+            0x1451420851421452L,0x51440c204b085085L,unchecked((long)0xcb1451081440832cL),unchecked((long)0x94316208488b0888L),
+            unchecked((long)0xfaaa7dfa9f7e79c3L),0x30819ea7ea7df7dL,0x6564855820d01451L,unchecked((long)0x9613598393698399L),
+            unchecked((long)0xd965364539071b71L),0x4e0990996451534L,0x21560834051440c2L,unchecked((long)0xd660e4da60e65959L),
+            unchecked((long)0x9207e979c6dc6584L),unchecked((long)0xa82a8207df924820L),unchecked((long)0x892072c5103081a6L),0x2c22072cb2ca30b2L,
+            0x52c70d720538910eL,unchecked((long)0x8b2cb2d708e38914L),0x1cb1440c204b24e0L,unchecked((long)0x874b2cb28c2ca248L),
+            0x4394816224488b08L,unchecked((long)0x9e786aa69b1f7e77L),0x51030819eca6a9e7L,unchecked((long)0x8e38a30b2892072cL),
+            0x6996175983936913L,0x74ce39764538771bL,unchecked((long)0xc204e24e08e38b2dL),0x28c2ca2481cb1440L,
+            unchecked((long)0x85d660e4da44e38eL),0x698607e975c6da65L,unchecked((long)0xa6ca6aa699e7864aL)
           };
         private readonly static long[] offsetIncrs5 = new long[] /*3 bits per value */ {
-            0x3002000000080000L,0x20c060L,0x100000004000000L,(long)0xdb6db6db50603018L,
-            (long)0xa480000200002db6L,0x1249208841241240L,0x4000010000104120L,0x2492c42092092052L,
-            (long)0xc30d800096592d9L,(long)0xb01b0c06c36036d8L,0x186c00036c36db0dL,(long)0xad860361b01b6c06L,
-            0x360001b75b6dd6ddL,(long)0xc412311c0db6030cL,(long)0xdb0db6e36e06L,(long)0x9188e06db01861bL,
+            0x3002000000080000L,0x20c060L,0x100000004000000L,unchecked((long)0xdb6db6db50603018L),
+            unchecked((long)0xa480000200002db6L),0x1249208841241240L,0x4000010000104120L,0x2492c42092092052L,
+            unchecked((long)0xc30d800096592d9L),unchecked((long)0xb01b0c06c36036d8L),0x186c00036c36db0dL,unchecked((long)0xad860361b01b6c06L),
+            0x360001b75b6dd6ddL,unchecked((long)0xc412311c0db6030cL),unchecked((long)0xdb0db6e36e06L),unchecked((long)0x9188e06db01861bL),
             0x6dd6db71b72b62L,0x4024024900800920L,0x20824900904920c2L,0x1201248040049000L,
-            0x5524ad4aa4906120L,0x4092402002480015L,(long)0x9252251248409409L,0x4920100124000820L,
-            0x29128924204a04a0L,(long)0x900830d200055549L,(long)0x934930c24c24034L,0x418690002682493L,
-            (long)0x9a49861261201a48L,(long)0xc348001355249d4L,0x24c40930940d2402L,0x1a40009a0924e24dL,
-            0x6204984a06920106L,(long)0x92494d5492712692L,0x4924924924924924L,0x2492492492492492L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
-            0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,
-            0x2492492492492492L,(long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,
-            (long)0x9249249249249249L,0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,
-            0x4924924924924924L,0x2492492492492492L,(long)0x9249249249249249L,0x24924924L
+            0x5524ad4aa4906120L,0x4092402002480015L,unchecked((long)0x9252251248409409L),0x4920100124000820L,
+            0x29128924204a04a0L,unchecked((long)0x900830d200055549L),unchecked((long)0x934930c24c24034L),0x418690002682493L,
+            unchecked((long)0x9a49861261201a48L),unchecked((long)0xc348001355249d4L),0x24c40930940d2402L,0x1a40009a0924e24dL,
+            0x6204984a06920106L,unchecked((long)0x92494d5492712692L),0x4924924924924924L,0x2492492492492492L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
+            0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,
+            0x2492492492492492L,unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,
+            unchecked((long)0x9249249249249249L),0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),
+            0x4924924924924924L,0x2492492492492492L,unchecked((long)0x9249249249249249L),0x24924924L
           };
 
         // state map