// source: concept.proto
/**
 * @fileoverview
 * @enhanceable
 * @suppress {missingRequire} reports error on implicit type usages.
 * @suppress {messageConventions} JS Compiler reports an error if a variable or
 *     field starts with 'MSG_' and isn't a translatable message.
 * @public
 */
// GENERATED CODE -- DO NOT EDIT!
/* eslint-disable */
// @ts-nocheck

var jspb = require('google-protobuf');
var goog = jspb;
var global = (function() { return this || window || global || self || Function('return this')(); }).call(null);

var vector_pb = require('./vector_pb.js');
goog.object.extend(proto, vector_pb);
var spatial_pb = require('./spatial_pb.js');
goog.object.extend(proto, spatial_pb);
var meta_pb = require('./meta_pb.js');
goog.object.extend(proto, meta_pb);
goog.exportSymbol('proto.Messages.Command', null, global);
goog.exportSymbol('proto.Messages.Coupling', null, global);
goog.exportSymbol('proto.Messages.Function', null, global);
goog.exportSymbol('proto.Messages.Model', null, global);
goog.exportSymbol('proto.Messages.Script', null, global);
goog.exportSymbol('proto.Messages.System', null, global);
goog.exportSymbol('proto.Messages.Variables', null, global);
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.Variables = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Variables.repeatedFields_, null);
};
goog.inherits(proto.Messages.Variables, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Variables.displayName = 'proto.Messages.Variables';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.Function = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Function.repeatedFields_, null);
};
goog.inherits(proto.Messages.Function, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Function.displayName = 'proto.Messages.Function';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.Command = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Command.repeatedFields_, null);
};
goog.inherits(proto.Messages.Command, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Command.displayName = 'proto.Messages.Command';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.Script = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Script.repeatedFields_, null);
};
goog.inherits(proto.Messages.Script, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Script.displayName = 'proto.Messages.Script';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.Model = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Model.repeatedFields_, null);
};
goog.inherits(proto.Messages.Model, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Model.displayName = 'proto.Messages.Model';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.Coupling = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.Coupling.repeatedFields_, null);
};
goog.inherits(proto.Messages.Coupling, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.Coupling.displayName = 'proto.Messages.Coupling';
}
/**
 * Generated by JsPbCodeGenerator.
 * @param {Array=} opt_data Optional initial data array, typically from a
 * server response, or constructed directly in Javascript. The array is used
 * in place and becomes part of the constructed object. It is not cloned.
 * If no data is provided, the constructed object will be empty, but still
 * valid.
 * @extends {jspb.Message}
 * @constructor
 */
proto.Messages.System = function(opt_data) {
  jspb.Message.initialize(this, opt_data, 0, -1, proto.Messages.System.repeatedFields_, null);
};
goog.inherits(proto.Messages.System, jspb.Message);
if (goog.DEBUG && !COMPILED) {
  /**
   * @public
   * @override
   */
  proto.Messages.System.displayName = 'proto.Messages.System';
}

/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Variables.repeatedFields_ = [2,3,4,6,7,8,10,11,12,14,15,16];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Variables.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Variables.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Variables} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Variables.toObject = function(includeInstance, msg) {
  var f, obj = {
    intNamesList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
    intValuesList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
    intDescriptionsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f,
    boolNamesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
    boolValuesList: (f = jspb.Message.getRepeatedBooleanField(msg, 7)) == null ? undefined : f,
    boolDescriptionsList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f,
    doubleNamesList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f,
    doubleValuesList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 11)) == null ? undefined : f,
    doubleDescriptionsList: (f = jspb.Message.getRepeatedField(msg, 12)) == null ? undefined : f,
    stringNamesList: (f = jspb.Message.getRepeatedField(msg, 14)) == null ? undefined : f,
    stringValuesList: (f = jspb.Message.getRepeatedField(msg, 15)) == null ? undefined : f,
    stringDescriptionsList: (f = jspb.Message.getRepeatedField(msg, 16)) == null ? undefined : f
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Variables}
 */
proto.Messages.Variables.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Variables;
  return proto.Messages.Variables.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Variables} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Variables}
 */
proto.Messages.Variables.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.addIntNames(value);
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);
      for (var i = 0; i < values.length; i++) {
        msg.addIntValues(values[i]);
      }
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.addIntDescriptions(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.addBoolNames(value);
      break;
    case 7:
      var values = /** @type {!Array<boolean>} */ (reader.isDelimited() ? reader.readPackedBool() : [reader.readBool()]);
      for (var i = 0; i < values.length; i++) {
        msg.addBoolValues(values[i]);
      }
      break;
    case 8:
      var value = /** @type {string} */ (reader.readString());
      msg.addBoolDescriptions(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.addDoubleNames(value);
      break;
    case 11:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addDoubleValues(values[i]);
      }
      break;
    case 12:
      var value = /** @type {string} */ (reader.readString());
      msg.addDoubleDescriptions(value);
      break;
    case 14:
      var value = /** @type {string} */ (reader.readString());
      msg.addStringNames(value);
      break;
    case 15:
      var value = /** @type {string} */ (reader.readString());
      msg.addStringValues(value);
      break;
    case 16:
      var value = /** @type {string} */ (reader.readString());
      msg.addStringDescriptions(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Variables.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Variables.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Variables} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Variables.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getIntNamesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      2,
      f
    );
  }
  f = message.getIntValuesList();
  if (f.length > 0) {
    writer.writePackedInt32(
      3,
      f
    );
  }
  f = message.getIntDescriptionsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      4,
      f
    );
  }
  f = message.getBoolNamesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      6,
      f
    );
  }
  f = message.getBoolValuesList();
  if (f.length > 0) {
    writer.writePackedBool(
      7,
      f
    );
  }
  f = message.getBoolDescriptionsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      8,
      f
    );
  }
  f = message.getDoubleNamesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      10,
      f
    );
  }
  f = message.getDoubleValuesList();
  if (f.length > 0) {
    writer.writePackedDouble(
      11,
      f
    );
  }
  f = message.getDoubleDescriptionsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      12,
      f
    );
  }
  f = message.getStringNamesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      14,
      f
    );
  }
  f = message.getStringValuesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      15,
      f
    );
  }
  f = message.getStringDescriptionsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      16,
      f
    );
  }
};


/**
 * repeated string int_names = 2;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getIntNamesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setIntNamesList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addIntNames = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearIntNamesList = function() {
  return this.setIntNamesList([]);
};


/**
 * repeated int32 int_values = 3;
 * @return {!Array<number>}
 */
proto.Messages.Variables.prototype.getIntValuesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setIntValuesList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addIntValues = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearIntValuesList = function() {
  return this.setIntValuesList([]);
};


/**
 * repeated string int_descriptions = 4;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getIntDescriptionsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 4));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setIntDescriptionsList = function(value) {
  return jspb.Message.setField(this, 4, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addIntDescriptions = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearIntDescriptionsList = function() {
  return this.setIntDescriptionsList([]);
};


/**
 * repeated string bool_names = 6;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getBoolNamesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setBoolNamesList = function(value) {
  return jspb.Message.setField(this, 6, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addBoolNames = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearBoolNamesList = function() {
  return this.setBoolNamesList([]);
};


/**
 * repeated bool bool_values = 7;
 * @return {!Array<boolean>}
 */
proto.Messages.Variables.prototype.getBoolValuesList = function() {
  return /** @type {!Array<boolean>} */ (jspb.Message.getRepeatedBooleanField(this, 7));
};


/**
 * @param {!Array<boolean>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setBoolValuesList = function(value) {
  return jspb.Message.setField(this, 7, value || []);
};


/**
 * @param {boolean} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addBoolValues = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 7, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearBoolValuesList = function() {
  return this.setBoolValuesList([]);
};


/**
 * repeated string bool_descriptions = 8;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getBoolDescriptionsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 8));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setBoolDescriptionsList = function(value) {
  return jspb.Message.setField(this, 8, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addBoolDescriptions = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 8, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearBoolDescriptionsList = function() {
  return this.setBoolDescriptionsList([]);
};


/**
 * repeated string double_names = 10;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getDoubleNamesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setDoubleNamesList = function(value) {
  return jspb.Message.setField(this, 10, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addDoubleNames = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 10, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearDoubleNamesList = function() {
  return this.setDoubleNamesList([]);
};


/**
 * repeated double double_values = 11;
 * @return {!Array<number>}
 */
