diff --git a/Aero_Lib.ahk b/Aero_Lib.ahk
new file mode 100644
index 0000000..b4b44ab
--- /dev/null
+++ b/Aero_Lib.ahk
@@ -0,0 +1,970 @@
+/*
+
+Aero_Libary
+
+DWM - - Desktop Window Manager
+Name: Aero_Lib
+Autors:= Bentschi ; RaptorOne ;
+Beta From 11.10.10
+
+Funktions:
+Aero_StartUp() ; Load important dll Files for more perfomance. ; Line: 52
+Aero_Enable() ; Enable or disable the DWM. ; Line: 82
+Aero_IsEnabled() ; Return True if DWM is enabled, False if it disabled. ; Line: 104
+Aero_BlurWindow() ; Set a Blur behind a window. ; Line: 135
+Aero_GuiBlurWindow() ; Set a Blur behind a window. ; Line: 174
+Aero_ChangeFrameArea() ; Extend the Frame Area into the Client Area. ; Line: 220
+Aero_GuiChangeFrameArea() ; Extend the Frame Area into the Client Area. ; Line: 261
+Aero_ChangeFrameAreaAll() ; Extend the Frame Area into the whole Client Area. ; Line: 291
+Aero_GuiChangeFrameAreaAll() ; Extend the Frame Area into the whole Client Area. ; Line: 316
+Aero_GetDWMColor() ; Gets the Color of the current DWM options. ; Line: 337
+Aero_GetDWMTrans() ; Gets the Transparent of the Current DWM options. ; Line: 362
+Aero_SetDWMColor() ; Set�s the DWM Window Color. ; Line: 389
+Aero_SetTrans() ; Set�s the DWM Transparent value. ; Line: 416
+Aero_DrawPicture() ; Draws a Picture onto a DWM Gui. ; Line: 454
+Aero_CreateBuffer() ; Creates a buffer from a Handle. ; Line: 481
+Aero_CreateGuiBuffer() ; Creates a buffer from a GuiCount. ; Line: 502
+Aero_DeleteBuffer() ; Deletes a buffer. ; Line: 523
+Aero_UpdateWindow() ; Updates a window where is a DWM draw. ; Line: 550
+Aero_UpdateGui() ; Updates a window where is a DWM draw. ; Line: 574
+Aero_AutoRepaint() ; Set a Buffer to Autoredraw, everytime it is need it. ; Line: 598
+Aero_AutoRepaintGui() ; Set a Buffer to Autoredraw, everytime it is need it. ;Line: 622
+Aero_DisableAutoRepaint() ; Disables the AutoRedraw. ; Line: 643
+Aero_DisableAutoRepaintGui() ; Disables the AutoRedraw. ; Line: 664
+Aero_ClearBuffer() ; Clears a Buffer. ; Line: 685
+Aero_LoadImage() ; Load image in a variable. ; Line: 714
+Aero_DeleteImage() ; Deletes a loaded image. ; Line: 745
+Aero_DrawImage() ; Draw the Picture on the Window. ; Line: 779
+Aero_End() ; Unload the dll Files. ; Line: 805
+*/
+
+;============================================================================
+; Funktion
+; Api Name: LoadLibary (Kernel32.dll)
+;
+; Aero_StartUp()
+;
+; Load important dll Files for more perfomance.
+;
+;
+; Return: Module Id�s (splittet with "|") (or false if OS is not compatible)
+;
+Aero_StartUp(){
+	global
+	If(A_OSVersion=="WIN_VISTA" || A_OSVersion=="WIN_7")
+	{
+		MODULEID3:=DllCall("LoadLibrary", "str", "dwmapi")
+		MODULEID2:=DllCall("LoadLibrary", "str", "uxtheme") ;zwar noch nicht gebraucht aber egal
+		MODULEID:=MODULEID3 . "|" . MODULEID2
+		Return,MODULEID
+	}Else{
+		MsgBox, 4112, DWM Stop, Dwm cannot applied with these OS version.
+		Return,False
+	}
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmEnableComposition (dwmapi.dll)
+;
+; Aero_Enable()
+;
+; Enable or disable the DWM.
+;
+; Params:
+;
+; 1. enableBool (True == 1)
+;    TRUE change to Aero Theme, False change to Windows Basic Theme.
+;
+; Return: A_LastError
+;
+Aero_Enable(enableBool=1){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	If(A_OSVersion=="WIN_VISTA" || A_OSVersion=="WIN_7")
+		DllCall("dwmapi\DwmEnableComposition","UInt",enableBool)
+	Else
+		MsgBox, 4112, DWM Stop, Dwm cannot applied with these OS version.
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmIsCompositionEnabled (dwmapi.dll)
+;
+; Aero_IsEnabled()
+;
+; Return True if DWM is enabled, False if it disabled.
+;
+; Return: EnabledBool
+;
+Aero_IsEnabled(){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(_ISENABLED,4)
+	DllCall("dwmapi\DwmIsCompositionEnabled","UInt",&_ISENABLED)
+	Return,NumGet(&_ISENABLED,0)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmEnableBlurBehindWindow (dwmapi.dll)
+;
+; Aero_BlurWindow()
+;
+; Set a Blur behind a window.
+;
+; Params:
+;
+; 1. hwndWin
+;    The handle to the window on which the blur behind data is applied.
+;
+; 2. enableBool (True == 1)
+;    TRUE to register the window handle to DWM blur behind; FALSE to unregister the window handle from DWM blur behind.
+;
+; 3. region (False == 0)
+;    The region within the client area to apply the blur behind. A NULL value will apply the blur behind the entire client area.
+;
+; Return: A_LastError
+;
+Aero_BlurWindow(hwndWin ,enableBool=1 ,region=0){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	If(region)
+		dwmConstant:=0x00000001 | 0x00000002 ;DWM_BB_ENABLE | DWM_BB_BLURREGION
+	Else
+		dwmConstant:=0x00000001 ;DWM_BB_ENABLE
+	VarSetCapacity(DWM_BLURBEHIND,16)
+		NumPut(dwmConstant,&DWM_BLURBEHIND,0,"UInt")
+		NumPut(enableBool,&DWM_BLURBEHIND,4,"UInt")
+		NumPut(region,&DWM_BLURBEHIND,8,"UInt")
+		NumPut(False,&DWM_BLURBEHIND,12,"UInt")
+	DllCall("dwmapi\DwmEnableBlurBehindWindow","UInt",hwndWin,"UInt",&DWM_BLURBEHIND)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmEnableBlurBehindWindow (dwmapi.dll)
+;
+; Aero_GuiBlurWindow()
+;
+; Set a Blur behind a window.
+;
+; Params:
+;
+; 1. GuiNum (deafult == current Gui)
+;    Gui Number.
+;
+; 2. enableBool (True == 1)
+;    TRUE to register the window handle to DWM blur behind; FALSE to unregister the window handle from DWM blur behind.
+;
+; 3. region (False == 0)
+;    The region within the client area to apply the blur behind. A NULL value will apply the blur behind the entire client area.
+;
+; Return: A_LastError
+;
+Aero_GuiBlurWindow(GuiNum="default" ,enableBool=1 ,region=0){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	If(region)
+		dwmConstant:=0x00000001 | 0x00000002 ;DWM_BB_ENABLE | DWM_BB_BLURREGION
+	Else
+		dwmConstant:=0x00000001 ;DWM_BB_ENABLE
+	VarSetCapacity(DWM_BLURBEHIND,16)
+		NumPut(dwmConstant,&DWM_BLURBEHIND,0,"UInt")
+		NumPut(enableBool,&DWM_BLURBEHIND,4,"UInt")
+		NumPut(region,&DWM_BLURBEHIND,8,"UInt")
+		NumPut(False,&DWM_BLURBEHIND,12,"UInt")
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	DllCall("dwmapi\DwmEnableBlurBehindWindow","UInt",WinExist(),"UInt",&DWM_BLURBEHIND)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmExtendFrameIntoClientArea (dwmapi.dll)
+;
+; Aero_ChangeFrameArea()
+;
+; Extend the Frame Area into the Client Area.
+;
+; Params:
+;
+; 1. hwndWin
+;    The handle to the window for which the frame is extended into the client area.
+;
+; 2. leftPos (0)
+;    Width of the left border that retains its size.
+;
+; 3. rightPos (0)
+;    Width of the right border that retains its size.
+;
+; 2. topPos (0)
+;    Height of the top border that retains its size.
+;
+; 3. bottomPos (0)
+;    Height of the bottom border that retains its size.
+;
+; Return: A_LastError
+;
+Aero_ChangeFrameArea(hwndWin, leftPos=0, rightPos=0, topPos=0, bottomPos=0){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(_MARGINS,16)
+		NumPut(leftPos,&_MARGINS,0,"UInt")
+		NumPut(rightPos,&_MARGINS,4,"UInt")
+		NumPut(topPos,&_MARGINS,8,"UInt")
+		NumPut(bottomPos,&_MARGINS,12,"UInt")
+	DllCall("dwmapi\DwmExtendFrameIntoClientArea", "UInt", hwndWin, "UInt", &_MARGINS)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmExtendFrameIntoClientArea (dwmapi.dll)
+;
+; Aero_GuiChangeFrameArea()
+;
+; Extend the Frame Area into the Client Area.
+;
+; Params:
+;
+; 1. GuiNum (default == current Gui)
+;    Gui Number.
+;
+; 2. leftPos (0)
+;    Width of the left border that retains its size.
+;
+; 3. rightPos (0)
+;    Width of the right border that retains its size.
+;
+; 2. topPos (0)
+;    Height of the top border that retains its size.
+;
+; 3. bottomPos (0)
+;    Height of the bottom border that retains its size.
+;
+; Return: A_LastError
+;
+Aero_GuiChangeFrameArea(GuiNum="default", leftPos=0, rightPos=0, topPos=0, bottomPos=0){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(_MARGINS,16)
+		NumPut(leftPos,&_MARGINS,0,"UInt")
+		NumPut(rightPos,&_MARGINS,4,"UInt")
+		NumPut(topPos,&_MARGINS,8,"UInt")
+		NumPut(bottomPos,&_MARGINS,12,"UInt")
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	DllCall("dwmapi\DwmExtendFrameIntoClientArea", "UInt", WinExist(), "UInt", &_MARGINS)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmExtendFrameIntoClientArea (dwmapi.dll)
+;
+; Aero_ChangeFrameAreaAll()
+;
+; Extend the Frame Area into the whole Client Area.
+;
+; Params:
+;
+; 1. hwndWin
+;    The handle to the window for which the frame is extended into the client area.
+;
+; Return: A_LastError
+;
+Aero_ChangeFrameAreaAll(hwndWin){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(_AllMARGINS,16,-1)
+	DllCall("dwmapi\DwmExtendFrameIntoClientArea", "UInt", hwndWin, "UInt", &_AllMARGINS)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmExtendFrameIntoClientArea (dwmapi.dll)
+;
+; Aero_GuiChangeFrameAreaAll()
+;
+; Extend the Frame Area into the whole Client Area.
+;
+; Params:
+;
+; 1. GuiNum (default == current Gui)
+;    Number of a Gui
+;
+; Return: A_LastError
+;
+Aero_GuiChangeFrameAreaAll(GuiNum="deafult"){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(_AllMARGINS,16,-1)
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	DllCall("dwmapi\DwmExtendFrameIntoClientArea", "UInt", WinExist(), "UInt", &_AllMARGINS)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DwmGetColorizationColor (dwmapi.dll)
+;
+; Aero_GetDWMColor()
+;
+; Gets the Color of the current DWM options.
+;
+; Return: dwmColor (0xAARRGGBB)
+;
+Aero_GetDWMColor(){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(dwmColor,16)
+	VarSetCapacity(subend,4)
+	DllCall("dwmapi\DwmGetColorizationColor", "UInt", &dwmColor, "UInt", &subend)
+	SetFormat,integer,hex
+	dwmColor2:=NumGet(&dwmColor,0)+0
+	SetFormat,IntegerFast,d
+	Return,dwmColor2
+}
+;============================================================================
+
+
+;============================================================================
+; Funktion
+; Api Name: DwmGetColorizationColor (dwmapi.dll)
+;
+; Aero_GetDWMTrans()
+;
+; Gets the Transparent of the Current DWM options.
+;
+; Return: dwmTransparent (False==Transparent ; True==Not Transparent)
+;
+Aero_GetDWMTrans(){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	VarSetCapacity(subend,16)
+	VarSetCapacity(dwmTrans,4)
+	DllCall("dwmapi\DwmGetColorizationColor", "UInt", &subend, "UInt", &dwmTrans)
+	Return,NumGet(&dwmTrans,0,"UInt")
+}
+;============================================================================
+
+
+;============================================================================
+; Funktion
+; Api Name: none ()
+;
+; Aero_SetDWMColor()
+;
+; Set�s the DWM Window Color.
+;
+; Params:
+;
+; 1. dwmColor
+;    A 32 bit Color (0xAARRGGBB)
+;
+; Return: A_LastError
+;
+Aero_SetDWMColor(dwmColor=0x910047ab){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	RegWrite,REG_DWORD,HKCU,Software\Microsoft\Windows\DWM,ColorizationColor,%dwmColor%
+	RegWrite,REG_DWORD,HKCU,Software\Microsoft\Windows\DWM,ColorizationAfterglow,%dwmColor%
+	DllCall("dwmapi\DwmEnableComposition","UInt",False)
+	DllCall("dwmapi\DwmEnableComposition","UInt",True)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: none ()
+;
+; Aero_SetTrans()
+;
+; Set�s the DWM Transparent value.
+;
+; Params:
+;
+; 1. dwmTrans
+;    A Bool. False is transparent, True is not Transparent.
+;
+; Return: A_LastError
+;
+Aero_SetTrans(dwmTrans){
+	global
+	If(!MODULEID)
+		Aero_StartUp()
+	RegWrite,REG_DWORD,HKCU,Software\Microsoft\Windows\DWM,ColorizationOpaqueBlend,%dwmTrans%
+	DllCall("dwmapi\DwmEnableComposition","UInt",False)
+	DllCall("dwmapi\DwmEnableComposition","UInt",True)
+	Return,A_LastError
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many xD (view in source)
+;
+; Aero_DrawPicture()
+;
+; Draws a Picture onto a DWM Gui.
+;
+; Params:
+;
+; 1. hwnd
+;    Handle of the Window which the Picture is to draw.
+;
+; 2. picturePath
+;    Path to a Picture (All supportet Gdi32 Pictures (also Transparent Pictures))
+;
+; 3. xPos (0)
+;    X Position where the Picture is to draw.
+;
+; 4. yPos (0)
+;    Y Position where the Picture is to draw.
+;
+; 5. autoUpdate (True==1)
+;    Redraw the Picture everytime need it.
+;
+; Return: The Buffer of the Picture.
+;
+Aero_DrawPicture(hwnd,picturePath,xPos=0,yPos=0,autoUpdate=1){
+	hBuffer := Aero_CreateBuffer(hwnd)
+	hImage := Aero_LoadImage(picturePath)
+	Aero_DrawImage(hBuffer, hImage, xPos, yPos)
+	If(autoUpdate)
+		Aero_AutoRepaintGui(hBuffer)
+	Aero_DeleteImage(hImage)
+	Return,hBuffer
+}
+;============================================================================
+
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_CreateBuffer()
+;
+; Creates a buffer from a Handle.
+;
+; Params:
+;
+; 1. hWnd
+;    Handle of the Window which the buffer is applied.
+;
+; Return: Created buffer.
+;
+Aero_CreateBuffer(hWnd){
+	hDC := DllCall("GetDC", "uint", hWnd)
+	Return Aero_CreateBufferFromBuffer(hDC)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_CreateGuiBuffer()
+;
+; Creates a buffer from a GuiCount.
+;
+; Params:
+;
+; 1. GuiNum (default==current Gui)
+;    Gui number
+;
+; Return: Created buffer.
+;
+Aero_CreateGuiBuffer(GuiNum="default"){
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	Return Aero_CreateBuffer(WinExist())
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_DeleteBuffer()
+;
+; Deletes a buffer.
+;
+; Params:
+;
+; 1. hBuffer
+;    Handle of a Buffer.
+;
+; Return: True
+;
+Aero_DeleteBuffer(byref hBuffer){
+	hBitmap := DllCall("GetCurrentObject", "uint", hBuffer, "uint", 7)
+	DllCall("DeleteDC", "uint", hBuffer)
+	DllCall("DeleteObject", "uint", hBitmap)
+	hBuffer := 0
+	Return 1
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_UpdateWindow()
+;
+; Updates a window where is a DWM draw.
+;
+; Params:
+;
+; 1. hWnd
+;    Handle of the window who is to update.
+;
+; 2. hBuffer
+;    A handle of a Buffer
+;
+; Return: NonZero if succes otherwise NULL
+;
+Aero_UpdateWindow(hWnd, hBuffer){
+	hDC := DllCall("GetDC", "uint", hWnd)
+	Return Aero_Blit(hDC, hBuffer)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_UpdateGui()
+;
+; Updates a window where is a DWM draw.
+;
+; Params:
+;
+; 1. hBuffer
+;    Handle of a Buffer.
+;
+; 2. GuiNum (default == current Gui)
+;    Gui number.
+;
+; Return: NonZero if succes otherwise NULL
+;
+Aero_UpdateGui(hBuffer, GuiNum="default"){
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	Return Aero_UpdateWindow(WinExist(), hBuffer)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_AutoRepaint()
+;
+; Set a Buffer to Autoredraw, everytime it is need it.
+;
+; Params:
+;
+; 1. hWnd
+;    Handle of a Window.
+;
+; 2. hBuffer
+;    handle of a Buffer.
+;
+; Return: Errorlevel
+;
+Aero_AutoRepaint(hWnd, hBuffer){
+	OnMessage(0x0F, "Aero_AutoRepaintCallback")
+	Return Aero_AutoRepaintCallback(hBuffer, 0, "register", hWnd)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_AutoRepaintGui()
+;
+; Set a Buffer to Autoredraw, everytime it is need it.
+;
+; Params:
+;
+; 1. hBuffer
+;    Handle of a buffer.
+;
+; 2. GuiNum (default == current Gui)
+;    Gui Number.
+;
+; Return: ErrorLevel
+;
+Aero_AutoRepaintGui(hBuffer, GuiNum="default"){
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	Return Aero_AutoRepaint(WinExist(), hBuffer)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_DisableAutoRepaint()
+;
+; Disables the AutoRedraw.
+;
+; Params:
+;
+; 1. hWnd
+;    Handle of the Window.
+;
+; Return: True
+;
+Aero_DisableAutoRepaint(hWnd){
+	Aero_AutoRepaint(hWnd, "")
+	Return 1
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_DisableAutoRepaintGui()
+;
+; Disables the AutoRedraw.
+;
+; Params:
+;
+; 1. GuiNum (default == current Gui)
+;    Gui Number.
+;
+; Return: True
+;
+Aero_DisableAutoRepaintGui(GuiNum="default"){
+	Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+	Return Aero_DisableAutoRepaint(WinExist())
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_ClearBuffer()
+;
+; Clears a Buffer.
+;
+; Params:
+;
+; 1. hBuffer
+;    Handle of a Buffer.
+;
+; Return: True for succes otherwise False
+;
+Aero_ClearBuffer(hBuffer){
+	VarSetCapacity(Img, 24, 0)
+	hBitmap := DllCall("GetCurrentObject", "uint", hBuffer, "uint", 7)
+	DllCall("GetObject", "uInt", hBitmap "uInt", 24, "uInt", &Img)
+	VarSetCapacity(rect, 16, 0)
+		NumPut(((NumGet(Img, 4)=0) ? A_ScreenWidth : NumGet(Img, 4)), rect, 8, "int")
+		NumPut(((NumGet(Img, 8)=0) ? A_ScreenHeight : NumGet(Img, 8)), rect, 12, "int")
+	hBrush := DllCall("CreateSolidBrush", "uint", 0)
+	retval := DllCall("FillRect", "uint", hBuffer, "uint", &rect, "uint", hBrush)
+	DllCall("DeleteObject", "uint", hBrush)
+	Return ((retval!=0) ? 1 : 0)
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_LoadImage()
+;
+; Load image in a variable.
+;
+; Params:
+;
+; 1. FileName
+;    Path to a Picture (All suportet Gdi32 Pictures)
+;
+; Return: The Image.
+;
+Aero_LoadImage(Filename){
+	DllCall("LoadLibrary", "str", "gdiplus")
+	VarSetCapacity(pGdiplusToken, 4, 0)
+	VarSetCapacity(pGdiplusInput, 16, 0)
+		NumPut(1, pGdiplusInput)
+	DllCall("gdiplus\GdiplusStartup", "uint", &pGdiplusToken, "uint", &pGdiplusInput, "uint", 0)
+	Aero_MultibyteToWide(Filename, WideFilename)
+	DllCall("gdiplus\GdipCreateBitmapFromFile", "uint", &WideFilename, "uint*", GdiplusBitmap)
+	DllCall("gdiplus\GdipCreateHBITMAPFromBitmap", "uint", GdiplusBitmap, "uint*", hImage, "uint", 0xFF000000)
+	DllCall("gdiplus\GdipDisposeImage", "uint", GdiplusBitmap)
+	DllCall("gdiplus\GdiplusShutdown", "uint", NumGet(pGdiplusToken))
+	DllCall("FreeLibrary", "uint", DllCall("GetModuleHandle", "str", "gdiplus"))
+	Return hImage
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: DeleteObject (Gdi32.dll)
+;
+; Aero_DeleteImage()
+;
+; Deletes a loaded image.
+;
+; Params:
+;
+; 1. hImage
+;    A Image in a variable.
+;
+; Return: True
+;
+Aero_DeleteImage(byref hImage){
+	DllCall("DeleteObject", "uint", hImage)
+	hImage := 0
+	Return 1
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: many (view in source)
+;
+; Aero_DrawImage()
+;
+; Draw the Picture on the Window.
+;
+; Params:
+;
+; 1. hBuffer
+;    Handle to a Buffer
+;
+; 2. hImage
+;    An Image.
+;
+; 3. x (0)
+;    X Position of the Picture
+;
+; 3. y (0)
+;    Y Position of the Picture
+;
+; 3. alpha (256 (0xFF))
+;    Alpha Value.
+;
+; Return: Selected Buffer.
+;
+Aero_DrawImage(hBuffer, hImage, x=0, y=0, alpha=0xFF){
+	If (hImage = 0)	
+		Return 0
+	hBufferSrc := DllCall("CreateCompatibleDC", "uint", hBuffer)
+	DllCall("SelectObject", "uint", hBufferSrc, "uint", hImage)
+	retval := Aero_AlphaBlend(hBuffer, hBufferSrc, x, y, alpha)
+	DllCall("DeleteDC", "uint", hBufferSrc)
+	Return retval
+}
+;============================================================================
+
+;============================================================================
+; Funktion
+; Api Name: FreeLibary (Kernel32.dll)
+;
+; Aero_End()
+;
+; Unload the dll Files.
+;
+; Params:
+;
+; 1. MODUELIDPARAM_ (""nonzero"")
+;    The Return MODULID from Aero_StartUp() .
+;
+; Return: True for succes otherwise False for fail
+;
+Aero_End(MODUELIDPARAM_=""){
+	global
+	If(MODUELIDPARAM_)
+	{
+		StringSplit,MODULEIDARRAY,MODULEID,% "|"
+		Loop,%MODULEIDARRAY0%
+			DllCall("FreeLibary", "Uint", MODULEIDARRAY%A_Index%)
+		Return,True	
+	}Else{
+		If(MODULEID)
+		{
+			StringSplit,MODULEIDARRAY,MODULEID,% "|"
+			Loop,%MODULEIDARRAY0%
+				DllCall("FreeLibary", "Uint", MODULEIDARRAY%A_Index%)
+			Return,True	
+		}Else{
+			MsgBox, 4144, DWM Stop, No Loaded Libarys found.`n`nAero_End() fail !
+			Return,False
+		}
+	}
+}
+;============================================================================
+
+
+;============================================================================
+;============================================================================
+;============================================================================
+;=============================PRIVATE FUNKTIONS==============================
+;============================================================================
+;============================================================================
+Aero_CreateBufferFromBuffer(hBuffer)
+{
+  hNewBuffer := DllCall("CreateCompatibleDC", "uint", hBuffer)
+  if (hBufferOut=0)
+    Return 0
+  w := DllCall("GetDeviceCaps", "uint", hBuffer, "int", 8)
+  h := DllCall("GetDeviceCaps", "uint", hBuffer, "int", 10)
+  VarSetCapacity(bmi, 40, 0)
+  NumPut(40, bmi, 0, "uint")
+  NumPut(((w=0) ? A_ScreenWidth : w), bmi, 4, "int")
+  NumPut(((h=0) ? A_ScreenHeight : h), bmi, 8, "int")
+  NumPut(1, bmi, 12, "ushort")
+  NumPut(32, bmi, 14, "ushort")
+  hBitmap := DllCall("CreateDIBSection", "uint", hBuffer, "uint", &bmi, "uint", 0, "uint*", diBits, "uint", 0, "uint", 0)
+  if (hBitmap=0)
+    Return 0
+  DllCall("SelectObject", "uint", hNewBuffer, "uint", hBitmap)
+  Return hNewBuffer
+}
+;============================================================================
+Aero_AutoRepaintCallback(wParam, lParam, msg, hWnd)
+{
+  static
+  SetFormat, Integer, h
+  hWnd += 0
+  SetFormat, Integer, d
+  if (msg="register")
+  {
+    Buffer%hWnd% := wParam
+    Return Aero_UpdateWindow(hWnd, wParam)
+  }
+  if ((Buffer%hWnd%!=""))
+  {
+    Aero_UpdateWindow(hWnd, Buffer%hWnd%)
+    SendMessage, % msg, % wParam, % lParam,, ahk_id %hWnd%
+    Return errorlevel
+  }
+  SendMessage, % msg, % wParam, % lParam,, ahk_id %hWnd%
+  Return errorlevel
+}
+;============================================================================
+Aero_AlphaBlend(hBufferDst, hBufferSrc, x=0, y=0, alpha=0xFF)
+{
+  VarSetCapacity(ImgSrc, 24, 0)
+  VarSetCapacity(ImgDst, 24, 0)
+  hBitmapSrc := DllCall("GetCurrentObject", "uint", hBufferSrc, "uint", 7)
+  hBitmapDst := DllCall("GetCurrentObject", "uint", hBufferDst, "uint", 7)
+  DllCall("GetObject", "uInt", hBitmapSrc, "uInt", 24, "uInt", &ImgSrc)
+  DllCall("GetObject", "uInt", hBitmapDst, "uInt", 24, "uInt", &ImgDst)
+  w := ((NumGet(ImgSrc, 4)<=NumGet(ImgDst, 4)) ? NumGet(ImgSrc, 4) : NumGet(ImgDst, 4))
+  h := ((NumGet(ImgSrc, 8)<=NumGet(ImgDst, 8)) ? NumGet(ImgSrc, 8) : NumGet(ImgDst, 8))
+  alpha := ((alpha>0xFF) ? 0xFF : (alpha<0) ? 0 : alpha)
+  Return DllCall("GdiAlphaBlend", "uint", hBufferDst, "int", x, "int", y, "int", w, "int", h, "uint", hBufferSrc
+      , "int", 0, "int", 0, "int", w, "int", h, "uint", 0x01000000 | (alpha*0x10000))
+}
+;============================================================================
+Aero_Blit(hBufferDst, hBufferSrc, x=0, y=0)
+{
+  VarSetCapacity(ImgSrc, 24, 0)
+  VarSetCapacity(ImgDst, 24, 0)
+  hBitmapSrc := DllCall("GetCurrentObject", "uint", hBufferSrc, "uint", 7)
+  hBitmapDst := DllCall("GetCurrentObject", "uint", hBufferDst, "uint", 7)
+  DllCall("GetObject", "uInt", hBitmapSrc, "uInt", 24, "uInt", &ImgSrc)
+  DllCall("GetObject", "uInt", hBitmapDst, "uInt", 24, "uInt", &ImgDst)
+  w := ((NumGet(ImgSrc, 4)<=NumGet(ImgDst, 4)) ? NumGet(ImgSrc, 4) : NumGet(ImgDst, 4))
+  h := ((NumGet(ImgSrc, 8)<=NumGet(ImgDst, 8)) ? NumGet(ImgSrc, 8) : NumGet(ImgDst, 8))
+  Return DllCall("BitBlt", "uint", hBufferDst, "int", x, "int", y, "int", w, "int", h, "uint", hBufferSrc
+      , "int", 0, "int", 0, "uint", 0xCC0020)
+}
+;============================================================================
+Aero_MultibyteToWide(Multibyte, byref Wide)
+{
+  SizeOfString := DllCall("MultiByteToWideChar", "uInt", 0, "uInt", 0, "uInt", &Multibyte, "Int", -1, "uInt", 0, "Int", 0) * 2
+  VarSetCapacity(Wide, SizeOfString, 0)
+  Return DllCall("MultiByteToWideChar", "uInt", 0, "uInt", 0, "uInt", &Multibyte, "Int", -1, "uInt", &Wide, "uInt", SizeOfString)
+}
+;============================================================================
+
+Aero_DrawText(hBuffer, Text, x=10, y=10, color="", glowsize=14) ;BUGGY , DONT WORK , DONT USE IT
+{
+  Gui, +LastFound ;Zum verwenden des Theme
+  Aero_MultibyteToWide("CompositedWindow::Window", WideClass)
+  hTheme := DllCall("uxtheme\OpenThemeData", "uint", WinExist(), "uint", &WideClass)
+  hTmpBuffer := Aero_CreateBufferFromBuffer(hBuffer)
+  hFont := DllCall("GetCurrentObject", "uint", hBuffer, "uint", 6)
+  DllCall("SelectObject", "uint", hTmpBuffer, "uint", hFont)
+
+  VarSetCapacity(Img, 24, 0)
+  hBitmap := DllCall("GetCurrentObject", "uint", hBuffer, "uint", 7)
+  DllCall("GetObject", "uInt", hBitmap, "uint", 24, "uint", &Img)
+
+  VarSetCapacity(rect, 16, 0)
+  NumPut(x, rect, 0, "int")
+  NumPut(y, rect, 4, "int")
+  NumPut(NumGet(Img, 4)-x, rect, 8, "int")
+  NumPut(NumGet(Img, 8)-y, rect, 12, "int")
+
+  VarSetCapacity(dttopts, 64, 0)
+  NumPut(64, dttopts, 0, "uint") ;dwSize
+  NumPut(0x2800 + ((color!="") ? 1 : 0), dttopts, 4, "uint") ;dwFlags (DTT_COMPOSITED | DTT_GLOWSIZE)
+  if (color!="")
+    NumPut(((color&0xFF0000)>>16) | (color&0xFF00) | ((color&0xFF)<<16), dttopts, 8, "uint") ;RGB to BGR
+  NumPut(glowsize, dttopts, 52, "int")
+
+
+  Aero_MultibyteToWide(Text, WideText)
+  DllCall("uxtheme\DrawThemeTextEx", "uint", hTheme, "uint", hTmpBuffer, "int", 0, "int", 0, "uint", &WideText, "int", -1, "uint", 0x40000, "uint", &rect, "uint", &dttopts)
+  Aero_AlphaBlend(hBuffer, hTmpBuffer)
+  Aero_DeleteBuffer(hTmpBuffer)
+}
+
+Aero_UseFont(hWnd, hBuffer)
+{
+  hDC := DllCall("GetDC", "uint", hWnd)
+  hFont := DllCall("GetCurrentObject", "uint", hDC, "uint", 6)
+  DllCall("SelectObject", "uint", hBuffer, "uint", hFont)
+  return 1
+}
+
+Aero_UseGuiFont(hBuffer, GuiNum="default")
+{
+  Gui, % ((GuiNum="default") ? "" : GuiNum ":") "+LastFound"
+  return Aero_UseFont(WinExist(), hBuffer)
+}
+
+IDE_DrawTransImage(hwnd,Path="")
+{
+	If(!Path)
+		Return,False
+	hDC := DllCall("GetDC", "uint", hwnd)
+	hBuffer:=Aero_CreateBuffer(hwnd)
+	hImage:=Aero_LoadImage(Path)
+	hBuffer:=Aero_DrawImage(hBuffer, hImage)
+	Aero_Blit(hDC, hBuffer)
+	Aero_DeleteImage(hImage)
+}
\ No newline at end of file
diff --git a/Calc.ahk b/Calc.ahk
new file mode 100644
index 0000000..eaa5c71
--- /dev/null
+++ b/Calc.ahk
@@ -0,0 +1,133 @@
+;got from http://www.autohotkey.com/forum/viewtopic.php?p=107547#107547
+;*********************************************************************Calculator
+
+Eval(X)
+  {
+  Global Monitor1Left
+  Global Monitor1Right
+  Global Monitor1Top
+  Global Monitor1Bottom
+  Global Monitor1Width
+  Global Monitor1Height
+  Global Monitor2Left
+  Global Monitor2Right
+  Global Monitor2Top
+  Global Monitor2Bottom
+  Global Monitor2Width
+  Global Monitor2Height
+  Global Monitor3Left
+  Global Monitor3Right
+  Global Monitor3Top
+  Global Monitor3Bottom
+  Global Monitor3Width
+  Global Monitor3Height
+  Global MonitorReal1Left
+  Global MonitorReal1Right
+  Global MonitorReal1Top
+  Global MonitorReal1Bottom
+  Global MonitorReal1Width
+  Global MonitorReal1Height
+  Global MonitorReal2Left
+  Global MonitorReal2Right
+  Global MonitorReal2Top
+  Global MonitorReal2Bottom
+  Global MonitorReal2Width
+  Global MonitorReal2Height
+  Global MonitorReal3Left
+  Global MonitorReal3Right
+  Global MonitorReal3Top
+  Global MonitorReal3Bottom
+  Global MonitorReal3Width
+  Global MonitorReal3Height
+ ; Global WindowLeft
+ ; Global WindowRight
+ ; Global WindowBottom
+ ; Global WindowTop
+ ; Global WindowWidth
+ ; Global WindowHeight
+  StringReplace,x, x, %A_Space%,, All ; remove white space 
+  StringReplace,x, x, %A_Tab%,, All 
+  StringReplace,x, x, -, #, All       ; # = subtraction 
+  StringReplace,x, x, (#, (0#, All    ; (-x -> (0-x 
+  If (Asc(x) = Asc("#")) 
+    x = 0%x%                         ; leading -x -> 0-x 
+  StringReplace x, x, (+, (, All      ; (+x -> (x 
+  If (Asc(x) = Asc("+")) 
+    StringTrimLeft x, x, 1           ; leading +x -> x
+  Loop 
+  {                                   ; replace constants 
+    StringGetPos,i, x, [             ; find [ 
+    IfLess i,0, Break 
+    StringGetPos,j, x, ], L, i+1     ; closest ] 
+    StringMid,y, x, i+2, j-i-1      ; variable in [] 
+    StringLeft,L, x, i 
+    StringTrimLeft,R, x, j+1
+    if (%Y% = "")
+      {
+      ;msgbox,error: %y%
+      return "Error"
+      }
+    x := L . %y% . R                 ; replace [var] with value of var   
+  }
+  Loop
+  {                                ;finding an innermost (..)
+  StringGetPos,i, x, (, R          ;Rightmost '('
+  IfLess i,0, Break                ;If there are no more '(', break
+  StringGetPos,j, x, ), L, i+1     ;Find the corresponding ')'
+  StringMid,y, x, i+2, j-i-1      ;Expression in '()'
+  StringLeft,L, x, i               ;Left Part of the expresion
+  StringTrimLeft,R, x, j+1         ;Right Part of the expression
+  x := L . Eval@(y) . R            ;replace (x) with value of x
+  }
+  Return Eval@(X)   
+  } 
+  
+Eval@(x) 
+  { 
+  StringGetPos,i, x, +, R             ; i = -1 if no + is found 
+  StringGetPos,j, x, #, R 
+  If (i > j) 
+    Return Left(x,i)+Right(x,i) 
+  If (j > i)                          ; i = j only if no + or - found 
+    Return Left(x,j)-Right(x,j) 
+  StringGetPos,i, x, *, R 
+  StringGetPos,j, x, /, R 
+  If (i > j)
+    Return Left(x,i)*Right(x,i) 
+  If (j > i)
+    Return Left(x,j)/Right(x,j) 
+  StringGetPos,i1, x, abs, R          ; no more operators 
+  StringGetPos,i2, x, ceil, R         ; look for functions 
+  StringGetPos,i3, x, floor, R        ; insert further functions below 
+  m := Max1(i1,i2,i3) 
+  If (m = i1)                         ; apply the rightmost function 
+    Return abs(Right(x,i1+2))        ; only one function is applied 
+  Else If (m = i2)                    ; in one recursion 
+    Return ceil(Right(x,i2+3)) 
+  Else If (m = i3) 
+    Return floor(Right(x,i3+4))      ; offset j + StrLen(func) - 2
+  Return x 
+}
+
+Left(x,i) 
+{ 
+   StringLeft,x, x, i 
+   Return Eval@(x) 
+} 
+Right(x,i) 
+{ 
+   StringTrimLeft,x, x, i+1 
+   Return Eval@(x) 
+}
+Max1(x0,x1="",x2="",x3="",x4="",x5="",x6="",x7="",x8="",x9="",x10="",x11="",x12="",x13="",x14="",x15="",x16="",x17="",x18="",x19="",x20="") 
+{ 
+   x := x0 
+   Loop 20 
+   { 
+      IfEqual   x%A_Index%,, Break 
+      IfGreater x%A_Index%, %x% 
+           x := x%A_Index% 
+   } 
+   IfLess x,0, Return -2               ; prevent match with -1 
+   Return %x% 
+}
diff --git a/Command.ahk b/Command.ahk
new file mode 100644
index 0000000..ea98458
--- /dev/null
+++ b/Command.ahk
@@ -0,0 +1,567 @@
+;GridMove
+;By jgpaiva
+;date: May 2006
+;function: Adjusts windows to a predefined or user-defined desktop grid.
+
+Command:
+  
+  GoSub, ShowGroups
+
+Drop_Command:
+  Settimer,Drop_Command,off
+  OSDwrite("- -")
+  Input,FirstNumber,I L1 T10,{esc},1,2,3,4,5,6,7,8,9,0,m,r,n,M,v,a,e
+  If ErrorLevel = Max
+    {
+    OSDwrite("| |")
+    sleep,200
+    GoSub,Command
+    }
+  If (ErrorLevel = "Timeout" OR ErrorLevel = "EndKey")
+    {
+    GoSub, Command_Hide
+    return
+    }
+  
+  If FirstNumber is not number
+    {
+    If (FirstNumber = "M")
+      {
+      winget,state,minmax,A
+      if state = 1
+        WinRestore,A
+      else
+        PostMessage, 0x112, 0xF030,,, A,
+      }
+    Else If (FirstNumber = "e")
+    {
+      GoSub, Command_Hide
+      exitapp
+      return
+    }
+    Else If (FirstNumber = "A")
+    {
+      GoSub, Command_Hide
+      gosub,AboutHelp
+      return
+    }
+    Else If (FirstNumber = "V")
+      {
+      GoSub, Command_Hide
+      msgbox,NOT DONE!!
+;      WinMove, A, ,%WinLeft%,%GridTop%, %WinWidth%,% GridBottom - GridTop,    
+;      StoreWindowState(WindowId,WinLeft,WinTop,WinWidth,WinHeight)
+      return
+      }
+    Else If (FirstNumber = "R")
+      {
+      GoSub, Command_Hide
+      Reload
+      }
+    Else If FirstNumber = n
+      {
+      gosub, NextGrid
+      gosub, command
+      return
+      }
+    GoSub, Command_Hide
+    return
+    }
+      
+  If (NGroups < FirstNumber * 10)
+    {
+    If (FirstNumber = "0")
+      {
+      GoSub, Command_Hide
+      WinMinimize,A
+      return
+      }
+    GoSub, Command_Hide
+    MoveToGrid(FirstNumber)
+    return
+    }
+
+  Command2:
+  output := FirstNumber . " -"
+  OSDwrite(Output)
+  Input,SecondNumber,I L1 T2,{esc}{enter},1,2,3,4,5,6,7,8,9,0
+  If ErrorLevel = Max
+    {
+    OSDwrite("")
+    sleep,500
+    GoSub,Command2
+    }
+
+  If(ErrorLevel = "Timeout")
+    {
+    If (FirstNumber = "0")
+      {
+      GoSub, Command_Hide
+      WinMinimize,A
+      return
+      }
+    GoSub, Command_Hide
+    MoveToGrid(FirstNumber)
+    return
+    }
+  If(ErrorLevel = "EndKey:enter")
+    {
+    If (FirstNumber = "0")
+      {
+      GoSub, Command_Hide
+      WinMinimize,A
+      return
+      }
+    GoSub, Command_Hide
+    MoveToGrid(FirstNumber)
+    return
+    }
+  If(ErrorLevel = "EndKey:esc")
+    {
+    GoSub, Command_Hide
+    return
+    }
+  
+  If firstnumber = 0
+    GridNumber := SecondNumber
+  else
+    GridNumber := FirstNumber . SecondNumber
+  GoSub, Command_Hide
+  MoveToGrid(GridNumber)
+  return    
+
+OSDCreate()
+  {
+  global OSD
+  Gui,4: +ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+  Gui,4: Font,S13
+  Gui,4: Add, Button, vOSD x0 y0 w100 h30 ,
+  Gui,4: Color, EEAAEE
+  Gui,4: Show, x0 y0 w0 h0 noactivate, OSD 
+  Gui,4: hide
+  WinSet, TransColor, EEAAEE,OSD
+  return
+  }
+
+OSDWrite(Value)
+  {
+  Global OSD
+  Global Monitor1Width
+  Global Monitor1Height
+  Global Monitor1Top
+  Global Monitor1Left
+  XPos := Monitor1Left + Monitor1Width / 2 - 50
+  YPos := Monitor1Top + Monitor1Height / 2 - 15
+  GuiControl, 4:Text, OSD, %value%
+  Gui,4: +ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+  Gui,4:Show, x%Xpos% y%Ypos% w100 h30 noactivate
+  return
+  }
+  
+OSDHide()
+  {
+  Gui,4:hide,
+  return
+  }
+
+MoveToGrid(GridToMove)
+  {
+  global
+  triggerTop := %GridToMove%TriggerTop
+  triggerBottom := %GridToMove%TriggerBottom
+  triggerRight := %GridToMove%TriggerRight
+  triggerLeft := %GridToMove%TriggerLeft
+  GridBottom :=0
+  GridRight  :=0
+  GridTop    :=0
+  GridLeft   :=0
+
+  GridTop := %GridToMove%GridTop
+  GridBottom := %GridToMove%GridBottom
+  GridRight := %GridToMove%GridRight
+  GridLeft := %GridToMove%GridLeft
+
+
+  WinGetPos, WinLeft, WinTop, WinWidth, WinHeight,A
+  WinGetClass,WinClass,A
+  WinGet,WindowId,id,A
+  WinGet,WinStyle,Style,A
+
+  if SafeMode
+    if not (WinStyle & 0x40000) ;0x40000 = WS_SIZEBOX = WS_THICKFRAME
+      {
+      Return
+      }
+
+  if (WinClass = "DV2ControlHost" OR Winclass = "Progman"
+      OR Winclass = "Shell_TrayWnd")
+    Return
+
+  If Winclass in %Exceptions%
+    Return
+
+  If (GridTop = )
+    return
+
+  If (GridLeft = "WindowWidth" AND GridRight = "WindowWidth")
+  {
+    WinGetClass,WinClass,A
+
+    if ShouldUseSizeMoveMessage(WinClass)
+      SendMessage WM_ENTERSIZEMOVE, , , ,ahk_id %windowid%
+
+    WinMove, A, ,%WinLeft%,%GridTop%, %WinWidth%,% GridBottom - GridTop,    
+
+    if ShouldUseSizeMoveMessage(WinClass)
+      SendMessage WM_EXITSIZEMOVE, , , ,ahk_id %windowid%
+    StoreWindowState(WindowId,WinLeft,WinTop,WinWidth,WinHeight)
+    return
+  }
+  If (GridTop = "WindowHeight" AND GridBottom = "WindowHeight")
+  {
+    WinGetClass,WinClass,A
+
+    if ShouldUseSizeMoveMessage(WinClass)
+      SendMessage WM_ENTERSIZEMOVE, , , ,ahk_id %windowid%
+
+    WinMove, A, ,%GridLeft%,%WinTop%, % GridRight - GridLeft,%WinHeight%,    
+
+    if ShouldUseSizeMoveMessage(WinClass)
+      SendMessage WM_EXITSIZEMOVE, , , ,ahk_id %windowid%
+    StoreWindowState(WindowId,WinLeft,WinTop,WinWidth,WinHeight)
+    return
+  }
+  If (GridTop = "AlwaysOnTop")
+  {
+    WinSet, AlwaysOnTop, Toggle,A 
+    return
+  }
+  If (GridTop =  "Maximize")
+  {
+    winget,state,minmax,A
+    if state = 1
+      WinRestore,A
+    else
+      PostMessage, 0x112, 0xF030,,, A,
+    return 
+  }
+  If (GridTop = "Run")
+  {
+    Run,%GridLeft% ,%GridRight%
+    return              
+  }
+  if (GridTop = "Restore")
+  {
+    data := GetWindowState(WindowId)
+    If data   
+      {
+      GridLeft  := WindowX
+      GridRight := WindowX + WindowWidth
+      GridTop   := WindowY
+      GridBottom:= WindowY + WindowHeight 
+      WinRestore,A
+
+      WinGetClass,WinClass,A
+
+      if ShouldUseSizeMoveMessage(WinClass)
+        SendMessage WM_ENTERSIZEMOVE, , , ,ahk_id %windowid%
+
+      WinMove, A, ,%GridLeft%,%GridTop%,% GridRight - GridLeft,% GridBottom - GridTop
+
+      if ShouldUseSizeMoveMessage(WinClass)
+        SendMessage WM_EXITSIZEMOVE, , , ,ahk_id %windowid%
+
+      StoreWindowState(WindowId,WinLeft,WinTop,WinWidth,WinHeight)
+      }
+    return
+  }
+  GridTop := round(GridTop)
+  GridLeft := round(GridLeft)
+  GridRight := round(GridRight)
+  GridBottom := round(GridBottom)
+
+  GridWidth  := GridRight - GridLeft 
+  GridHeight := GridBottom - GridTop
+
+  WinRestore,A
+
+  WinGetClass,WinClass,A
+
+  if ShouldUseSizeMoveMessage(WinClass)
+    SendMessage WM_ENTERSIZEMOVE, , , ,ahk_id %windowid%
+
+  WinMove, A, ,%GridLeft%,%GridTop%,%GridWidth%,%GridHeight%
+
+  if ShouldUseSizeMoveMessage(WinClass)
+    SendMessage WM_EXITSIZEMOVE, , , ,ahk_id %windowid%
+
+  StoreWindowState(WindowId,WinLeft,WinTop,WinWidth,WinHeight)
+  return
+  }
+
+Command_Hide:
+  critical,on
+  Gosub, Cancel
+  critical,off
+  GoSub, HideGroups
+  OSDHide()
+  return
+
+DefineHotkeys:
+  loop,9
+  {
+     Hotkey, %FastMoveModifiers%%A_Index%, WinHotkeys
+     Hotkey, %FastMoveModifiers%Numpad%A_Index%, WinHotkeys
+  }
+  Hotkey, %FastMoveModifiers%0, WinHotKey
+  Hotkey, %FastMoveModifiers%Numpad0, WinHotkeys
+  if FastMoveMeta <>
+    Hotkey, %FastMoveModifiers%%FastMoveMeta%, WinHotkeysMeta
+  return 
+
+WinHotkeys:
+  StringRight,Number,A_ThisHotkey,1
+  MoveToGrid(Number)
+  return
+  
+WinHotkeysMeta:
+  GoSub, ShowGroups
+
+  Settimer,Drop_Command,off
+  OSDwrite("- -")
+  Input,FirstNumber,I L1 T10,{esc},1,2,3,4,5,6,7,8,9,0,m,r,n,M,v,a,e
+  If ErrorLevel = Max
+    {
+    OSDwrite("| |")
+    sleep,200
+    GoSub,WinHotkeysMeta
+    }
+  If (ErrorLevel = "Timeout" OR ErrorLevel = "EndKey")
+    {
+    GoSub, Command_Hide
+    return
+    }
+  
+  If FirstNumber is not number
+    {
+    If (FirstNumber = "M")
+      {
+      winget,state,minmax,A
+      if state = 1
+        WinRestore,A
+      else
+        PostMessage, 0x112, 0xF030,,, A,
+      }
+    Else If (FirstNumber = "e")
+    {
+      GoSub, Command_Hide
+      exitapp
+      return
+    }
+    Else If (FirstNumber = "A")
+    {
+      GoSub, Command_Hide
+      gosub,AboutHelp
+      return
+    }
+    Else If (FirstNumber = "V")
+      {
+      GoSub, Command_Hide
+      msgbox,NOT DONE!!
+;      WinMove, A, ,%WinLeft%,%GridTop%, %WinWidth%,% GridBottom - GridTop,    
+;      StoreWindowState(WindowId,WinLeft,WinTop,WinWidth,WinHeight)
+      return
+      }
+    Else If (FirstNumber = "R")
+      {
+      GoSub, Command_Hide
+      Reload
+      }
+    Else If FirstNumber = n
+      {
+      gosub, NextGrid
+      gosub, command
+      return
+      }
+    GoSub, Command_Hide
+    return
+    }
+      
+  GoSub, Command_Hide
+  FirstNumber := FirstNumber + 10
+  MoveToGrid(FirstNumber)
+  return
+
+WinHotkey:
+  MoveToGrid("10")
+  return
+
+MoveToPrevious:
+  direction = back
+
+MoveToNext:
+  if direction <> back
+    direction = forward
+
+  WinGetPos,WinLeft,WinTop,WinWidth,WinHeight,A
+  current = 0
+  loop %NGroups%
+  {
+    triggerTop := %A_Index%TriggerTop
+    triggerBottom := %A_Index%TriggerBottom
+    triggerRight := %A_Index%TriggerRight
+    triggerLeft := %A_Index%TriggerLeft
+
+    GridToMove := A_index
+    GridTop := %GridToMove%GridTop
+    GridBottom := %GridToMove%GridBottom
+    GridRight := %GridToMove%GridRight
+    GridLeft := %GridToMove%GridLeft
+
+    If GridTop = WindowHeight
+      continue
+    If GridLeft = WindowWidth
+      continue
+    If GridTop = AlwaysOnTop
+      continue
+    If GridTop = Maximize
+      continue
+    If GridTop = Run
+      continue
+    If GridTop = Restore
+      continue
+
+    GridTop := round(GridTop)
+    GridBottom := round(GridBottom)
+    GridRight := round(GridRight)
+    GridLeft := round(GridLeft)
+
+    GridHeight := GridBottom - GridTop
+    GridWidth := GridRight - GridLeft
+
+    if (WinTop = GridTop && WinLeft = GridLeft 
+      && WinHeight = GridHeight && WinWidth = GridWidth)
+    {
+      current := a_index
+      break
+    }
+    ;msgbox,% GridTop GridBottom Grid
+  }
+  if (current = 0 AND direction = "back")
+    current := ngroups + 1
+
+  if direction = forward
+  {
+    loop %NGroups%
+    {
+      if (a_index <= current)
+        continue
+
+      GridToMove := A_index
+      GridTop := %GridToMove%GridTop
+      GridBottom := %GridToMove%GridBottom
+      GridRight := %GridToMove%GridRight
+      GridLeft := %GridToMove%GridLeft
+
+      If GridTop = WindowHeight
+        continue
+      If GridLeft = WindowWidth
+        continue
+      If GridTop = AlwaysOnTop
+        continue
+      If GridTop = Maximize
+        continue
+      If GridTop = Run
+        continue
+      If GridTop = Restore
+        continue
+
+      MoveToGrid(A_Index)
+      direction =
+      return
+    }
+    loop %NGroups%
+    {
+      GridToMove := A_index
+      GridTop := %GridToMove%GridTop
+      GridBottom := %GridToMove%GridBottom
+      GridRight := %GridToMove%GridRight
+      GridLeft := %GridToMove%GridLeft
+
+      If GridTop = WindowHeight
+        continue
+      If GridLeft = WindowWidth
+        continue
+      If GridTop = AlwaysOnTop
+        continue
+      If GridTop = Maximize
+        continue
+      If GridTop = Run
+        continue
+      If GridTop = Restore
+        continue
+
+      MoveToGrid(A_Index)
+      direction =
+      return
+    }
+  }
+
+  if direction = back
+  {
+    loop %NGroups%
+    {
+      if (Ngroups - a_index + 1 >= current)
+        continue
+
+      GridToMove := NGroups - A_index + 1
+      GridTop := %GridToMove%GridTop
+      GridBottom := %GridToMove%GridBottom
+      GridRight := %GridToMove%GridRight
+      GridLeft := %GridToMove%GridLeft
+
+      If GridTop = WindowHeight
+        continue
+      If GridLeft = WindowWidth
+        continue
+      If GridTop = AlwaysOnTop
+        continue
+      If GridTop = Maximize
+        continue
+      If GridTop = Run
+        continue
+      If GridTop = Restore
+        continue
+
+      MoveToGrid(Ngroups - A_Index + 1)
+      direction =
+      return
+    }
+    loop %NGroups%
+    {
+      GridToMove := NGroups - A_index + 1
+      GridTop := %GridToMove%GridTop
+      GridBottom := %GridToMove%GridBottom
+      GridRight := %GridToMove%GridRight
+      GridLeft := %GridToMove%GridLeft
+
+      If GridTop = WindowHeight
+        continue
+      If GridLeft = WindowWidth
+        continue
+      If GridTop = AlwaysOnTop
+        continue
+      If GridTop = Maximize
+        continue
+      If GridTop = Run
+        continue
+      If GridTop = Restore
+        continue
+
+      MoveToGrid(Ngroups - A_Index + 1)
+      direction =
+      return
+    }
+  }
+  direction =
+  return
diff --git a/Documents/EULA.txt b/Documents/EULA.txt
new file mode 100644
index 0000000..1e96bfd
--- /dev/null
+++ b/Documents/EULA.txt
@@ -0,0 +1,29 @@
+END USER LICENSE AGREEMENT
+Software License Agreement for GridMove
+
+IMPORTANT- PLEASE READ CAREFULLY: BY INSTALLING THE SOFTWARE (AS DEFINED BELOW), COPYING THE SOFTWARE AND/OR CLICKING ON THE 'ACCEPT' BUTTON BELOW, YOU (EITHER ON BEHALF OF YOURSELF AS AN INDIVIDUAL OR ON BEHALF OF AN ENTITY AS ITS AUTHORIZED REPRESENTATIVE) AGREE TO ALL OF THE TERMS OF THIS END USER LICENSE AGREEMENT ('AGREEMENT') REGARDING YOUR USE OF THE SOFTWARE.  IF YOU DO NOT AGREE WITH ALL OF THE TERMS OF THIS AGREEMENT, CLICK ON THE 'NO' BUTTON. THIS WILL CANCEL THE INSTALLATION.
+
+1. GRANT OF LICENSE: Subject to the terms below, DonationCoder hereby grants you a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. For more details on this license, see the included License.txt file.
+
+2. DISCLAIMER OF WARRANTY: 
+YOU AGREE THAT DonationCoder HAS MADE NO EXPRESS WARRANTIES, ORAL OR WRITTEN, TO YOU REGARDING THE PRODUCTS AND THAT THE PRODUCTS ARE BEING PROVIDED TO YOU 'AS IS' WITHOUT WARRANTY OF ANY KIND.  DonationCoder DISCLAIMS ANY AND ALL OTHER WARRANTIES, WHETHER EXPRESSED, IMPLIED, OR STATUTORY. YOUR RIGHTS MAY VARY DEPENDING ON THE STATE IN WHICH YOU LIVE.
+ DonationCoder SHALL NOT BE LIABLE FOR INDIRECT, INCIDENTAL, SPECIAL, COVER, RELIANCE, OR CONSEQUENTIAL DAMAGES RESULTING FROM THE USE OF THIS PRODUCT.
+
+3. LIMITATION OF LIABILITY: You use this program solely at your own risk.
+IN NO EVENT SHALL DonationCoder BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING BUT NOT LIMITED TO ANY LOSS, OR OTHER INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND ARISING OUT OF THE USE OF THE SOFTWARE, EVEN IF DonationCoder HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. IN NO EVENT WILL DonationCoder BE LIABLE FOR ANY CLAIM, WHETHER IN CONTRACT, TORT, OR ANY OTHER THEORY OF LIABILITY, EXCEED THE COST OF THE SOFTWARE. THIS LIMITATION SHALL APPLY TO CLAIMS OF PERSONAL INJURY TO THE EXTENT PERMITTED BY LAW. 
+
+4. TERMINATION: This Agreement shall terminate automatically if you fail to comply with the limitations described in this Agreement. No notice shall be required to effectuate such termination. Upon termination, you must remove and destroy all copies of the Software. 
+
+5. MISCELLANEOUS:
+
+Severability.
+In the event of invalidity of any provision of this Agreement, the parties agree that such invalidity shall not affect the validity of the remaining portions of this Agreement.
+Export.
+You agree that you will not export or re-export the Software outside of the jurisdiction in which you obtained it without the appropriate United States or foreign government licenses.
+Governing Law.  
+This Agreement will be governed by the laws of the State of Finland as they are applied to agreements between Finland residents entered into and to be performed entirely within Finland. The United Nations Convention on Contracts for the International Sale of Goods is specifically disclaimed.
+Entire Agreement.  
+You agree that this is the entire agreement between you and DonationCoder, which supersedes any prior agreement, whether written or oral, and all other communications between DonationCoder and you relating to the subject matter of this Agreement. 
+Reservation of rights.  
+
+All rights not expressly granted in this Agreement are reserved by DonationCoder.
diff --git a/Documents/License.txt b/Documents/License.txt
new file mode 100644
index 0000000..7380473
--- /dev/null
+++ b/Documents/License.txt
@@ -0,0 +1 @@
+This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/us/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
diff --git a/GridMove.ahk b/GridMove.ahk
new file mode 100644
index 0000000..8c31fbb
--- /dev/null
+++ b/GridMove.ahk
@@ -0,0 +1,1592 @@
+;GridMove
+;By jgpaiva
+;date: May 2006
+;function: Adjusts windows to a predefined or user-defined desktop grid.
+
+  ;;options:
+  MButtonDrag := True ;to be able to drag a window using the 3rd mouse button
+  LButtonDrag:=True ;to be able to drag a window by its title
+  EdgeDrag := True ;to be able to bring the grid up when dragging a window to the edge
+  EdgeTime := 500
+  ShowGroupsFlag := True ;configures the showing or not of the groups
+  ShowNumbersFlag := True ;configures the showing or not of the numbers
+  TitleSize := 100
+  GridName = Grids/3-part.grid
+  GridOrder = 2 Part-Vertical,3-Part,EdgeGrid,Dual-Screen
+  UseCommand := True
+  CommandHotkey = #g
+  UseFastMove := True
+  FastMoveModifiers = #
+  Exceptions = QuarkXPress,Winamp v1.x,Winamp PE,Winamp Gen,Winamp EQ,Shell_TrayWnd,32768,Progman,DV2ControlHost
+  MButtonExceptions = inkscape.exe 
+  MButtonTimeout = 0.3
+  Transparency = 200
+  SafeMode := True
+  FastMoveMeta =
+  SequentialMove := False
+  DebugMode := False
+  StartWithWindows := False
+  DisableTitleButtonsDetection := False
+  ColorTheme=orange
+  Language=EN
+  NoTrayIcon:=False
+  FirstRun:=True
+
+  ;Registered=quebec
+
+  ;;end of options
+
+  ScriptVersion = 1.19.72
+
+  MutexExists("GridMove_XB032")
+
+
+  Sysget, CaptionSize,4  ;get the size of the caption
+  Sysget, BorderSize, 46 ;get the size of the border
+  CaptionSize += BorderSize
+
+  TitleLeft := CaptionSize
+
+  if DebugMode
+    Traytip,GridMove,Reading INI,10
+
+  ;goSub, showOptions
+    
+  
+  GetScreenSize()       ;get the size of the monitors
+  GetMonitorSizes()
+  RectangleSize := 1
+  ComputeEdgeRectangles()
+  OSDcreate()
+  GoSub,setlanguage
+  GoSub, ReadIni
+
+  AeroEnabled := loadAero()
+  GoSub,setlanguage
+
+  SetWinDelay, 0
+  SetBatchLines, -1
+
+  If 0 = 1
+    GridName = %1%
+
+  createTrayMenus()
+
+  if DebugMode
+    Traytip,GridMove,Reading the grid file,10
+
+  GoSub, ApplyGrid
+
+  Mutex := False
+  GroupsShowing := False
+  EdgeFlag := True
+  MousePositionLock := False
+  WM_ENTERSIZEMOVE = 0x231 
+  WM_EXITSIZEMOVE = 0x232
+
+
+  WindowY =
+  WindowX =
+  WindowWidth =
+  WindowHeight=
+  WindowXBuffer = 
+  WindowYBuffer = 
+
+  ;if DebugMode
+  ;  Traytip,GridMove,Creating the grid,10
+
+  ;GoSub,createGroups NOT NEEDED, GRID IS CREATED IN "APPLY GRID"
+
+  if DebugMode
+    Traytip,GridMove,Registering Hotkeys...,10
+
+  ;hotkey definitions:
+  If UseCommand
+    Hotkey, %CommandHotkey%, Command
+
+  If MButtonDrag
+    Hotkey, MButton, MButtonMove
+
+  If UseFastMove
+    GoSub,DefineHotkeys
+
+  if SequentialMove
+  {
+    Hotkey, %FastMoveModifiers%Right,MoveToNext
+    Hotkey, %FastMoveModifiers%Left,MoveToPrevious
+  }
+
+  MPFlag := True 
+  Settimer, MousePosition, 100
+  ;Settimer, ReloadOnResolutionChange, 1000
+
+  HotKey,RButton,NextGrid
+  HotKey,RButton,off
+  HotKey,Esc,cancel
+  HotKey,Esc,off
+  HotKey,F12,AddCurrentToIgnore
+  HotKey,F11,AddCurrentToIgnoreCancel
+  HotKey,F12,off
+  HotKey,F11,off
+
+#maxthreadsperhotkey,1
+#singleinstance,force
+#InstallMouseHook 
+#InstallKeybdHook
+#noenv
+
+;  GoSub,TitleButtonInitialization
+
+  if DebugMode
+    Traytip,GridMove,Start process completed,10
+
+
+  SetBatchLines, 20ms
+return
+
+
+MutexExists(name) {
+    mutex := DllCall("CreateMutex", "UInt", 0, "UInt", 0, "str", name)
+    last_error := A_LastError
+;    DllCall("CloseHandle", "uint", mutex)
+    return last_error == 183 ; ERROR_ALREADY_EXISTS
+}
+
+
+;*******************Init
+createTrayMenus()
+{
+  global
+
+  if DebugMode
+    Traytip,GridMove,Creating the templates menu,10
+
+  ;;tray menu:
+  Menu,Tray, Add, %tray_help%, AboutHelp
+  Menu,Tray, Default, %tray_help%
+  Menu,Tray, Tip, GridMove V%ScriptVersion%
+  Menu,Tray, Add, %tray_updates%, EnableAutoUpdate
+  Menu,Tray, Add, %tray_ignore%, AddToIgnore
+  
+  if(Registered<>"quebec")
+    Menu,Tray, Add, %tray_windows%, StartWithWindowsToggle
+
+  if(Registered<>"quebec")
+    if(startWithWindowsQ())
+      Menu,Tray,Check, %tray_windows%
+    else
+      Menu,Tray,UnCheck, %tray_windows%
+ 
+  createTemplatesMenu()
+  Menu,Tray, Add, %tray_templates%, :templates_menu
+  If(NoTrayIcon){
+    msgbox,here
+    menu, tray, NoIcon
+  }else{
+    IfExist %A_ScriptDir%\Images\gridmove.ico  
+      Menu,Tray, Icon,%A_ScriptDir%\Images\gridmove.ico
+  }
+  Menu,Tray, NoStandard
+
+  if DebugMode
+    Traytip,GridMove,Creating the options tray menu,10
+
+  createOptionsMenu()
+  Menu,Tray, Add,%tray_options%, :options_menu
+  createColorsMenu()
+  Menu,Tray, Add, %tray_colors%, :colors_menu
+  createHotkeysMenu()
+  Menu,Tray, Add, %tray_hotkeys%, :hotkeys_menu
+  Menu,Tray, Add, %tray_restart%, ReloadProgram
+  Menu,Tray, Add, %tray_exit%, ExitProgram
+}
+
+createTemplatesMenu()
+{
+  global GridName
+  global tray_refresh
+  Loop,%A_ScriptDir%\Grids\*.grid
+  {
+    StringTrimRight,out_GridName2,A_LoopFileName,5
+    Menu,templates_menu, add, %out_GridName2%,Template-Grids
+  }
+  Menu,templates_menu,add,,
+  Menu,templates_menu, add,%tray_refresh%, RefreshTemplates
+    
+  stringgetpos,out_pos,gridname,\,R1
+  if out_pos <= 0
+    stringgetpos,out_pos,gridname,/,R1
+  if out_pos <= 0
+    return
+  stringlen, len, gridname
+  StringRight,out_GridName,gridname,% len - out_pos -1 
+  StringTrimRight,out_GridName2,out_GridName,5
+  IfExist %A_ScriptDir%\Grids\%out_GridName2%.grid
+    menu,templates_menu,check,%out_GridName2%
+}
+
+createOptionsMenu()
+{
+  global
+  Menu,options_menu, add, %tray_safemode%, Options_SafeMode
+  Menu,options_menu, add, %tray_showgrid%, Options_ShowGrid
+  Menu,options_menu, add, %tray_shownumbers%, Options_ShowNumbers
+  Menu,options_menu, add, %tray_lbuttondrag%, Options_LButtonDrag
+  Menu,options_menu, add, %tray_mbuttondrag%, Options_MButtonDrag
+  Menu,options_menu, add, %tray_edgedrag%, Options_EdgeDrag
+  Menu,options_menu, add, %tray_edgetime%, Options_EdgeTime
+  Menu,options_menu, add, %tray_titlesize%, Options_TitleSize
+  Menu,options_menu, add, %tray_gridorder%, Options_GridOrder
+  If LButtonDrag
+    Menu,options_menu,check, %tray_lbuttondrag%
+  else
+    Menu,options_menu,Disable, %tray_titlesize%
+  If MButtonDrag
+    Menu,options_menu,check, %tray_mbuttondrag%
+  If EdgeDrag
+    Menu,options_menu,check, %tray_edgedrag%
+  else
+    Menu,options_menu,Disable, %tray_edgetime%
+  If ShowGroupsFlag
+    Menu,options_menu, Check, %tray_showgrid%
+  If ShowNumbersFlag
+    Menu,options_menu, Check, %tray_shownumbers%
+  If SafeMode
+    Menu,options_menu, Check, %tray_safemode%
+}
+
+createColorsMenu()
+{
+  global tray_color_orange
+  global tray_color_blue
+  global tray_color_black
+  global colortheme
+
+  Menu,colors_menu, add, %tray_color_orange%, setColorTheme
+  Menu,colors_menu, add, %tray_color_blue%, setColorTheme
+  Menu,colors_menu, add, %tray_color_black%, setColorTheme
+
+  if(colortheme="orange")
+    Menu,colors_menu,check, %tray_color_orange%
+  if(colortheme="blue")
+    Menu,colors_menu,check, %tray_color_blue%
+  if(colortheme="black")
+    Menu,colors_menu,check, %tray_color_black%
+}
+
+setColorTheme:
+  if(A_ThisMenuItem=tray_color_orange)
+    colorTheme=orange
+  if(A_ThisMenuItem=tray_color_blue)
+    colorTheme=blue
+  if(A_ThisMenuItem=tray_color_black)
+    colorTheme=black
+
+  gosub, writeini
+  reload
+  return
+
+createHotkeysMenu()
+{
+  global
+  Menu,hotkeys_menu, add, %tray_usecommand%, Hotkeys_UseCommand 
+  Menu,hotkeys_menu, add, %tray_commandhotkey%, Hotkeys_CommandHotkey
+  Menu,hotkeys_menu, add, %tray_fastmove%, Hotkeys_UseFastMove
+  Menu,hotkeys_menu, add, %tray_fastmovemodifiers%, Hotkeys_FastMoveModifiers
+  If UseCommand
+    Menu,hotkeys_menu,check, %tray_usecommand%
+  else
+    Menu,hotkeys_menu,Disable, %tray_commandhotkey%,
+  If UseFastMove
+    Menu,hotkeys_menu,check, %tray_fastmove%
+  else
+    Menu,hotkeys_menu,Disable, %tray_fastmovemodifiers%
+}
+
+startWithWindowsQ()
+{
+  loop,%A_startup%\*.lnk
+  {
+    if (A_LoopFileName = "GridMove.lnk")
+    {
+      return true
+    }
+  }
+  return false
+}
+
+;*******************Drop Zone Mode 
+
+DropZoneMode:  
+  DropZoneModeFlag := true
+  gosub,showgroups
+  Hotkey,RButton,on
+  Hotkey,Esc,on
+  Canceled := False
+  CoordMode,Mouse,Screen
+  hideGui2()
+  loop
+  {
+    If Canceled
+      {
+      Critical, on
+      Gui,2:Hide
+      Hotkey,RButton,off
+      Hotkey,Esc,off
+      DropZoneModeFlag := false
+      Critical, off
+      return      
+      }  
+  
+    GetKeyState,State,%hotkey%,P
+    If State = U
+        break
+    
+    MouseGetPos, MouseX, MouseY, window,
+    flagLButton:=true
+    Critical, on
+    SetBatchLines, 10ms
+    loop,%NGroups%
+    {
+      TriggerTop    := %A_Index%TriggerTop
+      TriggerBottom := %A_Index%TriggerBottom
+      TriggerRight  := %A_Index%TriggerRight
+      TriggerLeft   := %A_Index%TriggerLeft
+
+      If (MouseY >= TriggerTop AND MouseY <= TriggerBottom 
+          AND MouseX <= TriggerRight AND MouseX >= TriggerLeft)
+      {
+        GetGrid(A_Index)
+
+        If (GridTop = "AlwaysOnTop" OR GridTop = "Run")
+        {
+          GridTop := TriggerTop
+          GridLeft := TriggerLeft
+          GridWidth := TriggerRight - TriggerLeft
+          GridHeight := TriggerBottom - TriggerTop
+        }
+        If (GridTop = "Maximize")
+        {
+          GridTop := GetMonitorTop(MouseX,MouseY)
+          GridLeft := GetMonitorLeft(MouseX,MouseY)
+          GridWidth := GetMonitorRight(MouseX,MouseY) - GetMonitorLeft(MouseX,MouseY)
+          GridHeight := GetMonitorBottom(MouseX,MouseY) - GetMonitorTop(MouseX,MouseY)
+        }         
+
+        If not canceled
+        {
+          if(!AeroEnabled)
+            WinMove,ahk_id %gui2hwnd%, ,%GridLeft%,%GridTop%,%GridWidth%,%GridHeight%
+          else
+          {
+            left:=GridLeft + 3
+            top:=GridTop + 3
+            width:=GridWidth - 6
+            height:=GridHeight - 6
+            WinMove,ahk_id %gui2hwnd%, ,%Left%,%Top%,%Width%,%Height%
+          }
+        }
+        flagLButton:=false
+        break
+      }
+    }
+    Critical, off
+    if flagLButton
+      hideGui2()
+  }   
+  DropZoneModeFlag := false 
+  Gui,2:Hide
+  Hotkey,RButton,off
+  Hotkey,Esc,off
+  GoSub,SnapWindow
+  Gosub,hidegroups
+return
+
+hideGui2()
+{
+  global AeroEnabled
+  if(!AeroEnabled)
+    Gui,2: +ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+  else
+    Gui,2: +ToolWindow +AlwaysOnTop -Disabled -SysMenu
+  Gui,2: Show, x-10000 y-10000 w0 h0 NoActivate,% A_SPACE
+}
+  
+cancel:
+  if not canceled
+  {
+    canceled := True 
+    GoSub, HideGroups
+    Gui,2:Hide
+  }
+return
+  
+;*******************Mbutton method
+
+MButtonMove:
+  CoordMode,Mouse,Screen
+  MouseGetPos, OldMouseX, OldMouseY, Window,
+  WinGetTitle,WinTitle,ahk_id %Window%
+  WinGetClass,WinClass,ahk_id %Window%
+  WinGetPos,WinLeft,WinTop,WinWidth,WinHeight,ahk_id%Window%
+  WinGet,WinStyle,Style,ahk_id %Window%
+  WinGet,WindowId,Id,ahk_id %Window%
+  WinGet, WindowProcess , ProcessName, ahk_id %Window%
+
+  if SafeMode
+  {
+    if not (WinStyle & 0x40000) ;0x40000 = WS_SIZEBOX = WS_THICKFRAME
+    {
+      sendinput,{MButton down}
+      Keywait,mbutton
+      sendinput,{MButton up}
+      Return
+    }
+  }
+  If Winclass in %Exceptions%
+  {
+    sendinput,{MButton down}
+    Keywait,mbutton
+    sendinput,{MButton up}
+    Return
+  }
+  If WindowProcess in %MButtonExceptions%
+  {
+    sendinput,{MButton down}
+    Keywait,mbutton
+    sendinput,{MButton up}
+    Return
+  }
+  KeyWait,MButton,T%MButtonTimeOut%
+  if errorlevel = 0
+  {
+    sendinput,{MButton}
+    return
+  }
+
+  Winactivate, ahk_id %window%
+  Hotkey = MButton
+  GoSub, DropZoneMode
+  return
+
+;**********************edge/lbutton method
+
+MousePosition:
+  Settimer, MousePosition,off
+
+  if MousePositionLock
+    return
+
+  KeyWait, LButton,U
+  KeyWait, LButton,D 
+
+  SetBatchLines, -1
+
+  CoordMode,Mouse,Relative
+  MouseGetPos,OldMouseX,OldMouseY,MouseWin, MouseControl
+  WinGetTitle,Wintitle,ahk_id %mousewin%
+  WinGetClass,WinClass,ahk_id %mousewin%
+  WinGetPos,WinLeft,WinTop,WinWidth,WinHeight,ahk_id%MouseWin%
+  WinGet,WinStyle,Style,ahk_id %mousewin%
+  WinGet,WindowId,Id,ahk_id %mousewin%
+  
+  If Winclass in %Exceptions%
+  {
+    Settimer, MousePosition,10
+    Return
+  }
+
+  if SafeMode
+    if not (WinStyle & 0x40000) ;0x40000 = WS_SIZEBOX = WS_THICKFRAME
+    {
+      Settimer, MousePosition,10
+      Return
+    }
+
+  If (OldMouseY > CaptionSize OR OldMouseY <= BorderSize + 1 OR WinTitle = "" )
+  {
+    Settimer, MousePosition,10
+    return
+  }
+
+  if(WinWidth > 3 * TitleSize)
+  {
+    If (TitleSize < WinWidth - 100 AND LButtonDrag
+        AND OldmouseX > TitleLeft AND OldMouseX < TitleSize
+  AND (MouseControl = "" OR DisableTitleButtonsDetection))
+    {
+      Hotkey = LButton
+      sendinput {LButton up} 
+      GoSub,DropZoneMode
+      Settimer, MousePosition,10
+      return
+    }
+  } 
+  else 
+  {
+    If (LButtonDrag AND OldmouseX > TitleLeft 
+        AND OldMouseX < TitleLeft + 20 AND WinWidth > 170
+        AND (MouseControl = "" OR  DisableTitleButtonsDetection))
+    {
+      Hotkey = LButton
+      sendinput {LButton up} 
+      GoSub,DropZoneMode
+      Settimer, MousePosition,10
+      return
+    }
+  }
+
+  if not EdgeDrag
+  {
+    settimer, MousePosition,10
+    return
+  }
+
+  SetBatchLines, 10ms
+
+  CoordMode,Mouse,Screen
+  EdgeFlag := true
+  SetTimer, EdgeMove, Off
+  loop
+  {
+    MouseGetPos, MouseX, MouseY
+
+    GetKeyState, State, LButton, P
+    If (state = "U" or MousePositionLock)
+    {
+      SetTimer, EdgeMove, Off
+      Settimer, MousePosition,10
+      return
+    }
+
+    EdgeFlagFound := false
+    loop,%RectangleCount%
+    {
+      if(mouseX >= EdgeRectangleXL%A_Index% && mouseX <= EdgeRectangleXR%A_Index% 
+          && mouseY >= EdgeRectangleYT%A_Index% && mouseY <= EdgeRectangleYB%A_Index%)
+      {
+        EdgeFlagFound := true
+        break
+      }
+    }
+
+    if EdgeFlagFound
+    {
+      if EdgeFlag
+      {
+        settimer, EdgeMove, %EdgeTime%
+        EdgeFlag := False
+      }
+    }
+    else
+    {
+      SetTimer, EdgeMove, Off
+      EdgeFlag := True
+    }
+
+    sleep,100
+    ;eternal loop
+  }
+return
+
+edgemove:
+  SetTimer, EdgeMove, Off
+  HotKey = LButton
+  sendinput, {LButton up}
+  MousePositionLock := true
+  SetBatchLines, -1
+  GoSub,DropZoneMode
+  MousePositionLock := false
+  EdgeFlag := True
+  Settimer, MousePosition,10
+return
+
+;**********************Snap Window to Grid
+
+SnapWindow:
+  sendinput, {LButton up}
+  CoordMode,Mouse,Screen
+  Moved := False
+  loop %NGroups%
+  {
+    triggerTop    := %A_Index%TriggerTop
+    triggerBottom := %A_Index%TriggerBottom
+    triggerRight  := %A_Index%TriggerRight
+    triggerLeft   := %A_Index%TriggerLeft
+
+    GridBottom :=0
+    GridRight  :=0
+    GridTop    :=0
+    GridLeft   :=0
+
+    
+    If (MouseY >= triggerTop AND MouseY <= triggerBottom
+        AND MouseX <= triggerRight AND MouseX >= triggerLeft)
+    {
+      GetGrid(A_Index)
+
+      If GridTop = AlwaysOnTop
+      {
+        WinSet, AlwaysOnTop, Toggle,A 
+        return
+      }
+      If GridTop = Maximize
+      {
+        winget,state,minmax,A
+        if state = 1
+          WinRestore,A
+        else
+          PostMessage, 0x112, 0xF030,,, A,
+        return 
+      }
+      If GridTop = Run
+      {
+        Run,%GridLeft% ,%GridRight%
+        return              
+      }
+
+      WinRestore,A
+      Moved := True
+
+      if ShouldUseSizeMoveMessage(WinClass)
+        SendMessage WM_ENTERSIZEMOVE, , , ,ahk_id %windowid%
+
+      WinMove, ahk_id %windowid%, ,%GridLeft%,%GridTop%,%GridWidth%,%GridHeight%,
+
+      if ShouldUseSizeMoveMessage(WinClass)
+        SendMessage WM_EXITSIZEMOVE, , , ,ahk_id %windowid%
+      break
+    }  
+  }
+  If Moved
+    StoreWindowState(WindowID,WinLeft,WinTop,WinWidth,WinHeight)
+  gosub, hidegroups
+return
+
+GetGrid(number)
+{
+  global
+  
+  MouseGetPos, MouseX, MouseY, window,
+  
+  GridTop := %number%GridTop
+  GridBottom := %number%GridBottom
+  GridRight := %number%GridRight
+  GridLeft := %number%GridLeft
+
+  TriggerTop := %number%TriggerTop
+  TriggerBottom := %number%TriggerBottom
+  TriggerRight := %number%TriggerRight
+  TriggerLeft := %number%TriggerLeft
+
+  if GridTop in run,maximize,AlwaysOnTop
+    return
+  If GridTop = WindowHeight
+  {
+    MonitorBottom := GetMonitorBottom(MouseX, MouseY)
+    MonitorTop := GetMonitorTop(MouseX, MouseY)
+    GridTop := MouseY - 0.5 * WinHeight
+    If (GridTop + WinHeight > MonitorBottom)
+      GridTop := MonitorBottom - WinHeight
+    If (GridTop < MonitorTop)
+      GridTop := MonitorTop
+    GridBottom := GridTop + WinHeight
+  }
+    
+  If GridLeft = WindowWidth
+  {
+    MonitorRight := GetMonitorRight(MouseX, MouseY)
+    MonitorLeft := GetMonitorLeft(MouseX, MouseY)
+    GridLeft := MouseX - 0.5 * WinWidth
+    If (GridLeft + WinWidth > MonitorRight)
+      GridLeft := MonitorRight - WinWidth
+    If (GridLeft < MonitorLeft)
+      GridLeft := MonitorLeft
+    GridRight := GridLeft + WinWidth       
+  } 
+
+  If GridTop = restore
+  {
+    data := GetWindowState(WindowID)
+    If data   
+    { 
+      GridLeft   := WindowX
+      GridRight  := WindowX + WindowWidth
+      GridTop    := WindowY
+      GridBottom := WindowY + WindowHeight 
+    }
+    else
+    {
+      GridLeft   := WinLeft
+      GridRight  := WinLeft + WinWidth
+      GridTop    := WinTop
+      GridBottom := WinTop + WinHeight 
+    }
+  }
+
+  if (GridTop = "Current")
+    GridTop := WinTop
+  else
+    GridTop := round(GridTop)
+
+  if (GridLeft = "Current")
+    GridLeft := WinLeft
+  else
+    GridLeft := round(GridLeft)
+
+  if (GridRight = "Current")
+    GridRight := WinLeft + WinWidth
+  else
+    GridRight := round(GridRight)
+
+  if(GridBottom = "Current")
+    GridBottom := WinTop + WinHeight
+  else
+    GridBottom := round(GridBottom)
+
+  GridWidth  := GridRight - GridLeft 
+  GridHeight := GridBottom - GridTop
+}
+
+
+;*************************************************************************Groups
+
+showgroups:
+  if not ShowGroupsFlag
+    return
+  Gui,+ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+  WinSet, AlwaysOnTop, On,ahk_id %GuiId%
+  Gui,Show, X%ScreenLeft% Y%ScreenTop% W%ScreenWidth% H%ScreenHeight% noactivate,GridMove Drop Zone
+  ;sleep,100
+  GroupsShowing := True
+  return
+
+Hidegroups:
+  Gui,hide
+  return
+
+setGuiColors()
+{
+  global shadowcolor
+  global textcolor
+  global guicolor
+  global colortheme
+  global horizontalGrid
+  global verticalGrid
+  if(colortheme="blue")
+  {
+    Gui, Font, s15 cBlue, Tahoma
+    shadowcolor=555555
+    textcolor=0000FF
+    guicolor=0000EF
+    horizontalGrid=Gridh_blue.bmp
+    verticalGrid=Gridv_blue.bmp
+  }else if(colortheme="black")
+  {
+    Gui, Font, s15 cBlack, Tahoma
+    shadowcolor=333333
+    textcolor=000000
+    guicolor=333333
+    horizontalGrid=Gridh_black.bmp
+    verticalGrid=Gridv_black.bmp
+  }else{
+    Gui, Font, s15 cRed, Tahoma
+    shadowcolor=000000
+    textcolor=FFD300
+    guicolor=EEAA99
+    horizontalGrid=Gridh_orange.bmp
+    verticalGrid=Gridv_orange.bmp
+  }
+}
+
+creategroups:
+  gui,destroy
+  setGuiColors()
+  loop,%NGroups%
+  {
+    TriggerTop    := %A_Index%TriggerTop - ScreenTop
+    TriggerBottom := %A_Index%TriggerBottom - ScreenTop
+    TriggerLeft   := %A_Index%TriggerLeft - ScreenLeft
+    TriggerRight  := %A_Index%TriggerRight - ScreenLeft
+    TriggerHeight := TriggerBottom - TriggerTop 
+    TriggerWidth  := TriggerRight - TriggerLeft
+    GridTop       := %A_Index%GridTop
+    GridLeft      := %A_Index%GridLeft
+    
+    TextTop := %A_Index%TriggerTop - ScreenTop
+    TextTop += Round((%A_Index%TriggerBottom - %A_Index%TriggerTop) / 2 )- 11
+    TextLeft := %A_Index%TriggerLeft - ScreenLeft
+    TextLeft += Round((%A_Index%TriggerRight - %A_Index%TriggerLeft) / 2) - 5
+    RestoreLeft := TextLeft - 50
+    tempTop := triggerTop - 1
+    tempBottom := triggerBottom - 1
+    tempLeft := triggerLeft - 1
+    tempRight := triggerRight - 1
+    tempHeight := tempBottom - tempTop +2
+    tempWidth  := tempRight - tempLeft +2
+    Gui, add, Picture, Y%tempTop%    X%tempLeft% W%tempWidth% H3 ,%A_ScriptDir%\Images\%horizontalGrid%
+    Gui, add, Picture, Y%tempBottom% X%tempLeft% W%tempWidth% H3 ,%A_ScriptDir%\Images\%horizontalGrid%
+    Gui, add, Picture, Y%tempTop% X%tempLeft%  W3 H%tempHeight% ,%A_ScriptDir%\Images\%verticalGrid%
+    Gui, add, Picture, Y%tempTop% X%tempRight% W3 H%tempHeight% ,%A_ScriptDir%\Images\%verticalGrid%
+    
+    shadowleft := textleft + 1
+    shadowtop := texttop + 1
+    
+    If ShowNumbersFlag
+      If GridTop is number
+        If GridLeft is number
+          If A_Index < 10 
+          {
+            Gui, add, text, BackGroundTrans c%shadowcolor% X%ShadowLeft% Y%ShadowTop% ,%A_Index%
+            Gui, add, text, BackGroundTrans c%textcolor% X%TextLeft% Y%TextTop% ,%A_Index%
+          }
+          else
+          {
+            Gui, add, text,% "X" ShadowLeft - 6 " Y" ShadowTop "c"shadowcolor  "BackGroundTrans" ,%A_Index%
+            Gui, add, text,% "X" TextLeft - 6 " Y" TextTop "c"textcolor "BackGroundTrans" ,%A_Index%
+          }
+
+
+    RestoreLeftShadow := RestoreLeft + 1
+    RestoreUndo := RestoreLeft + 20
+    RestoreUndoShadow := RestoreUndo + 1
+
+    If ShowNumbersFlag
+    {
+      If (GridTop = "WindowHeight" OR GridLeft = "WindowWidth")
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%ShadowLeft% Y%ShadowTop% ,%A_Index%
+        Gui, add, text,c%textcolor% BackGroundTrans  X%TextLeft% Y%TextTop% ,%A_Index%
+      }
+      If Gridtop = Restore
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreUndoShadow% Y%ShadowTop% ,%A_Index%-Undo
+        Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreUndo% Y%TextTop% ,%A_Index%-Undo
+      }
+      If GridTop = Maximize 
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,%A_Index%-Maximize
+        Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,%A_Index%-Maximize
+      }
+      If GridTop = AlwaysOnTop
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,%A_Index%-On Top
+        Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,%A_Index%-On Top
+      }
+    }
+    else
+    {
+      If Gridtop = Restore
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreUndoShadow% Y%ShadowTop% ,Undo
+        Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreUndo% Y%TextTop% ,Undo
+      }
+      If GridTop = Maximize 
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,Maximize
+        Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,Maximize
+      }
+      If GridTop = AlwaysOnTop
+      {
+        Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,On Top
+        Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,On Top
+      }
+    }
+
+    If Gridtop = Run
+    {
+      GridBottom := %A_Index%GridBottom
+      GridLeft := %A_Index%GridLeft
+
+      If ShowNumbersFlag
+      {
+        If (%A_Index%GridBottom != "")
+        {
+          Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,%A_Index%-%GridBottom%
+          Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,%A_Index%-%GridBottom%
+        }
+        else
+        {
+          Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,%A_Index%-%GridLeft%
+          Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,%A_Index%-%GridLeft%
+        }
+      }else
+      {
+        If (%A_Index%GridBottom != "")
+        {
+          Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,%GridBottom%
+          Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,%GridBottom%
+        }
+        else
+        {
+          Gui, add, text,c%shadowcolor% BackGroundTrans  X%RestoreLeftShadow% Y%ShadowTop% ,%GridLeft%
+          Gui, add, text,c%textcolor% BackGroundTrans  X%RestoreLeft% Y%TextTop% ,%GridLeft%
+        }
+      }
+    }
+  }
+  Gui, +AlwaysOnTop +ToolWindow -Caption +LastFound +E0x20
+  Gui, Color, %guicolor%
+  Gui, Margin,0,0
+
+  Gui,show,x0 y0 w0 h0 noactivate,GridMove Drop Zone 0xba
+  WinGet,GuiId,Id,GridMove Drop Zone 0xba
+  WinSet, TransColor, %guicolor%, ahk_id %GuiId%
+
+  Gui,2: +lastfound
+  gui2hwnd:=WinExist() ;handle.
+  if(!AeroEnabled)
+  {
+    WinSet, Transparent, %Transparency%,
+    Gui,2: +ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+    Gui,2: Margin,0,0
+  }
+  else 
+  {
+    Gui,2: Color, 0
+    Aero_ChangeFrameAreaAll(gui2hwnd) ;call the Function
+  }
+  Gui,hide
+return
+ 
+;***********************************************************Aditional Functions
+
+ExitProgram:
+  ExitApp
+return
+
+ReloadProgram:
+  Reload
+return
+
+RefreshTemplates:
+  Menu,templates_menu,DeleteAll
+  createTemplatesMenu()
+return
+
+Hotkeys_UseCommand:
+  If UseCommand
+      UseCommand := False
+  else
+      UseCommand := True
+  GoSub,WriteIni
+  Reload
+return
+
+
+Hotkeys_UseFastMove:
+  If UseFastMove
+      UseFastMove := False
+  else
+      UseFastMove := True
+  GoSub,WriteIni
+  Reload
+return
+
+Hotkeys_CommandHotkey:
+  inputbox,input, %input_hotkey_title%,%input_hotkey%,,,,,,,,%CommandHotkey%
+  if errorlevel <> 0
+    return
+  CommandHotkey := input
+  GoSub, WriteIni
+  reload
+  return
+
+Hotkeys_FastMoveModifiers:
+  inputbox,input, %input_fastmove_title%,%input_fastmove%,,,,,,,,%FastMoveModifiers%
+  if errorlevel <> 0
+    return
+  FastMoveModifiers := input
+  GoSub, WriteIni
+  Reload
+  return
+
+
+Options_GridOrder:
+  inputbox,input, %input_gridorder_title%,%input_gridorder%,,,,,,,,%GridOrder%
+  if errorlevel <> 0
+    return
+  GridOrder := input
+  GoSub, WriteIni
+return
+  
+Options_LButtonDrag:
+  If LButtonDrag
+  {
+    Menu,options_menu,Uncheck, %tray_lbuttondrag%
+    LButtonDrag := false
+    Menu,options_menu,Disable, %tray_titlesize%,
+  }
+  else
+  {
+    Menu,options_menu,check, %tray_lbuttondrag%
+    LButtonDrag := true
+    Menu,options_menu,Enable, %tray_titlesize%,
+  }
+  GoSub, WriteIni
+return
+
+Options_mbuttonDrag:
+  If mbuttonDrag
+    mbuttonDrag := false
+  else
+    mbuttonDrag := true
+  GoSub, WriteIni
+  reload
+return
+  
+Options_EdgeDrag:
+  If EdgeDrag
+  {
+    EdgeDrag := false
+    Menu,options_menu,Uncheck, %tray_edgedrag%
+    Menu,options_menu,Disable, %tray_edgetime%
+  }
+  else
+  {
+    EdgeDrag := true
+    Menu,options_menu,check, %tray_edgedrag%
+    Menu,options_menu,Enable, %tray_edgetime%
+  }
+  GoSub, WriteIni
+return  
+
+Options_EdgeTime:
+  inputbox,input, %input_edgetime_title%,%input_edgetime%,,,,,,,,%EdgeTime%
+  if errorlevel <> 0
+    return
+  EdgeTime := input
+  GoSub, WriteIni
+return
+  
+Options_TitleSize:
+  inputbox,input, %input_titlesize_title%,%input_titlesize%,,,,,,,,%TitleSize%
+  if errorlevel <> 0
+    return
+  TitleSize := input
+  GoSub, WriteIni
+return  
+  
+Options_SafeMode:
+  if SafeMode
+  {
+    SafeMode := False
+    Menu,options_menu,Uncheck, %tray_safemode%
+  }
+  else
+  {
+    SafeMode := True
+    Menu,options_menu,check, %tray_safemode%
+  }
+  GoSub, WriteIni
+return
+
+Options_ShowGrid:
+  If ShowGroupsFlag
+  {
+    ShowGroupsFlag := false
+    Menu,options_menu, Uncheck, %tray_showgrid%
+    Menu,options_menu,Disable, %tray_shownumbers%
+  }  
+  else
+  {
+    ShowGroupsFlag := True
+    Menu,options_menu, Check, %tray_show%
+    Menu,options_menu,Enable, %tray_shownumbers%
+  }
+  GoSub, WriteIni
+return 
+
+Options_ShowNumbers:
+  If ShowNumbersFlag
+  {
+    ShowNumbersFlag := false
+    Menu,options_menu, Uncheck, %tray_shownumbers%
+  }  
+  else
+  {
+    ShowNumbersFlag := True
+    Menu,options_menu, Check, %tray_shownumbers%
+  }
+  GoSub, WriteIni
+  Reload
+return 
+
+Template-Grids:
+  GridName = Grids/%A_ThisMenuItem%.grid
+  GoSub, ApplyGrid
+  Menu,templates_menu,DeleteAll
+  createTemplatesMenu()
+  Menu,templates_menu, check,%A_ThisMenuItem%
+return
+
+NextGrid:
+  NextGridFlag := False
+  NextGrid =
+  Loop
+  {
+    StringLeft,out,GridOrder,1
+    If out = ,
+      StringTrimLeft,GridOrder,GridOrder,1
+    else
+      {
+      StringRight,out,GridOrder,1
+      If out <> ,
+        GridOrder =%GridOrder%,
+      break
+      }
+  }
+  Loop, Parse,GridOrder,CSV 
+  {
+    If A_LoopField is space
+      continue
+      
+    If NextGridFlag
+    {
+      NextGrid := A_LoopField
+      AutoTrim,on
+      SetEnv,NextGrid,%NextGrid%
+      NextGridFlag:= False
+    }
+    If ("Grids/" . A_LoopField ".grid" = GridName)
+      NextGridFlag := True
+  }
+  If (NextGridFlag OR NextGrid = "")
+    {
+    StringGetPos, CommaPosition, GridOrder, `,
+    StringLeft, NextGrid, GridOrder, %CommaPosition% 
+    }
+  GridName = Grids/%NextGrid%.grid
+  Critical,on
+  GoSub,HideGroups
+  Gui,2:Hide
+  GoSub, ApplyGrid
+  GoSub, ShowGroups
+  SafeShow := False
+  Critical,off
+return
+
+ApplyGrid:
+  If (GridName = "4part")
+    GridName = Grids/4-Part.grid 
+  if (GridName = "edge")
+    GridName = Grids/EdgeGrid.grid
+  if (Gridname = "DualScreen")
+    GridName = Grids/Dual-Screen.grid
+  if (GridName = "2PartHorizontal")
+    GridName = Grids/2 Part-Horizontal.grid
+  if (Gridname = "2PartVertical")
+    GridName = Grids/2 Part-Vertical.grid
+
+  If (GridName = "3part")
+    GoSub,Template-3part
+  else
+    GoSub, CreateGridFromFile
+return
+
+CreateGridFromFile:
+  Menu,templates_menu,DeleteAll
+  createTemplatesMenu()
+  
+  GoSub, HideGroups
+  Gui,destroy
+  Gui,2:destroy
+  IniRead,NGroups,%A_ScriptDir%\%GridName%,Groups,NumberOfGroups,Error
+  If (NGroups = "error")
+    {
+    MsgBox,%error_ngroups% %GridName%
+    GoSub, Template-3Part
+    return
+    } 
+  ErrorLevel := False
+  loop,%NGroups%
+  {
+    if a_index = "0"
+      continue
+    TriggerTop    = %A_Index%TriggerTop
+    TriggerBottom = %A_Index%TriggerBottom
+    TriggerRight  = %A_Index%TriggerRight
+    TriggerLeft   = %A_Index%TriggerLeft
+      
+    GridTop    = %A_Index%GridTop
+    GridBottom = %A_Index%GridBottom
+    GridRight  = %A_Index%GridRight
+    GridLeft   = %A_Index%GridLeft
+      
+    IniRead,%TriggerTop%    ,%A_ScriptDir%\%GridName%,%A_Index%,TriggerTop,Error
+    IniRead,%TriggerBottom% ,%A_ScriptDir%\%GridName%,%A_Index%,TriggerBottom,Error
+    IniRead,%TriggerLeft%   ,%A_ScriptDir%\%GridName%,%A_Index%,TriggerLeft,Error
+    IniRead,%TriggerRight%  ,%A_ScriptDir%\%GridName%,%A_Index%,TriggerRight,Error
+               
+    IniRead,%GridTop%       ,%A_ScriptDir%\%GridName%,%A_Index%,GridTop,Error
+    IniRead,%GridBottom%    ,%A_ScriptDir%\%GridName%,%A_Index%,GridBottom,Error
+    IniRead,%GridLeft%      ,%A_ScriptDir%\%GridName%,%A_Index%,GridLeft,Error
+    IniRead,%GridRight%     ,%A_ScriptDir%\%GridName%,%A_Index%,GridRight,Error
+
+    If (%TriggerTop%="Error" OR %TriggerBottom%="Error" 
+        OR %TriggerLeft%="Error" OR %TriggerRight%="Error" )
+      {
+      ErrorCode := A_Index
+      ErrorLevel := True
+      break
+      }
+
+    if (%GridTop%="Error")
+      %GridTop% := %TriggerTop%
+    if (%GridBottom%="Error")
+      %GridBottom% := %TriggerBottom%
+    if (%GridLeft%="Error")
+      %GridLeft% := %TriggerLeft%
+    if (%GridRight%="Error")
+      %GridRight% := %TriggerRight%
+  }
+  If (ErrorLevel != 0 or ErrorCode)
+    {
+    MsgBox,%error_grid_p1% (%error_grid_p2% %ErrorCode%)
+    GoSub, Template-3Part
+    GridName = 3Part
+    return
+    }
+  evaluateGrid()
+  GoSub, CreateGroups
+  GoSub, WriteIni
+return
+
+GetScreenSize()
+{
+  Global 
+  ScreenLeft   :=0
+  ScreenTop    :=0
+  ScreenRight  :=0
+  ScreenBottom :=0
+  Sysget,MonitorCount,MonitorCount
+  
+  Loop,%MonitorCount%
+  {
+    SysGet,monitor,Monitor,%A_Index%
+    If (monitorLeft<ScreenLeft)
+      ScreenLeft:=monitorLeft
+    If (monitorTop<ScreenTop)
+      ScreenTop:=monitorTop
+    If (monitorRight>ScreenRight)
+      ScreenRight:=monitorRight
+    If (monitorBottom>ScreenBottom)
+      ScreenBottom:=monitorBottom
+  }
+  ScreenWidth := ScreenRight - ScreenLeft
+  ScreenHeight := ScreenBottom - ScreenTop 
+  return
+}
+
+GetMonitorRight(MouseX, MouseY)
+{
+  SysGet,monitorcount,MonitorCount
+  Loop,%monitorcount%
+  {
+    SysGet,monitor,Monitor,%A_Index%
+    If (MouseX <= monitorRight AND MouseX >= monitorLeft 
+        AND MouseY >= monitorTop AND MouseY <= monitorBottom)
+      return %MonitorRight%
+  }
+  return error
+}
+
+GetMonitorBottom(MouseX, MouseY)
+{
+  SysGet,monitorcount,MonitorCount
+  Loop,%monitorcount%
+  {
+    SysGet,monitor,Monitor,%A_Index%
+    If (MouseX <= MonitorRight AND MouseX >= MonitorLeft 
+        AND MouseY >= monitorTop AND MouseY <= monitorBottom)
+      return, %MonitorBottom%
+  }
+  return error
+}
+  
+GetMonitorLeft(MouseX, MouseY)
+{
+  SysGet,monitorcount,MonitorCount
+  Loop,%monitorcount%
+  {
+    SysGet,monitor,Monitor,%A_Index%
+    If (MouseX <= MonitorRight AND MouseX >= MonitorLeft 
+        AND MouseY >= monitorTop AND MouseY <= monitorBottom)
+      return, %MonitorLeft%
+  }
+  return error
+}
+  
+GetMonitorTop(MouseX, MouseY)
+{
+  SysGet,monitorcount,MonitorCount
+  Loop,%monitorcount%
+  {
+    SysGet,monitor,Monitor,%A_Index%
+    If (MouseX <= MonitorRight AND MouseX >= MonitorLeft 
+        AND MouseY >= monitorTop AND MouseY <= monitorBottom)
+      return, %MonitorTop%
+  }
+  return error
+}
+
+StoreWindowState(WindowID,WindowX,WindowY,WindowWidth,WindowHeight)
+{
+  global WindowIdBuffer
+  global WindowXBuffer
+  global WindowYBuffer
+  global WindowWidthBuffer
+  global WindowHeightBuffer
+  WindowIdBuffer = %WindowId%,%WindowIdBuffer%
+  WindowXBuffer = %WindowX%,%WindowXBuffer%
+  WindowYBuffer = %WindowY%,%WindowYBuffer%
+  WindowWidthBuffer = %WindowWidth%,%WindowWidthBuffer%
+  WindowHeightBuffer = %WindowHeight%,%WindowHeightBuffer%
+  return
+}
+  
+GetWindowState(WindowId)
+{
+  global
+  StringSplit, WindowX     , WindowXBuffer     , `,,,
+  StringSplit, WindowY     , WindowYBuffer     , `,,,
+  StringSplit, WindowWidth , WindowWidthBuffer , `,,,
+  StringSplit, WindowHeight, WindowHeightBuffer, `,,,
+  loop, parse, WindowIdBuffer,CSV
+  {
+    if a_loopfield is space
+      continue
+    if (WindowId = A_LoopField) 
+    {
+      WindowX := WindowX%A_Index%
+      WindowY := WindowY%A_Index%
+      WindowWidth  := WindowWidth%A_Index%
+      WindowHeight := WindowHeight%A_Index%
+      return true
+    }
+  }
+  return false  
+}
+
+evaluateGrid()
+{
+  global
+  count := 0
+  loop,%NGroups%
+  {
+    value := A_Index - count
+
+    %value%TriggerTop    := eval(%A_Index%TriggerTop)
+    %value%TriggerBottom := eval(%A_Index%TriggerBottom)
+    %value%TriggerLeft   := eval(%A_Index%TriggerLeft)
+    %value%TriggerRight  := eval(%A_Index%TriggerRight)
+    
+    If (%A_Index%GridTop = "Run")
+    {
+      %value%GridTop    := %A_Index%GridTop
+      %value%GridBottom := %A_Index%GridBottom
+      %value%GridLeft   := %A_Index%GridLeft
+      %value%GridRight  := %A_Index%GridRight
+      continue
+    }
+
+
+    if(%value%GridTop <> "")
+      %value%GridTop    := eval(%A_Index%GridTop)
+    if(%value%GridBottom <> "")
+      %value%GridBottom := eval(%A_Index%GridBottom)
+    if(%value%GridLeft <> "")
+      %value%GridLeft   := eval(%A_Index%GridLeft)
+    if(%value%GridRight <> "")
+      %value%GridRight  := eval(%A_Index%GridRight)
+
+    if (%value%TriggerTop = "error" OR %value%TriggerBottom = "Error" 
+        OR %value%TriggerLeft = "error" OR %value%TriggerRight = "error" 
+        OR %value%GridTop = "error" OR %value%GridBottom = "Error" 
+        OR %value%GridLeft = "error" OR %value%GridRight = "error")
+    {
+      count += 1
+      continue
+    }
+  }
+  ngroups -= count
+}
+
+Getmonitorsizes()
+{
+  global 
+  sysget,monitorCount,MonitorCount
+  
+  loop,%monitorCount%
+  {
+    sysget,monitorReal,Monitor,%A_Index%
+    sysget,monitor,MonitorWorkArea,%A_Index%
+    monitor%a_Index%Left   :=MonitorLeft
+    monitor%a_Index%Bottom :=MonitorBottom
+    monitor%a_Index%Right  :=MonitorRight
+    monitor%a_Index%Top    :=MonitorTop
+    monitor%a_Index%Width  :=MonitorRight - MonitorLeft
+    monitor%a_Index%Height :=MonitorBottom - MonitorTop
+    
+    monitorreal%A_Index%Left   :=MonitorRealLeft
+    monitorreal%A_Index%Bottom :=MonitorRealBottom
+    monitorreal%A_Index%Right  :=MonitorRealRight
+    monitorreal%A_Index%Top    :=MonitorRealTop
+    monitorreal%A_Index%Width  :=MonitorRealRight - MonitorRealLeft
+    monitorreal%A_Index%Height :=MonitorRealBottom - MonitorRealTop
+  } 
+  return
+}
+
+ComputeEdgeRectangles()
+{
+  global 
+
+  sysget,MonitorCount,MonitorCount
+
+  RectangleCount := 0
+
+  loop,%MonitorCount%
+  {
+    sysget,Monitor,Monitor,%A_Index%
+
+    MonitorRight := MonitorRight -1
+    MonitorBottom := MonitorBottom -1
+
+    ;Top
+    RectangleCount := RectangleCount +1
+    EdgeRectangleXL%RectangleCount% := MonitorLeft
+    EdgeRectangleYT%RectangleCount% := MonitorTop
+
+    EdgeRectangleXR%RectangleCount% := MonitorRight
+    EdgeRectangleYB%RectangleCount% := MonitorTop + RectangleSize
+
+    ;Bottom
+    RectangleCount := RectangleCount +1
+    EdgeRectangleXL%RectangleCount% := MonitorLeft
+    EdgeRectangleYT%RectangleCount% := MonitorBottom - RectangleSize
+
+    EdgeRectangleXR%RectangleCount% := MonitorRight
+    EdgeRectangleYB%RectangleCount% := MonitorBottom
+
+    ;Left
+    RectangleCount := RectangleCount +1
+    EdgeRectangleXL%RectangleCount% := MonitorLeft
+    EdgeRectangleYT%RectangleCount% := MonitorTop
+
+    EdgeRectangleXR%RectangleCount% := MonitorLeft + RectangleSize
+    EdgeRectangleYB%RectangleCount% := MonitorBottom
+
+    ;Right
+    RectangleCount := RectangleCount +1
+    EdgeRectangleXL%RectangleCount% := MonitorRight - RectangleSize
+    EdgeRectangleYT%RectangleCount% := MonitorTop
+
+    EdgeRectangleXR%RectangleCount% := MonitorRight
+    EdgeRectangleYB%RectangleCount% := MonitorBottom
+  }
+}
+
+;Determine if the window class should be treated like Putty
+ShouldUseSizeMoveMessage(class)
+{
+	return class = "Putty" or class = "Pietty"
+}
+
+StartWithWindowsToggle:
+  if(startWithWindowsQ())
+  {
+    FileDelete,%a_startup%\GridMove.lnk
+    StartWithWindows := false
+  }
+  else
+  {
+    FileCreateShortcut,%A_ScriptDir%/GridMove.exe,%A_startup%\GridMove.lnk
+    StartWithWindows := true
+  }
+
+  if(Registered<>"quebec")
+    if(startwithwindows)
+      Menu,Tray,Check,%tray_windows%
+    else
+      Menu,Tray,UnCheck,%tray_windows%
+return
+
+EnableAutoUpdate:
+  ; Register with DcUpdater and check for updates. 
+  ; When no updates are found nothing is displayed.
+  ; make sure the dcuhelper.exe is in a subdirectory called 'dcuhelper' of this script's location.
+  cmdParams = -ri    ;r = register app, i = check for updates
+  uniqueID = GridMove ;anything allowed
+  dcuHelperDir = %A_ScriptDir%
+  IfExist, %dcuHelperDir%\dcuhelper.exe
+  {
+    OutputDebug, %A_Now%: %dcuHelperDir%\dcuhelper.exe %cmdParams% "%uniqueID%" "%A_ScriptDir%" . -shownew -nothingexit
+    Run, %dcuHelperDir%\dcuhelper.exe %cmdParams% "%uniqueID%" "%A_ScriptDir%" Updater ,,Hide
+  }
+return
+
+AddToIgnore:
+  ;add selected window to ignore list
+  Ignore_added := false
+  coordmode,tooltip,screen
+  coordmode,mouse,screen
+  hotkey,F11,on
+  hotkey,F12,on
+  loop
+  {
+    mousegetpos,MouseX,MouseY
+    if(Ignore_added)
+      break
+    tooltip,%tooltip_ignore%
+    sleep,50
+  }
+  tooltip,
+  hotkey,F11,off
+  hotkey,F12,off
+return
+
+AddCurrentToIgnore:
+  Ignore_added := true
+  wingetclass,WinIgnoreClass,A
+  if Exceptions contains %WinIgnoreClass%
+  {
+    IgnorePattern = ,?\s*%WinIgnoreClass%\s*
+    Exceptions := RegExReplace(Exceptions,IgnorePattern)
+    msgbox,%info_removed% %WinIgnoreClass% (%Errorlevel%)
+  }
+  else
+  {
+    Exceptions := Exceptions . "," . WinIgnoreClass
+    msgbox,%info_added% %WinIgnoreClass%
+  }
+  Gosub,WriteIni
+return
+
+AddCurrentToIgnoreCancel:
+  Ignore_added := true
+return
+
+loadAero()
+{
+  If(A_OSVersion!="WIN_VISTA" && A_OSVersion!="WIN_7")
+    return false
+
+  If(!Aero_StartUp()) ;start the Lib
+    return false
+
+  If(!Aero_IsEnabled()) ;Make sure that
+    return false
+
+  If(Aero_GetDWMTrans())
+    return false
+
+  return true
+}
+  
+#include files.ahk
+#include command.ahk
+#include calc.ahk
+#include helper.ahk
+#Include Aero_lib.ahk
+#include strings.ahk
diff --git a/GridMove.ico b/GridMove.ico
new file mode 100644
index 0000000..9eee789
Binary files /dev/null and b/GridMove.ico differ
diff --git a/Grids/.DS_Store b/Grids/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/Grids/.DS_Store differ
diff --git a/Grids/100Possibilities.grid b/Grids/100Possibilities.grid
new file mode 100644
index 0000000..4cd0b53
--- /dev/null
+++ b/Grids/100Possibilities.grid
@@ -0,0 +1,2885 @@
+[Groups]
+
+NumberOfGroups = 198
+
+[]
+;==================================================================
+;   MONITOR 1
+;==================================================================
+
+[]
+;------------------------------------------------------------------
+;	singles (16)
+;------------------------------------------------------------------
+
+; 1;1
+[1]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 1;2
+[2]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 1;3
+[3]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 1;4
+[4]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 2;1
+[5]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 2;2
+[6]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 2;3
+[7]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+;2;4
+[8]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 3;1
+[9]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 3;2
+[10]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 3;3
+[11]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 3;4
+[12]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 4;1
+[13]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 4;2
+[14]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+;4;3
+[15]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 4;4
+[16]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+[]
+;------------------------------------------------------------------
+;	doubles horizontal (12)
+;------------------------------------------------------------------
+
+; 1;1:2
+[17]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 1;2:3
+[18]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 1;3:4
+[19]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 2;1:2
+[20]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 2;2:3
+[21]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 2;3:4
+[22]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 3;1:2
+[23]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 3;2:3
+[24]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 3;3:4
+[25]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+	
+; 4;1:2
+[26]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 4;2:3
+[27]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 4;3:4
+[28]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+	
+	
+[]
+;------------------------------------------------------------------
+;	doubles vertical (12)
+;------------------------------------------------------------------
+
+; 1:2;1
+[29]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 1:2;2
+[30]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 1:2;3
+[31]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 1:2;4
+[32]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 2:3;1
+[33]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 2:3;2
+[34]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 2:3;3
+[35]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 2:3;4
+[36]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 3:4;1
+[37]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+
+; 3:4;2
+[38]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+
+; 3:4;3
+[39]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 3:4;4
+[40]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	triples horizontal (8)
+;------------------------------------------------------------------
+
+; 1;1:3
+[41]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 1;2:4
+[42]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 2;1:3
+[43]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 2;2:4
+[44]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 3;1:3
+[45]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 3;2:4
+[46]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 4;1:3
+[47]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+
+; 4;2:4
+[48]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	triples vertical (8)
+;------------------------------------------------------------------
+
+; 1:3;1
+[49]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+; 1:3;2
+[50]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 1:3;3
+[51]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:3;4
+[52]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2:3;1
+[53]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+; 2:3;2
+[54]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 2:3;3
+[55]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 2:3;4
+[56]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	quadruples square (9)
+;------------------------------------------------------------------
+
+; 1:2;1:2
+[57]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 1:2;2:3
+[58]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:2;3:4
+[59]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2:3;1:2
+[60]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 2:3;2:3
+[61]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 2:3;3:4
+[62]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 3:4;1:2
+[63]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 3:4;2:3
+[64]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 3:4;3:4
+[65]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	sixtuples horizontal (6)
+;------------------------------------------------------------------
+
+; 1:2;1:3
+[66]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:2;2:4
+[67]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2:2;1:3
+[68]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 2:3;2:4
+[69]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 3:4;1:3
+[70]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 3:4;2:4
+[71]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	sixtuples vertical (6)
+;------------------------------------------------------------------
+
+; 1:3;1:2
+[72]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 1:3;2:3
+[73]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:3;3:4
+[74]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2:4;1:2
+[75]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 2:4;2:3
+[76]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 2:4;3:4
+[77]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	ninetuples (4)
+;------------------------------------------------------------------
+
+; 1:3;1:3
+[78]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:3;2:4
+[79]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2:4;1:3
+[80]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 2:4;2:4
+[81]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+[]
+;------------------------------------------------------------------
+;	quadruples horizontal (4)
+;------------------------------------------------------------------
+
+; 1;1:4
+[82]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  2
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2;1:4
+[83]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 10
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 3;1:4
+[84]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 18
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 4;1:4
+[85]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	quadruples vertical (4)
+;------------------------------------------------------------------
+
+; 1:4;1
+[86]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  2
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+; 1:4;2
+[87]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 10
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 14
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 1:4;3
+[88]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 18
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 22
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:4;4
+[89]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 30
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	eightuples horizontal (3)
+;------------------------------------------------------------------
+
+; 1:2;1:4
+[90]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  7
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 2:3;1:4
+[91]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+; 3:4;1:4
+[92]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 23
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  2
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	eightuples vertical (3)
+;------------------------------------------------------------------
+
+; 1:4;1:2
+[93]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  7
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 *  9
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+; 1:4;2:3
+[94]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+; 1:4;3:4
+[95]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 23
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 25
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  2
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	twelvetuples horizontal (2)
+;------------------------------------------------------------------
+
+; 1:3;1:4
+[96]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  6
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  3
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+; 2:4;1:4
+[97]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 * 17
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  0
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 32
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  1
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+[]
+;------------------------------------------------------------------
+;	twelvetuples vertical (2)
+;------------------------------------------------------------------
+
+; 1:4;1:3
+[98]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 *  6
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 15
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  0
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  3
+	
+; 1:4;2:4
+[99]
+	TriggerTop		=	[Monitor1Top]  + [Monitor1Height] / 32 *  0
+	TriggerBottom	=	[Monitor1Top]  + [Monitor1Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor1Left] + [Monitor1Width]  / 32 * 17
+	TriggerRight	=	[Monitor1Left] + [Monitor1Width]  / 32 * 26
+	
+	GridTop			=	[Monitor1Top]  + [Monitor1Height] /  4 *  0
+	GridBottom		=	[Monitor1Top]  + [Monitor1Height] /  4 *  4
+	
+	GridLeft		=	[Monitor1Left] + [Monitor1Width]  /  4 *  1
+	GridRight		=	[Monitor1Left] + [Monitor1Width]  /  4 *  4
+
+
+
+
+[]
+;==================================================================
+;   MONITOR 2
+;==================================================================
+
+[]
+;------------------------------------------------------------------
+;	singles (16)
+;------------------------------------------------------------------
+
+; 1;1
+[100]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 1;2
+[101]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 1;3
+[102]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 1;4
+[103]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 2;1
+[104]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 2;2
+[105]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 2;3
+[106]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+;2;4
+[107]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 3;1
+[108]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 3;2
+[109]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 3;3
+[110]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 3;4
+[111]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 4;1
+[112]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 4;2
+[113]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+;4;3
+[114]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 4;4
+[115]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+[]
+;------------------------------------------------------------------
+;	doubles horizontal (12)
+;------------------------------------------------------------------
+
+; 1;1:2
+[116]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 1;2:3
+[117]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 1;3:4
+[118]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 2;1:2
+[119]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 2;2:3
+[120]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 2;3:4
+[121]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 3;1:2
+[122]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 3;2:3
+[123]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 3;3:4
+[124]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+	
+; 4;1:2
+[125]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 4;2:3
+[126]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 4;3:4
+[127]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+	
+	
+[]
+;------------------------------------------------------------------
+;	doubles vertical (12)
+;------------------------------------------------------------------
+
+; 1:2;1
+[128]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 1:2;2
+[129]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 1:2;3
+[130]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 1:2;4
+[131]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 2:3;1
+[132]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 2:3;2
+[133]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 2:3;3
+[134]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 2:3;4
+[135]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 3:4;1
+[136]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+
+; 3:4;2
+[137]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+
+; 3:4;3
+[138]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 3:4;4
+[139]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	triples horizontal (8)
+;------------------------------------------------------------------
+
+; 1;1:3
+[140]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 1;2:4
+[141]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 2;1:3
+[142]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 2;2:4
+[143]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 3;1:3
+[144]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 3;2:4
+[145]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 4;1:3
+[146]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+
+; 4;2:4
+[147]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	triples vertical (8)
+;------------------------------------------------------------------
+
+; 1:3;1
+[148]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+; 1:3;2
+[149]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 1:3;3
+[150]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:3;4
+[151]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2:3;1
+[152]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+; 2:3;2
+[153]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 2:3;3
+[154]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 2:3;4
+[155]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	quadruples square (9)
+;------------------------------------------------------------------
+
+; 1:2;1:2
+[156]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 1:2;2:3
+[157]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:2;3:4
+[158]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2:3;1:2
+[159]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 2:3;2:3
+[160]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 2:3;3:4
+[161]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 3:4;1:2
+[162]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 3:4;2:3
+[163]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 3:4;3:4
+[164]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	sixtuples horizontal (6)
+;------------------------------------------------------------------
+
+; 1:2;1:3
+[165]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:2;2:4
+[166]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2:2;1:3
+[167]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 2:3;2:4
+[168]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 3:4;1:3
+[169]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 3:4;2:4
+[170]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	sixtuples vertical (6)
+;------------------------------------------------------------------
+
+; 1:3;1:2
+[171]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 1:3;2:3
+[172]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:3;3:4
+[173]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2:4;1:2
+[174]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 2:4;2:3
+[175]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 2:4;3:4
+[176]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	ninetuples (4)
+;------------------------------------------------------------------
+
+; 1:3;1:3
+[177]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:3;2:4
+[178]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2:4;1:3
+[179]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 2:4;2:4
+[180]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+[]
+;------------------------------------------------------------------
+;	quadruples horizontal (4)
+;------------------------------------------------------------------
+
+; 1;1:4
+[181]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  2
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2;1:4
+[182]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 10
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 14
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 3;1:4
+[183]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 18
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 22
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 4;1:4
+[184]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 30
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	quadruples vertical (4)
+;------------------------------------------------------------------
+
+; 1:4;1
+[185]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  2
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+; 1:4;2
+[186]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 10
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 14
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 1:4;3
+[187]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 18
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 22
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:4;4
+[188]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 30
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	eightuples horizontal (3)
+;------------------------------------------------------------------
+
+; 1:2;1:4
+[189]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  7
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 *  9
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 2:3;1:4
+[190]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+; 3:4;1:4
+[191]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 23
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 25
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  2
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	eightuples vertical (3)
+;------------------------------------------------------------------
+
+; 1:4;1:2
+[192]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  7
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 *  9
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+; 1:4;2:3
+[193]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+; 1:4;3:4
+[194]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 23
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 25
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  2
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+
+[]
+;------------------------------------------------------------------
+;	twelvetuples horizontal (2)
+;------------------------------------------------------------------
+
+; 1:3;1:4
+[195]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  6
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 15
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  3
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+; 2:4;1:4
+[196]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 * 17
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 26
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  0
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 32
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  1
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
+
+	
+[]
+;------------------------------------------------------------------
+;	twelvetuples vertical (2)
+;------------------------------------------------------------------
+
+; 1:4;1:3
+[197]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 *  6
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 15
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  0
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  3
+	
+; 1:4;2:4
+[198]
+	TriggerTop		=	[Monitor2Top]  + [Monitor2Height] / 32 *  0
+	TriggerBottom	=	[Monitor2Top]  + [Monitor2Height] / 32 * 32
+	
+	TriggerLeft		=	[Monitor2Left] + [Monitor2Width]  / 32 * 17
+	TriggerRight	=	[Monitor2Left] + [Monitor2Width]  / 32 * 26
+	
+	GridTop			=	[Monitor2Top]  + [Monitor2Height] /  4 *  0
+	GridBottom		=	[Monitor2Top]  + [Monitor2Height] /  4 *  4
+	
+	GridLeft		=	[Monitor2Left] + [Monitor2Width]  /  4 *  1
+	GridRight		=	[Monitor2Left] + [Monitor2Width]  /  4 *  4
\ No newline at end of file
diff --git a/Grids/2 Part Horizontal.grid b/Grids/2 Part Horizontal.grid
new file mode 100644
index 0000000..7e22cd8
--- /dev/null
+++ b/Grids/2 Part Horizontal.grid	
@@ -0,0 +1,87 @@
+[Groups]
+
+NumberOfGroups = 9
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] / 2 - 50
+  TriggerBottom= [Monitor1Top] + 35
+  TriggerRight = [Monitor1Left] + [Monitor1Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[2]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /2
+  TriggerRight = [Monitor1Right]
+
+  
+[3]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /2
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+
+
+[4]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] / 2 - 50
+  TriggerBottom= [Monitor2Top] + 35
+  TriggerRight = [Monitor2Left] + [Monitor2Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[5]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Top] + [Monitor2Height] /2
+  TriggerRight = [Monitor2Right]
+
+  
+[6]
+
+  TriggerTop   = [Monitor2Top] + [Monitor2Height] /2
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Right]
+  
+
+[7]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] / 2 - 50
+  TriggerBottom= [Monitor3Top] + 35
+  TriggerRight = [Monitor3Left] + [Monitor3Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[8]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Top] + [Monitor3Height] /2
+  TriggerRight = [Monitor3Right]
+  
+  
+[9]
+
+  TriggerTop   = [Monitor3Top] + [Monitor3Height] /2
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Right]
+
diff --git a/Grids/2 Part Vertical.grid b/Grids/2 Part Vertical.grid
new file mode 100644
index 0000000..7dda917
--- /dev/null
+++ b/Grids/2 Part Vertical.grid	
@@ -0,0 +1,86 @@
+[Groups]
+
+NumberOfGroups = 9
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] / 2 - 50
+  TriggerBottom= [Monitor1Top] + 35
+  TriggerRight = [Monitor1Left] + [Monitor1Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[2]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /2
+
+  
+[3]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /2
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+
+
+[4]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] / 2 - 50
+  TriggerBottom= [Monitor2Top] + 35
+  TriggerRight = [Monitor2Left] + [Monitor2Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[5]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Left] + [Monitor2Width] /2
+
+  
+[6]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] /2
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Right]
+
+[7]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] / 2 - 50
+  TriggerBottom= [Monitor3Top] + 35
+  TriggerRight = [Monitor3Left] + [Monitor3Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[8]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Left] + [Monitor3Width] /2
+
+  
+[9]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] /2
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Right]
+
diff --git a/Grids/3 Part Reverse.grid b/Grids/3 Part Reverse.grid
new file mode 100644
index 0000000..163fc2c
--- /dev/null
+++ b/Grids/3 Part Reverse.grid	
@@ -0,0 +1,93 @@
+[Groups]
+  NumberOfGroups = 12
+
+[1]
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] / 2 - 50
+  TriggerBottom= [Monitor1Top] + 35
+  TriggerRight = [Monitor1Left] + [Monitor1Width] / 2 + 50
+  GridTop   = restore
+  GridLeft  = restore
+  GridBottom= restore
+  GridRight = restore
+
+[2]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3 *2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+
+[3]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+
+[4]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+
+[5]
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] / 2 - 50
+  TriggerBottom= [Monitor2Top] + 35
+  TriggerRight = [Monitor2Left] + [Monitor2Width] / 2 + 50
+  GridTop   = restore
+  GridLeft  = restore
+  GridBottom= restore
+  GridRight = restore
+
+[6]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3 *2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+
+[7]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[8]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[9]
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] / 2 - 50
+  TriggerBottom= [Monitor3Top] + 35
+  TriggerRight = [Monitor3Left] + [Monitor3Width] / 2 + 50
+  GridTop   = restore
+  GridLeft  = restore
+  GridBottom= restore
+  GridRight = restore
+
+[10]
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3 *2
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left]
+
+[11]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+
+[12]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+
diff --git a/Grids/3 Part.grid b/Grids/3 Part.grid
new file mode 100644
index 0000000..f74dd34
--- /dev/null
+++ b/Grids/3 Part.grid	
@@ -0,0 +1,86 @@
+[Groups]
+	NumberOfGroups = 12
+
+[1]
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] / 2 - 50
+  TriggerBottom= [Monitor1Top] + 35
+  TriggerRight = [Monitor1Left] + [Monitor1Width] / 2 + 50
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[2]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top] + [Monitor1Height] /2
+  TriggerLeft   = [Monitor1Left]
+
+[3]
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] /2
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+
+[4]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3
+
+[5]
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] / 2 - 50
+  TriggerBottom= [Monitor2Top] + 35
+  TriggerRight = [Monitor2Left] + [Monitor2Width] / 2 + 50
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[6]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left]
+
+[7]
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] /2
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+
+[8]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3
+
+[9]
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] / 2 - 50
+  TriggerBottom= [Monitor3Top] + 35
+  TriggerRight = [Monitor3Left] + [Monitor3Width] / 2 + 50
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[10]
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3
+  TriggerBottom = [Monitor3Top] + [Monitor3Height] /2
+  TriggerLeft   = [Monitor3Left]
+
+[11]
+  TriggerTop    = [Monitor3Top] + [Monitor3Height] /2
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left]
+
+[12]
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3
diff --git a/Grids/4 Part.grid b/Grids/4 Part.grid
new file mode 100644
index 0000000..b1dc39e
--- /dev/null
+++ b/Grids/4 Part.grid	
@@ -0,0 +1,87 @@
+[Groups]
+
+  NumberOfGroups = 12
+
+[1]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /2
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerLeft   = [Monitor1Left]
+
+[2]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /2
+
+[3]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+
+[4]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /2
+
+[5]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /2
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left]
+
+[6]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /2
+
+[7]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+
+[8]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /2
+
+[9]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /2
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerLeft   = [Monitor3Left]
+
+[10]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /2
+
+[11]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /2
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left]
+
+[12]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /2
+
diff --git a/Grids/4 part_Grid.grid b/Grids/4 part_Grid.grid
new file mode 100644
index 0000000..f6774e8
--- /dev/null
+++ b/Grids/4 part_Grid.grid	
@@ -0,0 +1,136 @@
+[Groups]
+
+  NumberOfGroups = 12
+
+[1]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /2
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left]
+
+[2]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /2
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /2
+
+[3]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[4]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /2
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /2
+
+
+[5]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /2
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left]
+
+[6]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /2
+
+[7]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[8]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /2
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /2
+
+[9]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /2
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerLeft   = [Monitor3Left]
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Left] + [Monitor3Width]  /2
+  GridBottom    = [Monitor3Top]  + [Monitor3Height] /2
+  GridLeft      = [Monitor3Left]
+
+[10]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /2
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /2
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Top]  + [Monitor3Height] /2
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /2
+
+[11]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /2
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left]
+  GridTop       = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  GridRight     = [Monitor3Left] + [Monitor3Width]  /2
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left]
+
+[12]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /2
+  GridTop       = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /2
+
diff --git a/Grids/Allens Grid.grid b/Grids/Allens Grid.grid
new file mode 100644
index 0000000..422f356
--- /dev/null
+++ b/Grids/Allens Grid.grid	
@@ -0,0 +1,137 @@
+;;;;
+;; Grid template for JGPaiva's GridMove application
+;; http://jgpaiva.donationcoders.com/gridmove.html
+;; This grid created by Allen Day // allen@theprawn.com
+;;;;
+
+[Groups]
+
+NumberOfGroups = 9
+
+; Big window, top left aligned. (web browser for me, typically)
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Top] + [Monitor1Height]/10
+  TriggerRight = [Monitor1Left] + [Monitor1Width]/10
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] - [Monitor1Height]/10
+  GridRight = [Monitor1Right] - [Monitor1Width]/10*1.5
+
+; Window of focus, large but not full screen, middle/center aligned
+; More often than not file explorer, text editor, etc.
+  
+[2]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+; Like primary point 2, 3 is centered -- it's a bit smaller, however.
+
+[3]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 6
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 3.5
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /10 * 6.5
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10*2
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10*2
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10*2
+  GridRight = [Monitor1Right] - [Monitor1Width] /10*2
+
+; Group 4 is like group 2, but full width
+
+[4]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 3.5
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 6
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right]
+
+; Group 5 is group two with max height
+
+[5]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 6
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 3.5
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+
+
+; Groups 6 and 7 are displayed as next to grid 2, though that's not how they are used
+; 6 and 7 are actually used to make two windows sit side by side in the space occupied by 2
+; Groups 8-9 are used for tiling windows next to one another, typically my text editor.
+
+[6]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 6
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /10 * 6.5
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10*5
+
+[7]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 6.5
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /10 * 7
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10*5
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+; Like groups 6 & 7, groups 8 & 9 occupy the space of grid 2.
+; This time they tile vertically
+
+[8]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 3.5
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10 * 5
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+[9]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 3
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /10 * 3.5
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 5
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
diff --git a/Grids/An Efficient Desktop.grid b/Grids/An Efficient Desktop.grid
new file mode 100644
index 0000000..422f356
--- /dev/null
+++ b/Grids/An Efficient Desktop.grid	
@@ -0,0 +1,137 @@
+;;;;
+;; Grid template for JGPaiva's GridMove application
+;; http://jgpaiva.donationcoders.com/gridmove.html
+;; This grid created by Allen Day // allen@theprawn.com
+;;;;
+
+[Groups]
+
+NumberOfGroups = 9
+
+; Big window, top left aligned. (web browser for me, typically)
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Top] + [Monitor1Height]/10
+  TriggerRight = [Monitor1Left] + [Monitor1Width]/10
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] - [Monitor1Height]/10
+  GridRight = [Monitor1Right] - [Monitor1Width]/10*1.5
+
+; Window of focus, large but not full screen, middle/center aligned
+; More often than not file explorer, text editor, etc.
+  
+[2]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+; Like primary point 2, 3 is centered -- it's a bit smaller, however.
+
+[3]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 6
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 3.5
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /10 * 6.5
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10*2
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10*2
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10*2
+  GridRight = [Monitor1Right] - [Monitor1Width] /10*2
+
+; Group 4 is like group 2, but full width
+
+[4]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 3.5
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 6
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right]
+
+; Group 5 is group two with max height
+
+[5]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 6
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 3.5
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+
+
+; Groups 6 and 7 are displayed as next to grid 2, though that's not how they are used
+; 6 and 7 are actually used to make two windows sit side by side in the space occupied by 2
+; Groups 8-9 are used for tiling windows next to one another, typically my text editor.
+
+[6]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 6
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /10 * 6.5
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10*5
+
+[7]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 6.5
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /10 * 7
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10*5
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+; Like groups 6 & 7, groups 8 & 9 occupy the space of grid 2.
+; This time they tile vertically
+
+[8]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 3.5
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /10 * 4
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10 * 5
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
+
+[9]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /10 * 3
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /10 * 4
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /10 * 3.5
+  TriggerRight = [Monitor1Right] - [Monitor1Width] /10 * 4
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /10
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /10
+  GridBottom= [Monitor1Bottom] - [Monitor1Height] /10 * 5
+  GridRight = [Monitor1Right] - [Monitor1Width] /10
diff --git a/Grids/BigGrid.grid b/Grids/BigGrid.grid
new file mode 100644
index 0000000..d741753
--- /dev/null
+++ b/Grids/BigGrid.grid
@@ -0,0 +1,101 @@
+[Groups]
+NumberOfGroups=11
+[1]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.5 * [Monitor1Height]
+GridTop      =[Monitor1Top]
+GridLeft     =[Monitor1Left]                          
+GridRight    =[Monitor1Left] + (1/3) * [Monitor1Width]
+GridBottom   =[Monitor1Top] + 0.5 * [Monitor1Height]  
+[2]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.5 * [Monitor1Height]
+GridTop      =[Monitor1Top]                           
+GridLeft     =[Monitor1Left] + (1/3) * [Monitor1Width]
+GridRight    =[Monitor1Left] + (2/3) * [Monitor1Width]
+GridBottom   =[Monitor1Top] + 0.5 * [Monitor1Height]  
+[3]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.5 * [Monitor1Height]
+GridTop      =[Monitor1Top]                           
+GridLeft     =[Monitor1Left] + (2/3) * [Monitor1Width]
+GridRight    =[Monitor1Left] + [Monitor1Width]
+GridBottom   =[Monitor1Top] + 0.5 * [Monitor1Height]  
+[4]
+TriggerTop   =[Monitor1Top] + [Monitor1Height] /2
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Bottom]
+GridTop      =[Monitor1Top] + [Monitor1Height] /2
+GridLeft     =[Monitor1Left]                          
+GridRight    =[Monitor1Left] + (1/3) * [Monitor1Width]
+GridBottom   =[Monitor1Bottom]
+[5]
+TriggerTop   =[Monitor1Top] + [Monitor1Height] /2
+TriggerLeft  =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Bottom]
+GridTop      =[Monitor1Top] + [Monitor1Height] /2
+GridLeft     =[Monitor1Left] + (1/3) * [Monitor1Width]
+GridRight    =[Monitor1Left] + (2/3) * [Monitor1Width]
+GridBottom   =[Monitor1Bottom]
+[6]
+TriggerTop   =[Monitor1Top] + [Monitor1Height] /2
+TriggerLeft  =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Bottom]
+GridTop      =[Monitor1Top] + [Monitor1Height] /2
+GridLeft     =[Monitor1Left] + (2/3) * [Monitor1Width]
+GridRight    =[Monitor1Left] + [Monitor1Width]
+GridBottom   =[Monitor1Bottom]
+[7]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left]  + (1/2) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height]
+GridTop      =[Monitor1Top]                            
+GridLeft     =[Monitor1Left]                          
+GridRight    =[Monitor1Left]  + (1/2) * [Monitor1Width]
+GridBottom   =[Monitor1Top] + 0.6 * [Monitor1Height] 
+[8]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left] + (1/2) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height]
+GridTop      =[Monitor1Top]                            
+GridLeft     =[Monitor1Left] + (1/2) * [Monitor1Width] 
+GridRight    =[Monitor1Left] + [Monitor1Width]         
+GridBottom   =[Monitor1Top] + 0.6 * [Monitor1Height] 
+[9]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]      
+GridLeft     =[Monitor1Left]                              
+GridRight    =[Monitor1Left] + (1/3) * [Monitor1Width]    
+GridBottom   =[Monitor1Top] + [Monitor1Height]           
+[10]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]                
+GridLeft     =[Monitor1Left] + (1/3) * [Monitor1Width]              
+GridRight    =[Monitor1Left] + (2/3) * [Monitor1Width]              
+GridBottom   =[Monitor1Top] + [Monitor1Height]                     
+[11]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]                
+GridLeft     =[Monitor1Left] + (2/3) * [Monitor1Width]              
+GridRight    =[Monitor1Left] + [Monitor1Width]              
+GridBottom   =[Monitor1Top] + [Monitor1Height]                     
diff --git a/Grids/BigGrid2.grid b/Grids/BigGrid2.grid
new file mode 100644
index 0000000..5259f38
--- /dev/null
+++ b/Grids/BigGrid2.grid
@@ -0,0 +1,92 @@
+[Groups]
+NumberOfGroups=10
+[1]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left]  + (1/2) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height]
+GridTop      =[Monitor1Top]                            
+GridLeft     =[Monitor1Left]                          
+GridRight    =[Monitor1Left]  + (1/2) * [Monitor1Width]
+GridBottom   =[Monitor1Top] + 0.6 * [Monitor1Height] 
+[2]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left] + (1/2) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height]
+GridTop      =[Monitor1Top]                            
+GridLeft     =[Monitor1Left] + (1/2) * [Monitor1Width] 
+GridRight    =[Monitor1Left] + [Monitor1Width]         
+GridBottom   =[Monitor1Top] + 0.6 * [Monitor1Height] 
+[3]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]      
+GridLeft     =[Monitor1Left]                              
+GridRight    =[Monitor1Left] + (1/3) * [Monitor1Width]    
+GridBottom   =[Monitor1Top] + [Monitor1Height]           
+[4]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]                
+GridLeft     =[Monitor1Left] + (1/3) * [Monitor1Width]              
+GridRight    =[Monitor1Left] + (2/3) * [Monitor1Width]              
+GridBottom   =[Monitor1Top] + [Monitor1Height]                     
+[5]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]                
+GridLeft     =[Monitor1Left] + (2/3) * [Monitor1Width]              
+GridRight    =[Monitor1Left] + [Monitor1Width]              
+GridBottom   =[Monitor1Top] + [Monitor1Height]                     
+[6]
+TriggerTop   = [MonitorReal2Top]
+TriggerLeft  = [MonitorReal2Left]
+TriggerBottom= [MonitorReal2Top] + 30
+TriggerRight = [MonitorReal2Left] + 30
+GridTop      = [Monitor2Top]
+GridLeft     = [Monitor2Left]
+GridBottom   = [Monitor2Top] + [Monitor2Height] / 2
+GridRight    = [Monitor2Left] + [Monitor2Width] / 2
+[7]
+TriggerTop   = [MonitorReal2Top]
+TriggerLeft  = [MonitorReal2Right] - 30
+TriggerBottom= [MonitorReal2Top] + 30
+TriggerRight = [MonitorReal2Right]
+GridTop      = [Monitor2Top]
+GridLeft     = [Monitor2Right] - [Monitor2Width] / 2
+GridBottom   = [Monitor2Top] + [Monitor2Height] / 2
+GridRight    = [Monitor2Right]
+[8]
+TriggerTop   = [MonitorReal2Bottom] - 30
+TriggerLeft  = [MonitorReal2Left]
+TriggerBottom= [MonitorReal2Bottom]
+TriggerRight = [MonitorReal2Left] + 30
+GridTop      = [Monitor2Top] + [Monitor2Height] / 2
+GridLeft     = [Monitor2Left]
+GridBottom   = [Monitor2Bottom]
+GridRight    = [Monitor2Left] + [Monitor2Width] / 2
+[9]
+TriggerTop   = [MonitorReal2Bottom] - 30
+TriggerLeft  = [MonitorReal2Right] - 30
+TriggerBottom= [MonitorReal2Bottom]
+TriggerRight = [MonitorReal2Right]
+GridTop      = [Monitor2Top] + [Monitor2Height] / 2 
+GridLeft     = [Monitor2Right] - [Monitor2Width] / 2
+GridBottom   = [Monitor2Bottom]
+GridRight    = [Monitor2Right]
+[10]
+TriggerTop   = [MonitorReal2Top] + [MonitorReal2Height] * 0.3
+TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.3
+TriggerBottom= [MonitorReal2Top] + [MonitorReal2Height] * 0.7
+TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+GridTop      = [Monitor2Top] + [Monitor2Height] * 0.1
+GridLeft     = [Monitor2Left] + [Monitor2Width] * 0.1
+GridBottom   = [Monitor2Top] + [Monitor2Height] * 0.9
+GridRight    = [Monitor2Left] + [Monitor2Width] * 0.9  
diff --git a/Grids/BigGrid3.grid b/Grids/BigGrid3.grid
new file mode 100644
index 0000000..6ff730f
--- /dev/null
+++ b/Grids/BigGrid3.grid
@@ -0,0 +1,110 @@
+[Groups]
+NumberOfGroups=12
+[1]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left]  + (1/2) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height] - 30
+GridTop      =[Monitor1Top]                            
+GridLeft     =[Monitor1Left]                          
+GridRight    =[Monitor1Left]  + (1/2) * [Monitor1Width]
+GridBottom   =[Monitor1Top] + 0.6 * [Monitor1Height] 
+[2]
+TriggerTop   =[Monitor1Top]
+TriggerLeft  =[Monitor1Left] + (1/2) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height] - 30
+GridTop      =[Monitor1Top]                            
+GridLeft     =[Monitor1Left] + (1/2) * [Monitor1Width] 
+GridRight    =[Monitor1Left] + [Monitor1Width]         
+GridBottom   =[Monitor1Top] + 0.6 * [Monitor1Height] 
+[3]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]      
+GridLeft     =[Monitor1Left]                              
+GridRight    =[Monitor1Left] + (1/3) * [Monitor1Width]    
+GridBottom   =[Monitor1Top] + [Monitor1Height]           
+[4]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left] + (1/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]                
+GridLeft     =[Monitor1Left] + (1/3) * [Monitor1Width]              
+GridRight    =[Monitor1Left] + (2/3) * [Monitor1Width]              
+GridBottom   =[Monitor1Top] + [Monitor1Height]                     
+[5]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height]
+TriggerLeft  =[Monitor1Left] + (2/3) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + [Monitor1Height]
+GridTop      =[Monitor1Top] + 0.6 * [Monitor1Height]                
+GridLeft     =[Monitor1Left] + (2/3) * [Monitor1Width]              
+GridRight    =[Monitor1Left] + [Monitor1Width]              
+GridBottom   =[Monitor1Top] + [Monitor1Height]                     
+[6]
+TriggerTop   = [MonitorReal2Top] + [MonitorReal2Height] * 0.3
+TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.3
+TriggerBottom= [MonitorReal2Top] + [MonitorReal2Height] * 0.7
+TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+GridTop      = [Monitor2Top] + [Monitor2Height] * 0.1
+GridLeft     = [Monitor2Left] + [Monitor2Width] * 0.1
+GridBottom   = [Monitor2Top] + [Monitor2Height] * 0.9
+GridRight    = [Monitor2Left] + [Monitor2Width] * 0.9  
+[7]
+TriggerTop   = [MonitorReal2Top]
+TriggerLeft  = [MonitorReal2Left]
+TriggerBottom= [MonitorReal2Top] + 30
+TriggerRight = [MonitorReal2Left] + 30
+GridTop      = [Monitor2Top]
+GridLeft     = [Monitor2Left]
+GridBottom   = [Monitor2Top] + [Monitor2Height] / 2
+GridRight    = [Monitor2Left] + [Monitor2Width] / 2
+[8]
+TriggerTop   = [MonitorReal2Top]
+TriggerLeft  = [MonitorReal2Right] - 30
+TriggerBottom= [MonitorReal2Top] + 30
+TriggerRight = [MonitorReal2Right]
+GridTop      = [Monitor2Top]
+GridLeft     = [Monitor2Right] - [Monitor2Width] / 2
+GridBottom   = [Monitor2Top] + [Monitor2Height] / 2
+GridRight    = [Monitor2Right]
+[9]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height] - 30
+TriggerLeft  =[Monitor1Left]
+TriggerRight =[Monitor1Left]  + (1/2) * [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height]
+GridTop   = Run
+GridLeft  = "Plugins\WindowPositions.exe store"
+GridBottom= Store Position
+GridRight = Plugins\
+[10]
+TriggerTop   =[Monitor1Top] + 0.6 * [Monitor1Height] - 30
+TriggerLeft  =[Monitor1Left] + (1/2) * [Monitor1Width]
+TriggerRight =[Monitor1Left] + [Monitor1Width]
+TriggerBottom=[Monitor1Top] + 0.6 * [Monitor1Height]
+GridTop   = Run
+GridLeft  = "Plugins\WindowPositions.exe Load"
+GridBottom= Load Position
+GridRight = Plugins\
+[11]
+TriggerTop   = [MonitorReal2Bottom] - 30
+TriggerLeft  = [MonitorReal2Left]
+TriggerBottom= [MonitorReal2Bottom]
+TriggerRight = [MonitorReal2Left] + 30
+GridTop      = [Monitor2Top] + [Monitor2Height] / 2
+GridLeft     = [Monitor2Left]
+GridBottom   = [Monitor2Bottom]
+GridRight    = [Monitor2Left] + [Monitor2Width] / 2
+[12]
+TriggerTop   = [MonitorReal2Bottom] - 30
+TriggerLeft  = [MonitorReal2Right] - 30
+TriggerBottom= [MonitorReal2Bottom]
+TriggerRight = [MonitorReal2Right]
+GridTop      = [Monitor2Top] + [Monitor2Height] / 2 
+GridLeft     = [Monitor2Right] - [Monitor2Width] / 2
+GridBottom   = [Monitor2Bottom]
+GridRight    = [Monitor2Right]
diff --git a/Grids/BriansGrid.grid b/Grids/BriansGrid.grid
new file mode 100644
index 0000000..5bd10c4
--- /dev/null
+++ b/Grids/BriansGrid.grid
@@ -0,0 +1,27 @@
+[Groups]
+
+NumberOfGroups = 2
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /3
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height]/2
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\MaximizeWindow_OtherScreen.exe 2"
+  GridBottom= To Monitor2
+  GridRight = Plugins\
+  
+[2]
+
+  TriggerTop   = [Monitor1Bottom] - [Monitor1Height]/2 + 0.000001
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /3
+  TriggerBottom= [Monitor1Bottom] 
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\MaximizeWindow_OtherScreen.exe 1"
+  GridBottom= To Monitor1
+  GridRight = Plugins\
diff --git a/Grids/Complex Grid 2.grid b/Grids/Complex Grid 2.grid
new file mode 100644
index 0000000..f2aa860
--- /dev/null
+++ b/Grids/Complex Grid 2.grid	
@@ -0,0 +1,1593 @@
+; grid: xipergrid1
+; generated: Wed Oct 14 09:46:33 2009
+
+
+[Groups]
+
+NumberOfGroups = 132
+
+
+[1]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[2]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[3]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[4]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 4)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] )
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[5]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[6]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[7]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[8]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 6)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 2) - 20
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 2) + 20
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] )
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3)/2)
+
+
+[9]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[10]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[11]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[12]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 4)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] )
+
+
+[13]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[14]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[15]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[16]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 2) - 20
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 2) + 20
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 6)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3)/2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] )
+GridRight     = [Monitor1Right]
+
+
+[17]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[18]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[19]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[20]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[21]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[22]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[23]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[24]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[25]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[26]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] )
+
+
+[27]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] )
+
+
+[28]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] )
+
+
+[29]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[30]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[31]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 0)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[32]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[33]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[34]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 1)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[35]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[36]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[37]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 2)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] /3*2)
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[38]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] )
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[39]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] )
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[40]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Top]
+GridBottom    = [Monitor1Top] + ([Monitor1Height] )
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[41]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[42]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[43]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[44]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[45]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[46]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[47]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 10)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3)
+GridRight     = [Monitor1Right]
+
+
+[48]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 9)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /2)
+GridRight     = [Monitor1Right]
+
+
+[49]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 8)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] /3*2)
+GridRight     = [Monitor1Right]
+
+
+[50]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] )
+GridRight     = [Monitor1Right]
+
+
+[51]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] )
+GridRight     = [Monitor1Right]
+
+
+[52]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Right] - ([Monitor1Width] )
+GridRight     = [Monitor1Right]
+
+
+[53]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[54]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[55]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 10)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[56]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[57]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[58]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 9)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[59]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[60]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[61]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 8)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] /3*2)
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[62]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 0)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] )
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3)
+
+
+[63]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 1)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] )
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /2)
+
+
+[64]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 3)
+GridTop       = [Monitor1Bottom] - ([Monitor1Height] )
+GridBottom    = [Monitor1Bottom]
+GridLeft      = [Monitor1Left]
+GridRight     = [Monitor1Left] + ([Monitor1Width] /3*2)
+
+
+[65]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 4)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 6)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 4)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 6)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /3*2)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /3*2)/2)
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /3*2)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /3*2)/2)
+
+
+[66]
+
+TriggerTop    = [Monitor1Top]  + ([Monitor1Height] / 10 * 3)
+TriggerBottom = [Monitor1Top]  + ([Monitor1Height] / 10 * 7)
+TriggerLeft   = [Monitor1Left] + ([Monitor1Width]  / 10 * 2)
+TriggerRight  = [Monitor1Left] + ([Monitor1Width]  / 10 * 7)
+GridTop       = [Monitor1Top] + ([Monitor1Height] / 2) - (([Monitor1Height] /5*4)/2)
+GridBottom    = [Monitor1Top] + ([Monitor1Height] / 2) + (([Monitor1Height] /5*4)/2)
+GridLeft      = [Monitor1Left] + ([Monitor1Width] / 2) - (([Monitor1Width] /5*4)/2)
+GridRight     = [Monitor1Left] + ([Monitor1Width] / 2) + (([Monitor1Width] /5*4)/2)
+
+
+[67]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[68]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[69]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[70]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 4)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] )
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[71]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[72]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[73]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[74]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 6)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 2) - 20
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 2) + 20
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] )
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3)/2)
+
+
+[75]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[76]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[77]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[78]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 4)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] )
+
+
+[79]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[80]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[81]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[82]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 2) - 20
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 2) + 20
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 6)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3)/2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] )
+GridRight     = [Monitor2Right]
+
+
+[83]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[84]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[85]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[86]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[87]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[88]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[89]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[90]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[91]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[92]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] )
+
+
+[93]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] )
+
+
+[94]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] )
+
+
+[95]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[96]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[97]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 0)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[98]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[99]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[100]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 1)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[101]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[102]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[103]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 2)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] /3*2)
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[104]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] )
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[105]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] )
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[106]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Top]
+GridBottom    = [Monitor2Top] + ([Monitor2Height] )
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[107]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[108]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[109]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[110]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[111]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[112]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[113]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 10)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3)
+GridRight     = [Monitor2Right]
+
+
+[114]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 9)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /2)
+GridRight     = [Monitor2Right]
+
+
+[115]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 8)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] /3*2)
+GridRight     = [Monitor2Right]
+
+
+[116]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] )
+GridRight     = [Monitor2Right]
+
+
+[117]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] )
+GridRight     = [Monitor2Right]
+
+
+[118]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Right] - ([Monitor2Width] )
+GridRight     = [Monitor2Right]
+
+
+[119]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[120]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[121]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 10)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[122]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[123]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[124]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 9)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[125]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[126]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[127]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 8)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] /3*2)
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[128]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 0)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] )
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3)
+
+
+[129]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 1)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] )
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /2)
+
+
+[130]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 3)
+GridTop       = [Monitor2Bottom] - ([Monitor2Height] )
+GridBottom    = [Monitor2Bottom]
+GridLeft      = [Monitor2Left]
+GridRight     = [Monitor2Left] + ([Monitor2Width] /3*2)
+
+
+[131]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 4)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 6)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 4)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 6)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /3*2)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /3*2)/2)
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /3*2)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /3*2)/2)
+
+
+[132]
+
+TriggerTop    = [Monitor2Top]  + ([Monitor2Height] / 10 * 3)
+TriggerBottom = [Monitor2Top]  + ([Monitor2Height] / 10 * 7)
+TriggerLeft   = [Monitor2Left] + ([Monitor2Width]  / 10 * 2)
+TriggerRight  = [Monitor2Left] + ([Monitor2Width]  / 10 * 7)
+GridTop       = [Monitor2Top] + ([Monitor2Height] / 2) - (([Monitor2Height] /5*4)/2)
+GridBottom    = [Monitor2Top] + ([Monitor2Height] / 2) + (([Monitor2Height] /5*4)/2)
+GridLeft      = [Monitor2Left] + ([Monitor2Width] / 2) - (([Monitor2Width] /5*4)/2)
+GridRight     = [Monitor2Left] + ([Monitor2Width] / 2) + (([Monitor2Width] /5*4)/2)
+
+
diff --git a/Grids/Complex Grid.grid b/Grids/Complex Grid.grid
new file mode 100644
index 0000000..138f37f
--- /dev/null
+++ b/Grids/Complex Grid.grid	
@@ -0,0 +1,217 @@
+[Groups]
+
+  NumberOfGroups = 20
+
+[1]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[2]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] /3 *2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[3]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /2
+
+[4]
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] /3
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[5]
+  TriggerTop    = [Monitor1Top]  +     [Monitor1Height] /3
+  TriggerRight  = [Monitor1Left] + 2 * [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top]  + 2 * [Monitor1Height] /3 - 20
+  TriggerLeft   = [Monitor1Left] +     [Monitor1Width]  /3
+  GridTop       = [Monitor1Top]  +     [Monitor1Height] /5 
+  GridRight     = [Monitor1Left] + 4 * [Monitor1Width]  /5
+  GridBottom    = [Monitor1Top]  + 4 * [Monitor1Height] /5
+  GridLeft      = [Monitor1Left] +     [Monitor1Width]  /5
+
+[6]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top] + [Monitor1Height] /3 *2
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] /3 *2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width] /2
+
+[7]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left]
+
+[8]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] /3 *2
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left]
+
+[9]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /2
+
+[10]
+
+  TriggerTop    = [Monitor1Top]  + 2 * [Monitor1Height] /3 - 20
+  TriggerRight  = [Monitor1Left] + 2 * [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top]  + 2 * [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left] +     [Monitor1Width]  /3
+  GridTop       = Run
+  GridLeft      = Plugins\MinimizeWindow.exe
+  GridBottom    = Minimize
+  GridRight     =
+
+[11]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[12]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerRight  = [Monitor2Left] + [Monitor2Width] /3 *2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[13]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /2
+
+[14]
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] /3
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[15]
+  TriggerTop    = [Monitor2Top]  +     [Monitor2Height] /3
+  TriggerRight  = [Monitor2Left] + 2 * [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top]  + 2 * [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left] +     [Monitor2Width]  /3
+  GridTop       = [Monitor2Top]  +     [Monitor2Height] /5 
+  GridRight     = [Monitor2Left] + 4 * [Monitor2Width]  /5
+  GridBottom    = [Monitor2Top]  + 4 * [Monitor2Height] /5
+  GridLeft      = [Monitor2Left] +     [Monitor2Width]  /5
+
+[16]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] /3 *2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width] /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width] /2
+
+[17]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left]
+
+[18]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width] /3 *2
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left]
+
+[19]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /2
+
+[20]
+
+  TriggerTop    = [Monitor2Top]  + 2 * [Monitor2Height] /3 - 20
+  TriggerRight  = [Monitor2Left] + 2 * [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top]  + 2 * [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left] +     [Monitor2Width]  /3
+  GridTop       = Run
+  GridLeft      = Plugins\MinimizeWindow.exe
+  GridBottom    = Minimize
+  GridRight     =
diff --git a/Grids/DZRs_Grid.grid b/Grids/DZRs_Grid.grid
new file mode 100644
index 0000000..edcb64d
--- /dev/null
+++ b/Grids/DZRs_Grid.grid
@@ -0,0 +1,15 @@
+[Groups]
+ 
+  NumberOfGroups = 6
+ 
+[1]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] * 0.25
+  TriggerBottom = [Monitor1Bottom]
+  TriggerRight  = [Monitor1Right] - [Monitor1Width] * 0.25
+  GridTop       = [Monitor1Top]                           
+  GridLeft      = [Monitor1Left] + [Monitor1Width] * 0.25 
+  GridBottom    = [Monitor1Bottom]                        
+  GridRight     = [Monitor1Right] - [Monitor1Width] * 0.25
+
diff --git a/Grids/Dual Screen.grid b/Grids/Dual Screen.grid
new file mode 100644
index 0000000..ca24f8d
--- /dev/null
+++ b/Grids/Dual Screen.grid	
@@ -0,0 +1,82 @@
+[Groups]
+	NumberOfGroups = 8
+
+[1]
+	TriggerTop    = [Monitor1Top]
+	TriggerRight  = [Monitor1Left] + [Monitor1Width]  /60
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft   = [Monitor1Left]
+	GridTop       = [Monitor1Top]
+	GridRight     = [Monitor1Left] + [Monitor1Width]  /3
+	GridBottom    = [Monitor1Bottom]
+	GridLeft      = [Monitor1Left]
+	
+[2]
+	TriggerTop    = [Monitor1Top]
+	TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+	TriggerBottom = [Monitor1Top] + [Monitor1Height] /2
+	TriggerLeft   = [Monitor1Left] + [Monitor1Width] /60
+	GridTop       = [Monitor1Top]
+	GridRight     = [Monitor1Left] + [Monitor1Width]  /3
+	GridBottom    = [Monitor1Top] + [Monitor1Height] /2
+	GridLeft      = [Monitor1Left]
+
+[3]
+	TriggerTop    = [Monitor1Top] + [Monitor1Height] /2
+	TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft   = [Monitor1Left] + [Monitor1Width] /60
+	GridTop       = [Monitor1Top] + [Monitor1Height] /2
+	GridRight     = [Monitor1Left] + [Monitor1Width]  /3
+	GridBottom    = [Monitor1Bottom]
+	GridLeft      = [Monitor1Left]
+
+[4]
+	TriggerTop    = [Monitor1Top]
+	TriggerRight  = [Monitor1Right]
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3
+	GridTop       = [Monitor1Top]
+	GridRight     = [Monitor1Right]
+	GridBottom    = [Monitor1Bottom]
+	GridLeft      = [Monitor1Left] + [Monitor1Width]  /3
+ 
+[5]
+	TriggerTop    = [Monitor2Top]
+	TriggerRight  = [Monitor2Right]
+	TriggerBottom = [Monitor2Bottom]
+	TriggerLeft   = [Monitor2Right] - [Monitor2Width] /60
+	GridTop       = [Monitor2Top]
+	GridRight     = [Monitor2Right]
+	GridBottom    = [Monitor2Bottom]
+	GridLeft      = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[6]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3 *2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[7]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right] - [Monitor2Width] /60
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[8]
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2
+  TriggerRight  = [Monitor2Right] - [Monitor2Width] /60
+  TriggerBottom = [Monitor2Bottom]         
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2
+  GridRight     = [Monitor2Right]          
+  GridBottom    = [Monitor2Bottom]         
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /3 *2
diff --git a/Grids/Edge Grid.grid b/Grids/Edge Grid.grid
new file mode 100644
index 0000000..1122594
--- /dev/null
+++ b/Grids/Edge Grid.grid	
@@ -0,0 +1,399 @@
+[Groups]
+
+  NumberOfGroups = 31
+  
+[1]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Top]  + 30
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[2]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[4]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[5]
+
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.3
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.3
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.7
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] * 0.1
+  GridLeft  = [Monitor1Left] + [Monitor1Width] * 0.1
+  GridBottom= [Monitor1Top] + [Monitor1Height] * 0.9
+  GridRight = [Monitor1Left] + [Monitor1Width] * 0.9
+  
+[6]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left] + 30
+  TriggerBottom= [MonitorReal1Top] + 10
+  TriggerRight = [MonitorReal1Right] - 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor1Bottom]
+  GridRight = WindowWidth 
+
+[7]
+
+  TriggerTop   = [MonitorReal1Top] + 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom] - 30
+  TriggerRight = [MonitorReal1Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor1Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor1Right] 
+  
+
+[8]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+
+[9]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Right]
+[10]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+  
+[11]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+  
+[12]
+
+  TriggerTop   = [MonitorReal2Top] + [MonitorReal2Height] * 0.3
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.3
+  TriggerBottom= [MonitorReal2Top] + [MonitorReal2Height] * 0.7
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] * 0.1
+  GridLeft  = [Monitor2Left] + [Monitor2Width] * 0.1
+  GridBottom= [Monitor2Top] + [Monitor2Height] * 0.9
+  GridRight = [Monitor2Left] + [Monitor2Width] * 0.9  
+
+[13]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left] + 30
+  TriggerBottom= [MonitorReal2Top] + 10
+  TriggerRight = [MonitorReal2Right] - 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor2Bottom]
+  GridRight = WindowWidth 
+  
+[14]
+
+  TriggerTop   = [MonitorReal2Top] + 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom] - 30
+  TriggerRight = [MonitorReal2Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor2Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor2Right] 
+  
+[15]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+  
+[16]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]
+  
+[17]
+
+  TriggerTop   = [MonitorReal3Top] + [MonitorReal3Height] * 0.3
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.3
+  TriggerBottom= [MonitorReal3Top] + [MonitorReal3Height] * 0.7
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] * 0.1
+  GridLeft  = [Monitor3Left] + [Monitor3Width] * 0.1
+  GridBottom= [Monitor3Top] + [Monitor3Height] * 0.9
+  GridRight = [Monitor3Left] + [Monitor3Width] * 0.9  
+
+[18]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+
+[19]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Right]
+
+[20]
+
+  TriggerTop   = [MonitorReal3Top] + 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom] - 30
+  TriggerRight = [MonitorReal3Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor3Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor3Right] 
+  
+[21]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left] + 30
+  TriggerBottom= [MonitorReal3Top] + 10
+  TriggerRight = [MonitorReal3Right] - 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor3Bottom]
+  GridRight = WindowWidth 
+
+[22]
+  
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.7
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 120
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.7 +30
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[23]
+  
+  TriggerTop   = [MonitorReal2Top] +  [MonitorReal2Height] * 0.7
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 120
+  TriggerBottom= [MonitorReal2Top] +  [MonitorReal2Height] * 0.7 +30
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[24]
+  
+  TriggerTop   = [MonitorReal3Top] +  [MonitorReal3Height] * 0.7
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 120
+  TriggerBottom= [MonitorReal3Top] +  [MonitorReal3Height] * 0.7 +30
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[25]
+  
+  TriggerTop   = [MonitorReal1Top] +  [MonitorReal1Height] * 0.7
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 240
+  TriggerBottom= [MonitorReal1Top] +  [MonitorReal1Height] * 0.7 +30
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 120
+  
+  GridTop   = Maximize
+  GridLeft  = Maximize
+  GridBottom= Maximize
+  GridRight = Maximize
+
+[26]
+  
+  TriggerTop   = [MonitorReal2Top] +  [MonitorReal2Height] * 0.7
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 240
+  TriggerBottom= [MonitorReal2Top] +  [MonitorReal2Height] * 0.7 +30
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 120
+  
+  GridTop   = Maximize
+  GridLeft  = Maximize
+  GridBottom= Maximize
+  GridRight = Maximize
+
+[27]
+  
+  TriggerTop   = [MonitorReal3Top] +  [MonitorReal3Height] * 0.7
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 240
+  TriggerBottom= [MonitorReal3Top] +  [MonitorReal3Height] * 0.7 +30
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 120
+  
+  GridTop   = Maximize
+  GridLeft  = Maximize
+  GridBottom= Maximize
+  GridRight = Maximize
+
+[28]
+  
+  TriggerTop   = [MonitorReal1Top] +  [MonitorReal1Height] * 0.7
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 360
+  TriggerBottom= [MonitorReal1Top] +  [MonitorReal1Height] * 0.7 +30
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 240
+  
+  GridTop   = AlwaysOnTop
+  GridLeft  = AlwaysOnTop
+  GridBottom= AlwaysOnTop
+  GridRight = AlwaysOnTop
+
+[29]
+  
+  TriggerTop   = [MonitorReal2Top] +  [MonitorReal2Height] * 0.7
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 360
+  TriggerBottom= [MonitorReal2Top] +  [MonitorReal2Height] * 0.7 +30
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 240
+  
+  GridTop   = AlwaysOnTop
+  GridLeft  = AlwaysOnTop
+  GridBottom= AlwaysOnTop
+  GridRight = AlwaysOnTop
+
+[30]
+  
+  TriggerTop   = [MonitorReal3Top] +  [MonitorReal3Height] * 0.7
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 360
+  TriggerBottom= [MonitorReal3Top] +  [MonitorReal3Height] * 0.7 +30
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 240
+  
+  GridTop   = AlwaysOnTop
+  GridLeft  = AlwaysOnTop
+  GridBottom= AlwaysOnTop
+  GridRight = AlwaysOnTop
+
+[31]
+  
+  TriggerTop   = [MonitorReal1Top] +  [MonitorReal1Height] * 0.7
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 480
+  TriggerBottom= [MonitorReal1Top] +  [MonitorReal1Height] * 0.7 +30
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7 - 360
+  
+  GridTop   = Run
+  GridLeft  = Plugins\MinimizeWindow.exe
+  GridBottom= Minimize
+  GridRight =
+
+[32]
+  
+  TriggerTop   = [MonitorReal2Top] +  [MonitorReal2Height] * 0.7
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 480
+  TriggerBottom= [MonitorReal2Top] +  [MonitorReal2Height] * 0.7 +30
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7 - 360
+  
+  GridTop   = Run
+  GridLeft  = Plugins\MinimizeWindow.exe
+  GridBottom= Minimize
+  GridRight =
+
+[33]
+  
+  TriggerTop   = [MonitorReal3Top] +  [MonitorReal3Height] * 0.7
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 480
+  TriggerBottom= [MonitorReal3Top] +  [MonitorReal3Height] * 0.7 +30
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7 - 360
+  
+  GridTop   = Run
+  GridLeft  = Plugins\MinimizeWindow.exe
+  GridBottom= Minimize
+  GridRight =
diff --git a/Grids/EdgeGrid Complex.grid b/Grids/EdgeGrid Complex.grid
new file mode 100644
index 0000000..8491e89
--- /dev/null
+++ b/Grids/EdgeGrid Complex.grid	
@@ -0,0 +1,267 @@
+[Groups]
+
+  NumberOfGroups = 22
+  
+[1]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[2]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[4]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[5]
+
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.3
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.3
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.7
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] * 0.1
+  GridLeft  = [Monitor1Left] + [Monitor1Width] * 0.1
+  GridBottom= [Monitor1Top] + [Monitor1Height] * 0.9
+  GridRight = [Monitor1Left] + [Monitor1Width] * 0.9
+  
+[7]
+
+  TriggerTop   = [MonitorReal1Top] + 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom] - 30
+  TriggerRight = [MonitorReal1Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor1Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor1Right] 
+  
+[6]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left] + 30
+  TriggerBottom= [MonitorReal1Top] + 10
+  TriggerRight = [MonitorReal1Right] - 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor1Bottom]
+  GridRight = WindowWidth 
+  
+[8]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+  
+[9]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+  
+[10]
+
+  TriggerTop   = [MonitorReal2Top] + [MonitorReal2Height] * 0.3
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.3
+  TriggerBottom= [MonitorReal2Top] + [MonitorReal2Height] * 0.7
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] * 0.1
+  GridLeft  = [Monitor2Left] + [Monitor2Width] * 0.1
+  GridBottom= [Monitor2Top] + [Monitor2Height] * 0.9
+  GridRight = [Monitor2Left] + [Monitor2Width] * 0.9  
+
+[11]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+
+[12]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Right]
+
+[13]
+
+  TriggerTop   = [MonitorReal2Top] + 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom] - 30
+  TriggerRight = [MonitorReal2Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor2Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor2Right] 
+  
+[14]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left] + 30
+  TriggerBottom= [MonitorReal2Top] + 10
+  TriggerRight = [MonitorReal2Right] - 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor2Bottom]
+  GridRight = WindowWidth 
+  
+[15]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+  
+[16]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]
+  
+[17]
+
+  TriggerTop   = [MonitorReal3Top] + [MonitorReal3Height] * 0.3
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.3
+  TriggerBottom= [MonitorReal3Top] + [MonitorReal3Height] * 0.7
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] * 0.1
+  GridLeft  = [Monitor3Left] + [Monitor3Width] * 0.1
+  GridBottom= [Monitor3Top] + [Monitor3Height] * 0.9
+  GridRight = [Monitor3Left] + [Monitor3Width] * 0.9  
+
+[18]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+
+[19]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Right]
+
+[20]
+
+  TriggerTop   = [MonitorReal3Top] + 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom] - 30
+  TriggerRight = [MonitorReal3Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor3Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor3Right] 
+  
+[21]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left] + 30
+  TriggerBottom= [MonitorReal3Top] + 10
+  TriggerRight = [MonitorReal3Right] - 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor3Bottom]
+  GridRight = WindowWidth 
+
+[22]
+
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.2
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.3
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.3
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = Run
+  GridLeft  = AltF4.ahk
+  GridBottom= AltF4
+  GridRight = 
diff --git a/Grids/MultipleGrid.grid b/Grids/MultipleGrid.grid
new file mode 100644
index 0000000..471c961
--- /dev/null
+++ b/Grids/MultipleGrid.grid
@@ -0,0 +1,69 @@
+[Groups]
+ 
+  NumberOfGroups = 1
+ 
+[1]
+
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] * 0.4
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] * 0.4 
+  TriggerBottom = [Monitor1Top] + [Monitor1Height] * 0.6
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] * 0.6
+  GridTop       = Run
+  GridLeft      = Plugins\MaximizeWindow.exe
+  GridBottom    = Maximize Window
+  GridRight     = Plugins\
+
+[2]
+ 
+  TriggerTop    = [Monitor1Top]
+  TriggerLeft   = [Monitor1Left]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 2
+  GridTop       = [Monitor1Top]
+  GridLeft      = [Monitor1Left]
+  GridBottom    = [Monitor1Bottom]
+  GridRight     = [Monitor1Left] + [Monitor1Width] / 2
+ 
+[3]
+ 
+  TriggerTop    = [Monitor1Top]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerRight  = [Monitor1Right]
+  GridTop       = [Monitor1Top]
+  GridLeft      = [Monitor1Left] + [Monitor1Width] / 2
+  GridBottom    = [Monitor1Bottom]
+  GridRight     = [Monitor1Right]
+
+[4]
+
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] * 0.4
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width] * 0.4 
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] * 0.6
+  TriggerRight  = [Monitor2Left] + [Monitor2Width] * 0.6
+  GridTop       = Run
+  GridLeft      = Plugins\MaximizeWindow.exe
+  GridBottom    = Maximize Window
+  GridRight     = Plugins\
+ 
+[5]
+ 
+  TriggerTop    = [Monitor2Top]
+  TriggerLeft   = [Monitor2Left]
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] / 2
+  TriggerRight  = [Monitor2Right]
+  GridTop       = [Monitor2Top]
+  GridLeft      = [Monitor2Left]
+  GridBottom    = [Monitor2Top] + [Monitor2Height] / 2
+  GridRight     = [Monitor2Right]
+ 
+[6]
+ 
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] / 2
+  TriggerLeft   = [Monitor2Left]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerRight  = [Monitor2Right]
+  GridTop       = [Monitor2Top] + [Monitor2Height] / 2
+  GridLeft      = [Monitor2Left]
+  GridBottom    = [Monitor2Bottom]
+  GridRight     = [Monitor2Right]
diff --git a/Grids/Run Demo.grid b/Grids/Run Demo.grid
new file mode 100644
index 0000000..5e3462d
--- /dev/null
+++ b/Grids/Run Demo.grid	
@@ -0,0 +1,75 @@
+[Groups]
+
+NumberOfGroups = 6
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /3
+  TriggerBottom= [Monitor1Bottom] - [Monitor1Height]/2
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\WindowPositions.exe store"
+  GridBottom= Store Position
+  GridRight = Plugins\
+  
+[2]
+
+  TriggerTop   = [Monitor1Bottom] - [Monitor1Height]/2 + 0.000001
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /3
+  TriggerBottom= [Monitor1Bottom] 
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\WindowPositions.exe Load"
+  GridBottom= Load Position
+  GridRight = Plugins\
+  
+[3]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] /3
+  TriggerBottom= [Monitor2Bottom] - [Monitor2Height]/2
+  TriggerRight = [Monitor2Left] + [Monitor2Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\WindowPositions.exe store"
+  GridBottom= StorePosition
+  GridRight = Plugins\
+  
+[4]
+
+  TriggerTop   = [Monitor2Bottom] - [Monitor2Height]/2 + 0.000001
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] /3
+  TriggerBottom= [Monitor2Bottom] 
+  TriggerRight = [Monitor2Left] + [Monitor2Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\WindowPositions.exe Load"
+  GridBottom= LoadPosition
+  GridRight = Plugins\
+  
+[5]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] /3
+  TriggerBottom= [Monitor3Bottom] - [Monitor3Height]/2
+  TriggerRight = [Monitor3Left] + [Monitor3Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\WindowPositions.exe store"
+  GridBottom= StorePosition
+  GridRight = Plugins\
+  
+[6]
+
+  TriggerTop   = [Monitor3Bottom] - [Monitor3Height]/2 + 0.000001
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] /3
+  TriggerBottom= [Monitor3Bottom] 
+  TriggerRight = [Monitor3Left] + [Monitor3Width] /3 * 2
+  
+  GridTop   = Run
+  GridLeft  = "Plugins\WindowPositions.exe Load"
+  GridBottom= LoadPosition
+  GridRight = Plugins\
diff --git a/Grids/SimpleGird.grid b/Grids/SimpleGird.grid
new file mode 100644
index 0000000..c4639ee
--- /dev/null
+++ b/Grids/SimpleGird.grid
@@ -0,0 +1,39 @@
+[Groups]
+
+NumberOfGroups = 3
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width] / 3
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] / 3
+
+[2]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /3
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width] *2/3
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /3
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] *2/3
+
+[3]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] *2/3
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]+ [Monitor1Width] *2/3
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
diff --git a/Grids/Spyda.grid b/Grids/Spyda.grid
new file mode 100644
index 0000000..3ed1fd0
--- /dev/null
+++ b/Grids/Spyda.grid
@@ -0,0 +1,321 @@
+[Groups]
+
+  NumberOfGroups = 30
+
+[1]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left]
+
+[2]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /2
+
+[3]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /2
+
+[4]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[5]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] /3 *2
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left]
+
+[6]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top] + [Monitor1Height] /3 *2
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] /3 *2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width] /2
+
+[7]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] /3 *2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2 + 0.1
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[8]
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] /3
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /3 *2
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /2
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[9]
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] /3
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /2
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] *2/3
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] /3
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  * 2/3
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[10]
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] /3
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  *2/3
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] *2/3
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] /2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width] / 3
+
+[11]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left]
+
+[12]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /2
+
+[13]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /2
+
+[14]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[15]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width] /3 *2
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left]
+
+[16]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] /3 *2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width] /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width] /2
+
+[17]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerRight  = [Monitor2Left] + [Monitor2Width] /3 *2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2 + 0.1
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[18]
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] /3
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /3 *2
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[19]
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] /3
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /2
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] *2/3
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width] /3
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  * 2/3
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[20]
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] /3
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  *2/3
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] *2/3
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width] /2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width] / 3
+
+[21]
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /3
+  TriggerLeft   = [Monitor3Left]
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Left] + [Monitor3Width]  /2
+  GridBottom    = [Monitor3Top]  + [Monitor3Height] /2
+  GridLeft      = [Monitor3Left]
+
+[22]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /3
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Top]  + [Monitor3Height] /2
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /2
+
+[23]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /3 *2
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+  GridTop       = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /2
+
+[24]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /3 *2
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left]
+  GridTop       = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  GridRight     = [Monitor3Left] + [Monitor3Width]  /2
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left]
+
+[25]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width] /3 *2
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /3
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Top]  + [Monitor3Height] /2
+  GridLeft      = [Monitor3Left]
+
+[26]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /3
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top] + [Monitor3Height] /3 *2
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width] /3 *2
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left] + [Monitor3Width] /2
+
+[27]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /3 *2
+  TriggerRight  = [Monitor3Left] + [Monitor3Width] /3 *2
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3
+  GridTop       = [Monitor3Top]  + [Monitor3Height] /2 + 0.1
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left]
+
+[28]
+  TriggerTop    = [Monitor3Top] + [Monitor3Height] /3
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /3 *2
+  TriggerLeft   = [Monitor3Left]
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Left] + [Monitor3Width]  /2
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left]
+
+[29]
+  TriggerTop    = [Monitor3Top] + [Monitor3Height] /3
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /2
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] *2/3
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width] /3
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Left] + [Monitor3Width]  * 2/3
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left]
+
+[30]
+  TriggerTop    = [Monitor3Top] + [Monitor3Height] /3
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  *2/3
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] *2/3
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width] /2
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Left] + [Monitor3Width]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left] + [Monitor3Width] / 3
diff --git a/Grids/Zola.grid b/Grids/Zola.grid
new file mode 100644
index 0000000..0f9faf6
--- /dev/null
+++ b/Grids/Zola.grid
@@ -0,0 +1,69 @@
+[Groups]
+ 
+  NumberOfGroups = 6
+ 
+[1]
+
+  TriggerTop    = [Monitor1Top] + [Monitor1Height] * 0.4
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] * 0.4 
+  TriggerBottom = [Monitor1Top] + [Monitor1Height] * 0.6
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] * 0.6
+  GridTop       = Run
+  GridLeft      = Plugins\MaximizeWindow.exe
+  GridBottom    = Maximize Window
+  GridRight     = Plugins\
+
+[2]
+ 
+  TriggerTop    = [Monitor1Top]
+  TriggerLeft   = [Monitor1Left]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width] / 2
+  GridTop       = [Monitor1Top]
+  GridLeft      = [Monitor1Left]
+  GridBottom    = [Monitor1Bottom]
+  GridRight     = [Monitor1Left] + [Monitor1Width] / 2
+ 
+[3]
+ 
+  TriggerTop    = [Monitor1Top]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width] / 2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerRight  = [Monitor1Right]
+  GridTop       = [Monitor1Top]
+  GridLeft      = [Monitor1Left] + [Monitor1Width] / 2
+  GridBottom    = [Monitor1Bottom]
+  GridRight     = [Monitor1Right]
+
+[4]
+
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] * 0.4
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width] * 0.4 
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] * 0.6
+  TriggerRight  = [Monitor2Left] + [Monitor2Width] * 0.6
+  GridTop       = Run
+  GridLeft      = Plugins\MaximizeWindow.exe
+  GridBottom    = Maximize Window
+  GridRight     = Plugins\
+ 
+[5]
+ 
+  TriggerTop    = [Monitor2Top]
+  TriggerLeft   = [Monitor2Left]
+  TriggerBottom = [Monitor2Top] + [Monitor2Height] / 2
+  TriggerRight  = [Monitor2Right]
+  GridTop       = [Monitor2Top]
+  GridLeft      = [Monitor2Left]
+  GridBottom    = [Monitor2Top] + [Monitor2Height] / 2
+  GridRight     = [Monitor2Right]
+ 
+[6]
+ 
+  TriggerTop    = [Monitor2Top] + [Monitor2Height] / 2
+  TriggerLeft   = [Monitor2Left]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerRight  = [Monitor2Right]
+  GridTop       = [Monitor2Top] + [Monitor2Height] / 2
+  GridLeft      = [Monitor2Left]
+  GridBottom    = [Monitor2Bottom]
+  GridRight     = [Monitor2Right]
diff --git a/Grids/edge vertical split.grid b/Grids/edge vertical split.grid
new file mode 100644
index 0000000..044ba62
--- /dev/null
+++ b/Grids/edge vertical split.grid	
@@ -0,0 +1,63 @@
+[Groups]
+
+NumberOfGroups = 5
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width] * 0.005
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] /2
+  
+[2]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] * .995
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /2
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] * 0.005
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right] * 0.05
+
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[4]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] * 0.95
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right] * 0.995
+
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[5]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Bottom] * 0.05
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] * 0.17
+  TriggerBottom= [Monitor1Bottom] * 0.95
+  TriggerRight = [Monitor1Right] * 0.83
+
+  GridTop   = [Monitor1Top] + [Monitor1Bottom] * 0.05
+  GridLeft  = [Monitor1Left] + [Monitor1Width] * 0.17
+  GridBottom= [Monitor1Bottom] * 0.95
+  GridRight = [Monitor1Right] * 0.83
diff --git a/Grids/excogitation.grid b/Grids/excogitation.grid
new file mode 100644
index 0000000..68446a0
--- /dev/null
+++ b/Grids/excogitation.grid
@@ -0,0 +1,242 @@
+[Groups]
+	NumberOfGroups = 24
+
+[1] left 2/3
+	TriggerTop = [Monitor1Top]
+	TriggerRight = [Monitor1Left] + 0.35 * [Monitor1Width]
+	TriggerBottom = [Monitor1Top] + 0.5 * [Monitor1Height] - 1
+	TriggerLeft = [Monitor1Left]
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Left] + 0.7 * [Monitor1Width]
+	GridBottom = [Monitor1Bottom]
+	GridLeft = [Monitor1Left]
+
+[2] right top 1/3
+	TriggerTop = [Monitor1Top]
+	TriggerRight = [Monitor1Left] + 0.5 * [Monitor1Width] - 1
+	TriggerBottom = [Monitor1Top] + 0.25 * [Monitor1Height]
+	TriggerLeft = [Monitor1Left] + 0.35 * [Monitor1Width]
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Right]
+	GridBottom = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridLeft = [Monitor1Left] + 0.7 * [Monitor1Width]
+
+[3] right bottom 1/3
+	TriggerTop = [Monitor1Top] + 0.25 * [Monitor1Height]
+	TriggerRight = [Monitor1Left] + 0.5 * [Monitor1Width] - 1
+	TriggerBottom = [Monitor1Top] + 0.5 * [Monitor1Height] - 1
+	TriggerLeft = [Monitor1Left] + 0.35 * [Monitor1Width]
+	GridTop = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridRight = [Monitor1Right]
+	GridBottom = [Monitor1Top] + [Monitor1Height]
+	GridLeft = [Monitor1Left] + 0.7 * [Monitor1Width]
+
+[4] left top 1/3
+	TriggerTop = [Monitor1Top]
+	TriggerRight = [Monitor1Left] + 0.65 * [Monitor1Width]
+	TriggerBottom = [Monitor1Top] + 0.25 * [Monitor1Height]
+	TriggerLeft = [Monitor1Left] + 0.5 * [Monitor1Width] +	1
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Left] + 0.3 * [Monitor1Width]
+	GridBottom = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridLeft = [Monitor1Left]
+
+[5] left bottom 1/3
+	TriggerTop = [Monitor1Top] + 0.25 * [Monitor1Height]
+	TriggerRight = [Monitor1Left] + 0.65 * [Monitor1Width]
+	TriggerBottom = [Monitor1Top] + 0.5 * [Monitor1Height] - 1
+	TriggerLeft = [Monitor1Left] + 0.5 * [Monitor1Width] + 1
+	GridTop = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridRight = [Monitor1Left] + 0.3 * [Monitor1Width]
+	GridBottom = [Monitor1Bottom]
+	GridLeft = [Monitor1Left]
+
+[6] right 2/3
+	TriggerTop = [Monitor1Top]
+	TriggerRight = [Monitor1Right]
+	TriggerBottom = [Monitor1Top] + 0.5 * [Monitor1Height] - 1
+	TriggerLeft = [Monitor1Left] + 0.65 * [Monitor1Width]
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Right]
+	GridBottom = [Monitor1Top] + [Monitor1Height]
+	GridLeft = [Monitor1Left] + 0.3 * [Monitor1Width]
+
+[7] left top 1/4
+	TriggerTop = [Monitor1Top] + 0.5 * [Monitor1Height] + 1
+	TriggerRight = [Monitor1Left] + 0.25 * [Monitor1Width]
+	TriggerBottom = [Monitor1Top] + 0.75 * [Monitor1Height]
+	TriggerLeft = [Monitor1Left]
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Left] + 0.5 * [Monitor1Width]
+	GridBottom = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridLeft = [Monitor1Left]
+
+[8] left bottom 1/4
+	TriggerTop = [Monitor1Top] + 0.75 * [Monitor1Height]
+	TriggerRight = [Monitor1Left] + 0.25 * [Monitor1Width]
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft = [Monitor1Left]
+	GridTop = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridRight = [Monitor1Left] + 0.5 * [Monitor1Width]
+	GridBottom = [Monitor1Bottom]
+	GridLeft = [Monitor1Left]
+
+[9] right top 1/4
+	TriggerTop = [Monitor1Top] + 0.5 * [Monitor1Height] + 1
+	TriggerRight = [Monitor1Left] + 0.5 * [Monitor1Width] - 1
+	TriggerBottom = [Monitor1Top] + 0.75 * [Monitor1Height]
+	TriggerLeft = [Monitor1Left] + 0.25 * [Monitor1Width]
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Right]
+	GridBottom = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridLeft = [Monitor1Left] + 0.5 * [Monitor1Width]
+
+[10] right bottom 1/4
+	TriggerTop = [Monitor1Top] + 0.75 * [Monitor1Height]
+	TriggerRight = [Monitor1Left] + 0.5* [Monitor1Width] - 1
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft = [Monitor1Left] + 0.25 * [Monitor1Width]
+	GridTop = [Monitor1Top] + 0.5 * [Monitor1Height]
+	GridRight = [Monitor1Right]
+	GridBottom = [Monitor1Bottom]
+	GridLeft = [Monitor1Left] + 0.5 * [Monitor1Width]
+
+[11] left 1/2
+	TriggerTop = [Monitor1Top] + 0.5 * [Monitor1Height] + 1
+	TriggerRight = [Monitor1Left] + 0.75 * [Monitor1Width]
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft = [Monitor1Left] + 0.5 * [Monitor1Width] + 1
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Left] + 0.5 * [Monitor1Width]
+	GridBottom = [Monitor1Bottom]
+	GridLeft = [Monitor1Left]
+
+[12] right  1/2
+	TriggerTop = [Monitor1Top] + 0.5 * [Monitor1Height] + 1
+	TriggerRight = [Monitor1Right]
+	TriggerBottom = [Monitor1Bottom]
+	TriggerLeft = [Monitor1Left] + 0.75 * [Monitor1Width]
+	GridTop = [Monitor1Top]
+	GridRight = [Monitor1Right]
+	GridBottom = [Monitor1Bottom]
+	GridLeft = [Monitor1Left] + 0.5 * [Monitor1Width]
+
+[13] left 2/3
+	TriggerTop = [Monitor2Top]
+	TriggerRight = [Monitor2Left] + 0.35 * [Monitor2Width]
+	TriggerBottom = [Monitor2Top] + 0.5 * [Monitor2Height] - 1
+	TriggerLeft = [Monitor2Left]
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Left] + 0.7 * [Monitor2Width]
+	GridBottom = [Monitor2Bottom]
+	GridLeft = [Monitor2Left]
+
+[14] right top 1/3
+	TriggerTop = [Monitor2Top]
+	TriggerRight = [Monitor2Left] + 0.5 * [Monitor2Width] - 1
+	TriggerBottom = [Monitor2Top] + 0.25 * [Monitor2Height]
+	TriggerLeft = [Monitor2Left] + 0.35 * [Monitor2Width]
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Right]
+	GridBottom = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridLeft = [Monitor2Left] + 0.7 * [Monitor2Width]
+
+[15] right bottom 1/3
+	TriggerTop = [Monitor2Top] + 0.25 * [Monitor2Height]
+	TriggerRight = [Monitor2Left] + 0.5 * [Monitor2Width] - 1
+	TriggerBottom = [Monitor2Top] + 0.5 * [Monitor2Height] - 1
+	TriggerLeft = [Monitor2Left] + 0.35 * [Monitor2Width]
+	GridTop = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridRight = [Monitor2Right]
+	GridBottom = [Monitor2Top] + [Monitor2Height]
+	GridLeft = [Monitor2Left] + 0.7 * [Monitor2Width]
+
+[16] left top 1/3
+	TriggerTop = [Monitor2Top]
+	TriggerRight = [Monitor2Left] + 0.65 * [Monitor2Width]
+	TriggerBottom = [Monitor2Top] + 0.25 * [Monitor2Height]
+	TriggerLeft = [Monitor2Left] + 0.5 * [Monitor2Width] +	1
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Left] + 0.3 * [Monitor2Width]
+	GridBottom = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridLeft = [Monitor2Left]
+
+[17] left bottom 1/3
+	TriggerTop = [Monitor2Top] + 0.25 * [Monitor2Height]
+	TriggerRight = [Monitor2Left] + 0.65 * [Monitor2Width]
+	TriggerBottom = [Monitor2Top] + 0.5 * [Monitor2Height] - 1
+	TriggerLeft = [Monitor2Left] + 0.5 * [Monitor2Width] + 1
+	GridTop = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridRight = [Monitor2Left] + 0.3 * [Monitor2Width]
+	GridBottom = [Monitor2Bottom]
+	GridLeft = [Monitor2Left]
+
+[18] right 2/3
+	TriggerTop = [Monitor2Top]
+	TriggerRight = [Monitor2Right]
+	TriggerBottom = [Monitor2Top] + 0.5 * [Monitor2Height] - 1
+	TriggerLeft = [Monitor2Left] + 0.65 * [Monitor2Width]
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Right]
+	GridBottom = [Monitor2Top] + [Monitor2Height]
+	GridLeft = [Monitor2Left] + 0.3 * [Monitor2Width]
+
+[19] left top 1/4
+	TriggerTop = [Monitor2Top] + 0.5 * [Monitor2Height] + 1
+	TriggerRight = [Monitor2Left] + 0.25 * [Monitor2Width]
+	TriggerBottom = [Monitor2Top] + 0.75 * [Monitor2Height]
+	TriggerLeft = [Monitor2Left]
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Left] + 0.5 * [Monitor2Width]
+	GridBottom = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridLeft = [Monitor2Left]
+
+[20] left bottom 1/4
+	TriggerTop = [Monitor2Top] + 0.75 * [Monitor2Height]
+	TriggerRight = [Monitor2Left] + 0.25 * [Monitor2Width]
+	TriggerBottom = [Monitor2Bottom]
+	TriggerLeft = [Monitor2Left]
+	GridTop = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridRight = [Monitor2Left] + 0.5 * [Monitor2Width]
+	GridBottom = [Monitor2Bottom]
+	GridLeft = [Monitor2Left]
+
+[21] right top 1/4
+	TriggerTop = [Monitor2Top] + 0.5 * [Monitor2Height] + 1
+	TriggerRight = [Monitor2Left] + 0.5 * [Monitor2Width] - 1
+	TriggerBottom = [Monitor2Top] + 0.75 * [Monitor2Height]
+	TriggerLeft = [Monitor2Left] + 0.25 * [Monitor2Width]
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Right]
+	GridBottom = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridLeft = [Monitor2Left] + 0.5 * [Monitor2Width]
+
+[22] right bottom 1/4
+	TriggerTop = [Monitor2Top] + 0.75 * [Monitor2Height]
+	TriggerRight = [Monitor2Left] + 0.5* [Monitor2Width] - 1
+	TriggerBottom = [Monitor2Bottom]
+	TriggerLeft = [Monitor2Left] + 0.25 * [Monitor2Width]
+	GridTop = [Monitor2Top] + 0.5 * [Monitor2Height]
+	GridRight = [Monitor2Right]
+	GridBottom = [Monitor2Bottom]
+	GridLeft = [Monitor2Left] + 0.5 * [Monitor2Width]
+
+[23] left 1/2
+	TriggerTop = [Monitor2Top] + 0.5 * [Monitor2Height] + 1
+	TriggerRight = [Monitor2Left] + 0.75 * [Monitor2Width]
+	TriggerBottom = [Monitor2Bottom]
+	TriggerLeft = [Monitor2Left] + 0.5 * [Monitor2Width] + 1
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Left] + 0.5 * [Monitor2Width]
+	GridBottom = [Monitor2Bottom]
+	GridLeft = [Monitor2Left]
+
+[24] right  1/2
+	TriggerTop = [Monitor2Top] + 0.5 * [Monitor2Height] + 1
+	TriggerRight = [Monitor2Right]
+	TriggerBottom = [Monitor2Bottom]
+	TriggerLeft = [Monitor2Left] + 0.75 * [Monitor2Width]
+	GridTop = [Monitor2Top]
+	GridRight = [Monitor2Right]
+	GridBottom = [Monitor2Bottom]
+	GridLeft = [Monitor2Left] + 0.5 * [Monitor2Width]
\ No newline at end of file
diff --git a/Grids/singx7_grid.grid b/Grids/singx7_grid.grid
new file mode 100644
index 0000000..0bfc919
--- /dev/null
+++ b/Grids/singx7_grid.grid
@@ -0,0 +1,132 @@
+[Groups]
+
+  NumberOfGroups = 12
+
+[1]
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Left] + [Monitor1Width]  /3 *2
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left]
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left]
+
+[2]
+
+  TriggerTop    = [Monitor1Top]
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /2.2
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Top]  + [Monitor1Height] /2
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /3 *2
+
+[3]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2.2
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Top]  + [Monitor1Height] /1.8
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /3 *2
+
+[4]
+
+  TriggerTop    = [Monitor1Top]  + [Monitor1Height] /2.2
+  TriggerRight  = [Monitor1Right]
+  TriggerBottom = [Monitor1Bottom]
+  TriggerLeft   = [Monitor1Left] + [Monitor1Width]  /3 *2
+  GridTop       = [Monitor1Top]  + [Monitor1Height] /2
+  GridRight     = [Monitor1Right]
+  GridBottom    = [Monitor1Bottom]
+  GridLeft      = [Monitor1Left] + [Monitor1Width]  /3 *2
+
+[1]
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Left] + [Monitor2Width]  /3 *2
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left]
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left]
+
+[2]
+
+  TriggerTop    = [Monitor2Top]
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /2.2
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Top]  + [Monitor2Height] /2
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[3]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2.2
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Top]  + [Monitor2Height] /1.8
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[4]
+
+  TriggerTop    = [Monitor2Top]  + [Monitor2Height] /2.2
+  TriggerRight  = [Monitor2Right]
+  TriggerBottom = [Monitor2Bottom]
+  TriggerLeft   = [Monitor2Left] + [Monitor2Width]  /3 *2
+  GridTop       = [Monitor2Top]  + [Monitor2Height] /2
+  GridRight     = [Monitor2Right]
+  GridBottom    = [Monitor2Bottom]
+  GridLeft      = [Monitor2Left] + [Monitor2Width]  /3 *2
+
+[1]
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Left] + [Monitor3Width]  /3 *2
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left]
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Left] + [Monitor3Width]  /3 *2
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left]
+
+[2]
+
+  TriggerTop    = [Monitor3Top]
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /2.2
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Top]  + [Monitor3Height] /2
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /3 *2
+
+[3]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2.2
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Top]  + [Monitor3Height] /1.8
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+  GridTop       = [Monitor3Top]
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /3 *2
+
+[4]
+
+  TriggerTop    = [Monitor3Top]  + [Monitor3Height] /2.2
+  TriggerRight  = [Monitor3Right]
+  TriggerBottom = [Monitor3Bottom]
+  TriggerLeft   = [Monitor3Left] + [Monitor3Width]  /3 *2
+  GridTop       = [Monitor3Top]  + [Monitor3Height] /2
+  GridRight     = [Monitor3Right]
+  GridBottom    = [Monitor3Bottom]
+  GridLeft      = [Monitor3Left] + [Monitor3Width]  /3 *2
diff --git a/Grids/test.grid b/Grids/test.grid
new file mode 100644
index 0000000..aa804bc
--- /dev/null
+++ b/Grids/test.grid
@@ -0,0 +1,106 @@
+[Groups]
+
+NumberOfGroups = 9
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] / 2 - 50
+  TriggerBottom= [Monitor1Top] + 35
+  TriggerRight = [Monitor1Left] + [Monitor1Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[2]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /2
+  TriggerRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /2
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+  
+  GridTop   = Current
+  GridLeft  = Current
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+
+[4]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] / 2 - 50
+  TriggerBottom= [Monitor2Top] + 35
+  TriggerRight = [Monitor2Left] + [Monitor2Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[5]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Top] + [Monitor2Height] /2
+  TriggerRight = [Monitor2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Top] + [Monitor2Height] /2
+  GridRight = [Monitor2Right]
+  
+[6]
+
+  TriggerTop   = [Monitor2Top] + [Monitor2Height] /2
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Right]
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] /2
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+
+[7]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] / 2 - 50
+  TriggerBottom= [Monitor3Top] + 35
+  TriggerRight = [Monitor3Left] + [Monitor3Width] / 2 + 50
+  
+  GridTop   = Restore
+  GridLeft  = Restore
+  GridBottom= Restore
+  GridRight = Restore
+
+[8]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Top] + [Monitor3Height] /2
+  TriggerRight = [Monitor3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Top] + [Monitor3Height] /2
+  GridRight = [Monitor3Right]
+  
+[9]
+
+  TriggerTop   = [Monitor3Top] + [Monitor3Height] /2
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Right]
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] /2
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]
diff --git a/Grids/teste.grid b/Grids/teste.grid
new file mode 100644
index 0000000..7031ee8
--- /dev/null
+++ b/Grids/teste.grid
@@ -0,0 +1,23 @@
+[Groups]
+
+NumberOfGroups = 2
+
+[1]
+  TriggerTop   = [Monitor1Top] 
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width]  
+  GridTop   = [Monitor1Top] 
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width]
+[2]
+  TriggerTop   = [Monitor1Top] - 0.1 *([Monitor1Bottom]-[Monitor1Top])
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width]  
+  GridTop   = [Monitor1Top] - 0.1 *([Monitor1Bottom]-[Monitor1Top]) 
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width]
+
diff --git a/Images/CLP_LOGO.png b/Images/CLP_LOGO.png
new file mode 100644
index 0000000..23d75c1
Binary files /dev/null and b/Images/CLP_LOGO.png differ
diff --git a/Images/Cody.png b/Images/Cody.png
new file mode 100644
index 0000000..a727546
Binary files /dev/null and b/Images/Cody.png differ
diff --git a/Images/Grid.bmp b/Images/Grid.bmp
new file mode 100644
index 0000000..88d97e6
Binary files /dev/null and b/Images/Grid.bmp differ
diff --git a/Images/GridMove.ico b/Images/GridMove.ico
new file mode 100644
index 0000000..16f0078
Binary files /dev/null and b/Images/GridMove.ico differ
diff --git a/Images/Gridh_black.bmp b/Images/Gridh_black.bmp
new file mode 100644
index 0000000..f086402
Binary files /dev/null and b/Images/Gridh_black.bmp differ
diff --git a/Images/Gridh_blue.bmp b/Images/Gridh_blue.bmp
new file mode 100644
index 0000000..508c6a0
Binary files /dev/null and b/Images/Gridh_blue.bmp differ
diff --git a/Images/Gridh_orange.bmp b/Images/Gridh_orange.bmp
new file mode 100644
index 0000000..1e85ea9
Binary files /dev/null and b/Images/Gridh_orange.bmp differ
diff --git a/Images/Gridv_black.bmp b/Images/Gridv_black.bmp
new file mode 100644
index 0000000..180fb73
Binary files /dev/null and b/Images/Gridv_black.bmp differ
diff --git a/Images/Gridv_blue.bmp b/Images/Gridv_blue.bmp
new file mode 100644
index 0000000..fc5d038
Binary files /dev/null and b/Images/Gridv_blue.bmp differ
diff --git a/Images/Gridv_orange.bmp b/Images/Gridv_orange.bmp
new file mode 100644
index 0000000..3fb0185
Binary files /dev/null and b/Images/Gridv_orange.bmp differ
diff --git a/Plugins/.DS_Store b/Plugins/.DS_Store
new file mode 100644
index 0000000..5008ddf
Binary files /dev/null and b/Plugins/.DS_Store differ
diff --git a/Plugins/CloseWindow.ahk b/Plugins/CloseWindow.ahk
new file mode 100644
index 0000000..5b3dbd4
--- /dev/null
+++ b/Plugins/CloseWindow.ahk
@@ -0,0 +1,9 @@
+;CloseWindow
+;By jgpaiva
+;date: January 2007
+;Function: Close the active window
+
+#NoTrayIcon
+
+WinClose,A
+return
diff --git a/Plugins/MaximizeWindow.ahk b/Plugins/MaximizeWindow.ahk
new file mode 100644
index 0000000..889dd90
--- /dev/null
+++ b/Plugins/MaximizeWindow.ahk
@@ -0,0 +1,36 @@
+;MaximizeWindow
+;By jgpaiva
+;January 2006
+;Function: Maximizes windows on the screen where the mouse is
+SetWinDelay,-1
+
+#notrayicon
+CoordMode,Mouse,Screen
+MouseGetPos,MouseX,MouseY
+WinGetPos,WinX,WinY,WinW,WinH,A
+MouseMonitor := GetMonitorNumber(MouseX,MouseY)
+If (MouseMonitor = "Error")
+{
+  msgbox,error retreiving monitor number
+  exitapp
+}
+SysGet,Monitor,Monitor,%MouseMonitor%
+;MsgBox,Mouse Position: %MouseX% %MouseY%`nMouse Monitor: %mousemonitor%`nMoving to %Winx% %winy%
+WinRestore,A
+WinMove,A,,%MonitorLeft%,%MonitorTop%,%WinW%,%WinH%
+WinMaximize,A
+exitapp
+
+
+GetMonitorNumber(X, Y)
+  {
+  SysGet,monitorcount,MonitorCount
+  Loop,%monitorcount%
+    {
+      SysGet,monitor,Monitor,%A_Index%
+      If (X <= MonitorRight AND X >= MonitorLeft 
+          AND Y >= monitorTop AND Y <= monitorBottom)
+        return, %a_index%
+    }
+  return error
+  }
diff --git a/Plugins/MaximizeWindow_OtherScreen.ahk b/Plugins/MaximizeWindow_OtherScreen.ahk
new file mode 100644
index 0000000..b3121ee
--- /dev/null
+++ b/Plugins/MaximizeWindow_OtherScreen.ahk
@@ -0,0 +1,17 @@
+;MaximizeWindow
+;By jgpaiva
+;January 2006
+;Function: Maximizes windows on the screen where the mouse is
+SetWinDelay,-1
+
+#notrayicon
+
+monitor = %1%
+
+SysGet,Monitor,Monitor,%Monitor%
+
+WinRestore,A
+
+WinMove,A,,%MonitorLeft%,%MonitorTop%,%WinW%,%WinH%
+WinMaximize,A
+exitapp
diff --git a/Plugins/MinimizeWindow.ahk b/Plugins/MinimizeWindow.ahk
new file mode 100644
index 0000000..1acaa50
--- /dev/null
+++ b/Plugins/MinimizeWindow.ahk
@@ -0,0 +1,3 @@
+#notrayicon
+WinMinimize,A
+return
diff --git a/Plugins/MousePosition.ahk b/Plugins/MousePosition.ahk
new file mode 100644
index 0000000..43a0ef5
--- /dev/null
+++ b/Plugins/MousePosition.ahk
@@ -0,0 +1,4 @@
+CoordMode,Mouse,Screen
+MouseGetPos, xpos, ypos 
+Msgbox, The cursor is at X%xpos% Y%ypos%
+return
diff --git a/Plugins/WindowPositions.ahk b/Plugins/WindowPositions.ahk
new file mode 100644
index 0000000..9a90f3c
--- /dev/null
+++ b/Plugins/WindowPositions.ahk
@@ -0,0 +1,31 @@
+#notrayicon
+If 0 != 1
+  return
+if 1 = store
+{
+  WinGetClass,WindowClass,A
+  WinGetPos,WindowLeft,WindowTop,WindowWidth,WindowHeight,A
+  IfNotExist,%a_scriptname%.ini
+    FileAppend,,%a_scriptname%.ini
+  IniWrite,%WindowLeft%,%A_ScriptName%.ini,%WindowClass%,WindowLeft
+  IniWrite,%WindowTop%,%A_ScriptName%.ini,%WindowClass%,WindowTop
+  IniWrite,%WindowWidth%,%A_ScriptName%.ini,%WindowClass%,WindowWidth
+  IniWrite,%WindowHeight%,%A_ScriptName%.ini,%WindowClass%,WindowHeight
+}
+else if 1 = load
+{
+  WinGetClass,WindowClass,A
+  WinGetPos,WindowLeft,WindowTop,WindowWidth,WindowHeight,A
+  IniRead,WindowLeft  ,%A_ScriptName%.ini,%WindowClass%,WindowLeft,Error
+  IniRead,WindowTop   ,%A_ScriptName%.ini,%WindowClass%,WindowTop,Error
+  IniRead,WindowWidth ,%A_ScriptName%.ini,%WindowClass%,WindowWidth,Error
+  IniRead,WindowHeight,%A_ScriptName%.ini,%WindowClass%,WindowHeight,Error
+  if (WindowLeft = "error" OR WindowTop = "error" 
+    OR WindowWidth = "error" OR WindowHeight = "error")
+    {
+      msgbox,window not yet stored: %WindowClass% 
+      return
+    }
+  WinMove,ahk_class %WindowClass%,,WindowLeft,WindowTop,WindowWidth,WindowHeight
+}
+return
diff --git a/Plugins/WindowPositions.exe.ini b/Plugins/WindowPositions.exe.ini
new file mode 100644
index 0000000..a86302a
--- /dev/null
+++ b/Plugins/WindowPositions.exe.ini
@@ -0,0 +1,25 @@
+[dopus.lister]
+WindowLeft=640
+WindowTop=0
+WindowWidth=640
+WindowHeight=770
+[#32770]
+WindowLeft=365
+WindowTop=185
+WindowWidth=550
+WindowHeight=400
+[Vim]
+WindowLeft=0
+WindowTop=0
+WindowWidth=640
+WindowHeight=464
+[mIRC]
+WindowLeft=853
+WindowTop=464
+WindowWidth=426
+WindowHeight=309
+[IMWindowClass]
+WindowLeft=2320
+WindowTop=414
+WindowWidth=640
+WindowHeight=426
diff --git a/README.md b/README.md
index 414a69e..2ecff42 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,19 @@
 GridMove
 ========
 
-GridMove is a program that aims at making windows management easier. It helps you with this task by defining a visual grid on your desktop, to which you can easily snap windows. 
\ No newline at end of file
+GridMove is a Windows program that aims at making windows management easier. It helps you with this task by defining a visual grid on your desktop, to which you can easily snap windows. It is built with [AutoHotkey](http://www.autohotkey.com "AutoHotKey"), a scripting language for desktop automation for Windows.
+
+More information at [GridMove's homepage](http://jgpaiva.dcmembers.com/gridmove.html).
+
+Source code organization
+------------------------
+
+* GridMove.ahk - Main program, most of the functionality
+* files.ahk - Configuration and Grid parsing
+* command.ahk - Keyboard (command) interface 
+* calc.ahk - Evaluates the .grid files
+* helper.ahk - Tooltips for first run
+* strings.ahk - Language file
+* Aero\_lib.ahk - Library for handling Aero look
+
+This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
diff --git a/files.ahk b/files.ahk
new file mode 100644
index 0000000..39b6bf7
--- /dev/null
+++ b/files.ahk
@@ -0,0 +1,407 @@
+;GridMove
+;By jgpaiva
+;date: May 2006
+;function: Adjusts windows to a predefined or user-defined desktop grid.
+
+;************************************************************************ini i/o
+ReadIni:
+
+  IfExist,%A_AppData%/DonationCoder/GridMove/%A_ScriptName%.ini
+    ScriptDir=%A_AppData%/DonationCoder/GridMove/%A_ScriptName%.ini
+  else
+    IfExist,%A_ScriptDir%\%A_ScriptName%.ini
+    {
+    filecopy,%A_ScriptDir%\%A_ScriptName%.ini,%A_AppData%/DonationCoder/GridMove/%A_ScriptName%.ini
+    ScriptDir=%A_AppData%/DonationCoder/GridMove/%A_ScriptName%.ini
+    }
+    else
+    {
+      ScriptDir=%A_AppData%/DonationCoder/GridMove/%A_ScriptName%.ini
+    }
+
+  IfExist,%ScriptDir%
+    IniRead,isFirstRun            ,%ScriptDir%,IniSettings,IniVersion,false
+    
+
+  IniVersion=15
+  IfExist,%ScriptDir%
+  {
+    IniRead,IniVersion            ,%ScriptDir%,IniSettings,IniVersion,1
+
+    If IniVersion = 0
+      Iniversion = 1
+    If IniVersion = 1
+    {
+      IniWrite,%GridOrder%        ,%ScriptDir%,GridSettings,GridOrder
+      IniVersion = 2
+      IniWrite,%IniVersion%       ,%ScriptDir%,IniSettings,Iniversion
+    }
+    If IniVersion = 2
+    {
+      IniWrite,%UseCommand%       ,%ScriptDir%,ProgramSettings,UseCommand
+      IniWrite,%CommandHotkey%    ,%ScriptDir%,ProgramSettings,CommandHotkey
+      IniWrite,%UseFastMove%      ,%ScriptDir%,ProgramSettings,UseFastMove
+      IniWrite,%FastMoveModifiers%,%ScriptDir%,ProgramSettings,FastMoveModifiers
+      IniVersion = 3
+      IniWrite, %IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 3
+    {
+      IniWrite,%TitleLeft%        ,%ScriptDir%,ProgramSettings,TitleLeft
+      IniVersion = 4
+      IniWrite, %IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 4
+    {
+      IniWrite,%ShowNumbersFlag%  ,%ScriptDir%,OtherSettings,ShowNumbersFlag
+      IniVersion = 5
+      IniWrite,%IniVersion%       ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 5
+    {
+      IniWrite,%MButtonTimeout%  ,%ScriptDir%,InterfaceSettings,MButtonTimeout
+      IniWrite,%Transparency%    ,%ScriptDir%,InterfaceSettings,Transparency
+      IniVersion = 6
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 6
+    {
+      IniWrite,%FastMoveMeta%    ,%ScriptDir%,ProgramSettings,FastMoveMeta
+      IniVersion = 7
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 7
+    {
+      IniWrite,%Exceptions%      ,%ScriptDir%,ProgramSettings,Exceptions
+      IniVersion = 8
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 8
+    {
+      IniWrite,%SafeMode%        ,%ScriptDir%,ProgramSettings,SafeMode
+      IniVersion = 9
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 9
+    {
+      IniWrite,%SequentialMove%  ,%ScriptDir%,ProgramSettings,SequentialMove
+      IniVersion = 10
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 10
+    {
+      IniWrite,%DebugMode%       ,%ScriptDir%,ProgramSettings,DebugMode
+      IniVersion = 11
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 11
+    {
+      IniWrite,%GridOrder%       ,%ScriptDir%,GridSettings,GridOrder
+      IniWrite,%GridName%        ,%ScriptDir%,GridSettings,GridName
+      IniVersion = 12
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 12
+    {
+      IniWrite,%DisableTitleButtonsDetection%,%ScriptDir%,OtherSettings,DisableTitleButtonsDetection
+      IniVersion = 13
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if Iniversion = 13
+    {
+      IniWrite,%ColorTheme%      ,%ScriptDir%,OtherSettings,ColorTheme
+      IniWrite,%Language%        ,%ScriptDir%,OtherSettings,Language
+      IniWrite,%NoTrayIcon%      ,%ScriptDir%,InterfaceSettings,NoTrayIcon
+      IniVersion = 14
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+    if IniVersion = 14
+    {
+      IniWrite,%FirstRun%        ,%ScriptDir%, IniSettings,FirstRun
+      IniVersion = 15
+      IniWrite,%IniVersion%      ,%ScriptDir%, IniSettings,Iniversion
+    }
+
+    IniRead,GridName         ,%ScriptDir%,GridSettings     ,GridName,Error
+    IniRead,LButtonDrag      ,%ScriptDir%,InterfaceSettings,LButtonDrag,Error
+    IniRead,MButtonDrag      ,%ScriptDir%,InterfaceSettings,MButtonDrag,Error
+    IniRead,EdgeDrag         ,%ScriptDir%,InterfaceSettings,EdgeDrag,Error
+    IniRead,EdgeTime         ,%ScriptDir%,OtherSettings    ,EdgeTime,Error
+    IniRead,ShowGroupsFlag   ,%ScriptDir%,OtherSettings    ,ShowGroupsFlag,Error
+    IniRead,ShowNumbersFlag  ,%ScriptDir%,OtherSettings    ,ShowNumbersFlag,Error
+    IniRead,TitleSize        ,%ScriptDir%,OtherSettings    ,TitleSize,Error
+    IniRead,GridOrder        ,%ScriptDir%,GridSettings     ,GridOrder,Error
+    IniRead,UseCommand       ,%ScriptDir%,Programsettings  ,UseCommand,Error
+    IniRead,CommandHotkey    ,%ScriptDir%,Programsettings  ,CommandHotkey,Error
+    IniRead,UseFastMove      ,%ScriptDir%,Programsettings  ,UseFastMove,Error
+    IniRead,FastMoveModifiers,%ScriptDir%,Programsettings  ,FastMoveModifiers,Error
+    IniRead,FastMoveMeta     ,%ScriptDir%,Programsettings  ,FastMoveMeta,Error
+    IniRead,TitleLeft        ,%ScriptDir%,ProgramSettings  ,TitleLeft,Error
+    IniRead,MButtonTimeout   ,%ScriptDir%,InterfaceSettings,MButtonTimeout,Error
+    IniRead,Transparency     ,%ScriptDir%,InterfaceSettings,Transparency,Error
+    IniRead,Exceptions       ,%ScriptDir%,ProgramSettings  ,Exceptions,Error
+    IniRead,SafeMode         ,%ScriptDir%,ProgramSettings  ,SafeMode,Error
+    IniRead,SequentialMove   ,%ScriptDir%,ProgramSettings  ,SequentialMove,Error
+    IniRead,DebugMode        ,%ScriptDir%,ProgramSettings  ,DebugMode,Error
+    IniRead,DisableTitleButtonsDetection,%ScriptDir%,OtherSettings,DisableTitleButtonsDetection,Error
+    IniRead,ColorTheme       ,%ScriptDir%,OtherSettings    ,ColorTheme,Error
+    IniRead,Language         ,%ScriptDir%,OtherSettings    ,Language,Error
+    IniRead,Registered       ,%ScriptDir%,OtherSettings    ,Registered,Error
+    IniRead,NoTrayIcon       ,%ScriptDir%,InterfaceSettings,NoTrayIcon,Error
+    IniRead,FirstRun         ,%ScriptDir%,IniSettings      ,FirstRun,Error
+
+    If(Registered = "Error")
+      Registered =
+
+    If (GridName          = "Error" OR LButtonDrag    = "Error" OR MButtonDrag       = "Error" 
+        OR EdgeDrag       = "Error" OR EdgeTime       = "Error" OR ShowGroupsFlag    = "Error" 
+        OR TitleSize      = "Error" OR ShowGroupsFlag = "Error" OR ShowNumbersFlag   = "Error" 
+        OR TitleSize      = "Error" OR GridOrder      = "Error" OR UseCommand        = "Error" 
+        OR CommandHotkey  = "Error" OR UseFastMove    = "Error" OR FastMoveModifiers = "Error" 
+        OR FastMoveMeta   = "Error" OR TitleLeft      = "Error" OR MButtonTimeout    = "Error" 
+        OR Transparency   = "Error" OR Exceptions     = "Error" OR SafeMode          = "Error"
+        OR SequentialMove = "Error" OR DebugMode      = "Error" OR NoTrayIcon        = "Error"
+        OR FirstRun       = "ERROR"
+        OR DisableTitleButtonsDetection = "Error")
+    {
+      MsgBox,%error_inifile%
+      FileDelete,%ScriptDir%
+      Reload
+      sleep 20000
+    }
+
+    If(FirstRun){
+      GoSub,firstRun
+    }
+  }
+  else
+  {
+    gosub,firstRun
+  }
+return
+
+firstRun:
+    FirstRun:=false
+    GoSub,setlanguage
+    GoSub,AboutHelp
+    GoSub,WriteIni
+    msgbox,64,%info_firstrun_title%,%info_firstrun%
+    settimer, helper,100
+    
+WriteIni:
+  IfNotExist,%ScriptDir%
+  {
+    FileCreateDir,%A_AppData%/DonationCoder/
+    if(ErrorLevel <> 0)
+    {           
+      ScriptDir=%A_ScriptDir%\%A_ScriptName%.ini
+    }
+    else
+      FileCreateDir,%A_AppData%/DonationCoder/GridMove/
+      if(ErrorLevel <> 0)
+      {           
+        ScriptDir=%A_ScriptDir%\%A_ScriptName%.ini
+      }
+    FileAppend, ,%ScriptDir%
+  }
+  IniWrite,%GridName%         ,%ScriptDir%,GridSettings     ,GridName
+  IniWrite,%LButtonDrag%      ,%ScriptDir%,InterfaceSettings,LButtonDrag
+  IniWrite,%MButtonDrag%      ,%ScriptDir%,InterfaceSettings,MButtonDrag
+  IniWrite,%EdgeDrag%         ,%ScriptDir%,InterfaceSettings,EdgeDrag
+  IniWrite,%EdgeTime%         ,%ScriptDir%,OtherSettings    ,EdgeTime
+  IniWrite,%ShowGroupsFlag%   ,%ScriptDir%,OtherSettings    ,ShowGroupsFlag
+  IniWrite,%ShowNumbersFlag%  ,%ScriptDir%,OtherSettings    ,ShowNumbersFlag
+  IniWrite,%TitleSize%        ,%ScriptDir%,OtherSettings    ,TitleSize
+  IniWrite,%GridOrder%        ,%ScriptDir%,GridSettings     ,GridOrder
+  IniWrite,%UseCommand%       ,%ScriptDir%,ProgramSettings  ,UseCommand
+  IniWrite,%CommandHotkey%    ,%ScriptDir%,ProgramSettings  ,CommandHotkey
+  IniWrite,%UseFastMove%      ,%ScriptDir%,ProgramSettings  ,UseFastMove
+  IniWrite,%FastMoveModifiers%,%ScriptDir%,ProgramSettings  ,FastMoveModifiers
+  IniWrite,%FastMoveMeta%     ,%ScriptDir%,ProgramSettings  ,FastMoveMeta
+  IniWrite,%SafeMode%         ,%ScriptDir%,ProgramSettings  ,SafeMode
+  IniWrite,%TitleLeft%        ,%ScriptDir%,ProgramSettings  ,TitleLeft
+  IniWrite,%MButtonTimeout%   ,%ScriptDir%,InterfaceSettings,MButtonTimeout
+  IniWrite,%Transparency%     ,%ScriptDir%,InterfaceSettings,Transparency
+  IniWrite,%Exceptions%       ,%ScriptDir%,ProgramSettings,Exceptions
+  IniWrite,%SequentialMove%   ,%ScriptDir%,ProgramSettings,SequentialMove
+  IniWrite,%DebugMode%        ,%ScriptDir%,ProgramSettings,DebugMode
+  IniWrite,%DisableTitleButtonsDetection%,%ScriptDir%,OtherSettings,DisableTitleButtonsDetection
+  IniWrite,%ColorTheme%       ,%ScriptDir%,OtherSettings    ,ColorTheme
+  IniWrite,%IniVersion%       ,%ScriptDir%,IniSettings      ,iniversion
+  IniWrite,%Language%         ,%ScriptDir%,OtherSettings    ,Language
+  IniWrite,%NoTrayIcon%       ,%ScriptDir%,InterfaceSettings,NoTrayIcon
+  IniWrite,%FirstRun%         ,%ScriptDir%,IniSettings      ,FirstRun
+Return   
+   
+;***************************************************************About / help GUI
+AboutHelp:
+  if mutex
+    return
+  mutex:=true
+
+  gui, 3: Add, Tab, x6 y5 w440 h420, About|Help
+
+  ;**************About
+  gui, 3: Tab, 1
+  IfExist %A_ScriptDir%\gridmove.ico
+    gui, 3:Add , Picture, x15 y35,%A_ScriptDir%\gridmove.ico
+  else
+    IfExist %A_ScriptDir%\gridmove.exe
+      gui, 3:Add , Picture, x15 y35,%A_ScriptDir%\gridmove.exe
+      
+  gui, 3:Font,Bold s10
+  if(Registered="quebec")
+    gui, 3:Add ,Text,x70 y45,GridMove V%ScriptVersion% by João Paiva`n
+  else
+    gui, 3:Add ,Text,x70 y45,GridMove V%ScriptVersion% by jgpaiva`n
+
+  gui, 3:Font,
+  gui, 3:Font, s10
+  gui, 3:Add ,Text,x15 y95 w420 ,%About_Main%
+
+  gui, 3:Add ,Text,X15 Y220,%About_Suggest%
+  gui, 3:Font,CBlue Underline
+  gui, 3:Add ,Text,X15 Y255 GPost,http://www.donationcoder.com/Forums/bb/index.php?topic=3824
+  gui, 3:Font
+
+  gui, 3:Font, s10
+  gui, 3:Add ,Text, y280 X15,`n%About_visit%
+  gui, 3:Font,CBlue Underline s10
+  gui, 3:Add ,Text, y313 X15 GMainSite,http://www.donationcoder.com/
+  gui, 3:Font
+
+  if(Registered="quebec"){
+    IfExist,%A_SCRIPTDIR%/Images/CLP_LOGO.png
+      Gui, 3:Add ,Picture, Y290 X235,%A_SCRIPTDIR%/Images/CLP_LOGO.png
+  }else{
+    ifexist,%a_scriptdir%/images/cody.png 
+      gui, 3:add ,picture, y290 x280,%a_scriptdir%/images/cody.png
+  }
+
+  if(Registered<>"quebec")
+    gui, 3:Add ,Button,y350 x15  gdonateAuthor w116 h30,Donate
+
+  if(Registered="quebec"){
+    gui, 3:Font, s10
+    gui, 3:add, Text,y380 x15 h10,%about_license_quebec%
+  }else{
+    gui, 3:Font, s9
+    gui, 3:Add ,Text,y400 x15 h10,If you like this program please make a donation to help further development.
+  }
+  gui, 3:Font, s9
+
+  ;**************HELP
+  gui, 3:Tab, 2
+  gui, 3:Font,
+
+  Gui, 3:Add, Edit, w413 R29 vMyEdit ReadOnly
+  if(Language = "FR"){
+    IfExist, %A_ScriptDir%\GridMoveHelp_FR.txt
+      FileRead, FileContents,%A_ScriptDir%\GridMoveHelp_FR.txt 
+  }else{
+    IfExist, %A_ScriptDir%\GridMoveHelp_EN.txt
+      FileRead, FileContents,%A_ScriptDir%\GridMoveHelp_EN.txt 
+  }
+  GuiControl,3:, MyEdit, %FileContents%
+
+  ;gui, 3:default
+  ;gui, tab,3
+  ;
+  ;gui, add, groupbox, ,How to activate GridMove
+  ;
+  ;Gui, add, checkbox, ,By dragging a window by its title
+  ;Gui, add, checkbox, ,By dragging a window while pressing middle mouse button
+  ;Gui, add, checkbox, ,By dragging a window to the edge of the screen
+
+
+
+  ;**************General + complementary functions
+  gui, 3:tab
+
+  if(Registered="quebec")
+    Gui, 3:show,,GridMove V%ScriptVersion% by João Paiva
+  else
+    Gui, 3:show,,GridMove V%ScriptVersion% by jgpaiva
+return
+
+Post:
+  Run,http://www.donationcoder.com/Forums/bb/index.php?topic=3824
+  GoSub,3GuiCLOSE 
+return
+  
+MainSite:
+  Run,http://www.donationcoder.com/
+  GoSub,3Guiclose 
+return
+  
+DonateSite:
+  Run,http://www.donationcoder.com/Donate/index.html
+  GoSub,3Guiclose
+return
+  
+DonateAuthor:
+  Run,https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=jgpaiva`%40gmail`%2ecom&item_name`=donate`%20to`%20jgpaiva&item_number`=donationcoder`%2ecom&no_shipping=1&cn=Please`%20drop`%20me`%20a`%20line`%20`%3aD&tax`=0&currency_code=EUR&bn=PP`%2dDonationsBF&charset=UTF`%2d8
+  GoSub,3Guiclose
+return  
+  
+3GuiEscape:
+3GuiClose:  
+buttonok:
+  gui,3:destroy
+  mutex:=false
+return
+  
+;*********************************************************************Templates
+
+
+Template-3part:
+  Menu,Templates,DeleteAll
+  CreateTemplatesMenu() 
+
+  SysGet, MonitorCount, MonitorCount
+  Count := 0
+  
+  loop, %MonitorCount%
+  {
+    SysGet, Monitor, MonitorWorkArea,%A_index%
+    MonitorWidth := MonitorRight - MonitorLeft
+    MonitorHeight := MonitorBottom - MonitorTop
+    
+    Count+=1
+    %Count%TriggerTop    := MonitorTop
+    %Count%TriggerRight  := MonitorRight
+    %Count%TriggerBottom := MonitorBottom
+    %Count%TriggerLeft   := MonitorLeft + Round(MonitorWidth / 3)
+    %Count%GridTop       := %Count%TriggerTop
+    %Count%GridRight     := %Count%TriggerRight
+    %Count%GridBottom    := %Count%TriggerBottom
+    %Count%GridLeft      := %Count%TriggerLeft
+    
+    Count+=1
+    %Count%TriggerTop    := MonitorTop
+    %Count%TriggerRight  := MonitorLeft + Round(MonitorWidth / 3)
+    %Count%TriggerBottom := MonitorTop + Round(MonitorHeight / 2)
+    %Count%TriggerLeft   := MonitorLeft
+    %Count%GridTop       := %Count%TriggerTop
+    %Count%GridRight     := %Count%TriggerRight
+    %Count%GridBottom    := %Count%TriggerBottom
+    %Count%GridLeft      := %Count%TriggerLeft
+    
+    Count+=1
+    temp := count - 1
+    %Count%TriggerTop    := %Temp%TriggerBottom +0.01
+    %Count%TriggerRight  := MonitorLeft + Round(MonitorWidth / 3)
+    %Count%TriggerBottom := MonitorBottom
+    %Count%TriggerLeft   := MonitorLeft
+    %Count%GridTop       := %Count%TriggerTop
+    %Count%GridRight     := %Count%TriggerRight
+    %Count%GridBottom    := %Count%TriggerBottom
+    %Count%GridLeft      := %Count%TriggerLeft
+  }
+  NGroups := MonitorCount * 3
+  Gui,Destroy
+  GoSub, CreateGroups
+  GridName = 3Part
+  GoSub, WriteIni
+return
+
diff --git a/other/.DS_Store b/other/.DS_Store
new file mode 100644
index 0000000..9cc24c8
Binary files /dev/null and b/other/.DS_Store differ
diff --git a/other/.TemplateList.ahk.swp b/other/.TemplateList.ahk.swp
new file mode 100755
index 0000000..8ad63a0
Binary files /dev/null and b/other/.TemplateList.ahk.swp differ
diff --git a/other/DoubleClickDrag.ahk b/other/DoubleClickDrag.ahk
new file mode 100644
index 0000000..7cfa73a
--- /dev/null
+++ b/other/DoubleClickDrag.ahk
@@ -0,0 +1,45 @@
+;SCRIPTNAME!
+;By jgpaiva
+;date: 
+;Function:
+
+#SingleInstance, Force
+#InstallMouseHook
+
+CoordMode,Mouse,Screen
+settimer, FirstStep, 100
+return
+
+FirstStep:
+  GetKeyState, State, LButton, P
+    If State = U
+    {
+      return
+    }      
+  
+SecondStep:  
+  KeyWait, LButton, T0.2
+  If errorlevel = 1
+    return
+  
+  KeyWait, LButton, D T0.2
+  If errorlevel = 1
+    return
+  
+  Send,{LButton up}
+  
+  MouseGetPos, OldMouseX, OldMouseY
+  Loop
+    {
+    GetKeyState, State, LButton, P
+    If State = U
+      break
+    MouseGetPos, MouseX, MouseY
+    WinGetPos,WindowX, WindowY,,,A
+    ;tooltip,% "MouseX: " . MouseX . " MouseY: " . MouseY . "`nWindowX: " . WindowX . " WindowY: " . WindowY . "`nmouseX - oldmouseX: " . mouseX - oldmouseX
+    WinMove, A,, % WindowX + MouseX - OldMouseX, % WindowY + MouseY - OldMouseY
+    OldMouseX := MouseX
+    OldMouseY := MouseY
+    }
+  Tooltip,
+  Goto, FirstStep
diff --git a/other/GridMove.bmp b/other/GridMove.bmp
new file mode 100644
index 0000000..d507da3
Binary files /dev/null and b/other/GridMove.bmp differ
diff --git a/other/GridMove.exe.ini b/other/GridMove.exe.ini
new file mode 100644
index 0000000..86a321c
--- /dev/null
+++ b/other/GridMove.exe.ini
@@ -0,0 +1,13 @@
+[GridSettings]
+GridName=edge
+GridOrder=2PartVertical,3Part,Edge,DualScreen
+[InterfaceSettings]
+LButtonDrag=1
+MButtonDrag=1
+EdgeDrag=1
+[OtherSettings]
+EdgeTime=1000
+ShowGroupsFlag=1
+TitleSize=100
+[IniSettings]
+iniversion=2
diff --git a/other/GridMove.jpg b/other/GridMove.jpg
new file mode 100644
index 0000000..6c07926
Binary files /dev/null and b/other/GridMove.jpg differ
diff --git a/other/GridMove.png b/other/GridMove.png
new file mode 100644
index 0000000..da6d4dc
Binary files /dev/null and b/other/GridMove.png differ
diff --git a/other/GridMoveP2.ahk.ini b/other/GridMoveP2.ahk.ini
new file mode 100644
index 0000000..731cf6d
--- /dev/null
+++ b/other/GridMoveP2.ahk.ini
@@ -0,0 +1,13 @@
+[GridSettings]
+GridName=2PartVertical
+GridOrder=2PartVertical,3Part,Edge,DualScreen
+[InterfaceSettings]
+LButtonDrag=1
+MButtonDrag=1
+EdgeDrag=1
+[OtherSettings]
+EdgeTime=1000
+ShowGroupsFlag=1
+TitleSize=100
+[IniSettings]
+iniversion=2
diff --git a/other/OSD.ahk b/other/OSD.ahk
new file mode 100644
index 0000000..b12114d
--- /dev/null
+++ b/other/OSD.ahk
@@ -0,0 +1,30 @@
+OSDCreate()
+  {
+  global OSD
+  Gui,4: +ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+  Gui,4: Font,S13
+  Gui,4: Add, Button, vOSD x0 y0 w100 h30 ,
+  Gui,4: Color, EEAAEE
+  Gui,4: Show, x0 y0 w0 h0 noactivate, OSD 
+  WinSet, TransColor, EEAAEE,OSD
+  return
+  }
+  
+OSDWrite(Value)
+  {
+  Global OSD
+  Global Monitor1Width
+  Global Monitor1Height
+  Global Monitor1Top
+  Global Monitor1Left
+  XPos := Monitor1Left + Monitor1Width / 2 - 50
+  YPos := Monitor1Top + Monitor1Height / 2 - 15
+  GuiControl, 4:Text, OSD, %value%
+  Gui,4:Show, x%Xpos% y%Ypos% w100 h30 noactivate
+  return
+  }
+  
+OSDHide()
+  {
+  Gui,4:hide,
+  }
diff --git a/other/Submissions.txt b/other/Submissions.txt
new file mode 100644
index 0000000..0f491fd
--- /dev/null
+++ b/other/Submissions.txt
@@ -0,0 +1,5 @@
+http://www.freewarefiles.com
+http://www.all4you.dk/FreewareWorld/addprogram.php
+http://www.snapfiles.com/dev/selectsubmit.php
+http://www.upload.com
+http://www.asp-shareware.org/pad/addpad.asp
diff --git a/other/TemplateList.ahk b/other/TemplateList.ahk
new file mode 100644
index 0000000..8aa1887
--- /dev/null
+++ b/other/TemplateList.ahk
@@ -0,0 +1,21 @@
+#Singleinstance, Force
+Gui, add, ListView, Grid gTemplateList MyListView r15 w400, Name|Number Of Groups
+Loop, Grids\*.grid, 0, 1
+{
+   IniRead, Number, Grids\%A_LoopFileName%, Groups, NumberOfGroups
+   LV_Add( "", A_LoopFileName, Number)
+}
+LV_ModifyCol(1) 
+Gui, show
+return
+
+GuiEscape:
+GuiClose:
+  Exitapp
+
+TemplateList:
+  If A_GuiEvent = DoubleClick
+    LV_GetText(Grid,A_EventInfo,1)
+  If A_EventInfo = 0
+    return
+  msgbox,%grid%`,%A_EventInfo%
diff --git a/other/grids/2Part-Horizontal.grid b/other/grids/2Part-Horizontal.grid
new file mode 100644
index 0000000..86403f1
--- /dev/null
+++ b/other/grids/2Part-Horizontal.grid
@@ -0,0 +1,75 @@
+[Groups]
+
+NumberOfGroups = 6
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Top] + [Monitor1Height] /2
+  TriggerRight = [Monitor1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] /2
+  GridRight = [Monitor1Right]
+  
+[2]
+
+  TriggerTop   = [Monitor1Top] + [Monitor1Height] /2
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] /2 + 0.001
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Top] + [Monitor2Height] /2
+  TriggerRight = [Monitor2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Top] + [Monitor2Height] /2
+  GridRight = [Monitor2Right]
+  
+[4]
+
+  TriggerTop   = [Monitor2Top] + [Monitor2Height] /2
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Right]
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] /2 + 0.001
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+  
+[5]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Top] + [Monitor3Height] /2
+  TriggerRight = [Monitor3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Top] + [Monitor3Height] /2
+  GridRight = [Monitor3Right]
+  
+[6]
+
+  TriggerTop   = [Monitor3Top] + [Monitor3Height] /2
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Right]
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] /2 + 0.001
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]
diff --git a/other/grids/2Part-Vertical.grid b/other/grids/2Part-Vertical.grid
new file mode 100644
index 0000000..badeee5
--- /dev/null
+++ b/other/grids/2Part-Vertical.grid
@@ -0,0 +1,75 @@
+[Groups]
+
+NumberOfGroups = 6
+
+[1]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left]
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Left] + [Monitor1Width] /2
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] /2
+  
+[2]
+
+  TriggerTop   = [Monitor1Top]
+  TriggerLeft  = [Monitor1Left] + [Monitor1Width] /2
+  TriggerBottom= [Monitor1Bottom]
+  TriggerRight = [Monitor1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left] + [Monitor1Width] /2
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left]
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Left] + [Monitor2Width] /2
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Left] + [Monitor2Width] /2
+  
+[4]
+
+  TriggerTop   = [Monitor2Top]
+  TriggerLeft  = [Monitor2Left] + [Monitor2Width] /2
+  TriggerBottom= [Monitor2Bottom]
+  TriggerRight = [Monitor2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left] + [Monitor2Width] /2
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+  
+[5]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left]
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Left] + [Monitor3Width] /2
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Left] + [Monitor3Width] /2
+  
+[6]
+
+  TriggerTop   = [Monitor3Top]
+  TriggerLeft  = [Monitor3Left] + [Monitor3Width] /2
+  TriggerBottom= [Monitor3Bottom]
+  TriggerRight = [Monitor3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left] + [Monitor3Width] /2
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]  
diff --git a/other/grids/EdgeGrid-Complex.grid b/other/grids/EdgeGrid-Complex.grid
new file mode 100644
index 0000000..8491e89
--- /dev/null
+++ b/other/grids/EdgeGrid-Complex.grid
@@ -0,0 +1,267 @@
+[Groups]
+
+  NumberOfGroups = 22
+  
+[1]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[2]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[4]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[5]
+
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.3
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.3
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.7
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] * 0.1
+  GridLeft  = [Monitor1Left] + [Monitor1Width] * 0.1
+  GridBottom= [Monitor1Top] + [Monitor1Height] * 0.9
+  GridRight = [Monitor1Left] + [Monitor1Width] * 0.9
+  
+[7]
+
+  TriggerTop   = [MonitorReal1Top] + 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom] - 30
+  TriggerRight = [MonitorReal1Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor1Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor1Right] 
+  
+[6]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left] + 30
+  TriggerBottom= [MonitorReal1Top] + 10
+  TriggerRight = [MonitorReal1Right] - 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor1Bottom]
+  GridRight = WindowWidth 
+  
+[8]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+  
+[9]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+  
+[10]
+
+  TriggerTop   = [MonitorReal2Top] + [MonitorReal2Height] * 0.3
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.3
+  TriggerBottom= [MonitorReal2Top] + [MonitorReal2Height] * 0.7
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] * 0.1
+  GridLeft  = [Monitor2Left] + [Monitor2Width] * 0.1
+  GridBottom= [Monitor2Top] + [Monitor2Height] * 0.9
+  GridRight = [Monitor2Left] + [Monitor2Width] * 0.9  
+
+[11]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+
+[12]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Right]
+
+[13]
+
+  TriggerTop   = [MonitorReal2Top] + 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom] - 30
+  TriggerRight = [MonitorReal2Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor2Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor2Right] 
+  
+[14]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left] + 30
+  TriggerBottom= [MonitorReal2Top] + 10
+  TriggerRight = [MonitorReal2Right] - 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor2Bottom]
+  GridRight = WindowWidth 
+  
+[15]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+  
+[16]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]
+  
+[17]
+
+  TriggerTop   = [MonitorReal3Top] + [MonitorReal3Height] * 0.3
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.3
+  TriggerBottom= [MonitorReal3Top] + [MonitorReal3Height] * 0.7
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] * 0.1
+  GridLeft  = [Monitor3Left] + [Monitor3Width] * 0.1
+  GridBottom= [Monitor3Top] + [Monitor3Height] * 0.9
+  GridRight = [Monitor3Left] + [Monitor3Width] * 0.9  
+
+[18]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+
+[19]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Right]
+
+[20]
+
+  TriggerTop   = [MonitorReal3Top] + 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom] - 30
+  TriggerRight = [MonitorReal3Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor3Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor3Right] 
+  
+[21]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left] + 30
+  TriggerBottom= [MonitorReal3Top] + 10
+  TriggerRight = [MonitorReal3Right] - 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor3Bottom]
+  GridRight = WindowWidth 
+
+[22]
+
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.2
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.3
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.3
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = Run
+  GridLeft  = AltF4.ahk
+  GridBottom= AltF4
+  GridRight = 
diff --git a/other/grids/EdgeGrid-Simplified.grid b/other/grids/EdgeGrid-Simplified.grid
new file mode 100644
index 0000000..0c459ec
--- /dev/null
+++ b/other/grids/EdgeGrid-Simplified.grid
@@ -0,0 +1,255 @@
+[Groups]
+
+  NumberOfGroups = 21
+  
+[1]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[2]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Top] + 30
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Top] + [Monitor1Height] / 2
+  GridRight = [Monitor1Right]
+  
+[3]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Left] + 30
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Left]
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Left] + [Monitor1Width] / 2
+  
+[4]
+
+  TriggerTop   = [MonitorReal1Bottom] - 30
+  TriggerLeft  = [MonitorReal1Right] - 30
+  TriggerBottom= [MonitorReal1Bottom]
+  TriggerRight = [MonitorReal1Right]
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] / 2 + 0.001
+  GridLeft  = [Monitor1Right] - [Monitor1Width] / 2
+  GridBottom= [Monitor1Bottom]
+  GridRight = [Monitor1Right]
+  
+[5]
+
+  TriggerTop   = [MonitorReal1Top] + [MonitorReal1Height] * 0.3
+  TriggerLeft  = [MonitorReal1Left] + [MonitorReal1Width] * 0.3
+  TriggerBottom= [MonitorReal1Top] + [MonitorReal1Height] * 0.7
+  TriggerRight = [MonitorReal1Left] + [MonitorReal1Width] * 0.7
+  
+  GridTop   = [Monitor1Top] + [Monitor1Height] * 0.1
+  GridLeft  = [Monitor1Left] + [Monitor1Width] * 0.1
+  GridBottom= [Monitor1Top] + [Monitor1Height] * 0.9
+  GridRight = [Monitor1Left] + [Monitor1Width] * 0.9
+  
+[7]
+
+  TriggerTop   = [MonitorReal1Top] + 30
+  TriggerLeft  = [MonitorReal1Left]
+  TriggerBottom= [MonitorReal1Bottom] - 30
+  TriggerRight = [MonitorReal1Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor1Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor1Right] 
+  
+[6]
+
+  TriggerTop   = [MonitorReal1Top]
+  TriggerLeft  = [MonitorReal1Left] + 30
+  TriggerBottom= [MonitorReal1Top] + 10
+  TriggerRight = [MonitorReal1Right] - 30
+  
+  GridTop   = [Monitor1Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor1Bottom]
+  GridRight = WindowWidth 
+  
+[8]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+  
+[9]
+
+  TriggerTop   = [MonitorReal2Bottom] - 30
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Bottom]
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] / 2 + 0.001
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Bottom]
+  GridRight = [Monitor2Right]
+  
+[10]
+
+  TriggerTop   = [MonitorReal2Top] + [MonitorReal2Height] * 0.3
+  TriggerLeft  = [MonitorReal2Left] + [MonitorReal2Width] * 0.3
+  TriggerBottom= [MonitorReal2Top] + [MonitorReal2Height] * 0.7
+  TriggerRight = [MonitorReal2Left] + [MonitorReal2Width] * 0.7
+  
+  GridTop   = [Monitor2Top] + [Monitor2Height] * 0.1
+  GridLeft  = [Monitor2Left] + [Monitor2Width] * 0.1
+  GridBottom= [Monitor2Top] + [Monitor2Height] * 0.9
+  GridRight = [Monitor2Left] + [Monitor2Width] * 0.9  
+
+[11]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Left] + 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Left]
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Left] + [Monitor2Width] / 2
+
+[12]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Right] - 30
+  TriggerBottom= [MonitorReal2Top] + 30
+  TriggerRight = [MonitorReal2Right]
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = [Monitor2Right] - [Monitor2Width] / 2
+  GridBottom= [Monitor2Top] + [Monitor2Height] / 2
+  GridRight = [Monitor2Right]
+
+[13]
+
+  TriggerTop   = [MonitorReal2Top] + 30
+  TriggerLeft  = [MonitorReal2Left]
+  TriggerBottom= [MonitorReal2Bottom] - 30
+  TriggerRight = [MonitorReal2Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor2Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor2Right] 
+  
+[14]
+
+  TriggerTop   = [MonitorReal2Top]
+  TriggerLeft  = [MonitorReal2Left] + 30
+  TriggerBottom= [MonitorReal2Top] + 10
+  TriggerRight = [MonitorReal2Right] - 30
+  
+  GridTop   = [Monitor2Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor2Bottom]
+  GridRight = WindowWidth 
+  
+[15]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+  
+[16]
+
+  TriggerTop   = [MonitorReal3Bottom] - 30
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Bottom]
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] / 2 + 0.001
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Bottom]
+  GridRight = [Monitor3Right]
+  
+[17]
+
+  TriggerTop   = [MonitorReal3Top] + [MonitorReal3Height] * 0.3
+  TriggerLeft  = [MonitorReal3Left] + [MonitorReal3Width] * 0.3
+  TriggerBottom= [MonitorReal3Top] + [MonitorReal3Height] * 0.7
+  TriggerRight = [MonitorReal3Left] + [MonitorReal3Width] * 0.7
+  
+  GridTop   = [Monitor3Top] + [Monitor3Height] * 0.1
+  GridLeft  = [Monitor3Left] + [Monitor3Width] * 0.1
+  GridBottom= [Monitor3Top] + [Monitor3Height] * 0.9
+  GridRight = [Monitor3Left] + [Monitor3Width] * 0.9  
+
+[18]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Left] + 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Left]
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Left] + [Monitor3Width] / 2
+
+[19]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Right] - 30
+  TriggerBottom= [MonitorReal3Top] + 30
+  TriggerRight = [MonitorReal3Right]
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = [Monitor3Right] - [Monitor3Width] / 2
+  GridBottom= [Monitor3Top] + [Monitor3Height] / 2
+  GridRight = [Monitor3Right]
+
+[20]
+
+  TriggerTop   = [MonitorReal3Top] + 30
+  TriggerLeft  = [MonitorReal3Left]
+  TriggerBottom= [MonitorReal3Bottom] - 30
+  TriggerRight = [MonitorReal3Left] + 10
+  
+  GridTop   = WindowHeight
+  GridLeft  = [Monitor3Left]
+  GridBottom= WindowHeight
+  GridRight = [Monitor3Right] 
+  
+[21]
+
+  TriggerTop   = [MonitorReal3Top]
+  TriggerLeft  = [MonitorReal3Left] + 30
+  TriggerBottom= [MonitorReal3Top] + 10
+  TriggerRight = [MonitorReal3Right] - 30
+  
+  GridTop   = [Monitor3Top]
+  GridLeft  = WindowWidth
+  GridBottom= [Monitor3Bottom]
+  GridRight = WindowWidth 
diff --git a/other/guicolor.ahk b/other/guicolor.ahk
new file mode 100644
index 0000000..83c0e96
--- /dev/null
+++ b/other/guicolor.ahk
@@ -0,0 +1,23 @@
+;SCRIPTNAME!
+;By jgpaiva
+;date: 
+;Function:
+setbatchlines,-1
+#singleinstance,force
+;Gui,add,groupbox,xm ym w200 h200 -background,a
+;Gui,add,listbox,x0 y0 w200 h200 readonly 
+;gui,add,progress,w300 h200 background00ff00
+gui,add,button,x0 y0 w100 h20
+Gui, +ToolWindow +AlwaysOnTop -Disabled -SysMenu -Caption
+Gui,color,ffffff
+Gui,Show,x0 y0 w0 h0 testbutton noactivate
+;WinSet, TransColor, ffffff,Testbutton
+loop
+{
+WinGetPos,WinX,WinY,winwidth,,A
+gui,show,X%WinX% Y%WinY% w100 h20 noactivate,
+}
+return
+
+guiclose:
+exitapp
diff --git a/packing/Add To Zip.bat b/packing/Add To Zip.bat
new file mode 100644
index 0000000..1679138
--- /dev/null
+++ b/packing/Add To Zip.bat	
@@ -0,0 +1,2 @@
+del GridMove.zip
+7za.exe a -tzip GridMove.zip aerolib.ahk strings.ahk Calc.ahk Command.ahk GridMoveP1.ahk GridMoveP2.ahk GridMoveP3.ahk Helper.ahk Images Grids GridMoveHelp_EN.txt GridMoveHelp_FR.txt plugins Documents
diff --git a/packing/GridMove.dcupdate b/packing/GridMove.dcupdate
new file mode 100644
index 0000000..0bf2631
--- /dev/null
+++ b/packing/GridMove.dcupdate
@@ -0,0 +1,24 @@
+<?xml version="1.0" ?>
+
+<Local>
+
+	<!-- basic info to display in updater-->
+	<Label>GridMove</Label>
+	<IconFile>GridMove.exe</IconFile>
+
+
+	<!-- version info of locally installed current version, and simple remote version file -->
+	<Version>1.19.62</Version>
+	<VersionFileRemote>http://jgpaiva.donationcoders.com/CS/GridMove/versioninfo.xml</VersionFileRemote>
+
+
+	<!-- where to get more info about the app remotely, only queried once an update is discovered -->
+	<InfoFileRemote>http://jgpaiva.donationcoders.com/CS/GridMove/GridMovePad.xml</InfoFileRemote>
+	<WebPage>http://jgpaiva.donationcoders.com/gridmove.html</WebPage>
+
+	<!-- ok how to conduct updates; could be: "Run" (download and run program), or "Visit" (visit website), or "Unzip" (download zip and unpack over files) -->
+	<UpdateMethod>run</UpdateMethod>
+	<CloseForUpdate>GridMove.exe</CloseForUpdate>
+	<UpdateFile>http://jgpaiva.donationcoders.com/CS/GridMove/GridMoveSetup.exe</UpdateFile>
+
+</Local>
diff --git a/packing/GridMoveHelp_EN.txt b/packing/GridMoveHelp_EN.txt
new file mode 100644
index 0000000..ab808f3
--- /dev/null
+++ b/packing/GridMoveHelp_EN.txt
@@ -0,0 +1,261 @@
+GridMove v1.19.x
+Welcome to the GridMove help file.
+This file contains all the information you need about this program.
+Please go to http://jgpaiva.donationcoder.com/gridmove.html for more
+information about gridmove and for the latest releases.
+If you have any doubt, don't think twice, just to go by its forum 
+section:
+http://www.donationcoder.com/Forums/bb/index.php?topic=3824 
+
+
+Index:
+  1 - (line  30) Introduction
+  2 - (line  44) Interaction
+    2.1 - LButton Drag
+    2.2 - Middle Mouse Button Drag 
+    2.3 - Edge Drag 
+  3 - (line  73) Templates
+    3.1 - Selecting a grid
+    3.2 - Grid elements
+    3.3 - Cicling Through Grids
+  4 - (line 117) Keyboard Hotkeys
+    4.1 - The Command mode
+    4.2 - FastMove
+  5 - (line 122) Options
+  6 - (line 151) Creating custom grids
+    6.1 - Basic Custom Grids
+    6.2 - Inserting Special Grid elements 
+  7 - (line 230) Credits
+
+**********************************************************************
+   1 - Introduction
+
+  GridMove is a program destined at making windows management easier.
+  It helps you with this task by defining a layout similar to a grid
+on your desktop, to which you can easily snap windows. 
+  This program comes bundled with some predifined grid templates 
+(which should be about enought for everyone), but also has ways of 
+creating your own grid or using other people's grids.
+  While this file is close to complete, don't forget to visit
+gridmove's forum topic where you can discuss upcoming features, or
+find better explanations for the workings of the program.  
+
+
+**********************************************************************
+  2 - Interaction
+
+  This section will show you how to interact with the program, i.e.
+how to make the windows snap to the grid.
+  The whole concept of GridMove revolves around the drop-zone mode.
+This is when the grid is up and you can select the places where to
+snap the active window. Just hover over the area you'd like to
+activate and drop the window. 
+  There are 3 ways to go into drop zone mode.
+  
+  2.1 - LButton Drag
+  This method consists of dragging the window by its title. When you
+drag a window by a place close to the left on its titlebar (the 
+default is a rectangle 100 pixels wide, but it can be customized), 
+you'll go into drop zone mode. 
+
+  2.2 - MButton Drag
+  This method consists of dragging a window using the middle mouse
+button.
+  It's that simple, just press the middle mouse button, and drag the
+window. This will make the drop zone come up, and you can drop the
+window where you like.
+
+  2.3 - Edge Drag
+  This method consists of grabbing a window by it's title, dragging
+it to the edge of the screen and keeping it there for a (customizable) 
+period of time. This will take you to drop zone mode. 
+
+**********************************************************************
+  3 - Templates
+  
+  3.1 - Selecting a grid
+  Now that you know how to use the basics of the program, you're ready
+to learn it's best potentials. If you've never changed any option of
+the program, you should be using a simple grid made out of 3 parts.
+That's not very useful, right?
+  But GridMove currently comes packed with 6 default grids. To select
+any of them, just right click it's tray icon and select "templates"
+from the menu .
+  Of course, if you're bored with the default grids, you can always
+create you're own or use other people's grids. This is possible
+because grids can be stored in .grid files and loaded through the
+"browse" option on the templates menu. Also, if the .grid files are
+placed in the Grids folder, they are loaded at the start of the
+script, and will be displayed in the templates menu. 
+
+  3.2 - Grid elements 
+  While the first 4 grids are quite simple, the "edge grid" has some
+special elements that are worth mentioning. If you hover over the grid
+element on the top (6), you'll notice that it doesn't work like the
+other elements do. That's because it is used to maximize vertically a
+window. The element on the left of the screen (7) has a similar
+behaviour: it maximizes horizontally. On the middle of the screen,
+below the element 5, there's "on top", "maximize" and "last size".
+While "on top" and maximize are quite straight-forward (the first
+toggled the "on top" state of a window and the later maximizes it),
+the "last size" is a special element. It's used to make the window
+be moved to the size it had before being moved by gridmove. This is 
+specially useful if you snapped a window inadvertedly and wanted to 
+get back to the previous state.
+
+  3.3 - Cicling Through Grids
+  Most probably, you'd like to use parts of 2 or more grids. You can
+acomplish this in 2 ways: either by creating your own grid (see
+section 6) or by switching constantly through them.
+  To switch the grid you're currently using, you could right-click the
+tray icon and select another one from the templates menu, but this
+isn't very practical. So, you can use the fast switch method. Just
+right-click when on drop zone mode, and GridMove will switch to the
+next grid on it's list. (see section 5 for info on how to change the
+list). This is also a practical way to avoid having a cluttered grid!
+
+**********************************************************************
+  4 - Keyboard Hotkeys
+
+  The following hotkeys can be configured through the tray menu -> 
+hotkeys.
+
+  4.1 - The command mode
+  By pressing WIN+G (g for Grid/GridMove), you'll make GridMove go into
+Command mode. The grid will come up, and you'll have a small box in
+the middle of the screen. GridMove will now wait for you to press
+something. If you press esc, it'll quit Command mode.
+  Command mode is very useful for moving a window somewhere real fast,
+or for cicling grids using the keyboard. 
+  If you press a number, the window will be moved to the corresponding
+grid part.
+  If you press N GridMove will switch to the next grid on its list.
+  If you press M, the window's maximize state will be toggled.
+  If you press 0, the window will be minimized.  
+  If you press R, the script will be reloaded.
+
+  4.2 - FastMove
+  FastMove is a faster alternative to Command mode.
+  /*incomplete*/
+
+
+***********************************************************************
+  5 - Options
+
+  While being a quite simple program, GridMove features quite a few
+options. These can be reached by right-clicking the tray icon and
+selecting the sub-menu "options".
+  In this menu, there are 8 items.
+  "Show Grid" is self-explanatory. If this option is active, the grid
+is shown when on drop zone mode, if it's inactive, the grid isn't show.
+  "Show Numbers On Grid" is also self-explanatory.
+  The next three options toggle the use of the 3 interaction methods.
+If one isn't active, the corresponding method can't be used.
+(sometimes is necessary to turn the MButton drag method off, since
+some programs use the Middle Mouse Button for other actions, and
+GridMove might interfeer).
+  The "Set Edge Time" option asks you to input a value which has to be
+in miliseconds and represents the time the cursor needs to rest in the
+edge of the screen for the grid to come up, when using the edge drag
+method. (see section 2.3 for more info).
+  The "Set Title Size" option asks you to input a numeric value, which
+represents the number of pixels that will be considered as the
+width of the activation rectangle for the LButton Drag. (see section
+2.1).
+  The "Set Grid Order" option allows you to change the list of grids
+that will be used when cicling through templates. (see section 3.3)
+This list is a comma-separated value, which means you need to input
+several names of grids separated by commas (whithout spaces around
+commas). You can use the names of the default templates
+(mentioned at the dialog), or the path for .grid files.
+
+***********************************************************************
+  6 - Creating Custom Grids
+
+  6.1 - Basic Custom Grids
+  For those that aren't happy with the default templates, and want to
+improve their experience with the program, there's the option of doing
+their own grid.
+  As mentioned earlier, the custom grids are made out of files with
+the .grid extension. The syntax of these files is very similar to a
+.ini file. After it's first run, gridmove unpacks some grids to it's
+main directory, and those can be altered and loaded in the program. 
+  The first section, [Groups] only contains one key: NumberOfGroups.
+This key represets the number of elements that the file contains.
+  After that section, there's one section for each grid element. The
+section is identified by a number, and the numbers must start in 1 and
+to all the way to the number in the NumberOfGroups key.
+  In each numbered group, there's 8 keys, divided into 2 groups.
+  The Trigger group (TriggerTop, TriggerLeft, TriggerBottom and
+TriggerRight) represent the coordinates of the lines that will be
+drawn in the screen when the program is in Drop Zone Mode.
+  The Grid group represents the coordinates to where the window will
+be moved.
+  If you look at the bundled .grid files, you'll see that some words
+appear on the fields mentioned earlier. These are variables. Since a
+.grid file should be able to be shared, it is supposed to not be
+dependable of the size of the screen. So, it's possible to use such
+variables as [Monitor1Top], which represents the coordinate top of the
+first monitor. There are several variables which can be used. Here's
+the list:
+
+  [Monitor1Top]
+  [Monitor1Left]
+  [Monitor1Bottom]
+  [Monitor1Right]
+  [Monitor1Width]
+  [Monitor1Height] 
+  The 6 variables above represent the workable area of the screen of
+the first monitor. This means that if you have the taskbar at the
+bottom of the screen, it won't consider that area as part of the
+screen. If you don't want it to work like that, look at the following
+variables:
+
+  
+  [MonitorReal1Top]
+  [MonitorReal1Left]
+  [MonitorReal1Bottom]
+  [MonitorReal1Right]
+  [MonitorReal1Width]
+  [MonitorReal1Height] 
+  These variables are similar to the ones above, but represent the
+whole area of the first screen, including the taskbar and other
+similar dockable objects.
+
+  But GridMove has support for multi-monitor. This means that the
+grids can also be used in monitors other than the first. This is
+obtained by replacing 1 with the number of any other monitor. Also
+don't worry if you use a grid that is created for multiple monitors on
+a single monitor layout, GridMove will ignore the parts that are
+supposed to appear on non-existant monitors.
+
+  6.2 - Inserting Special grid elements
+  As mentioned in section 3.2, there are some special grid elemets
+that have effects on your windows other than moving them around. These
+can also be included on a custom grid.
+  If you want to create a grid element that maximizes vertically, like
+edge grid's 6th element, set GridTop to [Monitor1Top] and GridBottom
+to [Monitor1Bottom], so that the window will be Maximized vertically,
+and then set GridLeft and GridRight to "WindowWidth" (without the
+quotes), so that the window's width will be unchanged. To have the
+Horizontal Maximization, it's a similar process. Set GridTop and
+GridBottom to "WindowHeight" (without the quotes), GridLeft to
+[Monitor1Left] and GridRight to [Monitor1Right].
+  To have the OnTop, the Maximize or the Restore elements, it's even
+simpler: just set all the Grid keys to "AlwaysOnTop", "Maximize" or
+"Restore", respectively.
+
+
+***********************************************************************
+  7 - Credits
+  This program is part of the DonationCoder.com site, and i have to
+thank Mouser for getting me the webspace for it, and for setting up
+such a great site which lead to the making of this program.
+  The creator of the bright original idea was Nudone, to witch i thank
+very much, since he invented most of the concepts, helped in all the
+phases of development, and along with Mouser, was very patient with
+all the testing and bug fixing.
+  I'm very glad the people at DonationCoder.com helped me in making
+this program, it sure came out fantastic, and it's good to know that
+it is useful to it's users!
+  Thank you!! 
diff --git a/packing/GridMoveHelp_FR.txt b/packing/GridMoveHelp_FR.txt
new file mode 100644
index 0000000..cd22f57
Binary files /dev/null and b/packing/GridMoveHelp_FR.txt differ
diff --git a/packing/GridMovePad.xml b/packing/GridMovePad.xml
new file mode 100644
index 0000000..c6d53b4
--- /dev/null
+++ b/packing/GridMovePad.xml
@@ -0,0 +1,117 @@
+<?xml version="1.0" ?>
+<XML_DIZ_INFO>
+	<MASTER_PAD_VERSION_INFO>
+		<MASTER_PAD_VERSION>2.02</MASTER_PAD_VERSION>
+		<MASTER_PAD_EDITOR>PADGen 2.0.2.30 http://www.padgen.org</MASTER_PAD_EDITOR>
+		<MASTER_PAD_INFO>Portable Application Description, or PAD for short, is a data set that is used by shareware authors to disseminate information to anyone interested in their software products. To find out more go to http://www.asp-shareware.org/pad</MASTER_PAD_INFO>
+	</MASTER_PAD_VERSION_INFO>
+	<Company_Info>
+		<Company_Name>DonationCoder</Company_Name>
+		<Address_1>M.Hinn 401 Ginger Bend Drive, #212</Address_1>
+		<Address_2 />
+		<City_Town>Champaign</City_Town>
+		<State_Province>IL </State_Province>
+		<Zip_Postal_Code>61822</Zip_Postal_Code>
+		<Country>United States</Country>
+		<Company_WebSite_URL>http://www.DonationCoder.com</Company_WebSite_URL>
+		<Contact_Info>
+			<Author_First_Name>Joao</Author_First_Name>
+			<Author_Last_Name>Paiva</Author_Last_Name>
+			<Author_Email>jgpaiva@gmail.com</Author_Email>
+			<Contact_First_Name>Joao</Contact_First_Name>
+			<Contact_Last_Name>Paiva</Contact_Last_Name>
+			<Contact_Email>jgpaiva@gmail.com</Contact_Email>
+		</Contact_Info>
+		<Support_Info>
+			<Sales_Email>jgpaiva@gmail.com</Sales_Email>
+			<Support_Email>jgpaiva@gmail.com</Support_Email>
+			<General_Email>jgpaiva@gmail.com</General_Email>
+			<Sales_Phone />
+			<Support_Phone />
+			<General_Phone />
+			<Fax_Phone />
+		</Support_Info>
+	</Company_Info>
+	<Program_Info>
+		<Program_Name>GridMove</Program_Name>
+		<Program_Version>1.19</Program_Version>
+		<Program_Release_Month>08</Program_Release_Month>
+		<Program_Release_Day>19</Program_Release_Day>
+		<Program_Release_Year>2007</Program_Release_Year>
+		<Program_Cost_Dollars />
+		<Program_Cost_Other_Code>EUR</Program_Cost_Other_Code>
+		<Program_Cost_Other />
+		<Program_Type>Freeware</Program_Type>
+		<Program_Release_Status>New Release</Program_Release_Status>
+		<Program_Install_Support>No Install Support</Program_Install_Support>
+		<Program_OS_Support>Windows2000,WinXP</Program_OS_Support>
+		<Program_Language>English</Program_Language>
+		<Program_Change_Info />
+		<Program_Specific_Category>Utilities</Program_Specific_Category>
+		<Program_Category_Class>System Utilities::Shell Tools</Program_Category_Class>
+		<Program_System_Requirements />
+		<File_Info>
+			<File_Size_Bytes>749568</File_Size_Bytes>
+			<File_Size_K>750</File_Size_K>
+			<File_Size_MB>0.75</File_Size_MB>
+		</File_Info>
+		<Expire_Info>
+			<Has_Expire_Info>N</Has_Expire_Info>
+			<Expire_Count />
+			<Expire_Based_On>Days</Expire_Based_On>
+			<Expire_Other_Info />
+			<Expire_Month />
+			<Expire_Day />
+			<Expire_Year />
+		</Expire_Info>
+	</Program_Info>
+	<Program_Descriptions>
+		<English>
+			<Keywords>Window Management, Organization, Resize</Keywords>
+			<Char_Desc_45>A windows management tool to organize windows</Char_Desc_45>
+			<Char_Desc_80>A windows management tool that can quickly arrange windows into desktop grids</Char_Desc_80>
+			<Char_Desc_250>GridMove is a program that aims at making windows management easier. It does so by defining a visual grid on the desktop, to which windows can be dropped. This program comes bundled with several predifined grid templates that can be customized.</Char_Desc_250>
+			<Char_Desc_450>GridMove is a program that aims at making windows management easier. It does so by defining a visual grid on the desktop, to which windows can easily  be snapped. This program comes bundled with some predifined grid templates, that can be swaped with one click, but also has ways of creating custom grids or sharing grids made by others. GridMove makes moving and resizing windows, and general desktop organization as easy as drag and drop.</Char_Desc_450>
+			<Char_Desc_2000>GridMove is a windows management tool that can quickly arrange windows into desktop grids.
+It does so by defining a visual grid on the desktop, to which windows can easily be snapped. 
+This program comes bundled with some predifined grid templates, that can be swaped with one click, but also features the possibility of creating custom grids or sharing grids made by others.
+
+GridMove makes moving windows, resizing windows, displaying them on cascade or on mosaic, making them on top or anything you can think of as easy as drag and drop. 
+
+This tool was made taking in mind those who own big screens and keep organizing their windows. This program is specially useful for anyone that keeps more than 1 window on the screen at one time, because it helps the user to maximize the usable space of the monitor, by resizing the windows in a much easier way than moving and resizing them one by one.
+
+Thanks to its simple interaction methods, GridMove becomes intuitive and fast, helping you to improve your workflow.
+
+Also, since it's latest release, GridMove is also fully expandable. This is due to it's new function that allows a custom grid to include elements that can run any local file.
+
+It features:
+	- Several pre-made grid templates that can be easily swaped
+	- 3 different interaction methods to suit everyone's likes
+	- Ability to set windows on top and maximize them vertically or horizontally
+	- Full keyboard support, which can organize windows with one hotkey press
+	- Customizable interface
+	- Possibility to create dynamic custom grids
+	- Complete help file
+	- Full MultiMonitor Support</Char_Desc_2000>
+		</English>
+	</Program_Descriptions>
+	<Web_Info>
+		<Application_URLs>
+			<Application_Info_URL>http://www.donationcoders.com/jgpaiva/gridmove.html</Application_Info_URL>
+			<Application_Order_URL />
+			<Application_Screenshot_URL>http://jgpaiva.donationcoders.com/CS/GridMove/GridMoveSmall.gif</Application_Screenshot_URL>
+			<Application_Icon_URL>http://jgpaiva.donationcoders.com/CS/GridMove/GridMove.jpg</Application_Icon_URL>
+			<Application_XML_File_URL>http://jgpaiva.donationcoders.com/CS/GridMove/GridMovePad.xml</Application_XML_File_URL>
+		</Application_URLs>
+		<Download_URLs>
+			<Primary_Download_URL>http://jgpaiva.donationcoders.com/CS/GridMove/GridMoveSetup.exe</Primary_Download_URL>
+			<Secondary_Download_URL />
+			<Additional_Download_URL_1 />
+			<Additional_Download_URL_2 />
+		</Download_URLs>
+	</Web_Info>
+	<Permissions>
+		<Distribution_Permissions />
+		<EULA />
+	</Permissions>
+</XML_DIZ_INFO>
diff --git a/packing/Helper.ahk b/packing/Helper.ahk
new file mode 100644
index 0000000..61adb89
--- /dev/null
+++ b/packing/Helper.ahk
@@ -0,0 +1,65 @@
+Helper:
+  If DropZoneModeFlag
+    {
+    Tooltip,%helper_1%
+    return
+    }
+  CoordMode,Mouse,relative
+  CoordMode,Tooltip,relative
+  MouseGetPos, OldMouseX, OldMouseY, MouseWin,
+  WinGetPos,,,winwidth,,ahk_id %mousewin%
+  WinGetTitle,Wintitle,ahk_id %mousewin%
+  WinGetClass,WinClass,ahk_id %mousewin%
+  
+  if winTitle contains GridMove V%ScriptVersion% by jgpaiva
+    return
+
+  If (OldMouseY <= CaptionSize AND OldMouseY > BorderSize + 1 
+      AND oldmouseX > CaptionSize AND OldMouseX < TitleSize 
+      AND WinTitle != "" AND WinClass != "Shell_TrayWnd" 
+      AND TitleSize < WinWidth - 20 AND LButtonDrag)
+    {
+    Tooltip,%helper_2%
+    return
+    }
+  If (OldMouseY <= CaptionSize AND OldMouseY > BorderSize + 1 
+      AND WinTitle != "" AND WinClass != "Shell_TrayWnd" AND EdgeDrag)
+    {
+    KeyWait,LButton,D T0.01
+    If errorlevel = 0
+      {
+      CoordMode, Mouse, Screen
+      If (MouseY <= 2 OR MouseX <= 2 OR MouseY >= Monitor1Height -2 OR MouseX >= Monitor1Width -2)
+        Tooltip,%helper_3%
+      }
+    else
+      Tooltip,%helper_4%
+    return
+    }
+    tooltip,
+return
+
+
+Helper2:
+  CoordMode,Mouse,Relative
+  hCurs := DllCall("LoadCursor","UInt",NULL,"Int",32649,"UInt")
+  MouseGetPos, OldMouseX, OldMouseY, MouseWin,
+  CoordMode,Mouse,screen
+  MouseGetPos, MouseX, MouseY, ,
+  If (OldMouseY <= CaptionSize AND OldMouseY > BorderSize + 1 
+      AND oldmouseX > CaptionSize AND OldMouseX < TitleSize 
+      AND WinTitle != "" AND WinClass != "Shell_TrayWnd" 
+      AND TitleSize < WinWidth - 20 AND LButtonDrag)
+    If not image
+    {
+    SplashImage , GridMove.bmp, B X%MouseX% y%MouseY%, , , ,
+    Image := true
+    }
+    else
+      return
+  else
+    {
+    SplashImage, Off
+    Image := false
+    }
+return
diff --git a/packing/InvokingDcuHelperReadme.txt b/packing/InvokingDcuHelperReadme.txt
new file mode 100644
index 0000000..0ad29b9
--- /dev/null
+++ b/packing/InvokingDcuHelperReadme.txt
@@ -0,0 +1,10 @@
+//---------------------------------------------------------------------------
+
+1. To register your programs directory with the system updater:
+	dcuhelper.exe -r "program_labelname" "full_path_to_app_directory"
+
+2. To invoke the updaterwith various commandline options:
+	dcuhelper.exe -[r]i "program_labelname" "full_path_to_app_directory" "missingupdatertitle_or_._for_silent" [commandline options to be passed to updater]
+//---------------------------------------------------------------------------
+
+
diff --git a/packing/Update.lnk b/packing/Update.lnk
new file mode 100644
index 0000000..fc04f7a
Binary files /dev/null and b/packing/Update.lnk differ
diff --git a/packing/compile.bat b/packing/compile.bat
new file mode 100644
index 0000000..3a0e337
--- /dev/null
+++ b/packing/compile.bat
@@ -0,0 +1 @@
+"C:\Programs\AutoHotkey\Compiler\Ahk2Exe.exe" /in GridMoveP1.ahk /out GridMove.exe /icon Images\GridMove.ico
diff --git a/packing/gridmove.lnk b/packing/gridmove.lnk
new file mode 100644
index 0000000..3a20908
Binary files /dev/null and b/packing/gridmove.lnk differ
diff --git a/packing/gridmoveTemp.iss b/packing/gridmoveTemp.iss
new file mode 100644
index 0000000..0fc781d
--- /dev/null
+++ b/packing/gridmoveTemp.iss
@@ -0,0 +1,72 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+[Setup]
+AppName=GridMove
+AppVerName=GridMove V1.19.70_FR
+AppPublisher=DonationCoder.com
+AppPublisherURL=http://donationcoders.com/jgpaiva/gridmove.html
+AppSupportURL=http://donationcoders.com/jgpaiva/gridmove.html
+AppUpdatesURL=http://donationcoders.com/jgpaiva/gridmove.html
+DefaultDirName={pf}\GridMove
+DefaultGroupName=GridMove
+LicenseFile=Documents\EULA.txt
+AllowNoIcons=yes
+OutputDir=C:\Documents and Settings\TheUser\Desktop
+OutputBaseFilename=GridMoveSetup
+Compression=lzma
+SolidCompression=yes
+
+[Languages]
+Name: fr; MessagesFile: "compiler:Languages\french.isl"
+Name: en; MessagesFile: "compiler:Default.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+Name: "startwindows"; Description: "{cm:startWithWin}"; GroupDescription: "{cm:AdditionalIcons}";
+
+[CustomMessages]
+en.startWithWin=Make GridMove start with &Windows
+fr.startWithWin=D�marrage GridMove avec Windows
+en.updates=Check for updates
+fr.updates=Mettre � jour
+
+
+[Files]
+Source: "GridMove.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "GridMoveHelp_EN.txt"; DestDir: "{app}"; Flags: ignoreversion
+Source: "GridMoveHelp_FR.txt"; DestDir: "{app}"; Flags: ignoreversion
+Source: "Images\*"; DestDir: "{app}/Images"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "Grids\axcrusik_s_grid.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\EdgeGrid.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\RunDemo.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\2 Part-Horizontal.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\2 Part-Vertical.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\3-Part Reverse.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\3-Part.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\4-Part.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\Dual-Screen.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\EdgeGrid.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\xipergrid1.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Plugins\MinimizeWindow.exe"; DestDir: "{app}/Plugins"; Flags: ignoreversion
+Source: "Plugins\WindowPositions.exe"; DestDir: "{app}/Plugins"; Flags: ignoreversion
+Source: "GridMove.dcupdate"; DestDir: "{app}"; Flags: ignoreversion
+Source: "dcuhelper.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "Documents\EULA.txt"; DestDir: "{app}/Documents"; Flags: ignoreversion
+Source: "Documents\License.txt"; DestDir: "{app}/Documents"; Flags: ignoreversion
+
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{group}\GridMove"; Filename: "{app}\GridMove.exe"
+Name: "{group}\{cm:ProgramOnTheWeb,GridMove}"; Filename: "http://donationcoders.com/jgpaiva/gridmove.html"
+Name: "{group}\{cm:UninstallProgram,GridMove}"; Filename: "{uninstallexe}"
+Name: "{commondesktop}\GridMove"; Filename: "{app}\GridMove.exe"; Tasks: desktopicon
+Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\GridMove"; Filename: "{app}\GridMove.exe"; Tasks: quicklaunchicon
+Name: {group}\{cm:updates}; Filename: {app}\dcuhelper.exe; WorkingDir: {app}; Parameters: "-ri GridMove""{app}"" ATTENTION -show"; IconFilename: {app}\GridMove.exe; Flags: runminimized
+Name: "{userstartup}\GridMove"; Filename: "{app}\GridMove.exe"; Tasks: startwindows
+
+[Run]
+Filename: "{app}\GridMove.exe"; Description: "{cm:LaunchProgram,GridMove}"; Flags: nowait postinstall skipifsilent
+Filename: "{app}\dcuhelper.exe"; WorkingDir: {app}; Description: Enable Update Checking..; Flags: nowait runhidden; Parameters: "-r GridMove ""{app}"""
diff --git a/packing/install_FR.iss b/packing/install_FR.iss
new file mode 100644
index 0000000..c46bbf8
--- /dev/null
+++ b/packing/install_FR.iss
@@ -0,0 +1,88 @@
+; Script generated by the Inno Setup Script Wizard.
+
+[Setup]
+AppName=GridMove
+AppVerName=GridMove V1.19.71
+AppPublisher=DonationCoder.com
+AppPublisherURL=http://donationcoders.com/jgpaiva/gridmove.html
+AppSupportURL=http://donationcoders.com/jgpaiva/gridmove.html
+AppUpdatesURL=http://donationcoders.com/jgpaiva/gridmove.html
+DefaultDirName={pf}\GridMove
+DefaultGroupName=GridMove
+;LicenseFile=Documents\EULA.txt
+AllowNoIcons=yes
+OutputDir=C:\Documents and Settings\TheUser\Desktop
+OutputBaseFilename=GridMoveSetup
+Compression=lzma
+SolidCompression=yes
+AppMutex="GridMove_XB032"
+
+[Languages]
+Name: fr; MessagesFile: "compiler:Languages\french.isl"
+Name: en; MessagesFile: "compiler:Default.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+Name: "startwindows"; Description: "{cm:startWithWin}"; GroupDescription: "{cm:AdditionalIcons}";
+
+[CustomMessages]
+en.startWithWin=Make GridMove start with &Windows
+fr.startWithWin=D�marrage GridMove avec Windows
+en.updates=Check for updates
+fr.updates=Mettre � jour
+
+[UninstallDelete]
+Type: files; Name: "{userappdata}\DonationCoder\GridMove\GridMove.exe.ini";
+
+
+[Files]
+Source: "GridMove.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "GridMove.exe.QUEBEC.fr.ini"; DestDir: "{app}"; DestName: "GridMove.exe.ini"; Flags: ignoreversion onlyifdoesntexist; Languages: fr
+Source: "GridMove.exe.QUEBEC.en.ini"; DestDir: "{app}"; DestName: "GridMove.exe.ini"; Flags: ignoreversion onlyifdoesntexist; Languages: en
+Source: "GridMoveHelp_EN.txt"; DestDir: "{app}"; Flags: ignoreversion
+Source: "GridMoveHelp_FR.txt"; DestDir: "{app}"; Flags: ignoreversion
+Source: "Images\*.bmp"; DestDir: "{app}/Images"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "Images\*.ico"; DestDir: "{app}/Images"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "Images\Cody.png"; DestDir: "{app}/Images"; Flags: ignoreversion
+Source: "Images\CLP_LOGO.png"; DestDir: "{app}/Images"; Flags: ignoreversion
+Source: "Grids\Complex Grid.grid"; DestDir: "{app}/Grids"; DestName:"Grille Complexe.grid"; Flags: ignoreversion; Languages:fr
+Source: "Grids\Complex Grid.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages:en
+Source: "Grids\Complex Grid 2.grid"; DestDir: "{app}/Grids"; DestName:"Grille Complexe 2.grid"; Flags: ignoreversion; Languages:fr
+Source: "Grids\Complex Grid 2.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages:en
+Source: "Grids\Edge Grid.grid"; DestDir: "{app}/Grids"; DestName:"Grille Bordure.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\Edge Grid.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages: en
+Source: "Grids\Run Demo.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\2 Part Horizontal.grid"; DestDir: "{app}/Grids"; DestName:"2 Parties Horizontales.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\2 Part Horizontal.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages: en
+Source: "Grids\2 Part Vertical.grid"; DestDir: "{app}/Grids"; DestName:"2 Parties Verticales.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\2 Part Vertical.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages: en
+Source: "Grids\3 Part Reverse.grid"; DestDir: "{app}/Grids"; DestName:"3 Parties Renvers�.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\3 Part Reverse.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion
+Source: "Grids\3 Part.grid"; DestDir: "{app}/Grids"; DestName:"3 Parties.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\3 Part.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages: en
+Source: "Grids\4 Part.grid"; DestDir: "{app}/Grids"; DestName:"4 Parties.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\4 Part.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages: en
+Source: "Grids\Dual Screen.grid"; DestDir: "{app}/Grids"; DestName:"Double Moniteur.grid"; Flags: ignoreversion; Languages: fr
+Source: "Grids\Dual Screen.grid"; DestDir: "{app}/Grids"; Flags: ignoreversion; Languages: en
+Source: "Plugins\MinimizeWindow.exe"; DestDir: "{app}/Plugins"; Flags: ignoreversion
+Source: "Plugins\WindowPositions.exe"; DestDir: "{app}/Plugins"; Flags: ignoreversion
+Source: "GridMove.dcupdate"; DestDir: "{app}"; Flags: ignoreversion
+Source: "dcuhelper.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "Documents\EULA.txt"; DestDir: "{app}/Documents"; Flags: ignoreversion
+Source: "Documents\License.txt"; DestDir: "{app}/Documents"; Flags: ignoreversion
+
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{group}\GridMove"; Filename: "{app}\GridMove.exe"
+Name: "{group}\{cm:ProgramOnTheWeb,GridMove}"; Filename: "http://donationcoders.com/jgpaiva/gridmove.html"
+Name: "{group}\{cm:UninstallProgram,GridMove}"; Filename: "{uninstallexe}"
+Name: "{commondesktop}\GridMove"; Filename: "{app}\GridMove.exe"; Tasks: desktopicon
+Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\GridMove"; Filename: "{app}\GridMove.exe"; Tasks: quicklaunchicon
+Name: {group}\{cm:updates}; Filename: {app}\dcuhelper.exe; WorkingDir: {app}; Parameters: "-ri GridMove""{app}"" ATTENTION -show"; IconFilename: {app}\GridMove.exe; Flags: runminimized
+Name: "{commonstartup}\GridMove"; Filename: "{app}\GridMove.exe"; Tasks: startwindows
+
+[Run]
+Filename: "{app}\GridMove.exe"; Description: "{cm:LaunchProgram,GridMove}"; Flags: nowait postinstall skipifsilent
+Filename: "{app}\dcuhelper.exe"; WorkingDir: {app}; Description: Enable Update Checking..; Flags: nowait runhidden; Parameters: "-r GridMove ""{app}"""
\ No newline at end of file
diff --git a/packing/update.vim b/packing/update.vim
new file mode 100644
index 0000000..126b358
--- /dev/null
+++ b/packing/update.vim
@@ -0,0 +1,5 @@
+e GridMovep1.ahk
+e Versioninfo.xml
+e GridMove.dcupdate
+e GridMoveTemp.iss
+bufdo s/1.19\.../1.19.53/c
diff --git a/packing/versioninfo.xml b/packing/versioninfo.xml
new file mode 100644
index 0000000..7569629
--- /dev/null
+++ b/packing/versioninfo.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0"?>
+<Program_Version>1.19.62</Program_Version>
+<Program_Release_Month>12</Program_Release_Month>
+<Program_Release_Day>01</Program_Release_Day>
+<Program_Release_Year>2010</Program_Release_Year>
diff --git a/strings.ahk b/strings.ahk
new file mode 100644
index 0000000..c828816
--- /dev/null
+++ b/strings.ahk
@@ -0,0 +1,139 @@
+setlanguage:
+  if(Language = "FR"){
+    tray_help=Aide / À propos...
+    tray_updates=Mettre à jour!
+    tray_ignore=Ignore fenêtre
+    tray_windows=Démarrage avec Windows
+    tray_templates=Modèles
+    tray_options=Options
+    tray_hotkeys=Raccourcis
+    tray_restart=Redémarrer
+    tray_colors=Couleur de la grille
+    tray_exit=Quitter
+
+    tray_refresh=- Rafraîchir cette liste -
+
+    tray_safemode=Mode sans échec
+    tray_showgrid=Afficher la grille
+    tray_shownumbers=Afficher la nomérotation de grille
+    tray_lbuttondrag=Utiliser: Méthode glisser par le titre
+    tray_mbuttondrag=Utiliser: Méthode avec bouton central
+    tray_edgedrag=Utiliser: Métode de bordure
+    tray_edgetime=Définir le temps de bordure...
+    tray_titlesize=Définir la taille de la barre de titre...
+    tray_gridorder=Définir l'odre de la grille...
+
+    tray_usecommand=Utiliser mode commande
+    tray_commandhotkey=Définir le raccourci commande...
+    tray_fastmove=Utiliser le déplacement rapide
+    tray_fastmovemodifiers=Modificateur de déplacement rapide...
+
+    tray_color_orange=Orange
+    tray_color_blue=Bleu
+    tray_color_black=Noir
+
+    error_ngroups=Une erreur s'est produite lors de l'ouverture du fichier grid.`nLa configuration par défaut sera restaurée. Veuillez sélectionner une autre grille du menu modèles.`nErrorCode:001
+
+    error_grid_p1=Une erreur s'est produite lors de la lecture du fichier grid.`nLa configuration par défaut sera restaurée.
+    error_grid_p2=Erreur de lecture pour un élément de la grille
+     error_inifile=Une erreur s'est produite lors de la lecture du fichier de configuration.`nLa configuration par défaut sera restaurée. 
+
+    info_removed=Fenêtre retirée des exceptions:
+    info_added=Fenêtre ajoutée aux exceptions:
+
+    tooltip_ignore=Appuyez sur F12 pour ignorer ou non la fenêtre ayant actuellement le focus.`nF11 pour annuler.
+
+    input_hotkey_title=Entrez la touch raccourci
+    input_hotkey=Sélectionnez la touche qui sera utilisée pour passer au mode commande de GridMove. ^ signifie ctrl   + signifie shift   ! signifie alt et # signifie le bouton Windows.  ex. ^#g signifie ctrl+BoutonWindows+g. Il est a noter que l'ordre des touches n'a aucune importance...
+    input_fastmove_title=Entrez la touche filtre pour activer le déplacement rapide
+    input_fastmove=Entrez la touche pour le déplacement rapide.`n^ signifie ctrl`, + signifie shift`,! signifie alt et # signifie le bouton Windows.`nex.^# fera donc ctrl+BoutonWindows+1 déplacer la fenêtre active dans la première zone de la grille.`nIl est a noter que l'ordre des touches n'a aucune importance...
+    input_gridorder_title=Entrez un ordre pour le défilement des différentes grilles
+    input_gridorder=Il suffit d'entrer les noms comme ils le sont dans le menu "Modèles", separés par des virgules ','.
+    input_edgetime_title=Entrez un délais pour l'activation du mode de bordure
+    input_edgetime=Entrez un délais avant que la grille apparaisse`nquand une fenêtre est déplacée en bordure d'écran.
+    input_titlesize_title=Entrez la taille de délimitation pour la zone de titre
+    input_titlesize=Entrez un nombre de pixels pour la zone de titre qui sera utilisée pour le mode déplacement par le titre.
+
+    helper_1=Vous pouvez maintenant sélectionner l'endroit où déposer votre fenêtre.
+    helper_2=Vous pouvez maintenant glisser la fenêtre`npour activer le mode déposer la fenêtre
+    helper_3=Garder la souris ici`nactivera le mode déposer la fenêtre.
+    helper_4=Vous pouvez maintenant glisser la fenêtre en bordure d'écran`npour activer le mode déposer la fenêtre
+
+    info_firstrun_title=Bienvenue dans GridMove.
+    info_firstrun=À votre première ouverture, vous obtiendrez de l'aide sous forme d'info-bulles.`nPour les désactiver, il faut cliquer sur l'icône Gridmove dans la barre des tâches et décocher l'option.
+
+    about_main=GridMove vous aide à organiser les fenêtres de votre bureau en créant une grille qui pourra servir de guide pour aligner vos fenêtres.`nDes modèles prédéfinis sont inclus, mais il est possible de créer vos propres grilles ou en télécharger d'autres en ligne.`nPour plus d'information à ce sujet, vous pouvez vous joindre au forum de discussion sur le site DonationCoder.com dans la section aide. 
+    about_suggest = Ce logiciel fût suggéré par Nudone (Utilisateur des forums de`nDonationCoder.com) dans la discussion suivante :
+    about_visit = Retrouvez nous en ligne à l'adresse:
+
+    about_license_quebec = Ce logiciel est enregistré à:`nCommission des lésions professionnelles (Québec, Canada)
+
+  } else {
+    tray_help=About/Help
+    tray_updates=Check For Updates!
+    tray_ignore=Ignore/Unignore window...
+    tray_windows=Start With Windows
+    tray_templates=Templates
+    tray_options=Options
+    tray_hotkeys=Hotkeys
+    tray_restart=Restart
+    tray_colors=Grid Color
+    tray_exit=Exit
+
+    tray_refresh=- Refresh this list -
+
+    tray_safemode=Safe Mode
+    tray_showgrid=Show Grid
+    tray_shownumbers=Show Numbers On Grid
+    tray_lbuttondrag=Use Drag On Window Title method
+    tray_mbuttondrag=Use Drag With Middle Button method
+    tray_edgedrag=Use Drag Window To Edge method
+    tray_edgetime=Set Edge Time...
+    tray_titlesize=Set Title Size...
+    tray_gridorder=Set Grid Order...
+
+    tray_usecommand=Use Command
+    tray_commandhotkey=Select Command Hotkey...
+    tray_fastmove=Use Fast Move
+    tray_fastmovemodifiers=Select Fast Move Modifiers...
+
+    tray_color_orange=Orange
+    tray_color_blue=Blue
+    tray_color_black=Black
+
+    error_ngroups=There was an error while opening the grid file.`nReverting to Default Config. Please select another grid from the templates menu.`nErrorCode:001
+    error_grid_p1=There was an error while reading the grid file.`nReverting to Default config. 
+    error_grid_p2=Read error on grid element 
+    error_inifile=There was an error while reading the ini file.`nReverting to the Default config
+
+    info_removed=Removed window from exceptions:
+    info_added=Added window to exceptions:
+
+    tooltip_ignore=Focus the window to ignore/unignore and press F12!!`nPress F11 to cancel.
+
+    input_hotkey_title=Input the hotkey
+    input_hotkey=Select the hotkey you'd like to use to make GridMove go into Command Mode. ^ stands for ctrl`, + stands for shift`, ! stands for alt and # stands for Windows key.`nE.G.: ^#g stands for ctrl+win+g. Notice that the order of the modifiers doesn't matter.
+    input_fastmove_title=Input the modifier keys for Fast Move
+    input_fastmove=Please input the modifiers for Fast Move.`n^ stands for ctrl`, + stands for shift`,`n! stands for alt and # stands for Win key.`nE.G. : ^# will make ctrl+windows+1 move the active window to the first area.`nNotice that their order doesn't matter.
+    input_gridorder_title=Input an order for the grid Cycle
+    input_gridorder=Just type the names as found in the "templates" menu item`, separated by commas '`,'.
+    input_edgetime_title=Input the delay for the edge method
+    input_edgetime=Please input the delay before the grid comes up `nwhen a window is dragged to the edge of the screen.
+    input_titlesize_title=Input the size of the title of windows
+    input_titlesize=Please input the number of pixels to be considered as the title of a window for the LButton drag method.
+
+    helper_1=You can now select where to drop the window.
+    helper_2=You may now drag the window`nto go into drop zone mode
+    helper_3=If you keep the mouse here`ndrop zone mode will be activated
+    helper_4=You can now drag the window to the edge of the screen`nto activate drop zone mode. 
+
+    info_firstrun_title=Welcome to GridMove.
+    info_firstrun=As this is GridMove's first run,you'll get some help in the form of tooltips.`nIf you don't like to see them, just close GridMove through its tray menu and run it again.
+
+    about_main = GridMove helps you organize your windows in your desktop, by creating a grid that when called up, you can snap windows into.`nIt is bundled with some predefined templates, but you can create your own grids, or download other people's grids.`nFor more information on how to use it, check the help tab or the DonationCoder.com Forum thread. 
+    about_suggest = It was suggested by Nudone at DonationCoder.com forums,`nin the following thread:
+    about_visit = Please visit us at:
+
+    about_license_quebec = This program is registered for use in:`nCommission des lésions professionnelles (Québec, Canada)
+  }
+  return
diff --git a/todo.txt b/todo.txt
new file mode 100644
index 0000000..9d27701
--- /dev/null
+++ b/todo.txt
@@ -0,0 +1,9 @@
+[01:12]	mouser: instead of saying
+[01:12]	mouser: "suggested on the following thread by nudone
+[01:12]	mouser: just say
+[01:12]	mouser: "Visit the ScreenZones web page: ..."
+[01:12]	mouser: and then on the web page
+
+[00:56]	mouser: you need to update help tab
+[00:56]	mouser: to tell about win+g
+