§
    ,­Èj÷(  ã                   óÔ  — d Z ddlZddlmc mZ ddlZddlZddl	Z	ddl
Z
ddlZddlZddlmZ ddlmZ ddlZ ee¦  «                             ¦   «         j        j        Zedz  Z ee¦  «        ej        vr$ej                             d ee¦  «        ¦  «         ddlZddlmZmZmZ ddede de!de"dedefd„Z#dede$fd„Z% G d„ d¦  «        Z&e'dk    r ej(        edg¦  «         dS dS )a.  
=============================================================================
CHALLENGER 1 EMPIRICAL HARNESS: FALLBACK CONCAT WITH SILENT CLIPS (M4 ITER 2)
=============================================================================
Milestone: M4 Iteration 2 Gate Verification
Author: Challenger 1 (critic, specialist)

Empirically tests:
1. Canonical resolution of ffprobe executable without FileNotFoundError.
2. Fallback Concat with production-standard 10.0s clips (mixed audio & silent -an).
3. Fallback Concat with production-standard 10.0s clips (100% silent -an).
4. Stress analysis: Audio duration behavior with non-10.0s clips in fallback path.
5. Verification of output container duration, AAC codec, 48000Hz, stereo (2ch).
=============================================================================
é    N)ÚPath)ÚpatchÚ05_Production_Pipeline)ÚAudioContinuityEngineÚ
get_ffmpegÚget_ffprobeç      $@é¸  TÚblackÚpathÚdurationÚfreqÚ	has_audioÚcolorÚreturnc                 óž  — t          ¦   «         }| j                             dd¬¦  «         |ddddd|› d|› �g}|r2|                     dddd	|› d
|› �ddddddddddddddddddg¦  «         n|                     g d¢¦  «         |                     dt	          |¦  «        t	          | ¦  «        g¦  «         t          j        |dd¬¦  «         | S )uS   Táº¡o video synthetic nháº¹ (160x120, ultrafast) cÃ³ hoáº·c khÃ´ng cÃ³ audio track.T)ÚparentsÚexist_okz-yz-fÚlavfiz-izcolor=c=z:s=160x120:d=zsine=frequency=z:sample_rate=48000:duration=z-mapz0:vz1:aú-c:vÚlibx264ú-presetÚ	ultrafastú-pix_fmtÚyuv420pz-c:aÚaacz-b:aÚ128kz-arÚ48000z-acÚ2)z-anr   r   r   r   r   r   z-t)Úcapture_outputÚcheck)r   ÚparentÚmkdirÚextendÚstrÚ
subprocessÚrun)r   r   r   r   r   ÚffmpegÚcmds          úBC:\Projects\KieuStory\tests\test_challenger1_m4_empirical_probe.pyÚcreate_synthetic_clipr+   &   s"  € å‰\Œ\€FØ„K×Ò˜d¨TÐÑ2Ô2Ð2à�Øˆg�tÐF¨ÐFÐF¸HÐFÐFð€Cð ð 
Ø�
Š
Ø�'˜4Ð!_°4Ð!_Ð!_ÐU]Ð!_Ð!_Ø�E˜6 5Ø�I˜y¨+°zÀ9Ø�E˜6 6¨5°'¸5À#ð	
ñ 	ô 	ð 	ð 	ð 	�
Š
ð 
ð 
ð 
ñ 	ô 	ð 	ð ‡J‚J�•c˜(‘m”m¥S¨¡Y¤YÐ/Ñ0Ô0Ð0Ý„N�3 t°4Ð8Ñ8Ô8Ð8Ø€Kó    c                 óè  — t          ¦   «         }|ddddddt          | ¦  «        g}t          j        |ddd¬¦  «        }t	          j        |j        ¦  «        }|                     d	g ¦  «        }|                     d
i ¦  «        }t          d„ |D ¦   «         d¦  «        }t          d„ |D ¦   «         d¦  «        }t          |                     dd¦  «        ¦  «        t          |                     dd¦  «        ¦  «        |du|r|                     d¦  «        nd|r7t          |                     d|                     dd¦  «        ¦  «        ¦  «        nd|du|r|                     d¦  «        nd|r#t          |                     dd¦  «        ¦  «        nd|r#t          |                     dd¦  «        ¦  «        nd|r7t          |                     d|                     dd¦  «        ¦  «        ¦  «        nddœ
S )u0   PhÃ¢n tÃ­ch container vÃ  stream báº±ng ffprobe.ú-vÚerrorz-show_entrieszUstream=index,codec_type,codec_name,sample_rate,channels,duration:format=duration,sizez-ofÚjsonT)r    Útextr!   ÚstreamsÚformatc              3   óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS )Ú
codec_typeÚvideoN©Úget©Ú.0Úss     r*   ú	<genexpr>z#probe_media_file.<locals>.<genexpr>K   ó8   è è € ÐJÐJ˜1¨1¯5ª5°Ñ+>Ô+>À'Ò+IÐ+I�QÐ+IÐ+IÐ+IÐ+IÐJÐJr,   Nc              3   óL   K  — | ]}|                      d ¦  «        dk    ¯|V — Œ dS )r5   ÚaudioNr7   r9   s     r*   r<   z#probe_media_file.<locals>.<genexpr>L   r=   r,   r   g        Úsizer   Ú
codec_nameÚsample_rateÚchannels)
Úformat_durationÚ
size_bytesÚ	has_videoÚvideo_codecÚvideo_durationr   Úaudio_codecrB   rC   Úaudio_duration)r   r%   r&   r'   r0   ÚloadsÚstdoutr8   ÚnextÚfloatÚint)	r   Úffprober)   ÚresÚdatar2   ÚfmtÚv_streamÚa_streams	            r*   Úprobe_media_filerV   >   sè  € å‰mŒm€Gà��wØÐpØˆv•s˜4‘y”yð€Cõ
 Œ.˜¨T¸ÀDÐ
