nus-yam/ex-repair huggingface dataset:
Program: 146692
Project: 146692
Buggy source:
public LedgerChildElement getChild(String name,int multiplicity){
  if ((multiplicity == TreeReference.INDEX_TEMPLATE) && "String_Node_Str".equals(name)) {
    return LedgerChildElement.TemplateElement(this);
  }
  if (name.equals(LedgerChildElement.NAME)) {
    getLedgers();
    if (ledgers.size() == 0) {
      return LedgerChildElement.TemplateElement(this);
    }
    return ledgers.elementAt(multiplicity);
  }
  return null;
}

Fixed version (ground truth):
public LedgerChildElement getChild(String name,int multiplicity){
  if ((multiplicity == TreeReference.INDEX_TEMPLATE) && "String_Node_Str".equals(name)) {
    return null;
  }
  if (name.equals(LedgerChildElement.NAME)) {
    getLedgers();
    if (ledgers.size() == 0) {
      return LedgerChildElement.TemplateElement(this);
    }
    return ledgers.elementAt(multiplicity);
  }
  return null;
}
Program: 146693
Project: 146693
Buggy source:
public FormInstance getSessionInstance(String deviceId,String appversion,String username,String userId,Hashtable<String,String> userFields){
  TreeElement sessionRoot=new TreeElement("String_Node_Str",0);
  TreeElement sessionData=new TreeElement("String_Node_Str",0);
  sessionRoot.addChild(sessionData);
  for (  StackFrameStep step : frame.getSteps()) {
    if (step.getType() == SessionFrame.STATE_DATUM_VAL) {
      TreeElement datum=new TreeElement(step.getId());
      datum.setValue(new UncastData(step.getValue()));
      sessionData.addChild(datum);
    }
  }
  TreeElement sessionMeta=new TreeElement("String_Node_Str",0);
  addData(sessionMeta,"String_Node_Str",deviceId);
  addData(sessionMeta,"String_Node_Str",appversion);
  addData(sessionMeta,"String_Node_Str",username);
  addData(sessionMeta,"String_Node_Str",userId);
  sessionRoot.addChild(sessionMeta);
  TreeElement user=new TreeElement("String_Node_Str",0);
  TreeElement userData=new TreeElement("String_Node_Str",0);
  user.addChild(userData);
  for (Enumeration en=userFields.keys(); en.hasMoreElements(); ) {
    String key=(String)en.nextElement();
    addData(userData,key,userFields.get(key));
  }
  sessionRoot.addChild(user);
  return new FormInstance(sessionRoot,"String_Node_Str");
}

Fixed version (ground truth):
public FormInstance getSessionInstance(String deviceId,String appversion,String username,String userId,Hashtable<String,String> userFields){
  TreeElement sessionRoot=new TreeElement("String_Node_Str",0);
  TreeElement sessionData=new TreeElement("String_Node_Str",0);
  sessionRoot.addChild(sessionData);
  for (  StackFrameStep step : frame.getSteps()) {
    if (step.getType() == SessionFrame.STATE_DATUM_VAL) {
      Vector<TreeElement> matchingElements=sessionData.getChildrenWithName(step.getId());
      if (matchingElements.size() > 0) {
        matchingElements.elementAt(0).setValue(new UncastData(step.getValue()));
      }
 else {
        TreeElement datum=new TreeElement(step.getId());
        datum.setValue(new UncastData(step.getValue()));
        sessionData.addChild(datum);
      }
    }
  }
  TreeElement sessionMeta=new TreeElement("String_Node_Str",0);
  addData(sessionMeta,"String_Node_Str",deviceId);
  addData(sessionMeta,"String_Node_Str",appversion);
  addData(sessionMeta,"String_Node_Str",username);
  addData(sessionMeta,"String_Node_Str",userId);
  sessionRoot.addChild(sessionMeta);
  TreeElement user=new TreeElement("String_Node_Str",0);
  TreeElement userData=new TreeElement("String_Node_Str",0);
  user.addChild(userData);
  for (Enumeration en=userFields.keys(); en.hasMoreElements(); ) {
    String key=(String)en.nextElement();
    addData(userData,key,userFields.get(key));
  }
  sessionRoot.addChild(user);
  return new FormInstance(sessionRoot,"String_Node_Str");
}
Program: 146694
Project: 146694
Buggy source:
public void stepBack(){
  StackFrameStep recentPop=frame.popStep();
  syncState();
  popped=recentPop;
  if (this.getNeededData() == SessionFrame.STATE_DATUM_COMPUTED) {
    stepBack();
  }
}

Fixed version (ground truth):
public void stepBack(){
  StackFrameStep recentPop=frame.popStep();
  syncState();
  while (this.getNeededData() == null || this.getNeededData() == SessionFrame.STATE_DATUM_COMPUTED) {
    recentPop=frame.popStep();
    syncState();
  }
  popped=recentPop;
}
Program: 146695
Project: 146695
Buggy source:
/** 
 * Based on the current state of the session, determine what information is needed next to proceed
 * @return 1 of the 4 STATE strings declared at the top of SessionFrame.java, or null ifcould not be determined
 */
public String getNeededData(){
  if (this.getCommand() == null) {
    return SessionFrame.STATE_COMMAND_ID;
  }
  Vector<Entry> entries=getEntriesForCommand(this.getCommand(),this.getData());
  String needDatum=null;
  String nextKey=null;
  for (  Entry e : entries) {
    if (e.getSessionDataReqs().size() > this.getData().size()) {
      SessionDatum datum=e.getSessionDataReqs().elementAt(this.getData().size());
      String needed=datum.getDataId();
      if (nextKey == null) {
        nextKey=needed;
        if (datum.getNodeset() != null) {
          needDatum=SessionFrame.STATE_DATUM_VAL;
        }
 else {
          needDatum=SessionFrame.STATE_DATUM_COMPUTED;
        }
        continue;
      }
 else {
        if (nextKey.equals(needed)) {
          continue;
        }
      }
    }
    needDatum=null;
    break;
  }
  if (needDatum != null) {
    return needDatum;
  }
  if (entries.size() > 1 || !entries.elementAt(0).getCommandId().equals(this.getCommand())) {
    return SessionFrame.STATE_COMMAND_ID;
  }
 else {
    return null;
  }
}

