--------------------------------------------------------------------------------------------------------------- INITIALIZING VIDBOT, v1.7.1... --------------------------------------------------------------------------------------------------------------- [06:50:30.503] Vidbot :: start() [06:50:30.504] Vidbot :: _next(), _stepIndex:0 of 4 [06:50:30.504] index :: _onStepStarted_vidbot(), step: 1 [06:50:30.506] Vidbot :: step[0], label:Initializing Core [06:50:30.514] index :: _onStepProgress_vidbot(), percent: 20 [06:50:30.514] Vidbot :: _parse() [06:50:30.515] index :: _onStepProgress_vidbot(), percent: 40 [06:50:30.515] Vidbot :: _validate() [06:50:30.516] index :: _onStepProgress_vidbot(), percent: 60 [06:50:30.516] Vidbot :: _fonts() [06:50:30.517] FabricFontManager :: add(), id: SourceSansPro-Bold [06:50:30.517] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Bold.ttf [06:50:30.525] FabricFontManager :: add(), id: SourceSansPro-Light [06:50:30.525] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Light.ttf [06:50:30.525] FabricFontManager :: add(), id: DINOT-Bold [06:50:30.525] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Bold.otf [06:50:30.526] FabricFontManager :: add(), id: DINOT-Light [06:50:30.526] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Light.otf [06:50:30.527] FabricFontManager :: add(), id: TradeGothicLTStd-Regular [06:50:30.527] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Regular.otf [06:50:30.528] FabricFontManager :: add(), id: TradeGothicLTStd-Bold [06:50:30.528] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Bold.otf [06:50:30.529] index :: _onStepProgress_vidbot(), percent: 80 [06:50:30.529] Vidbot :: _clips() [06:50:30.530] StreamManager :: add(), id:audio_vo, type:audio [06:50:30.530] AudioClip[audio_vo] :: constructor() [06:50:30.530] InputStream[audio_vo] :: constructor() [06:50:30.530] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'audio_vo', clipId: null } [06:50:30.533] StreamManager :: add(), id:bg_music, type:audio [06:50:30.533] AudioClip[bg_music] :: constructor() [06:50:30.533] InputStream[bg_music] :: constructor() [06:50:30.533] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'bg_music', clipId: null } [06:50:30.533] StreamManager :: add(), id:intro, type:video [06:50:30.534] VideoStream[intro] :: constructor() [06:50:30.534] InputStream[intro] :: constructor() [06:50:30.534] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'intro', clipId: null } [06:50:30.534] StreamManager :: add(), id:simplefadedisplay, type:canvas [06:50:30.534] CanvasStream[canvas_1189414636009] :: constructor() [06:50:30.534] InputStream[canvas_1189414636009] :: constructor() [06:50:30.606] KenBurnsSlideshow[simplefadedisplay] :: constructor() [06:50:30.606] Overlay[simplefadedisplay] :: constructor() [06:50:30.607] CanvasClip[simplefadedisplay] :: constructor() [06:50:30.607] Clip[simplefadedisplay] :: constructor() [06:50:30.607] clip:"simplefadedisplay" added to stream:"canvas_1189414636009" [06:50:30.607] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_1189414636009', clipId: 'simplefadedisplay' } [06:50:30.607] StreamManager :: add(), id:caption, type:canvas [06:50:30.607] RenCaption[caption] :: constructor() [06:50:30.607] Ren[caption] :: constructor() [06:50:30.607] Overlay[caption] :: constructor() [06:50:30.607] CanvasClip[caption] :: constructor() [06:50:30.608] Clip[caption] :: constructor() [06:50:30.608] clip:"caption" added to stream:"canvas_1189414636009" [06:50:30.608] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_1189414636009', clipId: 'caption' } [06:50:30.608] StreamManager :: add(), id:watermark, type:canvas [06:50:30.608] Watermark[watermark] :: constructor() [06:50:30.608] Overlay[watermark] :: constructor() [06:50:30.608] CanvasClip[watermark] :: constructor() [06:50:30.608] Clip[watermark] :: constructor() [06:50:30.608] clip:"watermark" added to stream:"canvas_1189414636009" [06:50:30.608] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_1189414636009', clipId: 'watermark' } [06:50:30.608] all added... [06:50:30.609] Vidbot :: _next(), _stepIndex:1 of 4 [06:50:30.609] index :: _onStepCompleted_vidbot(), step: 1 [06:50:30.609] index :: _onStepStarted_vidbot(), step: 2 [06:50:30.609] Vidbot :: step[1], label:Initializing Input Streams [06:50:30.610] StreamManager :: init() [06:50:30.610] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'audio_vo', progress: 0.25 } [06:50:30.610] index :: _onStepProgress_vidbot(), percent: 25 [06:50:30.610] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'bg_music', progress: 0.5 } [06:50:30.610] index :: _onStepProgress_vidbot(), percent: 50 [06:50:30.610] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'intro', progress: 0.75 } [06:50:30.611] index :: _onStepProgress_vidbot(), percent: 75 [06:50:30.611] CanvasStream[canvas_1189414636009] :: _init(), BEGIN [06:50:30.611] i:0, c.id:simplefadedisplay [06:50:30.611] KenBurnsSlideshow[simplefadedisplay] :: _init(), BEGIN [06:50:30.612] KenBurnsSlideshow[simplefadedisplay] :: _validate() [06:50:30.612] KenBurnsSlideshow[undefined] :: _validateAnim() [06:50:30.613] KenBurnsSlideshow[undefined] :: _validateTheme() [06:50:30.613] i:1, c.id:caption [06:50:30.614] RenCaption[caption] :: _init() [06:50:30.614] RenCaption[caption] :: _validate() [06:50:30.615] i:2, c.id:watermark [06:50:30.615] Watermark[watermark] :: _init() [06:50:30.615] Watermark[watermark] :: _validate() [06:50:30.616] KenBurnsSlideshow[simplefadedisplay] :: _build() [06:50:30.622] AnimatedImageFrame[aif] :: constructor() [06:50:30.623] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.623] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_1.jpg [06:50:30.635] RenCaption[caption] :: _build() [06:50:30.653] Watermark[watermark] :: _assets() [06:50:30.653] CanvasClip :: LoadImageWithPromise(), src: watermark.png [06:50:30.656] Overlay[caption] :: _animate() [06:50:30.658] CanvasStream[caption] :: _init(), p.then() [06:50:30.677] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.681] AnimatedImageFrame[aif] :: _init(), END [06:50:30.682] AnimatedImageFrame[aif] :: constructor() [06:50:30.682] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.683] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_2.jpg [06:50:30.686] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.686] Watermark[watermark] :: _build() [06:50:30.687] Overlay[watermark] :: _animate() [06:50:30.688] CanvasStream[watermark] :: _init(), p.then() [06:50:30.702] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.703] AnimatedImageFrame[aif] :: _init(), END [06:50:30.704] AnimatedImageFrame[aif] :: constructor() [06:50:30.704] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.704] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_3.jpg [06:50:30.716] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.717] AnimatedImageFrame[aif] :: _init(), END [06:50:30.717] AnimatedImageFrame[aif] :: constructor() [06:50:30.717] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.717] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_4.jpg [06:50:30.731] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.732] AnimatedImageFrame[aif] :: _init(), END [06:50:30.732] AnimatedImageFrame[aif] :: constructor() [06:50:30.733] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.733] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_1.jpg [06:50:30.744] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.745] AnimatedImageFrame[aif] :: _init(), END [06:50:30.746] AnimatedImageFrame[aif] :: constructor() [06:50:30.746] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.746] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_2.jpg [06:50:30.758] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.759] AnimatedImageFrame[aif] :: _init(), END [06:50:30.759] AnimatedImageFrame[aif] :: constructor() [06:50:30.760] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.760] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_3.jpg [06:50:30.772] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.773] AnimatedImageFrame[aif] :: _init(), END [06:50:30.773] AnimatedImageFrame[aif] :: constructor() [06:50:30.774] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.774] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_4.jpg [06:50:30.787] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.789] AnimatedImageFrame[aif] :: _init(), END [06:50:30.789] AnimatedImageFrame[aif] :: constructor() [06:50:30.789] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.789] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_1.jpg [06:50:30.801] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.802] AnimatedImageFrame[aif] :: _init(), END [06:50:30.802] AnimatedImageFrame[aif] :: constructor() [06:50:30.803] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.803] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_2.jpg [06:50:30.815] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.816] AnimatedImageFrame[aif] :: _init(), END [06:50:30.816] AnimatedImageFrame[aif] :: constructor() [06:50:30.816] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.817] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_3.jpg [06:50:30.828] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.829] AnimatedImageFrame[aif] :: _init(), END [06:50:30.830] AnimatedImageFrame[aif] :: constructor() [06:50:30.830] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.830] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_4.jpg [06:50:30.843] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.845] AnimatedImageFrame[aif] :: _init(), END [06:50:30.845] AnimatedImageFrame[aif] :: constructor() [06:50:30.845] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.845] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_1.jpg [06:50:30.857] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.858] AnimatedImageFrame[aif] :: _init(), END [06:50:30.859] AnimatedImageFrame[aif] :: constructor() [06:50:30.859] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.859] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_2.jpg [06:50:30.871] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.872] AnimatedImageFrame[aif] :: _init(), END [06:50:30.872] AnimatedImageFrame[aif] :: constructor() [06:50:30.872] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.872] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_3.jpg [06:50:30.883] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.884] AnimatedImageFrame[aif] :: _init(), END [06:50:30.885] AnimatedImageFrame[aif] :: constructor() [06:50:30.885] AnimatedImageFrame[aif] :: _init(), BEGIN [06:50:30.885] CanvasClip :: LoadImageWithPromise(), src: 4F8F9201-98DF-3849-E296-F6E03FE18A89_4.jpg [06:50:30.898] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [06:50:30.899] AnimatedImageFrame[aif] :: _init(), END [06:50:30.899] Overlay[simplefadedisplay] :: _animate() [06:50:30.900] KenBurnsSlideshow[simplefadedisplay] :: _init(), END [06:50:30.900] CanvasStream[simplefadedisplay] :: _init(), p.then() [06:50:30.900] CanvasStream[canvas_1189414636009] :: _init(), promise.all.then() [06:50:30.902] CanvasStream[canvas_1189414636009] :: _init(), END [06:50:30.902] StreamMangaer :: init(), stream[canvas_1189414636009].then() [06:50:30.902] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'canvas_1189414636009', progress: 1 } [06:50:30.903] index :: _onStepProgress_vidbot(), percent: 100 [06:50:30.903] StreamManager :: init(), promise.all.then... [06:50:30.903] Vidbot :: StreamMgr.on( 'INITED' ) [06:50:30.903] Vidbot :: _next(), _stepIndex:2 of 4 [06:50:30.903] index :: _onStepCompleted_vidbot(), step: 2 [06:50:30.903] index :: _onStepStarted_vidbot(), step: 3 [06:50:30.903] Vidbot :: step[2], label:Rendering Canvas Streams [06:50:30.904] Vidbot :: StreamMgr.on( 'RENDER_STARTED' ), data: undefined [06:50:30.904] StreamManager :: render() [06:50:30.905] CanvasStream[canvas_1189414636009] :: render() [06:50:30.935] index :: _onStepProgress_vidbot(), percent: 0 [06:50:32.940] index :: _onStepProgress_vidbot(), percent: 5 [06:50:35.291] index :: _onStepProgress_vidbot(), percent: 10 [06:50:47.876] index :: _onStepProgress_vidbot(), percent: 15 [06:51:00.592] index :: _onStepProgress_vidbot(), percent: 20 [06:51:12.605] index :: _onStepProgress_vidbot(), percent: 25 [06:51:22.474] index :: _onStepProgress_vidbot(), percent: 30 [06:51:32.564] index :: _onStepProgress_vidbot(), percent: 35 [06:51:45.519] index :: _onStepProgress_vidbot(), percent: 40 [06:51:58.665] index :: _onStepProgress_vidbot(), percent: 45 [06:52:09.035] index :: _onStepProgress_vidbot(), percent: 50 [06:52:19.675] index :: _onStepProgress_vidbot(), percent: 55 [06:52:32.267] index :: _onStepProgress_vidbot(), percent: 60 [06:52:46.362] index :: _onStepProgress_vidbot(), percent: 65 [06:53:00.644] index :: _onStepProgress_vidbot(), percent: 70 [06:53:11.774] index :: _onStepProgress_vidbot(), percent: 75 [06:53:23.041] index :: _onStepProgress_vidbot(), percent: 80 [06:53:35.920] index :: _onStepProgress_vidbot(), percent: 85 [06:53:49.792] index :: _onStepProgress_vidbot(), percent: 90 [06:54:03.132] index :: _onStepProgress_vidbot(), percent: 95 [06:54:14.929] index :: _onStepProgress_vidbot(), percent: 100 [06:54:16.183] StreamManager :: render(), Promise.all.then... [06:54:16.184] Vidbot :: StreamMgr.on( 'RENDER_COMPLETED' ), data: undefined [06:54:16.184] Vidbot :: _next(), _stepIndex:3 of 4 [06:54:16.184] index :: _onStepCompleted_vidbot(), step: 3 [06:54:16.185] index :: _onStepStarted_vidbot(), step: 4 [06:54:16.186] Vidbot :: step[3], label:Encoding Media [06:54:16.188] VideoStream[intro] :: inputOptions() [06:54:16.189] VideoFilters :: Scale() [06:54:16.189] VideoFilters :: Overlay() [06:54:16.190] CanvasFilters :: Overlay() [06:54:16.190] AudioStream[audio_vo] :: inputOptions() [06:54:16.191] AudioFilters :: Volume() [06:54:16.191] filter: [3:a]volume=1[3_vol] [06:54:16.191] AudioFilters :: Delay() [06:54:16.191] filter: [3_vol]adelay=5170|5170[3_del] [06:54:16.191] AudioStream[bg_music] :: inputOptions() [06:54:16.191] AudioFilters :: Volume() [06:54:16.191] filter: [4:a]volume=0.25[4_vol] [06:54:16.191] AudioFilters :: FadeOut() [06:54:16.191] filter: [4_vol]afade=t=out:st=45.6:d=1[4_fadeout] [06:54:16.192] AudioFilters :: Delay() [06:54:16.192] filter: [4_fadeout]adelay=5170|5170[4_del] [06:54:16.192] VideoStream[intro] :: inputOptions() [06:54:16.192] AudioFilters :: Volume() [06:54:16.192] filter: [5:a]volume=1[5_vol] [06:54:16.192] AudioFilters :: Delay() [06:54:16.192] filter: [5_vol]adelay=0|0[5_del] [06:54:16.192] AudioFilters :: Mix() [06:54:16.192] filter: [3_del][4_del][5_del]amix=inputs=3:duration=longest[a_out] [06:54:16.192] mixed filter: [3_del][4_del][5_del]amix=inputs=3:duration=longest[a_out] [06:54:16.195] hang.time: 60 [06:54:16.297] Vidbot :: ffmpeg.on( 'start' ) [06:54:16.297] ffmpeg -f lavfi -i color=c=000000:s=640x360:r=30:duration=50.77 -to 00:00:05.169 -i file:///var/www/html/clients/9173/library/intro.mp4 -r 30 -i ./tmp [06:54:16.297] /canvas_1189414636009_%05d.png -to 00:00:45.600 -i file:///var/www/html/clients/9173/audio/4F8F9201-98DF-3849-E296-F6E03FE18A89.mp3 -to 00:00:45.600 - [06:54:16.298] i file:///var/app/video_pre_processor/assets/vidbot/_files/audio/Jazz_30.mp3 -to 00:00:05.169 -i file:///var/www/html/clients/9173/library/intro.mp4 - [06:54:16.298] y -filter_complex [1:v]scale=w=640:h=360[1_scaled];[0:v][1_scaled]overlay=x=0:y=0:enable='between(t,0,5.17)'[1_out];[1_out][2:v]overlay=x=0:y=0[2_out] [06:54:16.298] ;[3:a]volume=1[3_vol];[3_vol]adelay=5170|5170[3_del];[4:a]volume=0.25[4_vol];[4_vol]afade=t=out:st=45.6:d=1[4_fadeout];[4_fadeout]adelay=5170|5170[4_d [06:54:16.298] el];[5:a]volume=1[5_vol];[5_vol]adelay=0|0[5_del];[3_del][4_del][5_del]amix=inputs=3:duration=longest[a_out] -acodec aac -vcodec libx264 -r 30 -f mp4 [06:54:16.298] -map [a_out] -map [2_out] -preset veryfast -crf 18 -movflags frag_keyframe+empty_moov -pix_fmt yuv420p /var/www/html/clients/9173/video/4F8F9201-98DF- [06:54:16.298] 3849-E296-F6E03FE18A89.mp4 [06:54:16.605] index :: _onStepProgress_vidbot(), percent: -4091487999 [06:54:16.951] index :: _onStepProgress_vidbot(), percent: 1 [06:54:18.462] index :: _onStepProgress_vidbot(), percent: 6 [06:54:19.471] index :: _onStepProgress_vidbot(), percent: 10 [06:54:20.978] index :: _onStepProgress_vidbot(), percent: 15 [06:54:22.997] index :: _onStepProgress_vidbot(), percent: 21 [06:54:24.512] index :: _onStepProgress_vidbot(), percent: 25 [06:54:25.521] index :: _onStepProgress_vidbot(), percent: 31 [06:54:26.041] index :: _onStepProgress_vidbot(), percent: 35 [06:54:27.047] index :: _onStepProgress_vidbot(), percent: 42 [06:54:27.548] index :: _onStepProgress_vidbot(), percent: 45 [06:54:28.557] index :: _onStepProgress_vidbot(), percent: 52 [06:54:29.059] index :: _onStepProgress_vidbot(), percent: 56 [06:54:29.568] index :: _onStepProgress_vidbot(), percent: 60 [06:54:30.569] index :: _onStepProgress_vidbot(), percent: 70 [06:54:31.570] index :: _onStepProgress_vidbot(), percent: 79 [06:54:32.075] index :: _onStepProgress_vidbot(), percent: 84 [06:54:32.578] index :: _onStepProgress_vidbot(), percent: 91 [06:54:33.089] index :: _onStepProgress_vidbot(), percent: 96 [06:54:33.483] index :: _onStepProgress_vidbot(), percent: 100 [06:54:33.509] Vidbot :: ffmpeg.on( 'end' ), Done! [06:54:33.510] StreamManager :: dispose() [06:54:33.510] CanvasStream[canvas_1189414636009] :: dispose() [06:54:33.514] Vidbot :: fflog.on( 'finish' ) [06:54:33.515] fflog.path: /var/www/html/clients/9173/video/4F8F9201-98DF-3849-E296-F6E03FE18A89.mp4.fflog [06:54:33.515] Vidbot :: _next(), _stepIndex:4 of 4 [06:54:33.515] index :: _onStepCompleted_vidbot(), step: 4 [06:54:33.515] index :: _onComplete_vidbot(), data: { stepTime: 0, appTime: 243.03, output: '/var/www/html/clients/9173/video/4F8F9201-98DF-3849-E296-F6E03FE18A89.mp4', duration: 50.77 } --------------------------------------------------------------------------------------------------------------- Output File : /var/app/video_pre_processor/jobs/postp//var/www/html/clients/9173/video/4F8F9201-98DF-3849-E296-F6E03FE18A89.mp4 Media Duration : 00:00:50.770 Generation Time : 00:04:03.030 ---------------------------------------------------------------------------------------------------------------