§
    ¡)ýft<  ã                   óx  — d dl Z d dlmZmZ d dlmZmZmZ d dlm	Z
 d„ Z G d„ de¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ de¦  «        Z G d„ de¦  «        Z G d„ d¦  «        Zd„ Z G d„ d¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        Z G d„ dee¦  «        ZeeeeeeeefZdS )é    N)ÚFileHandlerÚOperator)ÚEnumPropertyÚFloatPropertyÚIntProperty)Úpgettext_rptc                 óž   — g }t          | d¦  «        r|                     d¦  «         t          | d¦  «        r|                     d¦  «         |S )NÚvolumeÚblend_alpha)ÚhasattrÚappend)ÚsequenceÚanimated_propertiess     ú\/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/sequencer.pyÚ_animated_properties_getr      sZ   € ØÐÝˆx˜Ñ"Ô"ð -Ø×"Ò" 8Ñ,Ô,Ð,Ýˆx˜Ñ'Ô'ð 2Ø×"Ò" =Ñ1Ô1Ð1ØÐó    c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚSequencerCrossfadeSoundsz=Do cross-fading volume animation of two selected sound stripszsequencer.crossfade_soundszCrossfade SoundsÚREGISTERÚUNDOc                 ó*   — |j         }|o
|j        dk    S )NÚSOUND©Úactive_sequence_stripÚtype©ÚclsÚcontextÚstrips      r   ÚpollzSequencerCrossfadeSounds.poll#   s   € àÔ-ˆØÐ0˜%œ*¨Ò/Ð0r   c                 óX  — |j         }d }d }|j        j        D ]"}|j        r|j        dk    r|€|}Œ|€|}Œd } nŒ#|€|                      dhd¦  «         dhS |j        |j        k    r||}}|j        |j        k    r—|j        }|j        |_        | 	                    d¦  «         |j        |_        d|_
        | 	                    d¦  «         | 	                    d¦  «         |j        |_        d|_
        | 	                    d¦  «         ||_        dhS |                      dhd¦  «         dhS )	Nr   ÚERRORzSelect 2 sound stripsÚ	CANCELLEDr
   r   ÚFINISHEDz!The selected strips don't overlap)ÚsceneÚsequence_editorÚsequences_allÚselectr   ÚreportÚframe_final_startÚframe_final_endÚframe_currentÚkeyframe_insertr
   )Úselfr   r%   Úseq1Úseq2r   Útempcfras          r   Úexecutez SequencerCrossfadeSounds.execute(   sf  € Ø”ˆØˆØˆØÔ*Ô8ð 	ð 	ˆEØŒ|ð  ¤
¨gÒ 5Ð 5Ø�<Ø �D�DØ�\Ø �D�Dà�DØ�EøØˆ<Ø�KŠK˜˜	Ð#:Ñ;Ô;Ð;Ø�=Ð ØÔ! DÔ$:Ò:Ð:Ø˜t�$ˆDØÔ $Ô"8Ò8Ð8ØÔ*ˆHØ"&Ô"8ˆEÔØ× Ò  Ñ*Ô*Ð*Ø"&Ô"6ˆEÔØˆDŒKØ× Ò  Ñ*Ô*Ð*Ø× Ò  Ñ*Ô*Ð*Ø"&Ô"8ˆEÔØˆDŒKØ× Ò  Ñ*Ô*Ð*Ø"*ˆEÔØ�<Ðà�KŠK˜˜	Ð#FÑGÔGÐGØ�=Ð r   N©
Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	bl_idnameÚbl_labelÚ
bl_optionsÚclassmethodr    r2   © r   r   r   r      sV   € € € € € ØGÐGà,€IØ!€HØ˜fÐ%€Jàð1ð 1ñ „[ð1ð!!ð !!ð !!ð !!ð !!r   r   c                   óh   — e Zd ZU dZdZdZddhZ edddddd¬	¦  «        ed
<   e	d„ ¦   «         Z
d„ ZdS )ÚSequencerSplitMulticamz&Split multicam strip and select camerazsequencer.split_multicamzSplit Multicamr   r   ÚCameraé   é    )ÚnameÚminÚmaxÚsoft_minÚsoft_maxÚdefaultÚcamerac                 ó*   — |j         }|o
|j        dk    S )NÚMULTICAMr   r   s      r   r    zSequencerSplitMulticam.pollZ   s   € àÔ-ˆØÐ3˜%œ*¨
Ò2Ð3r   c                 óð   — |j         }| j        }|j        }|j        |k    s||j        k    rdhS |j        }|                     |d¬¦  «        }|rd|_        d|_        ||j        _	        ||j        _        dhS )Nr$   ÚSOFT)ÚframeÚsplit_methodFT)
r%   rH   r   Úmulticam_sourceÚchannelr,   Úsplitr(   r&   Úactive_strip)r.   r   r%   rH   r   ÚcfraÚright_strips          r   r2   zSequencerSplitMulticam.execute_   sŒ   € Ø”ˆØ”ˆàÔ-ˆàÔ  FÒ*Ð*¨f¸¼Ò.EÐ.EØ�<ÐàÔ"ˆØ—k’k¨¸6�kÑBÔBˆàð 	=Ø ˆEŒLØ!%ˆKÔØ1<ˆEÔ!Ô.à8>ˆÔ%Ô5Øˆ|Ðr   N)r4   r5   r6   r7   r8   r9   r:   r   Ú__annotations__r;   r    r2   r<   r   r   r>   r>   L   s�   € € € € € € Ø0Ð0à*€IØ€HØ˜fÐ%€JàˆKØØ�2Ø˜RØð	ñ ô ð ð ñ ð ð4ð 4ñ „[ð4ðð ð ð ð r   r>   c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	Ú"SequencerDeinterlaceSelectedMoviesz&Deinterlace all selected movie sourcesz%sequencer.deinterlace_selected_movieszDeinterlace Moviesr   r   c                 ó"   — |j         }|o|j        S ©N)r%   r&   )r   r   r%   s      r   r    z'SequencerDeinterlaceSelectedMovies.poll{   s   € à”ˆØÐ/˜%Ô/Ð0r   c                 ób   — |j         j        j        D ]}|j        r|j        dk    rd|_        ŒdhS )NÚMOVIETr$   )r%   r&   r'   r(   r   Úuse_deinterlace)r.   r   r   s      r   r2   z*SequencerDeinterlaceSelectedMovies.execute€   s@   € Ø”]Ô2Ô@ð 	-ð 	-ˆEØŒ|ð - ¤
¨gÒ 5Ð 5Ø(,�Ô%øàˆ|Ðr   Nr3   r<   r   r   rW   rW   t   sV   € € € € € Ø0Ð0à7€IØ#€HØ˜fÐ%€Jàð1ð 1ñ „[ð1ðð ð ð ð r   rW   c                   ó>   — e Zd ZdZdZdZddhZed„ ¦   «         Zd„ Z	dS )	ÚSequencerFadesClearz.Removes fade animation from selected sequenceszsequencer.fades_clearzClear Fadesr   r   c                 ó   — |j         }|d uS rY   ©r   r   s      r   r    zSequencerFadesClear.pollŽ   s   € àÔ-ˆØ˜DÐ Ð r   c                 ó|  — |j         }|j        }|€dhS |j        }|€dhS |j        }d„ |D ¦   «         }|j        D ]€}t          |¦  «        D ]Y}|                     ¦   «         dz   |z   }	|                     |	¦  «        }
|
r|                     |
¦  «         t          ||d¦  «         ŒZ| 
                    d¦  «         Œ�dhS )Nr#   c                 óR   — i | ]$}|j                              d ¦  «        ¯|j         |“Œ%S )zsequence_editor.sequences_all)Ú	data_pathÚ
