user: Explain Operator Example in complete detail according to the official Blender documentation.

assistant: * list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.holes_fill(*bm*, *edges=[]*, *sides=0*)
:   Fill Holes.

    Fill boundary edges with faces, copying surrounding custom-data.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **sides** (*int*) – Number of face sides to fill.

    Returns:
    :   - `faces`:
          New faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.face_attribute_fill(*bm*, *faces=[]*, *use_normals=False*, *use_data=False*)
:   Face Attribute Fill.

    Fill in faces with data from adjacent faces.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **use_normals** (*bool*) – Copy face winding.
        - **use_data** (*bool*) – Copy face data.

    Returns:
    :   - `faces_fail`:
          Faces that could not be handled.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.edgeloop_fill(*bm*, *edges=[]*, *mat_nr=0*, *use_smooth=False*)
:   Edge Loop Fill.

    Create faces defined by one or more non overlapping edge loops.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **mat_nr** (*int*) – Material to use.
        - **use_smooth** (*bool*) – Smooth state to use.

    Returns:
    :   - `faces`:
          New faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.edgenet_fill(*bm*, *edges=[]*, *mat_nr=0*, *use_smooth=False*, *sides=0*)
:   Edge Net Fill.

    Create faces defined by enclosed edges.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **mat_nr** (*int*) – Material to use.
        - **use_smooth** (*bool*) – Smooth state to use.
        - **sides** (*int*) – Number of sides.

    Returns:
    :   - `faces`:
          New faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.edgenet_prepare(*bm*, *edges=[]*)
:   Edge-net Prepare.

    Identifies several useful edge loop cases and modifies them so
    they’ll become a face when edgenet_fill is called. The cases covered are:

    - One single loop; an edge is added to connect the ends
    - Two loops; two edges are added to connect the endpoints (based on the
      shortest distance between each endpoint).

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.

    Returns:
    :   - `edges`:
          New edges.

          **type** list of (`bmesh.types.BMEdge`)

    Return type:
    :   dict[str, Any]

bmesh.ops.rotate(*bm*, *cent=mathutils.Vector()*, *matrix=mathutils.Matrix.Identity(4)*, *verts=[]*, *space=mathutils.Matrix.Identity(4)*, *use_shapekey=False*)
:   Rotate.

    Rotate vertices around a center, using a 3x3 rotation matrix.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **cent** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") or any sequence of 3 floats) – Center of rotation.
        - **matrix** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix")) – Matrix defining rotation.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **space** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix")) – Matrix to define the space (typically object matrix).
        - **use_shapekey** (*bool*) – Transform shape keys too.

bmesh.ops.translate(*bm*, *vec=mathutils.Vector()*, *space=mathutils.Matrix.Identity(4)*, *verts=[]*, *use_shapekey=False*)
:   Translate.

    Translate vertices by an offset.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **vec** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") or any sequence of 3 floats) – Translation offset.
        - **space** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix")) – Matrix to define the space (typically object matrix).
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **use_shapekey** (*bool*) – Transform shape keys too.