IÑ
IÔ
I€CÝŒ:�c”jÑ!Ô!€DØ�hŠh�y "Ñ%Ô%€GØ
�(Š(�8˜RÑ
 Ô
 €CåÐJÐJ ÐJÑJÔJÈDÑQÔQ€HÝÐJÐJ ÐJÑJÔJÈDÑQÔQ€Hõ ! §¢¨°SÑ!9Ô!9Ñ:Ô:Ý˜#Ÿ'š' &¨!Ñ,Ô,Ñ-Ô-Ø TÐ)Ø5=ÐG�x—|’| LÑ1Ô1Ð1À4ØW_Ðh�% §¢¨Z¸¿ºÀÈSÑ9QÔ9QÑ RÔ RÑSÔSÐSÐehØ TÐ)Ø5=ÐG�x—|’| LÑ1Ô1Ð1À4Ø>FÐM•s˜8Ÿ<š<¨°qÑ9Ô9Ñ:Ô:Ð:ÈAØ8@ÐG•C˜Ÿš Z°Ñ3Ô3Ñ4Ô4Ð4ÀaØW_Ðh�% §¢¨Z¸¿ºÀÈSÑ9QÔ9QÑ RÔ RÑSÔSÐSÐehðð ð r,   c                   ó*   — e Zd ZdZd„ Zd„ Zd„ Zd„ ZdS )Ú#TestChallengerM4FallbackConcatProbezEEmpirical probe suite for Milestone M4 Iteration 2 Gate Verification.c                 ó:  — t          ¦   «         }t          ¦   «         }t          j        }|j        } ||¦  «        }|sþt          j        d|› �¦  «        dz   dt          j        ¦   «         v st          j	        t          ¦  «        rt          j
        t          ¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          j        }|j        } ||¦  «        }|sþt          j        d|› �¦  «        dz   dt          j        ¦   «         v st          j	        t          ¦  «        rt          j
        t          ¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}t          j        |d	gd
d
¬¦  «        }|j        }d}||k    }|sÇt          j        d|fd||f¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        t          j
        |¦  «        dœz  }	t          j        d|j        › �¦  «        dz   d|	iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}d}
|j        }|
|v }|sªt          j        d|fd|
|f¦  «        t          j
        |
¦  «        dt          j        ¦   «         v st          j	        |¦  «        rt          j
        |¦  «        ndt          j
        |¦  «        dœz  }	dd|	iz  }t          t          j        |¦  «        ¦  «        ‚dx}