proto.Messages.Variables.prototype.getDoubleValuesList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 11));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setDoubleValuesList = function(value) {
  return jspb.Message.setField(this, 11, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addDoubleValues = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 11, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearDoubleValuesList = function() {
  return this.setDoubleValuesList([]);
};


/**
 * repeated string double_descriptions = 12;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getDoubleDescriptionsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 12));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setDoubleDescriptionsList = function(value) {
  return jspb.Message.setField(this, 12, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addDoubleDescriptions = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 12, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearDoubleDescriptionsList = function() {
  return this.setDoubleDescriptionsList([]);
};


/**
 * repeated string string_names = 14;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getStringNamesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 14));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setStringNamesList = function(value) {
  return jspb.Message.setField(this, 14, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addStringNames = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 14, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearStringNamesList = function() {
  return this.setStringNamesList([]);
};


/**
 * repeated string string_values = 15;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getStringValuesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 15));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setStringValuesList = function(value) {
  return jspb.Message.setField(this, 15, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addStringValues = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 15, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearStringValuesList = function() {
  return this.setStringValuesList([]);
};


/**
 * repeated string string_descriptions = 16;
 * @return {!Array<string>}
 */
proto.Messages.Variables.prototype.getStringDescriptionsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 16));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.setStringDescriptionsList = function(value) {
  return jspb.Message.setField(this, 16, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.addStringDescriptions = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 16, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Variables} returns this
 */
proto.Messages.Variables.prototype.clearStringDescriptionsList = function() {
  return this.setStringDescriptionsList([]);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Function.repeatedFields_ = [2,3,4,5,6,7,8];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Function.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Function.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Function} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Function.toObject = function(includeInstance, msg) {
  var f, obj = {
    name: jspb.Message.getFieldWithDefault(msg, 1, ""),
    argumentTypesList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,
    argumentDescriptionsList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
    inputsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f,
    outputsList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f,
    constantsList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
    toBeDefinedList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f,
    dataList: jspb.Message.toObjectList(msg.getDataList(),
    vector_pb.Vector64.toObject, includeInstance),
    cpuCapable: jspb.Message.getBooleanFieldWithDefault(msg, 10, false),
    gpuCapable: jspb.Message.getBooleanFieldWithDefault(msg, 11, false),
    includeAsPreprocessor: jspb.Message.getBooleanFieldWithDefault(msg, 12, false),
    omitFromMainLoop: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),
    includeAsPostprocessor: jspb.Message.getBooleanFieldWithDefault(msg, 14, false),
    mutuallyExclusive: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),
    onlyOnce: jspb.Message.getBooleanFieldWithDefault(msg, 16, false),
    pushFront: jspb.Message.getBooleanFieldWithDefault(msg, 17, false),
    dontFlatten: jspb.Message.getBooleanFieldWithDefault(msg, 18, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Function}
 */
proto.Messages.Function.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Function;
  return proto.Messages.Function.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Function} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Function}
 */
proto.Messages.Function.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.addArgumentTypes(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.addArgumentDescriptions(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.addInputs(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.addOutputs(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.addConstants(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.addToBeDefined(value);
      break;
    case 8:
      var value = new vector_pb.Vector64;
      reader.readMessage(value,vector_pb.Vector64.deserializeBinaryFromReader);
      msg.addData(value);
      break;
    case 10:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setCpuCapable(value);
      break;
    case 11:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setGpuCapable(value);
      break;
    case 12:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIncludeAsPreprocessor(value);
      break;
    case 13:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setOmitFromMainLoop(value);
      break;
    case 14:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIncludeAsPostprocessor(value);
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setMutuallyExclusive(value);
      break;
    case 16:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setOnlyOnce(value);
      break;
    case 17:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setPushFront(value);
      break;
    case 18:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setDontFlatten(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Function.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Function.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Function} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Function.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getArgumentTypesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      2,
      f
    );
  }
  f = message.getArgumentDescriptionsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      3,
      f
    );
  }
  f = message.getInputsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      4,
      f
    );
  }
  f = message.getOutputsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      5,
      f
    );
  }
  f = message.getConstantsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      6,
      f
    );
  }
  f = message.getToBeDefinedList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      7,
      f
    );
  }
  f = message.getDataList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      8,
      f,
      vector_pb.Vector64.serializeBinaryToWriter
    );
  }
  f = message.getCpuCapable();
  if (f) {
    writer.writeBool(
      10,
      f
    );
  }
  f = message.getGpuCapable();
  if (f) {
    writer.writeBool(
      11,
      f
    );
  }
  f = message.getIncludeAsPreprocessor();
  if (f) {
    writer.writeBool(
      12,
      f
    );
  }
  f = message.getOmitFromMainLoop();
  if (f) {
    writer.writeBool(
      13,
      f
    );
  }
  f = message.getIncludeAsPostprocessor();
  if (f) {
    writer.writeBool(
      14,
      f
    );
  }
  f = message.getMutuallyExclusive();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
  f = message.getOnlyOnce();
  if (f) {
    writer.writeBool(
      16,
      f
    );
  }
  f = message.getPushFront();
  if (f) {
    writer.writeBool(
      17,
      f
    );
  }
  f = message.getDontFlatten();
  if (f) {
    writer.writeBool(
      18,
      f
    );
  }
};


/**
 * optional string name = 1;
 * @return {string}
 */
proto.Messages.Function.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * repeated string argument_types = 2;
 * @return {!Array<string>}
 */
proto.Messages.Function.prototype.getArgumentTypesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setArgumentTypesList = function(value) {
  return jspb.Message.setField(this, 2, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.addArgumentTypes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 2, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearArgumentTypesList = function() {
  return this.setArgumentTypesList([]);
};


/**
 * repeated string argument_descriptions = 3;
 * @return {!Array<string>}
 */
proto.Messages.Function.prototype.getArgumentDescriptionsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setArgumentDescriptionsList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.addArgumentDescriptions = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearArgumentDescriptionsList = function() {
  return this.setArgumentDescriptionsList([]);
};


/**
 * repeated string inputs = 4;
 * @return {!Array<string>}
 */
proto.Messages.Function.prototype.getInputsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 4));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setInputsList = function(value) {
  return jspb.Message.setField(this, 4, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.addInputs = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearInputsList = function() {
  return this.setInputsList([]);
};


/**
 * repeated string outputs = 5;
 * @return {!Array<string>}
 */
proto.Messages.Function.prototype.getOutputsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 5));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setOutputsList = function(value) {
  return jspb.Message.setField(this, 5, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.addOutputs = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 5, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearOutputsList = function() {
  return this.setOutputsList([]);
};


/**
 * repeated string constants = 6;
 * @return {!Array<string>}
 */
proto.Messages.Function.prototype.getConstantsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setConstantsList = function(value) {
  return jspb.Message.setField(this, 6, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.addConstants = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearConstantsList = function() {
  return this.setConstantsList([]);
};


/**
 * repeated string to_be_defined = 7;
 * @return {!Array<string>}
 */
proto.Messages.Function.prototype.getToBeDefinedList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 7));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setToBeDefinedList = function(value) {
  return jspb.Message.setField(this, 7, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.addToBeDefined = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 7, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearToBeDefinedList = function() {
  return this.setToBeDefinedList([]);
};


/**
 * repeated Vector64 data = 8;
 * @return {!Array<!proto.Messages.Vector64>}
 */
proto.Messages.Function.prototype.getDataList = function() {
  return /** @type{!Array<!proto.Messages.Vector64>} */ (
    jspb.Message.getRepeatedWrapperField(this, vector_pb.Vector64, 8));
};


/**
 * @param {!Array<!proto.Messages.Vector64>} value
 * @return {!proto.Messages.Function} returns this
*/
proto.Messages.Function.prototype.setDataList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 8, value);
};


/**
 * @param {!proto.Messages.Vector64=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Vector64}
 */
proto.Messages.Function.prototype.addData = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.Messages.Vector64, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.clearDataList = function() {
  return this.setDataList([]);
};


/**
 * optional bool cpu_capable = 10;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getCpuCapable = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 10, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setCpuCapable = function(value) {
  return jspb.Message.setProto3BooleanField(this, 10, value);
};


/**
 * optional bool gpu_capable = 11;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getGpuCapable = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 11, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setGpuCapable = function(value) {
  return jspb.Message.setProto3BooleanField(this, 11, value);
};


/**
 * optional bool include_as_preprocessor = 12;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getIncludeAsPreprocessor = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 12, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setIncludeAsPreprocessor = function(value) {
  return jspb.Message.setProto3BooleanField(this, 12, value);
};


/**
 * optional bool omit_from_main_loop = 13;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getOmitFromMainLoop = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setOmitFromMainLoop = function(value) {
  return jspb.Message.setProto3BooleanField(this, 13, value);
};


/**
 * optional bool include_as_postprocessor = 14;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getIncludeAsPostprocessor = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setIncludeAsPostprocessor = function(value) {
  return jspb.Message.setProto3BooleanField(this, 14, value);
};


/**
 * optional bool mutually_exclusive = 15;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getMutuallyExclusive = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setMutuallyExclusive = function(value) {
  return jspb.Message.setProto3BooleanField(this, 15, value);
};


/**
 * optional bool only_once = 16;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getOnlyOnce = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setOnlyOnce = function(value) {
  return jspb.Message.setProto3BooleanField(this, 16, value);
};


/**
 * optional bool push_front = 17;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getPushFront = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 17, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setPushFront = function(value) {
  return jspb.Message.setProto3BooleanField(this, 17, value);
};


/**
 * optional bool dont_flatten = 18;
 * @return {boolean}
 */
proto.Messages.Function.prototype.getDontFlatten = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 18, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Function} returns this
 */
proto.Messages.Function.prototype.setDontFlatten = function(value) {
  return jspb.Message.setProto3BooleanField(this, 18, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Command.repeatedFields_ = [13,14];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Command.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Command.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Command} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Command.toObject = function(includeInstance, msg) {
  var f, obj = {
    pb_function: (f = msg.getFunction()) && proto.Messages.Function.toObject(includeInstance, f),
    argsAreSet: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),
    isReady: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),
    execCount: jspb.Message.getFieldWithDefault(msg, 4, 0),
    simdSize: jspb.Message.getFieldWithDefault(msg, 5, 0),
    version: jspb.Message.getFieldWithDefault(msg, 6, 0),
    id: jspb.Message.getFieldWithDefault(msg, 7, 0),
    nKernel: jspb.Message.getFieldWithDefault(msg, 8, 0),
    progress: jspb.Message.getFloatingPointFieldWithDefault(msg, 9, 0.0),
    msg: jspb.Message.getFieldWithDefault(msg, 10, ""),
    data: (f = msg.getData()) && vector_pb.Record64.toObject(includeInstance, f),
    beforeList: jspb.Message.toObjectList(msg.getBeforeList(),
    proto.Messages.Command.toObject, includeInstance),
    afterList: jspb.Message.toObjectList(msg.getAfterList(),
    proto.Messages.Command.toObject, includeInstance),
    regionType: jspb.Message.getFieldWithDefault(msg, 15, 0),
    regionId: jspb.Message.getFieldWithDefault(msg, 16, 0)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Command}
 */
proto.Messages.Command.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Command;
  return proto.Messages.Command.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Command} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Command}
 */