startswith)Ú.0Úcurves     r   ú
<dictcomp>z/SequencerFadesClear.execute.<locals>.<dictcomp>œ   sC   € ð 
ð 
ð 
àØŒ×)Ò)Ð*IÑJÔJð
ØŒO˜Uð
ð 
ð 
r   ú.ç      ð?Ú	COMPOSITEr$   )r%   Úanimation_dataÚactionÚfcurvesÚselected_sequencesr   Úpath_from_idÚgetÚremoveÚsetattrÚinvalidate_cache)r.   r   r%   rk   rl   rm   Ú
fcurve_mapr   Úanimated_propertyrc   rf   s              r   r2   zSequencerFadesClear.execute“   s  € Ø”ˆØÔ-ˆØÐ!Ø�=Ð ØÔ&ˆØˆ>Ø�=Ð Ø”.ˆð
ð 
à ð
ñ 
ô 
ˆ
ð
  Ô2ð 	3ð 	3ˆHÝ%=¸hÑ%GÔ%Gð :ð :Ð!Ø$×1Ò1Ñ3Ô3°cÑ9Ð<MÑM�	Ø"Ÿš yÑ1Ô1�Øð *Ø—N’N 5Ñ)Ô)Ð)Ý˜Ð"3°SÑ9Ô9Ð9Ð9Ø×%Ò% kÑ2Ô2Ð2Ð2àˆ|Ðr   Nr3   r<   r   r   r^   r^   ˆ   sV   € € € € € Ø8Ð8Ø'€IØ€HØ˜fÐ%€Jàð!ð !ñ „[ð!ðð ð ð ð r   r^   c                   ó®   — e Zd ZU dZdZdZddhZ edddd	¬
