Program: 170713
Project: 170713
Buggy source:
public void registerExtenderCallbacks(IBurpExtenderCallbacks c){
  this.callbacks=c;
  helpers=callbacks.getHelpers();
  callbacks.setExtensionName("String_Node_Str");
  callbacks.registerContextMenuFactory(this);
  callbacks.registerExtensionStateListener(this);
  stdout=new PrintWriter(callbacks.getStdout(),true);
  stderr=new PrintWriter(callbacks.getStderr(),true);
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  serverStarted=false;
  applicationSpawned=false;
  lastPrintIsJS=false;
  try {
    InputStream inputStream=getClass().getClassLoader().getResourceAsStream("String_Node_Str");
    BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
    File outputFile=new File(System.getProperty("String_Node_Str") + System.getProperty("String_Node_Str") + "String_Node_Str");
    FileWriter fr=new FileWriter(outputFile);
    BufferedWriter br=new BufferedWriter(fr);
    String s;
    while ((s=reader.readLine()) != null) {
      br.write(s);
      br.newLine();
    }
    reader.close();
    br.close();
    pythonScript=outputFile.getAbsolutePath();
  }
 catch (  Exception e) {
    printException(e,"String_Node_Str");
  }
  SwingUtilities.invokeLater(new Runnable(){
    @Override public void run(){
      mainPanel=new JPanel();
      mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.Y_AXIS));
      JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
      JSplitPane consoleTabbedSplitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
      final JTabbedPane tabbedPanel=new JTabbedPane();
      tabbedPanel.addChangeListener(new ChangeListener(){
        public void stateChanged(        ChangeEvent e){
          SwingUtilities.invokeLater(new Runnable(){
            @Override public void run(){
              showHideButtons(tabbedPanel.getSelectedIndex());
            }
          }
);
        }
      }
);
      JPanel configurationConfPanel=new JPanel();
      configurationConfPanel.setLayout(new BoxLayout(configurationConfPanel,BoxLayout.Y_AXIS));
      StyleContext styleContext=new StyleContext();
      redStyle=styleContext.addStyle("String_Node_Str",null);
      StyleConstants.setForeground(redStyle,Color.RED);
      greenStyle=styleContext.addStyle("String_Node_Str",null);
      StyleConstants.setForeground(greenStyle,Color.GREEN);
      JPanel serverStatusPanel=new JPanel();
      serverStatusPanel.setLayout(new BoxLayout(serverStatusPanel,BoxLayout.X_AXIS));
      serverStatusPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelServerStatus=new JLabel("String_Node_Str");
      documentServerStatus=new DefaultStyledDocument();
      serverStatus=new JTextPane(documentServerStatus);
      try {
        documentServerStatus.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      serverStatus.setMaximumSize(serverStatus.getPreferredSize());
      serverStatusPanel.add(labelServerStatus);
      serverStatusPanel.add(serverStatus);
      JPanel applicationStatusPanel=new JPanel();
      applicationStatusPanel.setLayout(new BoxLayout(applicationStatusPanel,BoxLayout.X_AXIS));
      applicationStatusPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelApplicationStatus=new JLabel("String_Node_Str");
      documentApplicationStatus=new DefaultStyledDocument();
      applicationStatus=new JTextPane(documentApplicationStatus);
      try {
        documentApplicationStatus.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      applicationStatus.setMaximumSize(applicationStatus.getPreferredSize());
      applicationStatusPanel.add(labelApplicationStatus);
      applicationStatusPanel.add(applicationStatus);
      JPanel pythonPathPanel=new JPanel();
      pythonPathPanel.setLayout(new BoxLayout(pythonPathPanel,BoxLayout.X_AXIS));
      pythonPathPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelPythonPath=new JLabel("String_Node_Str");
      pythonPath=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       pythonPath.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else {
        if (System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
          pythonPath.setText("String_Node_Str");
        }
 else {
          pythonPath.setText("String_Node_Str");
        }
      }
      pythonPath.setMaximumSize(pythonPath.getPreferredSize());
      JButton pythonPathButton=new JButton("String_Node_Str");
      pythonPathButton.setActionCommand("String_Node_Str");
      pythonPathButton.addActionListener(BurpExtender.this);
      pythonPathPanel.add(labelPythonPath);
      pythonPathPanel.add(pythonPath);
      pythonPathPanel.add(pythonPathButton);
      JPanel pyroHostPanel=new JPanel();
      pyroHostPanel.setLayout(new BoxLayout(pyroHostPanel,BoxLayout.X_AXIS));
      pyroHostPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelPyroHost=new JLabel("String_Node_Str");
      pyroHost=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       pyroHost.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else       pyroHost.setText("String_Node_Str");
      pyroHost.setMaximumSize(pyroHost.getPreferredSize());
      pyroHostPanel.add(labelPyroHost);
      pyroHostPanel.add(pyroHost);
      JPanel pyroPortPanel=new JPanel();
      pyroPortPanel.setLayout(new BoxLayout(pyroPortPanel,BoxLayout.X_AXIS));
      pyroPortPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelPyroPort=new JLabel("String_Node_Str");
      pyroPort=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       pyroPort.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else       pyroPort.setText("String_Node_Str");
      pyroPort.setMaximumSize(pyroPort.getPreferredSize());
      pyroPortPanel.add(labelPyroPort);
      pyroPortPanel.add(pyroPort);
      JPanel fridaPathPanel=new JPanel();
      fridaPathPanel.setLayout(new BoxLayout(fridaPathPanel,BoxLayout.X_AXIS));
      fridaPathPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelFridaPath=new JLabel("String_Node_Str");
      fridaPath=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       fridaPath.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else {
        if (System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
          fridaPath.setText("String_Node_Str");
        }
 else {
          fridaPath.setText("String_Node_Str");
        }
      }
      fridaPath.setMaximumSize(fridaPath.getPreferredSize());
      JButton fridaPathButton=new JButton("String_Node_Str");
      fridaPathButton.setActionCommand("String_Node_Str");
      fridaPathButton.addActionListener(BurpExtender.this);
      fridaPathPanel.add(labelFridaPath);
      fridaPathPanel.add(fridaPath);
      fridaPathPanel.add(fridaPathButton);
      JPanel applicationIdPanel=new JPanel();
      applicationIdPanel.setLayout(new BoxLayout(applicationIdPanel,BoxLayout.X_AXIS));
      applicationIdPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelApplicationId=new JLabel("String_Node_Str");
      applicationId=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       applicationId.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else       applicationId.setText("String_Node_Str");
      applicationId.setMaximumSize(applicationId.getPreferredSize());
      applicationIdPanel.add(labelApplicationId);
      applicationIdPanel.add(applicationId);
      JPanel localRemotePanel=new JPanel();
      localRemotePanel.setLayout(new BoxLayout(localRemotePanel,BoxLayout.X_AXIS));
      localRemotePanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      remoteRadioButton=new JRadioButton("String_Node_Str");
      localRadioButton=new JRadioButton("String_Node_Str");
      if (callbacks.loadExtensionSetting("String_Node_Str") != null) {
        if (callbacks.loadExtensionSetting("String_Node_Str").equals("String_Node_Str"))         remoteRadioButton.setSelected(true);
 else         localRadioButton.setSelected(true);
      }
 else {
        remoteRadioButton.setSelected(true);
      }
      ButtonGroup localRemoteButtonGroup=new ButtonGroup();
      localRemoteButtonGroup.add(remoteRadioButton);
      localRemoteButtonGroup.add(localRadioButton);
      localRemotePanel.add(remoteRadioButton);
      localRemotePanel.add(localRadioButton);
      configurationConfPanel.add(serverStatusPanel);
      configurationConfPanel.add(applicationStatusPanel);
      configurationConfPanel.add(pythonPathPanel);
      configurationConfPanel.add(pyroHostPanel);
      configurationConfPanel.add(pyroPortPanel);
      configurationConfPanel.add(fridaPathPanel);
      configurationConfPanel.add(applicationIdPanel);
      configurationConfPanel.add(localRemotePanel);
      jsEditorTextArea=new RSyntaxTextArea();
      jsEditorTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
      jsEditorTextArea.setCodeFoldingEnabled(false);
      RTextScrollPane sp=new RTextScrollPane(jsEditorTextArea);
      jsEditorTextArea.setFocusable(true);
      JPanel treeSearchPanel=new JPanel();
      treeSearchPanel.setLayout(new BorderLayout());
      JPanel treePanel=new JPanel(new FlowLayout(FlowLayout.LEFT));
      JScrollPane scrollTreeJPanel=new JScrollPane(treePanel);
      scrollTreeJPanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      DefaultMutableTreeNode top=new DefaultMutableTreeNode("String_Node_Str");
      tree=new JTree(top);
      tree.addMouseListener(BurpExtender.this);
      treePanel.add(tree);
      JPanel searchPanelBar=new JPanel();
      searchPanelBar.setLayout(new BoxLayout(searchPanelBar,BoxLayout.X_AXIS));
      JLabel findLabel=new JLabel("String_Node_Str");
      findTextField=new JTextField();
      JButton searchButton=new JButton("String_Node_Str");
      searchButton.setActionCommand("String_Node_Str");
      searchButton.addActionListener(BurpExtender.this);
      searchPanelBar.add(findLabel);
      searchPanelBar.add(findTextField);
      searchPanelBar.add(searchButton);
      treeSearchPanel.add(scrollTreeJPanel);
      treeSearchPanel.add(searchPanelBar,BorderLayout.SOUTH);
      stubTextEditor=callbacks.createTextEditor();
      stubTextEditor.setEditable(false);
      JPanel executeMethodPanel=new JPanel();
      executeMethodPanel.setLayout(new BoxLayout(executeMethodPanel,BoxLayout.Y_AXIS));
      JPanel executeMethodNamePanel=new JPanel();
      executeMethodNamePanel.setLayout(new BoxLayout(executeMethodNamePanel,BoxLayout.X_AXIS));
      executeMethodNamePanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelExecuteMethodName=new JLabel("String_Node_Str");
      executeMethodName=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       executeMethodName.setText(callbacks.loadExtensionSetting("String_Node_Str"));
      executeMethodName.setMaximumSize(executeMethodName.getPreferredSize());
      executeMethodNamePanel.add(labelExecuteMethodName);
      executeMethodNamePanel.add(executeMethodName);
      JPanel executeMethodArgumentPanel=new JPanel();
      executeMethodArgumentPanel.setLayout(new BoxLayout(executeMethodArgumentPanel,BoxLayout.X_AXIS));
      executeMethodArgumentPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelExecuteMethodArgument=new JLabel("String_Node_Str");
      executeMethodArgument=new JTextField(200);
      executeMethodArgument.setMaximumSize(executeMethodArgument.getPreferredSize());
      JButton addExecuteMethodArgument=new JButton("String_Node_Str");
      addExecuteMethodArgument.setActionCommand("String_Node_Str");
      addExecuteMethodArgument.addActionListener(BurpExtender.this);
      executeMethodArgumentPanel.add(labelExecuteMethodArgument);
      executeMethodArgumentPanel.add(executeMethodArgument);
      executeMethodArgumentPanel.add(addExecuteMethodArgument);
      executeMethodInsertedArgumentList=new DefaultListModel();
      JPanel executeMethodInsertedArgumentPanel=new JPanel();
      executeMethodInsertedArgumentPanel.setLayout(new BoxLayout(executeMethodInsertedArgumentPanel,BoxLayout.X_AXIS));
      executeMethodInsertedArgumentPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelExecuteMethodInsertedArgument=new JLabel("String_Node_Str");
      executeMethodInsertedArgument=new JList(executeMethodInsertedArgumentList);
      JScrollPane executeMethodInsertedArgumentScrollPane=new JScrollPane(executeMethodInsertedArgument);
      executeMethodInsertedArgumentScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      executeMethodInsertedArgumentScrollPane.setBorder(new LineBorder(Color.BLACK));
      executeMethodInsertedArgumentScrollPane.setMaximumSize(executeMethodInsertedArgumentScrollPane.getPreferredSize());
      if (callbacks.loadExtensionSetting("String_Node_Str") != null) {
        int sizeArguments=Integer.parseInt(callbacks.loadExtensionSetting("String_Node_Str"));
        for (int i=0; i < sizeArguments; i++) {
          executeMethodInsertedArgumentList.addElement(callbacks.loadExtensionSetting("String_Node_Str" + i));
        }
      }
      JPanel executeMethodInsertedArgumentButtonPanel=new JPanel();
      executeMethodInsertedArgumentButtonPanel.setLayout(new BoxLayout(executeMethodInsertedArgumentButtonPanel,BoxLayout.Y_AXIS));
      JButton removeExecuteMethodArgument=new JButton("String_Node_Str");
      removeExecuteMethodArgument.setActionCommand("String_Node_Str");
      removeExecuteMethodArgument.addActionListener(BurpExtender.this);
      JButton modifyExecuteMethodArgument=new JButton("String_Node_Str");
      modifyExecuteMethodArgument.setActionCommand("String_Node_Str");
      modifyExecuteMethodArgument.addActionListener(BurpExtender.this);
      executeMethodInsertedArgumentButtonPanel.add(removeExecuteMethodArgument);
      executeMethodInsertedArgumentButtonPanel.add(modifyExecuteMethodArgument);
      executeMethodInsertedArgumentPanel.add(labelExecuteMethodInsertedArgument);
      executeMethodInsertedArgumentPanel.add(executeMethodInsertedArgumentScrollPane);
      executeMethodInsertedArgumentPanel.add(executeMethodInsertedArgumentButtonPanel);
      executeMethodPanel.add(executeMethodNamePanel);
      executeMethodPanel.add(executeMethodArgumentPanel);
      executeMethodPanel.add(executeMethodInsertedArgumentPanel);
      trapTable=new JTable(new TrapTableModel());
      JScrollPane trapTableScrollPane=new JScrollPane(trapTable);
      trapTableScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      trapTableScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      trapTable.setAutoCreateRowSorter(true);
      ((DefaultTableCellRenderer)trapTable.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER);
      DefaultTableCellRenderer centerRenderer=new DefaultTableCellRenderer();
      centerRenderer.setHorizontalAlignment(JLabel.CENTER);
      trapTable.getColumnModel().getColumn(4).setCellRenderer(centerRenderer);
      trapTable.getColumnModel().getColumn(5).setCellRenderer(centerRenderer);
      tabbedPanel.add("String_Node_Str",configurationConfPanel);
      tabbedPanel.add("String_Node_Str",sp);
      tabbedPanel.add("String_Node_Str",treeSearchPanel);
      tabbedPanel.add("String_Node_Str",stubTextEditor.getComponent());
      tabbedPanel.add("String_Node_Str",executeMethodPanel);
      tabbedPanel.add("String_Node_Str",trapTableScrollPane);
      pluginConsoleTextArea=new JEditorPane("String_Node_Str","String_Node_Str");
      JScrollPane scrollPluginConsoleTextArea=new JScrollPane(pluginConsoleTextArea);
      scrollPluginConsoleTextArea.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      pluginConsoleTextArea.setEditable(false);
      consoleTabbedSplitPane.setTopComponent(tabbedPanel);
      consoleTabbedSplitPane.setBottomComponent(scrollPluginConsoleTextArea);
      consoleTabbedSplitPane.setResizeWeight(.7d);
      JPanel rightSplitPane=new JPanel();
      rightSplitPane.setLayout(new GridBagLayout());
      GridBagConstraints gbc=new GridBagConstraints();
      gbc.gridwidth=GridBagConstraints.REMAINDER;
      gbc.fill=GridBagConstraints.HORIZONTAL;
      documentServerStatusButtons=new DefaultStyledDocument();
      serverStatusButtons=new JTextPane(documentServerStatusButtons);
      try {
        documentServerStatusButtons.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      serverStatusButtons.setMaximumSize(serverStatusButtons.getPreferredSize());
      documentApplicationStatusButtons=new DefaultStyledDocument();
      applicationStatusButtons=new JTextPane(documentApplicationStatusButtons);
      try {
        documentApplicationStatusButtons.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      applicationStatusButtons.setMaximumSize(applicationStatusButtons.getPreferredSize());
      JButton startServer=new JButton("String_Node_Str");
      startServer.setActionCommand("String_Node_Str");
      startServer.addActionListener(BurpExtender.this);
      JButton killServer=new JButton("String_Node_Str");
      killServer.setActionCommand("String_Node_Str");
      killServer.addActionListener(BurpExtender.this);
      JButton spawnApplication=new JButton("String_Node_Str");
      spawnApplication.setActionCommand("String_Node_Str");
      spawnApplication.addActionListener(BurpExtender.this);
      JButton killApplication=new JButton("String_Node_Str");
      killApplication.setActionCommand("String_Node_Str");
      killApplication.addActionListener(BurpExtender.this);
      JButton reloadScript=new JButton("String_Node_Str");
      reloadScript.setActionCommand("String_Node_Str");
      reloadScript.addActionListener(BurpExtender.this);
      clearConsoleButton=new JButton("String_Node_Str");
      clearConsoleButton.setActionCommand("String_Node_Str");
      clearConsoleButton.addActionListener(BurpExtender.this);
      executeMethodButton=new JButton("String_Node_Str");
      executeMethodButton.setActionCommand("String_Node_Str");
      executeMethodButton.addActionListener(BurpExtender.this);
      generateJavaStubButton=new JButton("String_Node_Str");
      generateJavaStubButton.setActionCommand("String_Node_Str");
      generateJavaStubButton.addActionListener(BurpExtender.this);
      generatePythonStubButton=new JButton("String_Node_Str");
      generatePythonStubButton.setActionCommand("String_Node_Str");
      generatePythonStubButton.addActionListener(BurpExtender.this);
      saveSettingsToFileButton=new JButton("String_Node_Str");
      saveSettingsToFileButton.setActionCommand("String_Node_Str");
      saveSettingsToFileButton.addActionListener(BurpExtender.this);
      loadSettingsFromFileButton=new JButton("String_Node_Str");
      loadSettingsFromFileButton.setActionCommand("String_Node_Str");
      loadSettingsFromFileButton.addActionListener(BurpExtender.this);
      loadJSFileButton=new JButton("String_Node_Str");
      loadJSFileButton.setActionCommand("String_Node_Str");
      loadJSFileButton.addActionListener(BurpExtender.this);
      saveJSFileButton=new JButton("String_Node_Str");
      saveJSFileButton.setActionCommand("String_Node_Str");
      saveJSFileButton.addActionListener(BurpExtender.this);
      loadTreeButton=new JButton("String_Node_Str");
      loadTreeButton.setActionCommand("String_Node_Str");
      loadTreeButton.addActionListener(BurpExtender.this);
      detachAllButton=new JButton("String_Node_Str");
      detachAllButton.setActionCommand("String_Node_Str");
      detachAllButton.addActionListener(BurpExtender.this);
      JSeparator separator=new JSeparator(SwingConstants.HORIZONTAL);
      separator.setBorder(BorderFactory.createMatteBorder(3,0,3,0,Color.ORANGE));
      rightSplitPane.add(serverStatusButtons,gbc);
      rightSplitPane.add(applicationStatusButtons,gbc);
      rightSplitPane.add(startServer,gbc);
      rightSplitPane.add(killServer,gbc);
      rightSplitPane.add(spawnApplication,gbc);
      rightSplitPane.add(killApplication,gbc);
      rightSplitPane.add(reloadScript,gbc);
      rightSplitPane.add(clearConsoleButton,gbc);
      rightSplitPane.add(separator,gbc);
      rightSplitPane.add(saveSettingsToFileButton,gbc);
      rightSplitPane.add(loadSettingsFromFileButton,gbc);
      rightSplitPane.add(loadJSFileButton,gbc);
      rightSplitPane.add(saveJSFileButton,gbc);
      rightSplitPane.add(executeMethodButton,gbc);
      rightSplitPane.add(generateJavaStubButton,gbc);
      rightSplitPane.add(generatePythonStubButton,gbc);
      rightSplitPane.add(loadTreeButton,gbc);
      rightSplitPane.add(detachAllButton,gbc);
      splitPane.setLeftComponent(consoleTabbedSplitPane);
      splitPane.setRightComponent(rightSplitPane);
      splitPane.setResizeWeight(.9d);
      mainPanel.add(splitPane);
      callbacks.customizeUiComponent(mainPanel);
      callbacks.addSuiteTab(BurpExtender.this);
    }
  }
);
}

Fixed version (ground truth):
public void registerExtenderCallbacks(IBurpExtenderCallbacks c){
  this.callbacks=c;
  helpers=callbacks.getHelpers();
  callbacks.setExtensionName("String_Node_Str");
  callbacks.registerContextMenuFactory(this);
  callbacks.registerExtensionStateListener(this);
  stdout=new PrintWriter(callbacks.getStdout(),true);
  stderr=new PrintWriter(callbacks.getStderr(),true);
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  stdout.println("String_Node_Str");
  serverStarted=false;
  applicationSpawned=false;
  lastPrintIsJS=false;
  try {
    InputStream inputStream=getClass().getClassLoader().getResourceAsStream("String_Node_Str");
    BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
    File outputFile=new File(System.getProperty("String_Node_Str") + System.getProperty("String_Node_Str") + "String_Node_Str");
    FileWriter fr=new FileWriter(outputFile);
    BufferedWriter br=new BufferedWriter(fr);
    String s;
    while ((s=reader.readLine()) != null) {
      br.write(s);
      br.newLine();
    }
    reader.close();
    br.close();
    pythonScript=outputFile.getAbsolutePath();
  }
 catch (  Exception e) {
    printException(e,"String_Node_Str");
  }
  SwingUtilities.invokeLater(new Runnable(){
    @Override public void run(){
      mainPanel=new JPanel();
      mainPanel.setLayout(new BoxLayout(mainPanel,BoxLayout.Y_AXIS));
      JSplitPane splitPane=new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
      JSplitPane consoleTabbedSplitPane=new JSplitPane(JSplitPane.VERTICAL_SPLIT);
      final JTabbedPane tabbedPanel=new JTabbedPane();
      tabbedPanel.addChangeListener(new ChangeListener(){
        public void stateChanged(        ChangeEvent e){
          SwingUtilities.invokeLater(new Runnable(){
            @Override public void run(){
              showHideButtons(tabbedPanel.getSelectedIndex());
            }
          }
);
        }
      }
);
      JPanel configurationConfPanel=new JPanel();
      configurationConfPanel.setLayout(new BoxLayout(configurationConfPanel,BoxLayout.Y_AXIS));
      StyleContext styleContext=new StyleContext();
      redStyle=styleContext.addStyle("String_Node_Str",null);
      StyleConstants.setForeground(redStyle,Color.RED);
      greenStyle=styleContext.addStyle("String_Node_Str",null);
      StyleConstants.setForeground(greenStyle,Color.GREEN);
      JPanel serverStatusPanel=new JPanel();
      serverStatusPanel.setLayout(new BoxLayout(serverStatusPanel,BoxLayout.X_AXIS));
      serverStatusPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelServerStatus=new JLabel("String_Node_Str");
      documentServerStatus=new DefaultStyledDocument();
      serverStatus=new JTextPane(documentServerStatus);
      try {
        documentServerStatus.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      serverStatus.setMaximumSize(serverStatus.getPreferredSize());
      serverStatusPanel.add(labelServerStatus);
      serverStatusPanel.add(serverStatus);
      JPanel applicationStatusPanel=new JPanel();
      applicationStatusPanel.setLayout(new BoxLayout(applicationStatusPanel,BoxLayout.X_AXIS));
      applicationStatusPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelApplicationStatus=new JLabel("String_Node_Str");
      documentApplicationStatus=new DefaultStyledDocument();
      applicationStatus=new JTextPane(documentApplicationStatus);
      try {
        documentApplicationStatus.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      applicationStatus.setMaximumSize(applicationStatus.getPreferredSize());
      applicationStatusPanel.add(labelApplicationStatus);
      applicationStatusPanel.add(applicationStatus);
      JPanel pythonPathPanel=new JPanel();
      pythonPathPanel.setLayout(new BoxLayout(pythonPathPanel,BoxLayout.X_AXIS));
      pythonPathPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelPythonPath=new JLabel("String_Node_Str");
      pythonPath=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       pythonPath.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else {
        if (System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
          pythonPath.setText("String_Node_Str");
        }
 else {
          pythonPath.setText("String_Node_Str");
        }
      }
      pythonPath.setMaximumSize(pythonPath.getPreferredSize());
      JButton pythonPathButton=new JButton("String_Node_Str");
      pythonPathButton.setActionCommand("String_Node_Str");
      pythonPathButton.addActionListener(BurpExtender.this);
      pythonPathPanel.add(labelPythonPath);
      pythonPathPanel.add(pythonPath);
      pythonPathPanel.add(pythonPathButton);
      JPanel pyroHostPanel=new JPanel();
      pyroHostPanel.setLayout(new BoxLayout(pyroHostPanel,BoxLayout.X_AXIS));
      pyroHostPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelPyroHost=new JLabel("String_Node_Str");
      pyroHost=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       pyroHost.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else       pyroHost.setText("String_Node_Str");
      pyroHost.setMaximumSize(pyroHost.getPreferredSize());
      pyroHostPanel.add(labelPyroHost);
      pyroHostPanel.add(pyroHost);
      JPanel pyroPortPanel=new JPanel();
      pyroPortPanel.setLayout(new BoxLayout(pyroPortPanel,BoxLayout.X_AXIS));
      pyroPortPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelPyroPort=new JLabel("String_Node_Str");
      pyroPort=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       pyroPort.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else       pyroPort.setText("String_Node_Str");
      pyroPort.setMaximumSize(pyroPort.getPreferredSize());
      pyroPortPanel.add(labelPyroPort);
      pyroPortPanel.add(pyroPort);
      JPanel fridaPathPanel=new JPanel();
      fridaPathPanel.setLayout(new BoxLayout(fridaPathPanel,BoxLayout.X_AXIS));
      fridaPathPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelFridaPath=new JLabel("String_Node_Str");
      fridaPath=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       fridaPath.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else {
        if (System.getProperty("String_Node_Str").startsWith("String_Node_Str")) {
          fridaPath.setText("String_Node_Str");
        }
 else {
          fridaPath.setText("String_Node_Str");
        }
      }
      fridaPath.setMaximumSize(fridaPath.getPreferredSize());
      JButton fridaPathButton=new JButton("String_Node_Str");
      fridaPathButton.setActionCommand("String_Node_Str");
      fridaPathButton.addActionListener(BurpExtender.this);
      fridaPathPanel.add(labelFridaPath);
      fridaPathPanel.add(fridaPath);
      fridaPathPanel.add(fridaPathButton);
      JPanel applicationIdPanel=new JPanel();
      applicationIdPanel.setLayout(new BoxLayout(applicationIdPanel,BoxLayout.X_AXIS));
      applicationIdPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelApplicationId=new JLabel("String_Node_Str");
      applicationId=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       applicationId.setText(callbacks.loadExtensionSetting("String_Node_Str"));
 else       applicationId.setText("String_Node_Str");
      applicationId.setMaximumSize(applicationId.getPreferredSize());
      applicationIdPanel.add(labelApplicationId);
      applicationIdPanel.add(applicationId);
      JPanel localRemotePanel=new JPanel();
      localRemotePanel.setLayout(new BoxLayout(localRemotePanel,BoxLayout.X_AXIS));
      localRemotePanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      remoteRadioButton=new JRadioButton("String_Node_Str");
      localRadioButton=new JRadioButton("String_Node_Str");
      if (callbacks.loadExtensionSetting("String_Node_Str") != null) {
        if (callbacks.loadExtensionSetting("String_Node_Str").equals("String_Node_Str"))         remoteRadioButton.setSelected(true);
 else         localRadioButton.setSelected(true);
      }
 else {
        remoteRadioButton.setSelected(true);
      }
      ButtonGroup localRemoteButtonGroup=new ButtonGroup();
      localRemoteButtonGroup.add(remoteRadioButton);
      localRemoteButtonGroup.add(localRadioButton);
      localRemotePanel.add(remoteRadioButton);
      localRemotePanel.add(localRadioButton);
      configurationConfPanel.add(serverStatusPanel);
      configurationConfPanel.add(applicationStatusPanel);
      configurationConfPanel.add(pythonPathPanel);
      configurationConfPanel.add(pyroHostPanel);
      configurationConfPanel.add(pyroPortPanel);
      configurationConfPanel.add(fridaPathPanel);
      configurationConfPanel.add(applicationIdPanel);
      configurationConfPanel.add(localRemotePanel);
      jsEditorTextArea=new TextEditorPane();
      jsEditorTextArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVASCRIPT);
      jsEditorTextArea.setCodeFoldingEnabled(false);
      RTextScrollPane sp=new RTextScrollPane(jsEditorTextArea);
      jsEditorTextArea.setFocusable(true);
      JPanel treeSearchPanel=new JPanel();
      treeSearchPanel.setLayout(new BorderLayout());
      JPanel treePanel=new JPanel(new FlowLayout(FlowLayout.LEFT));
      JScrollPane scrollTreeJPanel=new JScrollPane(treePanel);
      scrollTreeJPanel.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      DefaultMutableTreeNode top=new DefaultMutableTreeNode("String_Node_Str");
      tree=new JTree(top);
      tree.addMouseListener(BurpExtender.this);
      treePanel.add(tree);
      JPanel searchPanelBar=new JPanel();
      searchPanelBar.setLayout(new BoxLayout(searchPanelBar,BoxLayout.X_AXIS));
      JLabel findLabel=new JLabel("String_Node_Str");
      findTextField=new JTextField();
      JButton searchButton=new JButton("String_Node_Str");
      searchButton.setActionCommand("String_Node_Str");
      searchButton.addActionListener(BurpExtender.this);
      searchPanelBar.add(findLabel);
      searchPanelBar.add(findTextField);
      searchPanelBar.add(searchButton);
      treeSearchPanel.add(scrollTreeJPanel);
      treeSearchPanel.add(searchPanelBar,BorderLayout.SOUTH);
      stubTextEditor=callbacks.createTextEditor();
      stubTextEditor.setEditable(false);
      JPanel executeMethodPanel=new JPanel();
      executeMethodPanel.setLayout(new BoxLayout(executeMethodPanel,BoxLayout.Y_AXIS));
      JPanel executeMethodNamePanel=new JPanel();
      executeMethodNamePanel.setLayout(new BoxLayout(executeMethodNamePanel,BoxLayout.X_AXIS));
      executeMethodNamePanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelExecuteMethodName=new JLabel("String_Node_Str");
      executeMethodName=new JTextField(200);
      if (callbacks.loadExtensionSetting("String_Node_Str") != null)       executeMethodName.setText(callbacks.loadExtensionSetting("String_Node_Str"));
      executeMethodName.setMaximumSize(executeMethodName.getPreferredSize());
      executeMethodNamePanel.add(labelExecuteMethodName);
      executeMethodNamePanel.add(executeMethodName);
      JPanel executeMethodArgumentPanel=new JPanel();
      executeMethodArgumentPanel.setLayout(new BoxLayout(executeMethodArgumentPanel,BoxLayout.X_AXIS));
      executeMethodArgumentPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelExecuteMethodArgument=new JLabel("String_Node_Str");
      executeMethodArgument=new JTextField(200);
      executeMethodArgument.setMaximumSize(executeMethodArgument.getPreferredSize());
      JButton addExecuteMethodArgument=new JButton("String_Node_Str");
      addExecuteMethodArgument.setActionCommand("String_Node_Str");
      addExecuteMethodArgument.addActionListener(BurpExtender.this);
      executeMethodArgumentPanel.add(labelExecuteMethodArgument);
      executeMethodArgumentPanel.add(executeMethodArgument);
      executeMethodArgumentPanel.add(addExecuteMethodArgument);
      executeMethodInsertedArgumentList=new DefaultListModel();
      JPanel executeMethodInsertedArgumentPanel=new JPanel();
      executeMethodInsertedArgumentPanel.setLayout(new BoxLayout(executeMethodInsertedArgumentPanel,BoxLayout.X_AXIS));
      executeMethodInsertedArgumentPanel.setAlignmentX(Component.LEFT_ALIGNMENT);
      JLabel labelExecuteMethodInsertedArgument=new JLabel("String_Node_Str");
      executeMethodInsertedArgument=new JList(executeMethodInsertedArgumentList);
      JScrollPane executeMethodInsertedArgumentScrollPane=new JScrollPane(executeMethodInsertedArgument);
      executeMethodInsertedArgumentScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      executeMethodInsertedArgumentScrollPane.setBorder(new LineBorder(Color.BLACK));
      executeMethodInsertedArgumentScrollPane.setMaximumSize(executeMethodInsertedArgumentScrollPane.getPreferredSize());
      if (callbacks.loadExtensionSetting("String_Node_Str") != null) {
        int sizeArguments=Integer.parseInt(callbacks.loadExtensionSetting("String_Node_Str"));
        for (int i=0; i < sizeArguments; i++) {
          executeMethodInsertedArgumentList.addElement(callbacks.loadExtensionSetting("String_Node_Str" + i));
        }
      }
      JPanel executeMethodInsertedArgumentButtonPanel=new JPanel();
      executeMethodInsertedArgumentButtonPanel.setLayout(new BoxLayout(executeMethodInsertedArgumentButtonPanel,BoxLayout.Y_AXIS));
      JButton removeExecuteMethodArgument=new JButton("String_Node_Str");
      removeExecuteMethodArgument.setActionCommand("String_Node_Str");
      removeExecuteMethodArgument.addActionListener(BurpExtender.this);
      JButton modifyExecuteMethodArgument=new JButton("String_Node_Str");
      modifyExecuteMethodArgument.setActionCommand("String_Node_Str");
      modifyExecuteMethodArgument.addActionListener(BurpExtender.this);
      executeMethodInsertedArgumentButtonPanel.add(removeExecuteMethodArgument);
      executeMethodInsertedArgumentButtonPanel.add(modifyExecuteMethodArgument);
      executeMethodInsertedArgumentPanel.add(labelExecuteMethodInsertedArgument);
      executeMethodInsertedArgumentPanel.add(executeMethodInsertedArgumentScrollPane);
      executeMethodInsertedArgumentPanel.add(executeMethodInsertedArgumentButtonPanel);
      executeMethodPanel.add(executeMethodNamePanel);
      executeMethodPanel.add(executeMethodArgumentPanel);
      executeMethodPanel.add(executeMethodInsertedArgumentPanel);
      trapTable=new JTable(new TrapTableModel());
      JScrollPane trapTableScrollPane=new JScrollPane(trapTable);
      trapTableScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      trapTableScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
      trapTable.setAutoCreateRowSorter(true);
      ((DefaultTableCellRenderer)trapTable.getTableHeader().getDefaultRenderer()).setHorizontalAlignment(JLabel.CENTER);
      DefaultTableCellRenderer centerRenderer=new DefaultTableCellRenderer();
      centerRenderer.setHorizontalAlignment(JLabel.CENTER);
      trapTable.getColumnModel().getColumn(4).setCellRenderer(centerRenderer);
      trapTable.getColumnModel().getColumn(5).setCellRenderer(centerRenderer);
      tabbedPanel.add("String_Node_Str",configurationConfPanel);
      tabbedPanel.add("String_Node_Str",sp);
      tabbedPanel.add("String_Node_Str",treeSearchPanel);
      tabbedPanel.add("String_Node_Str",stubTextEditor.getComponent());
      tabbedPanel.add("String_Node_Str",executeMethodPanel);
      tabbedPanel.add("String_Node_Str",trapTableScrollPane);
      pluginConsoleTextArea=new JEditorPane("String_Node_Str","String_Node_Str");
      JScrollPane scrollPluginConsoleTextArea=new JScrollPane(pluginConsoleTextArea);
      scrollPluginConsoleTextArea.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
      pluginConsoleTextArea.setEditable(false);
      consoleTabbedSplitPane.setTopComponent(tabbedPanel);
      consoleTabbedSplitPane.setBottomComponent(scrollPluginConsoleTextArea);
      consoleTabbedSplitPane.setResizeWeight(.7d);
      JPanel rightSplitPane=new JPanel();
      rightSplitPane.setLayout(new GridBagLayout());
      GridBagConstraints gbc=new GridBagConstraints();
      gbc.gridwidth=GridBagConstraints.REMAINDER;
      gbc.fill=GridBagConstraints.HORIZONTAL;
      documentServerStatusButtons=new DefaultStyledDocument();
      serverStatusButtons=new JTextPane(documentServerStatusButtons);
      try {
        documentServerStatusButtons.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      serverStatusButtons.setMaximumSize(serverStatusButtons.getPreferredSize());
      documentApplicationStatusButtons=new DefaultStyledDocument();
      applicationStatusButtons=new JTextPane(documentApplicationStatusButtons);
      try {
        documentApplicationStatusButtons.insertString(0,"String_Node_Str",redStyle);
      }
 catch (      BadLocationException e) {
        printException(e,"String_Node_Str");
      }
      applicationStatusButtons.setMaximumSize(applicationStatusButtons.getPreferredSize());
      JButton startServer=new JButton("String_Node_Str");
      startServer.setActionCommand("String_Node_Str");
      startServer.addActionListener(BurpExtender.this);
      JButton killServer=new JButton("String_Node_Str");
      killServer.setActionCommand("String_Node_Str");
      killServer.addActionListener(BurpExtender.this);
      JButton spawnApplication=new JButton("String_Node_Str");
      spawnApplication.setActionCommand("String_Node_Str");
      spawnApplication.addActionListener(BurpExtender.this);
      JButton killApplication=new JButton("String_Node_Str");
      killApplication.setActionCommand("String_Node_Str");
      killApplication.addActionListener(BurpExtender.this);
      JButton reloadScript=new JButton("String_Node_Str");
      reloadScript.setActionCommand("String_Node_Str");
      reloadScript.addActionListener(BurpExtender.this);
      clearConsoleButton=new JButton("String_Node_Str");
      clearConsoleButton.setActionCommand("String_Node_Str");
      clearConsoleButton.addActionListener(BurpExtender.this);
      executeMethodButton=new JButton("String_Node_Str");
      executeMethodButton.setActionCommand("String_Node_Str");
      executeMethodButton.addActionListener(BurpExtender.this);
      generateJavaStubButton=new JButton("String_Node_Str");
      generateJavaStubButton.setActionCommand("String_Node_Str");
      generateJavaStubButton.addActionListener(BurpExtender.this);
      generatePythonStubButton=new JButton("String_Node_Str");
      generatePythonStubButton.setActionCommand("String_Node_Str");
      generatePythonStubButton.addActionListener(BurpExtender.this);
      saveSettingsToFileButton=new JButton("String_Node_Str");
      saveSettingsToFileButton.setActionCommand("String_Node_Str");
      saveSettingsToFileButton.addActionListener(BurpExtender.this);
      loadSettingsFromFileButton=new JButton("String_Node_Str");
      loadSettingsFromFileButton.setActionCommand("String_Node_Str");
      loadSettingsFromFileButton.addActionListener(BurpExtender.this);
      loadJSFileButton=new JButton("String_Node_Str");
      loadJSFileButton.setActionCommand("String_Node_Str");
      loadJSFileButton.addActionListener(BurpExtender.this);
      saveJSFileButton=new JButton("String_Node_Str");
      saveJSFileButton.setActionCommand("String_Node_Str");
      saveJSFileButton.addActionListener(BurpExtender.this);
      loadTreeButton=new JButton("String_Node_Str");
      loadTreeButton.setActionCommand("String_Node_Str");
      loadTreeButton.addActionListener(BurpExtender.this);
      detachAllButton=new JButton("String_Node_Str");
      detachAllButton.setActionCommand("String_Node_Str");
      detachAllButton.addActionListener(BurpExtender.this);
      JSeparator separator=new JSeparator(SwingConstants.HORIZONTAL);
      separator.setBorder(BorderFactory.createMatteBorder(3,0,3,0,Color.ORANGE));
      rightSplitPane.add(serverStatusButtons,gbc);
      rightSplitPane.add(applicationStatusButtons,gbc);
      rightSplitPane.add(startServer,gbc);
      rightSplitPane.add(killServer,gbc);
      rightSplitPane.add(spawnApplication,gbc);
      rightSplitPane.add(killApplication,gbc);
      rightSplitPane.add(reloadScript,gbc);
      rightSplitPane.add(clearConsoleButton,gbc);
      rightSplitPane.add(separator,gbc);
      rightSplitPane.add(saveSettingsToFileButton,gbc);
      rightSplitPane.add(loadSettingsFromFileButton,gbc);
      rightSplitPane.add(loadJSFileButton,gbc);
      rightSplitPane.add(saveJSFileButton,gbc);
      rightSplitPane.add(executeMethodButton,gbc);
      rightSplitPane.add(generateJavaStubButton,gbc);
      rightSplitPane.add(generatePythonStubButton,gbc);
      rightSplitPane.add(loadTreeButton,gbc);
      rightSplitPane.add(detachAllButton,gbc);
      splitPane.setLeftComponent(consoleTabbedSplitPane);
      splitPane.setRightComponent(rightSplitPane);
      splitPane.setResizeWeight(.9d);
      mainPanel.add(splitPane);
      callbacks.customizeUiComponent(mainPanel);
      callbacks.addSuiteTab(BurpExtender.this);
    }
  }
);
}