proto.Messages.Command.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new proto.Messages.Function;
      reader.readMessage(value,proto.Messages.Function.deserializeBinaryFromReader);
      msg.setFunction(value);
      break;
    case 2:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setArgsAreSet(value);
      break;
    case 3:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setIsReady(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setExecCount(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setSimdSize(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setVersion(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setId(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readUint64());
      msg.setNKernel(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setProgress(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsg(value);
      break;
    case 12:
      var value = new vector_pb.Record64;
      reader.readMessage(value,vector_pb.Record64.deserializeBinaryFromReader);
      msg.setData(value);
      break;
    case 13:
      var value = new proto.Messages.Command;
      reader.readMessage(value,proto.Messages.Command.deserializeBinaryFromReader);
      msg.addBefore(value);
      break;
    case 14:
      var value = new proto.Messages.Command;
      reader.readMessage(value,proto.Messages.Command.deserializeBinaryFromReader);
      msg.addAfter(value);
      break;
    case 15:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setRegionType(value);
      break;
    case 16:
      var value = /** @type {number} */ (reader.readInt32());
      msg.setRegionId(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Command.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Command.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Command} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Command.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getFunction();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      proto.Messages.Function.serializeBinaryToWriter
    );
  }
  f = message.getArgsAreSet();
  if (f) {
    writer.writeBool(
      2,
      f
    );
  }
  f = message.getIsReady();
  if (f) {
    writer.writeBool(
      3,
      f
    );
  }
  f = message.getExecCount();
  if (f !== 0) {
    writer.writeUint64(
      4,
      f
    );
  }
  f = message.getSimdSize();
  if (f !== 0) {
    writer.writeUint64(
      5,
      f
    );
  }
  f = message.getVersion();
  if (f !== 0) {
    writer.writeUint64(
      6,
      f
    );
  }
  f = message.getId();
  if (f !== 0) {
    writer.writeInt64(
      7,
      f
    );
  }
  f = message.getNKernel();
  if (f !== 0) {
    writer.writeUint64(
      8,
      f
    );
  }
  f = message.getProgress();
  if (f !== 0.0) {
    writer.writeFloat(
      9,
      f
    );
  }
  f = message.getMsg();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getData();
  if (f != null) {
    writer.writeMessage(
      12,
      f,
      vector_pb.Record64.serializeBinaryToWriter
    );
  }
  f = message.getBeforeList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      13,
      f,
      proto.Messages.Command.serializeBinaryToWriter
    );
  }
  f = message.getAfterList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      14,
      f,
      proto.Messages.Command.serializeBinaryToWriter
    );
  }
  f = message.getRegionType();
  if (f !== 0) {
    writer.writeUint32(
      15,
      f
    );
  }
  f = message.getRegionId();
  if (f !== 0) {
    writer.writeInt32(
      16,
      f
    );
  }
};


/**
 * optional Function function = 1;
 * @return {?proto.Messages.Function}
 */
proto.Messages.Command.prototype.getFunction = function() {
  return /** @type{?proto.Messages.Function} */ (
    jspb.Message.getWrapperField(this, proto.Messages.Function, 1));
};


