Edit this python code to change the insertion point to be the first tags in the <cfldap/> element, also add code to replace the server tag value with "TESTSERVER": 
def process_cfml_file(file_path):
    """
    Scans a single .cfm or .cfc file for <cfldap> tags and checks for attributes.
    Prompts the user to add missing attributes if necessary.
    """
    print(f"--- Scanning file: {file_path}")

    try:
        with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:
            original_content = f.read()
    except IOError as e:
        print(f"    [ERROR] Could not read file: {e}")
        return

    # Regex to find <cfldap ... > tags, accounting for multi-line and case-insensitivity.
    # re.DOTALL makes '.' match newlines. re.IGNORECASE handles <cfldap>, <CFLDAP>, etc.
    ldap_tag_regex = re.compile(r'<cfldap(.*?)>', re.DOTALL | re.IGNORECASE)
    
    # We will build a new version of the content.
    new_content = original_content
    file_modified = False
    
    # Find all matches. We iterate in reverse to ensure that modifying the string
    # doesn't mess up the character indices of subsequent matches.
    matches = list(ldap_tag_regex.finditer(original_content))
    
    if not matches:
        return # No <cfldap> tags found, nothing to do.

    print(f"    Found {len(matches)} <cfldap> tag(s).")

    for i, match in enumerate(reversed(matches)):
        tag_text = match.group(0)
        
        # We check the attributes in a case-insensitive way
        tag_lower = tag_text.lower()
        
        # Check for presence of each required attribute
        has_port = 'port=' in tag_lower
        has_usetls = 'usetls=' in tag_lower
        
        if has_port and has_usetls:
            print(f"    - Tag #{len(matches)-i}: All required attributes are present. Skipping.")
            continue
            
        # At least one attribute is missing
        print("\n" + "="*50)
        print(f"    [ISSUE] In file: {file_path}")
        print(f"    The following <cfldap> tag is missing one or more attributes:")
        print(f"    {tag_text}\n")
        
        missing_attrs = []
        if not has_port: missing_attrs.append('port')
        if not has_usetls: missing_attrs.append('usetls')
        print(f"    Missing: {', '.join(missing_attrs)}")
        
        # Prompt the user for action
        answer = ""
        while answer not in ['y', 'n']:
            answer = input("    Would you like to add the default attributes? (y/n): ").lower().strip()
            
        if answer == 'y':
            # Build the string of attributes to add
            attributes_to_add = []
            if not has_server:
                attributes_to_add.append('server="srv-test"')
            if not has_port:
                attributes_to_add.append('port="636"')
            if not has_usetls:
                attributes_to_add.append('usetls="true"')
            
            # The string to insert will have a leading space
            insertion_string = " " + " ".join(attributes_to_add)
            
            insertion_point = match.end(0) - 1
            
            # Modify the content string
            new_content = new_content[:insertion_point] + insertion_string + new_content[insertion_point:]
            file_modified = True
            print("    [MODIFIED] Attributes added to the tag.")
        else:
            print("    [SKIPPED] User chose not to modify this tag.")
        
        print("="*50 + "\n")
        
    # After checking all tags, if any modifications were made, write back to the file
    if file_modified:
        try:
            print(f"--- Saving changes to: {file_path}")
            with open(file_path, 'w', encoding='utf-8') as f:
                f.write(new_content)
            print("    File saved successfully.")
        except IOError as e:
            print(f"    [ERROR] Could not write changes to file: {e}")