x}}dS )un   XÃ¡c nháº­n get_ffprobe() giáº£i quyáº¿t Ä‘Ãºng Ä‘Æ°á»�ng dáº«n thá»±c thi vÃ  khÃ´ng vÄƒng FileNotFoundError.z%FFprobe path does not exist on disk: zd
>assert %(py7)s
{%(py7)s = %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.path
}.exists
}(%(py5)s)
}ÚosÚffprobe_exe)Úpy0Úpy2Úpy4Úpy5Úpy7Nz$FFmpeg path does not exist on disk: Ú
ffmpeg_exez-versionT)r    r1   r   ©ú==)z2%(py2)s
{%(py2)s = %(py0)s.returncode
} == %(py5)srQ   )r\   r]   r_   z)ffprobe execution failed with returncode z
>assert %(py7)sr`   zffprobe version)Úin)z.%(py1)s in %(py5)s
{%(py5)s = %(py3)s.stdout
})Úpy1Úpy3r_   zassert %(py7)s)r   r   rZ   r   ÚexistsÚ
@pytest_arÚ_format_assertmsgÚ@py_builtinsÚlocalsÚ_should_repr_global_nameÚ	_safereprÚAssertionErrorÚ_format_explanationr&   r'   Ú
returncodeÚ_call_reprcomparerL   )Úselfr[   ra   Ú@py_assert1Ú@py_assert3Ú@py_assert6Ú@py_format8rQ   Ú@py_assert4Ú@py_format6Ú@py_assert0Ú@py_assert2s               r*   Ú,test_01_verify_ffprobe_executable_resolutionzPTestChallengerM4FallbackConcatProbe.test_01_verify_ffprobe_executable_resolution_   sE  € å!‘m”mˆÝ‘\”\ˆ
ÝŒwÐaˆwŒ~Ðaˆ~ˆ~˜kÑ*Ô*ÐaÐ*ÐaÕaÔaÐ,aÐT_Ð,aÐ,aÑaÔaÐaÑaÐaÕaÔaÑaÔaÐaÐaÕaÔa�rÑaÔaÐaÕaÔa�rÑaÔaÐaÐaÕaÔaˆwÑaÔaÕaÔaˆ~ÑaÔaÐaÕaÔaÑaÔaÐaÐaÕaÔa˜kÑaÔaÐaÕaÔa˜kÑaÔaÐaÐaÕaÔaÐ*ÑaÔaÐaÐaÑaÐaÕaÕaÔaÐaÑaÔaÑaÔaÐaÐaÐaÐaÐaÐaÐaÝŒwÐ^ˆwŒ~Ð^ˆ~ˆ~˜jÑ)Ô)Ð^Ð)Ð^Õ^Ô^Ð+^ÐR\Ð+^Ð+^Ñ^Ô^Ð^Ñ^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^�rÑ^Ô^Ð^Õ^Ô^�rÑ^Ô^Ð^Ð^Õ^Ô^ˆwÑ^Ô^Õ^Ô^ˆ~Ñ^Ô^Ð^Õ^Ô^Ñ^Ô^Ð^Ð^Õ^Ô^˜jÑ^Ô^Ð^Õ^Ô^˜jÑ^Ô^Ð^Ð^Õ^Ô^Ð)Ñ^Ô^Ð^Ð^Ñ^Ð^Õ^Õ^Ô^Ð^Ñ^Ô^Ñ^Ô^Ð^Ð^Ð^Ð^Ð^Ð^Ð^åŒn˜k¨:Ð6ÀtÐRVÐWÑWÔWˆØŒ~Ð` Ð`ˆ~ Ò"Ð`Ð`Ð`Õ`Ô`Ð`Ð`Ð`Ð`ˆ~ Ð`Ñ`Ô`Ð`Õ`Ô`Ñ`Ô`Ð`Ð`Õ`Ô`ˆsÑ`Ô`Ð`Õ`Ô`ˆsÑ`Ô`Ð`Ð`Õ`Ô`ˆ~Ñ`Ô`Õ`Ô` Ñ`Ô`Ð`Ð`Ñ`Ð`Õ`Ô`Ð$`ÐPSÔP^Ð$`Ð$`Ñ`Ô`Ð`Ñ`Ð`Ð`Ð`Ñ`Ð`Õ`Õ`Ô`Ð`Ñ`Ô`Ñ`Ô`Ð`Ð`Ð`Ð`Ð`Ð`Ð`Ø Ð. C¤JÐ.Ð  JÐ.Ð.Ð.Ð.Õ.Ô.Ð.Ð.Ð.Ð.Ð  JÐ.Ñ.Ô.Õ.Ô.Ð Ñ.Ô.Ð.Õ.Ô.Ñ.Ô.Ð.Ð.Õ.Ô. CÑ.Ô.Ð.Õ.Ô. CÑ.Ô.Ð.Ð.Õ.Ô. JÑ.Ô.Ð.Ð.Ñ.Ð.Ð.Ð.Ð.Ð.Ñ.Ð.Õ.Õ.Ô.Ð.Ñ.Ô.Ñ.Ô.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.r,   c           	      óz  ‡— t          |dz  dddd¬¦  «        }t          |dz  ddd	¬
¦  «        }t          |dz  dddd¬¦  «        }t          |¦  «        }t          |¦  «        }t          |¦  «        }|d         }d}	||	u }
|
slt          j        d|
fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|d         }d}	||	u }
|
slt          j        d|
fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|d         }d}	||	u }
|
slt          j        d|
fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }dd|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|dz  }di fdi fdi fg}|||dœŠt          d|¬¦  «        5  t          dˆfd„¬¦  «        5  t          j        t          dd¬¦  «        5  t          j        d t          |¦  «        d¬!¦  «        }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   d}
||
u}|s¬t          j        d"|fd#||
f¦  «        d$t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd$t          j        |
¦  «        d%œz  }t          j        d&¦  «        d'z   d(|iz  }t          t          j        |¦  «        ¦  «        ‚dx}}
|j        } |¦   «         }	|	s t          j        d)¦  «        d*z   d+t          j        ¦   «         v st          j        |¦  «        rt          j        |¦  «        nd+t          j        |¦  «        t          j        |	¦  «        d,œz  }t          t          j        |¦  «        ¦  «        ‚dx}}	t          |¦  «        }|d         }d}	||	u }
|
s�t          j        d|
fd||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }t          j        d-¦  «        d.z   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|d/         }d0}	||	k    }
|
sŠt          j        d1|
fd2||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }t          j        d3|d/         › �¦  «        d.z   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|d4         }d5}	||	k    }
|
sŠt          j        d1|
fd2||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }t          j        d6|d4         › �¦  «        d.z   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|d7         }d8}	||	k    }
|
sŠt          j        d1|
fd2||	f¦  «        t          j        |¦  «        t          j        |	¦  «        dœz  }t          j        d9|d7         › �¦  «        d.z   d|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}
}	|d:         }d;}	||	z
  }t%          |¦  «        }d<}||k     }|søt          j        d=|fd>||f¦  «        d?t          j        ¦   «         v st          j        t$          ¦  «        rt          j        t$          ¦  «        nd?t          j        |¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d@œz  }t          j        dA|d:         › �¦  «        dBz   dC|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	x}x}x}}|dD         }d;}	||	z
  }t%          |¦  «        }d<}||k     }|søt          j        d=|fd>||f¦  «        d?t          j        ¦   «         v st          j        t$          ¦  «        rt          j        t$          ¦  «        nd?t          j        |¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d@œz  }t          j        dE|dD         › �¦  «        dBz   dC|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	x}x}x}}|dF         }d;}	||	z
  }t%          |¦  «        }d<}||k     }|søt          j        d=|fd>||f¦  «        d?t          j        ¦   «         v st          j        t$          ¦  «        rt          j        t$          ¦  «        nd?t          j        |¦  «        t          j        |	¦  «        t          j        |¦  «        t          j        |¦  «        d@œz  }t          j        dG|dF         › �¦  «        dBz   dC|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}	x}x}x}}dS )Hu€   XÃ¡c nháº­n Fallback Concat trÃªn cÃ¡c shot chuáº©n 10s (cÃ³ vÃ  khÃ´ng cÃ³ audio) ghÃ©p ná»‘i hoÃ n háº£o vÃ  Ä‘á»“ng bá»™ A/V.zshot_01.mp4r	   r
   TÚred©r   r   r   r   zshot_02.mp4FÚblue©r   r   r   zshot_03.mp4ip  Úgreenr   ©Úis©z%(py1)s is %(py4)s©re   r^   úassert %(py6)sÚpy6Nzmixed_master_10s_v1.mp4Úep01_test_shot01Úep01_test_shot02Úep01_test_shot03)rˆ   r‰   rŠ   ú+production_orchestrator.get_shots_for_scene©Úreturn_valueú+production_orchestrator.find_rendered_videoc                 ó.   •— ‰                      | ¦  «        S ©Nr7   )ÚsidÚshot_map_mixeds    €r*   ú<lambda>zkTestChallengerM4FallbackConcatProbe.test_02_production_standard_10s_fallback_concat_mixed.<locals>.<lambda>„   s   ø€ ÐZh×ZlÒZlÐmpÑZqÔZq€ r,   ©Úside_effectÚstitch_with_audio_crossfadeÚep01_test_mixed_scene©Úoutput_pathÚenable_critic©úis not©z%(py0)s is not %(py3)sÚresult©r\   rf   zFallback concat returned None!z