/**
 * @param {?proto.Messages.Function|undefined} value
 * @return {!proto.Messages.Command} returns this
*/
proto.Messages.Command.prototype.setFunction = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.clearFunction = function() {
  return this.setFunction(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Command.prototype.hasFunction = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * optional bool args_are_set = 2;
 * @return {boolean}
 */
proto.Messages.Command.prototype.getArgsAreSet = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setArgsAreSet = function(value) {
  return jspb.Message.setProto3BooleanField(this, 2, value);
};


/**
 * optional bool is_ready = 3;
 * @return {boolean}
 */
proto.Messages.Command.prototype.getIsReady = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setIsReady = function(value) {
  return jspb.Message.setProto3BooleanField(this, 3, value);
};


/**
 * optional uint64 exec_count = 4;
 * @return {number}
 */
proto.Messages.Command.prototype.getExecCount = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setExecCount = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional uint64 simd_size = 5;
 * @return {number}
 */
proto.Messages.Command.prototype.getSimdSize = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setSimdSize = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional uint64 version = 6;
 * @return {number}
 */
proto.Messages.Command.prototype.getVersion = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setVersion = function(value) {
  return jspb.Message.setProto3IntField(this, 6, value);
};


/**
 * optional int64 id = 7;
 * @return {number}
 */
proto.Messages.Command.prototype.getId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setId = function(value) {
  return jspb.Message.setProto3IntField(this, 7, value);
};


/**
 * optional uint64 n_kernel = 8;
 * @return {number}
 */
proto.Messages.Command.prototype.getNKernel = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setNKernel = function(value) {
  return jspb.Message.setProto3IntField(this, 8, value);
};


/**
 * optional float progress = 9;
 * @return {number}
 */
proto.Messages.Command.prototype.getProgress = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 9, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setProgress = function(value) {
  return jspb.Message.setProto3FloatField(this, 9, value);
};


/**
 * optional string msg = 10;
 * @return {string}
 */
proto.Messages.Command.prototype.getMsg = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setMsg = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * optional Record64 data = 12;
 * @return {?proto.Messages.Record64}
 */
proto.Messages.Command.prototype.getData = function() {
  return /** @type{?proto.Messages.Record64} */ (
    jspb.Message.getWrapperField(this, vector_pb.Record64, 12));
};


/**
 * @param {?proto.Messages.Record64|undefined} value
 * @return {!proto.Messages.Command} returns this
*/
proto.Messages.Command.prototype.setData = function(value) {
  return jspb.Message.setWrapperField(this, 12, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.clearData = function() {
  return this.setData(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Command.prototype.hasData = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * repeated Command before = 13;
 * @return {!Array<!proto.Messages.Command>}
 */
proto.Messages.Command.prototype.getBeforeList = function() {
  return /** @type{!Array<!proto.Messages.Command>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Command, 13));
};


/**
 * @param {!Array<!proto.Messages.Command>} value
 * @return {!proto.Messages.Command} returns this
*/
proto.Messages.Command.prototype.setBeforeList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 13, value);
};


/**
 * @param {!proto.Messages.Command=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Command}
 */
proto.Messages.Command.prototype.addBefore = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.Messages.Command, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.clearBeforeList = function() {
  return this.setBeforeList([]);
};


/**
 * repeated Command after = 14;
 * @return {!Array<!proto.Messages.Command>}
 */
proto.Messages.Command.prototype.getAfterList = function() {
  return /** @type{!Array<!proto.Messages.Command>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Command, 14));
};


/**
 * @param {!Array<!proto.Messages.Command>} value
 * @return {!proto.Messages.Command} returns this
*/
proto.Messages.Command.prototype.setAfterList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 14, value);
};


/**
 * @param {!proto.Messages.Command=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Command}
 */
proto.Messages.Command.prototype.addAfter = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 14, opt_value, proto.Messages.Command, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.clearAfterList = function() {
  return this.setAfterList([]);
};


/**
 * optional uint32 region_type = 15;
 * @return {number}
 */
proto.Messages.Command.prototype.getRegionType = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 15, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setRegionType = function(value) {
  return jspb.Message.setProto3IntField(this, 15, value);
};


/**
 * optional int32 region_id = 16;
 * @return {number}
 */
proto.Messages.Command.prototype.getRegionId = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Command} returns this
 */
proto.Messages.Command.prototype.setRegionId = function(value) {
  return jspb.Message.setProto3IntField(this, 16, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Script.repeatedFields_ = [12];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Script.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Script.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Script} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Script.toObject = function(includeInstance, msg) {
  var f, obj = {
    name: jspb.Message.getFieldWithDefault(msg, 1, ""),
    msg: jspb.Message.getFieldWithDefault(msg, 2, ""),
    sourceCode: jspb.Message.getFieldWithDefault(msg, 3, ""),
    uid: jspb.Message.getFieldWithDefault(msg, 4, 0),
    device: jspb.Message.getFieldWithDefault(msg, 5, 0),
    status: jspb.Message.getFieldWithDefault(msg, 6, 0),
    order: jspb.Message.getFieldWithDefault(msg, 7, 0),
    progress: jspb.Message.getFloatingPointFieldWithDefault(msg, 8, 0.0),
    variables: (f = msg.getVariables()) && proto.Messages.Variables.toObject(includeInstance, f),
    sequenceList: jspb.Message.toObjectList(msg.getSequenceList(),
    proto.Messages.Command.toObject, includeInstance),
    before: (f = msg.getBefore()) && proto.Messages.Script.toObject(includeInstance, f),
    after: (f = msg.getAfter()) && proto.Messages.Script.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Script}
 */
proto.Messages.Script.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Script;
  return proto.Messages.Script.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Script} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Script}
 */
proto.Messages.Script.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setMsg(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.setSourceCode(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setUid(value);
      break;
    case 5:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setDevice(value);
      break;
    case 6:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setStatus(value);
      break;
    case 7:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setOrder(value);
      break;
    case 8:
      var value = /** @type {number} */ (reader.readFloat());
      msg.setProgress(value);
      break;
    case 10:
      var value = new proto.Messages.Variables;
      reader.readMessage(value,proto.Messages.Variables.deserializeBinaryFromReader);
      msg.setVariables(value);
      break;
    case 12:
      var value = new proto.Messages.Command;
      reader.readMessage(value,proto.Messages.Command.deserializeBinaryFromReader);
      msg.addSequence(value);
      break;
    case 14:
      var value = new proto.Messages.Script;
      reader.readMessage(value,proto.Messages.Script.deserializeBinaryFromReader);
      msg.setBefore(value);
      break;
    case 15:
      var value = new proto.Messages.Script;
      reader.readMessage(value,proto.Messages.Script.deserializeBinaryFromReader);
      msg.setAfter(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Script.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Script.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Script} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Script.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getMsg();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getSourceCode();
  if (f.length > 0) {
    writer.writeString(
      3,
      f
    );
  }
  f = message.getUid();
  if (f !== 0) {
    writer.writeInt64(
      4,
      f
    );
  }
  f = message.getDevice();
  if (f !== 0) {
    writer.writeUint32(
      5,
      f
    );
  }
  f = message.getStatus();
  if (f !== 0) {
    writer.writeUint32(
      6,
      f
    );
  }
  f = message.getOrder();
  if (f !== 0) {
    writer.writeUint32(
      7,
      f
    );
  }
  f = message.getProgress();
  if (f !== 0.0) {
    writer.writeFloat(
      8,
      f
    );
  }
  f = message.getVariables();
  if (f != null) {
    writer.writeMessage(
      10,
      f,
      proto.Messages.Variables.serializeBinaryToWriter
    );
  }
  f = message.getSequenceList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      12,
      f,
      proto.Messages.Command.serializeBinaryToWriter
    );
  }
  f = message.getBefore();
  if (f != null) {
    writer.writeMessage(
      14,
      f,
      proto.Messages.Script.serializeBinaryToWriter
    );
  }
  f = message.getAfter();
  if (f != null) {
    writer.writeMessage(
      15,
      f,
      proto.Messages.Script.serializeBinaryToWriter
    );
  }
};


/**
 * optional string name = 1;
 * @return {string}
 */
proto.Messages.Script.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string msg = 2;
 * @return {string}
 */
proto.Messages.Script.prototype.getMsg = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setMsg = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional string source_code = 3;
 * @return {string}
 */
proto.Messages.Script.prototype.getSourceCode = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setSourceCode = function(value) {
  return jspb.Message.setProto3StringField(this, 3, value);
};


/**
 * optional int64 uid = 4;
 * @return {number}
 */
proto.Messages.Script.prototype.getUid = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setUid = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional uint32 device = 5;
 * @return {number}
 */
proto.Messages.Script.prototype.getDevice = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 5, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setDevice = function(value) {
  return jspb.Message.setProto3IntField(this, 5, value);
};


/**
 * optional uint32 status = 6;
 * @return {number}
 */
proto.Messages.Script.prototype.getStatus = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 6, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setStatus = function(value) {
  return jspb.Message.setProto3IntField(this, 6, value);
};


/**
 * optional uint32 order = 7;
 * @return {number}
 */
proto.Messages.Script.prototype.getOrder = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setOrder = function(value) {
  return jspb.Message.setProto3IntField(this, 7, value);
};


/**
 * optional float progress = 8;
 * @return {number}
 */
proto.Messages.Script.prototype.getProgress = function() {
  return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 8, 0.0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.setProgress = function(value) {
  return jspb.Message.setProto3FloatField(this, 8, value);
};


/**
 * optional Variables variables = 10;
 * @return {?proto.Messages.Variables}
 */
proto.Messages.Script.prototype.getVariables = function() {
  return /** @type{?proto.Messages.Variables} */ (
    jspb.Message.getWrapperField(this, proto.Messages.Variables, 10));
};


/**
 * @param {?proto.Messages.Variables|undefined} value
 * @return {!proto.Messages.Script} returns this
*/
proto.Messages.Script.prototype.setVariables = function(value) {
  return jspb.Message.setWrapperField(this, 10, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.clearVariables = function() {
  return this.setVariables(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Script.prototype.hasVariables = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * repeated Command Sequence = 12;
 * @return {!Array<!proto.Messages.Command>}
 */
proto.Messages.Script.prototype.getSequenceList = function() {
  return /** @type{!Array<!proto.Messages.Command>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Command, 12));
};


/**
 * @param {!Array<!proto.Messages.Command>} value
 * @return {!proto.Messages.Script} returns this
*/
proto.Messages.Script.prototype.setSequenceList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 12, value);
};


/**
 * @param {!proto.Messages.Command=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Command}
 */
proto.Messages.Script.prototype.addSequence = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.Messages.Command, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.clearSequenceList = function() {
  return this.setSequenceList([]);
};


/**
 * optional Script before = 14;
 * @return {?proto.Messages.Script}
 */
proto.Messages.Script.prototype.getBefore = function() {
  return /** @type{?proto.Messages.Script} */ (
    jspb.Message.getWrapperField(this, proto.Messages.Script, 14));
};


/**
 * @param {?proto.Messages.Script|undefined} value
 * @return {!proto.Messages.Script} returns this
*/
proto.Messages.Script.prototype.setBefore = function(value) {
  return jspb.Message.setWrapperField(this, 14, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.clearBefore = function() {
  return this.setBefore(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Script.prototype.hasBefore = function() {
  return jspb.Message.getField(this, 14) != null;
};


/**
 * optional Script after = 15;
 * @return {?proto.Messages.Script}
 */
proto.Messages.Script.prototype.getAfter = function() {
  return /** @type{?proto.Messages.Script} */ (
    jspb.Message.getWrapperField(this, proto.Messages.Script, 15));
};


/**
 * @param {?proto.Messages.Script|undefined} value
 * @return {!proto.Messages.Script} returns this
*/
proto.Messages.Script.prototype.setAfter = function(value) {
  return jspb.Message.setWrapperField(this, 15, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Script} returns this
 */
proto.Messages.Script.prototype.clearAfter = function() {
  return this.setAfter(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Script.prototype.hasAfter = function() {
  return jspb.Message.getField(this, 15) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Model.repeatedFields_ = [3,4,5,6,7,9,11,12];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Model.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Model.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Model} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Model.toObject = function(includeInstance, msg) {
  var f, obj = {
    name: jspb.Message.getFieldWithDefault(msg, 1, ""),
    dofsList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,
    algorithmsList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f,
    availableOutputsList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f,
    extraPropertiesList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
    compatibleConditionsList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f,
    subModelsList: jspb.Message.toObjectList(msg.getSubModelsList(),
    proto.Messages.Model.toObject, includeInstance),
    defaultData: (f = msg.getDefaultData()) && vector_pb.Record64.toObject(includeInstance, f),
    rulesList: jspb.Message.toObjectList(msg.getRulesList(),
    vector_pb.Rule.toObject, includeInstance),
    mutexStackList: jspb.Message.toObjectList(msg.getMutexStackList(),
    vector_pb.Rule.toObject, includeInstance),
    markovMatrix: (f = msg.getMarkovMatrix()) && vector_pb.SparseMatrix.toObject(includeInstance, f)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Model}
 */
proto.Messages.Model.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Model;
  return proto.Messages.Model.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Model} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Model}
 */
proto.Messages.Model.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 3:
      var value = /** @type {string} */ (reader.readString());
      msg.addDofs(value);
      break;
    case 4:
      var value = /** @type {string} */ (reader.readString());
      msg.addAlgorithms(value);
      break;
    case 5:
      var value = /** @type {string} */ (reader.readString());
      msg.addAvailableOutputs(value);
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.addExtraProperties(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.addCompatibleConditions(value);
      break;
    case 9:
      var value = new proto.Messages.Model;
      reader.readMessage(value,proto.Messages.Model.deserializeBinaryFromReader);
      msg.addSubModels(value);
      break;
    case 10:
      var value = new vector_pb.Record64;
      reader.readMessage(value,vector_pb.Record64.deserializeBinaryFromReader);
      msg.setDefaultData(value);
      break;
    case 11:
      var value = new vector_pb.Rule;
      reader.readMessage(value,vector_pb.Rule.deserializeBinaryFromReader);
      msg.addRules(value);
      break;
    case 12:
      var value = new vector_pb.Rule;
      reader.readMessage(value,vector_pb.Rule.deserializeBinaryFromReader);
      msg.addMutexStack(value);
      break;
    case 15:
      var value = new vector_pb.SparseMatrix;
      reader.readMessage(value,vector_pb.SparseMatrix.deserializeBinaryFromReader);
      msg.setMarkovMatrix(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Model.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Model.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Model} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Model.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getDofsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      3,
      f
    );
  }
  f = message.getAlgorithmsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      4,
      f
    );
  }
  f = message.getAvailableOutputsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      5,
      f
    );
  }
  f = message.getExtraPropertiesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      6,
      f
    );
  }
  f = message.getCompatibleConditionsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      7,
      f
    );
  }
  f = message.getSubModelsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      9,
      f,
      proto.Messages.Model.serializeBinaryToWriter
    );
  }
  f = message.getDefaultData();
  if (f != null) {
    writer.writeMessage(
      10,
      f,
      vector_pb.Record64.serializeBinaryToWriter
    );
  }
  f = message.getRulesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      11,
      f,
      vector_pb.Rule.serializeBinaryToWriter
    );
  }
  f = message.getMutexStackList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      12,
      f,
      vector_pb.Rule.serializeBinaryToWriter
    );
  }
  f = message.getMarkovMatrix();
  if (f != null) {
    writer.writeMessage(
      15,
      f,
      vector_pb.SparseMatrix.serializeBinaryToWriter
    );
  }
};