Fixed version (ground truth):
/** 
 * Based on the current state of the session, determine what information is needed next to proceed
 * @return 1 of the 4 STATE strings declared at the top of SessionFrame.java, or null ifthe session does not need anything else to proceed
 */
public String getNeededData(){
  if (this.getCommand() == null) {
    return SessionFrame.STATE_COMMAND_ID;
  }
  Vector<Entry> entries=getEntriesForCommand(this.getCommand(),this.getData());
  String needDatum=null;
  String nextKey=null;
  for (  Entry e : entries) {
    if (e.getSessionDataReqs().size() > this.getData().size()) {
      SessionDatum datum=e.getSessionDataReqs().elementAt(this.getData().size());
      String needed=datum.getDataId();
      if (nextKey == null) {
        nextKey=needed;
        if (datum.getNodeset() != null) {
          needDatum=SessionFrame.STATE_DATUM_VAL;
        }
 else {
          needDatum=SessionFrame.STATE_DATUM_COMPUTED;
        }
        continue;
      }
 else {
        if (nextKey.equals(needed)) {
          continue;
        }
      }
    }
    needDatum=null;
    break;
  }
  if (needDatum != null) {
    return needDatum;
  }
  if (entries.size() > 1 || !entries.elementAt(0).getCommandId().equals(this.getCommand())) {
    return SessionFrame.STATE_COMMAND_ID;
  }
 else {
    return null;
  }
}
Program: 146697
Project: 146697
Buggy source:
protected void goHome(){
  session.markCurrentFrameForDeath();
  if (ops.size() > 0) {
    EvaluationContext ec=session.getEvaluationContext(getIif());
    session.executeStackOperations(ops,ec);
  }
  if (session.finishAndPop()) {
    next();
  }
 else {
    J2MEDisplay.startStateWithLoadingScreen(new CommCareHomeState());
  }
}

Fixed version (ground truth):
protected void goHome(){
  if (session.finishExecuteAndPop(session.getEvaluationContext(getIif()))) {
    next();
  }
 else {
    J2MEDisplay.startStateWithLoadingScreen(new CommCareHomeState());
  }
}
Program: 146698
Project: 146698
Buggy source:
/** 
 * Complete the current session (and perform any cleanup), then check the stack for any pending frames, and load the top one into the current session if so.
 * @return True if there was a pending frame and it has beenpopped into the current session. False if the stack was empty and the session is over.
 */
public boolean finishAndPop(){
  cleanStack();
  if (frameStack.empty()) {
    return false;
  }
 else {
    frame=frameStack.pop();
    if (!frameStack.isEmpty()) {
      frame.captureSnapshot();
    }
    syncState();
    return true;
  }
}

Fixed version (ground truth):
/** 
 * Complete the current session (and perform any cleanup), then check the stack for any pending frames, and load the top one into the current session if so.
 * @return True if there was a pending frame and it has beenpopped into the current session. False if the stack was empty and the session is over.
 */
private boolean finishAndPop(){
  cleanStack();
  if (frameStack.empty()) {
    return false;
  }
 else {
    frame=frameStack.pop();
    if (!frameStack.isEmpty()) {
      frame.captureSnapshot();
    }
    syncState();
    return true;
  }
}
Program: 146699
Project: 146699
Buggy source:
/** 
 * @param args
 */
public static void main(String[] args){
  if (args.length < 1) {
    printformat();
    System.exit(-1);
  }
  PrototypeFactory prototypeFactory=setupStaticStorage();
  if (args[0].equals("String_Node_Str")) {
    if (args.length < 2) {
      printvalidateformat();
      System.exit(-1);
    }
    CommCareConfigEngine engine=configureApp(args,prototypeFactory);
    engine.describeApplication();
    System.exit(0);
  }
  if ("String_Node_Str".equals(args[0])) {
    if (args.length < 4) {
      printplayformat();
      System.exit(-1);
    }
    CommCareConfigEngine engine=configureApp(args,prototypeFactory);
    String username=args[2];
    String password=args[3];
    ApplicationHost host=new ApplicationHost(engine,username,password,prototypeFactory);
    host.run();
    System.exit(0);
  }
}

Fixed version (ground truth):
/** 
 * @param args
 */
public static void main(String[] args){
  if (args.length < 1) {
    printformat();
    System.exit(-1);
  }
  PrototypeFactory prototypeFactory=setupStaticStorage();
  if (args[0].equals("String_Node_Str")) {
    if (args.length < 2) {
      printvalidateformat();
      System.exit(-1);
    }
    CommCareConfigEngine engine=configureApp(args,prototypeFactory);
    engine.describeApplication();
    System.exit(0);
  }
  if ("String_Node_Str".equals(args[0])) {
    try {
      if (args.length < 4) {
        printplayformat();
        System.exit(-1);
      }
      CommCareConfigEngine engine=configureApp(args,prototypeFactory);
      String username=args[2];
      String password=args[3];
      username=username.trim().toLowerCase();
      ApplicationHost host=new ApplicationHost(engine,username,password,prototypeFactory);
      host.run();
      System.exit(-1);
    }
 catch (    RuntimeException re) {
      System.out.print("String_Node_Str");
      re.printStackTrace();
      throw re;
    }
 finally {
      System.exit(0);
    }
  }
}
Program: 146700
Project: 146700
Buggy source:
private void loop() throws IOException {
  boolean keepExecuting=true;
  while (keepExecuting) {
    mSession.clearAllState();
    keepExecuting=loopSession();
    if (this.mUpdatePending) {
      mSession.clearAllState();
      this.mUpdatePending=false;
      boolean forceUpdate=mForceLatestUpdate;
      this.mForceLatestUpdate=false;
      mEngine.attemptAppUpdate(forceUpdate);
    }
  }
}