>assert %(py5)sr_   z#Output master file was not created!zC
>assert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}Ú	out_mixed©r\   r]   r^   z!Output file missing audio stream!z
>assert %(py6)srI   r   rb   ©z%(py1)s == %(py4)szExpected aac, got rB   é€»  zExpected 48000Hz, got rC   é   z"Expected stereo (2 channels), got rD   g      >@ç      Ð?©ú<©z<%(py7)s
{%(py7)s = %(py0)s((%(py2)s - %(py4)s))
} < %(py10)sÚabs©r\   r]   r^   r`   Úpy10zExpected duration ~30.0s, got z
>assert %(py12)sÚpy12rH   z$Expected video duration ~30.0s, got rJ   z$Expected audio duration ~30.0s, got )r+   rV   rh   rq   rm   rn   ro   r   Úobjectr   ÚpoÚconcat_scene_shotsr%   rj   rk   rl   ri   rg   r©   )rr   Útmp_pathÚc1Úc2Úc3Úmeta_c1Úmeta_c2Úmeta_c3ry   rt   rz   Ú@py_format5Ú@py_format7r    Úmock_shots_mixedrž   rs   Ú@py_format4rx   Úmeta_outÚ@py_assert5ru   Ú@py_assert9Ú@py_assert8Ú@py_format11Ú@py_format13r’   s                             @r*   Ú5test_02_production_standard_10s_fallback_concat_mixedzYTestChallengerM4FallbackConcatProbe.test_02_production_standard_10s_fallback_concat_mixedj   s>  ø€ å" 8¨mÑ#;ÀdÐQTÐ`dÐlqÐrÑrÔrˆÝ" 8¨mÑ#;ÀdÐV[ÐciÐjÑjÔjˆÝ" 8¨mÑ#;ÀdÐQTÐ`dÐlsÐtÑtÔtˆå" 2Ñ&Ô&ˆÝ" 2Ñ&Ô&ˆÝ" 2Ñ&Ô&ˆØ�{Ô#Ð+ tÐ+Ð# tÐ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð# tÐ+Ñ+Ô+Õ+Ô+Ð#Ñ+Ô+Õ+Ô+ tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+Ø�{Ô#Ð, uÐ,Ð# uÐ,Ð,Ð,Ð,Õ,Ô,Ð,Ð,Ð,Ð,Ð# uÐ,Ñ,Ô,Õ,Ô,Ð#Ñ,Ô,Õ,Ô, uÑ,Ô,Ð,Ð,Ñ,Ð,Ð,Ð,Ð,Ð,Ñ,Ð,Õ,Õ,Ô,Ð,Ñ,Ô,Ñ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ø�{Ô#Ð+ tÐ+Ð# tÐ+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð# tÐ+Ñ+Ô+Õ+Ô+Ð#Ñ+Ô+Õ+Ô+ tÑ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+àÐ8Ñ8ˆ	à Ð$Ø Ð$Ø Ð$ð
Ðð !#Ø "Ø "ð
ð 
ˆõ Ð@ÐO_Ð`Ñ`Ô`ð 	uð 	uÝÐ@ÐNqÐNqÐNqÐNqÐrÑrÔrð	uð 	uåŒ\Õ/Ð1NÐ]bÐcÑcÔcð	uð 	uõ Ô*Ð+BÕPSÐT]ÑP^ÔP^ÐnsÐtÑtÔtˆFð	uð 	uð 	uñ 	uô 	uð 	uð 	uð 	uð 	uð 	uð 	uøøøð 	uð 	uð 	uð 	uð 	uð 	uð 	uñ 	uô 	uð 	uð 	uð 	uð 	uð 	uð 	uøøøð 	uð 	uð 	uð 	uð 	uð 	uð 	uñ 	uô 	uð 	uð 	uð 	uð 	uð 	uð 	uøøøð 	uð 	uð 	uð 	uð
 "ÐCˆv˜TÐ!ÐCÐCÐCÕCÔCÐCÐCÐCÐCˆv˜TÐCÑCÔCÐCÕCÔCÑCÔCÐCÐCÕCÔCˆvÑCÔCÐCÕCÔCˆvÑCÔCÐCÐCÕCÔC˜TÑCÔCÐCÐCÑCÐCÕCÔCÐ#CÑCÔCÐCÑCÐCÐCÐCÑCÐCÕCÕCÔCÐCÑCÔCÑCÔCÐCÐCÐCÐCÐCØÔÐHÐÐÑ!Ô!ÐHÐ!ÐHÕHÔHÐ#HÑHÔHÐHÑHÐHÕHÔHÑHÔHÐHÐHÕHÔHˆyÑHÔHÐHÕHÔHˆyÑHÔHÐHÐHÕHÔHÐÑHÔHÕHÔHÐ!ÑHÔHÐHÐHÑHÐHÕHÕHÔHÐHÑHÔHÑHÔHÐHÐHÐHÐHÐHÝ# IÑ.Ô.ˆØ˜Ô$ÐQ¨ÐQÐ$¨Ð,ÐQÐQÐQÕQÔQÐQÐQÐQÐQÐ$¨ÐQÑQÔQÕQÔQÐ$ÑQÔQÕQÔQ¨ÑQÔQÐQÐQÑQÐQÕQÔQÐ.QÑQÔQÐQÑQÐQÐQÐQÑQÐQÕQÕQÔQÐQÑQÔQÑQÔQÐQÐQÐQÐQÐQÐQÐQØ˜Ô&Ð_¨%Ð_Ð&¨%Ò/Ð_Ð_Ð_Õ_Ô_Ð_Ð_Ð_Ð_Ð&¨%Ð_Ñ_Ô_Õ_Ô_Ð&Ñ_Ô_Õ_Ô_¨%Ñ_Ô_Ð_Ð_Ñ_Ð_Õ_Ô_Ð1_ÀhÈ}ÔF]Ð1_Ð1_Ñ_Ô_Ð_Ñ_Ð_Ð_Ð_Ñ_Ð_Õ_Õ_Ô_Ð_Ñ_Ô_Ñ_Ô_Ð_Ð_Ð_Ð_Ð_Ð_Ð_Ø˜Ô&Ðc¨%ÐcÐ&¨%Ò/ÐcÐcÐcÕcÔcÐcÐcÐcÐcÐ&¨%ÐcÑcÔcÕcÔcÐ&ÑcÔcÕcÔc¨%ÑcÔcÐcÐcÑcÐcÕcÔcÐ1cÈ(ÐS`ÔJaÐ1cÐ1cÑcÔcÐcÑcÐcÐcÐcÑcÐcÕcÕcÔcÐcÑcÔcÑcÔcÐcÐcÐcÐcÐcÐcÐcØ˜
