How set cursor_rotation (Quartanion) follow to vector (normal)? (solved)

I want to auto align 3d cursor for selected (and active) vertices with keep “armature visual transform” in edit mode, to edit mesh by gizmo. I could solve about transform , now I can set 3d cursor on selected vertices average or active vertex postion. then I set 3d cursor as Pivot point with Gizmo.

Next I hope to set 3d cursor rotation, align to selected vertex average or active vertex normal. (with keep visual transform)

To rotate 3d cursor, I think, I can use " bpy.context.scene.cursor_rotation"
as same as cursor_location. And I could get, vertex, normal vector (of visual transform by armature) too.

so, now I have normalVector = mathutils.Vector((a,b,c)), and just need to get
quartanion () which rotate 3d cursor then set 3d cursor z axis (0, 0, 1) to normalVector.

Could someone teach me please, which method of math utils may get this quartanion value?
//////////////
I could find “to_track_quat(track , up)” in mathutils vector method.
I did not think it work as I supposed, (did not know , what 2 argument means) but about my case, I only need to rotate z axis of 3d cursor, to fit vertices normal vector, then it seems work for me…