Fixed version (ground truth):
private void loop() throws IOException {
  boolean keepExecuting=true;
  while (keepExecuting) {
    if (!mSessionHasNextFrameReady) {
      mSession.clearAllState();
    }
    mSessionHasNextFrameReady=false;
    keepExecuting=loopSession();
    if (this.mUpdatePending) {
      processAppUpdate();
    }
  }
}
Program: 146701
Project: 146701
Buggy source:
private boolean loopSession() throws IOException {
  Screen s=getNextScreen();
  while (s != null) {
    try {
      s.init(mPlatform,mSession,mSandbox);
      System.out.println("String_Node_Str");
      s.prompt(System.out);
      System.out.print("String_Node_Str");
      String input=reader.readLine();
      if (input.startsWith("String_Node_Str")) {
        if (input.equals("String_Node_Str") || input.equals("String_Node_Str")) {
          return false;
        }
        if (input.startsWith("String_Node_Str")) {
          mUpdatePending=true;
          if (input.contains("String_Node_Str")) {
            mForceLatestUpdate=true;
          }
          return true;
        }
        if (input.equals("String_Node_Str")) {
          return true;
        }
      }
      s.updateSession(mSession,input);
      s=getNextScreen();
    }
 catch (    CommCareSessionException ccse) {
      System.out.println("String_Node_Str");
      ccse.printStackTrace();
      System.out.println("String_Node_Str");
      reader.readLine();
      return true;
    }
  }
  String formXmlns=mSession.getForm();
  XFormPlayer player=new XFormPlayer(System.in,System.out,null);
  player.setSessionIIF(mSession.getIIF());
  player.start(mEngine.loadFormByXmlns(formXmlns));
  return true;
}

Fixed version (ground truth):
private boolean loopSession() throws IOException {
  Screen s=getNextScreen();
  while (s != null) {
    try {
      s.init(mPlatform,mSession,mSandbox);
      System.out.println("String_Node_Str");
      s.prompt(System.out);
      System.out.print("String_Node_Str");
      String input=reader.readLine();
      if (input.startsWith("String_Node_Str")) {
        if (input.equals("String_Node_Str") || input.equals("String_Node_Str")) {
          return false;
        }
        if (input.startsWith("String_Node_Str")) {
          mUpdatePending=true;
          if (input.contains("String_Node_Str")) {
            mForceLatestUpdate=true;
          }
          return true;
        }
        if (input.equals("String_Node_Str")) {
          return true;
        }
      }
      s.updateSession(mSession,input);
      s=getNextScreen();
    }
 catch (    CommCareSessionException ccse) {
      printErrorAndContinue("String_Node_Str",ccse);
      return true;
    }
  }
  String formXmlns=mSession.getForm();
  XFormPlayer player=new XFormPlayer(System.in,System.out,null);
  player.setSessionIIF(mSession.getIIF());
  player.start(mEngine.loadFormByXmlns(formXmlns));
  if (player.getExecutionResult() == XFormPlayer.FormResult.Completed) {
    if (!processResultInstance(player.getResultStream())) {
      return true;
    }
    mSession.clearVolitiles();
    if (mSession.finishExecuteAndPop(mSession.getEvaluationContext())) {
      mSessionHasNextFrameReady=true;
    }
  }
  return true;
}
Program: 146702
Project: 146702
Buggy source:
private boolean propertiesEqual(String a,String b){
  return a == null && b != null || a != null && b == null || a != null && b != null && !a.equals(b);
}

Fixed version (ground truth):
private boolean propertiesEqual(String a,String b){
  if (a == null) {
    return b == null;
  }
 else {
    return (a.equals(b));
  }
}
Program: 146703
Project: 146703
Buggy source:
public String getNeededData(){
  if (this.getCommand() == null) {
    return SessionFrame.STATE_COMMAND_ID;
  }
  Vector<Entry> entries=getEntriesForCommand(this.getCommand(),this.getData());
  String needDatum=null;
  String nextKey=null;
  for (  Entry e : entries) {
    if (e.getSessionDataReqs().size() > this.getData().size()) {
      SessionDatum datum=e.getSessionDataReqs().elementAt(this.getData().size());
      String needed=datum.getDataId();
      if (nextKey == null) {
        nextKey=needed;
        if (datum.getNodeset() != null) {
          needDatum=SessionFrame.STATE_DATUM_VAL;
        }
 else {
          needDatum=SessionFrame.STATE_DATUM_COMPUTED;
        }
        continue;
      }
 else {
        if (nextKey.equals(needed)) {
          continue;
        }
      }
    }
    needDatum=null;
    break;
  }
  if (needDatum != null) {
    return needDatum;
  }
  if (entries.size() > 1 || !entries.elementAt(0).getCommandId().equals(this.getCommand())) {
    return SessionFrame.STATE_COMMAND_ID;
  }
 else {
    return null;
  }
}

Fixed version (ground truth):
/** 
 * Based on the current state of the session, determine what information is needed next to proceed
 * @return 1 of the 4 STATE strings declared at the top of SessionFrame.java, or null ifcould not be determined
 */
public String getNeededData(){
  if (this.getCommand() == null) {
    return SessionFrame.STATE_COMMAND_ID;
  }
  Vector<Entry> entries=getEntriesForCommand(this.getCommand(),this.getData());
  String needDatum=null;
  String nextKey=null;
  for (  Entry e : entries) {
    if (e.getSessionDataReqs().size() > this.getData().size()) {
      SessionDatum datum=e.getSessionDataReqs().elementAt(this.getData().size());
      String needed=datum.getDataId();
      if (nextKey == null) {
        nextKey=needed;
        if (datum.getNodeset() != null) {
          needDatum=SessionFrame.STATE_DATUM_VAL;
        }
 else {
          needDatum=SessionFrame.STATE_DATUM_COMPUTED;
        }
        continue;
      }
 else {
        if (nextKey.equals(needed)) {
          continue;
        }
      }
    }
    needDatum=null;
    break;
  }
  if (needDatum != null) {
    return needDatum;
  }
  if (entries.size() > 1 || !entries.elementAt(0).getCommandId().equals(this.getCommand())) {
    return SessionFrame.STATE_COMMAND_ID;
  }
 else {
    return null;
  }
}
Program: 146704
Project: 146704
Buggy source:
public <T extends Persistable>byte[] serialize(T t){
  try {
    ByteArrayOutputStream baos=new ByteArrayOutputStream();
    t.writeExternal(new DataOutputStream(baos));
    return baos.toByteArray();
  }
 catch (  IOException e) {
    throw wrap("String_Node_Str" + t.getClass().getName(),e);
  }
}