¦  «        ed<    e	dddd¬¦  «        ed<   e
d„ ¦   «         Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ ZdS )ÚSequencerFadesAddzBAdds or updates a fade animation for either visual or audio stripszsequencer.fades_addz	Add Fadesr   r   zFade DurationzDuration of the fade in secondsri   g{®Gáz„?)rB   ÚdescriptionrG   rC   Úduration_seconds))ÚIN_OUTzFade In and OutzFade selected strips in and out)ÚINzFade InzFade in selected strips)ÚOUTzFade OutzFade out selected strips)ÚCURSOR_FROMzFrom Current Framez=Fade from the time cursor to the end of overlapping sequences)Ú	CURSOR_TOzTo Current FramezKFade from the start of sequences under the time cursor to the current framez	Fade TypezXFade in, out, both in and out, to, or from the current frame. Default is both in and outrz   )ÚitemsrB   rx   rG   r   c                 ó   — |j         }|d uS rY   r`   r   s      r   r    zSequencerFadesAdd.pollÈ   s   € ð Ô-ˆØ˜DÐ Ð r   c                 ó`  ‡— ddl m} |j        Š‰j        s‰                     ¦   «          ‰j        j        s8t          j        j         	                    ‰j
        dz   ¦  «        }|‰j        _        |j        }|s|                      dhd¦  «         dhS | j        dv r*ˆfd„|D ¦   «         }|s|                      dhd	¦  «         dhS t          |d