Ô#Ðe qÐeÐ# qÒ(ÐeÐeÐeÕeÔeÐeÐeÐeÐeÐ# qÐeÑeÔeÕeÔeÐ#ÑeÔeÕeÔe qÑeÔeÐeÐeÑeÐeÕeÔeÐ*eÈxÐXbÔOcÐ*eÐ*eÑeÔeÐeÑeÐeÐeÐeÑeÐeÕeÕeÔeÐeÑeÔeÑeÔeÐeÐeÐeÐeÐeÐeÐeØÐ-Ô.Ð}°Ð}Ð.°Ñ5Ð}�sÐ5Ñ6Ô6Ð}¸Ð}Ð6¸Ò=Ð}Ð}Ð}Õ}Ô}Ð}Ð}Ð}Ð}Ð6¸Ð}Ñ}Ô}Ð}Õ}Ô}Ñ}Ô}Ð}Ð}Õ}Ô}�sÑ}Ô}Ð}Õ}Ô}�sÑ}Ô}Ð}Ð}Õ}Ô}Ð.Ñ}Ô}Õ}Ô}°Ñ}Ô}Õ}Ô}Ð6Ñ}Ô}Õ}Ô}¸Ñ}Ô}Ð}Ð}Ñ}Ð}Õ}Ô}Ð?}Ð`hÐizÔ`{Ð?}Ð?}Ñ}Ô}Ð}Ñ}Ð}Ð}Ð}Ñ}Ð}Õ}Õ}Ô}Ð}Ñ}Ô}Ñ}Ô}Ð}Ð}Ð}Ð}Ð}Ð}Ð}Ð}Ð}Ð}Ð}Ð}Ð}ØÐ,Ô-ð  	B°ð  	BÐ-°Ñ4ð  	B�sÐ4Ñ5Ô5ð  	B¸ð  	BÐ5¸Ò<ð  	Bð  	Bð  	Bõ  	Bô  	Bð  	Bð  	Bð  	Bð  	BÐ5¸ð  	Bñ  	Bô  	Bð  	Bõ  	Bô  	Bñ  	Bô  	Bð  	Bð  	Bõ  	Bô  	B�sñ  	Bô  	Bð  	Bõ  	Bô  	B�sñ  	Bô  	Bð  	Bð  	Bõ  	Bô  	BÐ-ñ  	Bô  	Bõ  	Bô  	B°ñ  	Bô  	Bõ  	Bô  	BÐ5ñ  	Bô  	Bõ  	Bô  	B¸ñ  	Bô  	Bð  	Bð  	Bñ  	Bð  	Bõ  	Bô  	Bð  ?BÐemÐn~Ôeð  ?Bð  ?Bñ  	Bô  	Bð  	Bñ  	Bð  	Bð  	Bð  	Bñ  	Bð  	Bõ  	Bõ  	Bô  	Bð  	Bñ  	Bô  	Bñ  	Bô  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	BØÐ,Ô-ð  	B°ð  	BÐ-°Ñ4ð  	B�sÐ4Ñ5Ô5ð  	B¸ð  	BÐ5¸Ò<ð  	Bð  	Bð  	Bõ  	Bô  	Bð  	Bð  	Bð  	Bð  	BÐ5¸ð  	Bñ  	Bô  	Bð  	Bõ  	Bô  	Bñ  	Bô  	Bð  	Bð  	Bõ  	Bô  	B�sñ  	Bô  	Bð  	Bõ  	Bô  	B�sñ  	Bô  	Bð  	Bð  	Bõ  	Bô  	BÐ-ñ  	Bô  	Bõ  	Bô  	B°ñ  	Bô  	Bõ  	Bô  	BÐ5ñ  	Bô  	Bõ  	Bô  	B¸ñ  	Bô  	Bð  	Bð  	Bñ  	Bð  	Bõ  	Bô  	Bð  ?BÐemÐn~Ôeð  ?Bð  ?Bñ  	Bô  	Bð  	Bñ  	Bð  	Bð  	Bð  	Bñ  	Bð  	Bõ  	Bõ  	Bô  	Bð  	Bñ  	Bô  	Bñ  	Bô  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	Bð  	BsZ   È J1È5JÉ%JÉ7JÊJÊJÊ
JÊJÊJ1ÊJ	ÊJ1Ê!J	Ê"J1Ê1J5Ê8J5c           	      óö  ‡— t          |dz  ddd¬¦  «        }t          |dz  ddd¬¦  «        }|dz  }d	i fd
i fg}||dœŠt          d|¬¦  «        5  t          dˆfd„¬¦  «        5  t          j        t          dd¬¦  «        5  t	          j        dt          |¦  «        d¬¦  «        }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   d}||u}|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚dx}}|j        } |¦   «         }|s‹ddt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        dœz  }t          t          j        |¦  «        ¦  «        ‚dx}}t!          |¦  «        }|d         }d}||u }|slt          j        d |fd!||f¦  «        t          j        |¦  «        t          j        |¦  «        d"œz  }d#d$|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d%         }d&}||k    }|slt          j        d'|fd(||f¦  «        t          j        |¦  «        t          j        |¦  «        d"œz  }d#d$|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d)         }d*}||k    }|slt          j        d'|fd(||f¦  «        t          j        |¦  «        t          j        |¦  «        d"œz  }d#d$|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d+         }d,}||k    }|slt          j        d'|fd(||f¦  «        t          j        |¦  «        t          j        |¦  «        d"œz  }d#d$|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d-         }d.}||z
  }t#          |¦  «        }d/}||k     }|sÚt          j        d0|fd1||f¦  «        d2t          j
        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        nd2t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d3œz  }d4d5|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}|d6         }d.}||z
  }t#          |¦  «        }d/}||k     }|sÚt          j        d0|fd1||f¦  «        d2t          j
        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        nd2t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d3œz  }d4d5|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}|d7         }d.}||z
  }t#          |¦  «        }d/}||k     }|sÚt          j        d0|fd1||f¦  «        d2t          j
        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        nd2t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d3œz  }d4d5|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}dS )8uo   XÃ¡c nháº­n Fallback Concat trÃªn 100% clip cÃ¢m (-an) tá»± Ä‘á»™ng sinh luá»“ng AAC 48kHz stereo khÃ´ng crash.zsilent_01.mp4r	   Fr   r€   zsilent_02.mp4Úwhitezall_silent_master_10s_v1.mp4Úep01_silent_shot01Úep01_silent_shot02)rÄ   rÅ   r‹   rŒ   rŽ   c                 ó.   •— ‰                      | ¦  «        S r�   r7   )r‘   Úshot_map_silents    €r*   r“   zpTestChallengerM4FallbackConcatProbe.test_03_production_standard_10s_fallback_concat_all_silent.<locals>.<lambda>£   s   ø€ ÐZi×ZmÒZmÐnqÑZrÔZr€ r,   r”   r–   Úep01_test_silent_scener˜   Nr›   r�   Úresult_silentrŸ   úassert %(py5)sr_   úAassert %(py4)s
{%(py4)s = %(py2)s
{%(py2)s = %(py0)s.exists
}()
}Úout_all_silentr¡   r   Tr‚   r„   r…   r†   r‡   rI   r   rb   r¢   rB   r£   rC   r¤   rD   g      4@r¥   r¦   r¨   r©   rª   úassert %(py12)sr¬   rH   rJ   ©r+   r   r­   r   r®   r¯   r%   rh   rq   rj   rk   rl   rm   rn   ro   rg   rV   r©   )rr   r°   Ús1Ús2rÌ   Úmock_shots_silentrÉ   rz   rs   rº   rx   rt   r·   Úmeta_silentry   r¸   r¼   ru   r½   r¾   r¿   rÀ   rÇ   s                         @r*   Ú:test_03_production_standard_10s_fallback_concat_all_silentz^TestChallengerM4FallbackConcatProbe.test_03_production_standard_10s_fallback_concat_all_silent“   sá	  ø€ å" 8¨oÑ#=ÈÐX]ÐelÐmÑmÔmˆÝ" 8¨oÑ#=ÈÐX]ÐelÐmÑmÔmˆà!Ð$BÑBˆà! 2Ð&Ø! 2Ð&ð
Ðð
 #%Ø"$ð