Fixed version (ground truth):
public <T extends Externalizable>byte[] serialize(T t){
  try {
    ByteArrayOutputStream baos=new ByteArrayOutputStream();
    t.writeExternal(new DataOutputStream(baos));
    return baos.toByteArray();
  }
 catch (  IOException e) {
    throw wrap("String_Node_Str" + t.getClass().getName(),e);
  }
}
Program: 146705
Project: 146705
Buggy source:
public <T extends Persistable>T deserialize(byte[] object,Class<T> c){
  try {
    return (T)ExtUtil.deserialize(object,c,factory);
  }
 catch (  IOException|DeserializationException e) {
    throw wrap("String_Node_Str" + c.getName(),e);
  }
}

Fixed version (ground truth):
public <T extends Externalizable>T deserialize(byte[] object,Class<T> c){
  try {
    return (T)ExtUtil.deserialize(object,c,factory);
  }
 catch (  IOException|DeserializationException e) {
    throw wrap("String_Node_Str" + c.getName(),e);
  }
}
Program: 146706
Project: 146706
Buggy source:
private void loop(){
  while (true) {
    mSession.clearAllState();
    loopSession();
  }
}

Fixed version (ground truth):
private void loop() throws IOException {
  while (true) {
    mSession.clearAllState();
    loopSession();
  }
}
Program: 146707
Project: 146707
Buggy source:
public void run(){
  setupSandbox();
  mSession=new SessionWrapper(mPlatform,mSandbox);
  loop();
}

Fixed version (ground truth):
public void run(){
  setupSandbox();
  mSession=new SessionWrapper(mPlatform,mSandbox);
  try {
    loop();
  }
 catch (  IOException e) {
    e.printStackTrace();
    System.exit(-1);
  }
}
Program: 146708
Project: 146708
Buggy source:
private void loopSession(){
  Screen s=getNextScreen();
  while (s != null) {
    s.init(mPlatform,mSession,mSandbox);
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    System.out.println("String_Node_Str");
    s.prompt(System.out);
    System.out.print("String_Node_Str");
    try {
      String input=reader.readLine();
      s.updateSession(mSession,input);
      s=getNextScreen();
    }
 catch (    IOException e) {
      e.printStackTrace();
    }
  }
  String formXmlns=mSession.getForm();
  XFormPlayer player=new XFormPlayer(System.in,System.out,null);
  player.setSessionIIF(mSession.getIIF());
  player.start(mEngine.loadFormByXmlns(formXmlns));
}

Fixed version (ground truth):
private void loopSession() throws IOException {
  Screen s=getNextScreen();
  while (s != null) {
    try {
      s.init(mPlatform,mSession,mSandbox);
      System.out.println("String_Node_Str");
      System.out.println("String_Node_Str");
      System.out.println("String_Node_Str");
      System.out.println("String_Node_Str");
      System.out.println("String_Node_Str");
      System.out.println("String_Node_Str");
      System.out.println("String_Node_Str");
      s.prompt(System.out);
      System.out.print("String_Node_Str");
      String input=reader.readLine();
      s.updateSession(mSession,input);
      s=getNextScreen();
    }
 catch (    CommCareSessionException ccse) {
      System.out.println("String_Node_Str");
      ccse.printStackTrace();
      System.out.println("String_Node_Str");
      reader.readLine();
      mSession.clearAllState();
      loopSession();
    }
  }
  String formXmlns=mSession.getForm();
  XFormPlayer player=new XFormPlayer(System.in,System.out,null);
  player.setSessionIIF(mSession.getIIF());
  player.start(mEngine.loadFormByXmlns(formXmlns));
}
Program: 146709
Project: 146709
Buggy source:
@Override public void init(CommCarePlatform platform,SessionWrapper session,MockUserDataSandbox sandbox){
  this.mPlatform=platform;
  this.mSandbox=sandbox;
  this.mSession=session;
  needed=session.getNeededDatum();
  String detail=needed.getShortDetail();
  if (detail == null) {
    error("String_Node_Str" + needed.getDataId());
  }
  Detail shortDetail=platform.getDetail(detail);
  if (shortDetail == null) {
    error("String_Node_Str" + detail);
  }
  mTitle=shortDetail.getTitle().evaluate(session.getEvaluationContext()).getName();
  mHeader=this.createHeader(shortDetail);
  Vector<TreeReference> references=inflateReference(needed.getNodeset());
  rows=new String[references.size()];
  int i=0;
  for (  TreeReference entity : references) {
    rows[i]=createRow(entity,shortDetail);
    ++i;
  }
  this.mChoices=new TreeReference[references.size()];
  references.copyInto(mChoices);
  setTitle(mTitle);
}

Fixed version (ground truth):
@Override public void init(CommCarePlatform platform,SessionWrapper session,MockUserDataSandbox sandbox) throws CommCareSessionException {
  this.mPlatform=platform;
  this.mSandbox=sandbox;
  this.mSession=session;
  needed=session.getNeededDatum();
  String detail=needed.getShortDetail();
  if (detail == null) {
    throw new CommCareSessionException("String_Node_Str" + needed.getDataId());
  }
  Detail shortDetail=platform.getDetail(detail);
  if (shortDetail == null) {
    throw new CommCareSessionException("String_Node_Str" + detail);
  }
  mTitle=shortDetail.getTitle().evaluate(session.getEvaluationContext()).getName();
  mHeader=this.createHeader(shortDetail);
  Vector<TreeReference> references=inflateReference(needed.getNodeset());
  rows=new String[references.size()];
  int i=0;
  for (  TreeReference entity : references) {
    rows[i]=createRow(entity,shortDetail);
    ++i;
  }
  this.mChoices=new TreeReference[references.size()];
  references.copyInto(mChoices);
  setTitle(mTitle);
}
Program: 146711
Project: 146711
Buggy source:
public abstract void init(CommCarePlatform platform,SessionWrapper session,MockUserDataSandbox sandbox);

Fixed version (ground truth):
public abstract void init(CommCarePlatform platform,SessionWrapper session,MockUserDataSandbox sandbox) throws CommCareSessionException ;
Program: 146712
Project: 146712
Buggy source:
public abstract void updateSession(CommCareSession session,String input);

Fixed version (ground truth):
public abstract void updateSession(CommCareSession session,String input) throws CommCareSessionException ;
Program: 146713
Project: 146713
Buggy source:
public abstract void prompt(PrintStream out);