„ ¬¦  «        j        }| j        dk    r ||dz  ¦  «        n|}g }|D ]Ö}|                      ||¦  «        }t          ||¦  «        }|                      ||¦  «        sŒ?t%          |¦  «        D ]]}	|                      |||	¦  «        }
|                      ||
|	|¦  «        }|                      |
|¦  «         |                      |
|¦  «         Œ^|                     |¦  «         |                     d¦  «         Œ×t3          |¦  «        dk    rdnd}|                      dht5          d¦  «                             t3          |¦  «        |¦  «        ¦  «         dhS )Nr   )ÚfloorÚActionr"   zNo sequences selectedr#   >   r~   r}   c                 óR   •— g | ]#}|j         ‰j        cxk     r|j        k     ¯n n|‘Œ$S r<   )r*   r,   r+   )re   r   r%   s     €r   ú
<listcomp>z-SequencerFadesAdd.execute.<locals>.<listcomp>à   sN   ø€ ð ð ð ØØÔ*¨UÔ-@ÐXÐXÒXÐXÀ5ÔCXÒXÐXÐXÐXÐXð ØXÐXÐXr   z)Current frame not within strip framerangec                 ó   — | j         S rY   )Úframe_final_duration)r   s    r   ú<lambda>z+SequencerFadesAdd.execute.<locals>.<lambda>è   s	   € ¸Ô8R€ r   )Úkeyrz   g       @rj   r@   r   Ú	sequencesÚINFOz!Added fade animation to {:d} {:s}r$   )Úmathr‚   r%   rk   Úanimation_data_createrl   ÚbpyÚdataÚactionsÚnewrB   rn   r)   r   rC   r‡   Úcalculate_fade_durationÚis_long_enoughr   Úfade_find_or_create_fcurveÚcalculate_fadesÚfade_animation_clearÚfade_animation_creater   rs   ÚlenÚrpt_Úformat)r.   r   r‚   rl   rŠ   Úmax_durationÚfaded_sequencesr   Údurationru   Úfade_fcurveÚfadesÚsequence_stringr%   s                @r   r2   zSequencerFadesAdd.executeÎ   s“  ø€ ØÐÐÐÐÐð ”ˆØÔ#ð 	*Ø×'Ò'Ñ)Ô)Ð)ØÔ#Ô*ð 	1Ý”XÔ%×)Ò)¨%¬*°xÑ*?Ñ@Ô@ˆFØ*0ˆEÔ Ô'àÔ.ˆ	àð 	!Ø�KŠK˜˜	Ð#:Ñ;Ô;Ð;Ø�=Ð àŒ9Ð4Ð4Ð4ðð ð ð Ø#,ðñ ô ˆIð ð %Ø—’˜W˜IÐ'RÑSÔSÐSØ#�}Ð$å˜9Ð*RÐ*RÐSÑSÔSÔhˆØ48´IÀÒ4IÐ4I�u�u˜\¨CÑ/Ñ0Ô0Ð0È|ˆàˆØ!ð 	3ð 	3ˆHØ×3Ò3°G¸XÑFÔFˆHÝ˜8 \Ñ2Ô2ˆHØ×&Ò& x°Ñ:Ô:ð Øå%=¸hÑ%GÔ%Gð ?ð ?Ð!Ø"×=Ò=¸gÀxÐQbÑcÔc�Ø×,Ò,¨X°{ÐDUÐW_Ñ`Ô`�Ø×)Ò)¨+°uÑ=Ô=Ð=Ø×*Ò*¨;¸Ñ>Ô>Ð>Ð>Ø×"Ò" 8Ñ,Ô,Ð,Ø×%Ò% kÑ2Ô2Ð2Ð2å(+¨OÑ(<Ô(<ÀÒ(AÐ(A˜*˜*À{ˆØ�Š�V�H�dÐ#FÑGÔG×NÒNÍsÐSbÑOcÔOcÐetÑuÔuÑvÔvÐvØˆ|Ðr   c                 óø   — |j         }|j        }d}| j        dk    rt          ||j        z
  ¦  «        }n8| j        dk    rt          |j        |z
  ¦  «        }nt          || j        ¦  «        }t          d|¦  «        S )Nç        r~   r}   r@   )	r%   r,   r   Úabsr*   r+   Úcalculate_duration_framesry   rD   )r.   r   r   r%   r,   r�   s         r   r’   z)SequencerFadesAdd.calculate_fade_durationþ   s€   € Ø”ˆØÔ+ˆØˆØŒ9˜Ò#Ð#Ý˜=¨8Ô+EÑEÑFÔFˆHˆHØŒY˜-Ò'Ð'Ý˜8Ô3°mÑCÑDÔDˆHˆHå0°¸Ô8MÑNÔNˆHÝ�1�hÑÔÐr   r¢   c                 ó<   — | j         dk    r|dz  n|}|j        |k    S )Nrz   é   )r   r‡   )r.   r   r�   Úminimum_durations       r   r“   z SequencerFadesAdd.is_long_enough
  s+   € Ø+/¬9¸Ò+@Ð+@˜8 a™<˜<ÀhÐØÔ,Ð0@Ò@Ð@r   c                 óÎ   — g }| j         dv r(t          ||d||¦  «        }|                     |¦  «         | j         dv r(t          ||d||¦  «        }|                     |¦  «         |S )z0
        Returns a list of Fade objects
        >   r{   rz   r~   r{   >   r|   rz   r}   r|   )r   ÚFader   )r.   r   rž   ru   r�   rŸ   Úfades          r   r•   z!SequencerFadesAdd.calculate_fades  sz   € ð ˆØŒ9Ð5Ð5Ð5Ý˜ +¨tÐ5FÈÑQÔQˆDØ�LŠL˜ÑÔÐØŒ9Ð8Ð8Ð8Ý˜ +¨uÐ6GÈÑRÔRˆDØ�LŠL˜ÑÔÐØˆr   c                 ó¼   — |j         }d}|j        j        j        }|                     |¦  «        }|D ]}|j        |k    r|} nŒ|s|                     |¬¦  «        }|S )zà
        Iterates over all the fcurves until it finds an fcurve with a data path
        that corresponds to the sequence.
        Returns the matching FCurve or creates a new one if the function can't find a match.
        N)rc   )r%   rk   rl   rm   ro   rc   r‘   )	r.   r   r   ru   r%   rž   rm   Úsearched_data_pathÚfcurves	            r   r”   z,SequencerFadesAdd.fade_find_or_create_fcurve  s…   € ð ”ˆØˆØÔ&Ô-Ô5ˆØ%×2Ò2Ð3DÑEÔEÐØð 	ð 	ˆFØÔÐ#5Ò5Ð5Ø$�Ø�ð 6ð ð 	DØ!Ÿ+š+Ð0B˜+ÑCÔCˆKØÐr   c                 óþ   — |j         }|D ]r}|D ]Y}	 |j        j        |j        d         cxk     r|j        j        k    rn n|                     |d¬¦  «         ŒJ# t          $ r Y ŒVw xY w|                     ¦   «          ŒsdS )zx
        Removes existing keyframes in the fades' time range, in fast mode, without
        updating the fcurve
        r   T)ÚfastN)Úkeyframe_pointsÚstartÚxÚcoÚendrq   Ú	ExceptionÚupdate)r.   rž   rŸ   r°   rª   Úkeyframes         r   r–   z&SequencerFadesAdd.fade_animation_clear-  s¸   € ð
 &Ô5ˆØð 		!ð 		!ˆDØ+ð ð �ðØ”z”| h¤k°!¤nÐBÐBÒBÐB¸¼¼
