package rainbowPackage;

import java.awt.image.BufferedImage;

import java.io.File;
import java.io.IOException;
//import java.io.PrintWriter;
//import java.util.Timer;
//import java.util.TimerTask;

import javax.imageio.ImageIO;

import org.jcodec.api.awt.AWTSequenceEncoder;
import org.jcodec.common.io.NIOUtils;
import org.jcodec.common.io.SeekableByteChannel;

/*import java.io.*;

import org.jcodec.api.SequenceEncoder;
import org.jcodec.api.SequenceEncoder.*;
import org.jcodec.api.awt.*;
import org.jcodec.api.awt.AWTSequenceEncoder.*;
import org.jcodec.common.Codec;
import org.jcodec.common.Format;
import org.jcodec.common.model.Rational;
import org.jcodec.scale.AWTUtil;
import org.jcodec.api.*;
import java.nio.channels.*; // */ 
//import java.nio.channels.SeekableByteChannel;
//import org.jcodec.*;//Keep For .mp4 Video Creation

import java.awt.*;
//import java.awt.image.*;

import javafx.application.Platform;
//import javafx.application.Platform;
import javafx.embed.swing.SwingFXUtils;
//import javafx.event.EventHandler;
import javafx.scene.control.Label;
import javafx.scene.*;
import javafx.scene.image.*;
import javafx.scene.image.Image;
//import javafx.scene.control.Dialog.*;
//import javafx.scene.control.Control.*;
//import javafx.scene.input.MouseEvent;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.scene.web.WebEngine;
import javafx.scene.web.WebView;
import javafx.stage.Screen;
import javafx.stage.Stage;
//import javafx.collections.ObservableList;
//import rainbowPackage.RainbowSoftColorCodesSets.BuddhismSchemeSet;
//import rainbowPackage.VibrantColors;
//import rainbowPackage.VibrantColorCombos;
/*import javafx.animation.Animation;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.application.Application;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.Group;
import javafx.util.Duration;// */
import javafx.scene.Scene;



public class RainbowVideo
{
	int basisImageViewIndex;//static?
	double sliderInterval = 100;
	Diagnostics diagnostics;// = null;
	ColorSlider colorSlider = new ColorSlider( new double[]{0,0,0} );//????????????????????????????
	ColorSlider colorSliderTwo = new ColorSlider( new double[]{255,255,255} );//????????????????????????????
	RainbowPattern2D pattern2D = new RainbowPattern2D( new double[]{0,0,0,1} );
	//RainbowPattern2D pattern2DArray[] = { new RainbowPattern2D( new double[]{0,0,0,1} ), new RainbowPattern2D( new double[]{0,0,0,1} ), new RainbowPattern2D( new double[]{0,0,0,1} ), new RainbowPattern2D( new double[]{0,0,0,1} ), new RainbowPattern2D( new double[]{0,0,0,1} ),  };
	//RainbowSoft2D rainbowSoft2D = new RainbowSoft2D( new double[]{0,0,0,1} );
	RainbowClock rainbowClock = new RainbowClock();// = new RainbowClock( new double[]{0,0,0,1} );//!OLD Message!Comment Out What You Are Not Using Above TransparencySlider Or Only RainbowClock Will Work
	Buddhism buddhism = new Buddhism();// = new Buddhism( new double[]{0,0,0,1} );
	MagiElite magiElite = new MagiElite();// = new MagiElite( new double[]{0,0,0,1} );
	FwaSplashLogo fwaSplashLogo = new FwaSplashLogo();// = new FwaSplashLogo( new double[]{0,0,0,1} );
	FwaFlagSplashLogo fwaFlagSplashLogo = new FwaFlagSplashLogo();// = new FwaFlagSplashLogo( new double[]{0,0,0,1} );
	TransparencySlider transparencySlider = new TransparencySlider( new double[]{0,0,0,1} );
	RainbowSoftColor rainbowSoftColor = new RainbowSoftColor( new double[]{0,0,0,1} );
	Color tempFXColor = Color.BLACK;
	BufferedImage bImage = null;
	AWTSequenceEncoder encoder;
	Stage tertiaryStage;
	Image tertiaryBasisImage[];
	Image tertiaryBackgroundBasisImage[];
	Image tertiaryCurrentBrowserImage;
	WebEngine thirdBrowserEngine;
	WebView thirdBrowser;
	StackPane thirdStackPaneForBasis;
	StackPane thirdStackPaneForBackground;
	Scene thirdScene;
	Screen thirdScreen;
	Label thirdStateLabel;
	File thirdFile;
	//File thirdJavaScriptFile;
	//File thirdXSliderFile;
	//Thread tertiaryThread;
	boolean tertiaryIsFullScreened;
	Image tertiaryBackupWorkAroundImage;
	double tertiaryXslider = 0;
	double videoFrameQuantity = 7;
	double startingPoint = 0;
	double videoSequenceLoopQuantity;
	double videoSplittingQuantity = 1;
	double gradientExpontierMultiplier = 4.;
	double tertiaryBackgroundBasisImageWidth;
	double tertiaryBackgroundBasisImageHeight;
	double numberOfScrollFrames;
	SeekableByteChannel tertiaryVideoOut;

	Camera camera;
	WritableImage tertiaryWritableImage;
	PixelReader tertiaryCurrentBrowserImagePR;
	//PixelReader tertiaryBrowserTransitionImagePR;
	PixelWriter tertiaryCurrentBrowserImagePW;
	PixelReader tertiaryBackUpWorkAroundImagePR;
	PixelReader tertiaryBackgroundBasisImagePR[];
	PixelReader tertiaryBasisImagePR[];
	PixelWriter tertiaryPW/*[]*/;
	//PixelWriter tertiaryBrowserPW;
	ImageView tertiaryCurrentBrowserImageView, tertiaryBackupWorkAroundImageView, tertiaryBasisImageView[] = new ImageView[4], tertiaryBackgroundBasisImageView[] = new ImageView[4];//tertiaryCurrentTransitionBrowserImageView,
	WritableImage tertiaryBufferPictureForWritableImage, tertiaryBufferPictureForBrowser;//, tertiaryBrowserWritableImage, tertiaryBufferPictureForTransitionWritableBrowserImage;

	Parent tertiaryRoot;

	public RainbowVideo ( Stage TertiaryStage, Image[] TertiaryBasisImage, Image[] TertiaryBackgroundBasisImage, Image TertiaryCurrentBrowserImage, Image TertiaryBackupWorkAroundImage,
			WebEngine ThirdBrowserEngine, WebView ThirdBrowser, StackPane ThirdStackPaneForBasis, StackPane ThirdStackPaneForBackground, Scene ThirdScene, Screen ThirdScreen, Label ThirdStateLabel, File ThirdFile, /*File ThirdJavaScriptFile,
			File ThirdXSliderFile,*/ /*Thread TertiaryThread,*/ SeekableByteChannel TertiaryVideoOut, WritableImage TertiaryWritableImage, WritableImage TertiaryBufferPictureForWritableImage,
			/*WritableImage TertiaryBrowserWritableImage,*/ WritableImage TertiaryBufferPictureForBrowser, PixelReader TertiaryCurrentBrowserImagePR, /*PixelReader TertiaryBrowserTransitionImagePR,*/
			PixelReader TertiaryBackUpWorkAroundImagePR, PixelReader[] TertiaryBackgroundBasisImagePR, PixelReader[] TertiaryBasisImagePR, PixelWriter/*[]*/ TertiaryPW, /*PixelWriter TertiaryBrowserPW,*/
			ImageView TertiaryCurrentBrowserImageView, ImageView TertiaryCurrentTransitionBrowserImageView, ImageView TertiaryBackupWorkAroundImageView, ImageView[] TertiaryBasisImageView,
			ImageView[] TertiaryBackgroundBasisImageView,	boolean TertiaryIsFullScreened, double VideoFrameQuantity, final int BasisImageViewIndex, double StartingPoint, double VideoSequenceLoopQuantity,
			double TertiaryBackgroundBasisImageWidth, double TertiaryBackgroundBasisImageHeight, double NumberOfScrollFrames, Parent TertiaryRoot )
	{
		tertiaryStage = TertiaryStage;

		tertiaryCurrentBrowserImage = TertiaryCurrentBrowserImage;
		thirdBrowserEngine = ThirdBrowserEngine;
		thirdBrowser = ThirdBrowser;
		thirdStackPaneForBasis = ThirdStackPaneForBasis;
		thirdStackPaneForBackground = ThirdStackPaneForBackground;
		thirdScene = ThirdScene;
		thirdScreen = ThirdScreen;
		thirdStateLabel = ThirdStateLabel;
		thirdFile = ThirdFile;
		//thirdJavaScriptFile = ThirdJavaScriptFile;
		//thirdXSliderFile = ThirdXSliderFile;
		//tertiaryThread = TertiaryThread;
		tertiaryIsFullScreened = TertiaryIsFullScreened;
		tertiaryBackupWorkAroundImage = TertiaryBackupWorkAroundImage;
		videoFrameQuantity = VideoFrameQuantity;
		startingPoint = StartingPoint;
		videoSequenceLoopQuantity = VideoSequenceLoopQuantity;
		tertiaryVideoOut = TertiaryVideoOut;

		tertiaryWritableImage = TertiaryWritableImage;
		tertiaryCurrentBrowserImagePR = TertiaryCurrentBrowserImagePR;
		//tertiaryBrowserTransitionImagePR = TertiaryBrowserTransitionImagePR;
		tertiaryBackUpWorkAroundImagePR = TertiaryBackUpWorkAroundImagePR;


		tertiaryPW = TertiaryPW;
		//tertiaryBrowserPW = TertiaryBrowserPW;
		tertiaryCurrentBrowserImageView = TertiaryCurrentBrowserImageView;
		//tertiaryCurrentTransitionBrowserImageView = TertiaryCurrentTransitionBrowserImageView;
		tertiaryBackupWorkAroundImageView = TertiaryBackupWorkAroundImageView;

		tertiaryBasisImage = TertiaryBasisImage;
		tertiaryBackgroundBasisImage = TertiaryBackgroundBasisImage;
		tertiaryBackgroundBasisImagePR = TertiaryBackgroundBasisImagePR;
		tertiaryBasisImagePR = TertiaryBasisImagePR;
		tertiaryBasisImageView = TertiaryBasisImageView;
		tertiaryBackgroundBasisImageView = TertiaryBackgroundBasisImageView;
		/*for ( int i = 0; i < TertiaryBasisImage.length; i++ )
		{
			tertiaryBasisImage[i] = TertiaryBasisImage[i];
			tertiaryBackgroundBasisImage[i] = TertiaryBackgroundBasisImage[i];
			tertiaryBackgroundBasisImagePR[i] = TertiaryBackgroundBasisImagePR[i];
			tertiaryBasisImagePR[i] = TertiaryBasisImagePR[i];
			tertiaryBasisImageView[i] = TertiaryBasisImageView[i];
			tertiaryBackgroundBasisImageView[i] = TertiaryBackgroundBasisImageView[i];
		}// */

		tertiaryBufferPictureForWritableImage = TertiaryBufferPictureForWritableImage;
		//tertiaryBrowserWritableImage = TertiaryBrowserWritableImage;
		tertiaryBufferPictureForBrowser = TertiaryBufferPictureForBrowser;


		tertiaryBackgroundBasisImageWidth = TertiaryBackgroundBasisImageWidth;
		tertiaryBackgroundBasisImageHeight = TertiaryBackgroundBasisImageHeight;

		tertiaryRoot = TertiaryRoot;

		numberOfScrollFrames = NumberOfScrollFrames;

		diagnostics = new Diagnostics( thirdScreen.getBounds() );

		sliderInterval = videoSequenceLoopQuantity / videoFrameQuantity;
		//thirdScene = new Scene[(int)(videoFrameQuantity * ( videoSequenceLoopQuantity - startingPoint ) / videoSequenceLoopQuantity + 1 )];
		if ( videoFrameQuantity >= 6 )
			try { tertiaryVideoOut = NIOUtils.writableFileChannel( thirdFile.getPath() ); }
		catch (IOException e) {}
		basisImageViewIndex = BasisImageViewIndex;

		switch (basisImageViewIndex)
		{
			case 0: buddhism = new Buddhism(); break;
			case 1: magiElite = new MagiElite(); break;
			case 2: fwaSplashLogo = new FwaSplashLogo(); break;
			case 3: fwaFlagSplashLogo = new FwaFlagSplashLogo(); break;
			case 4: rainbowClock = new RainbowClock(); break;
		}// */
	}