Fixed version (ground truth):
public abstract void prompt(PrintStream out) throws CommCareSessionException ;
Program: 146714
Project: 146714
Buggy source:
public void writeExternal(DataOutputStream dos) throws IOException {
  ExtUtil.writeNumeric(dos,getID());
  ExtUtil.write(dos,new ExtWrapNullable(binding == null ? null : new ExtWrapTagged(binding)));
  ExtUtil.write(dos,new ExtWrapNullable(getAppearanceAttr()));
  ExtUtil.writeNumeric(dos,getControlType());
  ExtUtil.write(dos,new ExtWrapList(ExtUtil.emptyIfNull(choices)));
  ExtUtil.write(dos,new ExtWrapNullable(dynamicChoices));
  ExtUtil.write(dos,new ExtWrapMap(String.class,QuestionString.class));
}

Fixed version (ground truth):
public void writeExternal(DataOutputStream dos) throws IOException {
  ExtUtil.writeNumeric(dos,getID());
  ExtUtil.write(dos,new ExtWrapNullable(binding == null ? null : new ExtWrapTagged(binding)));
  ExtUtil.write(dos,new ExtWrapNullable(getAppearanceAttr()));
  ExtUtil.writeNumeric(dos,getControlType());
  ExtUtil.write(dos,new ExtWrapList(ExtUtil.emptyIfNull(choices)));
  ExtUtil.write(dos,new ExtWrapNullable(dynamicChoices));
  ExtUtil.write(dos,new ExtWrapMap(mQuestionStrings));
}
Program: 146715
Project: 146715
Buggy source:
public QuestionDef(int id,int controlType){
  setID(id);
  setControlType(controlType);
  observers=new Vector();
  mQuestionStrings=new Hashtable<String,QuestionString>();
}

Fixed version (ground truth):
public QuestionDef(int id,int controlType){
  setID(id);
  setControlType(controlType);
  observers=new Vector();
  mQuestionStrings=new Hashtable<String,QuestionString>();
  mQuestionStrings.put(XFormParser.LABEL_ELEMENT,new QuestionString(XFormParser.LABEL_ELEMENT,null));
}
Program: 146716
Project: 146716
Buggy source:
/** 
 * Convenience method Get longText form of text for THIS element (if available) !!Falls back to default form if 'long' form does not exist.!! Use getSpecialFormQuestionText() if you want short form only.
 * @return longText form
 */
public String getConstraintText(){
  String newConstraintMsg=this.localizeText(getQuestion().getQuestionString(XFormParser.CONSTRAINT_ELEMENT));
  if (newConstraintMsg != null) {
    return newConstraintMsg;
  }
  EvaluationContext ec=new EvaluationContext(form.exprEvalContext,mTreeElement.getRef());
  return mTreeElement.getConstraint().getConstraintMessage(ec,form.getMainInstance(),null);
}

Fixed version (ground truth):
public String getConstraintText(String textForm,IAnswerData attemptedValue){
  if (mTreeElement.getConstraint() == null) {
    return null;
  }
 else {
    EvaluationContext ec=new EvaluationContext(form.exprEvalContext,mTreeElement.getRef());
    if (textForm != null) {
      ec.setOutputTextForm(textForm);
    }
    if (attemptedValue != null) {
      ec.isConstraint=true;
      ec.candidateValue=attemptedValue;
    }
    return mTreeElement.getConstraint().getConstraintMessage(ec,form.getMainInstance(),textForm);
  }
}
Program: 146717
Project: 146717
Buggy source:
public void processAction(FormDef model,TreeReference contextRef){
  TreeReference qualifiedReference=contextRef == null ? target : target.contextualize(contextRef);
  if (contextRef != null) {
    if (!contextRef.isParentOf(qualifiedReference,false)) {
      return;
    }
  }
  EvaluationContext context=new EvaluationContext(model.getEvaluationContext(),qualifiedReference);
  Object result;
  if (explicitValue != null) {
    result=explicitValue;
  }
 else {
    result=XPathFuncExpr.unpack(value.eval(model.getMainInstance(),context));
  }
  AbstractTreeElement node=context.resolveReference(qualifiedReference);
  if (node == null) {
    throw new NullPointerException("String_Node_Str" + qualifiedReference.toString(true) + "String_Node_Str");
  }
  int dataType=node.getDataType();
  IAnswerData val=Recalculate.wrapData(result,dataType);
  model.setValue(val == null ? null : AnswerDataFactory.templateByDataType(dataType).cast(val.uncast()),qualifiedReference);
}

Fixed version (ground truth):
public void processAction(FormDef model,TreeReference contextRef){
  TreeReference qualifiedReference=contextRef == null ? target : target.contextualize(contextRef);
  if (contextRef != null) {
    if (!contextRef.isParentOf(qualifiedReference,false)) {
      return;
    }
  }
  EvaluationContext context=new EvaluationContext(model.getEvaluationContext(),qualifiedReference);
  Object result;
  if (explicitValue != null) {
    result=explicitValue;
  }
 else {
    result=XPathFuncExpr.unpack(value.eval(model.getMainInstance(),context));
  }
  String failMessage="String_Node_Str" + target.toString(true) + "String_Node_Str";
  if (qualifiedReference.hasPredicates()) {
    Vector<TreeReference> references=context.expandReference(qualifiedReference);
    if (references.size() == 0) {
      throw new NullPointerException(failMessage);
    }
 else     if (references.size() > 1) {
      throw new XPathTypeMismatchException("String_Node_Str" + XPathNodeset.printNodeContents(references) + "String_Node_Str");
    }
 else {
      qualifiedReference=references.elementAt(0);
    }
  }
  AbstractTreeElement node=context.resolveReference(qualifiedReference);
  if (node == null) {
    throw new NullPointerException(failMessage);
  }
  int dataType=node.getDataType();
  IAnswerData val=Recalculate.wrapData(result,dataType);
  model.setValue(val == null ? null : AnswerDataFactory.templateByDataType(dataType).cast(val.uncast()),qualifiedReference);
}
Program: 146718
Project: 146718
Buggy source:
protected String nodeContents(){
  if (nodes == null) {
    return "String_Node_Str" + pathEvaluated;
  }
  StringBuffer sb=new StringBuffer();
  for (int i=0; i < nodes.size(); i++) {
    sb.append(nodes.elementAt(i).toString());
    if (i < nodes.size() - 1) {
      sb.append("String_Node_Str");
    }
  }
  return sb.toString();
}