/**
 * optional string name = 1;
 * @return {string}
 */
proto.Messages.Model.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * repeated string dofs = 3;
 * @return {!Array<string>}
 */
proto.Messages.Model.prototype.getDofsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.setDofsList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.addDofs = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearDofsList = function() {
  return this.setDofsList([]);
};


/**
 * repeated string algorithms = 4;
 * @return {!Array<string>}
 */
proto.Messages.Model.prototype.getAlgorithmsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 4));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.setAlgorithmsList = function(value) {
  return jspb.Message.setField(this, 4, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.addAlgorithms = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearAlgorithmsList = function() {
  return this.setAlgorithmsList([]);
};


/**
 * repeated string available_outputs = 5;
 * @return {!Array<string>}
 */
proto.Messages.Model.prototype.getAvailableOutputsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 5));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.setAvailableOutputsList = function(value) {
  return jspb.Message.setField(this, 5, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.addAvailableOutputs = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 5, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearAvailableOutputsList = function() {
  return this.setAvailableOutputsList([]);
};


/**
 * repeated string extra_properties = 6;
 * @return {!Array<string>}
 */
proto.Messages.Model.prototype.getExtraPropertiesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.setExtraPropertiesList = function(value) {
  return jspb.Message.setField(this, 6, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.addExtraProperties = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearExtraPropertiesList = function() {
  return this.setExtraPropertiesList([]);
};


/**
 * repeated string compatible_conditions = 7;
 * @return {!Array<string>}
 */
proto.Messages.Model.prototype.getCompatibleConditionsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 7));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.setCompatibleConditionsList = function(value) {
  return jspb.Message.setField(this, 7, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.addCompatibleConditions = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 7, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearCompatibleConditionsList = function() {
  return this.setCompatibleConditionsList([]);
};


/**
 * repeated Model sub_models = 9;
 * @return {!Array<!proto.Messages.Model>}
 */
proto.Messages.Model.prototype.getSubModelsList = function() {
  return /** @type{!Array<!proto.Messages.Model>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Model, 9));
};


/**
 * @param {!Array<!proto.Messages.Model>} value
 * @return {!proto.Messages.Model} returns this
*/
proto.Messages.Model.prototype.setSubModelsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 9, value);
};


/**
 * @param {!proto.Messages.Model=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model}
 */
proto.Messages.Model.prototype.addSubModels = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.Messages.Model, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearSubModelsList = function() {
  return this.setSubModelsList([]);
};


/**
 * optional Record64 default_data = 10;
 * @return {?proto.Messages.Record64}
 */
proto.Messages.Model.prototype.getDefaultData = function() {
  return /** @type{?proto.Messages.Record64} */ (
    jspb.Message.getWrapperField(this, vector_pb.Record64, 10));
};


/**
 * @param {?proto.Messages.Record64|undefined} value
 * @return {!proto.Messages.Model} returns this
*/
proto.Messages.Model.prototype.setDefaultData = function(value) {
  return jspb.Message.setWrapperField(this, 10, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearDefaultData = function() {
  return this.setDefaultData(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Model.prototype.hasDefaultData = function() {
  return jspb.Message.getField(this, 10) != null;
};


/**
 * repeated Rule rules = 11;
 * @return {!Array<!proto.Messages.Rule>}
 */
proto.Messages.Model.prototype.getRulesList = function() {
  return /** @type{!Array<!proto.Messages.Rule>} */ (
    jspb.Message.getRepeatedWrapperField(this, vector_pb.Rule, 11));
};


/**
 * @param {!Array<!proto.Messages.Rule>} value
 * @return {!proto.Messages.Model} returns this
*/
proto.Messages.Model.prototype.setRulesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 11, value);
};


/**
 * @param {!proto.Messages.Rule=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Rule}
 */
proto.Messages.Model.prototype.addRules = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.Messages.Rule, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearRulesList = function() {
  return this.setRulesList([]);
};


/**
 * repeated Rule mutex_stack = 12;
 * @return {!Array<!proto.Messages.Rule>}
 */
proto.Messages.Model.prototype.getMutexStackList = function() {
  return /** @type{!Array<!proto.Messages.Rule>} */ (
    jspb.Message.getRepeatedWrapperField(this, vector_pb.Rule, 12));
};


/**
 * @param {!Array<!proto.Messages.Rule>} value
 * @return {!proto.Messages.Model} returns this
*/
proto.Messages.Model.prototype.setMutexStackList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 12, value);
};


/**
 * @param {!proto.Messages.Rule=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Rule}
 */
proto.Messages.Model.prototype.addMutexStack = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 12, opt_value, proto.Messages.Rule, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearMutexStackList = function() {
  return this.setMutexStackList([]);
};


/**
 * optional SparseMatrix markov_matrix = 15;
 * @return {?proto.Messages.SparseMatrix}
 */
proto.Messages.Model.prototype.getMarkovMatrix = function() {
  return /** @type{?proto.Messages.SparseMatrix} */ (
    jspb.Message.getWrapperField(this, vector_pb.SparseMatrix, 15));
};


/**
 * @param {?proto.Messages.SparseMatrix|undefined} value
 * @return {!proto.Messages.Model} returns this
*/
proto.Messages.Model.prototype.setMarkovMatrix = function(value) {
  return jspb.Message.setWrapperField(this, 15, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Model} returns this
 */
proto.Messages.Model.prototype.clearMarkovMatrix = function() {
  return this.setMarkovMatrix(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Model.prototype.hasMarkovMatrix = function() {
  return jspb.Message.getField(this, 15) != null;
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.Coupling.repeatedFields_ = [11];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.Coupling.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.Coupling.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.Coupling} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Coupling.toObject = function(includeInstance, msg) {
  var f, obj = {
    sourceSystem: jspb.Message.getFieldWithDefault(msg, 1, ""),
    targetSystem: jspb.Message.getFieldWithDefault(msg, 2, ""),
    sourceUid: jspb.Message.getFieldWithDefault(msg, 3, 0),
    targetUid: jspb.Message.getFieldWithDefault(msg, 4, 0),
    sourceRegion: (f = msg.getSourceRegion()) && spatial_pb.Zone.toObject(includeInstance, f),
    targetRegion: (f = msg.getTargetRegion()) && spatial_pb.Zone.toObject(includeInstance, f),
    samplingMode: jspb.Message.getFieldWithDefault(msg, 9, 0),
    name: jspb.Message.getFieldWithDefault(msg, 10, ""),
    dofsList: (f = jspb.Message.getRepeatedField(msg, 11)) == null ? undefined : f,
    representation: (f = msg.getRepresentation()) && meta_pb.Representation.toObject(includeInstance, f),
    enabled: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),
    forward: jspb.Message.getBooleanFieldWithDefault(msg, 14, false),
    reverse: jspb.Message.getBooleanFieldWithDefault(msg, 15, false)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.Coupling}
 */
proto.Messages.Coupling.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.Coupling;
  return proto.Messages.Coupling.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.Coupling} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.Coupling}
 */
proto.Messages.Coupling.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = /** @type {string} */ (reader.readString());
      msg.setSourceSystem(value);
      break;
    case 2:
      var value = /** @type {string} */ (reader.readString());
      msg.setTargetSystem(value);
      break;
    case 3:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setSourceUid(value);
      break;
    case 4:
      var value = /** @type {number} */ (reader.readInt64());
      msg.setTargetUid(value);
      break;
    case 5:
      var value = new spatial_pb.Zone;
      reader.readMessage(value,spatial_pb.Zone.deserializeBinaryFromReader);
      msg.setSourceRegion(value);
      break;
    case 6:
      var value = new spatial_pb.Zone;
      reader.readMessage(value,spatial_pb.Zone.deserializeBinaryFromReader);
      msg.setTargetRegion(value);
      break;
    case 9:
      var value = /** @type {number} */ (reader.readUint32());
      msg.setSamplingMode(value);
      break;
    case 10:
      var value = /** @type {string} */ (reader.readString());
      msg.setName(value);
      break;
    case 11:
      var value = /** @type {string} */ (reader.readString());
      msg.addDofs(value);
      break;
    case 12:
      var value = new meta_pb.Representation;
      reader.readMessage(value,meta_pb.Representation.deserializeBinaryFromReader);
      msg.setRepresentation(value);
      break;
    case 13:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setEnabled(value);
      break;
    case 14:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setForward(value);
      break;
    case 15:
      var value = /** @type {boolean} */ (reader.readBool());
      msg.setReverse(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.Coupling.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.Coupling.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.Coupling} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.Coupling.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getSourceSystem();
  if (f.length > 0) {
    writer.writeString(
      1,
      f
    );
  }
  f = message.getTargetSystem();
  if (f.length > 0) {
    writer.writeString(
      2,
      f
    );
  }
  f = message.getSourceUid();
  if (f !== 0) {
    writer.writeInt64(
      3,
      f
    );
  }
  f = message.getTargetUid();
  if (f !== 0) {
    writer.writeInt64(
      4,
      f
    );
  }
  f = message.getSourceRegion();
  if (f != null) {
    writer.writeMessage(
      5,
      f,
      spatial_pb.Zone.serializeBinaryToWriter
    );
  }
  f = message.getTargetRegion();
  if (f != null) {
    writer.writeMessage(
      6,
      f,
      spatial_pb.Zone.serializeBinaryToWriter
    );
  }
  f = message.getSamplingMode();
  if (f !== 0) {
    writer.writeUint32(
      9,
      f
    );
  }
  f = message.getName();
  if (f.length > 0) {
    writer.writeString(
      10,
      f
    );
  }
  f = message.getDofsList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      11,
      f
    );
  }
  f = message.getRepresentation();
  if (f != null) {
    writer.writeMessage(
      12,
      f,
      meta_pb.Representation.serializeBinaryToWriter
    );
  }
  f = message.getEnabled();
  if (f) {
    writer.writeBool(
      13,
      f
    );
  }
  f = message.getForward();
  if (f) {
    writer.writeBool(
      14,
      f
    );
  }
  f = message.getReverse();
  if (f) {
    writer.writeBool(
      15,
      f
    );
  }
};


/**
 * optional string source_system = 1;
 * @return {string}
 */
proto.Messages.Coupling.prototype.getSourceSystem = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setSourceSystem = function(value) {
  return jspb.Message.setProto3StringField(this, 1, value);
};


/**
 * optional string target_system = 2;
 * @return {string}
 */
proto.Messages.Coupling.prototype.getTargetSystem = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setTargetSystem = function(value) {
  return jspb.Message.setProto3StringField(this, 2, value);
};


/**
 * optional int64 source_uid = 3;
 * @return {number}
 */
proto.Messages.Coupling.prototype.getSourceUid = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setSourceUid = function(value) {
  return jspb.Message.setProto3IntField(this, 3, value);
};


/**
 * optional int64 target_uid = 4;
 * @return {number}
 */
proto.Messages.Coupling.prototype.getTargetUid = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setTargetUid = function(value) {
  return jspb.Message.setProto3IntField(this, 4, value);
};


/**
 * optional Zone source_region = 5;
 * @return {?proto.Messages.Zone}
 */
proto.Messages.Coupling.prototype.getSourceRegion = function() {
  return /** @type{?proto.Messages.Zone} */ (
    jspb.Message.getWrapperField(this, spatial_pb.Zone, 5));
};


/**
 * @param {?proto.Messages.Zone|undefined} value
 * @return {!proto.Messages.Coupling} returns this
*/
proto.Messages.Coupling.prototype.setSourceRegion = function(value) {
  return jspb.Message.setWrapperField(this, 5, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.clearSourceRegion = function() {
  return this.setSourceRegion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Coupling.prototype.hasSourceRegion = function() {
  return jspb.Message.getField(this, 5) != null;
};


/**
 * optional Zone target_region = 6;
 * @return {?proto.Messages.Zone}
 */
proto.Messages.Coupling.prototype.getTargetRegion = function() {
  return /** @type{?proto.Messages.Zone} */ (
    jspb.Message.getWrapperField(this, spatial_pb.Zone, 6));
};


/**
 * @param {?proto.Messages.Zone|undefined} value
 * @return {!proto.Messages.Coupling} returns this
*/
proto.Messages.Coupling.prototype.setTargetRegion = function(value) {
  return jspb.Message.setWrapperField(this, 6, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.clearTargetRegion = function() {
  return this.setTargetRegion(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Coupling.prototype.hasTargetRegion = function() {
  return jspb.Message.getField(this, 6) != null;
};


/**
 * optional uint32 sampling_mode = 9;
 * @return {number}
 */
proto.Messages.Coupling.prototype.getSamplingMode = function() {
  return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));
};


/**
 * @param {number} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setSamplingMode = function(value) {
  return jspb.Message.setProto3IntField(this, 9, value);
};


/**
 * optional string name = 10;
 * @return {string}
 */
proto.Messages.Coupling.prototype.getName = function() {
  return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 10, ""));
};


/**
 * @param {string} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setName = function(value) {
  return jspb.Message.setProto3StringField(this, 10, value);
};


/**
 * repeated string dofs = 11;
 * @return {!Array<string>}
 */
proto.Messages.Coupling.prototype.getDofsList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 11));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setDofsList = function(value) {
  return jspb.Message.setField(this, 11, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.addDofs = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 11, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.clearDofsList = function() {
  return this.setDofsList([]);
};


/**
 * optional Representation representation = 12;
 * @return {?proto.Messages.Representation}
 */
proto.Messages.Coupling.prototype.getRepresentation = function() {
  return /** @type{?proto.Messages.Representation} */ (
    jspb.Message.getWrapperField(this, meta_pb.Representation, 12));
};


/**
 * @param {?proto.Messages.Representation|undefined} value
 * @return {!proto.Messages.Coupling} returns this
*/
proto.Messages.Coupling.prototype.setRepresentation = function(value) {
  return jspb.Message.setWrapperField(this, 12, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.clearRepresentation = function() {
  return this.setRepresentation(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.Coupling.prototype.hasRepresentation = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * optional bool enabled = 13;
 * @return {boolean}
 */
proto.Messages.Coupling.prototype.getEnabled = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setEnabled = function(value) {
  return jspb.Message.setProto3BooleanField(this, 13, value);
};


/**
 * optional bool forward = 14;
 * @return {boolean}
 */
proto.Messages.Coupling.prototype.getForward = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 14, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setForward = function(value) {
  return jspb.Message.setProto3BooleanField(this, 14, value);
};


/**
 * optional bool reverse = 15;
 * @return {boolean}
 */
proto.Messages.Coupling.prototype.getReverse = function() {
  return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));
};


/**
 * @param {boolean} value
 * @return {!proto.Messages.Coupling} returns this
 */
proto.Messages.Coupling.prototype.setReverse = function(value) {
  return jspb.Message.setProto3BooleanField(this, 15, value);
};



/**
 * List of repeated fields within this message type.
 * @private {!Array<number>}
 * @const
 */
proto.Messages.System.repeatedFields_ = [2,3,4,5,6,7,8,9,10,11,13];



if (jspb.Message.GENERATE_TO_OBJECT) {
/**
 * Creates an object representation of this proto.
 * Field names that are reserved in JavaScript and will be renamed to pb_name.
 * Optional fields that are not set will be set to undefined.
 * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.
 * For the list of reserved names please see:
 *     net/proto2/compiler/js/internal/generator.cc#kKeyword.
 * @param {boolean=} opt_includeInstance Deprecated. whether to include the
 *     JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @return {!Object}
 */
proto.Messages.System.prototype.toObject = function(opt_includeInstance) {
  return proto.Messages.System.toObject(opt_includeInstance, this);
};


/**
 * Static version of the {@see toObject} method.
 * @param {boolean|undefined} includeInstance Deprecated. Whether to include
 *     the JSPB instance for transitional soy proto support:
 *     http://goto/soy-param-migration
 * @param {!proto.Messages.System} msg The msg instance to transform.
 * @return {!Object}
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.System.toObject = function(includeInstance, msg) {
  var f, obj = {
    meta: (f = msg.getMeta()) && meta_pb.Meta.toObject(includeInstance, f),
    scriptList: jspb.Message.toObjectList(msg.getScriptList(),
    proto.Messages.Script.toObject, includeInstance),
    localTransformList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 3)) == null ? undefined : f,
    localRateList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 4)) == null ? undefined : f,
    localAccelList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 5)) == null ? undefined : f,
    childrenList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,
    referencedFilesList: (f = jspb.Message.getRepeatedField(msg, 7)) == null ? undefined : f,
    embeddedFilesList: jspb.Message.toObjectList(msg.getEmbeddedFilesList(),
    vector_pb.File.toObject, includeInstance),
    notesList: (f = jspb.Message.getRepeatedField(msg, 9)) == null ? undefined : f,
    couplingsList: jspb.Message.toObjectList(msg.getCouplingsList(),
    proto.Messages.Coupling.toObject, includeInstance),
    modelsList: jspb.Message.toObjectList(msg.getModelsList(),
    proto.Messages.Model.toObject, includeInstance),
    physicalConstants: (f = msg.getPhysicalConstants()) && vector_pb.Record64.toObject(includeInstance, f),
    conditionsList: jspb.Message.toObjectList(msg.getConditionsList(),
    proto.Messages.Command.toObject, includeInstance)
  };

  if (includeInstance) {
    obj.$jspbMessageInstance = msg;
  }
  return obj;
};
}


/**
 * Deserializes binary data (in protobuf wire format).
 * @param {jspb.ByteSource} bytes The bytes to deserialize.
 * @return {!proto.Messages.System}
 */
proto.Messages.System.deserializeBinary = function(bytes) {
  var reader = new jspb.BinaryReader(bytes);
  var msg = new proto.Messages.System;
  return proto.Messages.System.deserializeBinaryFromReader(msg, reader);
};


/**
 * Deserializes binary data (in protobuf wire format) from the
 * given reader into the given message object.
 * @param {!proto.Messages.System} msg The message object to deserialize into.
 * @param {!jspb.BinaryReader} reader The BinaryReader to use.
 * @return {!proto.Messages.System}
 */
proto.Messages.System.deserializeBinaryFromReader = function(msg, reader) {
  while (reader.nextField()) {
    if (reader.isEndGroup()) {
      break;
    }
    var field = reader.getFieldNumber();
    switch (field) {
    case 1:
      var value = new meta_pb.Meta;
      reader.readMessage(value,meta_pb.Meta.deserializeBinaryFromReader);
      msg.setMeta(value);
      break;
    case 2:
      var value = new proto.Messages.Script;
      reader.readMessage(value,proto.Messages.Script.deserializeBinaryFromReader);
      msg.addScript(value);
      break;
    case 3:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addLocalTransform(values[i]);
      }
      break;
    case 4:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addLocalRate(values[i]);
      }
      break;
    case 5:
      var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedDouble() : [reader.readDouble()]);
      for (var i = 0; i < values.length; i++) {
        msg.addLocalAccel(values[i]);
      }
      break;
    case 6:
      var value = /** @type {string} */ (reader.readString());
      msg.addChildren(value);
      break;
    case 7:
      var value = /** @type {string} */ (reader.readString());
      msg.addReferencedFiles(value);
      break;
    case 8:
      var value = new vector_pb.File;
      reader.readMessage(value,vector_pb.File.deserializeBinaryFromReader);
      msg.addEmbeddedFiles(value);
      break;
    case 9:
      var value = /** @type {string} */ (reader.readString());
      msg.addNotes(value);
      break;
    case 10:
      var value = new proto.Messages.Coupling;
      reader.readMessage(value,proto.Messages.Coupling.deserializeBinaryFromReader);
      msg.addCouplings(value);
      break;
    case 11:
      var value = new proto.Messages.Model;
      reader.readMessage(value,proto.Messages.Model.deserializeBinaryFromReader);
      msg.addModels(value);
      break;
    case 12:
      var value = new vector_pb.Record64;
      reader.readMessage(value,vector_pb.Record64.deserializeBinaryFromReader);
      msg.setPhysicalConstants(value);
      break;
    case 13:
      var value = new proto.Messages.Command;
      reader.readMessage(value,proto.Messages.Command.deserializeBinaryFromReader);
      msg.addConditions(value);
      break;
    default:
      reader.skipField();
      break;
    }
  }
  return msg;
};


/**
 * Serializes the message to binary data (in protobuf wire format).
 * @return {!Uint8Array}
 */
proto.Messages.System.prototype.serializeBinary = function() {
  var writer = new jspb.BinaryWriter();
  proto.Messages.System.serializeBinaryToWriter(this, writer);
  return writer.getResultBuffer();
};


/**
 * Serializes the given message to binary data (in protobuf wire
 * format), writing to the given BinaryWriter.
 * @param {!proto.Messages.System} message
 * @param {!jspb.BinaryWriter} writer
 * @suppress {unusedLocalVariables} f is only used for nested messages
 */
proto.Messages.System.serializeBinaryToWriter = function(message, writer) {
  var f = undefined;
  f = message.getMeta();
  if (f != null) {
    writer.writeMessage(
      1,
      f,
      meta_pb.Meta.serializeBinaryToWriter
    );
  }
  f = message.getScriptList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      2,
      f,
      proto.Messages.Script.serializeBinaryToWriter
    );
  }
  f = message.getLocalTransformList();
  if (f.length > 0) {
    writer.writePackedDouble(
      3,
      f
    );
  }
  f = message.getLocalRateList();
  if (f.length > 0) {
    writer.writePackedDouble(
      4,
      f
    );
  }
  f = message.getLocalAccelList();
  if (f.length > 0) {
    writer.writePackedDouble(
      5,
      f
    );
  }
  f = message.getChildrenList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      6,
      f
    );
  }
  f = message.getReferencedFilesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      7,
      f
    );
  }
  f = message.getEmbeddedFilesList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      8,
      f,
      vector_pb.File.serializeBinaryToWriter
    );
  }
  f = message.getNotesList();
  if (f.length > 0) {
    writer.writeRepeatedString(
      9,
      f
    );
  }
  f = message.getCouplingsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      10,
      f,
      proto.Messages.Coupling.serializeBinaryToWriter
    );
  }
  f = message.getModelsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      11,
      f,
      proto.Messages.Model.serializeBinaryToWriter
    );
  }
  f = message.getPhysicalConstants();
  if (f != null) {
    writer.writeMessage(
      12,
      f,
      vector_pb.Record64.serializeBinaryToWriter
    );
  }
  f = message.getConditionsList();
  if (f.length > 0) {
    writer.writeRepeatedMessage(
      13,
      f,
      proto.Messages.Command.serializeBinaryToWriter
    );
  }
};