	public BufferedImage videoRunner ()
	{
		//boolean donePixelWriting = false;
		bImage = null;


		//RainbowClock rainbowClock = null;// = new RainbowClock( new double[]{0,0,0,1} );//!OLD Message!Comment Out What You Are Not Using Above TransparencySlider Or Only RainbowClock Will Work
		//Buddhism buddhism = null;// = new Buddhism( new double[]{0,0,0,1} );
		//MagiElite magiElite = null;// = new MagiElite( new double[]{0,0,0,1} );
		//FwaSplashLogo fwaSplashLogo = null;// = new FwaSplashLogo( new double[]{0,0,0,1} );
		//FwaFlagSplashLogo fwaFlagSplashLogo = null;// = new FwaFlagSplashLogo( new double[]{0,0,0,1} );

		/*switch (basisImageViewIndex)
		{
			case 0: Buddhism buddhism = new Buddhism( new double[]{0,0,0,1} );
			case 1: MagiElite magiElite = new MagiElite( new double[]{0,0,0,1} );
			case 2: FwaSplashLogo fwaSplashLogo = new FwaSplashLogo( new double[]{0,0,0,1} );
			case 3: FwaFlagSplashLogo fwaFlagSplashLogo = new FwaFlagSplashLogo( new double[]{0,0,0,1} );
			case 4: RainbowClock rainbowClock = new RainbowClock( new double[]{0,0,0,1} );
		}// */

		//try { encoder = new AWTSequenceEncoder(tertiaryVideoOut, Rational.R(25, 1));}
		//catch(IOException ie) { ie.printStackTrace(); }

		/*tertiaryStage.setMaxWidth(thirdScreen.getBounds().getWidth());
			tertiaryStage.setMaxHeight(thirdScreen.getBounds().getHeight());
			tertiaryStage.setMinWidth(thirdScreen.getBounds().getWidth());
			tertiaryStage.setMaxHeight(thirdScreen.getBounds().getHeight());
			tertiaryStage.setWidth(thirdScreen.getBounds().getWidth());
			tertiaryStage.setMaxHeight(thirdScreen.getBounds().getHeight());*/
		if ( videoFrameQuantity >= 6 )
			try { encoder = AWTSequenceEncoder.create25Fps(thirdFile);}
		catch(IOException ie) { ie.printStackTrace(); }
		try { Thread.sleep(500);//tertiaryThread.sleep(5000);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		tertiaryStage.setFullScreen(tertiaryIsFullScreened);
		try { Thread.sleep(100);//tertiaryThread.sleep(300);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		thirdBrowser.setPrefSize( tertiaryStage.getWidth(), tertiaryStage.getHeight() );
		try { Thread.sleep(400);//tertiaryThread.sleep(4000);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		//tertiaryStage.setScene(thirdScene[(int)( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity )]);
		//tertiaryStage.setFullScreen(tertiaryIsFullScreened);
		/*if ( tertiaryIsFullScreened == false )
			{
				tertiaryStage.setWidth(666);
				tertiaryStage.setHeight(888);
				tertiaryStage.setFullScreen(false);
				tertiaryStage.show();
			}// */
		System.out.println("Worked Till After Full Screen Enforcement");

		/*tertiaryStage.setResizable(true);
			tertiaryStage.setFullScreen(false);
			tertiaryStage.setHeight(1080);
			tertiaryStage.setWidth(1920);
			tertiaryStage.setResizable(false);
			tertiaryStage.show();// */
		try { Thread.sleep(200);//tertiaryThread.sleep(2000);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		tertiaryStage.show();// */ Above Paragraph For FwaLogoSpalsh
		try { Thread.sleep(350);//tertiaryThread.sleep(3500);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		/*try { tertiaryThread.sleep(8000);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}
			System.out.println("Worked Till After Full Screen Wait");// */
		Dimension HalfedDim = new Dimension( 960, 540 );
		Dimension Dim = new Dimension ( (int)tertiaryStage.getWidth(), (int)tertiaryStage.getHeight() );// -48 ); // - 40.  -40
		HalfedDim.width = Math.round( (int)(tertiaryStage.getWidth() / 2));
		HalfedDim.height = Math.round( (int)(tertiaryStage.getHeight() / 2));
		//Dimension Dim = new Dimension ( (int)thirdScreen.getBounds().getWidth() , (int)thirdScreen.getBounds().getHeight() - 40 );
		//HalfedDim.width = Math.round( (int)thirdScreen.getBounds().getWidth() / 2 );
		//HalfedDim.height = Math.round( (int)thirdScreen.getBounds().getHeight() / 2 );
		double halfSreenDiagionalLength = Math.pow(Math.pow( HalfedDim.getWidth(), 2) + Math.pow( HalfedDim.getHeight(), 2), 0.5);
		double xScaleFactor = Dim.width / tertiaryBackgroundBasisImageWidth;
		double yScaleFactor = Dim.height / tertiaryBackgroundBasisImageHeight;
		tertiaryXslider = startingPoint;
		//int frameIndex = Math.abs( (int)Math.round( videoFrameQuantity ) );
		//ImageView tertiaryImageView = new ImageView();
		//Getting 3D Viewing To Work
		//int basisImageViewIndex = 0;// 0 -> 4 Only -1 For 1&only1 Commented Code Above// 0: Buddhism; 1: MagiElite; 2: FwaSplashLogo; 3: FwaFlagSplashLogo; 4: RainbowClock;
		SnapshotParameters snapshotParameters = new SnapshotParameters();
		if ( basisImageViewIndex >= 0 && basisImageViewIndex <= 3 )
			tertiaryWritableImage = tertiaryBasisImageView[basisImageViewIndex].snapshot(snapshotParameters, tertiaryBufferPictureForWritableImage);
		else
			tertiaryWritableImage = tertiaryBasisImageView[0].snapshot(snapshotParameters, tertiaryBufferPictureForWritableImage);
		tertiaryBufferPictureForWritableImage = tertiaryWritableImage;
		//frameIndex = 0;
		WritableImage writableImage = tertiaryWritableImage;
		ImageView tertiaryImageView = new ImageView();
		tertiaryImageView.setImage(writableImage);
		StackPane thirdStackPaneForWritting = new StackPane();
		thirdStackPaneForWritting.getChildren().add(tertiaryImageView);
		tertiaryPW = writableImage.getPixelWriter();
		/*WritableImage writableImageArray[] = new WritableImage[frameIndex + 1];
		StackPane thirdStackPaneForWritting[] = new StackPane[frameIndex + 1];
		ImageView tertiaryImageView[] = new ImageView[frameIndex + 1];
		for ( int f = 0; f < frameIndex + 1; f++ )
		{
			writableImageArray[f] = tertiaryWritableImage;
			tertiaryImageView[f] = new ImageView();
			tertiaryImageView[f].setImage(writableImageArray[f]);
			thirdStackPaneForWritting[f] = new StackPane();
			thirdStackPaneForWritting[f].getChildren().add(tertiaryImageView[f]);
			tertiaryPW[f] = writableImageArray[f].getPixelWriter();
		}// */
		//tertiaryImageView.setImage(tertiaryWritableImage);
		//tertiaryCurrentBrowserImageView.setImage(tertiaryCurrentBrowserImage);
		//tertiaryBackupWorkAroundImageView.setImage(tertiaryBackupWorkAroundImage);
		//tertiaryBackgroundBasisImageView.setImage(tertiaryBackgroundBasisImage);
		//tertiaryBasisImageView.setImage(tertiaryBasisImage);

		//tertiaryCurrentBrowserImageView.setImage( thirdBrowser.snapshot( snapshotParameters, tertiaryBufferPictureForWritableBrowserImage ) );
		//tertiaryBufferPictureForWritableBrowserImage = tertiaryWritableBrowserImage;





		//tertiaryWritableBrowserImage = (WritableImage) tertiaryCurrentBrowserImageView.getImage();//Makes Bleeding Browser Effect
		//tertiaryCurrentBrowserImageView.setImage( thirdBrowser.snapshot( snapshotParameters, tertiaryBufferPictureForWritableBrowserImage ) );
		//tertiaryCurrentBrowserImageView.setImage( thirdBrowser.snapshot( snapshotParameters, tertiaryBufferPictureForWritableBrowserImage ) );
		//tertiaryBrowserWritableImage= thirdBrowser.snapshot( snapshotParameters, tertiaryBufferPictureForBrowser );
		//tertiaryBufferPictureForBrowser = tertiaryBrowserWritableImage;// = (WritableImage) tertiaryCurrentBrowserImageView.getImage();
		//tertiaryCurrentBrowserImageView.setImage( tertiaryBrowserWritableImage );
		//PixelReader currentPixelReaderFortertiaryPixelWriter;


		//tertiaryImageView.setImage(tertiaryWritableImage);
		//tertiaryImageView[0].setImage(tertiaryWritableImage);
		int xEarly = 0;//, yEarly = 0;
		//thirdStackPane.getChildren().add( tertiaryImageView );
		if ( basisImageViewIndex >= 0 && basisImageViewIndex <= 3 )
		{
			thirdStackPaneForBasis.getChildren().addAll( tertiaryBackupWorkAroundImageView, tertiaryCurrentBrowserImageView, tertiaryBackgroundBasisImageView[basisImageViewIndex], tertiaryBasisImageView[basisImageViewIndex] );//, tertiaryBackgroundBasisImageView[1], tertiaryBasisImageView[1], tertiaryBackgroundBasisImageView[2], tertiaryBasisImageView[2], tertiaryBackgroundBasisImageView[3], tertiaryBasisImageView[3] );//, /*tertiaryBackgroundBasisImageView,*/ tertiaryImageView /*tertiaryCurrentTransitionBrowserImageView,*/);//, tertiaryBasisImageView, tertiaryImageView );//, tertiaryImageView[0] );
			thirdStackPaneForBackground.getChildren().addAll( tertiaryBackupWorkAroundImageView, tertiaryCurrentBrowserImageView, tertiaryBasisImageView[basisImageViewIndex], tertiaryBackgroundBasisImageView[basisImageViewIndex] );//, tertiaryBasisImageView[1], tertiaryBackgroundBasisImageView[1], tertiaryBasisImageView[2], tertiaryBackgroundBasisImageView[2], tertiaryBasisImageView[3], tertiaryBackgroundBasisImageView[3] );//, tertiaryImageView /*tertiaryCurrentTransitionBrowserImageView,*/);
		}
		else
		{
			thirdStackPaneForBasis.getChildren().addAll( tertiaryBackupWorkAroundImageView, tertiaryCurrentBrowserImageView );//, tertiaryBackgroundBasisImageView[1], tertiaryBasisImageView[1], tertiaryBackgroundBasisImageView[2], tertiaryBasisImageView[2], tertiaryBackgroundBasisImageView[3], tertiaryBasisImageView[3] );//, /*tertiaryBackgroundBasisImageView,*/ tertiaryImageView /*tertiaryCurrentTransitionBrowserImageView,*/);//, tertiaryBasisImageView, tertiaryImageView );//, tertiaryImageView[0] );
			thirdStackPaneForBackground.getChildren().addAll( tertiaryBackupWorkAroundImageView, tertiaryCurrentBrowserImageView );//, tertiaryBasisImageView[1], tertiaryBackgroundBasisImageView[1], tertiaryBasisImageView[2], tertiaryBackgroundBasisImageView[2], tertiaryBasisImageView[3], tertiaryBackgroundBasisImageView[3] );//, tertiaryImageView /*tertiaryCurrentTransitionBrowserImageView,*/);
		}
		//StackPane thirdStackPaneForWritting = new StackPane();
		//thirdStackPaneForWritting.getChildren().add(tertiaryImageView);
		tertiaryCurrentBrowserImagePR = tertiaryCurrentBrowserImage.getPixelReader();
		for ( int i = 0; i < tertiaryBackgroundBasisImage.length; i++ )
		{
			tertiaryBackgroundBasisImagePR[i] = tertiaryBackgroundBasisImage[i].getPixelReader();
			tertiaryBasisImagePR[i] = tertiaryBasisImage[i].getPixelReader();
		}
		//tertiaryCurrentBrowserImagePW = tertiaryBrowserWritableImage.getPixelWriter();
		///tertiaryPW = tertiaryWritableImage.getPixelWriter();
		//currentPixelReaderFortertiaryPixelWriter = tertiaryWritableImage.getPixelReader();
		/*tertiaryBasisImagePR = tertiaryBasisImageView.getImage().getPixelReader();
			//tertiaryBackgroundBasisImagePR = tertiaryBackgroundBasisImageView.getImage().getPixelReader();
			//tertiaryCurrentBrowserImagePR = tertiaryBackupWorkAroundImageView.getImage().getPixelReader();//tertiaryCurrentBrowserImageView.getImage().getPixelReader();
			//PixelReader tertiaryCurrentBrowserImagePR = tertiaryCurrentBrowserImage.getPixelReader();//FOR BROWSER TO TURN ON YOU NEED THIS !!!!!!! */
		/*tertiaryImageView.autosize();
			tertiaryCurrentBrowserImageView.autosize();
			tertiaryBackupWorkAroundImageView.autosize();
			tertiaryBasisImageView.autosize();
			tertiaryBackgroundBasisImageView.autosize(); // */
		//"FullDisplay", "FullDisplayNoBrowser", "SimplyBrowserShowing", "BackgroundToBasisFullDisplay", "FullDisplayNoTextShownAtAll", "TextDisplayAndBrowser", "TextDisplayAndBrowserBlackShowingBackground" "FullDisplayBasisText", "FullDisplayBackgroundToBasisNoTextShownAtAll", "BackgroundToBasisFullDisplayBasisText", "FullDisplayBasisBackround", "FullDisplayBackroundToBasis", "FullDisplayBasisOnly", "FullDisplayBackroundToBasisOnly", "BasisBackroundDisplayOnly", "BackroundToBasisOnly", "TextDisplayOnly", "TextDisplayOnlyWhiteShowingBackground", "BasisTextDisplayOnly", "BasisTextDisplayOnWhite", "BasisTextDisplayOnBlack", "NoDisplay", "BlackScreen"
		String typeOfDisplay = "FullDisplayNoBrowser";//"BasisTextDisplayOnWhite";//"BasisTextDisplayOnly";//"FullDisplay";//"TextDisplayOnly"//"TextDisplayOnlyWhiteShowingBackground"
		boolean reverseRainbow = false, reversedColors = false, invertBasisFromBackground = true,  invertInsteadOfReverse = false, invertBasisPicture = false, invertBoth = false, nextStepColorTooSimilarEffect = true, invertJustOrigional = false, invertTextAlways = false, textColorOverlay = false, backgroundColorOverlay = false, overlayColorScheme = true;//invertBasisFromBackground = true For CGI Level Production Until Threading ReAccess For Future JavaFX Eclipse IDE Developments //reversalOfBackgroundEffectsMaster = true,
		//reversedColors = true; invertBoth = true;// Rainbow Steel Look
		double textColorOverlayRatio = 1.0, backgroundColorOverlayRatio = 1.0;
		Color initialColorContrastingChoice = VibrantColors.NeonGreen, colorTooSimilarReplacementColor = VibrantColors.SkyBlue, textColorToOverlay = VibrantColors.Black, backgroundColorToOverlay = VibrantColors.White;//textColorToOverlay = VibrantColors.White, backgroundColorToOverlay = VibrantColors.Black
		textColorToOverlay = VibrantColors.White; backgroundColorToOverlay = VibrantColors.Black;//For Dark Theme
		//colorSlider.set( new double[] {textColorToOverlay.getRed()*255,textColorToOverlay.getGreen()*255,textColorToOverlay.getBlue()*255,textColorToOverlay.getOpacity()/2.} );
		//color2.set( new double[] {backgroundColorToOverlay.getRed()*255,backgroundColorToOverlay.getGreen()*255,backgroundColorToOverlay.getBlue()*255,backgroundColorToOverlay.getOpacity()/2.} );
		//textColorToOverlay = textColorToOverlay.interpolate( colorSlider.ToFXColor(), 0.5 );
		//backgroundColorToOverlay = backgroundColorToOverlay.interpolate( color2.ToFXColor(), 0.5 );
		//textColorToOverlay = colorSlider.ToFXColor();
		//backgroundColorToOverlay = color2.ToFXColor();
		//textColorToOverlay.color(textColorToOverlay.getRed()*255,textColorToOverlay.getGreen()*255,textColorToOverlay.getBlue()*255,textColorToOverlay.getOpacity()/2);
		//backgroundColorToOverlay.color(backgroundColorToOverlay.getRed()*255,backgroundColorToOverlay.getGreen()*255,backgroundColorToOverlay.getBlue()*255,backgroundColorToOverlay.getOpacity()/2);
		textColorToOverlay = Color.color(textColorToOverlay.getRed(),textColorToOverlay.getGreen(),textColorToOverlay.getBlue(), textColorOverlayRatio * textColorToOverlay.getOpacity() );
		backgroundColorToOverlay = Color.color(backgroundColorToOverlay.getRed(),backgroundColorToOverlay.getGreen(),backgroundColorToOverlay.getBlue(), backgroundColorOverlayRatio * backgroundColorToOverlay.getOpacity() );
		Color textColorToOverlayCurrent = textColorToOverlay, backgroundColorToOverlayCurrent = backgroundColorToOverlay;
		double colorDifference = 164;//256 Extra-Sensitive For Poor Vision;
		int lengthOfColorBar = Dim.height * 29 / 1080;
		//TransparencySlider buddhismBlackBlue0 = new TransparencySlider( new double [] {0., 0., 1., 1.} );
		/*for (xEarly = 0; xEarly < Dim.width; xEarly++)
				if ( tertiaryBasisImagePR.getColor( xEarly, HalfedDim.height ).getOpacity() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(2).getOpacity() &&
				tertiaryBasisImagePR.getColor( xEarly, HalfedDim.height ).getRed() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(2).getRed() &&
				tertiaryBasisImagePR.getColor( xEarly, HalfedDim.height ).getGreen() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(2).getGreen() &&
				tertiaryBasisImagePR.getColor( xEarly, HalfedDim.height ).getBlue() == RainbowSoftColorCodesSets.BuddhismSchemeSet.blackBlue(2).getBlue() )
					lengthOfColorBar++;
			System.out.println("lengthOfColorBar: " + lengthOfColorBar);//Doesn't Work Right With Windows Scaling I Think */
		//System.out.println("tertiaryXslider: " + tertiaryXslider);
		//tertiaryXslider = 3301.2077096635903;//FOR TESTING END ANOMOLYS ONLY

		//thirdStackPane[0] = new StackPane();
		System.out.println("Showing Frame 0");
		//thirdStackPane[(int)( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity ) + 1].getChildren().add(browser);
		//thirdStackPane[(int)( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity ) + 1].getChildren().remove(0);
		if (tertiaryRoot == null) {
			throw new RuntimeException("Could not find " + tertiaryRoot.toString()); }
		//camera may Be Needed
		//thirdScene.getCamera().snapshot(snapshotParameters, tertiaryWritableImage);
		thirdScene.setRoot(tertiaryRoot);
		tertiaryStage.show();// !!!!! Uncomment To Show Video !!!!!
		thirdScene = new Scene(thirdStackPaneForBackground);
		//thirdScene = new Scene(thirdStackPaneForBasis);
		//thirdScene = new Scene(thirdStackPaneForWritting);
		tertiaryStage.setScene(thirdScene);
		System.out.println(Dim);
		//tertiaryStage.setFullScreen(tertiaryIsFullScreened);// ASDF !!!! HERE ! Important For Full Screened

		try { Thread.sleep(300);//tertiaryThread.sleep(3000);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */

		tertiaryStage.show(); // !!!!! Uncomment To Show Video !!!!!
		//tertiaryStage.setFullScreen(tertiaryIsFullScreened);// Important For Full Screened
		//thirdScene = new Scene(tertiaryRoot);
		bImage = SwingFXUtils.fromFXImage(thirdScene.snapshot( tertiaryWritableImage ), bImage );

		try {
			File outputFile = new File("C:/TestImage-1.png");
			ImageIO.write(bImage, "png", outputFile);
		} catch (IOException e) {
			throw new RuntimeException(e);
		}
		//Above Getting 3D Viewing To Work  
		try { Thread.sleep(100);//tertiaryThread.sleep(1000);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		//tertiaryXslider = videoSequenceLoopQuantity * 20.000001 / 24;//Custom Beginning Frame Reference Viable Uncommented Alone
		//textColorToOverlay = VibrantColors.White; backgroundColorToOverlay = VibrantColors.Black;//For Testing Overlay ONLY If Using Above Line
		//textColorOverlayRatio = 1; backgroundColorOverlayRatio = 0;//For Testing Overlay ONLY If Using Line Above Line
		//tertiaryXslider = 1582 * sliderInterval;//Usefull For Setting Frame To Start For When It Finishes Change videoSequenceLoopQuantity
		tertiaryCurrentBrowserImageView.setImage( thirdBrowser.snapshot( snapshotParameters, tertiaryBufferPictureForBrowser ) );
		tertiaryCurrentBrowserImage = tertiaryCurrentBrowserImageView.getImage();
		tertiaryCurrentBrowserImagePR = tertiaryCurrentBrowserImage.getPixelReader();

		switch (basisImageViewIndex)
		{
		case 0: System.out.println("basisImageViewIndex: " + basisImageViewIndex + "; BuddhismForRaster #OfFrames: " + videoFrameQuantity); break;
		case 1: System.out.println("basisImageViewIndex: " + basisImageViewIndex + "; MagiEliteForRaster #OfFrames: " + videoFrameQuantity); break;
		case 2: System.out.println("basisImageViewIndex: " + basisImageViewIndex + "; FwaLogoSplash #OfFrames: " + videoFrameQuantity); break;
		case 3: System.out.println("basisImageViewIndex: " + basisImageViewIndex + "; FwaFlagLogoSplash #OfFrames: " + videoFrameQuantity); break;
		case 4: System.out.println("basisImageViewIndex: " + basisImageViewIndex + "; RainbowClockFunction #OfFrames: " + videoFrameQuantity); break;
		}// */

		/*try { Thread.sleep(1868);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// #/
		//Platform.runLater( () -> {
		tertiaryImageView[frameIndex].setImage(writableImageArray[frameIndex]);
		try { Thread.sleep(1421);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// #/
		thirdStackPaneForWritting[frameIndex].snapshot(snapshotParameters, writableImageArray[frameIndex]);
		try { Thread.sleep(1427);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// #/
		thirdScene.setRoot(thirdStackPaneForWritting[frameIndex]);
		try { Thread.sleep(2460);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */


		//tertiaryCurrentTransitionBrowserImageView.setImage(tertiaryCurrentBrowserImage);
		//tertiaryBrowserWritableImage = tertiaryBufferPictureForBrowser;
		//tertiaryBrowserTransitionImagePR = tertiaryCurrentBrowserImagePR;
		//tertiaryBrowserPW = tertiaryBrowserWritableImage.getPixelWriter();
		Platform.runLater( () -> { try { Thread.sleep(4689);//tertiaryThread.sleep(2489);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		} } ) ;// */
		tertiaryStage.show();
		try { Thread.sleep(1440);//tertiaryThread.sleep(1000);
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		//System.gc();
		Platform.runLater( () -> { try { Thread.sleep(4000);//tertiaryThread.sleep(4879);//4879//10000
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		} } ) ;// */

		//thirdStackPaneForBasis.getChildren().removeAll();
		//thirdStackPaneForBackground.getChildren().removeAll();		

		while ( tertiaryXslider < videoSequenceLoopQuantity )//videoSequenceLoopQuantity )//fullScrollCycle / 4000 )// For Scrolling; tertiaryXslider < fullScrollCycle / 4000 . For MagiElite: videoSequenceLoopQuantity / 10)//for (tertiaryXslider = 0; tertiaryXslider <= 0.175979734764 * cy; tertiaryXslider++)
		{//0.175979734764 *
			//frameIndex = 0;//(int)( Math.round( videoFrameQuantity * tertiaryXslider / videoSequenceLoopQuantity ) );
			//thirdScene.setRoot(thirdStackPaneForBasis);
			//tertiaryXslider = videoSequenceLoopQuantity;//For Testing Final Frame Only !!
			//donePixelWriting = false;
			/*Timeline timelineForPixelWriting = new Timeline();
			timelineForPixelWriting.setCycleCount( (int)( videoSequenceLoopQuantity + 1 ) );
			KeyFrame rainbowSoftFrameMaker = new KeyFrame(Duration.seconds(8.88),
					new EventHandler<ActionEvent>()
			{//*/
			try { Thread.sleep(1240);//tertiaryThread.sleep(4879);//4879//10000
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			//tertiaryStage.show();
			/*try { Thread.sleep(2500);//tertiaryThread.sleep(4879);//4879//10000
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			/*Platform.runLater( () -> { try { Thread.sleep(5000);//tertiaryThread.sleep(4879);//4879//10000
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			} } ) ;// */
			//double quadentaryXslider = startingPoint;
			//while ( quadentaryXslider < videoSequenceLoopQuantity )
			//{
			/*donePixelWriting = false;
	while ( !donePixelWriting )
	{// */
			//if ( tertiaryXslider > -1 && tertiaryXslider <= 1 || tertiaryXslider > 1730 && tertiaryXslider <= 1731 || tertiaryXslider > 3460 && tertiaryXslider <= 3461 || tertiaryXslider > 5190 && tertiaryXslider <= 5191 || tertiaryXslider > 6920 && tertiaryXslider <= 6921 )
			//{
			//}
			/*Platform.runLater( () -> { tertiaryCurrentBrowserImageView.setImage( thirdBrowser.snapshot( snapshotParameters, tertiaryBufferPicture ) );
					   tertiaryCurrentBrowserImage = tertiaryCurrentBrowserImageView.getImage();
					   tertiaryCurrentBrowserImagePR = tertiaryCurrentBrowserImage.getPixelReader(); } );// */
			/*tertiaryStage.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>()
{
@Override
public void handle(MouseEvent event) 
{
	System.exit(0);
}
});
try { tertiaryThread.sleep(44);
} catch (InterruptedException e) {
System.out.println("Interrupted.");
}// */

			//tertiaryStage.setX(0);
			//tertiaryStage.setY(0);

			//tertiaryStage.setTitle("Simple3D FX");
			//tertiaryStage.setScene(thirdScene[0]);
			//tertiaryStage.setWidth(800);
			//tertiaryStage.setHeight(650);
			//tertiaryStage.show();

			//ObservableList<Node> CurrentPanes = thirdStackPane[(int)( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity ) + 1].getChildren();

			//bImage = SwingFXUtils.fromFXImage(thirdScene[0].snapshot( tertiaryWritableImage ), bImage );


			/*try { tertiaryThread.sleep(4000);
} catch (InterruptedException e) {
System.out.println("Interrupted.");
}// */

			//textColorToOverlay = VibrantColors.Black; backgroundColorToOverlay = VibrantColors.White;//textColorToOverlay = VibrantColors.White, backgroundColorToOverlay = VibrantColors.Black
			/*if ( tertiaryXslider < videoSequenceLoopQuantity / 2. - 0.001 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 1 - tertiaryXslider / ( videoSequenceLoopQuantity / 2 ); backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 2 );
			}
			else if ( tertiaryXslider <= videoSequenceLoopQuantity / 2. + 0.001 )//tertiaryXslider <= videoSequenceLoopQuantity / 2. + .001
			{	
				textColorToOverlay = VibrantColors.White; backgroundColorToOverlay = VibrantColors.Black;
			}
			else
			{
				textColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 2 ) - 1 ; backgroundColorOverlayRatio = 2 - tertiaryXslider / ( videoSequenceLoopQuantity / 2 );
			}// */ // Above For White To Black Flashing In Middle Of LoopQuantity. Below Is For Streamlined Version That Fades To RainbowForDark Flipped With RainbowForLight In Middle Of Loop Then To White Text.
			/*if ( tertiaryXslider < videoSequenceLoopQuantity / 4 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 1 - tertiaryXslider / ( videoSequenceLoopQuantity / 4 ); backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 4 );
			}
			else if ( tertiaryXslider < videoSequenceLoopQuantity / 2. - 0.001 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 0; backgroundColorOverlayRatio = 2 - tertiaryXslider / ( videoSequenceLoopQuantity / 4 );
			}
			else if ( tertiaryXslider <= videoSequenceLoopQuantity / 2. + 0.001 )//tertiaryXslider <= videoSequenceLoopQuantity / 2. + .001
			{
				textColorToOverlay = VibrantColors.White; backgroundColorToOverlay = VibrantColors.Black;
			}
			else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / 4 )
			{
				textColorOverlayRatio = 0; backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 4 ) - 2;
			}
			else
			{
				textColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 4 ) - 3; backgroundColorOverlayRatio = 4 - tertiaryXslider / ( videoSequenceLoopQuantity / 4 );
			}// */ //Below Full Trick Fade In Like Shown In Code With RainbowedWhite Text To RainbowedBlack Text
			/*if ( tertiaryXslider < videoSequenceLoopQuantity / 6 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 1 - tertiaryXslider / ( videoSequenceLoopQuantity / 6 ); backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 6 );
			}
			else if ( tertiaryXslider < videoSequenceLoopQuantity / 3 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 0; backgroundColorOverlayRatio = 2 - tertiaryXslider / ( videoSequenceLoopQuantity / 6 );
			}
			else if ( tertiaryXslider < videoSequenceLoopQuantity / 2 )
			{
				textColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 2;
				backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 2;
				colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 2, VibrantColors.Black, VibrantColors.Pink);
				colorSliderTwo.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 2, VibrantColors.White, VibrantColors.Brown);
				textColorToOverlay = colorSlider.ToFXColor(); backgroundColorToOverlay = colorSliderTwo.ToFXColor();
			}
			else if ( tertiaryXslider < 2 * videoSequenceLoopQuantity / 3 )
			{
				textColorOverlayRatio = 4 - tertiaryXslider / ( videoSequenceLoopQuantity / 6 );
				backgroundColorOverlayRatio = 4 - tertiaryXslider / ( videoSequenceLoopQuantity / 6 );
				colorSlider.ColorSliderFunction(1, tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 3, VibrantColors.Pink, VibrantColors.White);
				colorSliderTwo.ColorSliderFunction(1, tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 3, VibrantColors.Brown, VibrantColors.Black);
				textColorToOverlay = colorSlider.ToFXColor(); backgroundColorToOverlay = colorSliderTwo.ToFXColor();
			}
			else if ( tertiaryXslider < 5 * videoSequenceLoopQuantity / 6 )
			{
				textColorOverlayRatio = 0; backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 4;
			}
			else
			{
				textColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 6 ) - 5; backgroundColorOverlayRatio = 6 - tertiaryXslider / ( videoSequenceLoopQuantity / 6 );
			}// */ //Below Full Trick Fade In Like Shown In Code With RainbowedWhite Text To Pink Transisition Rainbow Text To RainbowedBlack Text
			/*if ( tertiaryXslider < videoSequenceLoopQuantity / 8 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 1 - tertiaryXslider / ( videoSequenceLoopQuantity / 8 ); backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 8 );
			}
			else if ( tertiaryXslider < videoSequenceLoopQuantity / 4 )//For Making C:\Users\AllAV\OneDrive\FWA Website\pixies.zone\School\Pictures\PixiePatentBestTextRead\InitialRunOfText-BackgroundColorFader\
			{
				textColorOverlayRatio = 0; backgroundColorOverlayRatio = 2 - tertiaryXslider / ( videoSequenceLoopQuantity / 8 );
			}
			else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / 8 )
			{
				textColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 2;
				backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 2;
				//colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 2, VibrantColors.Black, VibrantColors.Pink);
				//colorSliderTwo.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 2, VibrantColors.White, VibrantColors.Brown);
				textColorToOverlay = colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 2, VibrantColors.Black, VibrantColors.Pink); backgroundColorToOverlay = colorSliderTwo.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 2, VibrantColors.White, VibrantColors.Brown);
			}
			else if ( tertiaryXslider < videoSequenceLoopQuantity / 2 )
			{
				textColorOverlayRatio = 4 - tertiaryXslider / ( videoSequenceLoopQuantity / 8 );
				backgroundColorOverlayRatio = 4 - tertiaryXslider / ( videoSequenceLoopQuantity / 8 );
				//colorSlider.ColorSliderFunction(1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 3, VibrantColors.Pink, VibrantColors.White);
				//colorSliderTwo.ColorSliderFunction(1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 3, VibrantColors.Brown, VibrantColors.Black);
				textColorToOverlay = colorSlider.ColorSliderFunction(1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 3, VibrantColors.Pink, VibrantColors.White); backgroundColorToOverlay = colorSliderTwo.ColorSliderFunction(1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 3, VibrantColors.Brown, VibrantColors.Black);
			}
			else if ( tertiaryXslider < 5 * videoSequenceLoopQuantity / 8 )
			{
				textColorOverlayRatio = 0; backgroundColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 4;
			}
			else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / 4 )
			{
				textColorOverlayRatio = tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 5; backgroundColorOverlayRatio = 6 - tertiaryXslider / ( videoSequenceLoopQuantity / 8 );
			}
			else if ( tertiaryXslider < 7 * videoSequenceLoopQuantity / 8 )
			{
				//colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 6, VibrantColors.White, VibrantColors.ShitBrown);
				textColorToOverlay = colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 6, VibrantColors.White, VibrantColors.ShitBrown);//Use .Magenta Instead Of ShitBrown I Think For Total Reverse Visual Of This System And Use Hynosis Spiral From Above
			}//To Hypno During Dark-Realafy With Black Background-Admit With White Background-Then-DeHypnotize With Just Reversal Of A Whole Reverse Still Or Color Or Double Slider Then Do A Whole Reverse Cycle Of The Same, With Whatever You Did If You Were Stopping At Double Slider Firey Moments For Rage, Imperial To Burst Thier Bubble
			else//And For Less Advanced Jobs Uses PinkBrown Transitional Code Above And For Learning Simply Black And White Flipping Using Other Patterns Is Fine Imperial Can Be Used For Things They Won't Get Until Later But Always Tell Them Of Buddhism If Applicable Or Use Buddhist Sayings In Video As That Works Well Enough
			{//And Will Work Better With Time. Anyways More Shrunken Like Or 16x Rainbow Clock Good For Imperial Bubble Bursters And For Firey Use NumberOfSpirals = 2 to 8 Experiment At 24 For Single Run Jobs And For Long Videos Test At 192 For Assuradness, If You Have To Test For Longer Combine Later With VSDC Free Video Editor
				//colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 7, VibrantColors.ShitBrown, VibrantColors.Black);
				textColorToOverlay = colorSlider.ColorSliderFunction( 1, tertiaryXslider / ( videoSequenceLoopQuantity / 8 ) - 7, VibrantColors.ShitBrown, VibrantColors.Black);//Use .Magenta Instead Of ShitBrown I Think For Total Reverse Visual
			}// */ //
			//textColorToOverlayCurrent = Color.color(textColorToOverlay.getRed(),textColorToOverlay.getGreen(),textColorToOverlay.getBlue(), textColorOverlayRatio * textColorToOverlay.getOpacity() );
			//backgroundColorToOverlayCurrent = Color.color(backgroundColorToOverlay.getRed(),backgroundColorToOverlay.getGreen(),backgroundColorToOverlay.getBlue(), backgroundColorOverlayRatio * backgroundColorToOverlay.getOpacity() );// */

			/*try { Thread.sleep(600);
			} catch (InterruptedException e) {
			System.out.println("Interrupted.");
			}// */

			//System.out.println("Worked Till After 0.044 s third Wait");
			//tertiaryStage.setScene(thirdScene[(int)( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity ) + 1]);

			//thirdStackPane.getChildren().remove(tertiaryImageView);
			System.out.println("Got To Primary for Statement");
			//Platform.runLater( () -> {
			for ( int x = 0; x < Dim.width; x++) //Dim.width; x++)//Comment Out Here For Circular Rainbow
			{
				for ( int y = 0; y < Dim.height; y++)
				{
					/*try { Thread.sleep((long)0.01);//tertiaryThread.sleep(4879);//4879//10000
					} catch (InterruptedException e) {
						System.out.println("Interrupted.");
					}// */
					//try {
					//tertiaryPW.setColor( x, y, diagnostics.ColorTooSimilar( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity ) );
					//tertiaryPW.setColor( x, y, diagnostics.ColorSlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity, 6 * tertiaryXslider / videoSequenceLoopQuantity, (int)( tertiaryXslider / sliderInterval ) ) );
					//tertiaryPW.setColor( x, y, diagnostics.TransparencySlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity, 6 * tertiaryXslider / videoSequenceLoopQuantity, (int)( tertiaryXslider / sliderInterval ), .5, 1 ) );	
					//tertiaryPW.setColor( x, y, diagnostics.RainbowSoftColor( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity, 6 * tertiaryXslider / videoSequenceLoopQuantity, (int)( tertiaryXslider / sliderInterval ), VibrantColorCombos.ImperialFXcolors, VibrantColorCombos.ImperialColorsNum, 0, 1 ).invert() );
					/*videoSplittingQuantity = 4;
					if ( tertiaryXslider < videoSequenceLoopQuantity / videoSplittingQuantity )
					diagnostics.ColorTooSimilar( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity );
					else if ( tertiaryXslider < 2 * videoSequenceLoopQuantity / videoSplittingQuantity )
					diagnostics.ColorSlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ) );
					else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / videoSplittingQuantity )
					diagnostics.TransparencySlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 2 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - 2 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ), .5, 1 );
					else
					diagnostics.RainbowSoftColor( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ), VibrantColorCombos.ImperialFXcolors, VibrantColorCombos.ImperialColorsNum, 0, 1 );// */

					/*videoSplittingQuantity = 9;
					if ( tertiaryXslider < videoSequenceLoopQuantity / videoSplittingQuantity )
					diagnostics.RainbowPattern2D( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)Math.pow( 2, ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / ( sliderInterval * videoFrameQuantity ) ), VibrantColorCombos.ImperialFXcolors, 0, 1 );
					else if ( tertiaryXslider < 2 * videoSequenceLoopQuantity / videoSplittingQuantity )
					diagnostics.RainbowPattern2D( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)Math.pow( 2, ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / ( sliderInterval * videoFrameQuantity ) ), VibrantColorCombos.ImperialFXcolors, 0, 1 );
					else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / videoSplittingQuantity )
					diagnostics.RainbowPattern2D( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)Math.pow( 2, ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / ( sliderInterval * videoFrameQuantity ) ), VibrantColorCombos.ImperialFXcolors, 0, 1 );
					else //9 ifs Needed
					diagnostics.RainbowPattern2D( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)Math.pow( 2, ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / ( sliderInterval * videoFrameQuantity ) ), VibrantColorCombos.ImperialFXcolors, 0, 1 );// */

					//} catch (IndexOutOfBoundsException e) { System.out.println("Index Out Of Bounds In Diagnostics." + e); }
					//tertiaryPW.setColor( x, y, diagnostics.ToFXColor() );
					//4444
					//LocationOfStillMovement & LocationOfColorMovement MUST BE SYNCED!!!!!!!!
					//tertiaryPW.setColor( x, y, pattern2D.SimpleCustomColor( thirdScreen.getBounds().getWidth() / imperialFXcolors.length, 0., tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x - HalfedDim.width, thirdScreen.getBounds().getWidth() / 2., imperialFXcolors ) );

					//tertiaryPW[frameIndex].setColor( x, y, pattern2D.SimpleRainbow( thirdScreen.getBounds().getWidth(), 0., - tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth() ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbowReverse( thirdScreen.getBounds().getWidth(), 0., - tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth() ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleCustomColor( thirdScreen.getBounds().getWidth(), 0., - tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth(), VibrantColorCombos.ImperialFXcolors ) );
					///gradientExpontierMultiplier = 7;
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( thirdScreen.getBounds().getWidth(), 0., - tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth(), 1, (int)( Math.pow( 2, gradientExpontierMultiplier * tertiaryXslider * videoSplittingQuantity / videoFrameQuantity ) - 1 ), 1, 1, true ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleCustomColor( thirdScreen.getBounds().getWidth(), 0., - tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth(), 1, (int)( Math.pow( 2, gradientExpontierMultiplier * tertiaryXslider * videoSplittingQuantity / videoFrameQuantity ) - 1 ), VibrantColorCombos.ImperialFXcolors, 1, 1, true ) );
					//colorSlider.RainbowSoftColorRainbowTransparencyFunctionAdjusted( thirdScreen.getBounds().getWidth(), x - tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity, 1, (int)( Math.pow( 2, gradientExpontierMultiplier * tertiaryXslider * videoSplittingQuantity / videoFrameQuantity ) - 1 ), 1, 1 ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( thirdScreen.getBounds().getWidth(), 0., 12. * tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth() / 6. ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( thirdScreen.getBounds().getWidth() / 3., 0., tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth() ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( - thirdScreen.getBounds().getWidth(), 0., tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, - thirdScreen.getBounds().getWidth() ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( - thirdScreen.getBounds().getWidth(), 0., tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth() ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( thirdScreen.getBounds().getWidth(), 0., tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, - thirdScreen.getBounds().getWidth() ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleCustomColor( thirdScreen.getBounds().getWidth(), 0., tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity,  x, thirdScreen.getBounds().getWidth(), VibrantColorCombos.RainbowFXcolorsWNeonGreenCenter ) );

					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( - thirdScreen.getBounds().getWidth(), 0, 12 * tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity, x, thirdScreen.getBounds().getWidth() / 6. ) );
					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( - thirdScreen.getBounds().getWidth(), 0, 12. * tertiaryXslider * thirdScreen.getBounds().getWidth() / videoSequenceLoopQuantity, x, - thirdScreen.getBounds().getWidth() / 6. ) );

					//Screen Bounds Not In Alignment Yet Because Not Full Screened
					//tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 24., false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 12., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., false ) );

					//tertiaryPW.setColor( x, y, pattern2D.SimpleRainbow( thirdScreen.getBounds().getWidth() / 7, 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity,  x - HalfedDim.width, thirdScreen.getBounds().getWidth() / 2 ) );// - Locaition Flips Rainbow Like Reverse Without Green Being Replaced By Pink
					//BuildMepattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 7, 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 2,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 2, false ) );//May Not Be Synced Properly To Show 1 Clock Rotation Must Be Properly Relative Factoring
					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 7, 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 2,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 2, false ) );//May Not Be Synced Properly To Show 1 Clock Rotation Must Be Properly Relative Factoring
					////tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4, - tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4, - tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4, false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 14, 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 2 ,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 14, false ) );//May Not Be Synced Properly To Show 1 Clock Rotation Must Be Properly Relative Factoring

					//if ( tertiaryXslider < videoSequenceLoopQuantity / 2 )
					//	tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowDiskGradated( thirdScreen.getBounds().getHeight() / 4., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 2.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., /*VibrantColorCombos.ImperialFXcolors,*/ false, 1, 0, 1, 1, true ) );//For HumanityFront.com
					//else
					//	tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4., 0, - tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 2.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., /*VibrantColorCombos.ImperialFXcolors,*/ false ) );//For HumanityFront.com

					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., VibrantColorCombos.ImperialFXcolors, false ) );//For HumanityFront.com
					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., false ) );//For HumanityFront.com Flashing
					//tertiaryPW.setColor( x, y, pattern2D.RainbowDiskVaryated( thirdScreen.getBounds().getHeight() / 4., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / videoSequenceLoopQuantity / 4.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 4., VibrantColorCombos.HalloweenFXcolors, false ) );

					//double ringSize = 0.175979734764;
					//tertiaryPW.setColor( x, y, pattern2D.RainbowRingVaryated( ringSize * Dim.height / 2., 0, ( tertiaryXslider + 6. * ringSize * Dim.height )* ringSize * Dim.height / ( 2. * videoSequenceLoopQuantity ),  x - Dim.width / 2., y - Dim.height / 2. + 1., ringSize * Dim.height / 2., (1. - ringSize ) * Dim.height / 2. - .5, Dim.height / 2., VibrantColorCombos.RainbowFXcolorsWNeonGreenCenterReverse, false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowRingVaryated( thirdScreen.getBounds().getHeight() / 8., 0, tertiaryXslider * thirdScreen.getBounds().getHeight() / thirdScreen.getBounds().getHeight() / 8.,  x - HalfedDim.width, y - HalfedDim.height, thirdScreen.getBounds().getHeight() / 8., 6 * thirdScreen.getBounds().getHeight() / 8., thirdScreen.getBounds().getHeight(), VibrantColorCombos.RainbowFXcolorsWNeonGreenCenter, false ) );// *

					//tertiaryPW.setColor( x, y, rainbowSoft2D.RainbowClock( 2 * Math.PI, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity,  x, y, 2 * Math.PI, false, 1., 2147483647, 1., 1., true, tertiaryCurrentBrowserImagePR, /*tertiaryCurrentBrowserImagePW,*/ Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );//, reversalOfBackgroundEffectsMaster//Simple Double Slider 1 Rotation Rainbow Clock With Browser Support And For Below Block////////
					////////
					//tertiaryPW[frameIndex].setColor( x, y, fwaSplashLogo.RainbowClock( 2 * Math.PI, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity,  x, y, 2 * Math.PI / videoSequenceLoopQuantity, 2 * Math.PI /videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, false, 1., 2147483647, 1., 1., true, tertiaryCurrentBrowserImagePR, /*tertiaryCurrentBrowserImagePW,*/ Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBoth, nextStepColorTooSimilarEffect ) );//, reversalOfBackgroundEffectsMaster//Simple Double Slider 1 Rotation Rainbow Clock With Browser Support And For Below Block////////
					//tertiaryPW[frameIndex].setColor( x, y, fwaSplashLogo.RainbowClock( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, (int)x, (int)y, videoSequenceLoopQuantity, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, false, 1., 2147483647, 1., 1., true, tertiaryCurrentBrowserImagePR, /*tertiaryCurrentBrowserImagePW,*/ Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBoth, nextStepColorTooSimilarEffect ) );//For Testing Individual Rainbow Funtions For RainbowSoft2D



					//tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowClockVaryated( 2 * Math.PI, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity,  x - HalfedDim.width, y - HalfedDim.height, 2 * Math.PI, false ) );//, reversalOfBackgroundEffectsMaster//Simple Double Slider 1 Rotation Rainbow Clock With Browser Support And For Below Block////////

					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( videoSequenceLoopQuantity / 2., 0, tertiaryXslider * videoSequenceLoopQuantity * 4,  x - HalfedDim.width, y - HalfedDim.height, videoSequenceLoopQuantity / 2., false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( videoSequenceLoopQuantity / 2., 0, tertiaryXslider * videoSequenceLoopQuantity * 4,  x - HalfedDim.width, y - HalfedDim.height, videoSequenceLoopQuantity / 2., halfSreenDiagionalLength, false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * - tertiaryXslider / videoSequenceLoopQuantity + Math.PI, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * - tertiaryXslider / videoSequenceLoopQuantity + Math.PI, - 2. * tertiaryXslider / videoSequenceLoopQuantity, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );

					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, 0, - ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5. + 3 * Math.PI / 15, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//MUST BE RADIALLY SYNCED
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, 0, - ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5. + 7.5 * Math.PI / 7.5, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, - ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5. + 3 * Math.PI / 15, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//MUST BE RADIALLY SYNCED
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, - ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5. + 7.5 * Math.PI / 7.5, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );
					//SYNC Loc RADIALLY LIKEABOVE With LocOColMv//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5. + Math.PI, ( 6. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5. + Math.PI, - ( 3.5 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );

					//1st Check Over All 36 Functions To Check To Make Sure They Will Accesses The Right Function In The End

					//Tests For All SliderFormulates In RainbowPattern2D
					//MovingColors
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );//1
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, 0, 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 2.5, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//RainbowSegment//2//!!!!!{Potential BUG Caused By Patent Terrorists Here}?LocationOfColorMovement Must Be - For Rainbow Clock To Work Properly As A Natural Consequence Of Things
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, 0, Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 2.5, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );//3//RainbowRibbon
					//MovingColors Negatives
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2., false ) );//4//Remember 2 * 180 degrees, 2 * Math.PI So Half The Divisor And Add Math.PI To Location To Make Into Clock Make tertiaryXslider -tertiaryXslider To Reverse Spinning Direction
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );//5
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2., false ) );//6
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2.5, 0, 12. * Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 15., false ) );//7
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2.5, 0, 12. * Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//8
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, 0, 12. * Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 15., false ) );//9
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 7.5, 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5,  x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2.5, false ) );//10
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 7.5, 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5,  x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );//11
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, 0, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2.5, false ) );//12
					//TransitionSlider
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );//13 //Does Something Slightly Different Than Expected That May Become Something New But NM I Think It Is Doing What Is Supposed To Do But Save Things When You Get It Back To This Or This When You Get This To That.
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 2.5, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//14
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 2.5 + 7.5 * Math.PI / 7.5, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );//15

					//After Doing 3 Main DoubleSliders Stop Here And Wait For Diagnostics [9 ++] 3X[-~-] To Test!!

					//TransitionSlider Negatives
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2, 0, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2., false ) );//16
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );//17
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2, 0, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2., false ) );//18
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2.5, 12. * Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, 0, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 15., false ) );//19
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2.5, 12. * Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, 0, x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//20
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, 12. * Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, 0, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 15., false ) );//21
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 7.5, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, 0,  x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2.5, false ) );//22
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 7.5, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, 0,  x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5., false ) );//23
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2.5, 0, x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2.5, false ) );//24
					//DoubleSlider
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - Math.PI * ( - tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );//25 //Save Any Changes To Under Functions To Preserve These Beauties
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, - 6. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//26
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, 3. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5, false ) );//27
					//DoubleSlider Negatives
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - Math.PI * ( - tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2., false ) );//28
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - Math.PI * ( - tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2., false ) );//29
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2., Math.PI * ( tertiaryXslider / videoSequenceLoopQuantity ) / 2., - Math.PI * ( - tertiaryXslider / videoSequenceLoopQuantity ) / 2., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2., false ) );//30
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2.5, - 6. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 15., false ) );//31
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 2.5, - 6. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 15., false ) );//32
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 2.5, - 6. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 12. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 15., false ) );//33
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 7.5, 3. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2.5, false ) );//34
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( - Math.PI / 7.5, 3. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, Math.PI / 2.5., false ) );//35
					//tertiaryPW.setColor( x, y, pattern2D.RainbowClockVaryated( Math.PI / 7.5, 3. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity / 5., ( 4. * Math.PI * tertiaryXslider / videoSequenceLoopQuantity ) / 5., x - HalfedDim.width, y - HalfedDim.height, - Math.PI / 2.5, false ) );//36

					//tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, ( x - HalfedDim.width ) / 3., ( y - HalfedDim.height ) / 3., videoSequenceLoopQuantity, 24.6, 1., halfSreenDiagionalLength, true ).invert() );
					//tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowSpiralGradated( videoSequenceLoopQuantity, -tertiaryXslider, -tertiaryXslider, ( x - HalfedDim.width ) / 10., ( y - HalfedDim.height ) / 10., videoSequenceLoopQuantity, 144, 10, -halfSreenDiagionalLength, VibrantColorCombos.RainbowFXcolorsReverse, true, 1, (int)( tertiaryXslider / ( sliderInterval * 6 ) ), 1, 1, true ).invert() );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider, ( x - HalfedDim.width ) / 3., ( y - HalfedDim.height ) / 3., videoSequenceLoopQuantity, 24.6, 1., halfSreenDiagionalLength, false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity / 3, tertiaryXslider, -tertiaryXslider, ( x - HalfedDim.width ) / 3., ( y - HalfedDim.height ) / 3., videoSequenceLoopQuantity, 24.6, 1., halfSreenDiagionalLength, false ) );
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 6 * tertiaryXslider, -6 * tertiaryXslider, ( x - HalfedDim.width ) / 3., ( y - HalfedDim.height ) / 3., videoSequenceLoopQuantity / 6, 24.6, 1., halfSreenDiagionalLength, false ) );

					//BAD pattern2D.RainbowClockVaryated( 90, 0, - tertiaryXslider * 360 / videoSequenceLoopQuantity,  x - HalfedDim.width, y - HalfedDim.height, 90, 3, 180, false ) );//BAD
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider, ( x - HalfedDim.width ) / 3., ( y - HalfedDim.height ) / 3., videoSequenceLoopQuantity, 24.6, 1, halfSreenDiagionalLength, false ) );//For Proper Rainbow Hypnosis Spiral
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider, ( x - HalfedDim.width ) / 10., ( y - HalfedDim.height ) / 10., videoSequenceLoopQuantity, 144, 10, halfSreenDiagionalLength, false ) );//For Proper Rainbow Rainbow Shrunken
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity * 6, 0, tertiaryXslider * 6, ( x - HalfedDim.width ) / 6., ( y - HalfedDim.height ) / 6., videoSequenceLoopQuantity, 88.8, 4, halfSreenDiagionalLength, false ) );//For Segment View
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider * 3, ( x - HalfedDim.width ) / 6., ( y - HalfedDim.height ) / 6., videoSequenceLoopQuantity * 3, 66.6, 3, halfSreenDiagionalLength, false ) );//For View Of More Length Than 1 Segment, Values Must Be Mulitples Of Eachother Somehow 3 In This Instance
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider, ( x - HalfedDim.width ) / 1., ( y - HalfedDim.height ) / 1., videoSequenceLoopQuantity, 999, 1680, halfSreenDiagionalLength, false ) );//For Proper Rainbow PsychaHypnotic
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider, ( x - HalfedDim.width ) / 10., ( y - HalfedDim.height ) / 10., videoSequenceLoopQuantity, 999, 1680, halfSreenDiagionalLength, false ) );//For Strange Rainbow PsychaHypnotic

					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, tertiaryXslider * 3, tertiaryXslider * 3, ( x - HalfedDim.width ) / 6., ( y - HalfedDim.height ) / 6., videoSequenceLoopQuantity * 3, 66.6, 3, halfSreenDiagionalLength, false ) );
					///tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, tertiaryXslider * 6., tertiaryXslider * 6., ( x - HalfedDim.width ) / 6., ( y - HalfedDim.height ) / 6., videoSequenceLoopQuantity / 6., 66.6, 3, halfSreenDiagionalLength, false ) );

					//System.out.println("x: " + x +" y: " + y + " tertiaryXslider: " + tertiaryXslider);
					//tertiaryPW.setColor( x, y, pattern2D.RainbowSpiralVaryated( videoSequenceLoopQuantity, 0, tertiaryXslider / Math.pow ( 1.003, tertiaryXslider ), ( x - HalfedDim.width ) / Math.pow( 1.004, tertiaryXslider ), ( y - HalfedDim.height ) / Math.pow( 1.004, tertiaryXslider ), videoSequenceLoopQuantity, 999, 1680, halfSreenDiagionalLength, false ) );//For Proper Rainbow PsychaHypnotic //Unknown Anomaly Like Shrunken Tangent Determining Disk Being Scanned By My Cybertron Steel 9600 Computer And Shows Atoms That Cannot Become More Resolute At The Present Time Or Ever!?
					/*double cheapFractalAdjustedtertiaryXslider = tertiaryXslider * 480 / videoSequenceLoopQuantity;//For Cheap Varyated Fractal Imperial
					double tertiaryXsliderBackAndFourth = cheapFractalAdjustedtertiaryXslider;
					if ( cheapFractalAdjustedtertiaryXslider < 240 )//For Fractal
						tertiaryXsliderBackAndFourth = cheapFractalAdjustedtertiaryXslider;//For Fractal
					else//For Fractal
						tertiaryXsliderBackAndFourth = 480 - cheapFractalAdjustedtertiaryXslider;//
					//System.out.println("x: " + x +" y: " + y + " cheapFractalAdjustedtertiaryXslider: " + cheapFractalAdjustedtertiaryXslider);
					tertiaryPW[frameIndex].setColor( x, y, pattern2D.RainbowCheapFractalVaryated( thirdScreen.getBounds().getWidth(), 24 * cheapFractalAdjustedtertiaryXslider, tertiaryXsliderBackAndFourth,  x, y - HalfedDim.height, thirdScreen.getBounds().getWidth(), thirdScreen.getBounds().getWidth(), VibrantColorCombos.RainbowFXcolorsReverseNoPink, false ) );//Good Double Slider Vibrant Version Imperial
					//tertiaryPW.setColor( x, y, pattern2D.RainbowCheapFractalVaryated( thirdScreen.getBounds().getWidth(), 0, tertiaryXsliderBackAndFourth,  x, y - HalfedDim.height, thirdScreen.getBounds().getWidth(), thirdScreen.getBounds().getWidth(), false ) );//Good Vibrant Version
					//tertiaryPW.setColor( x, y, pattern2D.RainbowCheapFractalVaryated( thirdScreen.getBounds().getWidth(), 0, tertiaryXsliderBackAndFourth,  x, y - HalfedDim.height, thirdScreen.getBounds().getWidth() / 6, thirdScreen.getBounds().getWidth(), false ) );//Rainbow Segment Version
					//tertiaryPW.setColor( x, y, pattern2D.RainbowCheapFractalVaryated( thirdScreen.getBounds().getWidth() / 3, 0, tertiaryXsliderBackAndFourth,  x, y - HalfedDim.height, thirdScreen.getBounds().getWidth(), thirdScreen.getBounds().getWidth(), false ) );//Rainbow With Even Ends Of 1 Color */
					//System.out.println("x: " + x +" y: " + y);
					//rainbowSoft2D.MagiElite( videoSequenceLoopQuantity, tertiaryXslider, 0., videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 1., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect );
					//rainbowSoft2D.Buddhism( videoSequenceLoopQuantity, tertiaryXslider, 0., sliderInterval, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, (double)lengthOfColorBar, 24.6, 1., 1.14,        1.       , halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, VibrantColors.NeonGreen.ToFXColor(), colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect, false );
					///rainbowSoft2D.Buddhism( videoSequenceLoopQuantity, tertiaryXslider, 0., sliderInterval, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, (double)lengthOfColorBar, 24.6, 1., 1.14, 4., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, VibrantColors.NeonGreen.ToFXColor(), colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect, false );
					//public Color Buddhism(double ColorsFactor, double LocationOfStillMovement, double LocationOfColorMovement, double SliderInterval, double FullSliderRunThrough, int x, int y, double RepeatFactor, double LengthOfColorBar, double SpiralFactor, double NumberOfSpirals, double SuckInExponentialness, double SuckInDivisor, double HalfSreenDiagionalLength, boolean Reversed, double BrightnessMultiplyer, int Gradations, double OpacityBefore, double OpacityAfter, boolean Adjusted, PixelReader BasisPR, PixelReader BackgroundBasisPR, PixelReader BrowserPR, Dimension Dim, String TypeOfDisplay, Color InitialColorContrastingChoice, Color ColorTooSimilarReplacementColor, double ColorDifference, boolean InvertBasisFromBackground, boolean ReversalOfBackgroundEffectsMaster, boolean NextStepColorTooSimilarEffect )
					//tertiaryPW.setColor( x, y, tertiaryBasisImagePR.getColor( x, y ) );
					//////tertiaryPW.setColor( x, y, pattern2D.ToFXColor() );//////
					//tertiaryPW.setColor( x, y, colorSlider.ToFXColor() );
					///tertiaryPW.setColor( x, y, rainbowSoft2D.ToFXColor() );///
					//tertiaryPW.setColor( x, y, rainbowSoft2D.FwaLogoSplash( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					//tertiaryPW.setColor( x, y, rainbowSoft2D.FwaLogoSplash( 96. * tertiaryXslider - videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity / 3., (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					////tertiaryPW.setColor( x, y, rainbowSoft2D.FwaFlagLogoSplash( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );////
					//tertiaryPW.setColor( x, y, rainbowSoft2D.FwaFlagLogoSplash( 96. * tertiaryXslider - videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity / 3., (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					/*if ( tertiaryXslider < videoSequenceLoopQuantity / 2. )
						tertiaryPW.setColor( x, y, rainbowSoft2D.FwaLogoSplash( 2. * ( tertiaryXslider - 1.001 * videoSequenceLoopQuantity / 4. ), tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity / 2., (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					else
						tertiaryPW.setColor( x, y, rainbowSoft2D.FwaLogoSplash( -tertiaryXslider + 1.001 * videoSequenceLoopQuantity / 2., tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity / 2., (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) ); // */
					//tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );//For SciMagOrderMagiElite.png Color-Coded Varyaterd Rainbow/Color Production With Octagonal Jew Star With Pentagram In Center, Make Sure To Choose Correct BackgroundBasis Image Too////
					/*if ( tertiaryXslider < videoSequenceLoopQuantity / 16. )
						tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( 112. * tertiaryXslider - videoSequenceLoopQuantity, 0, tertiaryXslider, videoSequenceLoopQuantity / 8., (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., (int)( videoFrameQuantity / 80. - tertiaryXslider / ( sliderInterval * 5. ) ), 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					else if ( tertiaryXslider < videoSequenceLoopQuantity / 8. )
						tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( 112. * ( tertiaryXslider - videoSequenceLoopQuantity / 16. ) - 6. * videoSequenceLoopQuantity, 0, tertiaryXslider, videoSequenceLoopQuantity / 8., (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., 0, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					else if ( tertiaryXslider < videoSequenceLoopQuantity * 3. / 8. )//For Blocky To Graduated To Imperial MagiElite
						tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( videoSequenceLoopQuantity, 0, tertiaryXslider, videoSequenceLoopQuantity / 4., (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., (int)( tertiaryXslider / ( sliderInterval * 25. ) ), 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					else if ( tertiaryXslider < videoSequenceLoopQuantity * 5. / 8. )
						tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( videoSequenceLoopQuantity, 0, tertiaryXslider, videoSequenceLoopQuantity / 4., (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., (int)( tertiaryXslider / ( sliderInterval * 25. ) ), 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					else if ( tertiaryXslider < videoSequenceLoopQuantity * 3. / 4. )
						tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( videoSequenceLoopQuantity - 16. * ( tertiaryXslider - 5.0001 / 8. * videoSequenceLoopQuantity ), 0, tertiaryXslider, videoSequenceLoopQuantity / 8., (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					else
						tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( -videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity / 4., (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );// */
					////tertiaryPW.setColor( x, y, rainbowSoft2D.MagiElite( -videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );
					///tertiaryPW.setColor( x, y, rainbowSoft2D.Buddhism( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, sliderInterval, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, lengthOfColorBar, 24.6, 1., 1.014, 1.00000000,  halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );// Don't Change Object To It To Make This Work Because It Could Be ARGB Or RGB
					//tertiaryPW.setColor( x, y, rainbowSoft2D.RainbowVideoTest( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 1., halfSreenDiagionalLength, false, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR, tertiaryBackgroundBasisImagePR, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, nextStepColorTooSimilarEffect ) );

					switch (basisImageViewIndex)
					{
					case 0: tertiaryPW.setColor( x, y, buddhism.BuddhismForRaster( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, sliderInterval, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, lengthOfColorBar, 24.6, 1., 1.014, 1.00000000,  halfSreenDiagionalLength, reversedColors, reverseRainbow, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR[basisImageViewIndex], tertiaryBackgroundBasisImagePR[basisImageViewIndex], tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme ) ); break;// Don't Change Object To It To Make This Work Because It Could Be ARGB Or RGB
					case 1: tertiaryPW.setColor( x, y, magiElite.MagiEliteForRaster( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, 24.6, 88.8, 1., halfSreenDiagionalLength, reversedColors, reverseRainbow, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR[basisImageViewIndex], tertiaryBackgroundBasisImagePR[basisImageViewIndex], tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme ) ); break;
					case 2: tertiaryPW.setColor( x, y, fwaSplashLogo.FwaLogoSplash( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR[basisImageViewIndex], tertiaryBackgroundBasisImagePR[basisImageViewIndex], tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme ) ); break;
					case 3: tertiaryPW.setColor( x, y, fwaFlagSplashLogo.FwaFlagLogoSplash( videoSequenceLoopQuantity, tertiaryXslider, tertiaryXslider, videoSequenceLoopQuantity, (int)x, (int)y, videoSequenceLoopQuantity, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, 1., 2147483647, 1., 1., false, tertiaryBasisImagePR[basisImageViewIndex], tertiaryBackgroundBasisImagePR[basisImageViewIndex], tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme ) ); break;////
					case 4: tertiaryPW.setColor( x, y, rainbowClock.RainbowClockFunction( 2 * Math.PI,  2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity, 2 * Math.PI * tertiaryXslider / videoSequenceLoopQuantity,  x, y, 2 * Math.PI, 2 * Math.PI, halfSreenDiagionalLength, xScaleFactor, yScaleFactor, reversedColors, reverseRainbow, 1., 2147483647, 1., 1., true, tertiaryCurrentBrowserImagePR, Dim, typeOfDisplay, initialColorContrastingChoice, colorTooSimilarReplacementColor, colorDifference, invertBasisFromBackground, invertInsteadOfReverse, invertBasisPicture, invertBoth, invertJustOrigional, invertTextAlways, nextStepColorTooSimilarEffect, textColorToOverlayCurrent, backgroundColorToOverlayCurrent, textColorOverlay, backgroundColorOverlay, overlayColorScheme ) ); break;//, reversalOfBackgroundEffectsMaster//Simple Double Slider 1 Rotation Rainbow Clock With Browser Support And For Below Block////////
					case 5: videoSplittingQuantity = 4;//For ColorTooSimilar->ColorSlider->TransparencySlider->RainbowSoftColor Diagnostics For At Least 24 Frames From RainbowSetup.Setup: fRateDivisor = 24;
					if ( tertiaryXslider < videoSequenceLoopQuantity / videoSplittingQuantity )
						tertiaryPW.setColor( x, y, diagnostics.ColorTooSimilar( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity ) );
					else if ( tertiaryXslider < 2 * videoSequenceLoopQuantity / videoSplittingQuantity )
						tertiaryPW.setColor( x, y, diagnostics.ColorSlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ) ) );
					else if ( tertiaryXslider < 3 * videoSequenceLoopQuantity / videoSplittingQuantity )
						tertiaryPW.setColor( x, y, diagnostics.TransparencySlider( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 2 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - 2 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ), .5, 1 ) );
					else
						tertiaryPW.setColor( x, y, diagnostics.RainbowSoftColor( x, y, tertiaryXslider * thirdScreen.getBounds().getWidth() * videoSplittingQuantity / videoSequenceLoopQuantity, 6 * ( tertiaryXslider - 3 * videoSequenceLoopQuantity  / videoSplittingQuantity ) * videoSplittingQuantity / videoSequenceLoopQuantity, (int)( Math.pow( 2, gradientExpontierMultiplier * ( tertiaryXslider - 3 * videoSequenceLoopQuantity / videoSplittingQuantity ) * videoSplittingQuantity / videoFrameQuantity ) - 1 ), VibrantColorCombos.ImperialFXcolors, VibrantColorCombos.ImperialColorsNum, 0, 1 ) );// */
					break;
					}// */
				}
			}
			try { Thread.sleep(2198);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			/*thirdScene = new Scene( thirdStackPaneForWritting );
			try { Thread.sleep(1421);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			writableImage = (WritableImage) tertiaryImageView.getImage();
			//thirdScene.snapshot( writableImage );
			//tertiaryStage.setScene(thirdScene);
			//tertiaryStage.show();
			//Thread.yield();
			Platform.runLater( () -> { try { Thread.sleep(17688);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			} } );// */
			//writableImageArray[frameIndex] = tertiaryWritableImage;
			//tertiaryWritableImage = currentPixelReaderFortertiaryPixelWriter;
			//tertiaryImageView[frameIndex].setImage(writableImageArray[frameIndex]);
			//thirdStackPane.getChildren().add(tertiaryImageView[frameIndex]);
			//frameIndex = 0;
			//writableImage = tertiaryImageView.snapshot(snapshotParameters, tertiaryBufferPictureForWritableImage);
			/*try { Thread.sleep(2868);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			//Platform.runLater( () -> {
			//writableImage = (WritableImage) tertiaryImageView.getImage();
			//tertiaryImageView[frameIndex].setImage(writableImageArray);
			try { Thread.sleep(2421);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			thirdStackPaneForWritting.snapshot(snapshotParameters, writableImage);
			//thirdStackPaneForWritting[frameIndex].snapshot(snapshotParameters, writableImageArray[frameIndex]);
			try { Thread.sleep(2427);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			thirdScene.setRoot(thirdStackPaneForWritting);
			//thirdScene.setRoot(thirdStackPaneForWritting[frameIndex]);
			try { Thread.sleep(3460);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			tertiaryStage.setScene(thirdScene);
			try { Thread.sleep(2234);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			tertiaryStage.show();
			try { Thread.sleep(5420);//tertiaryThread.sleep(1000);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			Platform.runLater( () -> { try { Thread.sleep(13420);//tertiaryThread.sleep(4879);//4879//10000
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			} } ) ;// #/
			System.out.println("(int)( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity ) + 1 = " + (int)Math.round( videoFrameQuantity * ( tertiaryXslider - startingPoint ) / videoSequenceLoopQuantity ) + 1 );
			System.out.println(Dim);
			try { Thread.sleep(2100);//tertiaryThread.sleep(1050);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			//thirdScene.getCamera().snapshot(snapshotParameters, thirdStackPane.snapshot(snapshotParameters, tertiaryWritableImage) );//tertiaryWritableImage);
			try { Thread.sleep(634);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			bImage = SwingFXUtils.fromFXImage( writableImage, bImage );
			try { Thread.sleep(834);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			writableImage = (WritableImage) tertiaryImageView.getImage();
			thirdScene.snapshot( writableImage );
			//thirdStackPaneForBackground.getChildren().removeAll( tertiaryBackupWorkAroundImageView, tertiaryCurrentBrowserImageView, tertiaryBasisImageView[basisImageViewIndex], tertiaryBackgroundBasisImageView[basisImageViewIndex] );
			//thirdStackPaneForBackground.getChildren().addLast(thirdStackPaneForWritting);
			//thirdStackPaneForBackground.getChildren().get(thirdStackPaneForWritting.getChildren().size()-1);
			//thirdScene = new Scene(thirdStackPaneForWritting);
			tertiaryStage.setScene(thirdStackPaneForWritting.getScene());
			try { Thread.sleep(888);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			tertiaryStage.show();
			try { Thread.sleep(1234);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// #/
			//bImage = SwingFXUtils.fromFXImage(thirdScene.snapshot( tertiaryWritableImage /*writableImageArray[frameIndex]*/ )/*tertiaryImageView[frameIndex].getScene().snapshot(tertiaryWritableImage)*//*thirdScene.getCamera().snapshot(snapshotParameters, tertiaryWritableImage)*/, bImage );
			if ( tertiaryXslider < 1 && tertiaryXslider > -1 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
			{
				try {
					File outputFile = new File("C:/TestImage00.png");
					ImageIO.write(bImage, "png", outputFile);
				} catch (IOException e) {
					throw new RuntimeException(e);
				}
			}
			else
				if ( tertiaryXslider > 288 && tertiaryXslider <= 289 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
				{
					try {
						File outputFile = new File("C:/TestImage01.png");
						ImageIO.write(bImage, "png", outputFile);
					} catch (IOException e) {
						throw new RuntimeException(e);
					}
				}
				else
					if ( tertiaryXslider > 576 && tertiaryXslider <= 577 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
					{
						try {
							File outputFile = new File("C:/TestImage02.png");
							ImageIO.write(bImage, "png", outputFile);
						} catch (IOException e) {
							throw new RuntimeException(e);
						}
					}
					else
						if ( tertiaryXslider > 864 && tertiaryXslider <= 866 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
						{//428 && tertiaryXslider <= 429 For 1/24th Intervals Instead Of 1/7 Like One Line Above
							try {
								File outputFile = new File("C:/TestImage03.png");
								ImageIO.write(bImage, "png", outputFile);
							} catch (IOException e) {
								throw new RuntimeException(e);
							}
						}
						else
							if ( tertiaryXslider > 1153 && tertiaryXslider <= 1154 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
							{
								try {
									File outputFile = new File("C:/TestImage04.png");
									ImageIO.write(bImage, "png", outputFile);
								} catch (IOException e) {
									throw new RuntimeException(e);
								}
							}
							else
								if ( tertiaryXslider > 1441 && tertiaryXslider <= 1442 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
								{
									try {
										File outputFile = new File("C:/TestImage05.png");
										ImageIO.write(bImage, "png", outputFile);
									} catch (IOException e) {
										throw new RuntimeException(e);
									}
								}
								else
									if ( tertiaryXslider > 1730 && tertiaryXslider <= 1731 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
									{
										/*try { tertiaryThread.sleep(8888);
								} catch (InterruptedException e) {
									System.out.println("Interrupted.");
								}// */
										try {
											File outputFile = new File("C:/TestImage06.png");
											ImageIO.write(bImage, "png", outputFile);
										} catch (IOException e) {
											throw new RuntimeException(e);
										}
									}
									else
										if ( tertiaryXslider > 2018 && tertiaryXslider <= 2019 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
										{
											try {
												File outputFile = new File("C:/TestImage07.png");
												ImageIO.write(bImage, "png", outputFile);
											} catch (IOException e) {
												throw new RuntimeException(e);
											}
										}
										else
											if ( tertiaryXslider > 2306 && tertiaryXslider <= 2307 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
											{
												try {
													File outputFile = new File("C:/TestImage08.png");
													ImageIO.write(bImage, "png", outputFile);
												} catch (IOException e) {
													throw new RuntimeException(e);
												}
											}
											else
												if ( tertiaryXslider > 2595 && tertiaryXslider <= 2596 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
												{
													try {
														File outputFile = new File("C:/TestImage09.png");
														ImageIO.write(bImage, "png", outputFile);
													} catch (IOException e) {
														throw new RuntimeException(e);
													}
												}
												else
													if ( tertiaryXslider > 2883 && tertiaryXslider <= 2884 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
													{
														try {
															File outputFile = new File("C:/TestImage10.png");
															ImageIO.write(bImage, "png", outputFile);
														} catch (IOException e) {
															throw new RuntimeException(e);
														}
													}
													else
														if ( tertiaryXslider > 3171 && tertiaryXslider <= 3173 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
														{
															try {
																File outputFile = new File("C:/TestImage11.png");
																ImageIO.write(bImage, "png", outputFile);
															} catch (IOException e) {
																throw new RuntimeException(e);
															}
														}
														else
															if ( tertiaryXslider > 3460 && tertiaryXslider <= 3461 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
															{
																/*try { tertiaryThread.sleep(8888);
														} catch (InterruptedException e) {
															System.out.println("Interrupted.");
														}// */
																try {
																	File outputFile = new File("C:/TestImage12.png");
																	ImageIO.write(bImage, "png", outputFile);
																} catch (IOException e) {
																	throw new RuntimeException(e);
																}
															}
															else
																if ( tertiaryXslider > 3748 && tertiaryXslider <= 3749 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																{
																	try {
																		File outputFile = new File("C:/TestImage13.png");
																		ImageIO.write(bImage, "png", outputFile);
																	} catch (IOException e) {
																		throw new RuntimeException(e);
																	}
																}
																else
																	if ( tertiaryXslider > 4036 && tertiaryXslider <= 4038 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																	{
																		try {
																			File outputFile = new File("C:/TestImage14.png");
																			ImageIO.write(bImage, "png", outputFile);
																		} catch (IOException e) {
																			throw new RuntimeException(e);
																		}
																	}
																	else
																		if ( tertiaryXslider > 4325 && tertiaryXslider <= 4326 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																		{
																			try {
																				File outputFile = new File("C:/TestImage15.png");
																				ImageIO.write(bImage, "png", outputFile);
																			} catch (IOException e) {
																				throw new RuntimeException(e);
																			}
																		}
																		else
																			if ( tertiaryXslider > 4613 && tertiaryXslider <= 4614 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																			{
																				try {
																					File outputFile = new File("C:/TestImage16.png");
																					ImageIO.write(bImage, "png", outputFile);
																				} catch (IOException e) {
																					throw new RuntimeException(e);
																				}
																			}
																			else
																				if ( tertiaryXslider > 4902 && tertiaryXslider <= 4903 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																				{
																					try {
																						File outputFile = new File("C:/TestImage17.png");
																						ImageIO.write(bImage, "png", outputFile);
																					} catch (IOException e) {
																						throw new RuntimeException(e);
																					}
																				}
																				else
																					if ( tertiaryXslider > 5190 && tertiaryXslider <= 5191 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																					{
																						/*try { tertiaryThread.sleep(8888);
																				} catch (InterruptedException e) {
																					System.out.println("Interrupted.");
																				}// */
																						try {
																							File outputFile = new File("C:/TestImage18.png");
																							ImageIO.write(bImage, "png", outputFile);
																						} catch (IOException e) {
																							throw new RuntimeException(e);
																						}
																					}
																					else
																						if ( tertiaryXslider > 5478 && tertiaryXslider <= 5479 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																						{
																							try {
																								File outputFile = new File("C:/TestImage19.png");
																								ImageIO.write(bImage, "png", outputFile);
																							} catch (IOException e) {
																								throw new RuntimeException(e);
																							}
																						}
																						else
																							if ( tertiaryXslider > 5767 && tertiaryXslider <= 5768 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																							{
																								try {
																									File outputFile = new File("C:/TestImage20.png");
																									ImageIO.write(bImage, "png", outputFile);
																								} catch (IOException e) {
																									throw new RuntimeException(e);
																								}
																							}
																							else
																								if ( tertiaryXslider > 6055 && tertiaryXslider <= 6056 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																								{
																									try {
																										File outputFile = new File("C:/TestImage21.png");
																										ImageIO.write(bImage, "png", outputFile);
																									} catch (IOException e) {
																										throw new RuntimeException(e);
																									}
																								}
																								else
																									if ( tertiaryXslider > 6343 && tertiaryXslider <= 6344 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																									{
																										try {
																											File outputFile = new File("C:/TestImage22.png");
																											ImageIO.write(bImage, "png", outputFile);
																										} catch (IOException e) {
																											throw new RuntimeException(e);
																										}
																									}
																									else
																										if ( tertiaryXslider > 6632 && tertiaryXslider <= 6633 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																										{
																											try {
																												File outputFile = new File("C:/TestImage23.png");
																												ImageIO.write(bImage, "png", outputFile);
																											} catch (IOException e) {
																												throw new RuntimeException(e);
																											}
																										}
																										else
																											if ( tertiaryXslider > 6920 && tertiaryXslider <= 6921 )//(int)Math.round(colorDisplacement) + radialDistance * 2 * Math.PI / numberOfClockHandsForRainbow / 2)
																											{
																												/*try { tertiaryThread.sleep(8888);
																										} catch (InterruptedException e) {
																											System.out.println("Interrupted.");
																										}// */
																												try {
																													File outputFile = new File("C:/TestImage24.png");
																													ImageIO.write(bImage, "png", outputFile);
																												} catch (IOException e) {
																													throw new RuntimeException(e);
																												}
																											}// */
			try { Thread.sleep(1477);//tertiaryThread.sleep(777);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			if ( videoFrameQuantity >= 6 )
				try {
					//System.out.println( "bImage Height: " + bImage.getHeight() );
					encoder.encodeImage( bImage );
					//encoder.encodeImage( bImage.getSubimage( 0, 0, 666, 888 ) );
				}
			catch(IOException ie) { ie.printStackTrace(); }
			System.out.println("Finished Encoding Frame: " + (int)Math.round( ( videoFrameQuantity * tertiaryXslider / videoSequenceLoopQuantity ) + 1 ) );
			try { Thread.sleep(1599);//tertiaryThread.sleep(777);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			//if ( tertiaryXslider != 0 &&  tertiaryXslider / ( sliderInterval * numberOfScrollFrames ) - Math.floor( tertiaryXslider / ( sliderInterval * numberOfScrollFrames ) ) < .0001)//interval * 11->Twice + (int)(tertiaryXslider / ( interval * 11 )) + " );\r\n" + 
			//{
			/*try ( PrintWriter printWriterOut = new PrintWriter(thirdXSliderFile.getPath() ) )
				{
					printWriterOut.println("+" + tertiaryXslider + "d");
					printWriterOut.close();
				}
				catch(IOException ie) { ie.printStackTrace(); }// */
			/*try ( PrintWriter printWriterOut = new PrintWriter(thirdJavaScriptFile.getPath() ) )
				{
					printWriterOut.println("function scrollContinuously( timeInterval )\r\n" + 
							"{\r\n" + 
							"	timeInterval = 444;\r\n" + 
							"	window.setInterval( scrollWin, timeInterval );\r\n" + 
							"}\r\n" + 
							"function scrollWin()\r\n" + 
							"{\r\n" + 
							"    window.scrollBy( 0, 100 )\\r\\n" +
							"}");
					printWriterOut.close();
				}
				catch(IOException ie) { ie.printStackTrace(); }// */
			//scrollHappened = true;
			//}
			tertiaryStage.setScene(thirdScene);
			//thirdStackPaneForBackground.getChildren().remove(thirdStackPaneForWritting);
			//thirdStackPaneForBackground.getChildren().addAll( tertiaryBackupWorkAroundImageView, tertiaryCurrentBrowserImageView, tertiaryBasisImageView[basisImageViewIndex], tertiaryBackgroundBasisImageView[basisImageViewIndex] );//, tertiaryBasisImageView[1], tertiaryBackgroundBasisImageView[1], tertiaryBasisImageView[2], tertiaryBackgroundBasisImageView[2], tertiaryBasisImageView[3], tertiaryBackgroundBasisImageView[3] );//, tertiaryImageView /*tertiaryCurrentTransitionBrowserImageView,*/);
			System.out.println("tertiaryXslider: " + tertiaryXslider);
			tertiaryXslider = tertiaryXslider + sliderInterval;
			try { Thread.sleep(879);//tertiaryThread.sleep(4879);//4879//10000
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			}// */
			Platform.runLater( () -> { try { Thread.sleep(9425);
			} catch (InterruptedException e) {
				System.out.println("Interrupted.");
			} } );// */
		}
		try { Thread.sleep(479);//tertiaryThread.sleep(4879);//4879//10000
		} catch (InterruptedException e) {
			System.out.println("Interrupted.");
		}// */
		System.out.println("Main Program Loop Over");
		// Finalize the encoding, i.e. clear the buffers, write the header, etc.
		if ( videoFrameQuantity >= 6 )
		{
			try { encoder.finish(); }
			catch(IOException ie1) { ie1.printStackTrace(); }
			finally { NIOUtils.closeQuietly(tertiaryVideoOut); }
		}
		System.exit(0);
		return bImage;
	}
}


/*new Timer().schedule(
					new TimerTask() {
						@Override
						public void run() {
							synchronized ( tertiaryPW )
							{
								boolean donePixelWriting = false;
								while ( !donePixelWriting )
								//System.out.println("ping");
								//thirdStackPane.getChildren().remove(tertiaryImageView);
								System.out.println("Got To Primary for Statement");
								//Platform.runLater( () -> {
								for ( int x = 0; x < Dim.width; x++) //Dim.width; x++)//Comment Out Here For Circular Rainbow
								{
									for ( int y = 0; y < Dim.height; y++)
									{
									}
								}
								donePixelWriting = true;
								try {
									tertiaryPW.wait();
								} catch (InterruptedException e) {
									// TODO Auto-generated catch block
									e.printStackTrace();
								}
							}
						}
					}, 0, 8000);// */