Fixed version (ground truth):
protected String nodeContents(){
  if (nodes == null) {
    return "String_Node_Str" + pathEvaluated;
  }
  return printNodeContents(nodes);
}
Program: 146720
Project: 146720
Buggy source:
public DisplayData evaluate(EvaluationContext ec){
  return new DisplayData(name.evaluate(ec),imageReference.evaluate(ec),audioReference.evaluate(ec));
}

Fixed version (ground truth):
public DisplayData evaluate(EvaluationContext ec){
  String imageRef=imageReference == null ? null : imageReference.evaluate(ec);
  String audioRef=audioReference == null ? null : audioReference.evaluate(ec);
  return new DisplayData(name.evaluate(ec),imageRef,audioRef);
}
Program: 146721
Project: 146721
Buggy source:
private void syncState(){
  this.data.clear();
  this.currentCmd=null;
  this.currentXmlns=null;
  this.popped=null;
  for (  StackFrameStep step : frame.getSteps()) {
    if (SessionFrame.STATE_DATUM_VAL.equals(step.getType())) {
      String key=step.getId();
      String value=step.getValue();
      data.put(key,value);
    }
 else     if (SessionFrame.STATE_COMMAND_ID.equals(step.getType())) {
      this.currentCmd=step.getId();
    }
 else     if (SessionFrame.STATE_FORM_XMLNS.equals(step.getType())) {
      this.currentXmlns=step.getId();
    }
  }
}

Fixed version (ground truth):
private void syncState(){
  this.data.clear();
  this.currentCmd=null;
  this.currentXmlns=null;
  this.popped=null;
  for (  StackFrameStep step : frame.getSteps()) {
    if (SessionFrame.STATE_DATUM_VAL.equals(step.getType())) {
      String key=step.getId();
      String value=step.getValue();
      if (key != null && value != null) {
        data.put(key,value);
      }
    }
 else     if (SessionFrame.STATE_COMMAND_ID.equals(step.getType())) {
      this.currentCmd=step.getId();
    }
 else     if (SessionFrame.STATE_FORM_XMLNS.equals(step.getType())) {
      this.currentXmlns=step.getId();
    }
  }
}
Program: 146722
Project: 146722
Buggy source:
public DisplayData evaluate(EvaluationContext ec){
  return new DisplayData(name.evaluate(ec),imageReference.evaluate(ec),audioReference.evaluate(ec));
}

Fixed version (ground truth):
public DisplayData evaluate(EvaluationContext ec){
  String imageRef=imageReference == null ? null : imageReference.evaluate(ec);
  String audioRef=audioReference == null ? null : audioReference.evaluate(ec);
  return new DisplayData(name.evaluate(ec),imageRef,audioRef);
}
Program: 146723
Project: 146723
Buggy source:
private void syncState(){
  this.data.clear();
  this.currentCmd=null;
  this.currentXmlns=null;
  this.popped=null;
  for (  StackFrameStep step : frame.getSteps()) {
    if (SessionFrame.STATE_DATUM_VAL.equals(step.getType())) {
      String key=step.getId();
      String value=step.getValue();
      data.put(key,value);
    }
 else     if (SessionFrame.STATE_COMMAND_ID.equals(step.getType())) {
      this.currentCmd=step.getId();
    }
 else     if (SessionFrame.STATE_FORM_XMLNS.equals(step.getType())) {
      this.currentXmlns=step.getId();
    }
  }
}

Fixed version (ground truth):
private void syncState(){
  this.data.clear();
  this.currentCmd=null;
  this.currentXmlns=null;
  this.popped=null;
  for (  StackFrameStep step : frame.getSteps()) {
    if (SessionFrame.STATE_DATUM_VAL.equals(step.getType())) {
      String key=step.getId();
      String value=step.getValue();
      if (key != null && value != null) {
        data.put(key,value);
      }
    }
 else     if (SessionFrame.STATE_COMMAND_ID.equals(step.getType())) {
      this.currentCmd=step.getId();
    }
 else     if (SessionFrame.STATE_FORM_XMLNS.equals(step.getType())) {
      this.currentXmlns=step.getId();
    }
  }
}
Program: 146725
Project: 146725
Buggy source:
/** 
 * Join this reference with the base reference argument.
 * @param baseRef an absolute reference or a relative reference with only'../'s
 * @return a join of this reference with the base reference argument.Returns a clone of this reference if it is absolute, and null if this reference has '../'s but baseRef argument a non-empty relative reference.
 */
public TreeReference parent(TreeReference baseRef){
  if (isAbsolute()) {
    return this.clone();
  }
 else {
    TreeReference newRef=baseRef.clone();
    if (refLevel > 0) {
      if (!baseRef.isAbsolute() && baseRef.size() == 0) {
        newRef.refLevel+=refLevel;
      }
 else {
        return null;
      }
    }
    for (    TreeReferenceLevel l : this.data) {
      newRef.add(l);
    }
    return newRef;
  }
}

Fixed version (ground truth):
/** 
 * Join this reference with the base reference argument.
 * @param baseRef an absolute reference or a relative reference with only'../'s
 * @return a join of this reference with the base reference argument.Returns a clone of this reference if it is absolute, and null if this reference has '../'s but baseRef argument a non-empty relative reference.
 */
public TreeReference parent(TreeReference baseRef){
  if (isAbsolute()) {
    return this.clone();
  }
 else {
    TreeReference newRef=baseRef.clone();
    if (refLevel > 0) {
      if (!baseRef.isAbsolute() && baseRef.size() == 0) {
        newRef.refLevel+=refLevel;
      }
 else {
        return null;
      }
    }
    for (    TreeReferenceLevel l : this.data) {
      newRef.add(l.shallowCopy());
    }
    return newRef;
  }
}
Program: 146726
Project: 146726
Buggy source:
/** 
 * Evaluate this reference in terms of a base absolute reference. For instance, anchoring ../../d/e/f to /a/b/c, results in  /a/d/e/f. NOTE: This function works when baseRef contains INDEX_UNBOUND multiplicites. Conditions depend on this behavior, but it is def slightly icky
 * @param baseRef an absolute reference to be anchored to.
 * @return null if base reference isn't absolute or there are too many'../'.
 */