/**
 * optional Meta meta = 1;
 * @return {?proto.Messages.Meta}
 */
proto.Messages.System.prototype.getMeta = function() {
  return /** @type{?proto.Messages.Meta} */ (
    jspb.Message.getWrapperField(this, meta_pb.Meta, 1));
};


/**
 * @param {?proto.Messages.Meta|undefined} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setMeta = function(value) {
  return jspb.Message.setWrapperField(this, 1, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearMeta = function() {
  return this.setMeta(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.System.prototype.hasMeta = function() {
  return jspb.Message.getField(this, 1) != null;
};


/**
 * repeated Script script = 2;
 * @return {!Array<!proto.Messages.Script>}
 */
proto.Messages.System.prototype.getScriptList = function() {
  return /** @type{!Array<!proto.Messages.Script>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Script, 2));
};


/**
 * @param {!Array<!proto.Messages.Script>} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setScriptList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 2, value);
};


/**
 * @param {!proto.Messages.Script=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Script}
 */
proto.Messages.System.prototype.addScript = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 2, opt_value, proto.Messages.Script, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearScriptList = function() {
  return this.setScriptList([]);
};


/**
 * repeated double local_transform = 3;
 * @return {!Array<number>}
 */
proto.Messages.System.prototype.getLocalTransformList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 3));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.setLocalTransformList = function(value) {
  return jspb.Message.setField(this, 3, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.addLocalTransform = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 3, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearLocalTransformList = function() {
  return this.setLocalTransformList([]);
};


/**
 * repeated double local_rate = 4;
 * @return {!Array<number>}
 */
proto.Messages.System.prototype.getLocalRateList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 4));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.setLocalRateList = function(value) {
  return jspb.Message.setField(this, 4, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.addLocalRate = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 4, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearLocalRateList = function() {
  return this.setLocalRateList([]);
};


/**
 * repeated double local_accel = 5;
 * @return {!Array<number>}
 */
proto.Messages.System.prototype.getLocalAccelList = function() {
  return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 5));
};


