Program: 10298
Project: 10298
Buggy source:
@Override public String getAttribute(Attribute attribute){
  if (attribute == null)   return null;
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1) && (attribute.startsWith("String_Node_Str",2) || attribute.startsWith("String_Node_Str",2))&& attribute.hasContext(2)) {
    Comparable com=new net.aufdemrand.denizen.scripts.commands.core.Comparable();
    com.setComparable(element);
    com.setComparedto(attribute.getContext(2));
    String operator;
    if (attribute.getContext(1).startsWith("String_Node_Str")) {
      operator=attribute.getContext(1).substring(1);
      com.setNegativeLogic();
    }
 else     operator=attribute.getContext(1);
    Comparable.Operator comparableOperator=null;
    try {
      comparableOperator=Comparable.Operator.valueOf(operator.replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").toUpperCase());
    }
 catch (    IllegalArgumentException e) {
    }
    if (comparableOperator != null) {
      com.setOperator(comparableOperator);
      return new Element(com.determineOutcome()).getAttribute(attribute.fulfill(2));
    }
 else {
      dB.echoError("String_Node_Str" + operator + "String_Node_Str");
    }
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(Boolean.valueOf(element).toString()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   try {
    return new Element(Double.valueOf(element)).getAttribute(attribute.fulfill(1));
  }
 catch (  NumberFormatException e) {
    dB.echoError("String_Node_Str" + element + "String_Node_Str");
    return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   try {
    return new Element(Math.round(Double.valueOf(element))).getAttribute(attribute.fulfill(1));
  }
 catch (  NumberFormatException e) {
    dB.echoError("String_Node_Str" + element + "String_Node_Str");
    return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    try {
      DecimalFormat d=new DecimalFormat("String_Node_Str");
      return new Element(d.format(Double.valueOf(element))).getAttribute(attribute.fulfill(1));
    }
 catch (    NumberFormatException e) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
    }
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dCuboid.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dEntity.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dInventory.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dItem.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dList.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dLocation.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dMaterial.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dNPC.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dPlayer.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dPlugin.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dScript.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,Duration.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dWorld.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    dB.log(debug());
    return new Element(Boolean.TRUE).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(ChatColor.stripColor(debug())).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(debug()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(prefix).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    String contains=attribute.getContext(1);
    if (contains.toLowerCase().startsWith("String_Node_Str")) {
      if (Pattern.compile(contains.substring(("String_Node_Str").length()),Pattern.CASE_INSENSITIVE).matcher(element).matches())       return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
 else       return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
    }
 else     if (element.toLowerCase().contains(contains.toLowerCase()))     return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
 else     return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.endsWith(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(ChatColor.getLastColors(element)).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(element.length()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.startsWith(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    return new Element(element.indexOf(attribute.getContext(1)) + 1).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    return new Element(element.lastIndexOf(attribute.getContext(1)) + 1).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    int index=attribute.getIntContext(1) - 1;
    if (index < 0 || index >= element.length())     return Element.NULL.getAttribute(attribute.fulfill(1));
 else     return new Element(String.valueOf(element.charAt(index))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String delimiter=attribute.getContext(1);
    if (element.contains(delimiter))     return new Element(element.substring(element.indexOf(delimiter) + delimiter.length())).getAttribute(attribute.fulfill(1));
 else     return new Element(element).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String delimiter=attribute.getContext(1);
    if (element.contains(delimiter))     return new Element(element.substring(0,element.indexOf(delimiter))).getAttribute(attribute.fulfill(1));
 else     return new Element(element).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    String replace=attribute.getContext(1);
    String replacement="String_Node_Str";
    attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str")) {
      if (attribute.hasContext(1)) {
        replacement=attribute.getContext(1);
        if (replacement == null)         replacement="String_Node_Str";
        attribute.fulfill(1);
      }
    }
    return new Element(element.replace(replace,replacement)).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str") && attribute.startsWith("String_Node_Str",2)) {
    String split_string=(attribute.hasContext(1) ? attribute.getContext(1) : "String_Node_Str");
    Integer limit=(attribute.hasContext(2) ? attribute.getIntContext(2) : 1);
    if (split_string.toLowerCase().startsWith("String_Node_Str"))     return new dList(Arrays.asList(element.split(split_string.split("String_Node_Str",2)[1],limit))).getAttribute(attribute.fulfill(1));
 else     return new dList(Arrays.asList(StringUtils.split(element,split_string,limit))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String split_string=(attribute.hasContext(1) ? attribute.getContext(1) : "String_Node_Str");
    if (split_string.toLowerCase().startsWith("String_Node_Str"))     return new dList(Arrays.asList(element.split(split_string.split("String_Node_Str",2)[1]))).getAttribute(attribute.fulfill(1));
 else     return new dList(Arrays.asList(StringUtils.split(element,split_string))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(ChatColor.stripColor(element)).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(element.trim()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.toUpperCase()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.toLowerCase()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    if (element.length() == 0) {
      return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
    }
    StringBuilder TitleCase=new StringBuilder(element.length());
    String Upper=element.toUpperCase();
    String Lower=element.toLowerCase();
    TitleCase.append(Upper.charAt(0));
    for (int i=1; i < element.length(); i++) {
      if (element.charAt(i - 1) == ' ')       TitleCase.append(Upper.charAt(i));
 else       TitleCase.append(Lower.charAt(i));
    }
    return new Element(TitleCase.toString()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    int beginning_index=Integer.valueOf(attribute.getContext(1).split("String_Node_Str")[0]) - 1;
    int ending_index;
    if (attribute.getContext(1).split("String_Node_Str").length > 1)     ending_index=Integer.valueOf(attribute.getContext(1).split("String_Node_Str")[1]);
 else     ending_index=element.length();
    if (beginning_index < 0)     beginning_index=0;
    if (beginning_index > element.length())     beginning_index=element.length();
    if (ending_index > element.length())     ending_index=element.length();
    if (ending_index < beginning_index)     ending_index=beginning_index;
    return new Element(element.substring(beginning_index,ending_index)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(Math.abs(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() + aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() / aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() % aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() * aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(Math.sqrt(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() - aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  for (  Property property : PropertyParser.getProperties(this)) {
    String returned=property.getAttribute(attribute);
    if (returned != null)     return returned;
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element((int)Math.ceil(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element((int)Math.floor(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element((int)Math.round(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.attributes.size() > 0) {
    dB.echoDebug(attribute.getScriptEntry(),"String_Node_Str" + attribute.attributes.toString() + "String_Node_Str"+ attribute.getOrigin()+ "String_Node_Str");
    return "String_Node_Str";
  }
 else {
    return element;
  }
}

Fixed version (ground truth):
@Override public String getAttribute(Attribute attribute){
  if (attribute == null)   return null;
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1) && (attribute.startsWith("String_Node_Str",2) || attribute.startsWith("String_Node_Str",2))&& attribute.hasContext(2)) {
    Comparable com=new net.aufdemrand.denizen.scripts.commands.core.Comparable();
    com.setComparable(element);
    com.setComparedto(attribute.getContext(2));
    String operator;
    if (attribute.getContext(1).startsWith("String_Node_Str")) {
      operator=attribute.getContext(1).substring(1);
      com.setNegativeLogic();
    }
 else     operator=attribute.getContext(1);
    Comparable.Operator comparableOperator=null;
    try {
      comparableOperator=Comparable.Operator.valueOf(operator.replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").replace("String_Node_Str","String_Node_Str").toUpperCase());
    }
 catch (    IllegalArgumentException e) {
    }
    if (comparableOperator != null) {
      com.setOperator(comparableOperator);
      return new Element(com.determineOutcome()).getAttribute(attribute.fulfill(2));
    }
 else {
      dB.echoError("String_Node_Str" + operator + "String_Node_Str");
    }
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(Boolean.valueOf(element).toString()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   try {
    return new Element(Double.valueOf(element)).getAttribute(attribute.fulfill(1));
  }
 catch (  NumberFormatException e) {
    dB.echoError("String_Node_Str" + element + "String_Node_Str");
    return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   try {
    return new Element(Math.round(Double.valueOf(element))).getAttribute(attribute.fulfill(1));
  }
 catch (  NumberFormatException e) {
    dB.echoError("String_Node_Str" + element + "String_Node_Str");
    return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    try {
      DecimalFormat d=new DecimalFormat("String_Node_Str");
      return new Element(d.format(Double.valueOf(element))).getAttribute(attribute.fulfill(1));
    }
 catch (    NumberFormatException e) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
    }
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dCuboid.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dEntity.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dInventory.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dItem.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dList.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dLocation.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dMaterial.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dNPC.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dPlayer.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dPlugin.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dScript.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,Duration.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return HandleNull(element,dWorld.valueOf(element),"String_Node_Str").getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    dB.log(debug());
    return new Element(Boolean.TRUE).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(ChatColor.stripColor(debug())).getAttribute(attribute.fulfill(2));
  }
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(debug()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(prefix).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    String contains=attribute.getContext(1);
    if (contains.toLowerCase().startsWith("String_Node_Str")) {
      if (Pattern.compile(contains.substring(("String_Node_Str").length()),Pattern.CASE_INSENSITIVE).matcher(element).matches())       return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
 else       return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
    }
 else     if (element.toLowerCase().contains(contains.toLowerCase()))     return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
 else     return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.endsWith(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(ChatColor.getLastColors(element)).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str")) {
    return new Element(element.length()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.startsWith(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    return new Element(element.indexOf(attribute.getContext(1)) + 1).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    return new Element(element.lastIndexOf(attribute.getContext(1)) + 1).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    int index=attribute.getIntContext(1) - 1;
    if (index < 0 || index >= element.length())     return Element.NULL.getAttribute(attribute.fulfill(1));
 else     return new Element(String.valueOf(element.charAt(index))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    String delimiter=attribute.getContext(1);
    if (element.contains(delimiter))     return new Element(element.substring(element.indexOf(delimiter) + delimiter.length())).getAttribute(attribute.fulfill(1));
 else     return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    String delimiter=attribute.getContext(1);
    if (element.contains(delimiter))     return new Element(element.substring(0,element.indexOf(delimiter))).getAttribute(attribute.fulfill(1));
 else     return new Element(element).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    String replace=attribute.getContext(1);
    String replacement="String_Node_Str";
    attribute.fulfill(1);
    if (attribute.startsWith("String_Node_Str")) {
      if (attribute.hasContext(1)) {
        replacement=attribute.getContext(1);
        if (replacement == null)         replacement="String_Node_Str";
        attribute.fulfill(1);
      }
    }
    return new Element(element.replace(replace,replacement)).getAttribute(attribute);
  }
  if (attribute.startsWith("String_Node_Str") && attribute.startsWith("String_Node_Str",2)) {
    String split_string=(attribute.hasContext(1) ? attribute.getContext(1) : "String_Node_Str");
    Integer limit=(attribute.hasContext(2) ? attribute.getIntContext(2) : 1);
    if (split_string.toLowerCase().startsWith("String_Node_Str"))     return new dList(Arrays.asList(element.split(split_string.split("String_Node_Str",2)[1],limit))).getAttribute(attribute.fulfill(1));
 else     return new dList(Arrays.asList(StringUtils.split(element,split_string,limit))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    String split_string=(attribute.hasContext(1) ? attribute.getContext(1) : "String_Node_Str");
    if (split_string.toLowerCase().startsWith("String_Node_Str"))     return new dList(Arrays.asList(element.split(split_string.split("String_Node_Str",2)[1]))).getAttribute(attribute.fulfill(1));
 else     return new dList(Arrays.asList(StringUtils.split(element,split_string))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str"))   return new Element(ChatColor.stripColor(element)).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str"))   return new Element(element.trim()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.toUpperCase()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str"))   return new Element(element.toLowerCase()).getAttribute(attribute.fulfill(1));
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    if (element.length() == 0) {
      return new Element("String_Node_Str").getAttribute(attribute.fulfill(1));
    }
    StringBuilder TitleCase=new StringBuilder(element.length());
    String Upper=element.toUpperCase();
    String Lower=element.toLowerCase();
    TitleCase.append(Upper.charAt(0));
    for (int i=1; i < element.length(); i++) {
      if (element.charAt(i - 1) == ' ')       TitleCase.append(Upper.charAt(i));
 else       TitleCase.append(Lower.charAt(i));
    }
    return new Element(TitleCase.toString()).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") || attribute.startsWith("String_Node_Str")) {
    int beginning_index=Integer.valueOf(attribute.getContext(1).split("String_Node_Str")[0]) - 1;
    int ending_index;
    if (attribute.getContext(1).split("String_Node_Str").length > 1)     ending_index=Integer.valueOf(attribute.getContext(1).split("String_Node_Str")[1]);
 else     ending_index=element.length();
    if (beginning_index < 0)     beginning_index=0;
    if (beginning_index > element.length())     beginning_index=element.length();
    if (ending_index > element.length())     ending_index=element.length();
    if (ending_index < beginning_index)     ending_index=beginning_index;
    return new Element(element.substring(beginning_index,ending_index)).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(Math.abs(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() + aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() / aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() % aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() * aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(Math.sqrt(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str") && attribute.hasContext(1)) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element(asDouble() - aH.getDoubleFrom(attribute.getContext(1))).getAttribute(attribute.fulfill(1));
  }
  for (  Property property : PropertyParser.getProperties(this)) {
    String returned=property.getAttribute(attribute);
    if (returned != null)     return returned;
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element((int)Math.ceil(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element((int)Math.floor(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.startsWith("String_Node_Str")) {
    if (!isDouble()) {
      dB.echoError("String_Node_Str" + element + "String_Node_Str");
      return Element.NULL.getAttribute(attribute.fulfill(1));
    }
    return new Element((int)Math.round(asDouble())).getAttribute(attribute.fulfill(1));
  }
  if (attribute.attributes.size() > 0) {
    dB.echoDebug(attribute.getScriptEntry(),"String_Node_Str" + attribute.attributes.toString() + "String_Node_Str"+ attribute.getOrigin()+ "String_Node_Str");
    return "String_Node_Str";
  }
 else {
    return element;
  }
}