ÒBÐBÐBÐBÐBØ'×.Ò.¨x¸dÐ.ÑCÔCÐCøøÝ ð ð ð Ø�Dðøøøà×ÒÑ Ô Ð Ð ð		!ð 		!s   ‘AAÁ
A%Á$A%c                 óÞ   — |j         }|D ]6}|j        |j        fD ]%}|                     |j        |j        dh¬¦  «         Œ&Œ7|                     ¦   «          |d         j        |d         _        dS )z³
        Inserts keyframes in the fade_fcurve in fast mode using the Fade objects.
        Updates the fcurve after having inserted all keyframes to finish the animation.
        ÚFAST)rM   ÚvalueÚoptionséÿÿÿÿN)r°   r±   r´   Úinsertr²   Úyr¶   r³   )r.   rž   rŸ   r°   rª   Úpoints         r   r—   z'SequencerFadesAdd.fade_animation_create>  sŽ   € ð
 &Ô5ˆØð 	Wð 	WˆDØœ* d¤hÐ/ð Wð W�Ø×&Ò&¨U¬W¸E¼GÈfÈXÐ&ÑVÔVÐVÐVðWà×ÒÑÔÐà!0°Ô!4Ô!7ˆ˜ÔÔÐÐr   N)r¢   )r4   r5   r6   r7   r8   r9   r:   r   rU   r   r;   r    r2   r’   r“   r•   r”   r–   r—   r<   r   r   rw   rw   ­   s"  € € € € € € ØLÐLØ%€IØ€HØ˜fÐ%€Jà#�mØØ5ØØð	ñ ô ð ð ñ ð ˆ,ð