/**
 * @param {!Array<number>} value
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.setLocalAccelList = function(value) {
  return jspb.Message.setField(this, 5, value || []);
};


/**
 * @param {number} value
 * @param {number=} opt_index
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.addLocalAccel = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 5, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearLocalAccelList = function() {
  return this.setLocalAccelList([]);
};


/**
 * repeated string children = 6;
 * @return {!Array<string>}
 */
proto.Messages.System.prototype.getChildrenList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.setChildrenList = function(value) {
  return jspb.Message.setField(this, 6, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.addChildren = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 6, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearChildrenList = function() {
  return this.setChildrenList([]);
};


/**
 * repeated string referenced_files = 7;
 * @return {!Array<string>}
 */
proto.Messages.System.prototype.getReferencedFilesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 7));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.setReferencedFilesList = function(value) {
  return jspb.Message.setField(this, 7, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.addReferencedFiles = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 7, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearReferencedFilesList = function() {
  return this.setReferencedFilesList([]);
};


/**
 * repeated File embedded_files = 8;
 * @return {!Array<!proto.Messages.File>}
 */
proto.Messages.System.prototype.getEmbeddedFilesList = function() {
  return /** @type{!Array<!proto.Messages.File>} */ (
    jspb.Message.getRepeatedWrapperField(this, vector_pb.File, 8));
};


/**
 * @param {!Array<!proto.Messages.File>} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setEmbeddedFilesList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 8, value);
};


/**
 * @param {!proto.Messages.File=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.File}
 */
proto.Messages.System.prototype.addEmbeddedFiles = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.Messages.File, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearEmbeddedFilesList = function() {
  return this.setEmbeddedFilesList([]);
};


/**
 * repeated string notes = 9;
 * @return {!Array<string>}
 */
proto.Messages.System.prototype.getNotesList = function() {
  return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 9));
};