public TreeReference anchor(TreeReference baseRef){
  if (isAbsolute()) {
    return this.clone();
  }
 else   if (!baseRef.isAbsolute() || (refLevel > baseRef.size())) {
    return null;
  }
 else {
    TreeReference newRef=baseRef.clone();
    for (int i=0; i < refLevel; i++) {
      newRef.removeLastLevel();
    }
    for (int i=0; i < size(); i++) {
      newRef.add(this.data.elementAt(i));
    }
    return newRef;
  }
}

Fixed version (ground truth):
/** 
 * Evaluate this reference in terms of a base absolute reference. For instance, anchoring ../../d/e/f to /a/b/c, results in  /a/d/e/f. NOTE: This function works when baseRef contains INDEX_UNBOUND multiplicites. Conditions depend on this behavior, but it is def slightly icky
 * @param baseRef an absolute reference to be anchored to.
 * @return null if base reference isn't absolute or there are too many'../'.
 */
public TreeReference anchor(TreeReference baseRef){
  if (isAbsolute()) {
    return this.clone();
  }
 else   if (!baseRef.isAbsolute() || (refLevel > baseRef.size())) {
    return null;
  }
 else {
    TreeReference newRef=baseRef.clone();
    for (int i=0; i < refLevel; i++) {
      newRef.removeLastLevel();
    }
    for (int i=0; i < size(); i++) {
      newRef.add(this.data.elementAt(i).shallowCopy());
    }
    return newRef;
  }
}
Program: 146727
Project: 146727
Buggy source:
/** 
 * Return a copy of the reference
 */
public TreeReference clone(){
  TreeReference newRef=new TreeReference();
  newRef.setRefLevel(this.refLevel);
  for (  TreeReferenceLevel l : data) {
    newRef.add(l);
  }
  if (instanceName != null) {
    newRef.setInstanceName(instanceName);
  }
  newRef.contextType=this.contextType;
  return newRef;
}

Fixed version (ground truth):
/** 
 * Return a copy of the reference
 */
public TreeReference clone(){
  TreeReference newRef=new TreeReference();
  newRef.setRefLevel(this.refLevel);
  for (  TreeReferenceLevel l : data) {
    newRef.add(l.shallowCopy());
  }
  if (instanceName != null) {
    newRef.setInstanceName(instanceName);
  }
  newRef.contextType=this.contextType;
  return newRef;
}
Program: 146728
Project: 146728
Buggy source:
public Vector getChildrenWithName(String name){
  return cache().getChildrenWithName(name);
}

Fixed version (ground truth):
public Vector getChildrenWithName(String name){
  Vector children=super.getChildrenWithName(CaseChildElement.this.parent.intern(name));
  if (done[0] == false) {
    return children;
  }
  if (children.size() == 0) {
    TreeElement emptyNode=new TreeElement(name);
    emptyNode.setAttribute(null,"String_Node_Str","String_Node_Str");
    this.addChild(emptyNode);
    emptyNode.setParent(this);
    children.add(emptyNode);
  }
  return children;
}
Program: 146731
Project: 146731
Buggy source:
public EvaluationContext getEvaluationContext(InstanceInitializationFactory iif){
  if (getCommand() == null) {
    return new EvaluationContext(null);
  }
  Entry entry=getEntriesForCommand(getCommand()).elementAt(0);
  Hashtable<String,DataInstance> instances=entry.getInstances();
  for (Enumeration en=instances.keys(); en.hasMoreElements(); ) {
    String key=(String)en.nextElement();
    instances.get(key).initialize(iif,key);
  }
  return new EvaluationContext(null,instances);
}

Fixed version (ground truth):
/** 
 * Retrieve an evaluation context in which to evaluate expressions in the context of a given command in the installed app
 * @param iif the instance initializer for the current platform
 * @return Evaluation context for a command in the installed app
 */
public EvaluationContext getEvaluationContext(InstanceInitializationFactory iif,String command){
  if (command == null) {
    return new EvaluationContext(null);
  }
  Entry entry=getEntriesForCommand(command).elementAt(0);
  Hashtable<String,DataInstance> instances=entry.getInstances();
  for (Enumeration en=instances.keys(); en.hasMoreElements(); ) {
    String key=(String)en.nextElement();
    instances.get(key).initialize(iif,key);
  }
  return new EvaluationContext(null,instances);
}
Program: 146732
Project: 146732
Buggy source:
private int getDataType(String type){
  int dataType=Constants.DATATYPE_NULL;
  if (type != null) {
    if (type.indexOf("String_Node_Str") != -1) {
      type=type.substring(type.indexOf("String_Node_Str") + 1);
    }
    if (typeMappings.containsKey(type)) {
      dataType=((Integer)typeMappings.get(type)).intValue();
    }
 else {
      dataType=Constants.DATATYPE_UNSUPPORTED;
      reporter.warning(XFormParserReporter.TYPE_ERROR_PRONE,"String_Node_Str" + type + "String_Node_Str",null);
    }
  }
  return dataType;
}

Fixed version (ground truth):
/** 
 * Gets the datatype id corresponding to type string passed it. Undefined types result in returning the unsupported datatype id and raising a warning.
 * @param type is the String value of a elements's type attribute.
 * @return int representing datatype id
 */
