package com.knecon.fforesight.service.layoutparser.internal.api.data.redaction;

// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: EntryData.proto
// Protobuf Java Version: 4.27.1
@SuppressWarnings("all")
public final class EntryDataProto {

    private EntryDataProto() {}


    static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                /* major= */ 4,
                /* minor= */ 27,
                /* patch= */ 1,
                /* suffix= */ "", EntryDataProto.class.getName());
    }

    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistryLite registry) {

    }


    public static void registerAllExtensions(com.google.protobuf.ExtensionRegistry registry) {

        registerAllExtensions((com.google.protobuf.ExtensionRegistryLite) registry);
    }


    public interface EntryDataOrBuilder extends
            // @@protoc_insertion_point(interface_extends:EntryData)
            com.google.protobuf.MessageOrBuilder {

        /**
         * <pre>
         * Type of the semantic node.
         * </pre>
         *
         * <code>.NodeType type = 1;</code>
         *
         * @return The enum numeric value on the wire for type.
         */
        int getTypeValue();


        /**
         * <pre>
         * Type of the semantic node.
         * </pre>
         *
         * <code>.NodeType type = 1;</code>
         *
         * @return The type.
         */
        NodeTypeProto.NodeType getType();


        /**
         * <pre>
         * Specifies the position in the parsed tree structure.
         * </pre>
         *
         * <code>repeated int32 treeId = 2;</code>
         *
         * @return A list containing the treeId.
         */
        java.util.List<Integer> getTreeIdList();


        /**
         * <pre>
         * Specifies the position in the parsed tree structure.
         * </pre>
         *
         * <code>repeated int32 treeId = 2;</code>
         *
         * @return The count of treeId.
         */
        int getTreeIdCount();


        /**
         * <pre>
         * Specifies the position in the parsed tree structure.
         * </pre>
         *
         * <code>repeated int32 treeId = 2;</code>
         *
         * @param index The index of the element to return.
         * @return The treeId at the given index.
         */
        int getTreeId(int index);


        /**
         * <pre>
         * Specifies the text block IDs associated with this semantic node.
         * </pre>
         *
         * <code>repeated int64 atomicBlockIds = 3;</code>
         *
         * @return A list containing the atomicBlockIds.
         */
        java.util.List<Long> getAtomicBlockIdsList();


        /**
         * <pre>
         * Specifies the text block IDs associated with this semantic node.
         * </pre>
         *
         * <code>repeated int64 atomicBlockIds = 3;</code>
         *
         * @return The count of atomicBlockIds.
         */
        int getAtomicBlockIdsCount();


        /**
         * <pre>
         * Specifies the text block IDs associated with this semantic node.
         * </pre>
         *
         * <code>repeated int64 atomicBlockIds = 3;</code>
         *
         * @param index The index of the element to return.
         * @return The atomicBlockIds at the given index.
         */
        long getAtomicBlockIds(int index);


        /**
         * <pre>
         * Specifies the pages this semantic node appears on.
         * </pre>
         *
         * <code>repeated int64 pageNumbers = 4;</code>
         *
         * @return A list containing the pageNumbers.
         */
        java.util.List<Long> getPageNumbersList();


        /**
         * <pre>
         * Specifies the pages this semantic node appears on.
         * </pre>
         *
         * <code>repeated int64 pageNumbers = 4;</code>
         *
         * @return The count of pageNumbers.
         */
        int getPageNumbersCount();


        /**
         * <pre>
         * Specifies the pages this semantic node appears on.
         * </pre>
         *
         * <code>repeated int64 pageNumbers = 4;</code>
         *
         * @param index The index of the element to return.
         * @return The pageNumbers at the given index.
         */
        long getPageNumbers(int index);


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        int getPropertiesCount();


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        boolean containsProperties(String key);


        /**
         * Use {@link #getPropertiesMap()} instead.
         */
        @Deprecated
        java.util.Map<String, String> getProperties();


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        java.util.Map<String, String> getPropertiesMap();


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        /* nullable */
        String getPropertiesOrDefault(String key,
                /* nullable */
                                      String defaultValue);


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        String getPropertiesOrThrow(String key);


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        java.util.List<EntryData> getChildrenList();


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        EntryData getChildren(int index);


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        int getChildrenCount();


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        java.util.List<? extends EntryDataOrBuilder> getChildrenOrBuilderList();


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        EntryDataOrBuilder getChildrenOrBuilder(int index);


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @return A list containing the engines.
         */
        java.util.List<LayoutEngineProto.LayoutEngine> getEnginesList();


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @return The count of engines.
         */
        int getEnginesCount();


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @param index The index of the element to return.
         * @return The engines at the given index.
         */
        LayoutEngineProto.LayoutEngine getEngines(int index);


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @return A list containing the enum numeric values on the wire for engines.
         */
        java.util.List<Integer> getEnginesValueList();


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @param index The index of the value to return.
         * @return The enum numeric value on the wire of engines at the given index.
         */
        int getEnginesValue(int index);

    }

    /**
     * Protobuf type {@code EntryData}
     */
    public static class EntryData extends com.google.protobuf.GeneratedMessage implements
            // @@protoc_insertion_point(message_implements:EntryData)
            EntryDataOrBuilder {

        private static final long serialVersionUID = 0L;

        static {
            com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
                    /* major= */ 4,
                    /* minor= */ 27,
                    /* patch= */ 1,
                    /* suffix= */ "", EntryData.class.getName());
        }

        // Use EntryData.newBuilder() to construct.
        private EntryData(com.google.protobuf.GeneratedMessage.Builder<?> builder) {

            super(builder);
        }


        private EntryData() {

            type_ = 0;
            treeId_ = emptyIntList();
            atomicBlockIds_ = emptyLongList();
            pageNumbers_ = emptyLongList();
            children_ = java.util.Collections.emptyList();
            engines_ = java.util.Collections.emptyList();
        }


        public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

            return EntryDataProto.internal_static_EntryData_descriptor;
        }


        @SuppressWarnings({"rawtypes"})
        @Override
        protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number) {

            switch (number) {
                case 5:
                    return internalGetProperties();
                default:
                    throw new RuntimeException("Invalid map field number: " + number);
            }
        }


        @Override
        protected FieldAccessorTable internalGetFieldAccessorTable() {

            return EntryDataProto.internal_static_EntryData_fieldAccessorTable.ensureFieldAccessorsInitialized(EntryData.class, Builder.class);
        }


        public static final int TYPE_FIELD_NUMBER = 1;
        private int type_ = 0;


        /**
         * <pre>
         * Type of the semantic node.
         * </pre>
         *
         * <code>.NodeType type = 1;</code>
         *
         * @return The enum numeric value on the wire for type.
         */
        @Override
        public int getTypeValue() {

            return type_;
        }


        /**
         * <pre>
         * Type of the semantic node.
         * </pre>
         *
         * <code>.NodeType type = 1;</code>
         *
         * @return The type.
         */
        @Override
        public NodeTypeProto.NodeType getType() {

            NodeTypeProto.NodeType result = NodeTypeProto.NodeType.forNumber(type_);
            return result == null ? NodeTypeProto.NodeType.UNRECOGNIZED : result;
        }


        public static final int TREEID_FIELD_NUMBER = 2;
        @SuppressWarnings("serial")
        private com.google.protobuf.Internal.IntList treeId_ = emptyIntList();


        /**
         * <pre>
         * Specifies the position in the parsed tree structure.
         * </pre>
         *
         * <code>repeated int32 treeId = 2;</code>
         *
         * @return A list containing the treeId.
         */
        @Override
        public java.util.List<Integer> getTreeIdList() {

            return treeId_;
        }


        /**
         * <pre>
         * Specifies the position in the parsed tree structure.
         * </pre>
         *
         * <code>repeated int32 treeId = 2;</code>
         *
         * @return The count of treeId.
         */
        public int getTreeIdCount() {

            return treeId_.size();
        }


        /**
         * <pre>
         * Specifies the position in the parsed tree structure.
         * </pre>
         *
         * <code>repeated int32 treeId = 2;</code>
         *
         * @param index The index of the element to return.
         * @return The treeId at the given index.
         */
        public int getTreeId(int index) {

            return treeId_.getInt(index);
        }


        private int treeIdMemoizedSerializedSize = -1;

        public static final int ATOMICBLOCKIDS_FIELD_NUMBER = 3;
        @SuppressWarnings("serial")
        private com.google.protobuf.Internal.LongList atomicBlockIds_ = emptyLongList();


        /**
         * <pre>
         * Specifies the text block IDs associated with this semantic node.
         * </pre>
         *
         * <code>repeated int64 atomicBlockIds = 3;</code>
         *
         * @return A list containing the atomicBlockIds.
         */
        @Override
        public java.util.List<Long> getAtomicBlockIdsList() {

            return atomicBlockIds_;
        }


        /**
         * <pre>
         * Specifies the text block IDs associated with this semantic node.
         * </pre>
         *
         * <code>repeated int64 atomicBlockIds = 3;</code>
         *
         * @return The count of atomicBlockIds.
         */
        public int getAtomicBlockIdsCount() {

            return atomicBlockIds_.size();
        }


        /**
         * <pre>
         * Specifies the text block IDs associated with this semantic node.
         * </pre>
         *
         * <code>repeated int64 atomicBlockIds = 3;</code>
         *
         * @param index The index of the element to return.
         * @return The atomicBlockIds at the given index.
         */
        public long getAtomicBlockIds(int index) {

            return atomicBlockIds_.getLong(index);
        }


        private int atomicBlockIdsMemoizedSerializedSize = -1;

        public static final int PAGENUMBERS_FIELD_NUMBER = 4;
        @SuppressWarnings("serial")
        private com.google.protobuf.Internal.LongList pageNumbers_ = emptyLongList();


        /**
         * <pre>
         * Specifies the pages this semantic node appears on.
         * </pre>
         *
         * <code>repeated int64 pageNumbers = 4;</code>
         *
         * @return A list containing the pageNumbers.
         */
        @Override
        public java.util.List<Long> getPageNumbersList() {

            return pageNumbers_;
        }


        /**
         * <pre>
         * Specifies the pages this semantic node appears on.
         * </pre>
         *
         * <code>repeated int64 pageNumbers = 4;</code>
         *
         * @return The count of pageNumbers.
         */
        public int getPageNumbersCount() {

            return pageNumbers_.size();
        }


        /**
         * <pre>
         * Specifies the pages this semantic node appears on.
         * </pre>
         *
         * <code>repeated int64 pageNumbers = 4;</code>
         *
         * @param index The index of the element to return.
         * @return The pageNumbers at the given index.
         */
        public long getPageNumbers(int index) {

            return pageNumbers_.getLong(index);
        }


        private int pageNumbersMemoizedSerializedSize = -1;

        public static final int PROPERTIES_FIELD_NUMBER = 5;

        private static final class PropertiesDefaultEntryHolder {

            static final com.google.protobuf.MapEntry<String, String> defaultEntry = com.google.protobuf.MapEntry.<String, String>newDefaultInstance(EntryDataProto.internal_static_EntryData_PropertiesEntry_descriptor,
                                                                                                                                                     com.google.protobuf.WireFormat.FieldType.STRING,
                                                                                                                                                     "",
                                                                                                                                                     com.google.protobuf.WireFormat.FieldType.STRING,
                                                                                                                                                     "");

        }

        @SuppressWarnings("serial")
        private com.google.protobuf.MapField<String, String> properties_;


        private com.google.protobuf.MapField<String, String> internalGetProperties() {

            if (properties_ == null) {
                return com.google.protobuf.MapField.emptyMapField(PropertiesDefaultEntryHolder.defaultEntry);
            }
            return properties_;
        }


        public int getPropertiesCount() {

            return internalGetProperties().getMap().size();
        }


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        @Override
        public boolean containsProperties(String key) {

            if (key == null) {
                throw new NullPointerException("map key");
            }
            return internalGetProperties().getMap().containsKey(key);
        }


        /**
         * Use {@link #getPropertiesMap()} instead.
         */
        @Override
        @Deprecated
        public java.util.Map<String, String> getProperties() {

            return getPropertiesMap();
        }


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        @Override
        public java.util.Map<String, String> getPropertiesMap() {

            return internalGetProperties().getMap();
        }


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        @Override
        public /* nullable */
        String getPropertiesOrDefault(String key,
                /* nullable */
                                      String defaultValue) {

            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<String, String> map = internalGetProperties().getMap();
            return map.containsKey(key) ? map.get(key) : defaultValue;
        }


        /**
         * <pre>
         * Some semantic nodes have additional information, this information is stored in this Map.
         * </pre>
         *
         * <code>map&lt;string, string&gt; properties = 5;</code>
         */
        @Override
        public String getPropertiesOrThrow(String key) {

            if (key == null) {
                throw new NullPointerException("map key");
            }
            java.util.Map<String, String> map = internalGetProperties().getMap();
            if (!map.containsKey(key)) {
                throw new IllegalArgumentException();
            }
            return map.get(key);
        }


        public static final int CHILDREN_FIELD_NUMBER = 6;
        @SuppressWarnings("serial")
        private java.util.List<EntryData> children_;


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        @Override
        public java.util.List<EntryData> getChildrenList() {

            return children_;
        }


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        @Override
        public java.util.List<? extends EntryDataOrBuilder> getChildrenOrBuilderList() {

            return children_;
        }


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        @Override
        public int getChildrenCount() {

            return children_.size();
        }


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        @Override
        public EntryData getChildren(int index) {

            return children_.get(index);
        }


        /**
         * <pre>
         * All child Entries of this Entry.
         * </pre>
         *
         * <code>repeated .EntryData children = 6;</code>
         */
        @Override
        public EntryDataOrBuilder getChildrenOrBuilder(int index) {

            return children_.get(index);
        }


        public static final int ENGINES_FIELD_NUMBER = 7;
        @SuppressWarnings("serial")
        private java.util.List<Integer> engines_;
        private static final com.google.protobuf.Internal.ListAdapter.Converter<Integer, LayoutEngineProto.LayoutEngine> engines_converter_ = new com.google.protobuf.Internal.ListAdapter.Converter<Integer, LayoutEngineProto.LayoutEngine>() {
            public LayoutEngineProto.LayoutEngine convert(Integer from) {

                LayoutEngineProto.LayoutEngine result = LayoutEngineProto.LayoutEngine.forNumber(from);
                return result == null ? LayoutEngineProto.LayoutEngine.UNRECOGNIZED : result;
            }
        };


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @return A list containing the engines.
         */
        @Override
        public java.util.List<LayoutEngineProto.LayoutEngine> getEnginesList() {

            return new com.google.protobuf.Internal.ListAdapter<Integer, LayoutEngineProto.LayoutEngine>(engines_, engines_converter_);
        }


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @return The count of engines.
         */
        @Override
        public int getEnginesCount() {

            return engines_.size();
        }


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @param index The index of the element to return.
         * @return The engines at the given index.
         */
        @Override
        public LayoutEngineProto.LayoutEngine getEngines(int index) {

            return engines_converter_.convert(engines_.get(index));
        }


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @return A list containing the enum numeric values on the wire for engines.
         */
        @Override
        public java.util.List<Integer> getEnginesValueList() {

            return engines_;
        }


        /**
         * <pre>
         * Describes the origin of the semantic node.
         * </pre>
         *
         * <code>repeated .LayoutEngine engines = 7;</code>
         *
         * @param index The index of the value to return.
         * @return The enum numeric value on the wire of engines at the given index.
         */
        @Override
        public int getEnginesValue(int index) {

            return engines_.get(index);
        }


        private int enginesMemoizedSerializedSize;

        private byte memoizedIsInitialized = -1;


        @Override
        public final boolean isInitialized() {

            byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) {
            return true;
          }
          if (isInitialized == 0) {
            return false;
          }

            memoizedIsInitialized = 1;
            return true;
        }


        @Override
        public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {

            getSerializedSize();
            if (type_ != NodeTypeProto.NodeType.DOCUMENT.getNumber()) {
                output.writeEnum(1, type_);
            }
            if (getTreeIdList().size() > 0) {
                output.writeUInt32NoTag(18);
                output.writeUInt32NoTag(treeIdMemoizedSerializedSize);
            }
            for (int i = 0; i < treeId_.size(); i++) {
                output.writeInt32NoTag(treeId_.getInt(i));
            }
            if (getAtomicBlockIdsList().size() > 0) {
                output.writeUInt32NoTag(26);
                output.writeUInt32NoTag(atomicBlockIdsMemoizedSerializedSize);
            }
            for (int i = 0; i < atomicBlockIds_.size(); i++) {
                output.writeInt64NoTag(atomicBlockIds_.getLong(i));
            }
            if (getPageNumbersList().size() > 0) {
                output.writeUInt32NoTag(34);
                output.writeUInt32NoTag(pageNumbersMemoizedSerializedSize);
            }
            for (int i = 0; i < pageNumbers_.size(); i++) {
                output.writeInt64NoTag(pageNumbers_.getLong(i));
            }
            com.google.protobuf.GeneratedMessage.serializeStringMapTo(output, internalGetProperties(), PropertiesDefaultEntryHolder.defaultEntry, 5);
            for (int i = 0; i < children_.size(); i++) {
                output.writeMessage(6, children_.get(i));
            }
            if (getEnginesList().size() > 0) {
                output.writeUInt32NoTag(58);
                output.writeUInt32NoTag(enginesMemoizedSerializedSize);
            }
            for (int i = 0; i < engines_.size(); i++) {
                output.writeEnumNoTag(engines_.get(i));
            }
            getUnknownFields().writeTo(output);
        }


        @Override
        public int getSerializedSize() {

            int size = memoizedSize;
          if (size != -1) {
            return size;
          }

            size = 0;
            if (type_ != NodeTypeProto.NodeType.DOCUMENT.getNumber()) {
                size += com.google.protobuf.CodedOutputStream.computeEnumSize(1, type_);
            }
            {
                int dataSize = 0;
                for (int i = 0; i < treeId_.size(); i++) {
                    dataSize += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(treeId_.getInt(i));
                }
                size += dataSize;
                if (!getTreeIdList().isEmpty()) {
                    size += 1;
                    size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize);
                }
                treeIdMemoizedSerializedSize = dataSize;
            }
            {
                int dataSize = 0;
                for (int i = 0; i < atomicBlockIds_.size(); i++) {
                    dataSize += com.google.protobuf.CodedOutputStream.computeInt64SizeNoTag(atomicBlockIds_.getLong(i));
                }
                size += dataSize;
                if (!getAtomicBlockIdsList().isEmpty()) {
                    size += 1;
                    size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize);
                }
                atomicBlockIdsMemoizedSerializedSize = dataSize;
            }
            {
                int dataSize = 0;
                for (int i = 0; i < pageNumbers_.size(); i++) {
                    dataSize += com.google.protobuf.CodedOutputStream.computeInt64SizeNoTag(pageNumbers_.getLong(i));
                }
                size += dataSize;
                if (!getPageNumbersList().isEmpty()) {
                    size += 1;
                    size += com.google.protobuf.CodedOutputStream.computeInt32SizeNoTag(dataSize);
                }
                pageNumbersMemoizedSerializedSize = dataSize;
            }
            for (java.util.Map.Entry<String, String> entry : internalGetProperties().getMap().entrySet()) {
                com.google.protobuf.MapEntry<String, String> properties__ = PropertiesDefaultEntryHolder.defaultEntry.newBuilderForType()
                        .setKey(entry.getKey())
                        .setValue(entry.getValue())
                        .build();
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(5, properties__);
            }
            for (int i = 0; i < children_.size(); i++) {
                size += com.google.protobuf.CodedOutputStream.computeMessageSize(6, children_.get(i));
            }
            {
                int dataSize = 0;
                for (int i = 0; i < engines_.size(); i++) {
                    dataSize += com.google.protobuf.CodedOutputStream.computeEnumSizeNoTag(engines_.get(i));
                }
                size += dataSize;
                if (!getEnginesList().isEmpty()) {
                    size += 1;
                    size += com.google.protobuf.CodedOutputStream.computeUInt32SizeNoTag(dataSize);
                }
                enginesMemoizedSerializedSize = dataSize;
            }
            size += getUnknownFields().getSerializedSize();
            memoizedSize = size;
            return size;
        }


        @Override
        public boolean equals(final Object obj) {

            if (obj == this) {
                return true;
            }
            if (!(obj instanceof EntryData)) {
                return super.equals(obj);
            }
            EntryData other = (EntryData) obj;

          if (type_ != other.type_) {
            return false;
          }
          if (!getTreeIdList().equals(other.getTreeIdList())) {
            return false;
          }
          if (!getAtomicBlockIdsList().equals(other.getAtomicBlockIdsList())) {
            return false;
          }
          if (!getPageNumbersList().equals(other.getPageNumbersList())) {
            return false;
          }
          if (!internalGetProperties().equals(other.internalGetProperties())) {
            return false;
          }
          if (!getChildrenList().equals(other.getChildrenList())) {
            return false;
          }
          if (!engines_.equals(other.engines_)) {
            return false;
          }
          if (!getUnknownFields().equals(other.getUnknownFields())) {
            return false;
          }
            return true;
        }


        @Override
        public int hashCode() {

            if (memoizedHashCode != 0) {
                return memoizedHashCode;
            }
            int hash = 41;
            hash = (19 * hash) + getDescriptor().hashCode();
            hash = (37 * hash) + TYPE_FIELD_NUMBER;
            hash = (53 * hash) + type_;
            if (getTreeIdCount() > 0) {
                hash = (37 * hash) + TREEID_FIELD_NUMBER;
                hash = (53 * hash) + getTreeIdList().hashCode();
            }
            if (getAtomicBlockIdsCount() > 0) {
                hash = (37 * hash) + ATOMICBLOCKIDS_FIELD_NUMBER;
                hash = (53 * hash) + getAtomicBlockIdsList().hashCode();
            }
            if (getPageNumbersCount() > 0) {
                hash = (37 * hash) + PAGENUMBERS_FIELD_NUMBER;
                hash = (53 * hash) + getPageNumbersList().hashCode();
            }
            if (!internalGetProperties().getMap().isEmpty()) {
                hash = (37 * hash) + PROPERTIES_FIELD_NUMBER;
                hash = (53 * hash) + internalGetProperties().hashCode();
            }
            if (getChildrenCount() > 0) {
                hash = (37 * hash) + CHILDREN_FIELD_NUMBER;
                hash = (53 * hash) + getChildrenList().hashCode();
            }
            if (getEnginesCount() > 0) {
                hash = (37 * hash) + ENGINES_FIELD_NUMBER;
                hash = (53 * hash) + engines_.hashCode();
            }
            hash = (29 * hash) + getUnknownFields().hashCode();
            memoizedHashCode = hash;
            return hash;
        }


        public static EntryData parseFrom(java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static EntryData parseFrom(java.nio.ByteBuffer data,
                                          com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static EntryData parseFrom(com.google.protobuf.ByteString data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static EntryData parseFrom(com.google.protobuf.ByteString data,
                                          com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static EntryData parseFrom(byte[] data) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data);
        }


        public static EntryData parseFrom(byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

            return PARSER.parseFrom(data, extensionRegistry);
        }


        public static EntryData parseFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static EntryData parseFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        public static EntryData parseDelimitedFrom(java.io.InputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input);
        }


        public static EntryData parseDelimitedFrom(java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseDelimitedWithIOException(PARSER, input, extensionRegistry);
        }


        public static EntryData parseFrom(com.google.protobuf.CodedInputStream input) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input);
        }


        public static EntryData parseFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

            return com.google.protobuf.GeneratedMessage.parseWithIOException(PARSER, input, extensionRegistry);
        }


        @Override
        public Builder newBuilderForType() {return newBuilder();}


        public static Builder newBuilder() {

            return DEFAULT_INSTANCE.toBuilder();
        }


        public static Builder newBuilder(EntryData prototype) {

            return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
        }


        @Override
        public Builder toBuilder() {

            return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
        }


        @Override
        protected Builder newBuilderForType(BuilderParent parent) {

            Builder builder = new Builder(parent);
            return builder;
        }


        /**
         * Protobuf type {@code EntryData}
         */
        public static final class Builder extends com.google.protobuf.GeneratedMessage.Builder<Builder> implements
                // @@protoc_insertion_point(builder_implements:EntryData)
                EntryDataOrBuilder {

            public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {

                return EntryDataProto.internal_static_EntryData_descriptor;
            }


            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMapFieldReflection(int number) {

                switch (number) {
                    case 5:
                        return internalGetProperties();
                    default:
                        throw new RuntimeException("Invalid map field number: " + number);
                }
            }


            @SuppressWarnings({"rawtypes"})
            protected com.google.protobuf.MapFieldReflectionAccessor internalGetMutableMapFieldReflection(int number) {

                switch (number) {
                    case 5:
                        return internalGetMutableProperties();
                    default:
                        throw new RuntimeException("Invalid map field number: " + number);
                }
            }


            @Override
            protected FieldAccessorTable internalGetFieldAccessorTable() {

                return EntryDataProto.internal_static_EntryData_fieldAccessorTable.ensureFieldAccessorsInitialized(EntryData.class, Builder.class);
            }


            // Construct using EntryDataOuterClass.EntryData.newBuilder()
            private Builder() {

            }


            private Builder(BuilderParent parent) {

                super(parent);

            }


            @Override
            public Builder clear() {

                super.clear();
                bitField0_ = 0;
                type_ = 0;
                treeId_ = emptyIntList();
                atomicBlockIds_ = emptyLongList();
                pageNumbers_ = emptyLongList();
                internalGetMutableProperties().clear();
                if (childrenBuilder_ == null) {
                    children_ = java.util.Collections.emptyList();
                } else {
                    children_ = null;
                    childrenBuilder_.clear();
                }
                bitField0_ = (bitField0_ & ~0x00000020);
                engines_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000040);
                return this;
            }


            @Override
            public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {

                return EntryDataProto.internal_static_EntryData_descriptor;
            }


            @Override
            public EntryData getDefaultInstanceForType() {

                return EntryData.getDefaultInstance();
            }


            @Override
            public EntryData build() {

                EntryData result = buildPartial();
                if (!result.isInitialized()) {
                    throw newUninitializedMessageException(result);
                }
                return result;
            }


            @Override
            public EntryData buildPartial() {

                EntryData result = new EntryData(this);
                buildPartialRepeatedFields(result);
                if (bitField0_ != 0) {
                    buildPartial0(result);
                }
                onBuilt();
                return result;
            }


            private void buildPartialRepeatedFields(EntryData result) {

                if (childrenBuilder_ == null) {
                    if (((bitField0_ & 0x00000020) != 0)) {
                        children_ = java.util.Collections.unmodifiableList(children_);
                        bitField0_ = (bitField0_ & ~0x00000020);
                    }
                    result.children_ = children_;
                } else {
                    result.children_ = childrenBuilder_.build();
                }
                if (((bitField0_ & 0x00000040) != 0)) {
                    engines_ = java.util.Collections.unmodifiableList(engines_);
                    bitField0_ = (bitField0_ & ~0x00000040);
                }
                result.engines_ = engines_;
            }


            private void buildPartial0(EntryData result) {

                int from_bitField0_ = bitField0_;
                if (((from_bitField0_ & 0x00000001) != 0)) {
                    result.type_ = type_;
                }
                if (((from_bitField0_ & 0x00000002) != 0)) {
                    treeId_.makeImmutable();
                    result.treeId_ = treeId_;
                }
                if (((from_bitField0_ & 0x00000004) != 0)) {
                    atomicBlockIds_.makeImmutable();
                    result.atomicBlockIds_ = atomicBlockIds_;
                }
                if (((from_bitField0_ & 0x00000008) != 0)) {
                    pageNumbers_.makeImmutable();
                    result.pageNumbers_ = pageNumbers_;
                }
                if (((from_bitField0_ & 0x00000010) != 0)) {
                    result.properties_ = internalGetProperties();
                    result.properties_.makeImmutable();
                }
            }


            @Override
            public Builder mergeFrom(com.google.protobuf.Message other) {

                if (other instanceof EntryData) {
                    return mergeFrom((EntryData) other);
                } else {
                    super.mergeFrom(other);
                    return this;
                }
            }


            public Builder mergeFrom(EntryData other) {

              if (other == EntryData.getDefaultInstance()) {
                return this;
              }
                if (other.type_ != 0) {
                    setTypeValue(other.getTypeValue());
                }
                if (!other.treeId_.isEmpty()) {
                    if (treeId_.isEmpty()) {
                        treeId_ = other.treeId_;
                        treeId_.makeImmutable();
                        bitField0_ |= 0x00000002;
                    } else {
                        ensureTreeIdIsMutable();
                        treeId_.addAll(other.treeId_);
                    }
                    onChanged();
                }
                if (!other.atomicBlockIds_.isEmpty()) {
                    if (atomicBlockIds_.isEmpty()) {
                        atomicBlockIds_ = other.atomicBlockIds_;
                        atomicBlockIds_.makeImmutable();
                        bitField0_ |= 0x00000004;
                    } else {
                        ensureAtomicBlockIdsIsMutable();
                        atomicBlockIds_.addAll(other.atomicBlockIds_);
                    }
                    onChanged();
                }
                if (!other.pageNumbers_.isEmpty()) {
                    if (pageNumbers_.isEmpty()) {
                        pageNumbers_ = other.pageNumbers_;
                        pageNumbers_.makeImmutable();
                        bitField0_ |= 0x00000008;
                    } else {
                        ensurePageNumbersIsMutable();
                        pageNumbers_.addAll(other.pageNumbers_);
                    }
                    onChanged();
                }
                internalGetMutableProperties().mergeFrom(other.internalGetProperties());
                bitField0_ |= 0x00000010;
                if (childrenBuilder_ == null) {
                    if (!other.children_.isEmpty()) {
                        if (children_.isEmpty()) {
                            children_ = other.children_;
                            bitField0_ = (bitField0_ & ~0x00000020);
                        } else {
                            ensureChildrenIsMutable();
                            children_.addAll(other.children_);
                        }
                        onChanged();
                    }
                } else {
                    if (!other.children_.isEmpty()) {
                        if (childrenBuilder_.isEmpty()) {
                            childrenBuilder_.dispose();
                            childrenBuilder_ = null;
                            children_ = other.children_;
                            bitField0_ = (bitField0_ & ~0x00000020);
                            childrenBuilder_ = com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ? getChildrenFieldBuilder() : null;
                        } else {
                            childrenBuilder_.addAllMessages(other.children_);
                        }
                    }
                }
                if (!other.engines_.isEmpty()) {
                    if (engines_.isEmpty()) {
                        engines_ = other.engines_;
                        bitField0_ = (bitField0_ & ~0x00000040);
                    } else {
                        ensureEnginesIsMutable();
                        engines_.addAll(other.engines_);
                    }
                    onChanged();
                }
                this.mergeUnknownFields(other.getUnknownFields());
                onChanged();
                return this;
            }


            @Override
            public final boolean isInitialized() {

                return true;
            }


            @Override
            public Builder mergeFrom(com.google.protobuf.CodedInputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws java.io.IOException {

                if (extensionRegistry == null) {
                    throw new NullPointerException();
                }
                try {
                    boolean done = false;
                    while (!done) {
                        int tag = input.readTag();
                        switch (tag) {
                            case 0:
                                done = true;
                                break;
                            case 8: {
                                type_ = input.readEnum();
                                bitField0_ |= 0x00000001;
                                break;
                            } // case 8
                            case 16: {
                                int v = input.readInt32();
                                ensureTreeIdIsMutable();
                                treeId_.addInt(v);
                                break;
                            } // case 16
                            case 18: {
                                int length = input.readRawVarint32();
                                int limit = input.pushLimit(length);
                                ensureTreeIdIsMutable();
                                while (input.getBytesUntilLimit() > 0) {
                                    treeId_.addInt(input.readInt32());
                                }
                                input.popLimit(limit);
                                break;
                            } // case 18
                            case 24: {
                                long v = input.readInt64();
                                ensureAtomicBlockIdsIsMutable();
                                atomicBlockIds_.addLong(v);
                                break;
                            } // case 24
                            case 26: {
                                int length = input.readRawVarint32();
                                int limit = input.pushLimit(length);
                                ensureAtomicBlockIdsIsMutable();
                                while (input.getBytesUntilLimit() > 0) {
                                    atomicBlockIds_.addLong(input.readInt64());
                                }
                                input.popLimit(limit);
                                break;
                            } // case 26
                            case 32: {
                                long v = input.readInt64();
                                ensurePageNumbersIsMutable();
                                pageNumbers_.addLong(v);
                                break;
                            } // case 32
                            case 34: {
                                int length = input.readRawVarint32();
                                int limit = input.pushLimit(length);
                                ensurePageNumbersIsMutable();
                                while (input.getBytesUntilLimit() > 0) {
                                    pageNumbers_.addLong(input.readInt64());
                                }
                                input.popLimit(limit);
                                break;
                            } // case 34
                            case 42: {
                                com.google.protobuf.MapEntry<String, String> properties__ = input.readMessage(PropertiesDefaultEntryHolder.defaultEntry.getParserForType(),
                                                                                                              extensionRegistry);
                                internalGetMutableProperties().getMutableMap().put(properties__.getKey(), properties__.getValue());
                                bitField0_ |= 0x00000010;
                                break;
                            } // case 42
                            case 50: {
                                EntryData m = input.readMessage(EntryData.parser(), extensionRegistry);
                                if (childrenBuilder_ == null) {
                                    ensureChildrenIsMutable();
                                    children_.add(m);
                                } else {
                                    childrenBuilder_.addMessage(m);
                                }
                                break;
                            } // case 50
                            case 56: {
                                int tmpRaw = input.readEnum();
                                ensureEnginesIsMutable();
                                engines_.add(tmpRaw);
                                break;
                            } // case 56
                            case 58: {
                                int length = input.readRawVarint32();
                                int oldLimit = input.pushLimit(length);
                                while (input.getBytesUntilLimit() > 0) {
                                    int tmpRaw = input.readEnum();
                                    ensureEnginesIsMutable();
                                    engines_.add(tmpRaw);
                                }
                                input.popLimit(oldLimit);
                                break;
                            } // case 58
                            default: {
                                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                                    done = true; // was an endgroup tag
                                }
                                break;
                            } // default:
                        } // switch (tag)
                    } // while (!done)
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.unwrapIOException();
                } finally {
                    onChanged();
                } // finally
                return this;
            }


            private int bitField0_;

            private int type_ = 0;


            /**
             * <pre>
             * Type of the semantic node.
             * </pre>
             *
             * <code>.NodeType type = 1;</code>
             *
             * @return The enum numeric value on the wire for type.
             */
            @Override
            public int getTypeValue() {

                return type_;
            }


            /**
             * <pre>
             * Type of the semantic node.
             * </pre>
             *
             * <code>.NodeType type = 1;</code>
             *
             * @param value The enum numeric value on the wire for type to set.
             * @return This builder for chaining.
             */
            public Builder setTypeValue(int value) {

                type_ = value;
                bitField0_ |= 0x00000001;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Type of the semantic node.
             * </pre>
             *
             * <code>.NodeType type = 1;</code>
             *
             * @return The type.
             */
            @Override
            public NodeTypeProto.NodeType getType() {

                NodeTypeProto.NodeType result = NodeTypeProto.NodeType.forNumber(type_);
                return result == null ? NodeTypeProto.NodeType.UNRECOGNIZED : result;
            }


            /**
             * <pre>
             * Type of the semantic node.
             * </pre>
             *
             * <code>.NodeType type = 1;</code>
             *
             * @param value The type to set.
             * @return This builder for chaining.
             */
            public Builder setType(NodeTypeProto.NodeType value) {

                if (value == null) {
                    throw new NullPointerException();
                }
                bitField0_ |= 0x00000001;
                type_ = value.getNumber();
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Type of the semantic node.
             * </pre>
             *
             * <code>.NodeType type = 1;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearType() {

                bitField0_ = (bitField0_ & ~0x00000001);
                type_ = 0;
                onChanged();
                return this;
            }


            private com.google.protobuf.Internal.IntList treeId_ = emptyIntList();


            private void ensureTreeIdIsMutable() {

                if (!treeId_.isModifiable()) {
                    treeId_ = makeMutableCopy(treeId_);
                }
                bitField0_ |= 0x00000002;
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @return A list containing the treeId.
             */
            public java.util.List<Integer> getTreeIdList() {

                treeId_.makeImmutable();
                return treeId_;
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @return The count of treeId.
             */
            public int getTreeIdCount() {

                return treeId_.size();
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @param index The index of the element to return.
             * @return The treeId at the given index.
             */
            public int getTreeId(int index) {

                return treeId_.getInt(index);
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @param index The index to set the value at.
             * @param value The treeId to set.
             * @return This builder for chaining.
             */
            public Builder setTreeId(int index, int value) {

                ensureTreeIdIsMutable();
                treeId_.setInt(index, value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @param value The treeId to add.
             * @return This builder for chaining.
             */
            public Builder addTreeId(int value) {

                ensureTreeIdIsMutable();
                treeId_.addInt(value);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @param values The treeId to add.
             * @return This builder for chaining.
             */
            public Builder addAllTreeId(Iterable<? extends Integer> values) {

                ensureTreeIdIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(values, treeId_);
                bitField0_ |= 0x00000002;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the position in the parsed tree structure.
             * </pre>
             *
             * <code>repeated int32 treeId = 2;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearTreeId() {

                treeId_ = emptyIntList();
                bitField0_ = (bitField0_ & ~0x00000002);
                onChanged();
                return this;
            }


            private com.google.protobuf.Internal.LongList atomicBlockIds_ = emptyLongList();


            private void ensureAtomicBlockIdsIsMutable() {

                if (!atomicBlockIds_.isModifiable()) {
                    atomicBlockIds_ = makeMutableCopy(atomicBlockIds_);
                }
                bitField0_ |= 0x00000004;
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @return A list containing the atomicBlockIds.
             */
            public java.util.List<Long> getAtomicBlockIdsList() {

                atomicBlockIds_.makeImmutable();
                return atomicBlockIds_;
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @return The count of atomicBlockIds.
             */
            public int getAtomicBlockIdsCount() {

                return atomicBlockIds_.size();
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @param index The index of the element to return.
             * @return The atomicBlockIds at the given index.
             */
            public long getAtomicBlockIds(int index) {

                return atomicBlockIds_.getLong(index);
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @param index The index to set the value at.
             * @param value The atomicBlockIds to set.
             * @return This builder for chaining.
             */
            public Builder setAtomicBlockIds(int index, long value) {

                ensureAtomicBlockIdsIsMutable();
                atomicBlockIds_.setLong(index, value);
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @param value The atomicBlockIds to add.
             * @return This builder for chaining.
             */
            public Builder addAtomicBlockIds(long value) {

                ensureAtomicBlockIdsIsMutable();
                atomicBlockIds_.addLong(value);
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @param values The atomicBlockIds to add.
             * @return This builder for chaining.
             */
            public Builder addAllAtomicBlockIds(Iterable<? extends Long> values) {

                ensureAtomicBlockIdsIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(values, atomicBlockIds_);
                bitField0_ |= 0x00000004;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the text block IDs associated with this semantic node.
             * </pre>
             *
             * <code>repeated int64 atomicBlockIds = 3;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearAtomicBlockIds() {

                atomicBlockIds_ = emptyLongList();
                bitField0_ = (bitField0_ & ~0x00000004);
                onChanged();
                return this;
            }


            private com.google.protobuf.Internal.LongList pageNumbers_ = emptyLongList();


            private void ensurePageNumbersIsMutable() {

                if (!pageNumbers_.isModifiable()) {
                    pageNumbers_ = makeMutableCopy(pageNumbers_);
                }
                bitField0_ |= 0x00000008;
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @return A list containing the pageNumbers.
             */
            public java.util.List<Long> getPageNumbersList() {

                pageNumbers_.makeImmutable();
                return pageNumbers_;
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @return The count of pageNumbers.
             */
            public int getPageNumbersCount() {

                return pageNumbers_.size();
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @param index The index of the element to return.
             * @return The pageNumbers at the given index.
             */
            public long getPageNumbers(int index) {

                return pageNumbers_.getLong(index);
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @param index The index to set the value at.
             * @param value The pageNumbers to set.
             * @return This builder for chaining.
             */
            public Builder setPageNumbers(int index, long value) {

                ensurePageNumbersIsMutable();
                pageNumbers_.setLong(index, value);
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @param value The pageNumbers to add.
             * @return This builder for chaining.
             */
            public Builder addPageNumbers(long value) {

                ensurePageNumbersIsMutable();
                pageNumbers_.addLong(value);
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @param values The pageNumbers to add.
             * @return This builder for chaining.
             */
            public Builder addAllPageNumbers(Iterable<? extends Long> values) {

                ensurePageNumbersIsMutable();
                com.google.protobuf.AbstractMessageLite.Builder.addAll(values, pageNumbers_);
                bitField0_ |= 0x00000008;
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Specifies the pages this semantic node appears on.
             * </pre>
             *
             * <code>repeated int64 pageNumbers = 4;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearPageNumbers() {

                pageNumbers_ = emptyLongList();
                bitField0_ = (bitField0_ & ~0x00000008);
                onChanged();
                return this;
            }


            private com.google.protobuf.MapField<String, String> properties_;


            private com.google.protobuf.MapField<String, String> internalGetProperties() {

                if (properties_ == null) {
                    return com.google.protobuf.MapField.emptyMapField(PropertiesDefaultEntryHolder.defaultEntry);
                }
                return properties_;
            }


            private com.google.protobuf.MapField<String, String> internalGetMutableProperties() {

                if (properties_ == null) {
                    properties_ = com.google.protobuf.MapField.newMapField(PropertiesDefaultEntryHolder.defaultEntry);
                }
                if (!properties_.isMutable()) {
                    properties_ = properties_.copy();
                }
                bitField0_ |= 0x00000010;
                onChanged();
                return properties_;
            }


            public int getPropertiesCount() {

                return internalGetProperties().getMap().size();
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            @Override
            public boolean containsProperties(String key) {

                if (key == null) {
                    throw new NullPointerException("map key");
                }
                return internalGetProperties().getMap().containsKey(key);
            }


            /**
             * Use {@link #getPropertiesMap()} instead.
             */
            @Override
            @Deprecated
            public java.util.Map<String, String> getProperties() {

                return getPropertiesMap();
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            @Override
            public java.util.Map<String, String> getPropertiesMap() {

                return internalGetProperties().getMap();
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            @Override
            public /* nullable */
            String getPropertiesOrDefault(String key,
                    /* nullable */
                                          String defaultValue) {

                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<String, String> map = internalGetProperties().getMap();
                return map.containsKey(key) ? map.get(key) : defaultValue;
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            @Override
            public String getPropertiesOrThrow(String key) {

                if (key == null) {
                    throw new NullPointerException("map key");
                }
                java.util.Map<String, String> map = internalGetProperties().getMap();
                if (!map.containsKey(key)) {
                    throw new IllegalArgumentException();
                }
                return map.get(key);
            }


            public Builder clearProperties() {

                bitField0_ = (bitField0_ & ~0x00000010);
                internalGetMutableProperties().getMutableMap().clear();
                return this;
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            public Builder removeProperties(String key) {

                if (key == null) {
                    throw new NullPointerException("map key");
                }
                internalGetMutableProperties().getMutableMap().remove(key);
                return this;
            }


            /**
             * Use alternate mutation accessors instead.
             */
            @Deprecated
            public java.util.Map<String, String> getMutableProperties() {

                bitField0_ |= 0x00000010;
                return internalGetMutableProperties().getMutableMap();
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            public Builder putProperties(String key, String value) {

                if (key == null) {
                    throw new NullPointerException("map key");
                }
                if (value == null) {
                    throw new NullPointerException("map value");
                }
                internalGetMutableProperties().getMutableMap().put(key, value);
                bitField0_ |= 0x00000010;
                return this;
            }


            /**
             * <pre>
             * Some semantic nodes have additional information, this information is stored in this Map.
             * </pre>
             *
             * <code>map&lt;string, string&gt; properties = 5;</code>
             */
            public Builder putAllProperties(java.util.Map<String, String> values) {

                internalGetMutableProperties().getMutableMap().putAll(values);
                bitField0_ |= 0x00000010;
                return this;
            }


            private java.util.List<EntryData> children_ = java.util.Collections.emptyList();


            private void ensureChildrenIsMutable() {

                if (!((bitField0_ & 0x00000020) != 0)) {
                    children_ = new java.util.ArrayList<EntryData>(children_);
                    bitField0_ |= 0x00000020;
                }
            }


            private com.google.protobuf.RepeatedFieldBuilder<EntryData, Builder, EntryDataOrBuilder> childrenBuilder_;


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public java.util.List<EntryData> getChildrenList() {

                if (childrenBuilder_ == null) {
                    return java.util.Collections.unmodifiableList(children_);
                } else {
                    return childrenBuilder_.getMessageList();
                }
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public int getChildrenCount() {

                if (childrenBuilder_ == null) {
                    return children_.size();
                } else {
                    return childrenBuilder_.getCount();
                }
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public EntryData getChildren(int index) {

                if (childrenBuilder_ == null) {
                    return children_.get(index);
                } else {
                    return childrenBuilder_.getMessage(index);
                }
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder setChildren(int index, EntryData value) {

                if (childrenBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureChildrenIsMutable();
                    children_.set(index, value);
                    onChanged();
                } else {
                    childrenBuilder_.setMessage(index, value);
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder setChildren(int index, Builder builderForValue) {

                if (childrenBuilder_ == null) {
                    ensureChildrenIsMutable();
                    children_.set(index, builderForValue.build());
                    onChanged();
                } else {
                    childrenBuilder_.setMessage(index, builderForValue.build());
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addChildren(EntryData value) {

                if (childrenBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureChildrenIsMutable();
                    children_.add(value);
                    onChanged();
                } else {
                    childrenBuilder_.addMessage(value);
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addChildren(int index, EntryData value) {

                if (childrenBuilder_ == null) {
                    if (value == null) {
                        throw new NullPointerException();
                    }
                    ensureChildrenIsMutable();
                    children_.add(index, value);
                    onChanged();
                } else {
                    childrenBuilder_.addMessage(index, value);
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addChildren(Builder builderForValue) {

                if (childrenBuilder_ == null) {
                    ensureChildrenIsMutable();
                    children_.add(builderForValue.build());
                    onChanged();
                } else {
                    childrenBuilder_.addMessage(builderForValue.build());
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addChildren(int index, Builder builderForValue) {

                if (childrenBuilder_ == null) {
                    ensureChildrenIsMutable();
                    children_.add(index, builderForValue.build());
                    onChanged();
                } else {
                    childrenBuilder_.addMessage(index, builderForValue.build());
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addAllChildren(Iterable<? extends EntryData> values) {

                if (childrenBuilder_ == null) {
                    ensureChildrenIsMutable();
                    com.google.protobuf.AbstractMessageLite.Builder.addAll(values, children_);
                    onChanged();
                } else {
                    childrenBuilder_.addAllMessages(values);
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder clearChildren() {

                if (childrenBuilder_ == null) {
                    children_ = java.util.Collections.emptyList();
                    bitField0_ = (bitField0_ & ~0x00000020);
                    onChanged();
                } else {
                    childrenBuilder_.clear();
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder removeChildren(int index) {

                if (childrenBuilder_ == null) {
                    ensureChildrenIsMutable();
                    children_.remove(index);
                    onChanged();
                } else {
                    childrenBuilder_.remove(index);
                }
                return this;
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder getChildrenBuilder(int index) {

                return getChildrenFieldBuilder().getBuilder(index);
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public EntryDataOrBuilder getChildrenOrBuilder(int index) {

                if (childrenBuilder_ == null) {
                    return children_.get(index);
                } else {
                    return childrenBuilder_.getMessageOrBuilder(index);
                }
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public java.util.List<? extends EntryDataOrBuilder> getChildrenOrBuilderList() {

                if (childrenBuilder_ != null) {
                    return childrenBuilder_.getMessageOrBuilderList();
                } else {
                    return java.util.Collections.unmodifiableList(children_);
                }
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addChildrenBuilder() {

                return getChildrenFieldBuilder().addBuilder(EntryData.getDefaultInstance());
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public Builder addChildrenBuilder(int index) {

                return getChildrenFieldBuilder().addBuilder(index, EntryData.getDefaultInstance());
            }


            /**
             * <pre>
             * All child Entries of this Entry.
             * </pre>
             *
             * <code>repeated .EntryData children = 6;</code>
             */
            public java.util.List<Builder> getChildrenBuilderList() {

                return getChildrenFieldBuilder().getBuilderList();
            }


            private com.google.protobuf.RepeatedFieldBuilder<EntryData, Builder, EntryDataOrBuilder> getChildrenFieldBuilder() {

                if (childrenBuilder_ == null) {
                    childrenBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<EntryData, Builder, EntryDataOrBuilder>(children_,
                                                                                                                            ((bitField0_ & 0x00000020) != 0),
                                                                                                                            getParentForChildren(),
                                                                                                                            isClean());
                    children_ = null;
                }
                return childrenBuilder_;
            }


            private java.util.List<Integer> engines_ = java.util.Collections.emptyList();


            private void ensureEnginesIsMutable() {

                if (!((bitField0_ & 0x00000040) != 0)) {
                    engines_ = new java.util.ArrayList<Integer>(engines_);
                    bitField0_ |= 0x00000040;
                }
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @return A list containing the engines.
             */
            public java.util.List<LayoutEngineProto.LayoutEngine> getEnginesList() {

                return new com.google.protobuf.Internal.ListAdapter<Integer, LayoutEngineProto.LayoutEngine>(engines_, engines_converter_);
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @return The count of engines.
             */
            public int getEnginesCount() {

                return engines_.size();
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param index The index of the element to return.
             * @return The engines at the given index.
             */
            public LayoutEngineProto.LayoutEngine getEngines(int index) {

                return engines_converter_.convert(engines_.get(index));
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param index The index to set the value at.
             * @param value The engines to set.
             * @return This builder for chaining.
             */
            public Builder setEngines(int index, LayoutEngineProto.LayoutEngine value) {

                if (value == null) {
                    throw new NullPointerException();
                }
                ensureEnginesIsMutable();
                engines_.set(index, value.getNumber());
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param value The engines to add.
             * @return This builder for chaining.
             */
            public Builder addEngines(LayoutEngineProto.LayoutEngine value) {

                if (value == null) {
                    throw new NullPointerException();
                }
                ensureEnginesIsMutable();
                engines_.add(value.getNumber());
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param values The engines to add.
             * @return This builder for chaining.
             */
            public Builder addAllEngines(Iterable<? extends LayoutEngineProto.LayoutEngine> values) {

                ensureEnginesIsMutable();
                for (LayoutEngineProto.LayoutEngine value : values) {
                    engines_.add(value.getNumber());
                }
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @return This builder for chaining.
             */
            public Builder clearEngines() {

                engines_ = java.util.Collections.emptyList();
                bitField0_ = (bitField0_ & ~0x00000040);
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @return A list containing the enum numeric values on the wire for engines.
             */
            public java.util.List<Integer> getEnginesValueList() {

                return java.util.Collections.unmodifiableList(engines_);
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param index The index of the value to return.
             * @return The enum numeric value on the wire of engines at the given index.
             */
            public int getEnginesValue(int index) {

                return engines_.get(index);
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param index The index to set the value at.
             * @param value The enum numeric value on the wire for engines to set.
             * @return This builder for chaining.
             */
            public Builder setEnginesValue(int index, int value) {

                ensureEnginesIsMutable();
                engines_.set(index, value);
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param value The enum numeric value on the wire for engines to add.
             * @return This builder for chaining.
             */
            public Builder addEnginesValue(int value) {

                ensureEnginesIsMutable();
                engines_.add(value);
                onChanged();
                return this;
            }


            /**
             * <pre>
             * Describes the origin of the semantic node.
             * </pre>
             *
             * <code>repeated .LayoutEngine engines = 7;</code>
             *
             * @param values The enum numeric values on the wire for engines to add.
             * @return This builder for chaining.
             */
            public Builder addAllEnginesValue(Iterable<Integer> values) {

                ensureEnginesIsMutable();
                for (int value : values) {
                    engines_.add(value);
                }
                onChanged();
                return this;
            }

            // @@protoc_insertion_point(builder_scope:EntryData)
        }

        // @@protoc_insertion_point(class_scope:EntryData)
        private static final EntryData DEFAULT_INSTANCE;

        static {
            DEFAULT_INSTANCE = new EntryData();
        }

        public static EntryData getDefaultInstance() {

            return DEFAULT_INSTANCE;
        }


        private static final com.google.protobuf.Parser<EntryData> PARSER = new com.google.protobuf.AbstractParser<EntryData>() {
            @Override
            public EntryData parsePartialFrom(com.google.protobuf.CodedInputStream input,
                                              com.google.protobuf.ExtensionRegistryLite extensionRegistry) throws com.google.protobuf.InvalidProtocolBufferException {

                Builder builder = newBuilder();
                try {
                    builder.mergeFrom(input, extensionRegistry);
                } catch (com.google.protobuf.InvalidProtocolBufferException e) {
                    throw e.setUnfinishedMessage(builder.buildPartial());
                } catch (com.google.protobuf.UninitializedMessageException e) {
                    throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
                } catch (java.io.IOException e) {
                    throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(builder.buildPartial());
                }
                return builder.buildPartial();
            }
        };


        public static com.google.protobuf.Parser<EntryData> parser() {

            return PARSER;
        }


        @Override
        public com.google.protobuf.Parser<EntryData> getParserForType() {

            return PARSER;
        }


        @Override
        public EntryData getDefaultInstanceForType() {

            return DEFAULT_INSTANCE;
        }

    }

    private static final com.google.protobuf.Descriptors.Descriptor internal_static_EntryData_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_EntryData_fieldAccessorTable;
    private static final com.google.protobuf.Descriptors.Descriptor internal_static_EntryData_PropertiesEntry_descriptor;
    private static final com.google.protobuf.GeneratedMessage.FieldAccessorTable internal_static_EntryData_PropertiesEntry_fieldAccessorTable;


    public static com.google.protobuf.Descriptors.FileDescriptor getDescriptor() {

        return descriptor;
    }


    private static com.google.protobuf.Descriptors.FileDescriptor descriptor;

    static {
        String[] descriptorData = {"\n\017EntryData.proto\032\022LayoutEngine.proto\032\016N"
                                   + "odeType.proto\"\202\002\n\tEntryData\022\027\n\004type\030\001 \001("
                                   + "\0162\t.NodeType\022\016\n\006treeId\030\002 \003(\005\022\026\n\016atomicBl"
                                   + "ockIds\030\003 \003(\003\022\023\n\013pageNumbers\030\004 \003(\003\022.\n\npro"
                                   + "perties\030\005 \003(\0132\032.EntryData.PropertiesEntr"
                                   + "y\022\034\n\010children\030\006 \003(\0132\n.EntryData\022\036\n\007engin"
                                   + "es\030\007 \003(\0162\r.LayoutEngine\0321\n\017PropertiesEnt"
                                   + "ry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001b\006prot"
                                   + "o3"};
        descriptor = com.google.protobuf.Descriptors.FileDescriptor.internalBuildGeneratedFileFrom(descriptorData,
                                                                                                   new com.google.protobuf.Descriptors.FileDescriptor[]{LayoutEngineProto.getDescriptor(), NodeTypeProto.getDescriptor(),});
        internal_static_EntryData_descriptor = getDescriptor().getMessageTypes()
                .get(0);
        internal_static_EntryData_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(internal_static_EntryData_descriptor,
                                                                                                                   new String[]{"Type", "TreeId", "AtomicBlockIds", "PageNumbers", "Properties", "Children", "Engines",});
        internal_static_EntryData_PropertiesEntry_descriptor = internal_static_EntryData_descriptor.getNestedTypes()
                .get(0);
        internal_static_EntryData_PropertiesEntry_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable(
                internal_static_EntryData_PropertiesEntry_descriptor,
                new String[]{"Key", "Value",});
        descriptor.resolveAllFeaturesImmutable();
        LayoutEngineProto.getDescriptor();
        NodeTypeProto.getDescriptor();
    }

    // @@protoc_insertion_point(outer_class_scope)
}