bmesh.ops.scale(*bm*, *vec=mathutils.Vector()*, *space=mathutils.Matrix.Identity(4)*, *verts=[]*, *use_shapekey=False*)
:   Scale.

    Scales vertices by an offset.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **vec** ([`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector") or any sequence of 3 floats) – Scale factor.
        - **space** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix")) – Matrix to define the space (typically object matrix).
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **use_shapekey** (*bool*) – Transform shape keys too.

bmesh.ops.transform(*bm*, *matrix=mathutils.Matrix.Identity(4)*, *space=mathutils.Matrix.Identity(4)*, *verts=[]*, *use_shapekey=False*)
:   Transform.

    Transforms a set of vertices by a matrix. Multiplies
    the vertex coordinates with the matrix.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **matrix** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix")) – Transform matrix.
        - **space** ([`mathutils.Matrix`](mathutils.html#mathutils.Matrix "mathutils.Matrix")) – Matrix to define the space (typically object matrix).
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **use_shapekey** (*bool*) – Transform shape keys too.

bmesh.ops.object_load_bmesh(*bm*, *scene*, *object*)
:   Object Load BMesh.

    Loads a bmesh into an object/mesh. This is a “private”
    BMOP.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **scene** ([`bpy.types.Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")) – Pointer to an scene structure.
        - **object** ([`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")) – Pointer to an object structure.

bmesh.ops.bmesh_to_mesh(*bm*, *mesh*, *object*)
:   BMesh to Mesh.

    Converts a bmesh to a Mesh. This is reserved for exiting edit-mode.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **mesh** ([`bpy.types.Mesh`](bpy.types.Mesh.html#bpy.types.Mesh "bpy.types.Mesh")) – Pointer to a mesh structure to fill in.
        - **object** ([`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")) – Pointer to an object structure.

bmesh.ops.mesh_to_bmesh(*bm*, *mesh*, *object*, *use_shapekey=False*)
:   Mesh to BMesh.

    Load the contents of a mesh into the bmesh. this BMOP is private, it’s
    reserved exclusively for entering edit-mode.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **mesh** ([`bpy.types.Mesh`](bpy.types.Mesh.html#bpy.types.Mesh "bpy.types.Mesh")) – Pointer to a Mesh structure.
        - **object** ([`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")) – Pointer to an Object structure.
        - **use_shapekey** (*bool*) – Load active shapekey coordinates into verts.

bmesh.ops.extrude_discrete_faces(*bm*, *faces=[]*, *use_normal_flip=False*, *use_select_history=False*)
:   Individual Face Extrude.

    Extrudes faces individually.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **use_normal_flip** (*bool*) – Create faces with reversed direction.
        - **use_select_history** (*bool*) – Pass to duplicate.

    Returns:
    :   - `faces`:
          Output faces.

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.extrude_edge_only(*bm*, *edges=[]*, *use_normal_flip=False*, *use_select_history=False*)
:   Extrude Only Edges.

    Extrudes Edges into faces, note that this is very simple, there’s no fancy
    winged extrusion.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input vertices.
        - **use_normal_flip** (*bool*) – Create faces with reversed direction.
        - **use_select_history** (*bool*) – Pass to duplicate.

    Returns:
    :   - `geom`:
          Output geometry.

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.extrude_vert_indiv(*bm*, *verts=[]*, *use_select_history=False*)
:   Individual Vertex Extrude.

    Extrudes wire edges from vertices.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **use_select_history** (*bool*) – Pass to duplicate.

    Returns:
    :   - `edges`:
          Output wire edges.

          **type** list of (`bmesh.types.BMEdge`)
        - `verts`:
          Output vertices.

          **type** list of (`bmesh.types.BMVert`)

    Return type:
    :   dict[str, Any]

bmesh.ops.connect_verts(*bm*, *verts=[]*, *faces_exclude=[]*, *check_degenerate=False*)
:   Connect Verts.

    Split faces by adding edges that connect **verts**.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **faces_exclude** (list of (`bmesh.types.BMFace`)) – Input faces to explicitly exclude from connecting.
        - **check_degenerate** (*bool*) – Prevent splits with overlaps & intersections.

    Returns:
    :   - `edges`:

          **type** list of (`bmesh.types.BMEdge`)

    Return type:
    :   dict[str, Any]

bmesh.ops.connect_verts_concave(*bm*, *faces=[]*)
:   Connect Verts to form Convex Faces.

    Ensures all faces are convex **faces**.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.

    Returns:
    :   - `edges`:

          **type** list of (`bmesh.types.BMEdge`)
        - `faces`:

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.connect_verts_nonplanar(*bm*, *angle_limit=0*, *faces=[]*)
:   Connect Verts Across non Planer Faces.

    Split faces by connecting edges along non planer **faces**.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **angle_limit** (*float*) – Total rotation angle (radians).
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.

    Returns:
    :   - `edges`:

          **type** list of (`bmesh.types.BMEdge`)
        - `faces`:

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.connect_vert_pair(*bm*, *verts=[]*, *verts_exclude=[]*, *faces_exclude=[]*)
:   Connect Verts.

    Split faces by adding edges that connect **verts**.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **verts_exclude** (list of (`bmesh.types.BMVert`)) – Input vertices to explicitly exclude from connecting.
        - **faces_exclude** (list of (`bmesh.types.BMFace`)) – Input faces to explicitly exclude from connecting.

    Returns:
    :   - `edges`:

          **type** list of (`bmesh.types.BMEdge`)

    Return type:
    :   dict[str, Any]

bmesh.ops.extrude_face_region(*bm*, *geom=[]*, *edges_exclude=set()*, *use_keep_orig=False*, *use_normal_flip=False*, *use_normal_from_adjacent=False*, *use_dissolve_ortho_edges=False*, *use_select_history=False*, *skip_input_flip=False*)
:   Extrude Faces.

    Extrude operator (does not transform)

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **geom** (list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)) – Edges and faces.
        - **edges_exclude** (*set* *of* *vert/edge/face type*) – Input edges to explicitly exclude from extrusion.
        - **use_keep_orig** (*bool*) – Keep original geometry (requires `geom` to include edges).
        - **use_normal_flip** (*bool*) – Create faces with reversed direction.
        - **use_normal_from_adjacent** (*bool*) – Use winding from surrounding faces instead of this region.
        - **use_dissolve_ortho_edges** (*bool*) – Dissolve edges whose faces form a flat surface.
        - **use_select_history** (*bool*) – Pass to duplicate.
        - **skip_input_flip** (*bool*) – Skip flipping of input faces to preserve original orientation.

    Returns:
    :   - `geom`:

          **type** list of (`bmesh.types.BMVert`, `bmesh.types.BMEdge`, `bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.dissolve_verts(*bm*, *verts=[]*, *use_face_split=False*, *use_boundary_tear=False*)
:   Dissolve Verts.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **use_face_split** (*bool*) – Split off face corners to maintain surrounding geometry.
        - **use_boundary_tear** (*bool*) – Split off face corners instead of merging faces.

bmesh.ops.dissolve_edges(*bm*, *edges=[]*, *use_verts=False*, *use_face_split=False*, *angle_threshold=0*)
:   Dissolve Edges.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **use_verts** (*bool*) – Dissolve verts left between only 2 edges.
        - **use_face_split** (*bool*) – Split off face corners to maintain surrounding geometry.
        - **angle_threshold** (*float*) – Do not dissolve verts between 2 edges when their angle exceeds this threshold.
          Disabled by default.

    Returns:
    :   - `region`:

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.dissolve_faces(*bm*, *faces=[]*, *use_verts=False*)
:   Dissolve Faces.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **use_verts** (*bool*) – Dissolve verts left between only 2 edges.

    Returns:
    :   - `region`:

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.dissolve_limit(*bm*, *angle_limit=0*, *use_dissolve_boundaries=False*, *verts=[]*, *edges=[]*, *delimit=set()*)
:   Limited Dissolve.

    Dissolve planar faces and co-linear edges.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **angle_limit** (*float*) – Total rotation angle (radians).
        - **use_dissolve_boundaries** (*bool*) – Dissolve all vertices in between face boundaries.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.
        - **delimit** (*set* *of* *flags from* *[**'NORMAL'**,* *'MATERIAL'**,* *'SEAM'**,* *'SHARP'**,* *'UV'**]**,* *default set**(**)*) – Delimit dissolve operation.

    Returns:
    :   - `region`:

          **type** list of (`bmesh.types.BMFace`)

    Return type:
    :   dict[str, Any]

bmesh.ops.dissolve_degenerate(*bm*, *dist=0*, *edges=[]*)
:   Degenerate Dissolve.

    Dissolve edges with no length, faces with no area.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **dist** (*float*) – Maximum distance to consider degenerate.
        - **edges** (list of (`bmesh.types.BMEdge`)) – Input edges.

bmesh.ops.triangulate(*bm*, *faces=[]*, *quad_method='BEAUTY'*, *ngon_method='BEAUTY'*)
:   Triangulate.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **faces** (list of (`bmesh.types.BMFace`)) – Input faces.
        - **quad_method** (*enum in* *[**'BEAUTY'**,* *'FIXED'**,* *'ALTERNATE'**,* *'SHORT_EDGE'**,* *'LONG_EDGE'**]**,* *default 'BEAUTY'*) – Method for splitting the quads into triangles.
        - **ngon_method** (*enum in* *[**'BEAUTY'**,* *'EAR_CLIP'**]**,* *default 'BEAUTY'*) – Method for splitting the polygons into triangles.

    Returns:
    :   - `edges`:

          **type** list of (`bmesh.types.BMEdge`)
        - `faces`:

          **type** list of (`bmesh.types.BMFace`)
        - `face_map`:

          **type** dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`
        - `face_map_double`:
          Duplicate faces.

          **type** dict mapping vert/edge/face types to `bmesh.types.BMVert`/`bmesh.types.BMEdge`/`bmesh.types.BMFace`

    Return type:
    :   dict[str, Any]

bmesh.ops.unsubdivide(*bm*, *verts=[]*, *iterations=0*)
:   Un-Subdivide.

    Reduce detail in geometry containing grids.

    Parameters:
    :   - **bm** (`bmesh.types.BMesh`) – The bmesh to operate on.
        - **verts** (list of (`bmesh.types.BMVert`)) – Input vertices.
        - **iterations** (*int*) – Number of times to unsubdivide.

bmesh.ops.subdivide_edges(*bm*, *edges=[]*, *smooth=0*, *smooth_falloff='SMOOTH'*, *fractal=0*, *along_normal=0*, *cuts=0*, *seed=0*, *custom_patterns={}*, *edge_percents={}*, *quad_corner_type='STRAIGHT_CUT'*, *use_grid_fill=False*, *use_single_edge=False*, *use_only_quads=False*, *use_sphere=False*, *use_smooth_even=False*)
:   Subdivide Edges.

    Advanced operator