ð ØnØðñ ô ð ð ñ ð ð!ð !ñ „[ð!ð
.ð .ð .ð`
 ð 
 ð 
 ðAð Að Að Aðð ð ðð ð ð$!ð !ð !ð"8ð 8ð 8ð 8ð 8r   rw   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )r©   )r   ru   r�   Ú	max_valuer±   r´   c                 ó~  — ddl m} || _        || _        || _        |                      ||¦  «        | _        |dk    r= ||j        df¦  «        | _         ||j        | j        z   | j        f¦  «        | _	        d S |dk    r= ||j
        | j        z
  | j        f¦  «        | _         ||j
        df¦  «        | _	        d S d S )Nr   )ÚVectorr{   r¢   r|   )Ú	mathutilsrÃ   r   ru   r�   Úcalculate_max_valuerÁ   r*   r±   r´   r+   )r.   r   rž   r   ru   r�   rÃ   s          r   Ú__init__zFade.__init__W  sØ   € Ø$Ð$Ð$Ð$Ð$Ð$ØˆŒ	Ø!2ˆÔØ ˆŒØ×1Ò1°(¸KÑHÔHˆŒà�4Š<ˆ<Ø˜ Ô!;¸SÐ AÑBÔBˆDŒJØ�v˜xÔ9¸D¼MÑIÈ4Ì>ÐZÑ[Ô[ˆDŒHˆHˆHØ�UŠ]ˆ]Ø˜ Ô!9¸D¼MÑ!IÈ4Ì>Ð ZÑ[Ô[ˆDŒJØ�v˜xÔ7¸Ð=Ñ>Ô>ˆDŒHˆHˆHð ˆ]r   c                 ó€  ‡‡— d}|j         st          || j        d¦  «        }n“| j        dk    r"|j        | j        z   Šˆfd„|j         D ¦   «         }| j        dk    r/|j        | j        z
  Šˆfd„t          |j         ¦  «        D ¦   «         }	 t          |¦  «        j	        d         }n# t          $ r Y nw xY w|dk    r|ndS )zÍ
        Returns the maximum Y coordinate the fade animation should use for a given sequence
        Uses either the sequence's value for the animated property, or the next keyframe after the fade
        r¢   ri   r{   c              3   ó>   •K  — | ]}|j         d          ‰k    ¯|V — ŒdS ©r   N©r³   )re   ÚkÚfade_ends     €r   ú	<genexpr>z+Fade.calculate_max_value.<locals>.<genexpr>q  s4   øè è € Ð[Ð[ 1ÀqÄtÈAÄwÐRZÒGZÐGZ˜QÐGZÐGZÐGZÐGZÐ[Ð[r   r|   c              3   ó>   •K  — | ]}|j         d          ‰k    ¯|V — ŒdS rÉ   rÊ   )re   rË   Ú
fade_starts     €r   rÍ   z+Fade.calculate_max_value.<locals>.<genexpr>t  s8   øè è € ÐgÐg 1ÐQRÔQUÐVWÔQXÐ\fÒQfÐQf˜QÐQfÐQfÐQfÐQfÐgÐgr   r@   )r°   Úgetattrru   r   r*   r�   r+   ÚreversedÚnextr³   ÚStopIteration)r.   r   rž   rÁ   Ú	keyframesrÌ   rÏ   s        @@r   rÅ   zFade.calculate_max_valuee  sò   øø€ ð
 ˆ	àÔ*ð 	Ý ¨$Ô*@À#ÑFÔFˆIˆIàŒy˜DÒ Ð Ø#Ô5¸¼ÑE�Ø[Ð[Ð[Ð[¨Ô(CÐ[Ñ[Ô[�	ØŒy˜EÒ!Ð!Ø%Ô5¸¼ÑE�
ØgÐgÐgÐg­°Ô1LÑ(MÔ(MÐgÑgÔg�	ðÝ  ™OœOÔ.¨qÔ1�	�	øÝ ð ð ð Ø�ðøøøð &¨šO˜Oˆyˆy°Ð4s   ÂB& Â&
B3Â2B3c                 óN   — d                      | j        | j        | j        ¦  «        S )NzFade {!r}: {!r} to {!r})rš   r   r±   r´   )r.   s    r   Ú__repr__zFade.__repr__|  s    € Ø(×/Ò/°´	¸4¼:ÀtÄxÑPÔPÐPr   N)r4   r5   r6   Ú	__slots__rÆ   rÅ   rÖ   r<   r   r   r©   r©   L  sM   € € € € € ð€Ið?ð ?ð ?ð5ð 5ð 5ð.Qð Qð Qð Qð Qr   r©   c                 óT   — t          || j        j        z  | j        j        z  ¦  «        S rY   )ÚroundÚrenderÚfpsÚfps_base)r%   ry   s     r   r¤   r¤   €  s%   € ÝÐ! E¤LÔ$4Ñ4°u´|Ô7LÑLÑMÔMÐMr   c                   ó$   — e Zd Zed„ ¦   «         ZdS )ÚSequencerFileHandlerBasec                 óf   — |j         d uo(|j         j        dk    o|j        d uo|j        j        dk    S )NÚWINDOWÚSEQUENCE_EDITOR)Úregionr   ÚareaÚui_type)r   r   s     r   Ú	poll_dropz"SequencerFileHandlerBase.poll_drop…  sI   € ð Œ^ 4Ð'ð 8ØŒ^Ô  HÒ,ð8àŒ\ Ð%ð8ð Œ\Ô!Ð%6Ò6ð		
r   N)r4   r5   r6   r;   rå   r<   r   r   rÞ   rÞ   „  s-   € € € € € Øð
ð 
ñ „[ð
ð 
ð 
r   rÞ   c                   óX   — e Zd Zd ZdZdZd                     ej        j	        ¦  «        Z
dS )ÚSEQUENCER_FH_image_stripzImage stripÚSEQUENCER_OT_image_strip_addú;N)r4   r5   r6   r8   r9   Úbl_import_operatorÚjoinrŽ   ÚpathÚextensions_imageÚbl_file_extensionsr<   r   r   rç   rç   �  ó7   € € € € € Ø*€IØ€HØ7ÐØŸš #¤(Ô";Ñ<Ô<ÐÐÐr   rç   c                   óX   — e Zd Zd ZdZdZd                     ej        j	        ¦  «        Z
dS )ÚSEQUENCER_FH_movie_stripzMovie stripÚSEQUENCER_OT_movie_strip_addré   N)r4   r5   r6   r8   r9   rê   rë   rŽ   rì   Úextensions_movierî   r<   r   r   rñ   rñ   –  rï   r   rñ   c                   óX   — e Zd Zd ZdZdZd                     ej        j	        ¦  «        Z
dS )ÚSEQUENCER_FH_sound_stripzSound stripÚSEQUENCER_OT_sound_strip_addré   N)r4   r5   r6   r8   r9   rê   rë   rŽ   rì   Úextensions_audiorî   r<   r   r   rõ   rõ   �  rï   r   rõ   )rŽ   Ú	bpy.typesr   r   Ú	bpy.propsr   r   r   Úbpy.app.translationsr   r™   r   r   r>   rW   r^   rw   r©   r¤   rÞ   rç   rñ   rõ   Úclassesr<   r   r   ú<module>rü      s‚  ðð
 €
€
€
ðð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð-!ð -!ð -!ð -!ð -!˜xñ -!ô -!ð -!ð`%ð %ð %ð %ð %˜Xñ %ô %ð %ðPð ð ð ð ¨ñ ô ð ð("ð "ð "ð "ð "˜(ñ "ô "ð "ðJ\8ð \8ð \8ð \8ð \8˜ñ \8ô \8ð \8ð~1Qð 1Qð 1Qð 1Qð 1Qñ 1Qô 1Qð 1QðhNð Nð Nð
ð 
ð 
ð 
ð 
ñ 
ô 
ð 
ð=ð =ð =ð =ð =˜{Ð,Dñ =ô =ð =ð=ð =ð =ð =ð =˜{Ð,Dñ =ô =ð =ð=ð =ð =ð =ð =˜{Ð,Dñ =ô =ð =ð ØØ&ØØàØØð
€€€r   