private int getDataType(String type){
  int dataType=Constants.DATATYPE_NULL;
  if (type != null) {
    if (type.indexOf("String_Node_Str") != -1) {
      type=type.substring(type.indexOf("String_Node_Str") + 1);
    }
    if (typeMappings.containsKey(type)) {
      dataType=((Integer)typeMappings.get(type)).intValue();
    }
 else {
      dataType=Constants.DATATYPE_UNSUPPORTED;
      reporter.warning(XFormParserReporter.TYPE_ERROR_PRONE,"String_Node_Str" + type + "String_Node_Str",null);
    }
  }
  return dataType;
}
Program: 146734
Project: 146734
Buggy source:
private void parseElement(Element e,Object parent,Hashtable<String,IElementHandler> handlers){
  String name=e.getName();
  String[] suppressWarningArr={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
  Vector<String> suppressWarning=new Vector<String>();
  for (int i=0; i < suppressWarningArr.length; i++) {
    suppressWarning.addElement(suppressWarningArr[i]);
  }
  IElementHandler eh=handlers.get(name);
  if (eh != null) {
    eh.handle(this,e,parent);
  }
 else {
    if (!suppressWarning.contains(name)) {
      reporter.warning(XFormParserReporter.TYPE_UNKNOWN_MARKUP,"String_Node_Str" + name + "String_Node_Str",getVagueLocation(e));
    }
    for (int i=0; i < e.getChildCount(); i++) {
      if (e.getType(i) == Element.ELEMENT) {
        parseElement(e.getElement(i),parent,handlers);
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * @param element  is the current element we are parsing
 * @param parent   is the parent to the element we are parsing
 * @param handlers maps tags to IElementHandlers, used to perform parsing of that tag
 */
private void parseElement(Element e,Object parent,Hashtable<String,IElementHandler> handlers){
  String name=e.getName();
  String namespace=e.getNamespace();
  String[] suppressWarningArr={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
  Vector<String> suppressWarning=new Vector<String>();
  for (int i=0; i < suppressWarningArr.length; i++) {
    suppressWarning.addElement(suppressWarningArr[i]);
  }
  IElementHandler eh=handlers.get(name);
  if (eh != null) {
    eh.handle(this,e,parent);
  }
 else {
    if (inSpecExtension(namespace,name)) {
      parseUnregisteredSpecExtension(namespace,name,e,parent,handlers);
    }
 else {
      if (!suppressWarning.contains(name)) {
        reporter.warning(XFormParserReporter.TYPE_UNKNOWN_MARKUP,"String_Node_Str" + name + "String_Node_Str",getVagueLocation(e));
      }
      for (int i=0; i < e.getChildCount(); i++) {
        if (e.getType(i) == Element.ELEMENT) {
          parseElement(e.getElement(i),parent,handlers);
        }
      }
    }
  }
}
Program: 146735
Project: 146735
Buggy source:
public static void addDataType(String type,int dataType){
  typeMappings.put(type,DataUtil.integer(dataType));
}

Fixed version (ground truth):
/** 
 * Register a type to datatype id mapping
 * @param type is the String value of a elements's type attribute.
 * @param int  representing datatype id defined in Constants
 */
public static void addDataType(String type,int dataType){
  typeMappings.put(type,DataUtil.integer(dataType));
}
Program: 146737
Project: 146737
Buggy source:
public static Vector<Integer> union(Vector<Integer> a,Vector<Integer> b){
  Vector<Integer> u=new Vector<Integer>();
  for (  Integer i : a) {
    if (b.contains(i)) {
      u.addElement(i);
    }
  }
  return u;
}

Fixed version (ground truth):
public <T>Vector<T> union(Vector<T> a,Vector<T> b){
  Vector<T> u=new Vector<T>();
  for (  T i : a) {
    if (b.contains(i)) {
      u.addElement(i);
    }
  }
  return u;
}
Program: 146739
Project: 146739
Buggy source:
public static Vector<Integer> union(Vector<Integer> a,Vector<Integer> b){
  Vector<Integer> u=new Vector<Integer>();
  for (  Integer i : a) {
    if (b.contains(i)) {
      u.addElement(i);
    }
  }
  return u;
}

Fixed version (ground truth):
public <T>Vector<T> union(Vector<T> a,Vector<T> b){
  Vector<T> u=new Vector<T>();
  for (  T i : a) {
    if (b.contains(i)) {
      u.addElement(i);
    }
  }
  return u;
}
Program: 146741
Project: 146741
Buggy source:
/** 
 * Returns the subreference of this reference up to the level specified. Used to identify the reference context for a predicate at the same level Must be an absolute reference, otherwise will throw IllegalArgumentException
 * @param i
 * @return
 */
public TreeReference getSubReference(int level){
  if (!this.isAbsolute()) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  TreeReference ret=new TreeReference();
  ret.refLevel=this.refLevel;
  ret.contextType=this.contextType;
  ret.instanceName=this.instanceName;
  ret.data=new Vector<TreeReferenceLevel>();
  for (int i=0; i <= level; ++i) {
    ret.data.addElement(this.data.elementAt(i));
  }
  return ret;
}

Fixed version (ground truth):
/** 
 * Returns the subreference of this reference up to the level specified. For instance, for the reference: (/data/path/to/node).getSubreference(2) => /data/path/to Used to identify the reference context for a predicate at the same level Must be an absolute reference, otherwise will throw IllegalArgumentException
 * @param i
 * @return
 */
public TreeReference getSubReference(int level){
  if (!this.isAbsolute()) {
    throw new IllegalArgumentException("String_Node_Str");
  }
  TreeReference ret=new TreeReference();
  ret.refLevel=this.refLevel;
  ret.contextType=this.contextType;
  ret.instanceName=this.instanceName;
  ret.data=new Vector<TreeReferenceLevel>();
  for (int i=0; i <= level; ++i) {
    ret.data.addElement(this.data.elementAt(i));
  }
  return ret;
}
Program: 146743
Project: 146743
Buggy source:
public DataInstance(String instanceid){
  this.instanceid=instanceid;
  referenceCache=new CacheTable<TreeReference,T>();
}

Fixed version (ground truth):
public DataInstance(String instanceid){
  this.instanceid=instanceid;
}
Program: 146744
Project: 146744
Buggy source:
public void writeExternal(DataOutputStream out) throws IOException {
  ExtUtil.writeString(out,id);
  ExtUtil.write(out,title);
  ExtUtil.writeString(out,titleForm);
  ExtUtil.write(out,new ExtWrapList(ArrayUtilities.toVector(details)));
  ExtUtil.write(out,new ExtWrapList(ArrayUtilities.toVector(fields)));
  ExtUtil.write(out,new ExtWrapMap(variables));
  ExtUtil.write(out,new ExtWrapNullable(action));
}

Fixed version (ground truth):
public void writeExternal(DataOutputStream out) throws IOException {
  ExtUtil.writeString(out,id);
  ExtUtil.write(out,title);
  ExtUtil.write(out,new ExtWrapNullable(titleForm));
  ExtUtil.write(out,new ExtWrapList(ArrayUtilities.toVector(details)));
  ExtUtil.write(out,new ExtWrapList(ArrayUtilities.toVector(fields)));
  ExtUtil.write(out,new ExtWrapMap(variables));
  ExtUtil.write(out,new ExtWrapNullable(action));
}