--------------------------------------------------------------------------------------------------------------- INITIALIZING VIDBOT, v1.7.1... --------------------------------------------------------------------------------------------------------------- [22:35:34.377] Vidbot :: start() [22:35:34.377] Vidbot :: _next(), _stepIndex:0 of 4 [22:35:34.378] index :: _onStepStarted_vidbot(), step: 1 [22:35:34.379] Vidbot :: step[0], label:Initializing Core [22:35:34.389] index :: _onStepProgress_vidbot(), percent: 20 [22:35:34.389] Vidbot :: _parse() [22:35:34.390] index :: _onStepProgress_vidbot(), percent: 40 [22:35:34.391] Vidbot :: _validate() [22:35:34.391] index :: _onStepProgress_vidbot(), percent: 60 [22:35:34.392] Vidbot :: _fonts() [22:35:34.392] FabricFontManager :: add(), id: SourceSansPro-Bold [22:35:34.392] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Bold.ttf [22:35:34.401] FabricFontManager :: add(), id: SourceSansPro-Light [22:35:34.401] src: /var/app/Vidbot-V2/assets/fonts/SourceSansPro/SourceSansPro-Light.ttf [22:35:34.403] FabricFontManager :: add(), id: DINOT-Bold [22:35:34.403] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Bold.otf [22:35:34.404] FabricFontManager :: add(), id: DINOT-Light [22:35:34.404] src: /var/app/Vidbot-V2/assets/fonts/DINOT/DINOT-Light.otf [22:35:34.405] FabricFontManager :: add(), id: TradeGothicLTStd-Regular [22:35:34.405] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Regular.otf [22:35:34.407] FabricFontManager :: add(), id: TradeGothicLTStd-Bold [22:35:34.407] src: /var/app/Vidbot-V2/assets/fonts/TradeGothicCond/TradeGothicLTStd-Bold.otf [22:35:34.408] index :: _onStepProgress_vidbot(), percent: 80 [22:35:34.409] Vidbot :: _clips() [22:35:34.409] StreamManager :: add(), id:audio_vo, type:audio [22:35:34.410] AudioClip[audio_vo] :: constructor() [22:35:34.410] InputStream[audio_vo] :: constructor() [22:35:34.410] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'audio_vo', clipId: null } [22:35:34.413] StreamManager :: add(), id:bg_music, type:audio [22:35:34.413] AudioClip[bg_music] :: constructor() [22:35:34.413] InputStream[bg_music] :: constructor() [22:35:34.414] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'bg_music', clipId: null } [22:35:34.414] StreamManager :: add(), id:simplefadedisplay, type:canvas [22:35:34.414] CanvasStream[canvas_810419568593] :: constructor() [22:35:34.414] InputStream[canvas_810419568593] :: constructor() [22:35:34.501] KenBurnsSlideshow[simplefadedisplay] :: constructor() [22:35:34.502] Overlay[simplefadedisplay] :: constructor() [22:35:34.502] CanvasClip[simplefadedisplay] :: constructor() [22:35:34.502] Clip[simplefadedisplay] :: constructor() [22:35:34.502] clip:"simplefadedisplay" added to stream:"canvas_810419568593" [22:35:34.502] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_810419568593', clipId: 'simplefadedisplay' } [22:35:34.502] StreamManager :: add(), id:caption, type:canvas [22:35:34.502] RenCaption[caption] :: constructor() [22:35:34.503] Ren[caption] :: constructor() [22:35:34.503] Overlay[caption] :: constructor() [22:35:34.503] CanvasClip[caption] :: constructor() [22:35:34.503] Clip[caption] :: constructor() [22:35:34.503] clip:"caption" added to stream:"canvas_810419568593" [22:35:34.503] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_810419568593', clipId: 'caption' } [22:35:34.503] StreamManager :: add(), id:options, type:canvas [22:35:34.503] RenOptions[options] :: constructor() [22:35:34.503] Ren[options] :: constructor() [22:35:34.503] Overlay[options] :: constructor() [22:35:34.503] CanvasClip[options] :: constructor() [22:35:34.503] Clip[options] :: constructor() [22:35:34.504] clip:"options" added to stream:"canvas_810419568593" [22:35:34.504] Vidbot :: StreamMgr.on( 'ADDED' ), data: { streamID: 'canvas_810419568593', clipId: 'options' } [22:35:34.504] all added... [22:35:34.504] Vidbot :: _next(), _stepIndex:1 of 4 [22:35:34.504] index :: _onStepCompleted_vidbot(), step: 1 [22:35:34.504] index :: _onStepStarted_vidbot(), step: 2 [22:35:34.505] Vidbot :: step[1], label:Initializing Input Streams [22:35:34.505] StreamManager :: init() [22:35:34.505] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'audio_vo', progress: 0.3333333333333333 } [22:35:34.505] index :: _onStepProgress_vidbot(), percent: 33 [22:35:34.506] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'bg_music', progress: 0.6666666666666666 } [22:35:34.506] index :: _onStepProgress_vidbot(), percent: 67 [22:35:34.506] CanvasStream[canvas_810419568593] :: _init(), BEGIN [22:35:34.506] i:0, c.id:simplefadedisplay [22:35:34.507] KenBurnsSlideshow[simplefadedisplay] :: _init(), BEGIN [22:35:34.507] KenBurnsSlideshow[simplefadedisplay] :: _validate() [22:35:34.507] KenBurnsSlideshow[undefined] :: _validateAnim() [22:35:34.508] KenBurnsSlideshow[undefined] :: _validateTheme() [22:35:34.509] i:1, c.id:caption [22:35:34.509] RenCaption[caption] :: _init() [22:35:34.509] RenCaption[caption] :: _validate() [22:35:34.510] i:2, c.id:options [22:35:34.511] RenPrice[options] :: _init() [22:35:34.511] RenOptions[options] :: _validate() [22:35:34.512] KenBurnsSlideshow[simplefadedisplay] :: _build() [22:35:34.518] AnimatedImageFrame[aif] :: constructor() [22:35:34.519] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.519] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_1.jpg [22:35:34.531] RenCaption[caption] :: _build() [22:35:34.550] RenOptions[options] :: _assets() [22:35:34.550] CanvasClip :: LoadSVGFromStringWithPromise() [22:35:34.578] CanvasClip :: LoadSVGFromString(), loaded [22:35:34.581] Overlay[caption] :: _animate() [22:35:34.585] RenOptions[options] :: _build() [22:35:34.696] CanvasStream[caption] :: _init(), p.then() [22:35:34.696] RenOptions[options] :: _animate() [22:35:34.696] Overlay[options] :: _animate() [22:35:34.697] CanvasStream[options] :: _init(), p.then() [22:35:34.743] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.747] AnimatedImageFrame[aif] :: _init(), END [22:35:34.748] AnimatedImageFrame[aif] :: constructor() [22:35:34.748] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.749] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_2.jpg [22:35:34.787] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.788] AnimatedImageFrame[aif] :: _init(), END [22:35:34.789] AnimatedImageFrame[aif] :: constructor() [22:35:34.789] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.789] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_3.jpg [22:35:34.829] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.831] AnimatedImageFrame[aif] :: _init(), END [22:35:34.831] AnimatedImageFrame[aif] :: constructor() [22:35:34.831] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.832] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_4.jpg [22:35:34.870] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.871] AnimatedImageFrame[aif] :: _init(), END [22:35:34.872] AnimatedImageFrame[aif] :: constructor() [22:35:34.872] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.872] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_5.jpg [22:35:34.907] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.908] AnimatedImageFrame[aif] :: _init(), END [22:35:34.908] AnimatedImageFrame[aif] :: constructor() [22:35:34.908] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.909] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_6.jpg [22:35:34.947] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.948] AnimatedImageFrame[aif] :: _init(), END [22:35:34.948] AnimatedImageFrame[aif] :: constructor() [22:35:34.948] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.949] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_7.jpg [22:35:34.985] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:34.986] AnimatedImageFrame[aif] :: _init(), END [22:35:34.987] AnimatedImageFrame[aif] :: constructor() [22:35:34.987] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:34.987] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_8.jpg [22:35:35.018] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.019] AnimatedImageFrame[aif] :: _init(), END [22:35:35.019] AnimatedImageFrame[aif] :: constructor() [22:35:35.020] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.020] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_9.jpg [22:35:35.054] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.055] AnimatedImageFrame[aif] :: _init(), END [22:35:35.055] AnimatedImageFrame[aif] :: constructor() [22:35:35.056] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.056] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_10.jpg [22:35:35.085] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.086] AnimatedImageFrame[aif] :: _init(), END [22:35:35.087] AnimatedImageFrame[aif] :: constructor() [22:35:35.087] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.087] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_11.jpg [22:35:35.115] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.116] AnimatedImageFrame[aif] :: _init(), END [22:35:35.117] AnimatedImageFrame[aif] :: constructor() [22:35:35.117] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.117] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_12.jpg [22:35:35.146] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.147] AnimatedImageFrame[aif] :: _init(), END [22:35:35.148] AnimatedImageFrame[aif] :: constructor() [22:35:35.148] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.148] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_13.jpg [22:35:35.181] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.182] AnimatedImageFrame[aif] :: _init(), END [22:35:35.182] AnimatedImageFrame[aif] :: constructor() [22:35:35.182] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.182] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_14.jpg [22:35:35.220] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.221] AnimatedImageFrame[aif] :: _init(), END [22:35:35.222] AnimatedImageFrame[aif] :: constructor() [22:35:35.222] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.222] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_15.jpg [22:35:35.267] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.268] AnimatedImageFrame[aif] :: _init(), END [22:35:35.269] AnimatedImageFrame[aif] :: constructor() [22:35:35.269] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.269] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_16.jpg [22:35:35.318] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.319] AnimatedImageFrame[aif] :: _init(), END [22:35:35.320] AnimatedImageFrame[aif] :: constructor() [22:35:35.320] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.320] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_17.jpg [22:35:35.353] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.354] AnimatedImageFrame[aif] :: _init(), END [22:35:35.354] AnimatedImageFrame[aif] :: constructor() [22:35:35.354] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.354] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_18.jpg [22:35:35.385] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.385] AnimatedImageFrame[aif] :: _init(), END [22:35:35.386] AnimatedImageFrame[aif] :: constructor() [22:35:35.386] AnimatedImageFrame[aif] :: _init(), BEGIN [22:35:35.386] CanvasClip :: LoadImageWithPromise(), src: 5E390006-5942-F91A-73E9-FF83C24AF88C_19.jpg [22:35:35.424] CanvasClip :: LoadImageWithPromise(), loaded, isError: false [22:35:35.425] AnimatedImageFrame[aif] :: _init(), END [22:35:35.426] Overlay[simplefadedisplay] :: _animate() [22:35:35.426] KenBurnsSlideshow[simplefadedisplay] :: _init(), END [22:35:35.426] CanvasStream[simplefadedisplay] :: _init(), p.then() [22:35:35.426] CanvasStream[canvas_810419568593] :: _init(), promise.all.then() [22:35:35.429] CanvasStream[canvas_810419568593] :: _init(), END [22:35:35.429] StreamMangaer :: init(), stream[canvas_810419568593].then() [22:35:35.429] Vidbot :: StreamMgr.on( 'STREAM_INITED' ), data: { streamID: 'canvas_810419568593', progress: 1 } [22:35:35.429] index :: _onStepProgress_vidbot(), percent: 100 [22:35:35.429] StreamManager :: init(), promise.all.then... [22:35:35.429] Vidbot :: StreamMgr.on( 'INITED' ) [22:35:35.430] Vidbot :: _next(), _stepIndex:2 of 4 [22:35:35.430] index :: _onStepCompleted_vidbot(), step: 2 [22:35:35.430] index :: _onStepStarted_vidbot(), step: 3 [22:35:35.430] Vidbot :: step[2], label:Rendering Canvas Streams [22:35:35.430] Vidbot :: StreamMgr.on( 'RENDER_STARTED' ), data: undefined [22:35:35.431] StreamManager :: render() [22:35:35.431] CanvasStream[canvas_810419568593] :: render() [22:35:35.491] index :: _onStepProgress_vidbot(), percent: 0 [22:36:09.403] index :: _onStepProgress_vidbot(), percent: 5 [22:36:47.962] index :: _onStepProgress_vidbot(), percent: 10 [22:37:29.910] index :: _onStepProgress_vidbot(), percent: 15 [22:38:13.014] index :: _onStepProgress_vidbot(), percent: 20 [22:38:50.221] index :: _onStepProgress_vidbot(), percent: 25 [22:39:22.465] index :: _onStepProgress_vidbot(), percent: 30 [22:39:49.040] index :: _onStepProgress_vidbot(), percent: 35 [22:40:15.080] index :: _onStepProgress_vidbot(), percent: 40 [22:40:39.800] index :: _onStepProgress_vidbot(), percent: 45 [22:41:10.515] index :: _onStepProgress_vidbot(), percent: 50 [22:41:41.687] index :: _onStepProgress_vidbot(), percent: 55 [22:42:14.294] index :: _onStepProgress_vidbot(), percent: 60 [22:42:48.024] index :: _onStepProgress_vidbot(), percent: 65 [22:43:26.073] index :: _onStepProgress_vidbot(), percent: 70 [22:44:09.075] index :: _onStepProgress_vidbot(), percent: 75 [22:44:48.506] index :: _onStepProgress_vidbot(), percent: 80 [22:45:27.641] index :: _onStepProgress_vidbot(), percent: 85 [22:46:09.456] index :: _onStepProgress_vidbot(), percent: 90 [22:46:48.744] index :: _onStepProgress_vidbot(), percent: 95 [22:47:28.451] index :: _onStepProgress_vidbot(), percent: 100 [22:47:31.872] StreamManager :: render(), Promise.all.then... [22:47:31.872] Vidbot :: StreamMgr.on( 'RENDER_COMPLETED' ), data: undefined [22:47:31.872] Vidbot :: _next(), _stepIndex:3 of 4 [22:47:31.873] index :: _onStepCompleted_vidbot(), step: 3 [22:47:31.873] index :: _onStepStarted_vidbot(), step: 4 [22:47:31.874] Vidbot :: step[3], label:Encoding Media [22:47:31.876] CanvasFilters :: Overlay() [22:47:31.877] AudioStream[audio_vo] :: inputOptions() [22:47:31.877] AudioFilters :: Volume() [22:47:31.877] filter: [2:a]volume=1[2_vol] [22:47:31.877] AudioFilters :: Delay() [22:47:31.878] filter: [2_vol]adelay=0|0[2_del] [22:47:31.878] AudioStream[bg_music] :: inputOptions() [22:47:31.878] AudioFilters :: Volume() [22:47:31.878] filter: [3:a]volume=0.25[3_vol] [22:47:31.878] AudioFilters :: FadeOut() [22:47:31.878] filter: [3_vol]afade=t=out:st=57:d=1[3_fadeout] [22:47:31.878] AudioFilters :: Delay() [22:47:31.878] filter: [3_fadeout]adelay=0|0[3_del] [22:47:31.878] AudioFilters :: Mix() [22:47:31.879] filter: [2_del][3_del]amix=inputs=2:duration=longest[a_out] [22:47:31.879] mixed filter: [2_del][3_del]amix=inputs=2:duration=longest[a_out] [22:47:31.881] hang.time: 60 [22:47:32.026] Vidbot :: ffmpeg.on( 'start' ) [22:47:32.026] ffmpeg -f lavfi -i color=c=000000:s=960x540:r=30:duration=57 -r 30 -i ./tmp/canvas_810419568593_%05d.png -to 00:00:57.000 -i file:///var/www/html/clie [22:47:32.026] nts/21365/audio/5E390006-5942-F91A-73E9-FF83C24AF88C.mp3 -to 00:00:57.000 -i file:///var/app/video_pre_processor/assets/vidbot/_files/audio/RF3_Easy_L [22:47:32.026] istening.mp3 -y -filter_complex [0:v][1:v]overlay=x=0:y=0[1_out];[2:a]volume=1[2_vol];[2_vol]adelay=0|0[2_del];[3:a]volume=0.25[3_vol];[3_vol]afade=t= [22:47:32.026] out:st=57:d=1[3_fadeout];[3_fadeout]adelay=0|0[3_del];[2_del][3_del]amix=inputs=2:duration=longest[a_out] -acodec aac -vcodec libx264 -r 30 -f mp4 -ma [22:47:32.026] p [a_out] -map [1_out] -preset veryfast -crf 18 -movflags frag_keyframe+empty_moov -pix_fmt yuv420p /var/www/html/clients/21365/video/5E390006-5942-F9 [22:47:32.026] 1A-73E9-FF83C24AF88C.mp4 [22:47:32.261] index :: _onStepProgress_vidbot(), percent: -3644295539 [22:47:32.660] index :: _onStepProgress_vidbot(), percent: 1 [22:47:33.667] index :: _onStepProgress_vidbot(), percent: 5 [22:47:35.178] index :: _onStepProgress_vidbot(), percent: 10 [22:47:36.694] index :: _onStepProgress_vidbot(), percent: 16 [22:47:37.704] index :: _onStepProgress_vidbot(), percent: 20 [22:47:39.223] index :: _onStepProgress_vidbot(), percent: 26 [22:47:40.739] index :: _onStepProgress_vidbot(), percent: 31 [22:47:41.756] index :: _onStepProgress_vidbot(), percent: 35 [22:47:43.277] index :: _onStepProgress_vidbot(), percent: 41 [22:47:44.291] index :: _onStepProgress_vidbot(), percent: 45 [22:47:45.827] index :: _onStepProgress_vidbot(), percent: 50 [22:47:47.340] index :: _onStepProgress_vidbot(), percent: 57 [22:47:48.348] index :: _onStepProgress_vidbot(), percent: 61 [22:47:49.356] index :: _onStepProgress_vidbot(), percent: 65 [22:47:50.882] index :: _onStepProgress_vidbot(), percent: 71 [22:47:52.418] index :: _onStepProgress_vidbot(), percent: 77 [22:47:53.440] index :: _onStepProgress_vidbot(), percent: 81 [22:47:54.444] index :: _onStepProgress_vidbot(), percent: 85 [22:47:55.953] index :: _onStepProgress_vidbot(), percent: 91 [22:47:56.952] index :: _onStepProgress_vidbot(), percent: 95 [22:47:57.955] index :: _onStepProgress_vidbot(), percent: 100 [22:47:58.123] Vidbot :: ffmpeg.on( 'end' ), Done! [22:47:58.123] StreamManager :: dispose() [22:47:58.124] CanvasStream[canvas_810419568593] :: dispose() [22:47:58.133] Vidbot :: fflog.on( 'finish' ) [22:47:58.134] fflog.path: /var/www/html/clients/21365/video/5E390006-5942-F91A-73E9-FF83C24AF88C.mp4.fflog [22:47:58.134] Vidbot :: _next(), _stepIndex:4 of 4 [22:47:58.134] index :: _onStepCompleted_vidbot(), step: 4 [22:47:58.134] index :: _onComplete_vidbot(), data: { stepTime: 0, appTime: 743.78, output: '/var/www/html/clients/21365/video/5E390006-5942-F91A-73E9-FF83C24AF88C.mp4', duration: 57 } --------------------------------------------------------------------------------------------------------------- Output File : /var/app/video_pre_processor/jobs/postp//var/www/html/clients/21365/video/5E390006-5942-F91A-73E9-FF83C24AF88C.mp4 Media Duration : 00:00:57.000 Generation Time : 00:12:23.779 ---------------------------------------------------------------------------------------------------------------