/**
 * @param {!Array<string>} value
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.setNotesList = function(value) {
  return jspb.Message.setField(this, 9, value || []);
};


/**
 * @param {string} value
 * @param {number=} opt_index
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.addNotes = function(value, opt_index) {
  return jspb.Message.addToRepeatedField(this, 9, value, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearNotesList = function() {
  return this.setNotesList([]);
};


/**
 * repeated Coupling couplings = 10;
 * @return {!Array<!proto.Messages.Coupling>}
 */
proto.Messages.System.prototype.getCouplingsList = function() {
  return /** @type{!Array<!proto.Messages.Coupling>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Coupling, 10));
};


/**
 * @param {!Array<!proto.Messages.Coupling>} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setCouplingsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 10, value);
};


/**
 * @param {!proto.Messages.Coupling=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Coupling}
 */
proto.Messages.System.prototype.addCouplings = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 10, opt_value, proto.Messages.Coupling, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearCouplingsList = function() {
  return this.setCouplingsList([]);
};


/**
 * repeated Model models = 11;
 * @return {!Array<!proto.Messages.Model>}
 */
proto.Messages.System.prototype.getModelsList = function() {
  return /** @type{!Array<!proto.Messages.Model>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Model, 11));
};


/**
 * @param {!Array<!proto.Messages.Model>} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setModelsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 11, value);
};


/**
 * @param {!proto.Messages.Model=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Model}
 */
proto.Messages.System.prototype.addModels = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 11, opt_value, proto.Messages.Model, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearModelsList = function() {
  return this.setModelsList([]);
};


/**
 * optional Record64 physical_constants = 12;
 * @return {?proto.Messages.Record64}
 */
proto.Messages.System.prototype.getPhysicalConstants = function() {
  return /** @type{?proto.Messages.Record64} */ (
    jspb.Message.getWrapperField(this, vector_pb.Record64, 12));
};


/**
 * @param {?proto.Messages.Record64|undefined} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setPhysicalConstants = function(value) {
  return jspb.Message.setWrapperField(this, 12, value);
};


/**
 * Clears the message field making it undefined.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearPhysicalConstants = function() {
  return this.setPhysicalConstants(undefined);
};


/**
 * Returns whether this field is set.
 * @return {boolean}
 */
proto.Messages.System.prototype.hasPhysicalConstants = function() {
  return jspb.Message.getField(this, 12) != null;
};


/**
 * repeated Command conditions = 13;
 * @return {!Array<!proto.Messages.Command>}
 */
proto.Messages.System.prototype.getConditionsList = function() {
  return /** @type{!Array<!proto.Messages.Command>} */ (
    jspb.Message.getRepeatedWrapperField(this, proto.Messages.Command, 13));
};


/**
 * @param {!Array<!proto.Messages.Command>} value
 * @return {!proto.Messages.System} returns this
*/
proto.Messages.System.prototype.setConditionsList = function(value) {
  return jspb.Message.setRepeatedWrapperField(this, 13, value);
};


/**
 * @param {!proto.Messages.Command=} opt_value
 * @param {number=} opt_index
 * @return {!proto.Messages.Command}
 */
proto.Messages.System.prototype.addConditions = function(opt_value, opt_index) {
  return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.Messages.Command, opt_index);
};


/**
 * Clears the list making it empty but non-null.
 * @return {!proto.Messages.System} returns this
 */
proto.Messages.System.prototype.clearConditionsList = function() {
  return this.setConditionsList([]);
};


goog.object.extend(exports, proto.Messages);