ð 
ˆõ
 Ð@ÐO`ÐaÑaÔað 	Bð 	BÝÐ@ÐNrÐNrÐNrÐNrÐsÑsÔsð	Bð 	BåŒ\Õ/Ð1NÐ]bÐcÑcÔcð	Bð 	Bõ Ô1Ð2JÕX[Ð\jÑXkÔXkð  |Að  Bñ  Bô  BˆMð	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bñ 	Bô 	Bð 	Bð 	Bð 	Bð 	Bð 	Bð 	Bøøøð 	Bð 	Bð 	Bð 	Bð
 %)Ð(ˆ} DÐ(Ð(Ð(Ð(Õ(Ô(Ð(Ð(Ð(Ð(ˆ} DÐ(Ñ(Ô(Ð(Õ(Ô(Ñ(Ô(Ð(Ð(Õ(Ô(ˆ}Ñ(Ô(Ð(Õ(Ô(ˆ}Ñ(Ô(Ð(Ð(Õ(Ô( DÑ(Ô(Ð(Ð(Ñ(Ð(Ð(Ð(Ð(Ð(Ñ(Ð(Õ(Õ(Ô(Ð(Ñ(Ô(Ñ(Ô(Ð(Ð(Ð(Ð(Ð(ØÔ$Ð&Ð$Ð$Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ~Ñ&Ô&Ð&Õ&Ô&ˆ~Ñ&Ô&Ð&Ð&Õ&Ô&Ð$Ñ&Ô&Õ&Ô&Ð&Ñ&Ô&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&Ý& ~Ñ6Ô6ˆØ˜;Ô'Ð/¨4Ð/Ð'¨4Ð/Ð/Ð/Ð/Õ/Ô/Ð/Ð/Ð/Ð/Ð'¨4Ð/Ñ/Ô/Õ/Ô/Ð'Ñ/Ô/Õ/Ô/¨4Ñ/Ô/Ð/Ð/Ñ/Ð/Ð/Ð/Ð/Ð/Ñ/Ð/Õ/Õ/Ô/Ð/Ñ/Ô/Ñ/Ô/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø˜=Ô)Ð2¨UÐ2Ð)¨UÒ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð)¨UÐ2Ñ2Ô2Õ2Ô2Ð)Ñ2Ô2Õ2Ô2¨UÑ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ø˜=Ô)Ð2¨UÐ2Ð)¨UÒ2Ð2Ð2Ð2Õ2Ô2Ð2Ð2Ð2Ð2Ð)¨UÐ2Ñ2Ô2Õ2Ô2Ð)Ñ2Ô2Õ2Ô2¨UÑ2Ô2Ð2Ð2Ñ2Ð2Ð2Ð2Ð2Ð2Ñ2Ð2Õ2Õ2Ô2Ð2Ñ2Ô2Ñ2Ô2Ð2Ð2Ð2Ð2Ð2Ð2Ð2Ø˜:Ô&Ð+¨!Ð+Ð&¨!Ò+Ð+Ð+Ð+Õ+Ô+Ð+Ð+Ð+Ð+Ð&¨!Ð+Ñ+Ô+Õ+Ô+Ð&Ñ+Ô+Õ+Ô+¨!Ñ+Ô+Ð+Ð+Ñ+Ð+Ð+Ð+Ð+Ð+Ñ+Ð+Õ+Õ+Ô+Ð+Ñ+Ô+Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+ØÐ0Ô1Ð@°DÐ@Ð1°DÑ8Ð@�sÐ8Ñ9Ô9Ð@¸DÐ@Ð9¸DÒ@Ð@Ð@Ð@Õ@Ô@Ð@Ð@Ð@Ð@Ð9¸DÐ@Ñ@Ô@Ð@Õ@Ô@Ñ@Ô@Ð@Ð@Õ@Ô@�sÑ@Ô@Ð@Õ@Ô@�sÑ@Ô@Ð@Ð@Õ@Ô@Ð1Ñ@Ô@Õ@Ô@°DÑ@Ô@Õ@Ô@Ð9Ñ@Ô@Õ@Ô@¸DÑ@Ô@Ð@Ð@Ñ@Ð@Ð@Ð@Ð@Ð@Ñ@Ð@Õ@Õ@Ô@Ð@Ñ@Ô@Ñ@Ô@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@ØÐ/Ô0Ð?°4Ð?Ð0°4Ñ7Ð?�sÐ7Ñ8Ô8Ð?¸4Ð?Ð8¸4Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð8¸4Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�sÑ?Ô?Ð?Õ?Ô?�sÑ?Ô?Ð?Ð?Õ?Ô?Ð0Ñ?Ô?Õ?Ô?°4Ñ?Ô?Õ?Ô?Ð8Ñ?Ô?Õ?Ô?¸4Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?ØÐ/Ô0Ð?°4Ð?Ð0°4Ñ7Ð?�sÐ7Ñ8Ô8Ð?¸4Ð?Ð8¸4Ò?Ð?Ð?Ð?Õ?Ô?Ð?Ð?Ð?Ð?Ð8¸4Ð?Ñ?Ô?Ð?Õ?Ô?Ñ?Ô?Ð?Ð?Õ?Ô?�sÑ?Ô?Ð?Õ?Ô?�sÑ?Ô?Ð?Ð?Õ?Ô?Ð0Ñ?Ô?Õ?Ô?°4Ñ?Ô?Õ?Ô?Ð8Ñ?Ô?Õ?Ô?¸4Ñ?Ô?Ð?Ð?Ñ?Ð?Ð?Ð?Ð?Ð?Ñ?Ð?Õ?Õ?Ô?Ð?Ñ?Ô?Ñ?Ô?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?Ð?sZ   ÁC"Á&CÂ%B4Â(CÂ4B8Â8CÂ;B8Â<CÂ?C"ÃC	ÃC"ÃC	ÃC"Ã"C&Ã)C&c           	      óÜ  ‡— t          |dz  ddd¬¦  «        }t          |dz  dddd	¬
¦  «        }|dz  }di fdi fg}||dœŠt          d|¬¦  «        5  t          dˆfd„¬¦  «        5  t          j        t          dd¬¦  «        5  t	          j        dt          |¦  «        d¬¦  «        }ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   d}||u}|s—t          j        d|fd||f¦  «        dt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        dœz  }	dd|	iz  }
t          t          j        |
¦  «        ¦  «        ‚dx}}|j        } |¦   «         }|s‹ddt          j
        ¦   «         v st          j        |¦  «        rt          j        |¦  «        ndt          j        |¦  «        t          j        |¦  «        d œz  }t          t          j        |¦  «        ¦  «        ‚dx}}t!          |¦  «        }|d!         }d}||u }|slt          j        d"|fd#||f¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }d%d&|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d'         }d(}||k    }|slt          j        d)|fd*||f¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }d%d&|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d+         }d,}||k    }|slt          j        d)|fd*||f¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }d%d&|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d-         }d.}||k    }|slt          j        d)|fd*||f¦  «        t          j        |¦  «        t          j        |¦  «        d$œz  }d%d&|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}}|d/         }d0}||z
  }t#          |¦  «        }d1}||k     }|sÚt          j        d2|fd3||f¦  «        d4t          j
        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        nd4t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d5œz  }d6d7|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}|d8         }d9}||z
  }t#          |¦  «        }d1}||k     }|sÚt          j        d2|fd3||f¦  «        d4t          j
        ¦   «         v st          j        t"          ¦  «        rt          j        t"          ¦  «        nd4t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        t          j        |¦  «        d5œz  }d6d7|iz  }t          t          j        |¦  «        ¦  «        ‚dx}x}x}x}x}}dS ):u|   Ä�áº·c táº£ thá»±c nghiá»‡m: Fallback concat khi clip khÃ´ng Ä‘á»§ 10s (aevalsrc d=10.0 cá»‘ Ä‘á»‹nh cho shot chuáº©n Muse).ztrim_01.mp4g       @FÚcyanr€   ztrim_02.mp4iô  TÚmagentar~   ztrim_master_v1.mp4Úep01_trim_shot01Úep01_trim_shot02)r×   rØ   r‹   rŒ   rŽ   c                 ó.   •— ‰                      | ¦  «        S r�   r7   )r‘   Úshot_map_trims    €r*   r“   zhTestChallengerM4FallbackConcatProbe.test_04_adversarial_non_10s_clip_fallback_behavior.<locals>.<lambda>¼   s   ø€ ÐZg×ZkÒZkÐloÑZpÔZp€ r,   r”   r–   Úep01_test_trim_scener˜   Nr›   r�   Úresult_trimrŸ   rÊ   r_   rË   Úout_trimr¡   r   r‚   r„   r…   r†   r‡   rI   r   rb   r¢   rC   r¤   rB   r£   rJ   g      (@r¥   r¦   r¨   r©   rª   rÍ   r¬   rH   g      @rÎ   )rr   r°   Út1Út2rÝ   Úmock_shots_trimrÜ   rz   rs   rº   rx   rt   r·   Ú	meta_trimry   r¸   r¼   ru   r½   r¾   r¿   rÀ   rÚ   s                         @r*   Ú2test_04_adversarial_non_10s_clip_fallback_behaviorzVTestChallengerM4FallbackConcatProbe.test_04_adversarial_non_10s_clip_fallback_behavior²   s•  ø€ å" 8¨mÑ#;ÀcÐUZÐbhÐiÑiÔiˆÝ" 8¨mÑ#;ÀcÐPSÐ_cÐktÐuÑuÔuˆØÐ2Ñ2ˆà.°Ð3Ð6HÈ"Ð5MÐNˆØ-/ÀRÐHÐHˆåÐ@ÈÐ_Ñ_Ô_ð 	xð 	xÝÐ@ÐNpÐNpÐNpÐNpÐqÑqÔqð	xð 	xåŒ\Õ/Ð1NÐ]bÐcÑcÔcð	xð 	xõ Ô/Ð0FÕTWÐX`ÑTaÔTaÐqvÐwÑwÔwˆKð	xð 	xð 	xñ 	xô 	xð 	xð 	xð 	xð 	xð 	xð 	xøøøð 	xð 	xð 	xð 	xð 	xð 	xð 	xñ 	xô 	xð 	xð 	xð 	xð 	xð 	xð 	xøøøð 	xð 	xð 	xð 	xð 	xð 	xð 	xñ 	xô 	xð 	xð 	xð 	xð 	xð 	xð 	xøøøð 	xð 	xð 	xð 	xð
 #'Ð&ˆ{ $Ð&Ð&Ð&Ð&Õ&Ô&Ð&Ð&Ð&Ð&ˆ{ $Ð&Ñ&Ô&Ð&Õ&Ô&Ñ&Ô&Ð&Ð&Õ&Ô&ˆ{Ñ&Ô&Ð&Õ&Ô&ˆ{Ñ&Ô&Ð&Ð&Õ&Ô& $Ñ&Ô&Ð&Ð&Ñ&Ð&Ð&Ð&Ð&Ð&Ñ&Ð&Õ&Õ&Ô&Ð&Ñ&Ô&Ñ&Ô&Ð&Ð&Ð&Ð&Ð&ØŒÐ ˆˆÑ Ô Ð Ð Ð Ð Ð Õ Ô Ñ Ô Ð Ð Õ Ô ˆxÑ Ô Ð Õ Ô ˆxÑ Ô Ð Ð Õ Ô ˆÑ Ô Õ Ô Ð Ñ Ô Ð Ð Ñ Ð Õ Õ Ô Ð Ñ Ô Ñ Ô Ð Ð Ð Ð Ð Ý$ XÑ.Ô.ˆ	Ø˜Ô%Ð-¨Ð-Ð%¨Ð-Ð-Ð-Ð-Õ-Ô-Ð-Ð-Ð-Ð-Ð%¨Ð-Ñ-Ô-Õ-Ô-Ð%Ñ-Ô-Õ-Ô-¨Ñ-Ô-Ð-Ð-Ñ-Ð-Ð-Ð-Ð-Ð-Ñ-Ð-Õ-Õ-Ô-Ð-Ñ-Ô-Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø˜Ô'Ð0¨5Ð0Ð'¨5Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð'¨5Ð0Ñ0Ô0Õ0Ô0Ð'Ñ0Ô0Õ0Ô0¨5Ñ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0Ø˜Ô$Ð)¨Ð)Ð$¨Ò)Ð)Ð)Ð)Õ)Ô)Ð)Ð)Ð)Ð)Ð$¨Ð)Ñ)Ô)Õ)Ô)Ð$Ñ)Ô)Õ)Ô)¨Ñ)Ô)Ð)Ð)Ñ)Ð)Ð)Ð)Ð)Ð)Ñ)Ð)Õ)Õ)Ô)Ð)Ñ)Ô)Ñ)Ô)Ð)Ð)Ð)Ð)Ð)Ð)Ð)Ø˜Ô'Ð0¨5Ð0Ð'¨5Ò0Ð0Ð0Ð0Õ0Ô0Ð0Ð0Ð0Ð0Ð'¨5Ð0Ñ0Ô0Õ0Ô0Ð'Ñ0Ô0Õ0Ô0¨5Ñ0Ô0Ð0Ð0Ñ0Ð0Ð0Ð0Ð0Ð0Ñ0Ð0Õ0Õ0Ô0Ð0Ñ0Ô0Ñ0Ô0Ð0Ð0Ð0Ð0Ð0Ð0Ð0àÐ-Ô.Ð=°Ð=Ð.°Ñ5Ð=�sÐ5Ñ6Ô6Ð=¸Ð=Ð6¸Ò=Ð=Ð=Ð=Õ=Ô=Ð=Ð=Ð=Ð=Ð6¸Ð=Ñ=Ô=Ð=Õ=Ô=Ñ=Ô=Ð=Ð=Õ=Ô=�sÑ=Ô=Ð=Õ=Ô=�sÑ=Ô=Ð=Ð=Õ=Ô=Ð.Ñ=Ô=Õ=Ô=°Ñ=Ô=Õ=Ô=Ð6Ñ=Ô=Õ=Ô=¸Ñ=Ô=Ð=Ð=Ñ=Ð=Ð=Ð=Ð=Ð=Ñ=Ð=Õ=Õ=Ô=Ð=Ñ=Ô=Ñ=Ô=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=ØÐ-Ô.Ð<°Ð<Ð.°Ñ4Ð<�sÐ4Ñ5Ô5Ð<¸Ð<Ð5¸Ò<Ð<Ð<Ð<Õ<Ô<Ð<Ð<Ð<Ð<Ð5¸Ð<Ñ<Ô<Ð<Õ<Ô<Ñ<Ô<Ð<Ð<Õ<Ô<�sÑ<Ô<Ð<Õ<Ô<�sÑ<Ô<Ð<Ð<Õ<Ô<Ð.Ñ<Ô<Õ<Ô<°Ñ<Ô<Õ<Ô<Ð5Ñ<Ô<Õ<Ô<¸Ñ<Ô<Ð<Ð<Ñ<Ð<Ð<Ð<Ð<Ð<Ñ<Ð<Õ<Õ<Ô<Ð<Ñ<Ô<Ñ<Ô<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<Ð<sZ   ÁC#Á'CÂ%B5Â)CÂ5B9Â9CÂ<B9Â=CÃ C#ÃC	ÃC#ÃC	ÃC#Ã#C'Ã*C'N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r{   rÁ   rÓ   râ   © r,   r*   rX   rX   \   s]   € € € € € ØOÐOð	/ð 	/ð 	/ð'Bð 'Bð 'BðR@ð @ð @ð>=ð =ð =ð =ð =r,   rX   Ú__main__r.   )r	   r
   Tr   ))ræ   Úbuiltinsrj   Ú_pytest.assertion.rewriteÚ	assertionÚrewriterh   rZ   Úsysr0   Úshutilr&   ÚtempfileÚpathlibr   Úunittest.mockr   ÚpytestÚ__file__Úresolver"   ÚPROJECT_ROOTÚPIPELINE_DIRr%   r   ÚinsertÚproduction_orchestratorr®   Úaudio_continuity_enginer   r   r   rN   rO   Úboolr+   ÚdictrV   rX   rã   Úmainrç   r,   r*   ú<module>rý      së  ððð ð  € € € € € € € € € € € € €	€	€	€	Ø 
€
€
€
Ø €€€Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€àˆt�H‰~Œ~×%Ò%Ñ'Ô'Ô.Ô5€ØÐ6Ñ6€Ø€3€|ÑÔ˜CœHÐ$Ð$Ø„H‡O‚O�A�s�s˜<Ñ(Ô(Ñ)Ô)Ð)à $Ð $Ð $Ð $Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rðð  ð °ð ÀCð ÐZ^ð Ðnqð ð  AEð ð ð ð ð0˜4ð  Dð ð ð ð ð<m=ð m=ð m=ð m=ð m=ñ m=ô m=ð m=ð` ˆzÒÐØ€F„K�˜4Ð Ñ!Ô!Ð!Ð!Ð!ð Ðr,   