<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def start_thread(self, lpStartAddress, lpParameter=0, bSuspended = False):
 """ Remotely creates a new thread in the process. @type lpStartAddress: int @param lpStartAddress: Start address for the new thread. @type lpParameter: int @param lpParameter: Optional argument for the new thread. @type bSuspended: bool @param bSuspended: C{True} if the new thread should be suspended. In that case use L{Thread.resume} to start execution. """

        if bSuspended:
            dwCreationFlags = win32.CREATE_SUSPENDED
        else:
            dwCreationFlags = 0
        hProcess = self.get_handle( win32.PROCESS_CREATE_THREAD     |
                                    win32.PROCESS_QUERY_INFORMATION |
                                    win32.PROCESS_VM_OPERATION      |
                                    win32.PROCESS_VM_WRITE          |
                                    win32.PROCESS_VM_READ           )
        hThread, dwThreadId = win32.CreateRemoteThread(
                hProcess, 0, 0, lpStartAddress, lpParameter, dwCreationFlags)
        aThread = Thread(dwThreadId, hThread, self)
        self._add_thread(aThread)
        return aThread