Simple application to write a single bitmap to a file in QSPI memory.

Dependencies:   DMBasicGUI DMSupport

Files at this revision

API Documentation at this revision

Comitter:
jmitc91516
Date:
Fri Jul 28 14:32:15 2017 +0000
Commit message:
Simple application to write a single bitmap to a file in QSPI memory.

Changed in this revision

DMBasicGUI.lib Show annotated file Show diff for this revision Revisions of this file
DMSupport.lib Show annotated file Show diff for this revision Revisions of this file
dm_board_config.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiComponents.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiDisplay.c Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiDisplay.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiGraph.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiGraph16.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiItems.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiLib.c Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiLib.h Show annotated file Show diff for this revision Revisions of this file
easyGUIFixed/GuiLibStruct.h Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiConst.h Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiFont.c Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiFont.h Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiStruct.c Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiStruct.h Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiVar.c Show annotated file Show diff for this revision Revisions of this file
easyGUIUpdated/GuiVar.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 7d6bc03009a3 DMBasicGUI.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DMBasicGUI.lib	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Embedded-Artists/code/DMBasicGUI/#1a7c743600e6
diff -r 000000000000 -r 7d6bc03009a3 DMSupport.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/DMSupport.lib	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/Embedded-Artists/code/DMSupport/#e1cb4dd9bfeb
diff -r 000000000000 -r 7d6bc03009a3 dm_board_config.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dm_board_config.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,37 @@
+/*
+ *  Copyright 2014 Embedded Artists AB
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+#ifndef DM_BOARD_CONFIG_H
+#define DM_BOARD_CONFIG_H
+
+// Template to use for the project-specific settings. Copy this file to your project,
+// rename it to dm_board_config.h and uncomment the wanted features below:
+
+// #define DM_BOARD_USE_USB_DEVICE
+// #define DM_BOARD_USE_USB_HOST
+// #define DM_BOARD_USE_MCI_FS
+// #define DM_BOARD_USE_QSPI_FS
+// #define DM_BOARD_USE_QSPI
+#define DM_BOARD_USE_DISPLAY
+#define DM_BOARD_USE_TOUCH
+// #define DM_BOARD_USE_ETHERNET
+#define DM_BOARD_USE_FAST_UART
+// #define DM_BOARD_USE_USBSERIAL_IN_RTOSLOG
+// #define DM_BOARD_DISABLE_STANDARD_PRINTF
+// #define DM_BOARD_ENABLE_MEASSURING_PINS
+#define DM_BOARD_USE_REGISTRY
+
+#endif
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiComponents.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiComponents.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,4250 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/*     GuiLib.c include file - do NOT reference it in your linker setup     */
+/*                                                                          */
+/* ************************************************************************ */
+
+//------------------------------------------------------------------------------
+void GuiLib_ClearPositionCallbacks(void)
+{
+  GuiConst_INT16U I;
+
+  for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++)
+    sgl.PosCallbacks[I].InUse = 0;
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_SetPositionCallbackFunc(
+   GuiConst_INT16U IndexNo,
+   void (*PosCallbackFunc) (GuiConst_INT16U IndexNo,
+                            GuiConst_INT16S X,
+                            GuiConst_INT16S Y))
+{
+  GuiConst_INT32S I, J;
+
+  J = -1;
+  for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++)
+    if (sgl.PosCallbacks[I].IndexNo == IndexNo)
+    {
+      J = I;
+      break;
+    }
+  if (J == -1)
+    for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++)
+      if (!sgl.PosCallbacks[I].InUse)
+      {
+        J = I;
+        break;
+      }
+
+  if (J >= 0)
+  {
+    sgl.PosCallbacks[J].InUse = 1;
+    sgl.PosCallbacks[J].PosCallbackFunc = PosCallbackFunc;
+    sgl.PosCallbacks[J].IndexNo = IndexNo;
+  }
+}
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+static void DrawCursorItem(
+   GuiConst_INT8U CursorVisible)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  GuiConst_INT16S RemCursorFieldNo, I;
+  PrefixLocate ItemMemory     RemMemory;
+  PrefixLocate ItemMemory  *PrefixLocate CursorMemory;
+  PrefixLocate GuiLib_ItemRec *CursorItem;
+
+  if (sgl.CursorInUse && (GuiLib_ActiveCursorFieldNo >= 0))
+  {
+    I = -1;
+    memcpy(&RemMemory, &sgl.Memory, sizeof(ItemMemory));
+    while ((I = AutoRedraw_GetCursor(GuiLib_ActiveCursorFieldNo, I)) != -1)
+    {
+      CursorItem = AutoRedraw_GetItem(I);
+      CursorMemory = AutoRedraw_GetItemMemory(I);
+
+      if ((CursorItem == NULL) || (CursorMemory == NULL))
+        return;
+
+      memcpy(&sgl.CurItem, CursorItem, sizeof(GuiLib_ItemRec));
+      memcpy(&sgl.Memory, CursorMemory, sizeof(ItemMemory));
+
+
+  #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+      if ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_FIELDSCROLLBOX) &&
+          (sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].ScrollLineDataFunc != 0))
+        sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].ScrollLineDataFunc(
+           sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].MarkerStartLine[0]);
+  #endif // GuiConst_ITEM_SCROLLBOX_INUSE
+
+      if (!CursorVisible)
+      {
+        RemCursorFieldNo = GuiLib_ActiveCursorFieldNo;
+        GuiLib_ActiveCursorFieldNo = -1;
+      }
+      else
+        RemCursorFieldNo = 0;
+
+      sgl.SwapColors = 0;
+  #ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+      if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_FIELDSCROLLBOX)
+        ScrollBox_DrawScrollLine(sgl.CurItem.CursorScrollBoxIndex,
+           sgl.ScrollBoxesAry[sgl.CurItem.CursorScrollBoxIndex].MarkerStartLine[0]);
+      else
+  #endif // GuiConst_ITEM_SCROLLBOX_INUSE
+      {
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+        UpdateBackgroundBitmap();
+  #endif
+
+        DrawItem(GuiLib_COL_INVERT_IF_CURSOR);
+      }
+
+      if (!CursorVisible)
+        GuiLib_ActiveCursorFieldNo = RemCursorFieldNo;
+    }
+    memcpy(&sgl.Memory, &RemMemory, sizeof(ItemMemory));
+  }
+  #else // GuiConst_CURSOR_FIELDS_OFF
+  CursorVisible = 0;
+  #endif // GuiConst_CURSOR_FIELDS_OFF
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Cursor_Hide(void)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  GuiDisplay_Lock();
+  DrawCursorItem(0);
+  GuiDisplay_Unlock();
+  GuiLib_ActiveCursorFieldNo = -1;
+#endif // GuiConst_CURSOR_FIELDS_OFF
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_IsCursorFieldInUse(
+   GuiConst_INT16S AskCursorFieldNo)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  if (AskCursorFieldNo >= 0)
+  {
+    if (AutoRedraw_GetCursor(AskCursorFieldNo, -1) != -1)
+      return 1;
+  }
+
+  return 0;
+#else // GuiConst_CURSOR_FIELDS_OFF
+  return 0;
+#endif // GuiConst_CURSOR_FIELDS_OFF
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Cursor_Select(
+   GuiConst_INT16S NewCursorFieldNo)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  if (NewCursorFieldNo == -1)
+  {
+    GuiLib_Cursor_Hide();
+    return 0;
+  }
+  else if (NewCursorFieldNo >= 0)
+  {
+    if (AutoRedraw_GetCursor(NewCursorFieldNo, -1) != -1)
+    {
+      GuiDisplay_Lock();
+
+      DrawCursorItem(0);
+      GuiLib_ActiveCursorFieldNo = NewCursorFieldNo;
+      DrawCursorItem(1);
+
+      GuiDisplay_Unlock();
+
+      return 1;
+    }
+  }
+
+  return 0;
+#else
+  NewCursorFieldNo = 0;
+  return 0;
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Cursor_Down(void)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  GuiConst_INT16S NewCursorFieldNo, Index;
+
+  Index = AutoRedraw_GetNextCursor(GuiLib_ActiveCursorFieldNo);
+
+  NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index);
+
+#ifdef GuiConst_CURSOR_MODE_WRAP_AROUND
+  if ((NewCursorFieldNo == GuiLib_ActiveCursorFieldNo)
+   || (Index == -1))
+    return GuiLib_Cursor_Home();
+#else
+  if (Index == -1)
+    return 0;
+#endif
+
+  GuiLib_Cursor_Select(NewCursorFieldNo);
+
+  return 1;
+#else
+  return 0;
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Cursor_Up(void)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  GuiConst_INT16S NewCursorFieldNo, Index;
+
+  Index = AutoRedraw_GetPrevCursor(GuiLib_ActiveCursorFieldNo);
+
+  NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index);
+
+#ifdef GuiConst_CURSOR_MODE_WRAP_AROUND
+  if ((NewCursorFieldNo == GuiLib_ActiveCursorFieldNo)
+   || (Index == -1))
+    return GuiLib_Cursor_End();
+#else
+  if (Index == -1)
+    return 0;
+#endif
+
+  GuiLib_Cursor_Select(NewCursorFieldNo);
+
+  return 1;
+#else
+  return 0;
+#endif
+
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Cursor_Home(void)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  GuiConst_INT16S NewCursorFieldNo, Index;
+
+  Index = AutoRedraw_GetFirstCursor();
+
+  NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index);
+
+  if (NewCursorFieldNo == GuiLib_ActiveCursorFieldNo)
+    return 0;
+
+  GuiLib_Cursor_Select(NewCursorFieldNo);
+
+  return 1;
+#else
+  return 0;
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Cursor_End(void)
+{
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+  GuiConst_INT16S NewCursorFieldNo, Index;
+
+  Index = AutoRedraw_GetLastCursor();
+
+  NewCursorFieldNo = AutoRedraw_GetCursorNumber(Index);
+
+  if (NewCursorFieldNo == GuiLib_ActiveCursorFieldNo)
+    return 0;
+
+  GuiLib_Cursor_Select(NewCursorFieldNo);
+
+  return 1;
+#else
+  return 0;
+#endif
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#endif // GuiConst_CURSOR_SUPPORT_ON
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+static void BlinkBox(void)
+{
+  if ((sgl.BlinkBoxRate) && (sgl.DisplayWriting))
+    GuiLib_InvertBox(sgl.BlinkBoxX1, sgl.BlinkBoxY1, sgl.BlinkBoxX2, sgl.BlinkBoxY2);
+  sgl.BlinkBoxInverted = !sgl.BlinkBoxInverted;
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_BlinkBoxStart(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INT16S Rate)
+{
+  GuiLib_BlinkBoxStop();
+  sgl.BlinkBoxX1 = X1;
+  sgl.BlinkBoxY1 = Y1;
+  sgl.BlinkBoxX2 = X2;
+  sgl.BlinkBoxY2 = Y2;
+  if (Rate < 1)
+    sgl.BlinkBoxRate = 1;
+  else
+    sgl.BlinkBoxRate = Rate;
+  sgl.BlinkBoxState = sgl.BlinkBoxRate;
+  sgl.BlinkBoxInverted = 0;
+  BlinkBox();
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_BlinkBoxStop(void)
+{
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  GuiConst_INT16U I;
+#endif
+
+  if (sgl.BlinkBoxRate && sgl.BlinkBoxInverted)
+    BlinkBox();
+  sgl.BlinkBoxRate = 0;
+
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  for (I = 0; I < GuiConst_BLINK_FIELDS_MAX; I++)
+    if (sgl.BlinkTextItems[I].InUse && sgl.BlinkTextItems[I].Active)
+      GuiLib_BlinkBoxMarkedItemStop(I);
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_BlinkBoxMarkedItem(
+   GuiConst_INT16U BlinkFieldNo,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16S Rate)
+{
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  GuiConst_INT16S TextXOfs[GuiConst_MAX_TEXT_LEN + 2];
+  TextParRec TempTextPar;
+  GuiConst_INT8U TempPs;
+  GuiConst_INT16U CharCnt;
+  GuiConst_INT16U TempTextLength;
+  GuiConst_INT8U TempFormatFieldWidth;
+  GuiConst_INT8U TempFormatDecimals;
+  GuiConst_INT8U TempFormatAlignment;
+  GuiConst_INT8U TempFormatFormat;
+  #ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT32U PrefixRom TempOfs;
+  GuiConst_INT8U CharHeader[GuiLib_CHR_LINECTRL_OFS];
+  #else // GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U PrefixRom * TempPtr;
+  #endif // GuiConst_REMOTE_FONT_DATA
+  #ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+  GuiConst_INT8U CharHeader1[GuiLib_CHR_LINECTRL_OFS];
+  GuiConst_INT8U CharHeader2[GuiLib_CHR_LINECTRL_OFS];
+  GuiConst_INT16S TextCharLineStart[GuiConst_MAX_PARAGRAPH_LINE_CNT];
+  GuiConst_INT16S TextCharLineEnd[GuiConst_MAX_PARAGRAPH_LINE_CNT];
+  GuiConst_INT16S M;
+  GuiConst_INT16S LineCnt;
+  GuiConst_INT16S LineCnt2;
+  GuiConst_INT16S LineLen;
+  GuiConst_INT16S XStart, XEnd;
+  GuiConst_INT16S P2;
+  #endif // GuiConst_ITEM_TEXTBLOCK_INUSE
+  GuiConst_INT16S N;
+#ifndef GuiConst_CHARMODE_ANSI
+  GuiConst_INT16S P1;
+#endif
+  GuiConst_TEXT PrefixGeneric *CharPtr;
+  GuiConst_INT32S VarValue;
+  GuiConst_INT16S TextPixelLen;
+
+  if ((BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX) ||
+      !sgl.BlinkTextItems[BlinkFieldNo].InUse)
+    return;
+
+  if (sgl.BlinkTextItems[BlinkFieldNo].Active &&
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate &&
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted)
+  {
+    if (sgl.DisplayWriting)
+    {
+      GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1,
+                       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1,
+                       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2,
+                       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2);
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted =
+         !sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast =
+         sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+    }
+  }
+
+  sgl.BlinkTextItems[BlinkFieldNo].Active = 0;
+  sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = 0;
+
+  if ((BlinkFieldNo < GuiConst_BLINK_FIELDS_MAX) &&
+       sgl.BlinkTextItems[BlinkFieldNo].InUse)
+  {
+    sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 = sgl.BlinkTextItems[BlinkFieldNo].X1;
+    sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = sgl.BlinkTextItems[BlinkFieldNo].X2;
+    sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 = sgl.BlinkTextItems[BlinkFieldNo].Y1;
+    sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2 = sgl.BlinkTextItems[BlinkFieldNo].Y2;
+
+    if (sgl.BlinkTextItems[BlinkFieldNo].InUse)
+    {
+      TempTextPar = sgl.CurItem.TextPar[0];
+      TempTextLength = sgl.CurItem.TextLength[0];
+      TempFormatFieldWidth = sgl.CurItem.FormatFieldWidth;
+      TempFormatDecimals = sgl.CurItem.FormatDecimals;
+      TempFormatAlignment = sgl.CurItem.FormatAlignment;
+      TempFormatFormat = sgl.CurItem.FormatFormat;
+
+      sgl.CurItem.FormatFieldWidth = sgl.BlinkTextItems[BlinkFieldNo].FormatFieldWidth;
+      sgl.CurItem.FormatDecimals = sgl.BlinkTextItems[BlinkFieldNo].FormatDecimals;
+      sgl.CurItem.FormatAlignment = sgl.BlinkTextItems[BlinkFieldNo].FormatAlignment;
+      sgl.CurItem.FormatFormat = sgl.BlinkTextItems[BlinkFieldNo].FormatFormat;
+      sgl.CurItem.TextPar[0] = sgl.BlinkTextItems[BlinkFieldNo].TextPar;
+      CharCnt = sgl.BlinkTextItems[BlinkFieldNo].CharCnt;
+      sgl.CurItem.TextLength[0] = CharCnt;
+
+      SetCurFont(sgl.BlinkTextItems[BlinkFieldNo].TextPar.FontIndex);
+
+      if ((sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_TEXT) ||
+          (sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_TEXTBLOCK))
+      {
+#ifdef GuiConst_CHARMODE_UNICODE
+        ExtractUnicodeString(
+           (GuiConst_INT8U PrefixRom *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr,
+            sgl.CurItem.TextLength[0]);
+  #ifdef GuiConst_ARAB_CHARS_INUSE
+        if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+            GuiLib_BITFLAG_REVERSEWRITING)
+        {
+          CharCnt = ArabicCorrection(
+             sgl.UnicodeTextBuf, CharCnt,
+             (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+              GuiLib_BITFLAG_REVERSEWRITING) > 0);
+        }
+  #endif // GuiConst_ARAB_CHARS_INUSE
+#endif // GuiConst_CHARMODE_UNICODE
+
+#ifdef GuiConst_CHARMODE_UNICODE
+        CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.UnicodeTextBuf;
+#else // GuiConst_CHARMODE_UNICODE
+        CharPtr = (GuiConst_TEXT PrefixRom *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr;
+#endif // GuiConst_CHARMODE_UNICODE
+        PrepareText(CharPtr,CharCnt,0);
+      }
+      else
+      {
+#ifdef GuiConst_DISP_VAR_NOW
+        displayVarNow = 1;
+#endif
+        if (sgl.BlinkTextItems[BlinkFieldNo].VarType == GuiLib_VAR_STRING)
+        {
+          CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr;
+#ifdef GuiConst_CHARMODE_ANSI
+          CharCnt = strlen(CharPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+          CharCnt = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr);
+#else // GuiConst_CODEVISION_COMPILER
+          CharCnt = GuiLib_UnicodeStrLen(CharPtr);
+#endif // GuiConst_CODEVISION_COMPILER
+#endif // GuiConst_CHARMODE_ANSI
+        }
+        else
+        {
+          VarValue = ReadVar(sgl.BlinkTextItems[BlinkFieldNo].TextPtr,
+                             sgl.BlinkTextItems[BlinkFieldNo].VarType);
+
+          CharCnt =
+             DataNumStr(VarValue, sgl.BlinkTextItems[BlinkFieldNo].VarType, 0);
+
+#ifdef GuiConst_CHARMODE_ANSI
+          CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr;
+#else // GuiConst_CHARMODE_ANSI
+          for (P1=0; P1<=CharCnt; P1++)
+            sgl.VarNumUnicodeTextStr[P1] = sgl.VarNumTextStr[P1];
+          CharPtr = (GuiConst_TEXT *) sgl.VarNumUnicodeTextStr;
+#endif // GuiConst_CHARMODE_ANSI
+        }
+#ifdef GuiConst_CHARMODE_ANSI
+         strcpy(sgl.AnsiTextBuf, CharPtr);
+#else // GuiConst_CHARMODE_ANSI
+         GuiLib_UnicodeStrCpy(sgl.UnicodeTextBuf, CharPtr);
+#endif // GuiConst_CHARMODE_ANSI
+#ifdef   GuiConst_ARAB_CHARS_INUSE
+         if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+             GuiLib_BITFLAG_REVERSEWRITING)
+         {
+           CharCnt = ArabicCorrection(
+              sgl.UnicodeTextBuf, CharCnt,
+             (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+              GuiLib_BITFLAG_REVERSEWRITING) > 0);
+         }
+#endif // GuiConst_ARAB_CHARS_INUSE
+#ifdef GuiConst_CHARMODE_ANSI
+         CharPtr = sgl.AnsiTextBuf;
+#else // GuiConst_CHARMODE_ANSI
+         CharPtr = sgl.UnicodeTextBuf;
+#endif // GuiConst_CHARMODE_ANSI
+         PrepareText(CharPtr, CharCnt,0);
+
+#ifdef GuiConst_DISP_VAR_NOW
+         displayVarNow = 0;
+#endif
+      }
+
+      if (CharNo > CharCnt)
+      {
+        SetCurFont(sgl.CurItem.TextPar[0].FontIndex);
+        sgl.CurItem.TextPar[0] = TempTextPar;
+        sgl.CurItem.TextLength[0] = TempTextLength;
+        sgl.CurItem.FormatFieldWidth = TempFormatFieldWidth;
+        sgl.CurItem.FormatDecimals = TempFormatDecimals;
+        sgl.CurItem.FormatAlignment = TempFormatAlignment;
+        sgl.CurItem.FormatFormat = TempFormatFormat;
+        return;
+      }
+
+      if(CharNo > 0)
+      {
+#ifdef GuiConst_BLINK_LF_COUNTS
+        if (*(CharPtr + (CharNo - 1)) != GuiLib_LINEFEED)
+#endif
+        {
+          sgl.BlinkTextItems[BlinkFieldNo].Active = 0;
+          sgl.BlinkTextItems[BlinkFieldNo].CharNo = CharNo;
+        }
+      }
+
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+      if ((sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_TEXTBLOCK)||
+          (sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_VARBLOCK))
+      {
+        if(CharNo > 0)
+        {
+          TextPixelLength(sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps,
+                          CharCnt, TextXOfs);
+
+          TextCharLineStart[0] = 0;
+          TextCharLineEnd[0] = -1;
+
+          LineCnt = 1 - sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop;
+          if (LineCnt >= 1)
+            LineCnt = 1;
+          LineCnt2 = 1;
+          P2 = 0;
+
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+          GuiLib_RemoteDataReadBlock(
+             (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[
+              sgl.TextCharNdx[TextCharLineStart[LineCnt2 - 1]]],
+              GuiLib_CHR_LINECTRL_OFS,
+              CharHeader2);
+#endif // GuiConst_REMOTE_FONT_DATA
+
+          while (P2 < CharCnt)
+          {
+            while ((P2 < CharCnt - 1) &&
+                !((ReadBytePtr(CharPtr + P2) == GuiLib_LINEFEED) ||
+                ((ReadBytePtr(CharPtr + P2) != ' ') && (ReadBytePtr(CharPtr + P2 + 1) == ' ')) ||
+                ((ReadBytePtr(CharPtr + P2) == '-') && (ReadBytePtr(CharPtr + P2 + 1) != ' '))))
+              P2++;
+
+            if (CalcCharsWidth(TextCharLineStart[LineCnt2 - 1], P2,
+                               TextXOfs, &XStart, &XEnd) >
+               (sgl.BlinkTextItems[BlinkFieldNo].X2 -
+                sgl.BlinkTextItems[BlinkFieldNo].X1 + 1))
+            {
+              if (TextCharLineEnd[LineCnt2 - 1] == -1)
+              {
+                TextCharLineEnd[LineCnt2 - 1] = P2;
+                TextCharLineStart[LineCnt2] = P2 + 1;
+                TextCharLineEnd[LineCnt2] = -1;
+              }
+              else
+              {
+                TextCharLineStart[LineCnt2] = TextCharLineEnd[LineCnt2 - 1] + 1;
+                while ((TextCharLineStart[LineCnt2] < P2) &&
+                       (ReadBytePtr(CharPtr + TextCharLineStart[LineCnt2]) ==
+                        ' '))
+                  TextCharLineStart[LineCnt2]++;
+                TextCharLineEnd[LineCnt2] = P2;
+              }
+              if (LineCnt >= GuiConst_MAX_PARAGRAPH_LINE_CNT)
+              {
+                P2 = CharCnt;
+                break;
+              }
+              LineCnt++;
+              if (LineCnt > 1)
+                LineCnt2 = LineCnt;
+              else
+                TextCharLineStart[LineCnt2 - 1] = TextCharLineStart[LineCnt2];
+            }
+            else
+              TextCharLineEnd[LineCnt2 - 1] = P2;
+            if (ReadBytePtr(CharPtr + P2) == GuiLib_LINEFEED)
+            {
+              TextCharLineEnd[LineCnt2 - 1] = P2 - 1;
+              TextCharLineStart[LineCnt2] = P2 + 1;
+              TextCharLineEnd[LineCnt2] = -1;
+              if (LineCnt >= GuiConst_MAX_PARAGRAPH_LINE_CNT)
+              {
+                P2 = CharCnt;
+                break;
+              }
+              LineCnt++;
+              if (LineCnt > 1)
+                LineCnt2 = LineCnt;
+              else
+                TextCharLineStart[LineCnt2 - 1] = TextCharLineStart[LineCnt2];
+            }
+            P2++;
+          }
+
+            if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+                GuiLib_BITFLAG_REVERSEWRITING)
+            {
+              for (M = 0; M < LineCnt2 ; M++)
+              {
+                for (P2 = TextCharLineStart[M]; P2 <= (TextCharLineStart[M] +
+                   ((TextCharLineEnd[M] - TextCharLineStart[M] + 1) / 2) - 1);
+                     P2++)
+                {
+#ifdef GuiConst_REMOTE_FONT_DATA
+                  TempOfs = sgl.TextCharNdx[P2];
+                  sgl.TextCharNdx[P2] =
+                     sgl.TextCharNdx[TextCharLineEnd[M] - (P2 - TextCharLineStart[M])];
+                  sgl.TextCharNdx[TextCharLineEnd[M] - (P2 - TextCharLineStart[M])] =
+                     TempOfs;
+#else // GuiConst_REMOTE_FONT_DATA
+                  TempPtr = sgl.TextCharPtrAry[P2];
+                  sgl.TextCharPtrAry[P2] =
+                     (GuiConst_INT8U PrefixRom *)sgl.TextCharPtrAry[
+                     TextCharLineEnd[M] - (P2 - TextCharLineStart[M])];
+                  sgl.TextCharPtrAry[TextCharLineEnd[M] - (P2 - TextCharLineStart[M])] =
+                     (GuiConst_INT8U PrefixRom *)TempPtr;
+#endif // GuiConst_REMOTE_FONT_DATA
+                }
+              }
+              TextPixelLength(sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps,
+                              CharCnt, TextXOfs);
+            }
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+            if (sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop < 0)
+              sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop = 0;
+            sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 -=
+               sgl.BlinkTextItems[BlinkFieldNo].TextBoxScrollPos -
+              (sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist *
+               sgl.BlinkTextItems[BlinkFieldNo].BlindLinesAtTop);
+#endif // GuiConst_TEXTBOX_FIELDS_ON
+
+            switch (sgl.BlinkTextItems[BlinkFieldNo].TextBoxVertAlignment)
+            {
+             case GuiLib_ALIGN_CENTER:
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 +=
+                  (sgl.BlinkTextItems[BlinkFieldNo].Y2 -
+                   sgl.BlinkTextItems[BlinkFieldNo].Y1 + 1 -
+                  (sgl.BlinkTextItems[BlinkFieldNo].YSize +
+                  (LineCnt2 - 1) *
+                   sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist)) / 2;
+               break;
+
+             case GuiLib_ALIGN_RIGHT:
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 +=
+                  sgl.BlinkTextItems[BlinkFieldNo].Y2 -
+                  sgl.BlinkTextItems[BlinkFieldNo].Y1 + 1 -
+                 (sgl.BlinkTextItems[BlinkFieldNo].YSize +
+                 (LineCnt2 - 1) *
+                  sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist);
+               break;
+            }
+
+            for (N = 0; N < LineCnt2; N++)
+            {
+              if (((CharNo - 1) <= TextCharLineEnd[N])
+               && ((CharNo - 1) >= TextCharLineStart[N]))
+              {
+                if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+                    GuiLib_BITFLAG_REVERSEWRITING)
+                  CharNo = TextCharLineStart[N] + TextCharLineEnd[N] + 2 - CharNo;
+
+                sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 =
+                   sgl.BlinkTextItems[BlinkFieldNo].X1;
+
+                LineLen = CalcCharsWidth(TextCharLineStart[N],
+                                         TextCharLineEnd[N],
+                                         TextXOfs,
+                                         &XStart,
+                                         &XEnd);
+                switch (sgl.BlinkTextItems[BlinkFieldNo].TextBoxHorzAlignment)
+                {
+                  case GuiLib_ALIGN_CENTER:
+                   sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +=
+                      (sgl.BlinkTextItems[BlinkFieldNo].X2 -
+                       sgl.BlinkTextItems[BlinkFieldNo].X1 + LineLen - 1) / 2;
+                   break;
+
+                  case GuiLib_ALIGN_RIGHT:
+                   sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +=
+                      sgl.BlinkTextItems[BlinkFieldNo].X2 -
+                      sgl.BlinkTextItems[BlinkFieldNo].X1 + LineLen - 1;
+                   break;
+                }
+
+                sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 -= XStart;
+                LineLen = CalcCharsWidth(CharNo - 1,
+                                         CharNo - 1,
+                                         TextXOfs,
+                                         &XStart,
+                                         &XEnd);
+                sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 =
+                   sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + XEnd;
+                sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 += XStart;
+                sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2 =
+                   sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 +
+                   sgl.BlinkTextItems[BlinkFieldNo].YSize - 1;
+
+                sgl.BlinkTextItems[BlinkFieldNo].Active = 1;
+                break;
+              }
+
+#ifndef GuiConst_BLINK_LF_COUNTS
+              if ((N+1) < LineCnt2)
+                if ((TextCharLineEnd[N]+1) != TextCharLineStart[N+1])
+                  CharNo++;
+#endif
+
+              sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1 +=
+                 sgl.BlinkTextItems[BlinkFieldNo].TextBoxLineDist;
+            }
+        }
+        else
+        {
+          sgl.BlinkTextItems[BlinkFieldNo].Active = 1;
+          sgl.BlinkTextItems[BlinkFieldNo].CharNo = CharNo;
+        }
+      }
+      else
+#endif // GuiConst_ITEM_TEXTBLOCK_INUSE
+      {
+        if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.BitFlags &
+            GuiLib_BITFLAG_REVERSEWRITING)
+        {
+          for (N = 0; N < CharCnt / 2; N++)
+          {
+#ifdef GuiConst_REMOTE_FONT_DATA
+            TempOfs = sgl.TextCharNdx[N];
+            sgl.TextCharNdx[N] =
+               sgl.TextCharNdx[CharCnt - 1 - N];
+            sgl.TextCharNdx[CharCnt - 1 - N] =
+               TempOfs;
+#else
+            TempPtr = sgl.TextCharPtrAry[N];
+            sgl.TextCharPtrAry[N] = (GuiConst_INT8U PrefixRom *)
+               sgl.TextCharPtrAry[CharCnt - 1 - N];
+            sgl.TextCharPtrAry[CharCnt - 1 - N] =
+              (GuiConst_INT8U PrefixRom *)TempPtr;
+#endif
+          }
+          CharNo =  CharCnt + 1 - CharNo;
+        }
+
+        TextPixelLen = TextPixelLength(sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps,
+                          CharCnt, TextXOfs);
+
+        switch (sgl.BlinkTextItems[BlinkFieldNo].TextPar.Alignment)
+        {
+          case GuiLib_ALIGN_CENTER:
+            if (CharCnt > 0)
+                sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 -= TextPixelLen / 2;
+              break;
+          case GuiLib_ALIGN_RIGHT:
+            sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 -= TextPixelLen - 1;
+              break;
+        }
+
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 = sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +
+           TextPixelLen - 1;
+
+        if (CharNo)
+        {
+          if (sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps == GuiLib_PS_OFF)
+          {
+            sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 =
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + TextXOfs[CharNo-1] - 1;
+            sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 =
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +
+               sgl.BlinkTextItems[BlinkFieldNo].XSize;
+          }
+          else if ((sgl.BlinkTextItems[BlinkFieldNo].TextPar.Ps == GuiLib_PS_NUM) &&
+                   (sgl.TextPsMode[CharNo - 1] == 0))
+          {
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 =
+                  sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + TextXOfs[CharNo - 1] - 1;
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 =
+                  sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +
+                  sgl.BlinkTextItems[BlinkFieldNo].PsNumWidth +
+                  sgl.BlinkTextItems[BlinkFieldNo].PsSpace;
+          }
+          else
+          {
+#ifdef GuiConst_REMOTE_FONT_DATA
+            GuiLib_RemoteDataReadBlock((GuiConst_INT32U PrefixRom)
+               GuiFont_ChPtrList[sgl.TextCharNdx[CharNo - 1]],
+               GuiLib_CHR_LINECTRL_OFS, CharHeader);
+            sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 =
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +
+               TextXOfs[CharNo-1] + CharHeader[GuiLib_CHR_XLEFT_OFS] - 1;
+#else
+            sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 =
+               sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 + TextXOfs[CharNo - 1] +
+               ReadBytePtr(sgl.TextCharPtrAry[CharNo - 1] +
+               GuiLib_CHR_XLEFT_OFS) - 1;
+#endif
+#ifdef GuiConst_REMOTE_FONT_DATA
+          sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 =
+             sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +
+             CharHeader[GuiLib_CHR_XWIDTH_OFS] + 1;
+#else
+          sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2 =
+             sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1 +
+             ReadBytePtr(sgl.TextCharPtrAry[CharNo - 1] +
+             GuiLib_CHR_XWIDTH_OFS) + 1;
+#endif
+          }
+          sgl.BlinkTextItems[BlinkFieldNo].Active = 1;
+        }
+        else
+        {
+          sgl.BlinkTextItems[BlinkFieldNo].Active = 1;
+          sgl.BlinkTextItems[BlinkFieldNo].CharNo = CharNo;
+        }
+      }
+      SetCurFont(sgl.CurItem.TextPar[0].FontIndex);
+      sgl.CurItem.TextPar[0] = TempTextPar;
+      sgl.CurItem.TextLength[0] = TempTextLength;
+      sgl.CurItem.FormatFieldWidth = TempFormatFieldWidth;
+      sgl.CurItem.FormatDecimals = TempFormatDecimals;
+      sgl.CurItem.FormatAlignment = TempFormatAlignment;
+      sgl.CurItem.FormatFormat = TempFormatFormat;
+
+    }
+
+    if (sgl.BlinkTextItems[BlinkFieldNo].Active)
+    {
+      if (Rate < 1)
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = 1;
+      else
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = Rate;
+      if (sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate < 255)
+      {
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxState =
+           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate -
+          (sgl.RefreshClock % sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate);
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted =
+           ((sgl.RefreshClock / sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate) % 2) ==
+             0;
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast =
+           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+        if (sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted && sgl.DisplayWriting)
+          GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1,
+                           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1,
+                           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2,
+                           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2);
+      }
+      else
+      {
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxState =
+             sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate;
+        if (sgl.DisplayWriting)
+          GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1,
+                           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1,
+                           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2,
+                           sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2);
+
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted =
+                        !sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast =
+                        sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+      }
+    }
+  }
+#else // GuiConst_BLINK_FIELDS_OFF
+  gl.Dummy1_16U = BlinkFieldNo;   // To avoid compiler warning
+  gl.Dummy2_16U = CharNo;   // To avoid compiler warning
+  gl.Dummy1_16S = Rate;   // To avoid compiler warning
+#endif // GuiConst_BLINK_FIELDS_OFF
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_BlinkBoxMarkedItemStop(
+   GuiConst_INT16U BlinkFieldNo)
+{
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  if ((BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX) ||
+      !sgl.BlinkTextItems[BlinkFieldNo].InUse)
+    return;
+
+  if (sgl.BlinkTextItems[BlinkFieldNo].Active &&
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate &&
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted)
+  {
+    if (sgl.DisplayWriting)
+    {
+      GuiLib_InvertBox(sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX1,
+                       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY1,
+                       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxX2,
+                       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxY2);
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted =
+         !sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+      sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxLast =
+         sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxInverted;
+    }
+  }
+  sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate = 0;
+  sgl.BlinkTextItems[BlinkFieldNo].Active = 0;
+#else // GuiConst_BLINK_FIELDS_OFF
+  gl.Dummy1_16U = BlinkFieldNo;   // To avoid compiler warning
+#endif // GuiConst_BLINK_FIELDS_OFF
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_BlinkBoxMarkedItemUpdate(
+   GuiConst_INT16U BlinkFieldNo)
+{
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  if ((BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX) ||
+      !sgl.BlinkTextItems[BlinkFieldNo].InUse)
+    return;
+
+  if (sgl.BlinkTextItems[BlinkFieldNo].Active &&
+     ((sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_VAR) ||
+      (sgl.BlinkTextItems[BlinkFieldNo].ItemType == GuiLib_ITEM_VARBLOCK)))
+    GuiLib_BlinkBoxMarkedItem(
+       BlinkFieldNo,
+       sgl.BlinkTextItems[BlinkFieldNo].CharNo,
+       sgl.BlinkTextItems[BlinkFieldNo].BlinkBoxRate);
+#else // GuiConst_BLINK_FIELDS_OFF
+  gl.Dummy1_16U = BlinkFieldNo;   // To avoid compiler warning
+#endif // GuiConst_BLINK_FIELDS_OFF
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#endif // GuiConst_BLINK_SUPPORT_ON
+
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_TouchCheck(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y)
+{
+  GuiConst_INT32S TouchSearch;
+  GuiConst_INT32S XX, YY;
+  GuiConst_INT32S XL, XR, YT, YB;
+  GuiConst_INT32S TouchArea;
+
+  if (sgl.TouchAdjustActive)
+  {
+    XX = 10 * (GuiConst_INT32S)X;
+    YY = 10 * (GuiConst_INT32S)Y;
+    XL = sgl.TouchAdjustXTL +
+       (YY - sgl.TouchAdjustYTL) * (sgl.TouchAdjustXBL - sgl.TouchAdjustXTL) /
+       (sgl.TouchAdjustYBL - sgl.TouchAdjustYTL);
+    XR = sgl.TouchAdjustXTR +
+       (YY - sgl.TouchAdjustYTR) * (sgl.TouchAdjustXBR - sgl.TouchAdjustXTR) /
+       (sgl.TouchAdjustYBR - sgl.TouchAdjustYTR);
+    YT = sgl.TouchAdjustYTL +
+       (XX - sgl.TouchAdjustXTL) * (sgl.TouchAdjustYTR - sgl.TouchAdjustYTL) /
+       (sgl.TouchAdjustXTR - sgl.TouchAdjustXTL);
+    YB = sgl.TouchAdjustYBL +
+       (XX - sgl.TouchAdjustXBL) * (sgl.TouchAdjustYBR - sgl.TouchAdjustYBL) /
+       (sgl.TouchAdjustXBR - sgl.TouchAdjustXBL);
+    sgl.TouchConvertX = GuiConst_DISPLAY_WIDTH * (XX - XL) / (XR - XL);
+    sgl.TouchConvertY = GuiConst_DISPLAY_HEIGHT * (YY - YT) / (YB - YT);
+  }
+  else
+  {
+    sgl.TouchConvertX = X;
+    sgl.TouchConvertY = Y;
+  }
+
+  TouchArea = -1;
+  if ((sgl.TouchConvertX >= 0) && (sgl.TouchConvertX < GuiConst_DISPLAY_WIDTH) &&
+      (sgl.TouchConvertY >= 0) && (sgl.TouchConvertY < GuiConst_DISPLAY_HEIGHT))
+    for (TouchSearch = 0; TouchSearch < sgl.TouchAreaCnt; TouchSearch++)
+      if ((sgl.TouchConvertX >= sgl.TouchAreas[TouchSearch].X1) &&
+          (sgl.TouchConvertX <= sgl.TouchAreas[TouchSearch].X2) &&
+          (sgl.TouchConvertY >= sgl.TouchAreas[TouchSearch].Y1) &&
+          (sgl.TouchConvertY <= sgl.TouchAreas[TouchSearch].Y2))
+      {
+        if (TouchArea == -1)
+          TouchArea = sgl.TouchAreas[TouchSearch].IndexNo;
+        else if (sgl.TouchAreas[TouchSearch].IndexNo < TouchArea)
+          TouchArea = sgl.TouchAreas[TouchSearch].IndexNo;
+      }
+  return TouchArea;
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_TouchGet(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S* TouchX,
+   GuiConst_INT16S* TouchY)
+{
+  GuiConst_INT32S Result;
+
+  Result = GuiLib_TouchCheck(X, Y);
+
+  *TouchX = sgl.TouchConvertX;
+  *TouchY = sgl.TouchConvertY;
+
+  return (Result);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_TouchAdjustReset(void)
+{
+  sgl.TouchAdjustActive = 0;
+  sgl.TouchAdjustInUse[0] = 0;
+  sgl.TouchAdjustInUse[1] = 0;
+  sgl.TouchAdjustInUse[2] = 0;
+  sgl.TouchAdjustInUse[3] = 0;
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_TouchAdjustSet(
+   GuiConst_INT16S XTrue,
+   GuiConst_INT16S YTrue,
+   GuiConst_INT16S XMeasured,
+   GuiConst_INT16S YMeasured)
+{
+  GuiConst_INT8U I;
+  GuiConst_INT32S XTL, YTL, XTR, YTR, XBL, YBL, XBR, YBR, XL, XR, YT, YB;
+
+  if (YTrue < GuiConst_DISPLAY_HEIGHT / 2)
+  {
+    if (XTrue < GuiConst_DISPLAY_WIDTH / 2)
+      I = 0;
+    else
+      I = 1;
+  }
+  else
+  {
+    if (XTrue < GuiConst_DISPLAY_WIDTH / 2)
+      I = 2;
+    else
+      I = 3;
+  }
+
+  sgl.TouchAdjustInUse[I] = 1;
+
+  sgl.TouchAdjustXTrue[I] = XTrue;
+  sgl.TouchAdjustYTrue[I] = YTrue;
+  sgl.TouchAdjustXMeasured[I] = XMeasured;
+  sgl.TouchAdjustYMeasured[I] = YMeasured;
+
+  if (sgl.TouchAdjustInUse[0] && sgl.TouchAdjustInUse[3])
+  {
+    sgl.TouchAdjustActive = 1;
+    if (!sgl.TouchAdjustInUse[1])
+    {
+      sgl.TouchAdjustInUse[1] = 1;
+      sgl.TouchAdjustXTrue[1] = sgl.TouchAdjustXTrue[3];
+      sgl.TouchAdjustYTrue[1] = sgl.TouchAdjustYTrue[0];
+      sgl.TouchAdjustXMeasured[1] = sgl.TouchAdjustXMeasured[3];
+      sgl.TouchAdjustYMeasured[1] = sgl.TouchAdjustYMeasured[0];
+    }
+    if (!sgl.TouchAdjustInUse[2])
+    {
+      sgl.TouchAdjustInUse[2] = 1;
+      sgl.TouchAdjustXTrue[2] = sgl.TouchAdjustXTrue[0];
+      sgl.TouchAdjustYTrue[2] = sgl.TouchAdjustYTrue[3];
+      sgl.TouchAdjustXMeasured[2] = sgl.TouchAdjustXMeasured[0];
+      sgl.TouchAdjustYMeasured[2] = sgl.TouchAdjustYMeasured[3];
+    }
+  }
+  else if (sgl.TouchAdjustInUse[1] && sgl.TouchAdjustInUse[2])
+  {
+    sgl.TouchAdjustActive = 1;
+    if (!sgl.TouchAdjustInUse[0])
+    {
+      sgl.TouchAdjustInUse[0] = 1;
+      sgl.TouchAdjustXTrue[0] = sgl.TouchAdjustXTrue[2];
+      sgl.TouchAdjustYTrue[0] = sgl.TouchAdjustYTrue[1];
+      sgl.TouchAdjustXMeasured[0] = sgl.TouchAdjustXMeasured[2];
+      sgl.TouchAdjustYMeasured[0] = sgl.TouchAdjustYMeasured[1];
+    }
+    if (!sgl.TouchAdjustInUse[3])
+    {
+      sgl.TouchAdjustInUse[3] = 1;
+      sgl.TouchAdjustXTrue[3] = sgl.TouchAdjustXTrue[1];
+      sgl.TouchAdjustYTrue[3] = sgl.TouchAdjustYTrue[2];
+      sgl.TouchAdjustXMeasured[3] = sgl.TouchAdjustXMeasured[1];
+      sgl.TouchAdjustYMeasured[3] = sgl.TouchAdjustYMeasured[2];
+    }
+  }
+
+  if (sgl.TouchAdjustActive)
+  {
+    XTL = (10 * sgl.TouchAdjustXMeasured[1]) - ((10 * sgl.TouchAdjustXTrue[1] *
+       (sgl.TouchAdjustXMeasured[1] - sgl.TouchAdjustXMeasured[0])) /
+       (sgl.TouchAdjustXTrue[1] - sgl.TouchAdjustXTrue[0]));
+    XTR = (10 * sgl.TouchAdjustXMeasured[0]) +
+       ((10 * (GuiConst_DISPLAY_WIDTH - sgl.TouchAdjustXTrue[0]) *
+       (sgl.TouchAdjustXMeasured[1] - sgl.TouchAdjustXMeasured[0])) /
+       (sgl.TouchAdjustXTrue[1] - sgl.TouchAdjustXTrue[0]));
+    XBL = (10 * sgl.TouchAdjustXMeasured[3]) - ((10 * sgl.TouchAdjustXTrue[3] *
+       (sgl.TouchAdjustXMeasured[3] - sgl.TouchAdjustXMeasured[2])) /
+       (sgl.TouchAdjustXTrue[3] - sgl.TouchAdjustXTrue[2]));
+    XBR = (10 * sgl.TouchAdjustXMeasured[2]) +
+       ((10 * (GuiConst_DISPLAY_WIDTH - sgl.TouchAdjustXTrue[2]) *
+       (sgl.TouchAdjustXMeasured[3] - sgl.TouchAdjustXMeasured[2])) /
+       (sgl.TouchAdjustXTrue[3] - sgl.TouchAdjustXTrue[2]));
+
+    YT = 5 * (sgl.TouchAdjustYTrue[0] + sgl.TouchAdjustYTrue[1]);
+    YB = 5 * (sgl.TouchAdjustYTrue[2] + sgl.TouchAdjustYTrue[3]);
+
+    sgl.TouchAdjustXTL = XBL - (YB * (XBL - XTL) / (YB - YT));
+    sgl.TouchAdjustXBL =
+       XTL + (((10 * GuiConst_DISPLAY_HEIGHT) - YT) * (XBL - XTL) / (YB - YT));
+    sgl.TouchAdjustXTR = XBR - (YB * (XBR - XTR) / (YB - YT));
+    sgl.TouchAdjustXBR =
+       XTR + (((10 * GuiConst_DISPLAY_HEIGHT) - YT) * (XBR - XTR) / (YB - YT));
+
+    YTL = (10 * sgl.TouchAdjustYMeasured[2]) - ((10 * sgl.TouchAdjustYTrue[2] *
+       (sgl.TouchAdjustYMeasured[2] - sgl.TouchAdjustYMeasured[0])) /
+       (sgl.TouchAdjustYTrue[2] - sgl.TouchAdjustYTrue[0]));
+    YBL = (10 * sgl.TouchAdjustYMeasured[0]) +
+       ((10 * (GuiConst_DISPLAY_HEIGHT - sgl.TouchAdjustYTrue[0]) *
+       (sgl.TouchAdjustYMeasured[2] - sgl.TouchAdjustYMeasured[0])) /
+       (sgl.TouchAdjustYTrue[2] - sgl.TouchAdjustYTrue[0]));
+    YTR = (10 * sgl.TouchAdjustYMeasured[3]) - ((10 * sgl.TouchAdjustYTrue[3] *
+       (sgl.TouchAdjustYMeasured[3] - sgl.TouchAdjustYMeasured[1])) /
+       (sgl.TouchAdjustYTrue[3] - sgl.TouchAdjustYTrue[1]));
+    YBR = (10 * sgl.TouchAdjustYMeasured[1]) +
+       ((10 * (GuiConst_DISPLAY_HEIGHT - sgl.TouchAdjustYTrue[1]) *
+       (sgl.TouchAdjustYMeasured[3] - sgl.TouchAdjustYMeasured[1])) /
+       (sgl.TouchAdjustYTrue[3] - sgl.TouchAdjustYTrue[1]));
+
+    XL = 5 * (sgl.TouchAdjustXTrue[0] + sgl.TouchAdjustXTrue[2]);
+    XR = 5 * (sgl.TouchAdjustXTrue[1] + sgl.TouchAdjustXTrue[3]);
+
+    sgl.TouchAdjustYTL = YTR - (XR * (YTR - YTL) / (XR - XL));
+    sgl.TouchAdjustYTR =
+       YTL + (((10 * GuiConst_DISPLAY_WIDTH) - XL) * (YTR - YTL) / (XR - XL));
+    sgl.TouchAdjustYBL = YBR - (XR * (YBR - YBL) / (XR - XL));
+    sgl.TouchAdjustYBR =
+       YBL + (((10 * GuiConst_DISPLAY_WIDTH) - XL) * (YBR - YBL) / (XR - XL));
+  }
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#endif // GuiConst_ITEM_TOUCHAREA_INUSE
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+static void ScrollBox_ShowLineStruct(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U StructToCallIndex,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT8U ColorInvert)
+{
+  GuiLib_StructPtr StructToCall;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2;
+#endif //GuiConst_CLIPPING_SUPPORT_ON
+
+  if (StructToCallIndex != 0xFFFF)
+  {
+    sgl.DisplayLevel++;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    RemClippingX1 = sgl.CurItem.ClipRectX1;
+    RemClippingY1 = sgl.CurItem.ClipRectY1;
+    RemClippingX2 = sgl.CurItem.ClipRectX2;
+    RemClippingY2 = sgl.CurItem.ClipRectY2;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+    memcpy(&sgl.CurItem, &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem,
+       sizeof(GuiLib_ItemRec));
+    sgl.CurItem.RX = X;
+    sgl.CurItem.RY = Y;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    sgl.CurItem.ClipRectX1 = RemClippingX1;
+    sgl.CurItem.ClipRectY1 = RemClippingY1;
+    sgl.CurItem.ClipRectX2 = RemClippingX2;
+    sgl.CurItem.ClipRectY2 = RemClippingY2;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+    StructToCall = (GuiLib_StructPtr)
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+       GetRemoteStructData(StructToCallIndex);
+#else // GuiConst_REMOTE_STRUCT_DATA
+       (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]);
+#endif // GuiConst_REMOTE_STRUCT_DATA
+
+    if (ColorInvert == GuiLib_COL_INVERT_ON)
+    {
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].ContainsCursorFields)
+        ColorInvert = GuiLib_COL_INVERT_IF_CURSOR;
+#endif // GuiConst_CURSOR_SUPPORT_ON
+    }
+    else
+    {
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+      UpdateBackgroundBitmap();
+#endif
+    }
+
+    DrawStructure(StructToCall, ColorInvert);
+    ResetLayerBufPtr();
+    sgl.DisplayLevel--;
+  }
+}
+
+//------------------------------------------------------------------------------
+static void ScrollBox_ShowLineBlock(
+   GuiConst_INTCOLOR Color,
+   GuiConst_INT8U Transparent,
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  if (!Transparent)
+    GuiLib_FillBox(X1, Y1, X2, Y2, Color);
+}
+
+//------------------------------------------------------------------------------
+static void ScrollBox_ShowBarBlock(
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor,
+   GuiConst_INT8U Thickness,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S SizeX,
+   GuiConst_INT16S SizeY)
+{
+  GuiConst_INT8U T;
+  GuiConst_INT16S BX1, BY1, BX2, BY2;
+
+  if (Thickness > 0)
+    for (T = 0; T < Thickness; T++)
+    {
+      BX1 = X + T;
+      BY1 = Y + T;
+      BX2 = X + SizeX - 1 - T;
+      BY2 = Y + SizeY - 1 - T;
+      GuiLib_Box(BX1, BY1, BX2, BY2, ForeColor);
+    }
+  BX1 = X + Thickness;
+  BY1 = Y + Thickness;
+  BX2 = X + SizeX - 1 - Thickness;
+  BY2 = Y + SizeY - 1 - Thickness;
+  GuiLib_FillBox(BX1, BY1, BX2, BY2, BackColor);
+}
+
+//------------------------------------------------------------------------------
+static void ScrollBox_SetTopLine(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+    GuiConst_INT16U LowerLimtA=0;
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+  {
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+       sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] -
+       sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+    GuiLib_LIMIT_MINMAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine,
+       LowerLimtA, sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+       sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines);
+  }
+  else
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+       sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] -
+       sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+}
+
+//------------------------------------------------------------------------------
+static void ScrollBox_DrawScrollLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S LineNdx)
+{
+  GuiConst_INT16U N;
+  GuiConst_INT16S SX1, SY1;
+  GuiConst_INT16S X1, Y1, X2, Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+  if ((LineNdx < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) ||
+      (LineNdx >= sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+                  sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines))
+    return;
+
+  X1 = sgl.ScrollBoxesAry[ScrollBoxIndex].X1 +
+       sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetX;
+  Y1 = sgl.ScrollBoxesAry[ScrollBoxIndex].Y1 +
+       sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetY +
+       (LineNdx - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) *
+       sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset;
+  X2 = X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeX - 1;
+  Y2 = Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY - 1;
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  RemClippingX1 = sgl.CurItem.ClipRectX1;
+  RemClippingY1 = sgl.CurItem.ClipRectY1;
+  RemClippingX2 = sgl.CurItem.ClipRectX2;
+  RemClippingY2 = sgl.CurItem.ClipRectY2;
+  GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, X1, X2);
+  GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, Y1, Y2);
+  GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, X1, X2);
+  GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, Y1, Y2);
+  GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                     sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+  if ((LineNdx >= 0) &&
+      (LineNdx < sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines))
+  {
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc(LineNdx);
+
+    SX1 = X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetX;
+    SY1 = Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetY;
+    for (N = 0; N <= GuiConst_SCROLLITEM_MARKERS_MAX; N++)
+    {
+      if (N < GuiConst_SCROLLITEM_MARKERS_MAX)
+      {
+        if ((sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[N] >= 0) &&
+            (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[N] >= 1))
+        {
+          if ((LineNdx >= sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[N]) &&
+              (LineNdx <= (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[N] +
+               sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[N] - 1)))
+          {
+            ScrollBox_ShowLineBlock(
+               sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[N],
+               sgl.ScrollBoxesAry[ScrollBoxIndex].
+               MarkerColorTransparent[N], X1, Y1, X2, Y2);
+            switch (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerDrawingOrder[N])
+            {
+              case 0:
+                ScrollBox_ShowLineStruct(ScrollBoxIndex,
+                   sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1,
+                   GuiLib_COL_INVERT_ON);
+                if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N] !=
+                    0xFFFF)
+                  ScrollBox_ShowLineStruct(ScrollBoxIndex,
+                     sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N],
+                     SX1, SY1, GuiLib_COL_INVERT_ON);
+                break;
+
+              case 1:
+                if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N] !=
+                    0xFFFF)
+                  ScrollBox_ShowLineStruct(ScrollBoxIndex,
+                     sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N],
+                     SX1, SY1, GuiLib_COL_INVERT_ON);
+                ScrollBox_ShowLineStruct(ScrollBoxIndex,
+                   sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1,
+                   GuiLib_COL_INVERT_ON);
+                break;
+
+              case 2:
+                ScrollBox_ShowLineStruct(ScrollBoxIndex,
+                   sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1,
+                   GuiLib_COL_INVERT_ON);
+                break;
+
+              case 3:
+                if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N] !=
+                    0xFFFF)
+                  ScrollBox_ShowLineStruct(ScrollBoxIndex,
+                     sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[N],
+                     SX1, SY1, GuiLib_COL_INVERT_ON);
+                break;
+            }
+
+            break;
+          }
+        }
+      }
+      else
+      {
+        ScrollBox_ShowLineBlock(
+           sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor,
+           sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent,
+           X1, Y1, X2, Y2);
+        ScrollBox_ShowLineStruct(ScrollBoxIndex,
+           sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex, SX1, SY1,
+           GuiLib_COL_INVERT_OFF);
+      }
+    }
+  }
+  else
+    ScrollBox_ShowLineBlock(sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor,
+       sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent,
+       X1, Y1, X2, Y2);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  sgl.CurItem.ClipRectX1 = RemClippingX1;
+  sgl.CurItem.ClipRectY1 = RemClippingY1;
+  sgl.CurItem.ClipRectX2 = RemClippingX2;
+  sgl.CurItem.ClipRectY2 = RemClippingY2;
+  GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                     sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_Init(
+   GuiConst_INT8U ScrollBoxIndex,
+   void (*DataFuncPtr) (GuiConst_INT16S LineIndex),
+   GuiConst_INT16S NoOfLines,
+   GuiConst_INT16S ActiveLine)
+{
+  GuiConst_INT16U StructToCallIndex;
+  GuiLib_StructPtr StructToCall;
+  GuiLib_ItemRec RemCurItem;
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  GuiConst_INT8U RemCursorInUse;
+#endif // GuiConst_CURSOR_SUPPORT_ON
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_READ) ||
+      (ActiveLine >= NoOfLines))
+    return (0);
+
+  memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec));
+
+  sgl.GlobalScrollBoxIndex = ScrollBoxIndex;
+
+  memcpy(&sgl.CurItem, &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem,
+     sizeof(GuiLib_ItemRec));
+  StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex;
+  if (StructToCallIndex != 0xFFFF)
+  {
+    sgl.DisplayLevel++;
+    StructToCall = (GuiLib_StructPtr)
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+       GetRemoteStructData(StructToCallIndex);
+#else
+       (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]);
+#endif
+    sgl.NextScrollLineReading = 1;
+    sgl.InitialDrawing = 1;
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    RemCursorInUse = sgl.CursorInUse;
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ContainsCursorFields = 0;
+    sgl.CursorInUse = (GuiLib_ActiveCursorFieldNo >= 0);
+    sgl.CursorFieldFound = -1;
+    sgl.CursorActiveFieldFound = 0;
+#endif // GuiConst_CURSOR_SUPPORT_ON
+    DrawStructure(StructToCall, GuiLib_COL_INVERT_OFF);
+    ResetLayerBufPtr();
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    sgl.InitialDrawing = 0;
+    if (sgl.CursorFieldFound == -1)
+    {
+      sgl.CursorInUse = 0;
+      GuiLib_ActiveCursorFieldNo = -1;
+    }
+    else
+    {
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ContainsCursorFields = 1;
+      if (sgl.CursorActiveFieldFound == 0)
+      {
+        GuiLib_ActiveCursorFieldNo = sgl.CursorFieldFound;
+
+        DrawCursorItem(1);
+      }
+    }
+    sgl.CursorInUse = sgl.CursorInUse | RemCursorInUse;
+#endif // GuiConst_CURSOR_SUPPORT_ON
+    sgl.NextScrollLineReading = 0;
+    sgl.DisplayLevel--;
+  }
+
+  SetCurFont(sgl.CurItem.TextPar[0].FontIndex);
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY == 0) &&
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY2 == 0))
+  {
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY = sgl.CurFont->BaseLine;
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY2 =
+       sgl.CurFont->YSize - sgl.CurFont->BaseLine - 1;
+  }
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiLib_SetClipping(sgl.CurItem.ClipRectX1,sgl.CurItem.ClipRectY1,
+                     sgl.CurItem.ClipRectX2,sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+  StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].MakeUpStructIndex;
+  if (StructToCallIndex != 0xFFFF)
+  {
+    sgl.DisplayLevel++;
+    memcpy(&sgl.CurItem, &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem,
+       sizeof(GuiLib_ItemRec));
+    sgl.CurItem.RX = sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].X1;
+    sgl.CurItem.RY = sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].Y1;
+    StructToCall = (GuiLib_StructPtr)
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+       GetRemoteStructData(StructToCallIndex);
+#else
+       (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]);
+#endif
+    DrawStructure(StructToCall,GuiLib_COL_INVERT_OFF);
+    ResetLayerBufPtr();
+    sgl.DisplayLevel--;
+  }
+
+  sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc = DataFuncPtr;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = ActiveLine;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine = ActiveLine;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines = NoOfLines;
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0) &&
+      (NoOfLines < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines))
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines = NoOfLines;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].InUse = GuiLib_SCROLL_STRUCTURE_USED;
+  ScrollBox_SetTopLine(ScrollBoxIndex);
+  GuiLib_ScrollBox_Redraw(ScrollBoxIndex);
+  sgl.ScrollBoxesAry[ScrollBoxIndex].LastScrollTopLine = 0xFFFF;
+
+  memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec));
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_Redraw(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  GuiConst_INT16S N, ScrollStartLine, ScrollStopLine;
+  GuiLib_ItemRec RemCurItem;
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+#define GuiLib_SCROLL_REDRAW_VAR
+#else
+#ifndef GuiConst_SCROLLITEM_INDICATOR_NONE
+#define GuiLib_SCROLL_REDRAW_VAR
+#endif
+#endif
+#ifdef GuiLib_SCROLL_REDRAW_VAR
+  GuiLib_StructPtr StructToCall;
+  GuiConst_INT16U StructToCallIndex;
+  GuiConst_INT16S SX1, SY1;
+  GuiConst_INT16S X1, Y1;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S SX2, SY2;
+  GuiConst_INT16S X2, Y2;
+  GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+#endif // GuiLib_SCROLL_REDRAW_VAR
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+  GuiConst_INT16S BarMarkerY;
+  GuiConst_INT16S BarMarkerHeight;
+  GuiConst_INT16S BarMarkerMovementDY;
+  GuiConst_INT32S N1, N2;
+#endif // GuiConst_SCROLLITEM_BAR_NONE
+  GuiConst_INT32S BackColor;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (0);
+
+  memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec));
+
+  sgl.GlobalScrollBoxIndex = ScrollBoxIndex;
+
+  ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+     sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1;
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastScrollTopLine ==
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine)
+  {
+    if ((sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine == -1) ||
+        (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == -1))
+    {
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine !=
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0])
+      {
+        if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine == -1)
+        {
+          ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+          ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+        }
+        else
+        {
+          ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine;
+          ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine;
+        }
+      }
+    }
+    else if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine <
+             sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0])
+    {
+      ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine;
+      if (ScrollStartLine < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine)
+        ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+      ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+    }
+    else if (sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine >
+             sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0])
+    {
+      ScrollStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+      ScrollStopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine;
+      GuiLib_LIMIT_MAX(ScrollStartLine,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1);
+    }
+  }
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc != 0)
+    for (N = ScrollStartLine; N <= ScrollStopLine; N++)
+      ScrollBox_DrawScrollLine(ScrollBoxIndex, N);
+
+  sgl.ScrollBoxesAry[ScrollBoxIndex].LastScrollTopLine =
+     sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].LastMarkerLine =
+     sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType != GuiLib_MARKER_NONE)
+  {
+    SX1 = sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionX;
+    SY1 = sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionY;
+    X1 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset;
+    Y1 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTopOffset;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    SX2 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX - 1;
+    SY2 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY - 1;
+    X2 = SX2 - sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset;
+    Y2 = SY2 - sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBottomOffset;
+    RemClippingX1 = sgl.CurItem.ClipRectX1;
+    RemClippingY1 = sgl.CurItem.ClipRectY1;
+    RemClippingX2 = sgl.CurItem.ClipRectX2;
+    RemClippingY2 = sgl.CurItem.ClipRectY2;
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, SX1, SX2);
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, SY1, SY2);
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, SX1, SX2);
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, SY1, SY2);
+    GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                       sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+    StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].BarStructIndex;
+    if (StructToCallIndex != 0xFFFF)
+    {
+      ScrollBox_ShowBarBlock(
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor,
+         0,
+         SX1,
+         SY1,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY);
+
+      sgl.DisplayLevel++;
+      memcpy(&sgl.CurItem,
+             &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem,
+             sizeof(GuiLib_ItemRec));
+      sgl.CurItem.RX = SX1;
+      sgl.CurItem.RY = SY1;
+      StructToCall = (GuiLib_StructPtr)
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+         GetRemoteStructData(StructToCallIndex);
+#else
+         (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]);
+#endif
+      DrawStructure(StructToCall, GuiLib_COL_INVERT_OFF);
+      ResetLayerBufPtr();
+      sgl.DisplayLevel--;
+    }
+    else
+      ScrollBox_ShowBarBlock(
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarThickness,
+         SX1,
+         SY1,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    sgl.CurItem.ClipRectX1 = RemClippingX1;
+    sgl.CurItem.ClipRectY1 = RemClippingY1;
+    sgl.CurItem.ClipRectX2 = RemClippingX2;
+    sgl.CurItem.ClipRectY2 = RemClippingY2;
+    GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                       sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines >
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines)
+    {
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      RemClippingX1 = sgl.CurItem.ClipRectX1;
+      RemClippingY1 = sgl.CurItem.ClipRectY1;
+      RemClippingX2 = sgl.CurItem.ClipRectX2;
+      RemClippingY2 = sgl.CurItem.ClipRectY2;
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, X1, X2);
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, Y1, Y2);
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, X1, X2);
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, Y1, Y2);
+      GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                         sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+      BarMarkerHeight = 0;
+      BarMarkerMovementDY = sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY -
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBottomOffset -
+         sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTopOffset;
+
+      switch (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType)
+      {
+        case GuiLib_MARKER_ICON:
+          sgl.CurFont = (GuiLib_FontRecPtr)ReadWord(GuiFont_FontList[
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconFont]);
+          BarMarkerHeight = sgl.CurFont->YSize;
+          break;
+
+        case GuiLib_MARKER_BITMAP:
+          BarMarkerHeight =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapHeight;
+          break;
+
+        case GuiLib_MARKER_FIXED_BLOCK:
+          BarMarkerHeight =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX -
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset -
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset;
+          break;
+
+        case GuiLib_MARKER_VARIABLE_BLOCK:
+          BarMarkerHeight =
+             (((10 * BarMarkerMovementDY *
+             sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines) + 5) /
+             sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines) / 10;
+          GuiLib_LIMIT_MIN(BarMarkerHeight, 4);
+          break;
+      }
+
+      N1 = sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines;
+      N2 = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+      GuiLib_LIMIT_MINMAX(N2, 0, N1);
+      BarMarkerY = (((10 * (BarMarkerMovementDY - BarMarkerHeight) *
+         N2) + 5) / N1) / 10;
+
+      switch (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType)
+      {
+        case GuiLib_MARKER_ICON:
+          sgl.CurItem.X1 = X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetX;
+          sgl.CurItem.Y1 = Y1 + BarMarkerY +
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetY +
+             sgl.CurFont->BaseLine;
+          sgl.CurItem.TextPar[0].FontIndex =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconFont;
+          sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
+          sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
+          sgl.CurItem.TextPar[0].BitFlags = 0;
+          sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+          sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+          DrawText(sgl.ScrollBoxesAry[ScrollBoxIndex].BarIconPtr, 1, 0,
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor,
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor,
+             sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent);
+          break;
+
+        case GuiLib_MARKER_BITMAP:
+          if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent)
+            BackColor =
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapTranspColor;
+          else
+            BackColor = -1;
+          GuiLib_ShowBitmap(sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex,
+             X1, Y1 + BarMarkerY, BackColor);
+          break;
+
+        case GuiLib_MARKER_FIXED_BLOCK:
+        case GuiLib_MARKER_VARIABLE_BLOCK:
+          if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent)
+            GuiLib_Box(X1, Y1 + BarMarkerY,
+               X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX -
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset -
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset - 1,
+               Y1 + BarMarkerY + BarMarkerHeight - 1,
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor);
+          else
+            GuiLib_BorderBox(X1, Y1 + BarMarkerY,
+               X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX -
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset -
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset - 1,
+               Y1 + BarMarkerY + BarMarkerHeight - 1,
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor,
+               sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor);
+          break;
+      }
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      sgl.CurItem.ClipRectX1 = RemClippingX1;
+      sgl.CurItem.ClipRectY1 = RemClippingY1;
+      sgl.CurItem.ClipRectX2 = RemClippingX2;
+      sgl.CurItem.ClipRectY2 = RemClippingY2;
+      GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                         sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+    }
+  }
+#endif
+
+#ifndef GuiConst_SCROLLITEM_INDICATOR_NONE
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType != GuiLib_INDICATOR_NONE)
+  {
+    SX1 = sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionX;
+    SY1 = sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionY;
+    X1 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerLeftOffset;
+    Y1 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTopOffset;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    SX2 = SX1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX - 1;
+    SY2 = SY1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY - 1;
+    X2 = SX2 - sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerRightOffset;
+    Y2 = SY2 - sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBottomOffset;
+    RemClippingX1 = sgl.CurItem.ClipRectX1;
+    RemClippingY1 = sgl.CurItem.ClipRectY1;
+    RemClippingX2 = sgl.CurItem.ClipRectX2;
+    RemClippingY2 = sgl.CurItem.ClipRectY2;
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, SX1, SX2);
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, SY1, SY2);
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, SX1, SX2);
+    GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, SY1, SY2);
+    GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                       sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+    StructToCallIndex = sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorStructIndex;
+    if (StructToCallIndex != 0xFFFF)
+    {
+      ScrollBox_ShowBarBlock(
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor,
+         0,
+         SX1,
+         SY1,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY);
+
+      sgl.DisplayLevel++;
+      memcpy(&sgl.CurItem,
+             &sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxItem,
+             sizeof(GuiLib_ItemRec));
+      sgl.CurItem.RX = SX1;
+      sgl.CurItem.RY = SY1;
+      StructToCall = (GuiLib_StructPtr)
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+         GetRemoteStructData(StructToCallIndex);
+#else
+         (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructToCallIndex]);
+#endif
+      DrawStructure(StructToCall, GuiLib_COL_INVERT_OFF);
+      ResetLayerBufPtr();
+      sgl.DisplayLevel--;
+    }
+    else
+      ScrollBox_ShowBarBlock(
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorThickness,
+         SX1,
+         SY1,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    sgl.CurItem.ClipRectX1 = RemClippingX1;
+    sgl.CurItem.ClipRectY1 = RemClippingY1;
+    sgl.CurItem.ClipRectX2 = RemClippingX2;
+    sgl.CurItem.ClipRectY2 = RemClippingY2;
+    GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                       sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+    if ((sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine >= 0) &&
+        (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine >=
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) &&
+        (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine <
+        (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines)))
+    {
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX1, X1, X2);
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY1, Y1, Y2);
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectX2, X1, X2);
+      GuiLib_LIMIT_MINMAX(sgl.CurItem.ClipRectY2, Y1, Y2);
+      GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                         sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+      switch (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType)
+      {
+        case GuiLib_MARKER_ICON:
+          sgl.CurFont = (GuiLib_FontRecPtr)ReadWord(GuiFont_FontList[
+             sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconFont]);
+          sgl.CurItem.X1 =
+             X1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetX;
+          sgl.CurItem.Y1 =
+             Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetY +
+             sgl.CurFont->BaseLine +
+             sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset *
+             (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine -
+             sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine);
+          sgl.CurItem.TextPar[0].FontIndex =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconFont;
+          sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
+          sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
+          sgl.CurItem.TextPar[0].BitFlags = 0;
+          sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+          sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+          DrawText(sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorIconPtr, 1, 0,
+                   sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor,
+                   sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor,
+                   sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTransparent);
+          break;
+
+        case GuiLib_MARKER_BITMAP:
+          if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent)
+            BackColor =
+               sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapTranspColor;
+          else
+            BackColor = -1;
+          GuiLib_ShowBitmap(
+             sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIndex,
+             X1, Y1 + sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset *
+             (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine -
+             sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine), BackColor);
+          break;
+      }
+    }
+  }
+#endif // GuiConst_SCROLLITEM_INDICATOR_NONE
+
+  memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec));
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_RedrawLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLine)
+{
+  GuiLib_ItemRec RemCurItem;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (ScrollLine > (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1)) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollLineDataFunc == 0))
+    return (0);
+
+  memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec));
+  sgl.GlobalScrollBoxIndex = ScrollBoxIndex;
+
+  ScrollBox_DrawScrollLine(ScrollBoxIndex, ScrollLine);
+
+  memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec));
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_Close(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (0);
+
+  sgl.ScrollBoxesAry[ScrollBoxIndex].InUse = GuiLib_SCROLL_STRUCTURE_READ;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_Down(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  GuiConst_INT16U ScrollBottomLine;
+  GuiConst_INT16S RemScrollTopLine;
+  GuiConst_INT16S RemMarkerStartLine;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (0);
+
+  RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+
+  ScrollBottomLine = (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+     sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1);
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType)
+  {
+    if (ScrollBottomLine >= (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1))
+    {
+      if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1)
+#ifdef GuiConst_SCROLL_MODE_WRAP_AROUND
+         || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2)
+#endif
+                                                        )
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0;
+    }
+    else
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine++;
+  }
+  else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0)
+  {
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+    {
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] ==
+         (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1))
+      {
+        if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1)
+#ifdef GuiConst_SCROLL_MODE_WRAP_AROUND
+           || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2)
+#endif
+                                                          )
+        {
+          sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = 0;
+        }
+      }
+      else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] <
+         ScrollBottomLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs)
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]++;
+      else
+      {
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine++;
+        GuiLib_LIMIT_MAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine,
+           sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+           sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines);
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]++;
+      }
+    }
+    else
+    {
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] ==
+         (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1))
+      {
+        if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1)
+#ifdef GuiConst_SCROLL_MODE_WRAP_AROUND
+           || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2)
+#endif
+                                                          )
+        {
+          sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+             -sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = 0;
+        }
+      }
+      else
+      {
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine++;
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]++;
+      }
+    }
+  }
+
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine))
+  {
+    GuiLib_ScrollBox_Redraw(ScrollBoxIndex);
+    return (1);
+  }
+  else
+    return (0);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_Up(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  GuiConst_INT16S RemScrollTopLine;
+  GuiConst_INT16S RemMarkerStartLine;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (0);
+
+  RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType)
+  {
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine == 0)
+    {
+      if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1)
+#ifdef GuiConst_SCROLL_MODE_WRAP_AROUND
+         || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2)
+#endif
+                                                        )
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+           sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+           sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines;
+        GuiLib_LIMIT_MIN(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, 0);
+    }
+    else
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine--;
+  }
+  else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0)
+  {
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+    {
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == 0)
+      {
+        if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1)
+#ifdef GuiConst_SCROLL_MODE_WRAP_AROUND
+           || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2)
+#endif
+                                                          )
+        {
+          sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+             sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines;
+          GuiLib_LIMIT_MIN(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, 0);
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1;
+        }
+      }
+      else if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >
+               sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+               sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs)
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]--;
+      else
+      {
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine--;
+        GuiLib_LIMIT_MIN(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, 0);
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]--;
+      }
+    }
+    else
+    {
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] == 0)
+      {
+        if ((sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 1)
+#ifdef GuiConst_SCROLL_MODE_WRAP_AROUND
+           || (sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode == 2)
+#endif
+                                                          )
+        {
+          sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1 -
+             sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] =
+             sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1;
+        }
+      }
+      else
+      {
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine--;
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0]--;
+      }
+    }
+  }
+
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine))
+  {
+    GuiLib_ScrollBox_Redraw(ScrollBoxIndex);
+    return (1);
+  }
+  else
+    return (0);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_Home(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  GuiConst_INT16S RemScrollTopLine;
+  GuiConst_INT16S RemMarkerStartLine;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (0);
+
+  RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType)
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0;
+  else
+  {
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = 0;
+    else
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+         -sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0)
+      sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = 0;
+  }
+
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine))
+  {
+    GuiLib_ScrollBox_Redraw(ScrollBoxIndex);
+    return (1);
+  }
+  else
+    return (0);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_End(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  GuiConst_INT16S RemScrollTopLine;
+  GuiConst_INT16S RemMarkerStartLine;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (0);
+
+  RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType)
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = GuiLib_GET_MAX(
+       sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+       sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines, 0);
+  else
+  {
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = GuiLib_GET_MAX(
+         sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines, 0);
+    else
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+         sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1 -
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] >= 0)
+      sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] =
+         sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1;
+  }
+
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine))
+  {
+    GuiLib_ScrollBox_Redraw(ScrollBoxIndex);
+    return (1);
+  }
+  else
+    return (0);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_To_Line(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S NewLine)
+{
+  GuiConst_INT16S RemScrollTopLine;
+  GuiConst_INT16S RemMarkerStartLine;
+  GuiConst_INT16S TopLine;
+  GuiConst_INT16S LowerLimtA = 0;
+
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (NewLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines))
+    return(0);
+
+  RemScrollTopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine;
+  RemMarkerStartLine = sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0];
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType)
+  {
+    TopLine = sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+              sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines;
+    GuiLib_LIMIT_MIN(TopLine, 0);
+    if (NewLine > TopLine)
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = TopLine;
+    else
+      sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine = NewLine;
+  }
+  else if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+  {
+    if ((NewLine != -1) &&
+        ((NewLine < sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine) ||
+        (NewLine >= (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine +
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines))))
+    {
+      if (NewLine > (sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+          sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines +
+          sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs))
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+           sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+           sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines;
+      else
+        sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+           NewLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+
+      GuiLib_LIMIT_MINMAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine,
+         NewLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines + 1,
+         NewLine + sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines - 1);
+      GuiLib_LIMIT_MINMAX(sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine, LowerLimtA,
+         sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+         sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines);
+    }
+  }
+  else
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+       NewLine - sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] = NewLine;
+
+  if ((sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine != RemScrollTopLine) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[0] != RemMarkerStartLine))
+  {
+    GuiLib_ScrollBox_Redraw(ScrollBoxIndex);
+    return (1);
+  }
+  else
+    return (0);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_SetLineMarker(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLineMarkerIndex,
+   GuiConst_INT16S StartLine,
+   GuiConst_INT16U Size)
+{
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (ScrollLineMarkerIndex >= GuiConst_SCROLLITEM_MARKERS_MAX) ||
+      (StartLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines))
+    return (0);
+
+  sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[ScrollLineMarkerIndex] =
+     GuiLib_GET_MINMAX(StartLine, -1,
+     (GuiConst_INT16S)sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1);
+  if ((ScrollLineMarkerIndex == 0) && (Size > 1))
+    Size = 1;
+  sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[ScrollLineMarkerIndex] = Size;
+  if (ScrollLineMarkerIndex == 0)
+    ScrollBox_SetTopLine(ScrollBoxIndex);
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S GuiLib_ScrollBox_GetActiveLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLineMarkerIndex)
+{
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (ScrollLineMarkerIndex >= GuiConst_SCROLLITEM_MARKERS_MAX))
+    return (-1);
+
+  return (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[ScrollLineMarkerIndex]);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S GuiLib_ScrollBox_GetActiveLineCount(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLineMarkerIndex)
+{
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (ScrollLineMarkerIndex >= GuiConst_SCROLLITEM_MARKERS_MAX))
+    return (-1);
+
+  return (sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[ScrollLineMarkerIndex]);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_SetIndicator(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S StartLine)
+{
+#ifdef GuiConst_SCROLLITEM_INDICATOR_NONE
+  gl.Dummy1_8U = ScrollBoxIndex;   // To avoid compiler warning
+  gl.Dummy1_16S = StartLine;   // To avoid compiler warning
+  return (0);
+#else
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (StartLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines))
+    return (0);
+
+  sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine = GuiLib_GET_MINMAX(
+     StartLine, -1,
+     (GuiConst_INT16S)sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines - 1);
+
+  return (1);
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_ScrollBox_SetTopLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S TopLine)
+{
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED) ||
+      (TopLine >= sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines))
+    return (0);
+
+  if (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode == 0)
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine =
+       GuiLib_GET_MINMAX(TopLine, 0,
+       sgl.ScrollBoxesAry[ScrollBoxIndex].NumberOfLines -
+       sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines);
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S GuiLib_ScrollBox_GetTopLine(
+   GuiConst_INT8U ScrollBoxIndex)
+{
+  if ((ScrollBoxIndex >= GuiConst_SCROLLITEM_BOXES_MAX) ||
+      (sgl.ScrollBoxesAry[ScrollBoxIndex].InUse != GuiLib_SCROLL_STRUCTURE_USED))
+    return (-1);
+
+  return (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollTopLine);
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#endif // GuiConst_ITEM_SCROLLBOX_INUSE
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+//------------------------------------------------------------------------------
+static void Graph_SetClipping(
+   GuiConst_INT8U GraphIndex)
+{
+  GuiLib_SetClipping(sgl.GraphAry[GraphIndex].GraphItem.ClipRectX1,
+                     sgl.GraphAry[GraphIndex].GraphItem.ClipRectY1,
+                     sgl.GraphAry[GraphIndex].GraphItem.ClipRectX2,
+                     sgl.GraphAry[GraphIndex].GraphItem.ClipRectY2);
+}
+
+//------------------------------------------------------------------------------
+static void Graph_ResetClipping(void)
+{
+  GuiLib_ResetClipping();
+}
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+//------------------------------------------------------------------------------
+static void Graph_CalcScaleX(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  GuiConst_INT32S D1,D2;
+
+  D1 = (sgl.GraphAry[GraphIndex].GraphItem.X2 -
+       sgl.GraphAry[GraphIndex].GraphItem.X1 -
+       sgl.GraphAry[GraphIndex].OriginOffsetX);
+  D1 = D1 * 10000;
+  D2 = (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].NumbersMaxValue -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].NumbersMinValue);
+  D1 = D1/D2;
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale = D1;
+}
+
+//------------------------------------------------------------------------------
+static void Graph_CalcScaleY(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  GuiConst_INT32S D1,D2;
+
+  D1 = (sgl.GraphAry[GraphIndex].GraphItem.Y2 -
+       sgl.GraphAry[GraphIndex].GraphItem.Y1-
+       sgl.GraphAry[GraphIndex].OriginOffsetY);
+  D1 = D1 * 10000;
+  D2 = (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].NumbersMaxValue -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].NumbersMinValue);
+  D1 = D1/D2;
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale= D1;
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT32S Graph_CalcNumbersMaxValue(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex,
+   GuiConst_INT8U AxisType)
+{
+  GuiConst_INT32S MV;
+
+  MV = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersMaxValue;
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].TicksMinor)
+    MV -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersAtEnd *
+          sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersStepMinor;
+  else if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].TicksMajor)
+    MV -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersAtEnd *
+          sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][AxisType].NumbersStepMajor;
+  return(MV);
+}
+
+//------------------------------------------------------------------------------
+static void Graph_DrawXAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  GuiConst_INT16S X, Y;
+  GuiConst_INT16S DX, DY;
+  GuiConst_INT32S TX, TY;
+  #ifdef GuiConst_FLOAT_SUPPORT_ON
+  double TDX;
+  #endif
+  GuiConst_INT32S F;
+  GuiConst_INT16S HW;
+  GuiConst_INT32S MV;
+  GuiConst_INT16U StrLen;
+  GuiConst_INT16U I;
+  GuiConst_INT8U Align;
+
+  Y = sgl.GraphAry[GraphIndex].OrigoY +
+      sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Offset;
+
+  MV = Graph_CalcNumbersMaxValue(GraphIndex, AxisIndex, GuiLib_GRAPHAXIS_X);
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Line)
+  {
+    X = sgl.GraphAry[GraphIndex].GraphItem.X2 -
+        sgl.GraphAry[GraphIndex].GraphItem.X1 + 1;
+    for (I = 0; I < sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]; I++)
+      if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].Offset < X)
+        X = sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].Offset;
+    X += sgl.GraphAry[GraphIndex].OriginOffsetX;
+    if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+        LineNegative)
+      GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1,
+                     Y,
+                     sgl.GraphAry[GraphIndex].GraphItem.X1 + X - 1,
+                     Y,
+                     sgl.GraphAry[GraphIndex].ForeColor);
+    if ((sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] > 1) &&
+         sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         LineBetweenAxes)
+      GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1 + X - 1,
+                     Y,
+                     sgl.GraphAry[GraphIndex].GraphItem.X1 +
+                     sgl.GraphAry[GraphIndex].OriginOffsetX,
+                     Y,
+                     sgl.GraphAry[GraphIndex].ForeColor);
+    GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1 +
+                   sgl.GraphAry[GraphIndex].OriginOffsetX,
+                   Y,
+                   sgl.GraphAry[GraphIndex].GraphItem.X2,
+                   Y,
+                   sgl.GraphAry[GraphIndex].ForeColor);
+  }
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Arrow)
+  {
+    DX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         ArrowLength;
+    HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         ArrowWidth / 2;
+    for (DY = -HW; DY <= HW; DY++)
+      GuiLib_Line(sgl.GraphAry[GraphIndex].GraphItem.X2 - DX,
+                  Y + DY,
+                  sgl.GraphAry[GraphIndex].GraphItem.X2,
+                  Y,
+                  sgl.GraphAry[GraphIndex].ForeColor);
+  }
+
+  Graph_CalcScaleX(GraphIndex, AxisIndex);
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].TicksMajor)
+  {
+    HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         TicksMajorWidth / 2;
+    TX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         NumbersMinValue;
+    F = TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+             NumbersStepMajor;
+    if (F != 0)
+    {
+      TX -= F;
+      if (TX < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+               NumbersMinValue)
+        TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              NumbersStepMajor;
+    }
+    while (TX <= MV)
+    {
+      DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           NumbersMinValue) *
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale) /
+           10000;
+      if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+          NumbersAtOrigo ||
+         (TX != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+                NumbersMinValue))
+        GuiLib_FillBox(
+           DX - HW,
+           Y,
+           DX - HW +
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           TicksMajorWidth - 1,
+           Y + sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           TicksMajorLength - 1,
+           sgl.GraphAry[GraphIndex].ForeColor);
+      TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+            NumbersStepMajor;
+    }
+  }
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].TicksMinor)
+  {
+    HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         TicksMinorWidth / 2;
+    TX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         NumbersMinValue;
+    F = TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+             NumbersStepMinor;
+    if (F != 0)
+    {
+      TX -= F;
+      if (TX < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+               NumbersMinValue)
+        TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              NumbersStepMinor;
+    }
+    while (TX <= MV)
+    {
+      DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           NumbersMinValue) *
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale) /
+           10000;
+      if ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+          NumbersAtOrigo ||
+         (TX != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+                NumbersMinValue)) &&
+         ((!sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+            TicksMajor) ||
+         (TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+               NumbersStepMajor != 0)))
+        GuiLib_FillBox(
+           DX - HW,
+           Y,
+           DX - HW +
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           TicksMinorWidth - 1,
+           Y + sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           TicksMinorLength - 1,
+           sgl.GraphAry[GraphIndex].ForeColor);
+      TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+            NumbersStepMinor;
+    }
+  }
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Numbers)
+  {
+    memcpy(&sgl.CurItem, &sgl.GraphAry[GraphIndex].GraphItem, sizeof(GuiLib_ItemRec));
+
+    DY = Y;
+    if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+       TicksMajor)
+      DY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         TicksMajorLength;
+    SetCurFont(sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex);
+    DY += ReadByte(sgl.CurFont->BaseLine);
+    DY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+       NumbersOffset;
+
+    TX = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+       NumbersMinValue;
+    F = TX % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+             NumbersStepMajor;
+    if (F != 0)
+    {
+      TX -= F;
+      if (TX < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+               NumbersMinValue)
+        TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              NumbersStepMajor;
+    }
+    switch (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatAlignment)
+    {
+      case GuiLib_FORMAT_ALIGNMENT_LEFT:
+        Align = GuiLib_ALIGN_LEFT;
+        break;
+      case GuiLib_FORMAT_ALIGNMENT_CENTER:
+        Align = GuiLib_ALIGN_CENTER;
+        break;
+      case GuiLib_FORMAT_ALIGNMENT_RIGHT:
+        Align = GuiLib_ALIGN_RIGHT;
+        break;
+    }
+    while (TX <= MV)
+    {
+      DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+           NumbersMinValue) *
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Scale) /
+           10000;
+      if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+          NumbersAtOrigo ||
+         (TX != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+                NumbersMinValue))
+      {
+        #ifdef GuiConst_FLOAT_SUPPORT_ON
+        TDX = TX;
+        #endif
+        GuiLib_DrawVar(
+           DX,
+           DY,
+           sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex,
+           #ifdef GuiConst_FLOAT_SUPPORT_ON
+           &TDX,
+           GuiLib_VAR_DOUBLE,
+           #else
+           &TX,
+           GuiLib_VAR_SIGNED_LONG,
+           #endif
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatFormat,
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatFieldWidth,
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatAlignment,
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].FormatDecimals,
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              BitFlags & GuiLib_BITFLAG_FORMATSHOWSIGN) > 0),
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              BitFlags & GuiLib_BITFLAG_FORMATZEROPADDING) > 0),
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              BitFlags & GuiLib_BITFLAG_FORMATTRAILINGZEROS) > 0),
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+              BitFlags & GuiLib_BITFLAG_FORMATTHOUSANDSSEP) > 0),
+           Align,
+           sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].Ps,
+           1,   // Transparent
+           ((sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].BitFlags &
+            GuiLib_BITFLAG_UNDERLINE) > 0),
+           0,
+           0,
+           0,
+           0,
+           sgl.GraphAry[GraphIndex].GraphItem.ForeColor,
+           sgl.GraphAry[GraphIndex].GraphItem.BackColor);
+      }
+      TX += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+         NumbersStepMajor;
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+static void Graph_DrawYAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  GuiConst_INT16S X, Y;
+  GuiConst_INT16S DX, DY;
+  GuiConst_INT32S TX, TY;
+  #ifdef GuiConst_FLOAT_SUPPORT_ON
+  double TDY;
+  #endif
+  GuiConst_INT32S F;
+  GuiConst_INT16S HW;
+  GuiConst_INT32S MV;
+  GuiConst_INT16U StrLen;
+  GuiConst_INT16U I;
+  GuiConst_INT8U Align;
+
+  X = sgl.GraphAry[GraphIndex].OrigoX +
+      sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Offset;
+
+  MV = Graph_CalcNumbersMaxValue(GraphIndex, AxisIndex, GuiLib_GRAPHAXIS_Y);
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Line)
+  {
+    Y = 0;
+    for (I = 0; I < sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]; I++)
+      if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].Offset > Y)
+        Y = sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].Offset;
+    Y = sgl.GraphAry[GraphIndex].OriginOffsetY - Y;
+    if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+        LineNegative)
+      GuiLib_FillBox(X,
+                     sgl.GraphAry[GraphIndex].GraphItem.Y2 - Y,
+                     X,
+                     sgl.GraphAry[GraphIndex].GraphItem.Y2,
+                     sgl.GraphAry[GraphIndex].ForeColor);
+    if ((sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] > 1) &&
+         sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         LineBetweenAxes)
+      GuiLib_FillBox(X,
+                     sgl.GraphAry[GraphIndex].GraphItem.Y2 -
+                     sgl.GraphAry[GraphIndex].OriginOffsetY,
+                     X,
+                     sgl.GraphAry[GraphIndex].GraphItem.Y2 - Y,
+                     sgl.GraphAry[GraphIndex].ForeColor);
+    GuiLib_FillBox(X,
+                   sgl.GraphAry[GraphIndex].GraphItem.Y1,
+                   X,
+                   sgl.GraphAry[GraphIndex].GraphItem.Y2 -
+                   sgl.GraphAry[GraphIndex].OriginOffsetY,
+                   sgl.GraphAry[GraphIndex].ForeColor);
+  }
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Arrow)
+  {
+    DY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         ArrowLength;
+    HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         ArrowWidth / 2;
+    for (DX = -HW; DX <= HW; DX++)
+      GuiLib_Line(X - DX,
+                  sgl.GraphAry[GraphIndex].GraphItem.Y1 + DY,
+                  X,
+                  sgl.GraphAry[GraphIndex].GraphItem.Y1,
+                  sgl.GraphAry[GraphIndex].ForeColor);
+  }
+
+  Graph_CalcScaleY(GraphIndex, AxisIndex);
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].TicksMajor)
+  {
+    HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         TicksMajorWidth / 2;
+    TY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         NumbersMinValue;
+    F = TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+             NumbersStepMajor;
+    if (F != 0)
+    {
+      TY -= F;
+      if (TY < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+               NumbersMinValue)
+        TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              NumbersStepMajor;
+    }
+    while (TY <= MV)
+    {
+      DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           NumbersMinValue) *
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale) /
+           10000;
+      if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+          NumbersAtOrigo ||
+         (TY != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+                NumbersMinValue))
+        GuiLib_FillBox(
+           X - sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           TicksMajorLength + 1,
+           DY - HW,
+           X,
+           DY - HW +
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           TicksMajorWidth - 1,
+           sgl.GraphAry[GraphIndex].ForeColor);
+      TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+            NumbersStepMajor;
+    }
+  }
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].TicksMinor)
+  {
+    HW = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         TicksMinorWidth / 2;
+    TY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         NumbersMinValue;
+    F = TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+             NumbersStepMinor;
+    if (F != 0)
+    {
+      TY -= F;
+      if (TY < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+               NumbersMinValue)
+        TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              NumbersStepMinor;
+    }
+    while (TY <= MV)
+    {
+      DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           NumbersMinValue) *
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale) /
+           10000;
+      if ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+          NumbersAtOrigo ||
+         (TY != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+                NumbersMinValue)) &&
+         ((!sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+          TicksMajor) ||
+         (TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+               NumbersStepMajor != 0)))
+        GuiLib_FillBox(
+           X - sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           TicksMinorLength + 1,
+           DY - HW,
+           X,
+           DY - HW +
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           TicksMinorWidth - 1,
+           sgl.GraphAry[GraphIndex].ForeColor);
+      TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+            NumbersStepMinor;
+    }
+  }
+
+  if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Numbers)
+  {
+    memcpy(&sgl.CurItem, &sgl.GraphAry[GraphIndex].GraphItem, sizeof(GuiLib_ItemRec));
+
+    SetCurFont(sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex);
+
+    sgl.CurItem.TextPar[0].BitFlags =
+       sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].BitFlags;
+    sgl.CurItem.FormatFieldWidth =
+       sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFieldWidth;
+    sgl.CurItem.FormatDecimals =
+       sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatDecimals;
+    sgl.CurItem.FormatAlignment =
+       sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatAlignment;
+    sgl.CurItem.FormatFormat =
+       sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFormat;
+
+    DX = X;
+    if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+       TicksMajor)
+      DX -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         TicksMajorLength;
+    DX -= sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+       NumbersOffset;
+
+    TY = sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+       NumbersMinValue;
+    F = TY % sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+             NumbersStepMajor;
+    if (F != 0)
+    {
+      TY -= F;
+      if (TY < sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+               NumbersMinValue)
+        TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              NumbersStepMajor;
+    }
+    switch (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatAlignment)
+    {
+      case GuiLib_FORMAT_ALIGNMENT_LEFT:
+        Align = GuiLib_ALIGN_LEFT;
+        break;
+      case GuiLib_FORMAT_ALIGNMENT_CENTER:
+        Align = GuiLib_ALIGN_CENTER;
+        break;
+      case GuiLib_FORMAT_ALIGNMENT_RIGHT:
+        Align = GuiLib_ALIGN_RIGHT;
+        break;
+    }
+    while (TY <= MV)
+    {
+      DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY -
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+           NumbersMinValue) *
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Scale) /
+           10000;
+      if (sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+          NumbersAtOrigo ||
+         (TY != sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+                NumbersMinValue))
+      {
+        #ifdef GuiConst_FLOAT_SUPPORT_ON
+        TDY = TY;
+        #endif
+        GuiLib_DrawVar(
+           DX,
+           DY + GuiLib_FONT_MID_Y(ReadByte(sgl.CurFont->BaseLine),
+                                  ReadByte(sgl.CurFont->TopLine)),
+           sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].FontIndex,
+           #ifdef GuiConst_FLOAT_SUPPORT_ON
+           &TDY,
+           GuiLib_VAR_DOUBLE,
+           #else
+           &TY,
+           GuiLib_VAR_SIGNED_LONG,
+           #endif
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFormat,
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatFieldWidth,
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatAlignment,
+           sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].FormatDecimals,
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              BitFlags & GuiLib_BITFLAG_FORMATSHOWSIGN) > 0),
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              BitFlags & GuiLib_BITFLAG_FORMATZEROPADDING) > 0),
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              BitFlags & GuiLib_BITFLAG_FORMATTRAILINGZEROS) > 0),
+           ((sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+              BitFlags & GuiLib_BITFLAG_FORMATTHOUSANDSSEP) > 0),
+           Align,
+           sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].Ps,
+           1,   // Transparent
+           ((sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].BitFlags &
+              GuiLib_BITFLAG_UNDERLINE) > 0),
+           0,
+           0,
+           0,
+           0,
+           sgl.GraphAry[GraphIndex].GraphItem.ForeColor,
+           sgl.GraphAry[GraphIndex].GraphItem.BackColor);
+      }
+      TY += sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+         NumbersStepMajor;
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+static void Graph_DrawDataPoint(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT16U DataIndex,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S LastX,
+   GuiConst_INT16S LastY)
+{
+  GuiConst_INT16S DX1, DY1;
+  GuiConst_INT16S DX2, DY2;
+  GuiConst_INT16S HW;
+  GuiConst_INT16S AY;
+
+  switch (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Representation)
+  {
+    case GuiLib_GRAPH_DATATYPE_DOT:
+      if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness == 0)
+        GuiLib_Circle(
+           X, Y,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor);
+      else if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].
+               Thickness == 1)
+        GuiLib_Circle(
+           X, Y,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor);
+      else
+      {
+        GuiLib_Circle(
+           X, Y,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+        GuiLib_Circle(
+           X, Y,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width-
+              sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor);
+      }
+      break;
+
+    case GuiLib_GRAPH_DATATYPE_LINE:
+      if (DataIndex ==
+          sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst)
+        GuiLib_Dot(
+           X, Y,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+      else
+        GuiLib_Line(
+           LastX, LastY,
+           X, Y,
+           sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+      break;
+
+    case GuiLib_GRAPH_DATATYPE_BAR:
+      AY = sgl.GraphAry[GraphIndex].OrigoY +
+           sgl.GraphAry[GraphIndex].GraphAxes[0][GuiLib_GRAPHAXIS_X].Offset;
+      DX2 = X + (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width / 2);
+      DX1 = DX2 - sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width + 1;
+      if (DX1 > DX2)
+        DX1 = DX2;
+      DY1 = AY;
+      DY2 = Y;
+      if (Y < AY)
+        DY1--;
+      if (Y != AY)
+      {
+        if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness == 0)
+        {
+          if (!sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].
+               BackColorTransparent)
+            GuiLib_FillBox(
+               DX1, DY1,
+               DX2, DY2,
+               sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor);
+        }
+        else
+        {
+          OrderCoord(&DX1, &DX2);
+          OrderCoord(&DY1, &DY2);
+          DrawBorderBox(
+             DX1, DY1,
+             DX2, DY2,
+             sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor,
+             sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].BackColor,
+             sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].
+                BackColorTransparent,
+             sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Thickness);
+        }
+      }
+      break;
+
+    case GuiLib_GRAPH_DATATYPE_CROSS:
+      HW = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width;
+      DX1 = X - HW;
+      DY1 = Y - HW;
+      DX2 = X + HW;
+      DY2 = Y + HW;
+      GuiLib_Line(
+         DX1, Y,
+         DX2, Y,
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+      GuiLib_Line(
+         X, DY1,
+         X, DY2,
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+      break;
+
+    case GuiLib_GRAPH_DATATYPE_X:
+      HW = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Width;
+      DX1 = X - HW;
+      DY1 = Y - HW;
+      DX2 = X + HW;
+      DY2 = Y + HW;
+      GuiLib_Line(
+         DX1, DY1,
+         DX2, DY2,
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+      GuiLib_Line(
+         DX1, DY2,
+         DX2, DY1,
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].ForeColor);
+      break;
+  }
+}
+
+//------------------------------------------------------------------------------
+static void Graph_DrawDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex)
+{
+  GuiConst_INT16S DX = 0, DY = 0;
+  GuiConst_INT16S LastDX, LastDY;
+  GuiConst_INT32S TX, TY;
+  GuiConst_INT16U DataIndex;
+  GuiConst_INT16U DataCount;
+
+  Graph_CalcScaleX(GraphIndex,
+                   sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX);
+  Graph_CalcScaleY(GraphIndex,
+                   sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY);
+
+  DataIndex = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst;
+  for (DataCount = 1;
+       DataCount <= sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount;
+       DataCount++)
+  {
+    TX =
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].X;
+    TY =
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].Y;
+
+    LastDX = DX;
+    LastDY = DY;
+    DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX -
+         sgl.GraphAry[GraphIndex].GraphAxes[
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX]
+         [GuiLib_GRAPHAXIS_X].NumbersMinValue) *
+         sgl.GraphAry[GraphIndex].GraphAxes[
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX]
+         [GuiLib_GRAPHAXIS_X].Scale) / 10000;
+    DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY -
+         sgl.GraphAry[GraphIndex].GraphAxes[
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY]
+         [GuiLib_GRAPHAXIS_Y].NumbersMinValue) *
+         sgl.GraphAry[GraphIndex].GraphAxes[
+         sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY]
+         [GuiLib_GRAPHAXIS_Y].Scale) / 10000;
+
+    Graph_DrawDataPoint(
+       GraphIndex,
+       DataSetIndex,
+       DataIndex,
+       DX, DY,
+       LastDX, LastDY);
+
+    if (DataIndex >= sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount)
+      DataIndex = 0;
+    else
+      DataIndex++;
+  }
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_Close(
+   GuiConst_INT8U GraphIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].InUse = GuiLib_GRAPH_STRUCTURE_UNDEF;
+  sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] = 0;
+  sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] = 0;
+  sgl.GraphAry[GraphIndex].GraphDataSetCnt = 0;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_AddDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT8U XAxisIndex,
+   GuiConst_INT8U YAxisIndex,
+   GuiLib_GraphDataPoint *DataPtr,
+   GuiConst_INT16U DataSize,
+   GuiConst_INT16U DataCount,
+   GuiConst_INT16U DataFirst)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+  if (DataCount > DataSize)
+    return (0);
+  if (DataFirst >= DataSize)
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr = DataPtr;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize = DataSize;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst = DataFirst;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount = DataCount;
+  if ((XAxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (XAxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]))
+    XAxisIndex = 0;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX = XAxisIndex;
+  if ((YAxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (YAxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]))
+    YAxisIndex = 0;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY = YAxisIndex;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_RemoveDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount = 0;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize = 0;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_AddDataPoint(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT32S X,
+   GuiConst_INT32S Y)
+{
+  GuiConst_INT16U I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+  if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount >=
+      sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize)
+    return (0);
+
+  I = (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataFirst +
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount) %
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount++;
+
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[I].X = X;
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[I].Y = Y;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_ShowDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible = 1;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_HideDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible = 0;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_ShowXAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Visible = 1;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_HideXAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].Visible = 0;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_ShowYAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Visible = 1;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_HideYAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].Visible = 0;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_SetXAxisRange(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex,
+   GuiConst_INT32S MinValue,
+   GuiConst_INT32S MaxValue)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+     NumbersMinValue = MinValue;
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_X].
+     NumbersMaxValue = MaxValue;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_SetYAxisRange(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex,
+   GuiConst_INT32S MinValue,
+   GuiConst_INT32S MaxValue)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]))
+    return (0);
+
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+     NumbersMinValue = MinValue;
+  sgl.GraphAry[GraphIndex].GraphAxes[AxisIndex][GuiLib_GRAPHAXIS_Y].
+     NumbersMaxValue = MaxValue;
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_ResetXAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex)
+{
+  GuiConst_INT8U AxisIndex1,AxisIndex2;
+  GuiConst_INT8U I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if (AxisIndex == -1)
+  {
+    AxisIndex1 = 0;
+    AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] - 1;
+  }
+  else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]))
+    return (0);
+  else
+  {
+    AxisIndex1 = AxisIndex;
+    AxisIndex2 = AxisIndex;
+  }
+
+  for (I = AxisIndex1; I <= AxisIndex2; I++)
+  {
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMinValue =
+       sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMinValueOrg;
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMaxValue =
+       sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMaxValueOrg;
+  }
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_OffsetXAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex,
+   GuiConst_INT32S Offset)
+{
+  GuiConst_INT8U AxisIndex1,AxisIndex2;
+  GuiConst_INT8U I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if (AxisIndex == -1)
+  {
+    AxisIndex1 = 0;
+    AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] - 1;
+  }
+  else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X]))
+    return (0);
+  else
+  {
+    AxisIndex1 = AxisIndex;
+    AxisIndex2 = AxisIndex;
+  }
+
+  for (I = AxisIndex1; I <= AxisIndex2; I++)
+  {
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMinValue += Offset;
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].NumbersMaxValue += Offset;
+  }
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_ResetYAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex)
+{
+  GuiConst_INT8U AxisIndex1,AxisIndex2;
+  GuiConst_INT8U I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if (AxisIndex == -1)
+  {
+    AxisIndex1 = 0;
+    AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] - 1;
+  }
+  else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]))
+    return (0);
+  else
+  {
+    AxisIndex1 = AxisIndex;
+    AxisIndex2 = AxisIndex;
+  }
+
+  for (I = AxisIndex1; I <= AxisIndex2; I++)
+  {
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMinValue =
+       sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMinValueOrg;
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMaxValue =
+       sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMaxValueOrg;
+  }
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_OffsetYAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex,
+   GuiConst_INT32S Offset)
+{
+  GuiConst_INT8U AxisIndex1,AxisIndex2;
+  GuiConst_INT8U I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if (AxisIndex == -1)
+  {
+    AxisIndex1 = 0;
+    AxisIndex2 = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] - 1;
+  }
+  else if ((AxisIndex >= GuiConst_GRAPH_AXES_MAX) ||
+      (AxisIndex >= sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y]))
+    return (0);
+  else
+  {
+    AxisIndex1 = AxisIndex;
+    AxisIndex2 = AxisIndex;
+  }
+
+  for (I = AxisIndex1; I <= AxisIndex2; I++)
+  {
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMinValue += Offset;
+    sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].NumbersMaxValue += Offset;
+  }
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_Redraw(
+   GuiConst_INT8U GraphIndex)
+{
+  GuiConst_INT16S I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_SetClipping(GraphIndex);
+#endif
+
+  GuiLib_Graph_DrawAxes(GraphIndex);
+
+  for (I = sgl.GraphAry[GraphIndex].GraphDataSetCnt - 1; I >= 0; I--)
+    GuiLib_Graph_DrawDataSet(GraphIndex, I);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_ResetClipping();
+#endif
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_DrawAxes(
+   GuiConst_INT8U GraphIndex)
+{
+  GuiConst_INT16S I;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_SetClipping(GraphIndex);
+#endif
+
+  if (!(sgl.GraphAry[GraphIndex].GraphItem.TextPar[0].BitFlags &
+        GuiLib_BITFLAG_TRANSPARENT))
+    GuiLib_FillBox(sgl.GraphAry[GraphIndex].GraphItem.X1,
+                   sgl.GraphAry[GraphIndex].GraphItem.Y1,
+                   sgl.GraphAry[GraphIndex].GraphItem.X2,
+                   sgl.GraphAry[GraphIndex].GraphItem.Y2,
+                   sgl.GraphAry[GraphIndex].GraphItem.BackColor);
+
+  for (I = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_X] - 1;
+       I >= 0; I--)
+    if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_X].Visible)
+      Graph_DrawXAxis(GraphIndex, I);
+
+  for (I = sgl.GraphAry[GraphIndex].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] - 1;
+       I >= 0; I--)
+    if (sgl.GraphAry[GraphIndex].GraphAxes[I][GuiLib_GRAPHAXIS_Y].Visible)
+      Graph_DrawYAxis(GraphIndex, I);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_ResetClipping();
+#endif
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_DrawDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex)
+{
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+  if (!sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible)
+    return (0);
+  if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize == 0)
+    return (0);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_SetClipping(GraphIndex);
+#endif
+
+  Graph_DrawDataSet(GraphIndex, DataSetIndex);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_ResetClipping();
+#endif
+
+  return (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Graph_DrawDataPoint(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT16U DataIndex)
+{
+  GuiConst_INT16S Y;
+  GuiConst_INT16S DX, DY;
+  GuiConst_INT16S LastDX, LastDY;
+  GuiConst_INT32S TX, TY;
+
+  if ((GraphIndex >= GuiConst_GRAPH_MAX) ||
+      (sgl.GraphAry[GraphIndex].InUse != GuiLib_GRAPH_STRUCTURE_USED))
+    return (0);
+  if ((DataSetIndex >= GuiConst_GRAPH_DATASETS_MAX) ||
+      (DataSetIndex >= sgl.GraphAry[GraphIndex].GraphDataSetCnt))
+    return (0);
+  if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataSize == 0)
+    return (0);
+  if (!sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Visible)
+    return (0);
+  if (DataIndex >= sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount)
+    return (0);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_SetClipping(GraphIndex);
+#endif
+
+  Graph_CalcScaleX(GraphIndex,
+                   sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX);
+  Graph_CalcScaleY(GraphIndex,
+                   sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY);
+
+  TX = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].X;
+  TY = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].Y;
+  DX = sgl.GraphAry[GraphIndex].OrigoX + ((TX -
+       sgl.GraphAry[GraphIndex].GraphAxes[
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX]
+       [GuiLib_GRAPHAXIS_X].NumbersMinValue) *
+       sgl.GraphAry[GraphIndex].GraphAxes[
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX]
+       [GuiLib_GRAPHAXIS_X].Scale) / 10000;
+  DY = sgl.GraphAry[GraphIndex].OrigoY - ((TY -
+       sgl.GraphAry[GraphIndex].GraphAxes[
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY]
+       [GuiLib_GRAPHAXIS_Y].NumbersMinValue) *
+       sgl.GraphAry[GraphIndex].GraphAxes[
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY]
+       [GuiLib_GRAPHAXIS_Y].Scale) / 10000;
+  if (sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].Representation ==
+      GuiLib_GRAPH_DATATYPE_LINE)
+  {
+    if (DataIndex == 0)
+      DataIndex = sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataCount - 1;
+    else
+      DataIndex--;
+
+    TX =
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].X;
+    TY =
+       sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].DataPtr[DataIndex].Y;
+    LastDX = sgl.GraphAry[GraphIndex].OrigoX + ((TX -
+            sgl.GraphAry[GraphIndex].GraphAxes[
+            sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX]
+            [GuiLib_GRAPHAXIS_X].NumbersMinValue) *
+            sgl.GraphAry[GraphIndex].GraphAxes[
+            sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexX]
+            [GuiLib_GRAPHAXIS_X].Scale) / 10000;
+    LastDY = sgl.GraphAry[GraphIndex].OrigoY - ((TY -
+             sgl.GraphAry[GraphIndex].GraphAxes[
+             sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY]
+             [GuiLib_GRAPHAXIS_Y].NumbersMinValue) *
+             sgl.GraphAry[GraphIndex].GraphAxes[
+             sgl.GraphAry[GraphIndex].GraphDataSets[DataSetIndex].AxisIndexY]
+             [GuiLib_GRAPHAXIS_Y].Scale) / 10000;
+  }
+  else
+  {
+    LastDX = DX;
+    LastDY = DY;
+  }
+
+  Graph_DrawDataPoint(
+     GraphIndex,
+     DataSetIndex,
+     DataIndex,
+     DX, DY,
+     LastDX, LastDY);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  Graph_ResetClipping();
+#endif
+
+  return (1);
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#endif // GuiConst_ITEM_GRAPH_INUSE
+
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+static GuiConst_INT16S IndexOfGraphicsLayer(
+   GuiConst_INT16S GraphicsLayerIndex)
+{
+  GuiConst_INT16S I;
+
+  if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_BASE)
+    return(GuiLib_GRAPHICS_LAYER_BASE);
+  else if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_PREVIOUS)
+  {
+    if (sgl.GraphicsLayerLifoCnt <= 1)
+      return(GuiLib_GRAPHICS_LAYER_BASE);
+    else
+      return(sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 2]);
+  }
+  else if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_CURRENT)
+  {
+    if (sgl.GraphicsLayerLifoCnt > 0)
+      return(sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1]);
+    else
+      return(GuiLib_GRAPHICS_LAYER_BASE);
+  }
+  else if (GraphicsLayerIndex < 0)
+    return(GuiLib_GRAPHICS_LAYER_BASE);
+  else if (sgl.GraphicsLayerLifoCnt <= 1)
+    return(GuiLib_GRAPHICS_LAYER_BASE);
+  for (I = 0; I < sgl.GraphicsLayerLifoCnt; I++)
+    if (sgl.GraphicsLayerLifo[I] == GraphicsLayerIndex)
+      return(GraphicsLayerIndex);
+  return(GuiLib_GRAPHICS_LAYER_BASE);
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT8U GraphicsLayer_Push(
+   GuiConst_INT8U GraphicsLayerIndex)
+{
+  GuiConst_INT16S I;
+
+  if (GraphicsLayerIndex >= GuiConst_GRAPHICS_LAYER_MAX)
+    return(0);
+  if (sgl.GraphicsLayerList[GraphicsLayerIndex].InUse != GuiLib_GRAPHICS_LAYER_USED)
+    return(0);
+  if (sgl.GraphicsLayerLifoCnt == GuiConst_GRAPHICS_LAYER_MAX)
+    return(0);
+  for (I = 0; I < sgl.GraphicsLayerLifoCnt; I++)
+    if (sgl.GraphicsLayerLifo[I] == GraphicsLayerIndex)
+      return(0);
+
+  sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt] = GraphicsLayerIndex;
+  sgl.GraphicsLayerLifoCnt++;
+  sgl.GraphicsLayerList[GraphicsLayerIndex].BaseAddress =
+   &sgl.LayerBuf[(GuiConst_INT32U)ReadWord(
+   GuiStruct_GraphicsLayerOfs[GraphicsLayerIndex])];
+
+  sgl.CurLayerBufPtr = sgl.GraphicsLayerList[GraphicsLayerIndex].BaseAddress;
+  sgl.CurLayerLineSize = sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize;
+  sgl.CurLayerWidth = sgl.GraphicsLayerList[GraphicsLayerIndex].Width;
+  sgl.CurLayerHeight = sgl.GraphicsLayerList[GraphicsLayerIndex].Height;
+  sgl.CurLayerBytes =
+     sgl.GraphicsLayerList[GraphicsLayerIndex].Height *
+     sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize;
+  sgl.BaseLayerDrawing = 0;
+
+  return(1);
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT8U GraphicsLayer_Pop(
+   GuiConst_INT16S GraphicsLayerIndex)
+{
+  GuiConst_INT16S I;
+
+  if (GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_BASE)
+    sgl.GraphicsLayerLifoCnt = 0;
+  else if ((GraphicsLayerIndex == GuiLib_GRAPHICS_LAYER_PREVIOUS) &&
+           (sgl.GraphicsLayerLifoCnt > 0))
+  {
+    sgl.GraphicsLayerLifoCnt--;
+    GraphicsLayerIndex = sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1];
+  }
+  else if (GraphicsLayerIndex < 0)
+    return(0);
+  else if (sgl.GraphicsLayerLifoCnt <= 1)
+    return(0);
+  else
+  {
+    for (I = sgl.GraphicsLayerLifoCnt - 2; I >= 0; I--)
+      if (sgl.GraphicsLayerLifo[I] == GraphicsLayerIndex)
+      {
+        sgl.GraphicsLayerLifoCnt = I + 1;
+        break;
+      }
+    if (I == -1)
+      return(0);
+  }
+
+  if (sgl.GraphicsLayerLifoCnt == 0)
+    ResetLayerBufPtr();
+  else
+  {
+    sgl.CurLayerBufPtr = sgl.GraphicsLayerList[GraphicsLayerIndex].BaseAddress;
+    sgl.CurLayerLineSize = sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize;
+    sgl.CurLayerWidth = sgl.GraphicsLayerList[GraphicsLayerIndex].Width;
+    sgl.CurLayerHeight = sgl.GraphicsLayerList[GraphicsLayerIndex].Height;
+    sgl.CurLayerBytes =
+       sgl.GraphicsLayerList[GraphicsLayerIndex].Height *
+       sgl.GraphicsLayerList[GraphicsLayerIndex].LineSize;
+    sgl.BaseLayerDrawing = 0;
+  }
+
+  return(1);
+}
+
+//------------------------------------------------------------------------------
+static void GraphicsLayer_Copy(
+   GuiConst_INT8U *DestAddress,
+   GuiConst_INT16U DestLineSize,
+   GuiConst_INT16S DestX,
+   GuiConst_INT16S DestY,
+   GuiConst_INT8U *SourceAddress,
+   GuiConst_INT16U SourceLineSize,
+   GuiConst_INT16S SourceX,
+   GuiConst_INT16S SourceY,
+   GuiConst_INT16U Width,
+   GuiConst_INT16U Height)
+{
+  GuiConst_INT16S LineSize;
+
+  SourceAddress +=
+     SourceY * SourceLineSize + GuiConst_PIXEL_BYTE_SIZE * SourceX;
+  DestAddress += DestY * DestLineSize + GuiConst_PIXEL_BYTE_SIZE * DestX;
+  LineSize = GuiConst_PIXEL_BYTE_SIZE * Width;
+  while (Height > 0)
+  {
+    memcpy(DestAddress, SourceAddress, LineSize);
+    SourceAddress += SourceLineSize;
+    DestAddress += DestLineSize;
+    Height--;
+  }
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_GraphicsFilter_Init(
+   GuiConst_INT8U GraphicsFilterIndex,
+   void (*FilterFuncPtr)
+     (GuiConst_INT8U *DestAddress,
+      GuiConst_INT16U DestLineSize,
+      GuiConst_INT8U *SourceAddress,
+      GuiConst_INT16U SourceLineSize,
+      GuiConst_INT16U Width,
+      GuiConst_INT16U Height,
+      GuiConst_INT32S FilterPars[10]))
+{
+  if (GraphicsFilterIndex >= GuiConst_GRAPHICS_FILTER_MAX)
+    return (0);
+
+  sgl.GraphicsFilterList[GraphicsFilterIndex].GraphicsFilterFunc = FilterFuncPtr;
+
+  return (1);
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+#endif // GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+GuiConst_INT16S *TextBox_Scroll_GetPosRec(GuiConst_INT8U TextBoxIndex)
+{
+  GuiConst_INT16S I;
+  GuiConst_INT16S *result = NULL;
+
+  for (I=0;I<GuiConst_TEXTBOX_FIELDS_MAX;I++)
+  {
+    if (sgl.TextBoxScrollPositions[I].index == TextBoxIndex)
+    {
+      result = &sgl.TextBoxScrollPositions[I].pos;
+      break;
+    }
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+static GuiConst_INT16S TextBox_Scroll_CalcEndPos(
+   GuiLib_ItemRec PrefixLocate *TextBoxItem,
+   GuiConst_INT8U PerLine)
+{
+  GuiConst_INT16S H;
+
+  H = TextBoxItem->Y2 -
+      TextBoxItem->Y1 + 1;
+  if (PerLine)
+    return (TextBoxItem->CompPars.CompTextBox.LineDist *
+       (TextBoxItem->CompPars.CompTextBox.Lines -
+       (H / TextBoxItem->CompPars.CompTextBox.LineDist)));
+  else
+    return (TextBoxItem->CompPars.CompTextBox.Lines *
+       TextBoxItem->CompPars.CompTextBox.LineDist - H);
+}
+#endif // GuiConst_TEXTBOX_FIELDS_ON
+
+//------------------------------------------------------------------------------
+static GuiConst_INT8U TextBox_Scroll_To(
+   GuiConst_INT8U TextBoxIndex,
+   GuiConst_INT16S NewPos,
+   GuiConst_INT8U PerLine,
+   GuiConst_INT8U AbsoluteMove)
+{
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  GuiLib_ItemRec PrefixLocate *TextBoxItem;
+  GuiConst_INT16S TextBox;
+  GuiConst_INT16S PrefixLocate *ScrollPos;
+
+  TextBox = AutoRedraw_GetTextBox(TextBoxIndex, -1);
+
+  if (TextBox == -1)
+    return (0);
+
+  TextBoxItem = AutoRedraw_GetItem(TextBox);
+
+  if (TextBoxItem == NULL)
+    return (0);
+  else
+  {
+    ScrollPos = TextBox_Scroll_GetPosRec(TextBoxIndex);
+
+    if (ScrollPos == NULL)
+      return (0);
+
+    if (PerLine)
+      NewPos *= TextBoxItem->CompPars.CompTextBox.LineDist;
+
+    switch (AbsoluteMove)
+    {
+      case 0:
+        *ScrollPos += NewPos;
+        break;
+
+      case 1:
+        *ScrollPos = NewPos;
+        break;
+
+      case 2:
+        *ScrollPos = TextBox_Scroll_CalcEndPos(TextBoxItem, PerLine);
+        break;
+    }
+
+    TextBoxItem->CompPars.CompTextBox.ScrollPos = *ScrollPos;
+
+    memcpy(&sgl.CurItem, TextBoxItem, sizeof(GuiLib_ItemRec));
+
+    GuiDisplay_Lock();
+
+    sgl.DisplayLevel = 0;
+    sgl.SwapColors = 0;
+    DrawItem(GuiLib_COL_INVERT_OFF);
+
+    GuiDisplay_Unlock();
+    return (1);
+  }
+#else
+  gl.Dummy1_8U = TextBoxIndex;   // To avoid compiler warning
+  gl.Dummy1_16S = NewPos;   // To avoid compiler warning
+  gl.Dummy2_8U = PerLine;   // To avoid compiler warning
+  gl.Dummy3_8U = AbsoluteMove;   // To avoid compiler warning
+  return (0);
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Up(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, -1, 1, 0));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Down(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, 1, 1, 0));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Home(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, 0, 1, 1));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_End(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, 0, 1, 2));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_To_Line(
+   GuiConst_INT8U TextBoxIndex,
+   GuiConst_INT16S NewLine)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, NewLine, 1, 1));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Up_Pixel(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, -1, 0, 0));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Down_Pixel(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, 1, 0, 0));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Home_Pixel(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, 0, 0, 1));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_End_Pixel(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, 0, 0, 2));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_To_PixelLine(
+   GuiConst_INT8U TextBoxIndex,
+   GuiConst_INT16S NewPixelLine)
+{
+  return (TextBox_Scroll_To(TextBoxIndex, NewPixelLine, 0, 1));
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT8U TextBox_Scroll_Get_Pos(
+   GuiConst_INT8U TextBoxIndex,
+   GuiConst_INT8U PerLine)
+{
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  GuiConst_INT16S P;
+  GuiLib_ItemRec PrefixLocate*TextBoxItem;
+  GuiConst_INT16S TextBox;
+  GuiConst_INT16S PrefixLocate *ScrollPos;
+
+  TextBox = AutoRedraw_GetTextBox(TextBoxIndex, -1);
+
+  if (TextBox == -1)
+    return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX);
+
+  TextBoxItem = AutoRedraw_GetItem(TextBox);
+
+  if (TextBoxItem == NULL)
+    return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX);
+
+  ScrollPos = TextBox_Scroll_GetPosRec(TextBoxIndex);
+
+  if (ScrollPos == NULL)
+    return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX);
+
+  P = TextBox_Scroll_CalcEndPos(TextBoxItem, PerLine);
+  if (*ScrollPos == 0)
+    return (GuiLib_TEXTBOX_SCROLL_AT_HOME);
+  else if (*ScrollPos == P)
+    return (GuiLib_TEXTBOX_SCROLL_AT_END);
+  else if (*ScrollPos < 0)
+    return (GuiLib_TEXTBOX_SCROLL_ABOVE_HOME);
+  else if (*ScrollPos > P)
+    return (GuiLib_TEXTBOX_SCROLL_BELOW_END);
+  else
+    return (GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK);
+
+#else
+  gl.Dummy1_8U = TextBoxIndex;   // To avoid compiler warning
+  gl.Dummy2_8U = PerLine;   // To avoid compiler warning
+  return (GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX);
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_Get_Pos(TextBoxIndex, 1));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos_Pixel(
+   GuiConst_INT8U TextBoxIndex)
+{
+  return (TextBox_Scroll_Get_Pos(TextBoxIndex, 0));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_TextBox_Scroll_FitsInside(
+   GuiConst_INT8U TextBoxIndex)
+{
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  GuiLib_ItemRec PrefixLocate *TextBoxItem;
+  GuiConst_INT16S TextBox;
+  GuiConst_INT16S PrefixLocate *ScrollPos;
+
+  TextBox = AutoRedraw_GetTextBox(TextBoxIndex, -1);
+
+  if (TextBox == -1)
+    return (0);
+
+  TextBoxItem = AutoRedraw_GetItem(TextBox);
+
+  if (TextBoxItem == NULL)
+    return (0);
+
+  return (TextBox_Scroll_CalcEndPos(TextBoxItem, 0) < 0);
+#else
+  gl.Dummy1_8U = TextBoxIndex;   // To avoid compiler warning
+  return (0);
+#endif
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_SetButtonDisabledColor(GuiConst_INTCOLOR PixelColor)
+{
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+  sgl.ButtonColorOverride = GuiLib_TRUE;
+  sgl.DisabledButtonColor = PixelColor;
+#endif
+
+  return PixelColor;
+}
+//------------------------------------------------------------------------------
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiDisplay.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiDisplay.c	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,742 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2014 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                       easyGUI display driver unit                        */
+/*                               v6.0.23.002                                */
+/*                                                                          */
+/* ************************************************************************ */
+
+#include "GuiConst.h"
+#include "GuiDisplay.h"
+#include "GuiLib.h"
+#include <stdlib.h>
+
+#define WANT_DOUBLE_BUFFERING // Also in GuiGraph16.h, GuiLib.c - *** all three must match ***
+
+#define USE_WAIT_MS
+#ifdef USE_WAIT_MS
+extern void EasyGUIWaitMs(GuiConst_INT32U msec); // in main.cpp
+#endif
+
+extern void SetupQSPIBitmapArray(int stageNumber); // In main.cpp
+
+// Make FRAME_ADDRESS able to be set at runtime, not hardcoded
+static unsigned long frameAddress = 0L;
+// Global function (actually called from the main function, in main.cpp) 
+// to set the frame address at startup
+void GuiDisplay_SetFrameAddress(void *newFrameAddress)
+{
+    // C/C++ is not happy copying a pointer value direct to an unsigned long
+    union {
+        void *ptrValue;
+        unsigned long ulValue;
+    } frameAddressUnion;
+    
+    frameAddressUnion.ptrValue = newFrameAddress;
+    
+    frameAddress = frameAddressUnion.ulValue;
+}
+
+// Select LCD controller type by removing double slashes
+//
+// Many of the drivers listed here supports more than one display controller.
+// To find your driver simply make a text search in this file. Omit eventual
+// letters after the display controller type number. Example: For an NJU6450A
+// display controller make a search for "NJU6450" - make sure it is a plain
+// text search, not a word search.
+//
+// If your display controller is not found you can contact support at
+// sales@ibissolutions.com. We will then quickly supply a driver for it.
+//
+// You only need to use the relevant display driver, all others may be deleted.
+// Make a copy of this file before modifying it.
+//
+// -----------------------------------------------------------------------------
+// #define LCD_CONTROLLER_TYPE_AT32AP7000
+// #define LCD_CONTROLLER_TYPE_AT91RM9200_ST7565
+// #define LCD_CONTROLLER_TYPE_AT91SAM9263
+// #define LCD_CONTROLLER_TYPE_BVGP
+// #define LCD_CONTROLLER_TYPE_D51E5TA7601
+// #define LCD_CONTROLLER_TYPE_F5529
+// #define LCD_CONTROLLER_TYPE_FLEVIPER
+// #define LCD_CONTROLLER_TYPE_FSA506
+// #define LCD_CONTROLLER_TYPE_H8S2378
+// #define LCD_CONTROLLER_TYPE_HD61202_2H
+// #define LCD_CONTROLLER_TYPE_HD61202_4H
+// #define LCD_CONTROLLER_TYPE_HD61202_2H2V
+// #define LCD_CONTROLLER_TYPE_HX8238_AT32AP7000
+// #define LCD_CONTROLLER_TYPE_HX8238_TMP92CH21
+// #define LCD_CONTROLLER_TYPE_HX8312
+// #define LCD_CONTROLLER_TYPE_HX8345
+// #define LCD_CONTROLLER_TYPE_HX8346
+// #define LCD_CONTROLLER_TYPE_HX8347
+// #define LCD_CONTROLLER_TYPE_HX8347G
+// #define LCD_CONTROLLER_TYPE_HX8352A
+// #define LCD_CONTROLLER_TYPE_ILI9341
+// #define LCD_CONTROLLER_TYPE_K70
+// #define LCD_CONTROLLER_TYPE_LC7981
+// #define LCD_CONTROLLER_TYPE_LS027
+// #define LCD_CONTROLLER_TYPE_LS044
+// #define LCD_CONTROLLER_TYPE_LH155BA
+// #define LCD_CONTROLLER_TYPE_LH75401
+// #define LCD_CONTROLLER_TYPE_LH7A400
+// #define LCD_CONTROLLER_TYPE_LPC1788
+// #define LCD_CONTROLLER_TYPE_LPC1850
+// #define LCD_CONTROLLER_TYPE_LPC2478
+// #define LCD_CONTROLLER_TYPE_LPC3230
+#define LCD_CONTROLLER_TYPE_LPC408X
+// #define LCD_CONTROLLER_TYPE_MPC5606S
+// #define LCD_CONTROLLER_TYPE_MX257
+// #define LCD_CONTROLLER_TYPE_NJU6450A
+// #define LCD_CONTROLLER_TYPE_NT39016D
+// #define LCD_CONTROLLER_TYPE_NT75451
+// #define LCD_CONTROLLER_TYPE_OTM2201A
+// #define LCD_CONTROLLER_TYPE_PCF8548
+// #define LCD_CONTROLLER_TYPE_PCF8813
+// #define LCD_CONTROLLER_TYPE_PIC24FJ256
+// #define LCD_CONTROLLER_TYPE_PXA320
+// #define LCD_CONTROLLER_TYPE_R61509
+// #define LCD_CONTROLLER_TYPE_R61526
+// #define LCD_CONTROLLER_TYPE_R61580
+// #define LCD_CONTROLLER_TYPE_RA8822
+// #define LCD_CONTROLLER_TYPE_RA8875
+// #define LCD_CONTROLLER_TYPE_S1D13505
+// #define LCD_CONTROLLER_TYPE_S1D13506
+// #define LCD_CONTROLLER_TYPE_S1D13700
+// #define LCD_CONTROLLER_TYPE_S1D13705
+// #define LCD_CONTROLLER_TYPE_S1D13706
+// #define LCD_CONTROLLER_TYPE_S1D13715
+// #define LCD_CONTROLLER_TYPE_S1D13743
+// #define LCD_CONTROLLER_TYPE_S1D13748
+// #define LCD_CONTROLLER_TYPE_S1D13781
+// #define LCD_CONTROLLER_TYPE_S1D13781_DIRECT
+// #define LCD_CONTROLLER_TYPE_S1D13A04
+// #define LCD_CONTROLLER_TYPE_S1D13A05
+// #define LCD_CONTROLLER_TYPE_S1D15721
+// #define LCD_CONTROLLER_TYPE_S6B0741
+// #define LCD_CONTROLLER_TYPE_S6B33BL
+// #define LCD_CONTROLLER_TYPE_S6D0139
+// #define LCD_CONTROLLER_TYPE_S6E63D6
+// #define LCD_CONTROLLER_TYPE_SBN1661_2H_SBN0080
+// #define LCD_CONTROLLER_TYPE_SED1335
+// #define LCD_CONTROLLER_TYPE_SEPS525
+// #define LCD_CONTROLLER_TYPE_SH1101A
+// #define LCD_CONTROLLER_TYPE_SH1123
+// #define LCD_CONTROLLER_TYPE_SPFD5408
+// #define LCD_CONTROLLER_TYPE_SPLC502
+// #define LCD_CONTROLLER_TYPE_SSD0323
+// #define LCD_CONTROLLER_TYPE_SSD1289
+// #define LCD_CONTROLLER_TYPE_SSD1305
+// #define LCD_CONTROLLER_TYPE_SSD1322
+// #define LCD_CONTROLLER_TYPE_SSD1339
+// #define LCD_CONTROLLER_TYPE_SSD1815
+// #define LCD_CONTROLLER_TYPE_SSD1815_2H
+// #define LCD_CONTROLLER_TYPE_SSD1848
+// #define LCD_CONTROLLER_TYPE_SSD1858
+// #define LCD_CONTROLLER_TYPE_SSD1926
+// #define LCD_CONTROLLER_TYPE_SSD1963
+// #define LCD_CONTROLLER_TYPE_SSD2119
+// #define LCD_CONTROLLER_TYPE_ST7529
+// #define LCD_CONTROLLER_TYPE_ST7541
+// #define LCD_CONTROLLER_TYPE_ST7561
+// #define LCD_CONTROLLER_TYPE_ST7565
+// #define LCD_CONTROLLER_TYPE_ST7586
+// #define LCD_CONTROLLER_TYPE_ST7637
+// #define LCD_CONTROLLER_TYPE_ST7715
+// #define LCD_CONTROLLER_TYPE_ST7920
+// #define LCD_CONTROLLER_TYPE_STM32F429
+// #define LCD_CONTROLLER_TYPE_T6963
+// #define LCD_CONTROLLER_TYPE_TLS8201
+// #define LCD_CONTROLLER_TYPE_TMPA900
+// #define LCD_CONTROLLER_TYPE_TS7390
+// #define LCD_CONTROLLER_TYPE_UC1608
+// #define LCD_CONTROLLER_TYPE_UC1610
+// #define LCD_CONTROLLER_TYPE_UC1611
+// #define LCD_CONTROLLER_TYPE_UC1617
+// #define LCD_CONTROLLER_TYPE_UC1698
+// #define LCD_CONTROLLER_TYPE_UPD161607
+// #define LCD_CONTROLLER_TYPE_UC1701
+
+// ============================================================================
+//
+// COMMON PART - NOT DEPENDENT ON DISPLAY CONTROLLER TYPE
+//
+// Do not delete this part of the GuiDisplay.c file.
+//
+// If your operating system uses pre-emptive execution, i.e. it interrupts tasks
+// at random instances, and transfers control to other tasks, display writing
+// must be protected from this, by writing code for the two protection
+// functions:
+//
+//   o  GuiDisplay_Lock     Prevent the OS from switching tasks
+//   o  GuiDisplay_Unlock   Open up normal task execution again
+//
+// If your operating system does not use pre-emptive execution, i.e. if you
+// must specifically release control in one tasks in order for other tasks to
+// be serviced, or if you don't employ an operating system at all, you can just
+// leave the two protection functions empty. Failing to write proper code for
+// the protection functions will result in a system with unpredictable
+// behavior.
+//
+// ============================================================================
+
+void GuiDisplay_Lock (void)
+{
+}
+
+void GuiDisplay_Unlock (void)
+{
+}
+
+// ============================================================================
+//
+// DISPLAY DRIVER PART
+//
+// You only need to use the relevant display driver, all others may be deleted.
+// Modify the driver so that it fits your specific hardware.
+// Make a copy of this file before modifying it.
+//
+// ============================================================================
+
+#ifdef LCD_CONTROLLER_TYPE_LPC408X
+
+// ============================================================================
+//
+// LPC408x MICROCONTROLLER WITH BUILT-IN DISPLAY CONTROLLER
+//
+// This driver uses internal LCD controller of LPC408x microcontroller.
+// LCD driver of LPC408x in 24 bit RGB parallel interface for TFT type
+// display or 4bit parallel interface for STN type display.
+// Graphic modes up to 1024x768 pixels.
+//
+// Compatible display controllers:
+//   None
+//
+// easyGUI setup should be (Parameters window, Display controller tab page):
+//   Horizontal bytes
+//   Bit 0 at right
+//   Number of color planes: 1
+//   Color mode: Grayscale, palette or RGB
+//   Color depth: 1 bit (B/W), 8 bits, 16 bits, 24 bits
+//   Display orientation: Normal, Upside down, 90 degrees left, 90 degrees right
+//   Display words with reversed bytes: Off
+//   Number of display controllers, horizontally: 1
+//   Number of display controllers, vertically: 1
+//
+// Port addresses (Px.x) must be altered to correspond to your microcontroller
+// hardware and compiler syntax.
+//
+// ============================================================================
+
+// Hardware connection for TFT display
+// LPC408x                        generic TFT display
+// LCD_FP               -         VSYNC
+// LCD_LP               -         HSYNC
+// LCD_LE               -         Line End
+// LCD_DCLK             -         Pixel CLK
+// LCD_ENAB_M           -         DATA_ENABLE
+// LCD_VD[0-7]          -         R0-R7 (for 16bit RGB mode connect R0,R1,R2 to 0)
+// LCD_VD[8-15]         -         G0-G7 (for 16bit RGB mode connect G0,G1 to 0)
+// LCD_VD[16-23]        -         B0-B7 (for 16bit RGB mode connect B0,B1,B2 to 0)
+
+// Hardware connection for STN display
+// LCD_PWR              -         DISP
+// LCD_DCLK             -         CL2
+// LCD_FP               -         Frame Pulse
+// LCD_LP               -         Line Sync Pulse
+// LCD_LE               -         Line End
+// LCD_VD[3:0]          -         UD[3:0]
+
+// Power Control registers
+#define PCONP          (*(volatile unsigned long *)0x400FC0C4)
+// LCD controller power control bit
+#define PCLCD          0
+
+// Pin setup registers (IOCON)
+#define IOCON_P0_4         (*(volatile unsigned long *)0x4002C010)
+#define IOCON_P0_5         (*(volatile unsigned long *)0x4002C014)
+#define IOCON_P0_6         (*(volatile unsigned long *)0x4002C018)
+#define IOCON_P0_7         (*(volatile unsigned long *)0x4002C01C)
+#define IOCON_P0_8         (*(volatile unsigned long *)0x4002C020)
+#define IOCON_P0_9         (*(volatile unsigned long *)0x4002C024)
+#define IOCON_P1_20        (*(volatile unsigned long *)0x4002C0D0)
+#define IOCON_P1_21        (*(volatile unsigned long *)0x4002C0D4)
+#define IOCON_P1_22        (*(volatile unsigned long *)0x4002C0D8)
+#define IOCON_P1_23        (*(volatile unsigned long *)0x4002C0DC)
+#define IOCON_P1_24        (*(volatile unsigned long *)0x4002C0E0)
+#define IOCON_P1_25        (*(volatile unsigned long *)0x4002C0E4)
+#define IOCON_P1_26        (*(volatile unsigned long *)0x4002C0E8)
+#define IOCON_P1_27        (*(volatile unsigned long *)0x4002C0EC)
+#define IOCON_P1_28        (*(volatile unsigned long *)0x4002C0F0)
+#define IOCON_P1_29        (*(volatile unsigned long *)0x4002C0F4)
+#define IOCON_P2_0         (*(volatile unsigned long *)0x4002C100)
+#define IOCON_P2_1         (*(volatile unsigned long *)0x4002C104)
+#define IOCON_P2_2         (*(volatile unsigned long *)0x4002C108)
+#define IOCON_P2_3         (*(volatile unsigned long *)0x4002C10C)
+#define IOCON_P2_4         (*(volatile unsigned long *)0x4002C110)
+#define IOCON_P2_5         (*(volatile unsigned long *)0x4002C114)
+#define IOCON_P2_6         (*(volatile unsigned long *)0x4002C118)
+#define IOCON_P2_7         (*(volatile unsigned long *)0x4002C11C)
+#define IOCON_P2_8         (*(volatile unsigned long *)0x4002C120)
+#define IOCON_P2_9         (*(volatile unsigned long *)0x4002C124)
+#define IOCON_P2_11        (*(volatile unsigned long *)0x4002C12C)
+#define IOCON_P2_12        (*(volatile unsigned long *)0x4002C130)
+#define IOCON_P2_13        (*(volatile unsigned long *)0x4002C134)
+#define IOCON_P4_28        (*(volatile unsigned long *)0x4002C270)
+#define IOCON_P4_29        (*(volatile unsigned long *)0x4002C274)
+
+// LCD Port Enable
+#define LCDPE           1
+
+// LCD controller registers
+// LCD configuration register
+#define LCD_CFG         (*(volatile unsigned long *)0x400FC1B8)
+
+// LCD Controller Base Address
+#define LCD_BASE       0x20088000
+
+// Horizontal Timing Control
+#define LCD_TIMH       (*(volatile unsigned long *)(LCD_BASE+0x000))
+// Vertical Timing Control
+#define LCD_TIMV       (*(volatile unsigned long *)(LCD_BASE+0x004))
+// Clock and Signal Polarity Control register
+#define LCD_POL        (*(volatile unsigned long *)(LCD_BASE+0x008))
+// Line End Control register
+#define LCD_LE         (*(volatile unsigned long *)(LCD_BASE+0x00C))
+// Upper Panel Frame Base Address register
+#define LCD_UPBASE     (*(volatile unsigned long *)(LCD_BASE+0x010))
+// Lower Panel Frame Base Address register
+#define LCD_LPBASE     (*(volatile unsigned long *)(LCD_BASE+0x014))
+// LCD Control register
+#define LCD_CTRL       (*(volatile unsigned long *)(LCD_BASE+0x018))
+// Interrupt Mask register
+#define LCD_INTMSK     (*(volatile unsigned long *)(LCD_BASE+0x01C))
+// Raw Interrupt Status register
+#define LCD_INTRAW     (*(volatile unsigned long *)(LCD_BASE+0x020))
+// Masked Interrupt Status register
+#define LCD_INTSTAT    (*(volatile unsigned long *)(LCD_BASE+0x024))
+// Interrupt Clear register
+#define LCD_INTCLR     (*(volatile unsigned long *)(LCD_BASE+0x028))
+// Upper Panel Current Address Value register
+#define LCD_UPCURR     (*(volatile unsigned long *)(LCD_BASE+0x02C))
+// Lower Panel Current Address Value register
+#define LCD_LPCURR     (*(volatile unsigned long *)(LCD_BASE+0x030))
+// 256x16-bit Color Palette registers
+#define LCD_PAL        (*(volatile unsigned long *)(LCD_BASE+0x200))
+// Cursor Image registers
+#define CRSR_IMG       (*(volatile unsigned long *)(LCD_BASE+0x800))
+// Cursor Control register
+#define CRSR_CTRL      (*(volatile unsigned long *)(LCD_BASE+0xC00))
+
+// LCD controller enable bit
+#define LCDEN          0
+// LCD controller power bit
+#define LCDPWR         11
+// Bypass pixel clock divider - for TFT display must be 1
+#ifdef GuiConst_COLOR_DEPTH_1
+#define BCD            0
+#else
+#define BCD            1
+#endif
+// Adjust these values according your display
+// PLL clock prescaler selection - only odd numbers 0,1,3,5,..255
+// 0 - PLL/1, 1 - PLL/2, 3 - PLL/4
+#define PLLDIV         0
+// LCD panel clock prescaler selection,  range 0 - 31
+// LCD freq = MCU freq /(CLKDIV+1)
+#define CLKDIV         7
+// Horizontal back porch in pixels, range 3 - 256
+#ifdef GuiConst_COLOR_DEPTH_1
+#define HBP            5
+#else
+#define HBP            40
+#endif
+// Horizontal front porch in pixels, range 3 - 256
+#ifdef GuiConst_COLOR_DEPTH_1
+#define HFP            5
+#else
+#define HFP            79
+#endif
+// Horizontal synchronization pulse width in pixels, range 3 - 256
+#ifdef GuiConst_COLOR_DEPTH_1
+#define HSW            3
+#else
+#define HSW            48
+#endif
+// Pixels-per-line in pixels, must be multiple of 16
+#define PPL            GuiConst_DISPLAY_WIDTH_HW
+// Vertical back porch in lines, range 1 - 256
+#ifdef GuiConst_COLOR_DEPTH_1
+#define VBP            2
+#else
+#define VBP            29
+#endif
+// Vertical front porch in lines, range 1 - 256
+#ifdef GuiConst_COLOR_DEPTH_1
+#define VFP            2
+#else
+#define VFP            40
+#endif
+// Vertical synchronization pulse width in lines, range 1 - 31
+#ifdef GuiConst_COLOR_DEPTH_1
+#define VSW            1
+#else
+#define VSW            3
+#endif
+// Lines per panel
+#define LPP            GuiConst_BYTE_LINES
+// Clocks per line
+#ifdef GuiConst_COLOR_DEPTH_1
+#define CPL            GuiConst_DISPLAY_WIDTH_HW/4
+#else
+#define CPL            GuiConst_DISPLAY_WIDTH_HW
+#endif
+// Invert output enable
+// 0 = LCDENAB output pin is active HIGH in TFT mode
+// 1 = LCDENAB output pin is active LOW in TFT mode
+#define IOE            0
+// Invert panel clock
+// 0 = Data is driven on the LCD data lines on the rising edge of LCDDCLK
+// 1 = Data is driven on the LCD data lines on the falling edge of LCDDCLK
+#define IPC            0
+// Invert horizontal synchronization
+// 0 = LCDLP pin is active HIGH and inactive LOW
+// 1 = LCDLP pin is active LOW and inactive HIGH
+#ifdef GuiConst_COLOR_DEPTH_1
+#define IHS            0
+#else
+#define IHS            1
+#endif
+// IVS Invert vertical synchronization
+// 0 = LCDFP pin is active HIGH and inactive LOW
+// 1 = LCDFP pin is active LOW and inactive HIGH
+#ifdef GuiConst_COLOR_DEPTH_1
+#define IVS            0
+#else
+#define IVS            1
+#endif
+// Lower five bits of panel clock divisor
+#define PCD_LO         2
+// CLKSEL Clock Select
+// 0 = the clock source for the LCD block is CCLK
+// 1 = the clock source for the LCD block is LCD_DCLK
+#define CLKSEL         0
+
+/****************************************************************************/
+/* IMPORTANT!!!                                                             */
+/****************************************************************************/
+// Set start address of frame buffer in RAM memory
+// 0x4000 0000 - 0x4000 FFFF RAM (64 kB)
+// 0x8000 0000 - 0x80FF FFFF Static memory bank 0 (16 MB)
+// 0x8100 0000 - 0x81FF FFFF Static memory bank 1 (16 MB)
+// 0xA000 0000 - 0xAFFF FFFF Dynamic memory bank 0 (256 MB)
+// 0xB000 0000 - 0xBFFF FFFF Dynamic memory bank 1 (256 MB)
+//#define FRAME_ADDRESS  0xA0000008
+//#define FRAME_ADDRESS  0xA00017D8 // As of 26 Oct 2016
+#define FRAME_ADDRESS (frameAddress) // Use the static variable set at the top of this file
+/****************************************************************************/
+
+// Address of pallete registers
+#define PALETTE_RAM_ADDR LCD_PAL
+
+// Delay routine
+// This constant must be adjusted according to speed of microcontroller
+#define ONE_MS               100
+// Param msec is delay in miliseconds
+void millisecond_delay(GuiConst_INT32U msec)
+{
+#ifdef USE_WAIT_MS
+  EasyGUIWaitMs(msec);
+#else
+  GuiConst_INT32U j;
+
+  for (j = 0; j < (ONE_MS * msec) ; j++);
+#endif
+}
+
+// Initialises the module and the display
+void GuiDisplay_Init (void)
+{
+//  return; // Test - do we need any display initialisation here? Let the BIOS do it?
+          // No flickering - but red and blue reversed (again)
+// So - can we reinstate some of the code in this function, and get the red and blue 
+// the correct way round without flickering?
+//#define ALLOW_LPC4088_INIT
+// Now allowing initialisation of the LCD control register even with ALLOW_LPC4088_INIT not #defined.
+// This appears to have eliminated the flickering while keeping the red and blue components 
+// the correct way round.
+  
+  GuiConst_INT32U i;
+#ifdef GuiConst_COLOR_DEPTH_24
+  GuiConst_INT32U *framePtr;
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+  GuiConst_INT16U *framePtr;
+#else
+  GuiConst_INT32U PaletteData;
+  GuiConst_INT8U *framePtr;
+  GuiConst_INT32U * pDst;
+#endif
+#endif
+
+//  SetupQSPIBitmapArray(1);
+
+/**************************************************/
+/* Carefully adjust the IO pins for your system   */
+/* Following settings for TFT panel 16/24 bit     */
+/**************************************************/
+
+/* *** DEBUG *** COMMENT OUT THIS BLOCK OF CODE - WHAT HAPPENS?
+// PI         SETTING     RGB888      RGB565
+  IOCON_P1_29  |= 7;   // BLUE7       BLUE4
+  IOCON_P1_28  |= 7;   // BLUE6       BLUE3
+  IOCON_P1_27  |= 7;   // BLUE5       BLUE2
+  IOCON_P1_26  |= 7;   // BLUE4       BLUE1
+  IOCON_P2_13  |= 7;   // BLUE3       BLUE0
+  //IOCON_P2_12  |= 7;   // BLUE2       -       !! Comment out for RGB565
+  //IOCON_P0_9   |= 7;   // BLUE1       -       !! Comment out for RGB565
+  //IOCON_P0_8   |= 7;   // BLUE0       -       !! Comment out for RGB565
+  IOCON_P1_25  |= 7;   // GREEN7      GREEN5
+  IOCON_P1_24  |= 7;   // GREEN6      GREEN4
+  IOCON_P1_23  |= 7;   // GREEN5      GREEN3
+  IOCON_P1_22  |= 7;   // GREEN4      GREEN2
+  IOCON_P1_21  |= 7;   // GREEN3      GREEN1
+  IOCON_P1_20  |= 7;   // GREEN2      GREEN0
+  //IOCON_P0_7   |= 7;   // GREEN1      -       !! Comment out for RGB565
+  //IOCON_P0_6   |= 7;   // GREEN0      -       !! Comment out for RGB565
+  IOCON_P2_9   |= 7;   // RED7        RED4
+  IOCON_P2_8   |= 7;   // RED6        RED3
+  IOCON_P2_7   |= 7;   // RED5        RED2
+  IOCON_P2_6   |= 7;   // RED4        RED1
+  //IOCON_P4_29  |= 7;   // RED3        -       !! Comment out for RGB565
+  IOCON_P2_12  |= 5;   // -           RED0  !! Comment out for RGB888 !!
+  //IOCON_P4_28  |= 7;   // RED2        -       !! Comment out for RGB565
+  //IOCON_P0_5   |= 7;   // RED1        -       !! Comment out for RGB565
+  //IOCON_P0_4   |= 7;   // RED0        -       !! Comment out for RGB565
+  IOCON_P2_5   |= 7;   // LCD_LP      LCD_LP
+  IOCON_P2_4   |= 7;   // LCD_ENAB_M  LCD_ENAB_M
+  IOCON_P2_3   |= 7;   // LCD_FP      LCD_FP
+  IOCON_P2_2   |= 7;   // LCD_DCLK    LCD_DCLK
+  IOCON_P2_1   |= 7;   // LCD_LE      LCD_LE
+  IOCON_P2_0   |= 7;   // LCD_PWR     LCD_PWR
+  IOCON_P2_11  |= 7;   // LCD_CLKIN   LCD_CLKIN
+*/ // DEBUG - ANSWER - *** EVERYTHING STILL APPEARS TO WORK ***
+
+/**************************************************/
+
+//  SetupQSPIBitmapArray(2);
+  
+#ifdef ALLOW_LPC4088_INIT
+  // Disable power
+  LCD_CTRL &= ~(1 << LCDEN);
+  millisecond_delay(100);
+  LCD_CTRL &= ~(1 << LCDPWR);
+  
+  // ====================================
+  // Initialize Clock(PLL),EMC and SDRAM!
+  // ====================================
+
+  // Enable LCD controller
+  PCONP |= 1<<PCLCD;
+
+  // LCD Configuration init pixel clock
+  LCD_CFG |= (CLKDIV);
+
+  // Horizontal Timing register
+  LCD_TIMH |= ((HBP-1) << 24)|((HFP-1) << 16)|((HSW-1) << 8)|((PPL/16-1) << 2);
+
+  // Vertical Timing register
+  LCD_TIMV |= (VBP << 24)|(VFP << 16)|((VSW-1) << 10)|(LPP-1);
+
+  // Clock and Signal Polarity register
+  LCD_POL |= (BCD << 26)|((CPL-1) << 16)|(IOE << 14)|(IPC << 13)|
+             (IHS << 12)|(IVS << 11)|(CLKSEL << 5)| PCD_LO;
+
+  LCD_LE = 0;
+  LCD_INTMSK = 0;
+
+#endif // ALLOW_LPC4088_INIT
+// If we include the initialisation of the LCD control register,
+// does this get red and blue the correct way round without flickering?
+
+  // LCD Control register
+#ifdef GuiConst_COLOR_DEPTH_24
+  // TFT single panel,24bit, normal output
+  LCD_CTRL = 0x0000002A;
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+  // TFT single panel,16bit, normal output (BGR)
+  LCD_CTRL = 0x0000102C;
+#else
+#ifdef GuiConst_COLOR_DEPTH_8
+  // TFT single panel,8bit, normal output
+  LCD_CTRL = 0x00000026;
+#else
+  // STN single panel, monochrome, 4bit bus, normal output
+  LCD_CTRL = 0x00000010;
+#endif
+#endif
+#endif
+
+
+#ifdef GuiConst_COLOR_DEPTH_24
+  framePtr = (GuiConst_INT32U *)FRAME_ADDRESS;
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+  framePtr = (GuiConst_INT16U *)FRAME_ADDRESS;
+#else
+  framePtr = (GuiConst_INT8U *)FRAME_ADDRESS;
+  pDst = (GuiConst_INT32U *)PALETTE_RAM_ADDR;
+  for (i = 0; i < 128; i++)
+  {
+#ifdef GuiConst_COLOR_DEPTH_1
+    PaletteData = 0xFFFF0000;
+#else
+    PaletteData = GuiStruct_Palette[2*i][0];
+    PaletteData |= (GuiConst_INT32U)GuiStruct_Palette[2*i][1]<<8;
+    PaletteData |= (GuiConst_INT32U)GuiStruct_Palette[2*i+1][0]<<16;
+    PaletteData |= (GuiConst_INT32U)GuiStruct_Palette[2*i+1][1]<<24;
+#endif
+    *pDst++ = PaletteData;
+  }
+#endif
+#endif
+
+  // Clear frame buffer by copying the data into frame buffer
+#ifdef GuiConst_COLOR_DEPTH_24
+  for (i = 0; i < GuiConst_DISPLAY_BYTES/3; i++)
+    *framePtr++ = 0x00000000; // Color
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+    for (i = 0; i < GuiConst_DISPLAY_BYTES/2; i++)
+    *framePtr++ = 0x0000; // Color
+#else
+  for (i = 0; i < GuiConst_DISPLAY_BYTES; i++)
+    *framePtr++ = 0x00;  // Color
+#endif
+#endif
+
+//  LCD_CFG = 0;
+
+  millisecond_delay(100);
+  // Power-up sequence
+  LCD_CTRL |= 1<<LCDEN;
+  // Apply contrast voltage to LCD panel
+  // (not controlled or supplied by the LCD controller)
+  millisecond_delay(100);
+  LCD_CTRL |= 1<<LCDPWR;
+
+  // Set start address of frame buffer in RAM memory
+  LCD_LPBASE = FRAME_ADDRESS;
+  LCD_UPBASE = FRAME_ADDRESS;
+}
+
+#ifdef WANT_DOUBLE_BUFFERING
+// *** Need complete GuiDisplay_Refresh ***
+
+// Refreshes display buffer to display
+void GuiDisplay_Refresh (void)
+{
+  GuiConst_INT32U Pixel, X, Y, LastByte;
+#ifdef GuiConst_COLOR_DEPTH_24
+  GuiConst_INT32U *framePtr;
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+  GuiConst_INT16U *framePtr;
+#else
+  // Valid also for monochrome STN display
+  GuiConst_INT8U *framePtr;
+#endif
+#endif
+
+  GuiDisplay_Lock ();
+
+  // Walk through all lines
+  for (Y = 0; Y < GuiConst_BYTE_LINES; Y++)
+  {
+    if (GuiLib_DisplayRepaint[Y].ByteEnd >= 0)
+    // Something to redraw in this line
+    {
+#ifdef GuiConst_COLOR_DEPTH_24
+      // Set video ram base address
+      framePtr = (GuiConst_INT32U *)FRAME_ADDRESS;
+      // Pointer offset calculation
+      framePtr += Y * GuiConst_BYTES_PR_LINE/3 +
+                  GuiLib_DisplayRepaint[Y].ByteBegin;
+      // Set amount of data to be changed
+      LastByte = GuiConst_BYTES_PR_LINE/3 - 1;
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+      // Set video ram base address
+      framePtr = (GuiConst_INT16U *)FRAME_ADDRESS;
+      // Pointer offset calculation
+      framePtr += Y * GuiConst_BYTES_PR_LINE/2 +
+                  GuiLib_DisplayRepaint[Y].ByteBegin;
+      // Set amount of data to be changed
+      LastByte = GuiConst_BYTES_PR_LINE/2 - 1;
+#else
+      // Valid also for monochrome STN display
+      // Set video ram base address
+      framePtr = (GuiConst_INT8U *)FRAME_ADDRESS;
+      // Pointer offset calculation
+      framePtr += Y * GuiConst_BYTES_PR_LINE +
+                  GuiLib_DisplayRepaint[Y].ByteBegin;
+      // Set amount of data to be changed
+      LastByte = GuiConst_BYTES_PR_LINE - 1;
+#endif
+#endif
+      if (GuiLib_DisplayRepaint[Y].ByteEnd < LastByte)
+        LastByte = GuiLib_DisplayRepaint[Y].ByteEnd;
+
+      // Write data for one line to framebuffer from GuiLib_DisplayBuf
+#ifdef GuiConst_COLOR_DEPTH_24
+      for (X = GuiLib_DisplayRepaint[Y].ByteBegin * 3;
+               X <= (LastByte * 3 + 2);
+               X = X + 3)
+      {
+        Pixel = GuiLib_DisplayBuf[Y][X];
+        Pixel |= (GuiConst_INT32U)GuiLib_DisplayBuf[Y][X+1]<<8;
+        Pixel |= (GuiConst_INT32U)GuiLib_DisplayBuf[Y][X+2]<<16;
+        *framePtr++ = Pixel;
+      }
+#else
+#ifdef GuiConst_COLOR_DEPTH_16
+      for (X = GuiLib_DisplayRepaint[Y].ByteBegin; X <= LastByte; X++)
+      {
+        *framePtr++ = GuiLib_DisplayBuf.Words[Y][X];
+      }
+#else
+      // Valid also for monochrome STN display
+      for (X = GuiLib_DisplayRepaint[Y].ByteBegin; X <= LastByte; X++)
+        *framePtr++ = GuiLib_DisplayBuf[Y][X];
+#endif
+#endif
+      // Reset repaint parameters
+      GuiLib_DisplayRepaint[Y].ByteEnd = -1;
+    }
+  }
+  GuiDisplay_Unlock ();
+}
+
+#else // WANT_DOUBLE_BUFFERING
+
+// We are already writing direct to the display - 
+// GuiDisplay_Refresh does not need to do anything
+// (but other code still expects it to exist)
+void GuiDisplay_Refresh (void)
+{
+}
+
+#endif // WANT_DOUBLE_BUFFERING
+
+#endif // LCD_CONTROLLER_TYPE_LPC408X
+
+// ============================================================================
+//
+// DISPLAY DRIVER PART ENDS
+//
+// ============================================================================
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiDisplay.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiDisplay.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,33 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2014 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                       easyGUI display driver unit                        */
+/*                               v6.0.23.002                                */
+/*                                                                          */
+/* ************************************************************************ */
+
+#ifndef __GUIDISPLAY_H
+#define __GUIDISPLAY_H
+
+#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */
+extern "C" {
+#endif
+
+#include "GuiConst.h"
+#ifndef GuiConst_CODEVISION_COMPILER
+#include "GuiLib.h"
+#endif
+
+extern void GuiDisplay_Lock (void);
+extern void GuiDisplay_Unlock (void);
+extern void GuiDisplay_Init (void);
+extern void GuiDisplay_Refresh (void);
+
+#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */
+}
+#endif
+
+#endif
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiGraph.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiGraph.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,1750 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                         Graphics include library                         */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/*     GuiLib.c include file - do NOT reference it in your linker setup     */
+/*                                                                          */
+/* ************************************************************************ */
+
+//==============================================================================
+#define GuiLib_DEG              10
+#define GuiLib_DEG360           360 * GuiLib_DEG
+
+#define GuiLib_RAD              4096
+#define GuiLib_RAD_QUARTER_PI   3217
+#define GuiLib_RAD_HALF_PI      6434
+#define GuiLib_RAD_PI           12868
+#define GuiLib_RAD_2_PI         25736
+#define GuiLib_RAD_TO_DEG       573
+
+//==============================================================================
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_DegToRad(
+   GuiConst_INT32S Angle)
+{
+  return ((GuiLib_RAD * Angle) / GuiLib_RAD_TO_DEG);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_RadToDeg(
+   GuiConst_INT32S Angle)
+{
+  return ((GuiLib_RAD_TO_DEG * Angle) / GuiLib_RAD);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_SinRad(
+   GuiConst_INT32S Angle)
+{
+  GuiConst_INT32S A, B, X2;
+
+  Angle %= GuiLib_RAD_2_PI;
+
+  if (Angle > GuiLib_RAD_PI)
+    X2 = GuiLib_RAD_2_PI - Angle;
+  else
+    X2 = Angle;
+  if (X2 > GuiLib_RAD_HALF_PI)
+    X2 = GuiLib_RAD_PI - X2;
+
+  A = ((((X2 * X2) >> 12) * X2) / 6) >> 12;
+  B = ((((A * X2) >> 12) * X2) / 20) >> 12;
+  B = X2 - A + B - ((((B * X2) / 42) * X2) >> 24);
+
+  if (Angle > GuiLib_RAD_PI)
+    return (-B);
+  else
+    return (B);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_SinDeg(
+   GuiConst_INT32S Angle)
+{
+  return (GuiLib_SinRad(GuiLib_DegToRad(Angle)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_CosRad(
+   GuiConst_INT32S Angle)
+{
+  GuiConst_INT32S A, B, C, X2;
+
+  Angle %= GuiLib_RAD_2_PI;
+
+  if (Angle > GuiLib_RAD_PI)
+    Angle = GuiLib_RAD_2_PI - Angle;
+  if (Angle > GuiLib_RAD_HALF_PI)
+    X2 = GuiLib_RAD_PI - Angle;
+  else
+    X2 = Angle;
+
+  A = (X2 * X2) >> 13;
+  B = ((((A * X2) >> 12) * X2) / 12) >> 12;
+  C = (((B * X2) / 30) * X2) >> 24;
+  C = GuiLib_RAD - A + B - C + (((((C * X2) / 8) * X2) / 7) >> 24);
+  if (Angle > GuiLib_RAD_HALF_PI)
+    return (-C);
+  else
+    return (C);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32S GuiLib_CosDeg(
+   GuiConst_INT32S Angle)
+{
+  return (GuiLib_CosRad(GuiLib_DegToRad(Angle)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_Sqrt(
+   GuiConst_INT32U X)
+{
+  GuiConst_INT32U X1, X2;
+
+  if (X == 0)
+    return (0);
+
+  X1 = (X / 2) + 1;
+  X2 = (X1 + (X / X1)) / 2;
+  while (X2 < X1)
+  {
+    X1 = X2;
+    X2 = (X1 + (X / X1)) / 2;
+  }
+  return (X1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_GetRedRgbColor(
+   GuiConst_INT32U RgbColor)
+{
+  return (RgbColor & 0x000000FF);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_SetRedRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT8U RedColor)
+{
+  return ((RgbColor & 0x00FFFF00) | RedColor);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_GetGreenRgbColor(
+   GuiConst_INT32U RgbColor)
+{
+  return (GuiConst_INT8U)((RgbColor & 0x0000FF00) >> 8);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_SetGreenRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT8U GreenColor)
+{
+  return ((RgbColor & 0x00FF00FF) | ((GuiConst_INT32U)GreenColor << 8));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_GetBlueRgbColor(
+   GuiConst_INT32U RgbColor)
+{
+  return (GuiConst_INT8U)((RgbColor & 0x00FF0000) >> 16);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_SetBlueRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT8U BlueColor)
+{
+  return ((RgbColor & 0xFF00FFFF) | ((GuiConst_INT32U)BlueColor << 16));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_RgbToPixelColor(
+   GuiConst_INT32U RgbColor)
+{
+#ifdef GuiConst_COLOR_MODE_GRAY
+  return ((GuiConst_COLOR_MAX *
+     (GuiConst_INT16U)GuiLib_RgbColorToGrayScale(RgbColor)) / 255);
+#else
+#ifdef GuiConst_COLOR_MODE_PALETTE
+  GuiConst_INT16U ColorR, ColorG, ColorB;
+  GuiConst_INT16U I, I2, byte, shift;
+  GuiConst_INT16U Rating, NewRating;
+  GuiConst_INT32U PColor;
+
+  ColorR = RgbColor & 0x000000FF;
+  ColorG = (RgbColor & 0x0000FF00) >> 8;
+  ColorB = (RgbColor & 0x00FF0000) >> 16;
+#ifndef GuiConst_COLOR_RGB_STANDARD
+  ColorR = (GuiConst_COLORCODING_R_MAX * ColorR) / 255;
+  ColorG = (GuiConst_COLORCODING_G_MAX * ColorG) / 255;
+  ColorB = (GuiConst_COLORCODING_B_MAX * ColorB) / 255;
+#endif
+  Rating = 0xFFFF;
+  for (I = 0; I < GuiConst_PALETTE_SIZE; I++)
+  {
+    PColor = 0;
+    for (byte=0,shift=0;byte < GuiConst_COLOR_BYTE_SIZE; byte++, shift +=8)
+      PColor |= ((GuiConst_INT32U)GuiStruct_Palette[I][byte] << shift);
+
+    NewRating =
+       abs(ColorR - ((PColor & GuiConst_COLORCODING_R_MASK) >>
+       GuiConst_COLORCODING_R_START)) +
+       abs(ColorG - ((PColor & GuiConst_COLORCODING_G_MASK) >>
+       GuiConst_COLORCODING_G_START)) +
+       abs(ColorB - ((PColor & GuiConst_COLORCODING_B_MASK) >>
+       GuiConst_COLORCODING_B_START));
+    if (NewRating < Rating)
+    {
+      Rating = NewRating;
+      I2 = I;
+    }
+  }
+  return (I2);
+#else
+#ifdef GuiConst_COLOR_RGB_STANDARD
+  return (RgbColor);
+#else
+  return ((((GuiConst_COLORCODING_R_MAX *
+     (RgbColor & 0x000000FF)) / 255) << GuiConst_COLORCODING_R_START) |
+     (((GuiConst_COLORCODING_G_MAX *
+     ((RgbColor & 0x0000FF00) >> 8)) / 255) << GuiConst_COLORCODING_G_START) |
+     (((GuiConst_COLORCODING_B_MAX *
+     ((RgbColor & 0x00FF0000) >> 16)) / 255) << GuiConst_COLORCODING_B_START));
+#endif
+#endif
+#endif
+}
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_Rgb888ToPixelColor(
+   GuiConst_INT8U Red, GuiConst_INT8U Green, GuiConst_INT8U Blue)
+{
+#ifdef GuiConst_COLOR_MODE_GRAY
+  return ((GuiConst_COLOR_MAX *
+     (GuiConst_INT16U)GuiLib_Rgb888ColorToGrayScale(Red, Green, Blue)) / 255);
+#else
+#ifdef GuiConst_COLOR_MODE_PALETTE
+  GuiConst_INT16U ColorR, ColorG, ColorB;
+  GuiConst_INT16U I, I2, byte, shift;
+  GuiConst_INT16U Rating, NewRating;
+  GuiConst_INT32U PColor;
+
+  ColorR = Red;
+  ColorG = Green;
+  ColorB = Blue;
+#ifndef GuiConst_COLOR_RGB_STANDARD
+  ColorR = (GuiConst_COLORCODING_R_MAX * ColorR) / 255;
+  ColorG = (GuiConst_COLORCODING_G_MAX * ColorG) / 255;
+  ColorB = (GuiConst_COLORCODING_B_MAX * ColorB) / 255;
+#endif
+  Rating = 0xFFFF;
+  for (I = 0; I < GuiConst_PALETTE_SIZE; I++)
+  {
+    PColor = 0;
+    for (byte=0,shift=0;byte < GuiConst_COLOR_BYTE_SIZE; byte++, shift +=8)
+      PColor |= ((GuiConst_INT32U)GuiStruct_Palette[I][byte] << shift);
+
+    NewRating =
+       abs(ColorR - ((PColor & GuiConst_COLORCODING_R_MASK) >>
+       GuiConst_COLORCODING_R_START)) +
+       abs(ColorG - ((PColor & GuiConst_COLORCODING_G_MASK) >>
+       GuiConst_COLORCODING_G_START)) +
+       abs(ColorB - ((PColor & GuiConst_COLORCODING_B_MASK) >>
+       GuiConst_COLORCODING_B_START));
+    if (NewRating < Rating)
+    {
+      Rating = NewRating;
+      I2 = I;
+    }
+  }
+  return (I2);
+#else
+#ifdef GuiConst_COLOR_RGB_STANDARD
+  return (Red | (Green << 8) | (Blue << 16));
+#else
+  return ((((GuiConst_COLORCODING_R_MAX * Red) / 255)
+              << GuiConst_COLORCODING_R_START) |
+          (((GuiConst_COLORCODING_G_MAX * Green) / 255)
+              << GuiConst_COLORCODING_G_START) |
+          (((GuiConst_COLORCODING_B_MAX * Blue) / 255)
+              << GuiConst_COLORCODING_B_START));
+#endif
+#endif
+#endif
+}
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_PixelToRgbColor(
+   GuiConst_INTCOLOR PixelColor)
+{
+#ifdef GuiConst_COLOR_MODE_GRAY
+  GuiConst_INT16U GrayValue;
+
+  GrayValue = (255 * PixelColor) / GuiConst_COLOR_MAX;
+  return (GuiLib_GrayScaleToRgbColor((GuiConst_INT8U)GrayValue));
+#else
+  GuiConst_INT32U PColor;
+#ifdef GuiConst_COLOR_MODE_PALETTE
+  GuiConst_INT16U byte, shift;
+#endif
+#ifndef GuiConst_COLOR_RGB_STANDARD
+  GuiConst_INT32U ColorR, ColorG, ColorB;
+#endif
+
+#ifdef GuiConst_COLOR_MODE_PALETTE
+  PColor = 0;
+  for (byte=0,shift=0;byte < GuiConst_COLOR_BYTE_SIZE; byte++, shift +=8)
+    PColor |= ((GuiConst_INT32U)GuiStruct_Palette[PixelColor][byte] << shift);
+#else
+  PColor = PixelColor;
+#endif
+
+#ifdef GuiConst_COLOR_RGB_STANDARD
+  return (PColor);
+#else
+  ColorR =
+     (PColor & GuiConst_COLORCODING_R_MASK) >> GuiConst_COLORCODING_R_START;
+  ColorG =
+     (PColor & GuiConst_COLORCODING_G_MASK) >> GuiConst_COLORCODING_G_START;
+  ColorB =
+     (PColor & GuiConst_COLORCODING_B_MASK) >> GuiConst_COLORCODING_B_START;
+  ColorR = (255 * ColorR) / GuiConst_COLORCODING_R_MAX;
+  ColorG = (255 * ColorG) / GuiConst_COLORCODING_G_MAX;
+  ColorB = (255 * ColorB) / GuiConst_COLORCODING_B_MAX;
+  return (ColorR | (ColorG << 8) | (ColorB << 16));
+#endif
+#endif
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_RgbColorToGrayScale(
+   GuiConst_INT32U RgbColor)
+{
+  return (((RgbColor & 0x000000FF) +
+     ((RgbColor & 0x0000FF00) >> 8) +
+     ((RgbColor & 0x00FF0000) >> 16)) / 3);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_Rgb888ColorToGrayScale(
+   GuiConst_INT8U Red, GuiConst_INT8U Green, GuiConst_INT8U Blue)
+{
+  return ((Red + Green + Blue) / 3);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_GrayScaleToRgbColor(
+   GuiConst_INT8U GrayValue)
+{
+  return ((GuiConst_INT32U)GrayValue |
+         ((GuiConst_INT32U)GrayValue << 8) |
+         ((GuiConst_INT32U)GrayValue << 16));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_PixelColorToGrayScale(
+   GuiConst_INTCOLOR PixelColor)
+{
+  return (GuiLib_RgbColorToGrayScale(GuiLib_PixelToRgbColor(PixelColor)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_GrayScaleToPixelColor(
+   GuiConst_INT8U GrayValue)
+{
+  return (GuiLib_RgbToPixelColor(GuiLib_GrayScaleToRgbColor(GrayValue)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_BrightenRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount)
+{
+  GuiConst_INT32U ColorR, ColorG, ColorB;
+
+  if (Amount == 0)
+    return (RgbColor);
+  else
+  {
+    ColorR = 255 - ((GuiConst_INT32U)(255 - GuiLib_GetRedRgbColor(RgbColor)) *
+       (1000 - Amount) / 1000);
+    ColorG = 255 - ((GuiConst_INT32U)(255 - GuiLib_GetGreenRgbColor(RgbColor)) *
+       (1000 - Amount) / 1000);
+    ColorB = 255 - ((GuiConst_INT32U)(255 - GuiLib_GetBlueRgbColor(RgbColor)) *
+       (1000 - Amount) / 1000);
+    return (ColorR | (ColorG << 8) | (ColorB << 16));
+  }
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_BrightenPixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount)
+{
+  return (GuiLib_RgbToPixelColor(
+     GuiLib_BrightenRgbColor(GuiLib_PixelToRgbColor(PixelColor), Amount)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_DarkenRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount)
+{
+  GuiConst_INT32U ColorR, ColorG, ColorB;
+
+  if (Amount == 0)
+    return (RgbColor);
+  else
+  {
+    ColorR = (GuiConst_INT32U)GuiLib_GetRedRgbColor(RgbColor) *
+       (1000 - Amount) / 1000;
+    ColorG = (GuiConst_INT32U)GuiLib_GetGreenRgbColor(RgbColor) *
+       (1000 - Amount) / 1000;
+    ColorB = (GuiConst_INT32U)GuiLib_GetBlueRgbColor(RgbColor) *
+       (1000 - Amount) / 1000;
+    return (ColorR | (ColorG << 8) | (ColorB << 16));
+  }
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_DarkenPixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount)
+{
+  return (GuiLib_RgbToPixelColor(
+     GuiLib_DarkenRgbColor(GuiLib_PixelToRgbColor(PixelColor), Amount)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_MiddleRgbColor(
+   GuiConst_INT32U RgbColor1,
+   GuiConst_INT32U RgbColor2,
+   GuiConst_INT16U Amount)
+{
+  GuiConst_INT32S ColorR, ColorG, ColorB;
+
+  if (Amount == 0)
+    return (RgbColor1);
+  else if (Amount >= 1000)
+    return (RgbColor2);
+  else
+  {
+    ColorR = (GuiConst_INT32U)GuiLib_GetRedRgbColor(RgbColor1);
+    ColorR = ColorR + (((GuiConst_INT32S)Amount *
+       ((GuiConst_INT32S)GuiLib_GetRedRgbColor(RgbColor2) - ColorR)) / 1000);
+    ColorG = (GuiConst_INT32U)GuiLib_GetGreenRgbColor(RgbColor1);
+    ColorG = ColorG + (((GuiConst_INT32S)Amount *
+       ((GuiConst_INT32S)GuiLib_GetGreenRgbColor(RgbColor2) - ColorG)) / 1000);
+    ColorB = (GuiConst_INT32U)GuiLib_GetBlueRgbColor(RgbColor1);
+    ColorB = ColorB + (((GuiConst_INT32S)Amount *
+       ((GuiConst_INT32S)GuiLib_GetBlueRgbColor(RgbColor2) - ColorB)) / 1000);
+    return (ColorR | (ColorG << 8) | (ColorB << 16));
+  }
+}
+
+// -----------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_MiddlePixelColor(
+   GuiConst_INTCOLOR PixelColor1,
+   GuiConst_INTCOLOR PixelColor2,
+   GuiConst_INT16U Amount)
+{
+  return (GuiLib_RgbToPixelColor(
+     GuiLib_MiddleRgbColor(GuiLib_PixelToRgbColor(PixelColor1),
+                           GuiLib_PixelToRgbColor(PixelColor2),
+                           Amount)));
+}
+
+// -----------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_DesaturateRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount)
+{
+  GuiConst_INT32U GrayValue;
+  GuiConst_INT32U ColorDesat;
+
+  GrayValue = (GuiConst_INT32U)GuiLib_RgbColorToGrayScale(RgbColor);
+  ColorDesat = GrayValue | (GrayValue << 8) | (GrayValue << 16);
+  return (GuiLib_MiddleRgbColor(RgbColor, ColorDesat, Amount));
+}
+
+// -----------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_DesaturatePixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount)
+{
+  return (GuiLib_RgbToPixelColor(
+     GuiLib_DesaturateRgbColor(GuiLib_PixelToRgbColor(PixelColor), Amount)));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT32U GuiLib_AccentuateRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount)
+{
+  if (Amount == 0)
+    return (RgbColor);
+  else if (GuiLib_RgbColorToGrayScale(RgbColor) <= 127)
+    return (GuiLib_BrightenRgbColor(RgbColor, Amount));
+  else
+    return (GuiLib_DarkenRgbColor(RgbColor, Amount));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_AccentuatePixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount)
+{
+  return (GuiLib_RgbToPixelColor(
+     GuiLib_AccentuateRgbColor(GuiLib_PixelToRgbColor(PixelColor), Amount)));
+}
+
+//------------------------------------------------------------------------------
+void Ellipse(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius1,
+   GuiConst_INT16U Radius2,
+   GuiConst_INT32S BorderColor,
+   GuiConst_INT32S FillColor,
+   GuiConst_INT8U Q1,
+   GuiConst_INT8U Q2,
+   GuiConst_INT8U Q3,
+   GuiConst_INT8U Q4)
+{
+  GuiConst_INT16S PX, PY;
+  GuiConst_INT16S L1, L2, LP1, LP2, LX, LY;
+  GuiConst_INT16S PX2, PY2;
+  GuiConst_INTCOLOR BColor;
+  GuiConst_INT8U Filling, LFilling, First;
+  GuiConst_INT16S R1, R2;
+  GuiConst_INT32S R22;
+  GuiConst_INT8U Q12, Q34, Q14, Q23, Qfull;
+
+  Filling = (FillColor != GuiLib_NO_COLOR);
+  if (BorderColor == GuiLib_NO_COLOR)
+  {
+    if (!Filling)
+      return;
+    else
+      BColor = (GuiConst_INTCOLOR)FillColor;
+  }
+  else
+    BColor = (GuiConst_INTCOLOR)BorderColor;
+
+  Q12 = (Q1 || Q2);
+  Q34 = (Q3 || Q4);
+  Q14 = (Q1 || Q4);
+  Q23 = (Q2 || Q3);
+  Qfull = Q1 & Q2 & Q3 & Q4;
+  if (!(Q12 || Q34))
+    return;
+
+  if (Radius1 == 0)
+  {
+    if (Qfull)
+      GuiLib_VLine(X, Y - Radius2, Y + Radius2, BColor);
+    else if (Q12)
+      GuiLib_VLine(X, Y, Y + Radius2, BColor);
+    else
+      GuiLib_VLine(X, Y - Radius2, Y, BColor);
+  }
+  else if (Radius2 == 0)
+  {
+    if (Qfull)
+      GuiLib_HLine(X - Radius1, X + Radius1, Y, BColor);
+    else if (Q14)
+      GuiLib_HLine(X, X + Radius1, Y, BColor);
+    else
+      GuiLib_HLine(X - Radius1, X, Y, BColor);
+  }
+  else if (Radius1 == 1)
+  {
+    PY = Radius2 / 2;
+    if (Q23)
+    {
+      if (Q2 && Q3)
+        GuiLib_VLine(X - 1, Y - PY, Y + PY, BColor);
+      else if (Q2)
+        GuiLib_VLine(X - 1, Y, Y + PY, BColor);
+      else
+        GuiLib_VLine(X - 1, Y - PY, Y, BColor);
+    }
+    if (Q34)
+      GuiLib_VLine(X, Y - Radius2, Y - PY - 1, BColor);
+    if (Filling)
+    {
+      if (Q12 && Q34)
+        GuiLib_VLine(X, Y - PY, Y + PY, (GuiConst_INTCOLOR)FillColor);
+      else if (Q12)
+        GuiLib_VLine(X, Y, Y + PY, (GuiConst_INTCOLOR)FillColor);
+      else
+        GuiLib_VLine(X, Y - PY, Y, (GuiConst_INTCOLOR)FillColor);
+    }
+    if (Q12)
+      GuiLib_VLine(X, Y + PY + 1, Y + Radius2, BColor);
+    if (Q14)
+    {
+      if (Q1 && Q4)
+        GuiLib_VLine(X + 1, Y - PY, Y + PY, BColor);
+      else if (Q1)
+        GuiLib_VLine(X + 1, Y, Y + PY, BColor);
+      else
+        GuiLib_VLine(X + 1, Y - PY, Y, BColor);
+    }
+  }
+  else if (Radius2 == 1)
+  {
+    PX = Radius1 / 2;
+    if (Q34)
+    {
+      if (Q3 && Q4)
+        GuiLib_HLine(X - PX, X + PX, Y - 1, BColor);
+      else if (Q4)
+        GuiLib_HLine(X, X + PX, Y - 1, BColor);
+      else
+        GuiLib_HLine(X - PX, X, Y - 1, BColor);
+    }
+    if (Q23)
+      GuiLib_HLine(X - Radius1, X - PX - 1, Y, BColor);
+    if (Filling)
+    {
+      if (Q14 && Q23)
+        GuiLib_HLine(X - PX, X + PX, Y, (GuiConst_INTCOLOR)FillColor);
+      else if (Q14)
+        GuiLib_HLine(X, X + PX, Y, (GuiConst_INTCOLOR)FillColor);
+      else
+        GuiLib_HLine(X - PX, X, Y, (GuiConst_INTCOLOR)FillColor);
+    }
+    if (Q14)
+      GuiLib_HLine(X + PX + 1, X + Radius1, Y, BColor);
+    if (Q12)
+    {
+      if (Q1 && Q2)
+        GuiLib_HLine(X - PX, X + PX, Y + 1, BColor);
+      else if (Q1)
+        GuiLib_HLine(X, X + PX, Y + 1, BColor);
+      else
+        GuiLib_HLine(X - PX, X, Y + 1, BColor);
+    }
+  }
+  else
+  {
+    R1 = Radius1 << 3;
+    R2 = Radius2 << 3;
+
+    if (Radius1 >= Radius2)
+    {
+      R22 = (GuiConst_INT32S)R2 * R2;
+
+      PX = 0;
+      First = 1;
+      for (PY = R2 - 4; PY >= 4; PY -= 8)
+      {
+        PX2 = PX + 8;
+        PX = (GuiConst_INT16S)((R1 * GuiLib_Sqrt((0x00000400 -
+           ((((GuiConst_INT32S)PY * (PY + 3)) << 10) / R22)) << 8)) >> 9) + 1;
+        LY = (PY + 4) >> 3;
+        if (First)
+        {
+          L1 = X - (PX >> 3);
+          L2 = X + (PX >> 3);
+          if (Q12)
+          {
+            if (Q1 && Q2)
+              GuiLib_HLine(L1, L2, Y + LY, BColor);
+            else if (Q1)
+              GuiLib_HLine(X, L2, Y + LY, BColor);
+            else
+              GuiLib_HLine(L1, X, Y + LY, BColor);
+          }
+          if (Q34)
+          {
+            if (Q3 && Q4)
+              GuiLib_HLine(L1, L2, Y - LY, BColor);
+            else if (Q4)
+              GuiLib_HLine(X, L2, Y - LY, BColor);
+            else
+              GuiLib_HLine(L1, X, Y - LY, BColor);
+          }
+          First = 0;
+        }
+        else
+        {
+          LP1 = X - (PX2 >> 3);
+          LP2 = X + (PX2 >> 3);
+          L1 = X - (PX >> 3);
+          L2 = X + (PX >> 3);
+          if (LP1 < L1)
+          {
+            LP1 = L1;
+            LP2 = L2;
+          }
+          LFilling = Filling & (LP2 - LP1 >= 2);
+
+          if (Q12)
+          {
+            if (Q2)
+              GuiLib_HLine(L1, LP1, Y + LY, BColor);
+            if (LFilling)
+            {
+              if (Q1 && Q2)
+                GuiLib_HLine(LP1 + 1, LP2 - 1, Y + LY,
+                   (GuiConst_INTCOLOR)FillColor);
+              else if (Q1)
+                GuiLib_HLine(X, LP2 - 1, Y + LY, (GuiConst_INTCOLOR)FillColor);
+              else
+                GuiLib_HLine(LP1 + 1, X, Y + LY, (GuiConst_INTCOLOR)FillColor);
+            }
+            if (Q1)
+              GuiLib_HLine(LP2, L2, Y + LY, BColor);
+          }
+          if (Q34)
+          {
+            if (Q3)
+              GuiLib_HLine(L1, LP1, Y - LY, BColor);
+            if (LFilling)
+            {
+              if (Q3 && Q4)
+                GuiLib_HLine(LP1 + 1, LP2 - 1, Y - LY,
+                   (GuiConst_INTCOLOR)FillColor);
+              else if (Q4)
+                GuiLib_HLine(X, LP2 - 1, Y - LY, (GuiConst_INTCOLOR)FillColor);
+              else
+                GuiLib_HLine(LP1 + 1, X, Y - LY, (GuiConst_INTCOLOR)FillColor);
+            }
+            if (Q4)
+              GuiLib_HLine(LP2, L2, Y - LY, BColor);
+          }
+        }
+      }
+      L1 = (PX + 8) >> 3;
+      if (L1 > Radius1)
+        L1 = Radius1;
+
+      if (Q23)
+        GuiLib_HLine(X - Radius1, X - L1, Y, BColor);
+      if (Filling & (L1 >= 1))
+      {
+        if (Q14 && Q23)
+          GuiLib_HLine(X - L1 + 1, X + L1 - 1, Y, (GuiConst_INTCOLOR)FillColor);
+        else if (Q14)
+          GuiLib_HLine(X, X + L1 - 1, Y, (GuiConst_INTCOLOR)FillColor);
+        else
+          GuiLib_HLine(X - L1 + 1, X, Y, (GuiConst_INTCOLOR)FillColor);
+      }
+      if (Q14)
+        GuiLib_HLine(X + L1, X + Radius1, Y, BColor);
+    }
+    else
+    {
+      R22 = (GuiConst_INT32S)R1 * R1;
+
+      PY = 0;
+      First = 1;
+      for (PX = R1 - 4; PX >= 4; PX -= 8)
+      {
+        PY2 = PY + 8;
+        PY = (GuiConst_INT16S)((R2 * GuiLib_Sqrt((0x00000400 -
+           ((((GuiConst_INT32S)PX * (PX + 3)) << 10) / R22)) << 8)) >> 9) + 1;
+        LX = (PX + 4) >> 3;
+        if (First)
+        {
+          L1 = Y - (PY >> 3);
+          L2 = Y + (PY >> 3);
+          if (Q14)
+          {
+            if (Q1 && Q4)
+              GuiLib_VLine(X + LX, L1, L2, BColor);
+            else if (Q1)
+              GuiLib_VLine(X + LX, Y, L2, BColor);
+            else
+              GuiLib_VLine(X + LX, L1, Y, BColor);
+          }
+          if (Q23)
+          {
+            if (Q2 && Q3)
+              GuiLib_VLine(X - LX, L1, L2, BColor);
+            else if (Q2)
+              GuiLib_VLine(X - LX, Y, L2, BColor);
+            else
+              GuiLib_VLine(X - LX, L1, Y, BColor);
+          }
+          First = 0;
+        }
+        else
+        {
+          LP1 = Y - (PY2 >> 3);
+          LP2 = Y + (PY2 >> 3);
+          L1 = Y - (PY >> 3);
+          L2 = Y + (PY >> 3);
+          if (LP1 < L1)
+          {
+            LP1 = L1;
+            LP2 = L2;
+          }
+          LFilling = Filling & (LP2 - LP1 >= 2);
+
+          if (Q14)
+          {
+            if (Q4)
+              GuiLib_VLine(X + LX, L1, LP1, BColor);
+            if (LFilling)
+            {
+              if (Q1 && Q4)
+                GuiLib_VLine(X + LX, LP1 + 1, LP2 - 1,
+                   (GuiConst_INTCOLOR)FillColor);
+              else if (Q1)
+                GuiLib_VLine(X + LX, Y, LP2 - 1, (GuiConst_INTCOLOR)FillColor);
+              else
+                GuiLib_VLine(X + LX, LP1 + 1, Y, (GuiConst_INTCOLOR)FillColor);
+            }
+            if (Q1)
+              GuiLib_VLine(X + LX, LP2, L2, BColor);
+          }
+          if (Q23)
+          {
+            if (Q3)
+              GuiLib_VLine(X - LX, L1, LP1, BColor);
+            if (LFilling)
+            {
+              if (Q2 && Q3)
+                GuiLib_VLine(X - LX, LP1 + 1, LP2 - 1,
+                   (GuiConst_INTCOLOR)FillColor);
+              else if (Q2)
+                GuiLib_VLine(X - LX, Y, LP2 - 1, (GuiConst_INTCOLOR)FillColor);
+              else
+                GuiLib_VLine(X - LX, LP1 + 1, Y, (GuiConst_INTCOLOR)FillColor);
+            }
+            if (Q2)
+              GuiLib_VLine(X - LX, LP2, L2, BColor);
+          }
+        }
+      }
+      L1 = (PY + 8) >> 3;
+      if (L1 > Radius2)
+        L1 = Radius2;
+
+      if (Q34)
+        GuiLib_VLine(X, Y - Radius2, Y - L1, BColor);
+      if (Filling & (L1 >= 1))
+      {
+        if (Q12 && Q34)
+          GuiLib_VLine(X, Y - L1 + 1, Y + L1 - 1, (GuiConst_INTCOLOR)FillColor);
+        else if (Q12)
+          GuiLib_VLine(X, Y, Y + L1 - 1, (GuiConst_INTCOLOR)FillColor);
+        else
+          GuiLib_VLine(X, Y - L1 + 1, Y, (GuiConst_INTCOLOR)FillColor);
+      }
+      if (Q12)
+        GuiLib_VLine(X, Y + L1, Y + Radius2, BColor);
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+void Circle(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius,
+   GuiConst_INTCOLOR Color,
+   GuiConst_INT8U S0,
+   GuiConst_INT8U S1,
+   GuiConst_INT8U S2,
+   GuiConst_INT8U S3,
+   GuiConst_INT8U S4,
+   GuiConst_INT8U S5,
+   GuiConst_INT8U S6,
+   GuiConst_INT8U S7,
+   GuiConst_INT8U IF)
+{
+  GuiConst_INT16S PX, PY, PX2;
+  GuiConst_INT16S L1, L2, LP1, LP2, LX, LY, LX2;
+  GuiConst_INT8U First;
+  GuiConst_INT16S R;
+  GuiConst_INT32S R2;
+
+  if (!(S0 || S1 || S2 || S3 || S4 || S5 || S6 || S7))
+    return;
+  if (Radius == 0)
+    return;
+
+  if (Radius == 1)
+  {
+    if (S7 || S0)
+      GuiLib_Dot(X + 1, Y, Color);
+    if (S1 || S2)
+      GuiLib_Dot(X, Y + 1, Color);
+    if (S3 || S4)
+      GuiLib_Dot(X - 1, Y, Color);
+    if (S5 || S6)
+      GuiLib_Dot(X, Y - 1, Color);
+  }
+  else
+  {
+    R = Radius << 3;
+    R2 = (GuiConst_INT32S)R * R;
+    First = 1;
+    PX = 0;
+
+    for (PY = R - 4; PY >= R / 2; PY -= 8)
+    {
+      PX2 = PX + 8;
+      PX = (GuiConst_INT16S)((R * GuiLib_Sqrt((0x00000400 -
+         ((((GuiConst_INT32S)PY * (PY + 3)) << 10) / R2)) << 8)) >> 9) + 1;
+      LX2 = (PX2 + 4) >> 3;
+      LX = (PX + 4) >> 3;
+      LY = (PY + 4) >> 3;
+      if (First)
+      {
+        if (S1 || S2)
+        {
+          if (S1)
+            L2 = X + LX;
+          else
+            L2 = X;
+          if (S2)
+            L1 = X - LX;
+          else
+            L1 = X;
+          GuiLib_HLine(L1, L2, Y + LY, Color);
+          if (IF)
+            GuiLib_HLine(L1, L2, Y + LY - 1, Color);
+        }
+        if (S5 || S6)
+        {
+          if (S5)
+            L1 = X - LX;
+          else
+            L1 = X;
+          if (S6)
+            L2 = X + LX;
+          else
+            L2 = X;
+          GuiLib_HLine(L1, L2, Y - LY, Color);
+          if (IF)
+            GuiLib_HLine(L1, L2, Y - LY +1, Color);
+        }
+
+        if (S3 || S4)
+        {
+          if (S3)
+            L2 = Y + LX;
+          else
+            L2 = Y;
+          if (S4)
+            L1 = Y - LX;
+          else
+            L1 = Y;
+          GuiLib_VLine(X - LY, L1, L2, Color);
+          if (IF)
+            GuiLib_VLine(X - LY + 1, L1, L2, Color);
+        }
+        if (S7 || S0)
+        {
+          if (S7)
+            L1 = Y - LX;
+          else
+            L1 = Y;
+          if (S0)
+            L2 = Y + LX;
+          else
+            L2 = Y;
+          GuiLib_VLine(X + LY, L1, L2, Color);
+          if (IF)
+            GuiLib_VLine(X + LY - 1, L1, L2, Color);
+        }
+
+        First = 0;
+      }
+      else if (LX < LY)
+      {
+        LP1 = X - LX2;
+        LP2 = X + LX2;
+        L1 = X - LX;
+        L2 = X + LX;
+
+        if (S1)
+        {
+          GuiLib_HLine(LP2, L2, Y + LY, Color);
+          if (IF)
+            GuiLib_HLine(LP2, L2, Y + LY - 1, Color);
+        }
+        if (S2)
+        {
+          GuiLib_HLine(L1, LP1, Y + LY, Color);
+          if (IF)
+            GuiLib_HLine(L1, LP1, Y + LY - 1, Color);
+        }
+
+        if (S5)
+        {
+          GuiLib_HLine(L1, LP1, Y - LY, Color);
+          if (IF)
+            GuiLib_HLine(L1, LP1, Y - LY + 1, Color);
+        }
+        if (S6)
+        {
+          GuiLib_HLine(LP2, L2, Y - LY, Color);
+          if (IF)
+            GuiLib_HLine(LP2, L2, Y - LY + 1, Color);
+        }
+
+        LP1 = Y - LX2;
+        LP2 = Y + LX2;
+        L1 = Y - LX;
+        L2 = Y + LX;
+
+        if (S7)
+        {
+          GuiLib_VLine(X + LY, L1, LP1, Color);
+          if (IF)
+            GuiLib_VLine(X + LY - 1, L1, LP1, Color);
+        }
+        if (S0)
+        {
+          GuiLib_VLine(X + LY, LP2, L2, Color);
+          if (IF)
+            GuiLib_VLine(X + LY - 1, LP2, L2, Color);
+        }
+
+        if (S3)
+        {
+          GuiLib_VLine(X - LY, LP2, L2, Color);
+          if (IF)
+            GuiLib_VLine(X - LY + 1, LP2, L2, Color);
+        }
+        if (S4)
+        {
+          GuiLib_VLine(X - LY, L1, LP1, Color);
+          if (IF)
+            GuiLib_VLine(X - LY + 1, L1, LP1, Color);
+        }
+      }
+      else
+      {
+        if (S0)
+        {
+          GuiLib_Dot(X + LY, Y + LX2, Color);
+          if (IF)
+            GuiLib_Dot(X + LY - 1, Y + LX2, Color);
+        }
+        if (S1)
+        {
+          GuiLib_Dot(X + LX2, Y + LY, Color);
+          if (IF)
+            GuiLib_Dot(X + LX2, Y + LY - 1, Color);
+        }
+        if (S2)
+        {
+          GuiLib_Dot(X - LX2, Y + LY, Color);
+          if (IF)
+            GuiLib_Dot(X - LX2, Y + LY - 1, Color);
+        }
+        if (S3)
+        {
+          GuiLib_Dot(X - LY, Y + LX2, Color);
+          if (IF)
+            GuiLib_Dot(X - LY + 1, Y + LX2, Color);
+        }
+        if (S4)
+        {
+          GuiLib_Dot(X - LY, Y - LX2, Color);
+          if (IF)
+            GuiLib_Dot(X - LY + 1, Y - LX2, Color);
+        }
+        if (S5)
+        {
+          GuiLib_Dot(X - LX2, Y - LY, Color);
+          if (IF)
+            GuiLib_Dot(X - LX2, Y - LY + 1, Color);
+        }
+        if (S6)
+        {
+          GuiLib_Dot(X + LX2, Y - LY, Color);
+          if (IF)
+            GuiLib_Dot(X + LX2, Y - LY + 1, Color);
+        }
+        if (S7)
+        {
+          GuiLib_Dot(X + LY, Y - LX2, Color);
+          if (IF)
+            GuiLib_Dot(X + LY - 1, Y - LX2, Color);
+        }
+
+        break;
+      }
+    }
+
+    if (S7 || S0)
+      GuiLib_Dot(X + Radius, Y, Color);
+    if (S3 || S4)
+      GuiLib_Dot(X - Radius, Y, Color);
+  }
+}
+
+//------------------------------------------------------------------------------
+void FilledCircle(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius,
+   GuiConst_INTCOLOR Color)
+{
+  GuiConst_INT16S PX, PY, PX2;
+  GuiConst_INT16S LX, LY, LXY, LX2;
+  GuiConst_INT16S R;
+  GuiConst_INT32S R2;
+
+  if (Radius == 0)
+    return;
+
+  if (Radius == 1)
+  {
+    GuiLib_Dot(X, Y - 1, Color);
+    GuiLib_HLine(X - 1, X + 1, Y, Color);
+    GuiLib_Dot(X, Y + 1, Color);
+  }
+  else
+  {
+    R = Radius << 3;
+    R2 = (GuiConst_INT32S)R * R;
+    LXY = (707 * (GuiConst_INT32S)Radius) / 1000;
+    PX = 0;
+    LY = 0;
+
+    for (PY = R - 4; PY >= R / 2; PY -= 8)
+    {
+      PX2 = PX + 8;
+      PX = (GuiConst_INT16S)((R * GuiLib_Sqrt((0x00000400 -
+         ((((GuiConst_INT32S)PY * (PY + 3)) << 10) / R2)) << 8)) >> 9) + 1;
+      LX2 = (PX2 + 4) >> 3;
+      LX = (PX + 4) >> 3;
+      LY = (PY + 4) >> 3;
+
+      if (LX < LY)
+      {
+        GuiLib_HLine(X - LX, X + LX, Y + LY, Color);
+        GuiLib_HLine(X - LX, X + LX, Y - LY, Color);
+
+        if (LX > LXY)
+          LX = LXY;
+        GuiLib_VLine(X - LY, Y - LX, Y + LX, Color);
+        GuiLib_VLine(X + LY, Y - LX, Y + LX, Color);
+      }
+      else
+      {
+        GuiLib_HLine(X - LX2, X + LX2, Y - LY, Color);
+        GuiLib_HLine(X - LX2, X + LX2, Y + LY, Color);
+        GuiLib_VLine(X - LY, Y - LX2, Y + LX2, Color);
+        GuiLib_VLine(X + LY, Y - LX2, Y + LX2, Color);
+
+        break;
+      }
+    }
+    GuiLib_FillBox(X - LY + 1, Y - LY + 1, X + LY - 1, Y + LY - 1, Color);
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Circle(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius,
+   GuiConst_INT32S BorderColor,
+   GuiConst_INT32S FillColor)
+{
+  Ellipse(X, Y, Radius, Radius, BorderColor, FillColor, 1, 1, 1, 1);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Ellipse(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius1,
+   GuiConst_INT16U Radius2,
+   GuiConst_INT32S BorderColor,
+   GuiConst_INT32S FillColor)
+{
+  Ellipse(X, Y, Radius1, Radius2, BorderColor, FillColor, 1, 1, 1, 1);
+}
+
+//==============================================================================
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+//------------------------------------------------------------------------------
+void GuiLib_ResetClipping(void)
+{
+  sgl.ClippingTotal = 0;
+  SetClipping(
+     0, 0, GuiConst_DISPLAY_WIDTH_HW - 1, GuiConst_DISPLAY_HEIGHT_HW - 1);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_SetClipping(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  sgl.ClippingTotal = ((X1 > X2) || (Y1 > Y2));
+
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+  OrderCoord(&X1, &X2);
+  OrderCoord(&Y1, &Y2);
+
+  SetClipping(X1, Y1, X2, Y2);
+}
+#endif
+
+//------------------------------------------------------------------------------
+void GuiLib_ResetDisplayRepaint(void)
+{
+  GuiConst_INT16S LineNo;
+
+  if (!sgl.BaseLayerDrawing)
+    return;
+
+  for (LineNo = 0; LineNo < GuiConst_BYTE_LINES; LineNo++)
+  {
+    GuiLib_DisplayRepaint[LineNo].ByteEnd = -1;
+    #ifdef GuiConst_VNC_REMOTE_SUPPORT_ON
+    GuiLib_VncRepaint[LineNo].ByteEnd = -1;
+    #endif
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_MarkDisplayBoxRepaint(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  if (!sgl.BaseLayerDrawing)
+    return;
+
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+  OrderCoord(&X1, &X2);
+  OrderCoord(&Y1, &Y2);
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (CheckRect (&X1, &Y1, &X2, &Y2))
+#endif
+    MarkDisplayBoxRepaint(X1, Y1, X2, Y2);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_ClearDisplay(void)
+{
+  ClearDisplay();
+  MarkDisplayBoxRepaint(
+     0, 0, GuiConst_DISPLAY_WIDTH_HW - 1, GuiConst_DISPLAY_HEIGHT_HW - 1);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Dot(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INTCOLOR Color)
+{
+  GuiLib_COORD_ADJUST(X, Y);
+  GuiLib_COLOR_ADJUST(Color);
+
+  MakeDot(X, Y, Color);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INTCOLOR GuiLib_GetDot(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y)
+{
+  GuiLib_COORD_ADJUST(X, Y);
+
+  return (ReadDot(X, Y));
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Line(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color)
+{
+  GuiConst_INT16S X, Y;
+  GuiConst_INT16S PX1, PY1, PX2, PY2;
+  GuiConst_INT16S RemCoord;
+  GuiConst_INT32S Slope;
+  GuiConst_INT16S Offset, NewOffset;
+  GuiConst_INT16U OffsetCnt;
+  GuiConst_INT16S OffsetDir;
+
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+  GuiLib_COLOR_ADJUST(Color);
+
+  if (X1 == X2)
+  {
+    OrderCoord(&Y1, &Y2);
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    if (CheckRect (&X1, &Y1, &X2, &Y2))
+#endif
+    {
+      VertLine(X1, Y1, Y2, Color);
+      MarkDisplayBoxRepaint(X1, Y1, X1, Y2);
+    }
+  }
+  else if (Y1 == Y2)
+  {
+    OrderCoord(&X1, &X2);
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    if (CheckRect (&X1, &Y1, &X2, &Y2))
+#endif
+    {
+      HorzLine(X1, X2, Y1, Color);
+      MarkDisplayBoxRepaint(X1, Y1, X2, Y1);
+    }
+  }
+  else
+  {
+    Slope = labs ((10000 * (GuiConst_INT32S) (Y2 - Y1))) /
+       labs ((GuiConst_INT32S) (X2 - X1));
+
+    if (Slope <= 10000)
+    {
+      if (OrderCoord(&X1, &X2))
+        SwapCoord(&Y1, &Y2);
+
+      X = 0;
+      Offset = 0;
+      RemCoord = 0;
+      OffsetCnt = 0;
+      if (Y1 < Y2)
+        OffsetDir = 1;
+      else
+        OffsetDir = -1;
+      do
+      {
+        NewOffset = (((GuiConst_INT32S) X * Slope) + 5000) / 10000;
+        if (((X > 0) && (NewOffset != Offset)) || (X > X2 - X1))
+        {
+          PX1 = X1 + RemCoord;
+          PY1 = Y1 + OffsetDir * Offset;
+          PX2 = PX1 + OffsetCnt - 1;
+          if (OffsetCnt == 1)
+            MakeDot(PX1, PY1, Color);
+          else
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+               if (CheckRect (&PX1, &PY1, &PX2, &PY1))
+#endif
+          {
+            HorzLine(PX1, PX2, PY1, Color);
+            MarkDisplayBoxRepaint(PX1, PY1, PX2, PY1);
+          }
+          OffsetCnt = 1;
+          RemCoord = X;
+
+          if (X > X2 - X1)
+            return;
+        }
+        else
+          OffsetCnt++;
+
+        Offset = NewOffset;
+        X++;
+      }
+      while (1);
+    }
+    else
+    {
+      if (OrderCoord(&Y1, &Y2))
+        SwapCoord(&X1, &X2);
+
+      Y = 0;
+      Offset = 0;
+      RemCoord = 0;
+      OffsetCnt = 0;
+      if (X1 < X2)
+        OffsetDir = 1;
+      else
+        OffsetDir = -1;
+      do
+      {
+        NewOffset = (((GuiConst_INT32S) Y * 10000) + (Slope / 2)) / Slope;
+        if (((Y > 0) && (NewOffset != Offset)) || (Y > Y2 - Y1))
+        {
+          PX1 = X1 + OffsetDir * Offset;
+          PY1 = Y1 + RemCoord;
+          PY2 = PY1 + OffsetCnt - 1;
+          if (OffsetCnt == 1)
+            MakeDot(PX1, PY1, Color);
+          else
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+               if (CheckRect (&PX1, &PY1, &PX1, &PY2))
+#endif
+          {
+            VertLine(PX1, PY1, PY2, Color);
+            MarkDisplayBoxRepaint(PX1, PY1, PX1, PY2);
+          }
+          OffsetCnt = 1;
+          RemCoord = Y;
+
+          if (Y > Y2 - Y1)
+            return;
+        }
+        else
+          OffsetCnt++;
+
+        Offset = NewOffset;
+        Y++;
+      }
+      while (1);
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_LinePattern(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INT8U LinePattern,
+   GuiConst_INTCOLOR Color)
+{
+  GuiConst_INT16S X,Y;
+  GuiConst_INT32S Slope;
+  GuiConst_INT16S Offset;
+  GuiConst_INT8U MaskTemp;
+  GuiConst_INT8U MaskCtr = 0;
+  GuiConst_INT8U Vertical;
+
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+  GuiLib_COLOR_ADJUST(Color);
+
+  Vertical = (X1 == X2);
+  if (Vertical)
+    Offset = 0;
+  else
+    Slope = labs ((10000 * (GuiConst_INT32S)(Y2 - Y1))) /
+            labs ((GuiConst_INT32S)(X2 - X1));
+
+  if (Vertical || (Slope > 10000))
+  {
+    if (OrderCoord(&Y1, &Y2))
+      SwapCoord(&X1, &X2);
+
+    for (Y = 0; Y <= Y2 - Y1; Y++)
+    {
+      if (MaskCtr == 0 )
+      {
+        MaskCtr = 8;
+        MaskTemp = LinePattern;
+      }
+      if (MaskTemp & 0x01)
+      {
+        if (!Vertical)
+          Offset = (((GuiConst_INT32S) Y * 10000) + (Slope / 2)) / Slope;
+        if (X1 < X2)
+          MakeDot(X1 + Offset, Y1 + Y, Color);
+        else
+          MakeDot(X1 - Offset, Y1 + Y, Color);
+      }
+      MaskTemp >>= 1;
+      MaskCtr--;
+    }
+  }
+  else
+  {
+    if (OrderCoord(&X1, &X2))
+      SwapCoord(&Y1, &Y2);
+
+    for (X = 0; X <= X2 - X1; X++)
+    {
+      if (MaskCtr == 0 )
+      {
+        MaskCtr = 8;
+        MaskTemp = LinePattern;
+      }
+
+      if (MaskTemp & 0x01)
+      {
+        Offset = (((GuiConst_INT32S) X * Slope) + 5000) / 10000;
+        if (Y1 < Y2)
+          MakeDot(X1 + X, Y1 + Offset, Color);
+        else
+          MakeDot(X1 + X, Y1 - Offset, Color);
+      }
+      MaskTemp >>= 1;
+      MaskCtr--;
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_HLine(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y,
+   GuiConst_INTCOLOR Color)
+{
+  GuiLib_Line(X1, Y, X2, Y, Color);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_VLine(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color)
+{
+  GuiLib_Line(X, Y1, X, Y2, Color);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Box(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color)
+{
+  GuiConst_INT16S X1C;
+  GuiConst_INT16S Y1C;
+  GuiConst_INT16S X2C;
+  GuiConst_INT16S Y2C;
+
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+  GuiLib_COLOR_ADJUST(Color);
+
+  OrderCoord(&X1, &X2);
+  OrderCoord(&Y1, &Y2);
+
+  X1C = X1;
+  Y1C = Y1;
+  X2C = X2;
+  Y2C = Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (CheckRect(&X1C, &Y1C, &X2C, &Y2C))
+#endif
+  {
+    MarkDisplayBoxRepaint(X1C, Y1C, X2C, Y2C);
+    X1C = X1;
+    Y1C = Y1;
+    X2C = X1;
+    Y2C = Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    if (CheckRect(&X1C, &Y1C, &X1C, &Y2C))
+#endif
+      VertLine(X1C, Y1C, Y2C, Color);
+    X1C = X2;
+    Y1C = Y1;
+    X2C = X2;
+    Y2C = Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    if (CheckRect(&X2C, &Y1C, &X2C, &Y2C))
+#endif
+      VertLine(X2C, Y1C, Y2C, Color);
+    if (X2 - X1 > 1)
+    {
+      X1C = X1 + 1;
+      Y1C = Y1;
+      X2C = X2 - 1;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      if (CheckRect(&X1C, &Y1C, &X2C, &Y1C))
+#endif
+        HorzLine(X1C, X2C, Y1C, Color);
+      X1C = X1 + 1;
+      Y1C = Y2;
+      X2C = X2 - 1;
+      Y2C = Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      if (CheckRect(&X1C, &Y2C, &X2C, &Y2C))
+#endif
+        HorzLine(X1C, X2C, Y2C, Color);
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_FillBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color)
+{
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+  GuiLib_COLOR_ADJUST(Color);
+
+  OrderCoord(&X1, &X2);
+  OrderCoord(&Y1, &Y2);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (CheckRect (&X1, &Y1, &X2, &Y2))
+#endif
+  {
+    MarkDisplayBoxRepaint(X1, Y1, X2, Y2);
+#ifdef GuiConst_BYTE_HORIZONTAL
+    while (Y1 <= Y2)
+    {
+      HorzLine(X1, X2, Y1, Color);
+      Y1++;
+    }
+#else
+    while (X1 <= X2)
+    {
+      VertLine(X1, Y1, Y2, Color);
+      X1++;
+    }
+#endif
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_BorderBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR BorderColor,
+   GuiConst_INTCOLOR FillColor)
+{
+  GuiLib_Box(X1, Y1, X2, Y2, BorderColor);
+  OrderCoord(&X1, &X2);
+  OrderCoord(&Y1, &Y2);
+  if (((X2 - X1) >= 2) && ((Y2 - Y1) >= 2))
+    GuiLib_FillBox(X1+1, Y1+1, X2-1, Y2-1, FillColor);
+}
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+//------------------------------------------------------------------------------
+static void ReadBitmapSizes(
+   GuiConst_INT16U BitmapIndex)
+{
+#ifndef GuiConst_REMOTE_BITMAP_DATA
+   GuiConst_INT8U PrefixRom * PixelDataPtr;
+#endif
+
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+  if (BitmapIndex != sgl.CurRemoteBitmap)
+  {
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex],
+       (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex + 1] -
+       (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex],
+       sgl.GuiLib_RemoteBitmapBuffer);
+    sgl.CurRemoteBitmap = BitmapIndex;
+  }
+  sgl.BitmapSizeX = (GuiConst_INT16S)sgl.GuiLib_RemoteBitmapBuffer[0] +
+                    256*(GuiConst_INT16S)sgl.GuiLib_RemoteBitmapBuffer[1];
+  sgl.BitmapSizeY = (GuiConst_INT16S)sgl.GuiLib_RemoteBitmapBuffer[2] +
+                    256*(GuiConst_INT16S)sgl.GuiLib_RemoteBitmapBuffer[3];
+#else
+  PixelDataPtr =
+     (GuiConst_INT8U PrefixRom *)ReadWord(GuiStruct_BitmapPtrList[BitmapIndex]);
+
+  sgl.BitmapSizeX = (GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+  sgl.BitmapSizeX += 256*(GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+  sgl.BitmapSizeY = (GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+  sgl.BitmapSizeY += 256*(GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_ShowBitmap(
+   GuiConst_INT16U BitmapIndex,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT32S TranspColor)
+{
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+  if (BitmapIndex != sgl.CurRemoteBitmap)
+  {
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex],
+       (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex + 1] -
+       (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex],
+       sgl.GuiLib_RemoteBitmapBuffer);
+    sgl.CurRemoteBitmap = BitmapIndex;
+  }
+  ShowBitmapArea(&sgl.GuiLib_RemoteBitmapBuffer[0],
+     X, Y, 0, 0, 0, 0, TranspColor, GuiLib_FULL_BITMAP);
+#else
+  ShowBitmapArea(
+     (GuiConst_INT8U PrefixRom *)ReadWord(GuiStruct_BitmapPtrList[BitmapIndex]),
+      X, Y, 0, 0, 0, 0, TranspColor, GuiLib_FULL_BITMAP);
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_ShowBitmapAt(
+   GuiConst_INT8U * BitmapPtr,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT32S TranspColor)
+{
+  ShowBitmapArea(
+     BitmapPtr, X, Y, 0, 0, 0, 0, TranspColor, GuiLib_FULL_BITMAP);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_ShowBitmapArea(
+   GuiConst_INT16U BitmapIndex,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S AX1,
+   GuiConst_INT16S AY1,
+   GuiConst_INT16S AX2,
+   GuiConst_INT16S AY2,
+   GuiConst_INT32S TranspColor)
+{
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+  if (BitmapIndex != sgl.CurRemoteBitmap)
+  {
+    GuiLib_RemoteDataReadBlock(
+     (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex],
+     (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex + 1] -
+     (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[BitmapIndex],
+     sgl.GuiLib_RemoteBitmapBuffer);
+  sgl.CurRemoteBitmap = BitmapIndex;
+  }
+  ShowBitmapArea(&sgl.GuiLib_RemoteBitmapBuffer[0],
+   X, Y, AX1, AY1, AX2, AY2, TranspColor, GuiLib_AREA_BITMAP);
+#else
+  ShowBitmapArea(
+     (GuiConst_INT8U PrefixRom *)ReadWord(GuiStruct_BitmapPtrList[BitmapIndex]),
+      X, Y, AX1, AY1, AX2, AY2, TranspColor, GuiLib_AREA_BITMAP);
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_ShowBitmapAreaAt(
+   GuiConst_INT8U * BitmapPtr,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S AX1,
+   GuiConst_INT16S AY1,
+   GuiConst_INT16S AX2,
+   GuiConst_INT16S AY2,
+   GuiConst_INT32S TranspColor)
+{
+  ShowBitmapArea(
+     BitmapPtr, X, Y, AX1, AY1, AX2, AY2, TranspColor, GuiLib_AREA_BITMAP);
+}
+#endif
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiGraph16.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiGraph16.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,972 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*        12/15/16 bit (4096/32K/64K color) graphics primitives library     */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/*     GuiLib.c include file - do NOT reference it in your linker setup     */
+/*                                                                          */
+/* ************************************************************************ */
+
+//------------------------------------------------------------------------------
+#define WANT_DOUBLE_BUFFERING // Also in GuiDisplay.c, GuiLib.c - *** all three must match ***
+#ifdef WANT_DOUBLE_BUFFERING
+//DisplayBufUnion GuiLib_DisplayBuf;
+// Experiment - what if we put GuiLib_DisplayBuf at a specific location - but not the display?
+//DisplayBufUnion GuiLib_DisplayBuf __attribute__((at(0xA00BB810))); // Result of second DMBoard->display->allocateFramebuffer() call
+DisplayBufUnion GuiLib_DisplayBuf __attribute__((at(0xA00BCFE0))); // Result of second DMBoard->display->allocateFramebuffer() call (as of 26 Oct 2016)
+#else // Want to write direct to the display
+//DisplayBufUnion GuiLib_DisplayBuf __attribute__((at(0xA0000008))); // Result of first DMBoard->display->allocateFramebuffer() call
+DisplayBufUnion GuiLib_DisplayBuf __attribute__((at(0xA00017D8))); // Result of first DMBoard->display->allocateFramebuffer() call (as of 26 Oct 2016)
+                                                                   // Must be same as FRAME_ADDRESS in GuiDisplay.h
+#endif
+
+//==============================================================================
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+//------------------------------------------------------------------------------
+static void SetClipping(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  if (X1 < 0)
+    X1 = 0;
+  if (Y1 < 0)
+    Y1 = 0;
+  if (X2 > (GuiConst_INT16S)sgl.CurLayerWidth - 1)
+    X2 = (GuiConst_INT16S)sgl.CurLayerWidth - 1;
+  if (Y2 > (GuiConst_INT16S)sgl.CurLayerHeight - 1)
+    Y2 = (GuiConst_INT16S)sgl.CurLayerHeight - 1;
+
+  sgl.ClippingX1 = X1;
+  sgl.ClippingY1 = Y1;
+  sgl.ClippingX2 = X2;
+  sgl.ClippingY2 = Y2;
+}
+#endif
+
+//------------------------------------------------------------------------------
+static void MarkDisplayBoxRepaint(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  if (!sgl.BaseLayerDrawing)
+    return;
+
+  while (Y1 <= Y2)
+  {
+    if ((GuiLib_DisplayRepaint[Y1].ByteEnd == -1) ||
+        (X1 < GuiLib_DisplayRepaint[Y1].ByteBegin))
+      GuiLib_DisplayRepaint[Y1].ByteBegin = X1;
+    if (X2 > GuiLib_DisplayRepaint[Y1].ByteEnd)
+      GuiLib_DisplayRepaint[Y1].ByteEnd = X2;
+    #ifdef GuiConst_VNC_REMOTE_SUPPORT_ON
+    if ((GuiLib_VncRepaint[Y1].ByteEnd == -1) ||
+        (X1 < GuiLib_VncRepaint[Y1].ByteBegin))
+      GuiLib_VncRepaint[Y1].ByteBegin = X1;
+    if (X2 > GuiLib_VncRepaint[Y1].ByteEnd)
+      GuiLib_VncRepaint[Y1].ByteEnd = X2;
+    #endif
+
+    Y1++;
+  }
+}
+
+//------------------------------------------------------------------------------
+static void ClearDisplay(void)
+{
+  int X,Y;
+  GuiConst_INT16U *PixelPtr;
+
+  PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr;
+  for (Y = 0; Y < (GuiConst_INT16S)sgl.CurLayerHeight; Y++)
+    for (X = 0; X < (GuiConst_INT16S)sgl.CurLayerWidth; X++)
+    {
+      *PixelPtr = GuiConst_PIXEL_OFF;
+      PixelPtr++;
+    }
+}
+
+//------------------------------------------------------------------------------
+static void MakeDot(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INTCOLOR Color)
+{
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (CheckRect (&X, &Y, &X, &Y))
+#endif
+  {
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+    *((GuiConst_INT16U*)sgl.CurLayerBufPtr +
+      (GuiConst_INT32U)Y * sgl.CurLayerWidth + (GuiConst_INT32U)X) =
+       (Color << 8 ) | (Color >> 8);
+#else
+    *((GuiConst_INT16U*)sgl.CurLayerBufPtr +
+      (GuiConst_INT32U)Y * sgl.CurLayerWidth + (GuiConst_INT32U)X) = Color;
+#endif
+    MarkDisplayBoxRepaint(X, Y, X, Y);
+  }
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INTCOLOR ReadDot(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y)
+{
+  GuiConst_INT16U *PixelPtr;
+
+  if ((X < 0) || (X >= (GuiConst_INT16S)sgl.CurLayerWidth) ||
+      (Y < 0) || (Y >= (GuiConst_INT16S)sgl.CurLayerHeight))
+    return (0);
+  else
+  {
+    PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr +
+               (GuiConst_INT32U)Y * sgl.CurLayerWidth + (GuiConst_INT32U)X;
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+    return ((*PixelPtr << 8) | (*PixelPtr >> 8));
+#else
+    return (*PixelPtr);
+#endif
+  }
+}
+
+//------------------------------------------------------------------------------
+static void HorzLine(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y,
+   GuiConst_INTCOLOR Color)
+{
+  GuiConst_INT16U *PixelPtr;
+
+  PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr +
+             (GuiConst_INT32U)Y * sgl.CurLayerWidth + (GuiConst_INT32U)X1;
+  while (X1 <= X2)
+  {
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+    *PixelPtr = (Color << 8) | (Color >> 8);
+#else
+    *PixelPtr = Color;
+#endif
+    PixelPtr++;
+    X1++;
+  }
+}
+
+//------------------------------------------------------------------------------
+static void VertLine(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color)
+{
+  GuiConst_INT16U *PixelPtr;
+
+  PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr +
+             (GuiConst_INT32U)Y1 * sgl.CurLayerWidth + (GuiConst_INT32U)X;
+  while (Y1 <= Y2)
+  {
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+    *PixelPtr = (Color << 8) | (Color >> 8);
+#else
+    *PixelPtr = Color;
+#endif
+    Y1++;
+    PixelPtr += sgl.CurLayerWidth;
+  }
+}
+
+//------------------------------------------------------------------------------
+static void DrawChar(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiLib_FontRecPtr Font,
+#ifdef GuiConst_REMOTE_FONT_DATA
+   GuiConst_INT32S CharNdx,
+#else
+   GuiConst_INT8U PrefixRom * CharPtr,
+#endif
+   GuiConst_INTCOLOR Color,
+   GuiConst_INT8U FullPixelFill)
+{
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U *PixelData;
+  GuiConst_INT8U * CharPtr;
+#else
+  GuiConst_INT8U PrefixRom *PixelData;
+#endif
+  GuiConst_INT8U PixelPattern;
+  GuiConst_INT16S N;
+  GuiConst_INT8U YHeight;
+  GuiConst_INT8U PixN;
+  GuiConst_INT16S Bx;
+  GuiConst_INT16S PY, Y2;
+  GuiConst_INT8U PixelLineSize;
+#ifndef GuiConst_FONT_UNCOMPRESSED
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U *LineCtrl;
+#else
+  GuiConst_INT8U PrefixRom *LineCtrl;
+#endif
+  GuiConst_INT8U LineCtrlByte;
+  GuiConst_INT16S LineRepeat;
+  GuiConst_INT16S M;
+  GuiConst_INT8U Finished;
+  GuiConst_INT16U *PixelPtr;
+#endif
+#ifdef GuiConst_ADV_FONTS_ON
+  GuiConst_INT8U PixelShade, PixelShadeInv;
+  GuiConst_INTCOLOR PixelColor;
+  GuiConst_INT8U PixelR, PixelG, PixelB;
+  GuiConst_INT8U ColorR, ColorG, ColorB;
+#endif
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (sgl.ClippingTotal)
+    return;
+#endif
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+  if (CharNdx != sgl.CurRemoteFont)
+  {
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[CharNdx],
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[CharNdx + 1] -
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[CharNdx],
+       sgl.GuiLib_RemoteFontBuffer);
+    sgl.CurRemoteFont = CharNdx;
+  }
+  CharPtr = &sgl.GuiLib_RemoteFontBuffer[0];
+#endif
+
+  if ((*(CharPtr + GuiLib_CHR_XWIDTH_OFS) == 0) ||
+      (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) == 0))
+    return;
+
+  GuiLib_COORD_ADJUST(X, Y);
+  GuiLib_COLOR_ADJUST(Color);
+
+  gl.Dummy1_8U = Font->LineSize;   // To avoid compiler warning
+#ifdef GuiConst_FONT_UNCOMPRESSED
+  PixelLineSize = Font->LineSize;
+  #ifdef GuiConst_ROTATED_90DEGREE
+  YHeight = Font->XSize;
+  #else
+  YHeight = Font->YSize;
+  #endif
+  PixelData = CharPtr + GuiLib_CHR_LINECTRL_OFS + 1;
+#else
+  #ifdef GuiConst_ROTATED_90DEGREE
+  PixelLineSize = *(CharPtr + GuiLib_CHR_YHEIGHT_OFS);
+  YHeight = *(CharPtr + GuiLib_CHR_XWIDTH_OFS);
+  #else
+  PixelLineSize = *(CharPtr + GuiLib_CHR_XWIDTH_OFS);
+  YHeight = *(CharPtr + GuiLib_CHR_YHEIGHT_OFS);
+  #endif
+  LineCtrl = CharPtr + GuiLib_CHR_LINECTRL_OFS;
+  N = (YHeight + 7) / 8;
+  if (N == 0)
+    N++;
+  PixelData = LineCtrl + N;
+#ifdef GuiConst_ADV_FONTS_ON
+  if (Font->ColorDepth == 4)
+    PixelLineSize = (PixelLineSize + 1) / 2;
+  else
+#endif
+    PixelLineSize = (PixelLineSize + 7) / 8;
+#endif
+
+#ifdef GuiConst_FONT_UNCOMPRESSED
+
+#ifdef GuiConst_ROTATED_OFF
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= Font->XSize - 1;
+  Y -= Font->YSize - 1;
+    #else
+  X -= Font->XSize - 1;
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  Y -= Font->YSize - 1;
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_90DEGREE_RIGHT
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= Font->YSize - 1;
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= Font->YSize - 1;
+  Y -= Font->XSize - 1;
+    #else
+  Y -= Font->XSize - 1;
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_UPSIDEDOWN
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifndef GuiConst_MIRRORED_VERTICALLY
+  Y -= Font->YSize - 1;
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= Font->XSize - 1;
+    #else
+  X -= Font->XSize - 1;
+  Y -= Font->YSize - 1;
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_90DEGREE_LEFT
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  Y -= Font->XSize - 1;
+    #else
+  X -= Font->YSize - 1;
+  Y -= Font->XSize - 1;
+    #endif
+  #else
+    #ifndef GuiConst_MIRRORED_VERTICALLY
+  X -= Font->YSize - 1;
+    #endif
+  #endif
+#endif
+
+#else
+
+#ifdef GuiConst_ROTATED_OFF
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+  Y -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+    #else
+  X -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+  Y += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+  Y -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+    #else
+  X += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+  Y += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_90DEGREE_RIGHT
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+  Y += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+    #else
+  X += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+  Y += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+  Y -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+    #else
+  X += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+  Y -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_UPSIDEDOWN
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+  Y += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+    #else
+  X += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+  Y -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+  Y += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+    #else
+  X -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+  Y -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_90DEGREE_LEFT
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+  Y -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+    #else
+  X -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+  Y -= (*(CharPtr + GuiLib_CHR_XWIDTH_OFS) +
+        *(CharPtr + GuiLib_CHR_XLEFT_OFS) - 1);
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X += *(CharPtr + GuiLib_CHR_YTOP_OFS);
+  Y += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+    #else
+  X -= (*(CharPtr + GuiLib_CHR_YHEIGHT_OFS) +
+        *(CharPtr + GuiLib_CHR_YTOP_OFS) - 1);
+  Y += *(CharPtr + GuiLib_CHR_XLEFT_OFS);
+    #endif
+  #endif
+#endif
+
+#endif
+
+#ifdef GuiConst_ADV_FONTS_ON
+  ColorR = (Color & GuiConst_COLORCODING_R_MASK) >>
+     GuiConst_COLORCODING_R_START;
+  ColorG = (Color & GuiConst_COLORCODING_G_MASK) >>
+     GuiConst_COLORCODING_G_START;
+  ColorB = (Color & GuiConst_COLORCODING_B_MASK) >>
+     GuiConst_COLORCODING_B_START;
+#endif
+
+  PY = 0;
+#ifndef GuiConst_FONT_UNCOMPRESSED
+  LineCtrlByte = *LineCtrl;
+  LineCtrlByte >>= 1;
+  LineCtrl++;
+#endif
+  while (PY < YHeight)
+  {
+#ifndef GuiConst_FONT_UNCOMPRESSED
+    LineRepeat = 0;
+    do
+    {
+      LineRepeat++;
+      Finished = (((LineCtrlByte & 0x01) == 0) || (PY >= YHeight - 1));
+
+      PY++;
+      if (PY % 8 == 7)
+      {
+        LineCtrlByte = *LineCtrl;
+        LineCtrl++;
+      }
+      else
+        LineCtrlByte >>= 1;
+    }
+    while (!Finished);
+#endif
+
+#ifdef GuiConst_ADV_FONTS_ON
+    if (Font->ColorDepth == 4)
+      Bx = X;
+    else
+#endif
+      Bx = X;
+
+    for (N = 0; N < PixelLineSize; N++)
+    {
+      PixelPattern = *PixelData;
+
+      if (PixelPattern != 0)
+      {
+#ifdef GuiConst_ADV_FONTS_ON
+        if (Font->ColorDepth == 4)
+        {
+          for (PixN = 0; PixN < 2; PixN++)
+          {
+            if (PixN == 0)
+              PixelShade = PixelPattern & 0x0F;
+            else
+              PixelShade = (PixelPattern & 0xF0) >> 4;
+            if (FullPixelFill && (PixelShade > 0))
+              PixelShade = 0x0F;
+            if (
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+                (Bx + PixN >= sgl.ClippingX1) && (Bx + PixN <= sgl.ClippingX2) &&
+#endif
+               (PixelShade > 0))
+            {
+              PixelShadeInv = 15 - PixelShade;
+              Y2 = Y;
+              PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr +
+                         (GuiConst_INT32U)Y2 * sgl.CurLayerWidth +
+                         (GuiConst_INT32U)(Bx + PixN);
+#ifndef GuiConst_FONT_UNCOMPRESSED
+              for (M = 0; M < LineRepeat; M++)
+#endif
+              {
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+                if ((Y2 >= sgl.ClippingY1) && (Y2 <= sgl.ClippingY2))
+#endif
+                {
+                  if (PixelShade == 0x0F)
+                  {
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+                    *PixelPtr = (Color << 8) | (Color >> 8);
+#else
+                    *PixelPtr = Color;
+#endif
+                  }
+                  else
+                  {
+                    PixelColor = *PixelPtr;
+                    PixelR = (PixelColor & GuiConst_COLORCODING_R_MASK) >>
+                       GuiConst_COLORCODING_R_START;
+                    PixelG = (PixelColor & GuiConst_COLORCODING_G_MASK) >>
+                       GuiConst_COLORCODING_G_START;
+                    PixelB = (PixelColor & GuiConst_COLORCODING_B_MASK) >>
+                       GuiConst_COLORCODING_B_START;
+                    PixelR = (PixelShade * ColorR + PixelShadeInv * PixelR) / 15;
+                    PixelG = (PixelShade * ColorG + PixelShadeInv * PixelG) / 15;
+                    PixelB = (PixelShade * ColorB + PixelShadeInv * PixelB) / 15;
+                    PixelColor = (PixelR << GuiConst_COLORCODING_R_START) |
+                                (PixelG << GuiConst_COLORCODING_G_START) |
+                                (PixelB << GuiConst_COLORCODING_B_START);
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+                    *PixelPtr = ((PixelColor>>8)&0xFF) | ((PixelColor<<8)&0xFF00);
+#else
+                    *PixelPtr = PixelColor;
+#endif
+                  }
+                }
+                Y2++;
+                PixelPtr += sgl.CurLayerWidth;
+              }
+            }
+          }
+        }
+        else
+  #endif
+        {
+          for (PixN = 0; PixN < 8; PixN++)
+          {
+            if (
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+                (Bx + PixN >= sgl.ClippingX1) && (Bx + PixN <= sgl.ClippingX2) &&
+#endif
+               ((PixelPattern >> (7-PixN)) & 0x01))
+            {
+              Y2 = Y;
+              PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr +
+                         (GuiConst_INT32U)Y2 * sgl.CurLayerWidth +
+                         (GuiConst_INT32U)(Bx + PixN);
+#ifndef GuiConst_FONT_UNCOMPRESSED
+              for (M = 0; M < LineRepeat; M++)
+#endif
+              {
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+                if ((Y2 >= sgl.ClippingY1) && (Y2 <= sgl.ClippingY2))
+#endif
+                {
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+                  *PixelPtr = (Color << 8) | (Color >> 8);
+#else
+                  *PixelPtr = Color;
+#endif
+                }
+                Y2++;
+                PixelPtr += sgl.CurLayerWidth;
+              }
+            }
+          }
+        }
+      }
+
+      PixelData++;
+#ifdef GuiConst_ADV_FONTS_ON
+      if (Font->ColorDepth == 4)
+        Bx+=2;
+      else
+#endif
+        Bx+=8;
+    }
+
+#ifdef GuiConst_FONT_UNCOMPRESSED
+    PY++;
+    Y++;
+#else
+    Y += LineRepeat;
+#endif
+  }
+}
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+
+#define RenderPix                                                              \
+{                                                                              \
+  *PixelPtr2 = *PixelDataPtr2;                                                 \
+  PixelPtr2++;                                                                 \
+  *PixelPtr2 = *(PixelDataPtr2 + 1);                                           \
+  PixelPtr2++;                                                                 \
+}
+
+//------------------------------------------------------------------------------
+static void ShowBitmapArea(
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+   GuiConst_INT8U * PixelDataPtr,
+#else
+   GuiConst_INT8U PrefixRom * PixelDataPtr,
+#endif
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INT32S TranspColor,
+   GuiConst_INT8U BitmapType)
+{
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+   GuiConst_INT8U * PixelDataPtr2;
+#else
+   GuiConst_INT8U PrefixRom * PixelDataPtr2;
+#endif
+  GuiConst_INT16S SizeX;
+  GuiConst_INT16S SizeY;
+  GuiConst_INT8U *PixelPtr1, *PixelPtr2;
+  GuiConst_INT16S I;
+  GuiConst_INT16U Cnt, CntPix;
+  GuiConst_INT8U Diff;
+#ifdef GuiConst_BITMAP_COMPRESSED
+  GuiConst_INT16U Offset;
+  GuiConst_INT16S DX;
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+   GuiConst_INT8U * RemPixelDataPtr;
+   GuiConst_INT8U * LinePixelDataPtr;
+#else
+   GuiConst_INT8U PrefixRom * RemPixelDataPtr;
+   GuiConst_INT8U PrefixRom * LinePixelDataPtr;
+#endif
+#endif
+
+#ifdef GuiConst_DISPLAY_BIG_ENDIAN
+  TranspColor = ((TranspColor&0xFF)<<8)|((TranspColor&0xFF00)>>8);
+#endif
+
+  SizeX = (GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+  SizeX += 256*(GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+  SizeY = (GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+  SizeY += 256*(GuiConst_INT16S)*PixelDataPtr;
+  PixelDataPtr++;
+
+#ifdef GuiConst_ROTATED_90DEGREE
+  sgl.BitmapWriteX2 = X + SizeY - 1;
+  sgl.BitmapWriteY2 = Y + SizeX - 1;
+#else
+  sgl.BitmapWriteX2 = X + SizeX - 1;
+  sgl.BitmapWriteY2 = Y + SizeY - 1;
+#endif
+
+  GuiLib_COORD_ADJUST(X, Y);
+  GuiLib_COLOR_ADJUST_TRANSP(TranspColor);
+
+  if (BitmapType == GuiLib_AREA_BITMAP)
+  {
+    GuiLib_COORD_ADJUST(X1, Y1);
+    GuiLib_COORD_ADJUST(X2, Y2);
+    OrderCoord(&X1, &X2);
+    OrderCoord(&Y1, &Y2);
+  }
+
+#ifdef GuiConst_ROTATED_OFF
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= SizeX - 1;
+  Y -= SizeY - 1;
+    #else
+  X -= SizeX - 1;
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  Y -= SizeY - 1;
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_90DEGREE_RIGHT
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= SizeX - 1;
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= SizeX - 1;
+  Y -= SizeY - 1;
+    #else
+  Y -= SizeY - 1;
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_UPSIDEDOWN
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifndef GuiConst_MIRRORED_VERTICALLY
+  Y -= SizeY - 1;
+    #endif
+  #else
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  X -= SizeX - 1;
+    #else
+  X -= SizeX - 1;
+  Y -= SizeY - 1;
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_ROTATED_90DEGREE_LEFT
+  #ifdef GuiConst_MIRRORED_HORIZONTALLY
+    #ifdef GuiConst_MIRRORED_VERTICALLY
+  Y -= SizeY - 1;
+    #else
+  X -= SizeX - 1;
+  Y -= SizeY - 1;
+    #endif
+  #else
+    #ifndef GuiConst_MIRRORED_VERTICALLY
+  X -= SizeX - 1;
+    #endif
+  #endif
+#endif
+
+  if (BitmapType == GuiLib_AREA_BITMAP)
+  {
+    if ((X1 > X + SizeX - 1) || (X2 < X) || (Y1 > Y + SizeY - 1) || (Y2 < Y))
+      return;
+    if (X1 < X)
+      X1 = X;
+    if (X2 > X + SizeX - 1)
+      X2 = X + SizeX - 1;
+    if (Y1 < Y)
+      Y1 = Y;
+    if (Y2 > Y + SizeY - 1)
+      Y2 = Y + SizeY - 1;
+  }
+  else
+  {
+    X2 = X + SizeX - 1;
+    Y2 = Y + SizeY - 1;
+
+    OrderCoord(&X, &X2);
+    OrderCoord(&Y, &Y2);
+
+    X1 = X;
+    Y1 = Y;
+  }
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (!CheckRect(&X1, &Y1, &X2, &Y2))
+    return;
+#endif
+
+  MarkDisplayBoxRepaint(X1, Y1, X2, Y2);   // Before changing Y1
+
+#ifdef GuiConst_BITMAP_COMPRESSED
+  while (Y < Y1)
+  {
+    Offset = (GuiConst_INT16U)*PixelDataPtr;
+    PixelDataPtr++;
+    Offset += 256 * (GuiConst_INT16U)*PixelDataPtr;
+    PixelDataPtr++;
+    if (Offset != 0)
+    {
+      LinePixelDataPtr = PixelDataPtr;
+      PixelDataPtr += Offset - 2;
+    }
+
+    Y++;
+  }
+  DX = X1 - X;
+#else
+  PixelDataPtr += 2 * (SizeX * (Y1 - Y) + (X1 - X));
+  Diff = 1;
+#endif
+  PixelPtr1 = sgl.CurLayerBufPtr +
+              (GuiConst_INT32U)Y1 * sgl.CurLayerLineSize + (GuiConst_INT32U)(2 * X1);
+  while (Y1 <= Y2)
+  {
+    PixelPtr2 = PixelPtr1;
+
+#ifdef GuiConst_BITMAP_COMPRESSED
+    Offset = (GuiConst_INT16U)*PixelDataPtr;
+    PixelDataPtr++;
+    Offset += 256 * (GuiConst_INT16U)*PixelDataPtr;
+    PixelDataPtr++;
+    if (Offset == 0)
+    {
+      RemPixelDataPtr = PixelDataPtr;
+      PixelDataPtr = LinePixelDataPtr;
+    }
+    else
+      LinePixelDataPtr = PixelDataPtr;
+
+    Cnt = 0;
+    X = DX;
+    while (X > 0)
+    {
+      Diff = *PixelDataPtr;
+      Cnt = Diff & 0x7F;
+      Diff >>= 7;
+      PixelDataPtr++;
+
+      if (X >= Cnt)
+      {
+        if (Diff)
+          PixelDataPtr += 2 * Cnt;
+        else
+          PixelDataPtr += 2;
+        X -= Cnt;
+        Cnt = 0;
+      }
+      else
+      {
+        if (Diff)
+          PixelDataPtr += 2 * X;
+        Cnt -= X;
+        X = 0;
+      }
+    }
+#endif
+
+    PixelDataPtr2 = PixelDataPtr;
+    for (X = X1; X <= X2; X++)
+    {
+#ifdef GuiConst_BITMAP_COMPRESSED
+      if (Cnt == 0)
+      {
+        Diff = *PixelDataPtr2;
+        Cnt = Diff & 0x7F;
+        Diff >>= 7;
+        PixelDataPtr2++;
+      }
+      CntPix = GuiLib_GET_MIN(Cnt, X2 - X + 1);
+      Cnt -= CntPix;
+#else
+      CntPix = X2 - X + 1;
+#endif
+      X += CntPix - 1;
+
+      if (Diff)
+      {
+        if (TranspColor == -1)
+        {
+          CopyBytes(PixelPtr2, PixelDataPtr2, 2 * CntPix);
+          PixelPtr2 += 2 * CntPix;
+          PixelDataPtr2 += 2 * CntPix;
+        }
+        else
+        {
+          while (CntPix > 0)
+          {
+            if (*(GuiConst_INT16U*)PixelDataPtr2 ==
+               (GuiConst_INT16U)TranspColor)
+              PixelPtr2 += 2;
+            else
+            {
+              RenderPix;
+            }
+
+            CntPix--;
+            PixelDataPtr2 += 2;
+          }
+        }
+      }
+#ifdef GuiConst_BITMAP_COMPRESSED
+      else
+      {
+        if ((TranspColor == -1) ||
+           (*(GuiConst_INT16U*)PixelDataPtr2 != (GuiConst_INT16U)TranspColor))
+        {
+          while (CntPix > 0)
+          {
+            RenderPix;
+            CntPix--;
+          }
+        }
+        else
+          PixelPtr2 += 2 * CntPix;
+
+        PixelDataPtr2 += 2;
+      }
+
+      if ((X > X2) && Diff)
+        PixelDataPtr2 += 2 * (X - X2);
+      Cnt = 0;
+#endif
+    }
+
+#ifdef GuiConst_BITMAP_COMPRESSED
+    if (Offset == 0)
+      PixelDataPtr = RemPixelDataPtr;
+    else
+      PixelDataPtr = LinePixelDataPtr + Offset - 2;
+#else
+    PixelDataPtr += 2 * SizeX;
+#endif
+
+    Y1++;
+    PixelPtr1 += sgl.CurLayerLineSize;
+  }
+}
+#endif
+
+//==============================================================================
+
+//------------------------------------------------------------------------------
+void GuiLib_InvertBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  GuiConst_INT16S X;
+  GuiConst_INT16U *PixelPtr;
+  GuiConst_INT32U DeltaLineSize;
+
+  GuiLib_COORD_ADJUST(X1, Y1);
+  GuiLib_COORD_ADJUST(X2, Y2);
+
+  OrderCoord(&X1, &X2);
+  OrderCoord(&Y1, &Y2);
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (CheckRect (&X1, &Y1, &X2, &Y2))
+#endif
+  {
+    MarkDisplayBoxRepaint(X1, Y1, X2, Y2);
+
+    PixelPtr = (GuiConst_INT16U*)sgl.CurLayerBufPtr +
+               (GuiConst_INT32U)Y1 * sgl.CurLayerWidth + (GuiConst_INT32U)X1;
+    DeltaLineSize = sgl.CurLayerWidth - (GuiConst_INT32U)(X2 - X1 + 1);
+    while (Y1 <= Y2)
+    {
+      for (X = X1; X <= X2; X++)
+      {
+        *PixelPtr = ~*PixelPtr;
+        PixelPtr++;
+      }
+      Y1++;
+      PixelPtr += DeltaLineSize;
+    }
+  }
+}
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiItems.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiItems.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,5704 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/*     GuiLib.c include file - do NOT reference it in your linker setup     */
+/*                                                                          */
+/* ************************************************************************ */
+
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+static GuiConst_INT8U GetItemByte(
+   GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
+{
+  GuiConst_INT8U D;
+#ifdef GuiConst_AVRGCC_COMPILER
+  D = ReadBytePtr(*ItemDataPtrPtr);
+#else
+#ifdef GuiConst_AVR_COMPILER_FLASH_RAM
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+#else
+#ifdef GuiConst_ICC_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr;
+  ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+#else
+  D = **ItemDataPtrPtr;
+#endif
+#endif
+#endif
+#endif
+  (*ItemDataPtrPtr)++;
+  return (D);
+}
+//------------------------------------------------------------------------------
+static GuiConst_INT16S GetItemWord(
+   GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
+{
+  GuiConst_INT16U D;
+
+#ifdef GuiConst_AVRGCC_COMPILER
+  D = ReadBytePtr(*ItemDataPtrPtr);
+  (*ItemDataPtrPtr)++;
+  D += 0x0100 * (GuiConst_INT16U)ReadBytePtr(*ItemDataPtrPtr);
+#else
+#ifdef GuiConst_AVR_COMPILER_FLASH_RAM
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x0100 * (*ItemFlashPtr);
+#else
+#ifdef GuiConst_ICC_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x0100 * (*ItemFlashPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr;
+  ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x0100 * (*ItemFlashPtr);
+#else
+  D = **ItemDataPtrPtr;
+  (*ItemDataPtrPtr)++;
+  D += 0x0100 * (GuiConst_INT16U)**ItemDataPtrPtr;
+#endif
+#endif
+#endif
+#endif
+  (*ItemDataPtrPtr)++;
+  return ((GuiConst_INT16S) D);
+}
+//------------------------------------------------------------------------------
+#ifdef GuiLib_COLOR_BYTESIZE_3
+static GuiConst_INT32S GetItemTriple(
+   GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
+{
+  GuiConst_INT32U D;
+
+#ifdef GuiConst_AVRGCC_COMPILER
+  D = ReadBytePtr(*ItemDataPtrPtr);
+  (*ItemDataPtrPtr)++;
+  D += 0x00000100 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
+  (*ItemDataPtrPtr)++;
+  D += 0x00010000 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
+#else
+#ifdef GuiConst_AVR_COMPILER_FLASH_RAM
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00000100 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00010000 * (*ItemFlashPtr);
+#else
+#ifdef GuiConst_ICC_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00000100 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00010000 * (*ItemFlashPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr;
+  ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00000100 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00010000 * (*ItemFlashPtr);
+#else
+  D = **ItemDataPtrPtr;
+  (*ItemDataPtrPtr)++;
+  D += 0x00000100 * (GuiConst_INT32U)**ItemDataPtrPtr;
+  (*ItemDataPtrPtr)++;
+  D += 0x00010000 * (GuiConst_INT32U)**ItemDataPtrPtr;
+#endif
+#endif
+#endif
+#endif
+  (*ItemDataPtrPtr)++;
+  return ((GuiConst_INT32S) D);
+}
+#endif
+
+#ifdef GuiLib_GETITEMLONG
+//------------------------------------------------------------------------------
+static GuiConst_INT32S GetItemLong(
+   GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr)
+{
+  GuiConst_INT32U D;
+
+#ifdef GuiConst_AVRGCC_COMPILER
+  D = ReadBytePtr(*ItemDataPtrPtr);
+  (*ItemDataPtrPtr)++;
+  D += 0x00000100 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
+  (*ItemDataPtrPtr)++;
+  D += 0x00010000 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
+  (*ItemDataPtrPtr)++;
+  D += 0x01000000 * (GuiConst_INT32U)ReadBytePtr(*ItemDataPtrPtr);
+#else
+#ifdef GuiConst_AVR_COMPILER_FLASH_RAM
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00000100 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00010000 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x01000000 * (*ItemFlashPtr);
+#else
+#ifdef GuiConst_ICC_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr =
+     (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00000100 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00010000 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x01000000 * (*ItemFlashPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+  GuiConst_INT8U PrefixRom * ItemFlashPtr;
+  ItemFlashPtr = (GuiConst_INT8U PrefixRom *)*ItemDataPtrPtr;
+  D = *ItemFlashPtr;
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00000100 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x00010000 * (*ItemFlashPtr);
+  (*ItemDataPtrPtr)++;
+  ItemFlashPtr++;
+  D += 0x01000000 * (*ItemFlashPtr);
+#else
+  D = **ItemDataPtrPtr;
+  (*ItemDataPtrPtr)++;
+  D += 0x00000100 * (GuiConst_INT32U)**ItemDataPtrPtr;
+  (*ItemDataPtrPtr)++;
+  D += 0x00010000 * (GuiConst_INT32U)**ItemDataPtrPtr;
+  (*ItemDataPtrPtr)++;
+  D += 0x01000000 * (GuiConst_INT32U)**ItemDataPtrPtr;
+#endif
+#endif
+#endif
+#endif
+  (*ItemDataPtrPtr)++;
+  return ((GuiConst_INT32S) D);
+}
+#endif
+
+//------------------------------------------------------------------------------
+#ifdef GuiLib_COLOR_BYTESIZE_1
+#define GetItemColor GetItemByte
+#endif
+#ifdef GuiLib_COLOR_BYTESIZE_2
+#define GetItemColor GetItemWord
+#endif
+#ifdef GuiLib_COLOR_BYTESIZE_3
+#define GetItemColor GetItemTriple
+#endif
+
+//------------------------------------------------------------------------------
+GuiConst_TEXT PrefixGeneric *GetItemTextPtr(GuiConst_INT8U index)
+{
+#ifndef GuiConst_REMOTE_TEXT_DATA
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  GuiConst_INT16U TxtReadSize;
+#endif
+#endif
+
+  if (index > 2)
+    return NULL;
+
+#ifdef GuiConst_REMOTE_TEXT_DATA
+  sgl.CurItem.TextLength[index] = GetRemoteText(sgl.CurItem.TextIndex[index]);
+  sgl.CurItem.TextPtr[index] = &sgl.GuiLib_RemoteTextBuffer[0];
+
+#else
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+
+  TxtReadSize = sgl.CurItem.TextLength[index] + 1;
+#ifndef GuiConst_CHARMODE_ANSI
+  TxtReadSize *= 2;
+#endif
+
+  GuiLib_RemoteDataReadBlock(sgl.CurItem.TextOffset[index],
+                             TxtReadSize,
+                             (GuiConst_INT8U PrefixGeneric*)&sgl.GuiLib_RemoteStructText);
+  sgl.CurItem.TextPtr[index] = (GuiConst_TEXT PrefixGeneric*)&sgl.GuiLib_RemoteStructText;
+#endif
+#endif // GuiConst_REMOTE_TEXT_DATA
+
+  return sgl.CurItem.TextPtr[index];
+
+
+}
+
+//------------------------------------------------------------------------------
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+#define GuiItem_TEMP_PTR_NEEDED
+#endif
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+#ifndef GuiItem_TEMP_PTR_NEEDED
+#define GuiItem_TEMP_PTR_NEEDED
+#endif
+#endif
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+#ifndef GuiItem_TEMP_PTR_NEEDED
+#define GuiItem_TEMP_PTR_NEEDED
+#endif
+#endif
+
+static void DrawItem(
+   GuiConst_INT8U ColorInvert)
+{
+  GuiConst_INT16U StructToCallIndex;
+  GuiConst_INT32S VarValue;
+  GuiConst_INT16S I, N;
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+  GuiConst_INT8U CheckmarkMode;
+#endif
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+  GuiConst_INT16S RemYMemory;
+#endif
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+  GuiConst_INT8U DisabledGlyphColorInUse;
+  GuiConst_INT8U DisabledTextColorInUse;
+  GuiConst_INT16S CX, CY;
+  GuiConst_INT16S RemX1, RemY1;
+  GuiConst_INT16S GX1, GX2, GY1, GY2;
+  GuiConst_INTCOLOR ButtonColor;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S RemClippingX1, RemClippingY1, RemClippingX2, RemClippingY2;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+#endif
+  GuiConst_INT16U StrLen;
+#ifdef GuiItem_TEMP_PTR_NEEDED
+  TextParRec TempTextPar;
+#endif
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  GuiConst_INT8U IsCursorField;
+  GuiConst_INT8U FoundActiveCursorField;
+#endif
+  GuiConst_INTCOLOR ForeColor;
+  GuiConst_INTCOLOR BackColor;
+  GuiConst_INT8U BackColorTransp;
+  GuiConst_INT32S BackColor2;
+#ifndef GuiConst_CHARMODE_ANSI
+  GuiConst_INT16U P;
+#endif
+  GuiConst_TEXT PrefixGeneric *CharPtr;
+  GuiConst_INT16S X1, X2, Y1, Y2;
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  GuiConst_INT16S CX1, CX2, CY1, CY2;
+  GuiConst_INT16S Y;
+  GuiConst_INT16S SourceLayerIndexNo;
+  GuiConst_INT16S DestLayerIndexNo;
+  GuiConst_INT8U PrefixLocate *DestAddress;
+  GuiConst_INT16U DestLineSize;
+  GuiConst_INT16S DestX;
+  GuiConst_INT16S DestY;
+  GuiConst_INT16U DestWidth;
+  GuiConst_INT16U DestHeight;
+  GuiConst_INT8U PrefixLocate *SourceAddress;
+  GuiConst_INT16U SourceLineSize;
+  GuiConst_INT16S SourceX;
+  GuiConst_INT16S SourceY;
+  GuiConst_INT16U SourceWidth;
+  GuiConst_INT16U SourceHeight;
+  GuiConst_INT32S FilterPars[10];
+#endif
+#ifdef GuiConst_ITEM_STRUCTCOND_INUSE
+  GuiConst_INT8U FirstRound;
+#endif
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+  GuiConst_INT32S TouchSearch;
+  GuiConst_INT32S TouchIndex;
+#endif
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  GuiConst_INT16S found;
+  GuiConst_INT16S PrefixLocate *ScrollPos;
+#endif
+
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+  if (!sgl.InitialDrawing)
+  {
+    sgl.CoordOrigoX = sgl.CurItem.CoordOrigoX;
+    sgl.CoordOrigoY = sgl.CurItem.CoordOrigoY;
+  }
+#endif
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (!sgl.InitialDrawing && sgl.DisplayWriting)
+    GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                       sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif
+
+  SetCurFont(sgl.CurItem.TextPar[0].FontIndex);
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  IsCursorField = (sgl.CursorInUse && (sgl.CurItem.CursorFieldNo >= 0));
+  FoundActiveCursorField =
+     (IsCursorField && (GuiLib_ActiveCursorFieldNo == sgl.CurItem.CursorFieldNo));
+  if (FoundActiveCursorField)
+    sgl.CursorActiveFieldFound = 1;
+#endif
+
+  sgl.AutoRedrawSaveIndex = -1;
+
+  if ((sgl.InitialDrawing) || (sgl.AutoRedrawUpdate == GuiLib_TRUE))
+  {
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    if ((sgl.CurItem.CursorFieldNo >= 0) && (sgl.CursorFieldFound == -1))
+      sgl.CursorFieldFound = sgl.CurItem.CursorFieldNo;
+
+    if (IsCursorField)
+    {
+      sgl.CurItem.CursorFieldLevel++;
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+      if (sgl.NextScrollLineReading)
+      {
+        sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FIELDSCROLLBOX;
+        sgl.CurItem.CursorScrollBoxIndex = sgl.GlobalScrollBoxIndex;
+      }
+      else
+#endif
+        sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FIELDSCROLLBOX;
+
+#ifndef GuiConst_CURSOR_FIELDS_OFF
+      if (!(sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_AUTOREDRAWFIELD))
+        sgl.AutoRedrawSaveIndex = AutoRedraw_InsertCursor(&sgl.CurItem, 0, sgl.DisplayLevel);
+#endif
+    }
+#endif // GuiConst_CURSOR_SUPPORT_ON
+
+    if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_AUTOREDRAWFIELD)
+    {
+      sgl.AutoRedrawSaveIndex = AutoRedraw_Insert(&sgl.CurItem, 0, sgl.DisplayLevel);
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+      if (IsCursorField)
+        AutoRedraw_SetAsCursor(sgl.AutoRedrawSaveIndex);
+#endif // GuiConst_CURSOR_SUPPORT_ON
+    }
+  }
+
+  switch (ColorInvert)
+  {
+    case GuiLib_COL_INVERT_OFF:
+      sgl.SwapColors = 0;
+      break;
+
+    case GuiLib_COL_INVERT_ON:
+      sgl.SwapColors = 1;
+      break;
+
+    case GuiLib_COL_INVERT_IF_CURSOR:
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+      if (FoundActiveCursorField)
+        sgl.SwapColors = 1;
+#else
+      sgl.SwapColors = 0;
+#endif
+      break;
+  }
+  if (sgl.SwapColors)
+  {
+    ForeColor = sgl.CurItem.BarForeColor;
+    BackColor = sgl.CurItem.BarBackColor;
+    BackColorTransp =
+       ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_BARTRANSPARENT) > 0);
+  }
+  else
+  {
+    ForeColor = sgl.CurItem.ForeColor;
+    BackColor = sgl.CurItem.BackColor;
+    BackColorTransp =
+       ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_TRANSPARENT) > 0);
+  }
+
+  sgl.CurItem.Drawn = 0;
+  switch (sgl.CurItem.ItemType)
+  {
+    case GuiLib_ITEM_CLEARAREA:
+      if (sgl.DisplayWriting)
+      {
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        X2 = sgl.CurItem.X2;
+        Y2 = sgl.CurItem.Y2;
+        OrderCoord(&X1, &X2);
+        OrderCoord(&Y1, &Y2);
+        if (!BackColorTransp)
+          GuiLib_FillBox(X1, Y1, X2, Y2, BackColor);
+        UpdateDrawLimits(X1, Y1, X2, Y2);
+      }
+
+      break;
+
+    case GuiLib_ITEM_TEXT:
+      if (sgl.DisplayWriting)
+      {
+        if (sgl.CurItem.TextPar[0].BackBoxSizeX > 0)
+        {
+          DrawBackBox(BackColor, BackColorTransp, 0);
+          UpdateDrawLimits(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2);
+        }
+
+        DRAW_ROM_TEXT(GetItemTextPtr(0),
+                      sgl.CurItem.TextLength[0],
+                      0,
+                      ForeColor,
+                      BackColor,
+                      BackColorTransp);
+
+        UpdateDrawLimits(sgl.FontWriteX1, sgl.FontWriteY1, sgl.FontWriteX2, sgl.FontWriteY2);
+      }
+
+      break;
+
+    case GuiLib_ITEM_TEXTBLOCK:
+      if (sgl.DisplayWriting)
+      {
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+        ScrollPos = TextBox_Scroll_GetPosRec(
+            sgl.CurItem.CompPars.CompTextBox.ScrollIndex);
+
+        if (ScrollPos != NULL)
+          sgl.CurItem.CompPars.CompTextBox.ScrollPos = *ScrollPos;
+#endif
+        DRAW_ROM_TEXTBLOCK(GetItemTextPtr(0),
+                           sgl.CurItem.TextLength[0],
+                           0,
+                           ForeColor,
+                           BackColor,
+                           BackColorTransp);
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+        if (ScrollPos != NULL)
+          *ScrollPos = sgl.CurItem.CompPars.CompTextBox.ScrollPos;
+#endif
+
+        UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1, sgl.CurItem.X2, sgl.CurItem.Y2);
+#endif
+      }
+
+      break;
+
+    case GuiLib_ITEM_VAR:
+      if (sgl.DisplayWriting)
+      {
+#ifdef GuiConst_DISP_VAR_NOW
+        displayVarNow = 1;
+#endif
+
+        if (sgl.CurItem.TextPar[0].BackBoxSizeX > 0)
+        {
+          DrawBackBox(BackColor, BackColorTransp, 0);
+          UpdateDrawLimits(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2);
+        }
+
+        if (sgl.CurItem.VarPtr != 0)
+        {
+          if (sgl.CurItem.VarType == GuiLib_VAR_STRING)
+          {
+            CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.CurItem.VarPtr;
+#ifdef GuiConst_CHARMODE_ANSI
+            StrLen = strlen(CharPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+            StrLen = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr);
+#else
+            StrLen = GuiLib_UnicodeStrLen(CharPtr);
+#endif
+#endif
+          }
+          else
+          {
+            VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+            StrLen = DataNumStr(VarValue, sgl.CurItem.VarType, 0);
+#ifdef GuiConst_CHARMODE_ANSI
+            CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr;
+#else
+            for (P = 0; P <= StrLen; P++)
+              sgl.VarNumUnicodeTextStr[P] = sgl.VarNumTextStr[P];
+            CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumUnicodeTextStr;
+#endif
+          }
+
+#ifdef GuiConst_CHARMODE_ANSI
+          strcpy(sgl.AnsiTextBuf, CharPtr);
+          DrawText(sgl.AnsiTextBuf,
+                   StrLen,
+                   0,
+                   ForeColor,
+                   BackColor,
+                   BackColorTransp);
+#else
+          GuiLib_UnicodeStrCpy(sgl.UnicodeTextBuf, CharPtr);
+          DrawText(sgl.UnicodeTextBuf,
+                   StrLen,
+                   0,
+                   ForeColor,
+                   BackColor,
+                   BackColorTransp);
+#endif
+        }
+
+#ifdef GuiConst_DISP_VAR_NOW
+        displayVarNow = 0;
+#endif
+
+        UpdateDrawLimits(sgl.FontWriteX1, sgl.FontWriteY1, sgl.FontWriteX2, sgl.FontWriteY2);
+      }
+
+      break;
+
+    case GuiLib_ITEM_VARBLOCK:
+      if (sgl.DisplayWriting)
+      {
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+#ifdef GuiConst_DISP_VAR_NOW
+        displayVarNow = 1;
+#endif
+
+        if (sgl.CurItem.VarPtr != 0)
+        {
+          if (sgl.CurItem.VarType == GuiLib_VAR_STRING)
+          {
+            CharPtr = (GuiConst_TEXT PrefixGeneric *)sgl.CurItem.VarPtr;
+#ifdef GuiConst_CHARMODE_ANSI
+            StrLen = strlen(CharPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+            StrLen = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr);
+#else
+            StrLen = GuiLib_UnicodeStrLen(CharPtr);
+#endif
+#endif
+          }
+          else
+          {
+            VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+            StrLen = DataNumStr(VarValue, sgl.CurItem.VarType, 0);
+#ifdef GuiConst_CHARMODE_ANSI
+            CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr;
+#else
+            for (P = 0; P <= StrLen; P++)
+              sgl.VarNumUnicodeTextStr[P] = sgl.VarNumTextStr[P];
+            CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumUnicodeTextStr;
+#endif
+          }
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+        ScrollPos = TextBox_Scroll_GetPosRec(
+            sgl.CurItem.CompPars.CompTextBox.ScrollIndex);
+
+        if (ScrollPos != NULL)
+          sgl.CurItem.CompPars.CompTextBox.ScrollPos = *ScrollPos;
+#endif
+
+#ifdef GuiConst_CHARMODE_ANSI
+          strcpy(sgl.AnsiTextBuf, CharPtr);
+          DrawTextBlock(sgl.AnsiTextBuf,
+                        StrLen,
+                        0,
+                        ForeColor,
+                        BackColor,
+                        BackColorTransp);
+#else
+          GuiLib_UnicodeStrCpy(sgl.UnicodeTextBuf, CharPtr);
+          DrawTextBlock(sgl.UnicodeTextBuf,
+                        StrLen,
+                        0,
+                        ForeColor,
+                        BackColor,
+                        BackColorTransp);
+#endif
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+        if (ScrollPos != NULL)
+          *ScrollPos = sgl.CurItem.CompPars.CompTextBox.ScrollPos;
+#endif
+
+        }
+
+#ifdef GuiConst_DISP_VAR_NOW
+        displayVarNow = 0;
+#endif
+
+        UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1, sgl.CurItem.X2, sgl.CurItem.Y2);
+#endif
+      }
+
+      break;
+
+    case GuiLib_ITEM_DOT:
+      if (sgl.DisplayWriting)
+      {
+        GuiLib_Dot(sgl.CurItem.X1, sgl.CurItem.Y1, ForeColor);
+        UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1, sgl.CurItem.X1, sgl.CurItem.Y1);
+      }
+
+      break;
+
+    case GuiLib_ITEM_LINE:
+      if (sgl.DisplayWriting)
+      {
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        X2 = sgl.CurItem.X2;
+        Y2 = sgl.CurItem.Y2;
+        if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_PATTERNEDLINE)
+          GuiLib_LinePattern(X1, Y1, X2, Y2, sgl.CurItem.LinePattern, ForeColor);
+        else
+          GuiLib_Line(X1, Y1, X2, Y2, ForeColor);
+        UpdateDrawLimits(X1, Y1, X2, Y2);
+      }
+      break;
+
+    case GuiLib_ITEM_FRAME:
+      if (sgl.DisplayWriting)
+      {
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        X2 = sgl.CurItem.X2;
+        Y2 = sgl.CurItem.Y2;
+        OrderCoord(&X1, &X2);
+        OrderCoord(&Y1, &Y2);
+        if (sgl.CurItem.FrameThickness == 0)
+          N = sgl.ThicknessMemory;
+        else
+          N = sgl.CurItem.FrameThickness;
+        DrawBorderBox(X1, Y1, X2, Y2, ForeColor, BackColor, BackColorTransp, N);
+        UpdateDrawLimits(X1, Y1, X2, Y2);
+      }
+
+      break;
+
+    case GuiLib_ITEM_ROUNDEDFRAME:
+      if (sgl.DisplayWriting)
+      {
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        X2 = sgl.CurItem.X2;
+        Y2 = sgl.CurItem.Y2;
+        OrderCoord(&X1, &X2);
+        OrderCoord(&Y1, &Y2);
+
+        if (BackColorTransp)
+          BackColor2 = GuiLib_NO_COLOR;
+        else
+          BackColor2 = BackColor;
+
+        if (sgl.CurItem.R1 <= 0)
+          DrawBorderBox(
+             X1, Y1, X2, Y2,
+             ForeColor, BackColor, BackColorTransp, 1);
+        else
+        {
+          Ellipse(
+             X1 + sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, BackColor2, 0, 0, 1, 0);
+          if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
+          {
+            GuiLib_HLine(X1 + sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y1, ForeColor);
+            if (!BackColorTransp)
+              GuiLib_FillBox(
+                 X1 + sgl.CurItem.R1, Y1 + 1, X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1,
+                 BackColor);
+          }
+          Ellipse(
+             X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, BackColor2, 0, 0, 0, 1);
+          if (Y2 - Y1 + 1 - 2 * sgl.CurItem.R1 > 0)
+          {
+            GuiLib_VLine(X1, Y1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, ForeColor);
+            if (!BackColorTransp)
+              GuiLib_FillBox(
+                 X1 + 1, Y1 + sgl.CurItem.R1, X2 - 1, Y2 - sgl.CurItem.R1, BackColor);
+            GuiLib_VLine(X2 , Y1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, ForeColor);
+          }
+          Ellipse(
+             X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, BackColor2, 0, 1, 0, 0);
+          if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
+          {
+            if (!BackColorTransp)
+              GuiLib_FillBox(
+                 X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y2 - 1,
+                 BackColor);
+            GuiLib_HLine(X1 + sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y2, ForeColor);
+          }
+          Ellipse(
+             X2 - sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, BackColor2, 1, 0, 0, 0);
+        }
+      }
+      break;
+
+    case GuiLib_ITEM_BLOCK:
+      if (sgl.DisplayWriting)
+      {
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        X2 = sgl.CurItem.X2;
+        Y2 = sgl.CurItem.Y2;
+        OrderCoord(&X1, &X2);
+        OrderCoord(&Y1, &Y2);
+        GuiLib_FillBox(X1, Y1, X2, Y2, ForeColor);
+        UpdateDrawLimits(X1, Y1, X2, Y2);
+      }
+
+      break;
+
+    case GuiLib_ITEM_ROUNDEDBLOCK:
+      if (sgl.DisplayWriting)
+      {
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        X2 = sgl.CurItem.X2;
+        Y2 = sgl.CurItem.Y2;
+        OrderCoord(&X1, &X2);
+        OrderCoord(&Y1, &Y2);
+
+        if (sgl.CurItem.R1 <= 0)
+          GuiLib_FillBox(X1, Y1, X2, Y2, ForeColor);
+        else
+        {
+          Ellipse(
+             X1 + sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, ForeColor, 0, 0, 1, 0);
+          if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
+            GuiLib_FillBox(
+               X1 + sgl.CurItem.R1, Y1, X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1,
+               ForeColor);
+          Ellipse(
+             X2 - sgl.CurItem.R1, Y1 + sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, ForeColor, 0, 0, 0, 1);
+          if (Y2 - Y1 + 1 - 2 * sgl.CurItem.R1 > 0)
+            GuiLib_FillBox(X1, Y1 + sgl.CurItem.R1, X2, Y2 - sgl.CurItem.R1, ForeColor);
+          Ellipse(
+             X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, ForeColor, 0, 1, 0, 0);
+          if (X2 - X1 + 1 - 2 * sgl.CurItem.R1 > 0)
+            GuiLib_FillBox(
+               X1 + sgl.CurItem.R1, Y2 - sgl.CurItem.R1, X2 - sgl.CurItem.R1, Y2,
+               ForeColor);
+          Ellipse(
+             X2 - sgl.CurItem.R1, Y2 - sgl.CurItem.R1, sgl.CurItem.R1, sgl.CurItem.R1,
+             ForeColor, ForeColor, 1, 0, 0, 0);
+        }
+      }
+      break;
+
+    case GuiLib_ITEM_CIRCLE:
+      if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0))
+      {
+        if (BackColorTransp)
+          BackColor2 = GuiLib_NO_COLOR;
+        else
+          BackColor2 = BackColor;
+        if ((sgl.CurItem.FrameThickness == 0xFF) &&
+           !(sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CIRCLE_IF))
+        {
+          Ellipse(sgl.CurItem.X1 + sgl.CurItem.R1,
+                  sgl.CurItem.Y1,
+                  sgl.CurItem.R1,
+                  sgl.CurItem.R1,
+                  ForeColor, BackColor2,
+                  1, 1, 1, 1);
+          UpdateDrawLimits(sgl.CurItem.X1,
+                           sgl.CurItem.Y1 - sgl.CurItem.R1,
+                           sgl.CurItem.X1 + 2 * sgl.CurItem.R1,
+                           sgl.CurItem.Y1 + sgl.CurItem.R1);
+        }
+        else
+        {
+          Circle(sgl.CurItem.X1 + sgl.CurItem.R1,
+                 sgl.CurItem.Y1,
+                 sgl.CurItem.R1,
+                 ForeColor,
+                 sgl.CurItem.FrameThickness & 0x01,
+                 sgl.CurItem.FrameThickness & 0x02,
+                 sgl.CurItem.FrameThickness & 0x04,
+                 sgl.CurItem.FrameThickness & 0x08,
+                 sgl.CurItem.FrameThickness & 0x10,
+                 sgl.CurItem.FrameThickness & 0x20,
+                 sgl.CurItem.FrameThickness & 0x40,
+                 sgl.CurItem.FrameThickness & 0x80,
+                 sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CIRCLE_IF);
+          X1 = sgl.CurItem.X1 + sgl.CurItem.R1;
+          Y1 = sgl.CurItem.Y1;
+          X2 = sgl.CurItem.X1 + sgl.CurItem.R1;
+          Y2 = sgl.CurItem.Y1;
+          if (sgl.CurItem.FrameThickness & 0xC3)
+            X2 += sgl.CurItem.R1;
+          if (sgl.CurItem.FrameThickness & 0x3C)
+            X1 -= sgl.CurItem.R1;
+          if (sgl.CurItem.FrameThickness & 0xF0)
+            Y1 -= sgl.CurItem.R1;
+          if (sgl.CurItem.FrameThickness & 0x0F)
+            Y2 += sgl.CurItem.R1;
+          UpdateDrawLimits(X1, Y1, X2, Y2);
+        }
+      }
+      break;
+
+    case GuiLib_ITEM_QUARTERCIRCLE:
+      if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0))
+      {
+        if (BackColorTransp)
+          BackColor2 = GuiLib_NO_COLOR;
+        else
+          BackColor2 = BackColor;
+
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        Ellipse(X1 + sgl.CurItem.R1,
+                Y1,
+                sgl.CurItem.R1,
+                sgl.CurItem.R1,
+                ForeColor, BackColor2,
+                (sgl.CurItem.FrameThickness == 0),
+                (sgl.CurItem.FrameThickness == 1),
+                (sgl.CurItem.FrameThickness == 2),
+                (sgl.CurItem.FrameThickness == 3));
+
+        switch (sgl.CurItem.FrameThickness)
+        {
+          case 1:
+            X1 += sgl.CurItem.R1;
+            break;
+          case 2:
+            X1 += sgl.CurItem.R1;
+            Y1 += sgl.CurItem.R1;
+            break;
+          case 3:
+            Y1 += sgl.CurItem.R1;
+            break;
+        }
+        UpdateDrawLimits(sgl.CurItem.X1,
+                         sgl.CurItem.Y1,
+                         sgl.CurItem.X1 + sgl.CurItem.R1,
+                         sgl.CurItem.Y1 + sgl.CurItem.R1);
+      }
+      break;
+
+    case GuiLib_ITEM_ELLIPSE:
+      if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0) && (sgl.CurItem.R2 >= 0))
+      {
+        if (BackColorTransp)
+          BackColor2 = GuiLib_NO_COLOR;
+        else
+          BackColor2 = BackColor;
+        Ellipse(sgl.CurItem.X1 + sgl.CurItem.R1,
+                sgl.CurItem.Y1,
+                sgl.CurItem.R1,
+                sgl.CurItem.R2,
+                ForeColor, BackColor2, 1, 1, 1, 1);
+
+        UpdateDrawLimits(sgl.CurItem.X1,
+                         sgl.CurItem.Y1 - sgl.CurItem.R2,
+                         sgl.CurItem.X1 + 2 * sgl.CurItem.R1,
+                         sgl.CurItem.Y1 + sgl.CurItem.R2);
+      }
+      break;
+
+    case GuiLib_ITEM_QUARTERELLIPSE:
+      if (sgl.DisplayWriting && (sgl.CurItem.R1 >= 0) && (sgl.CurItem.R2 >= 0))
+      {
+        if (BackColorTransp)
+          BackColor2 = GuiLib_NO_COLOR;
+        else
+          BackColor2 = BackColor;
+
+        X1 = sgl.CurItem.X1;
+        Y1 = sgl.CurItem.Y1;
+        Ellipse(X1 + sgl.CurItem.R1,
+                Y1,
+                sgl.CurItem.R1,
+                sgl.CurItem.R2,
+                ForeColor, BackColor2,
+                (sgl.CurItem.FrameThickness == 0),
+                (sgl.CurItem.FrameThickness == 1),
+                (sgl.CurItem.FrameThickness == 2),
+                (sgl.CurItem.FrameThickness == 3));
+
+        switch (sgl.CurItem.FrameThickness)
+        {
+          case 1:
+            X1 += sgl.CurItem.R1;
+            break;
+          case 2:
+            X1 += sgl.CurItem.R1;
+            Y1 += sgl.CurItem.R2;
+            break;
+          case 3:
+            Y1 += sgl.CurItem.R2;
+            break;
+        }
+        UpdateDrawLimits(sgl.CurItem.X1,
+                         sgl.CurItem.Y1,
+                         sgl.CurItem.X1 + sgl.CurItem.R1,
+                         sgl.CurItem.Y1 + sgl.CurItem.R2);
+      }
+      break;
+
+    case GuiLib_ITEM_BITMAP:
+    case GuiLib_ITEM_BACKGROUND:
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+      if (sgl.DisplayWriting)
+      {
+        if (sgl.CommonByte6 & 0x02)
+          BackColor2 = sgl.CurItem.CompPars.CompBitmap.TranspColor;
+        else
+          BackColor2 = -1;
+        GuiLib_ShowBitmap(sgl.CurItem.StructToCallIndex,
+                          sgl.CurItem.X1,
+                          sgl.CurItem.Y1,
+                          BackColor2);
+        UpdateDrawLimits(sgl.CurItem.X1, sgl.CurItem.Y1,
+                         sgl.BitmapWriteX2, sgl.BitmapWriteY2);
+      }
+
+      if (sgl.CurItem.ItemType == GuiLib_ITEM_BACKGROUND)
+      {
+        sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].InUse = 1;
+        sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].Index =
+           sgl.CurItem.StructToCallIndex;
+        sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].X = sgl.CurItem.X1;
+        sgl.BackgrBitmapAry[sgl.GlobalBackgrBitmapIndex].Y = sgl.CurItem.Y1;
+        if (sgl.GlobalBackgrBitmapIndex < GuiConst_MAX_BACKGROUND_BITMAPS - 1)
+          sgl.GlobalBackgrBitmapIndex++;
+      }
+#endif
+
+      break;
+
+    case GuiLib_ITEM_ACTIVEAREA:
+      if (sgl.DisplayWriting)
+      {
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+        if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CLIPPING)
+        {
+          sgl.CurItem.ClipRectX1 = sgl.CurItem.X1;
+          sgl.CurItem.ClipRectY1 = sgl.CurItem.Y1;
+          sgl.CurItem.ClipRectX2 = sgl.CurItem.X2;
+          sgl.CurItem.ClipRectY2 = sgl.CurItem.Y2;
+          sgl.ActiveAreaX1 = sgl.CurItem.X1;
+          sgl.ActiveAreaY1 = sgl.CurItem.Y1;
+          sgl.ActiveAreaX2 = sgl.CurItem.X2;
+          sgl.ActiveAreaY2 = sgl.CurItem.Y2;
+          OrderCoord(&sgl.ActiveAreaX1, &sgl.ActiveAreaX2);
+          OrderCoord(&sgl.ActiveAreaY1, &sgl.ActiveAreaY2);
+#ifdef GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+          if (sgl.ActiveAreaX1 < sgl.DisplayActiveAreaX1)
+            sgl.ActiveAreaX1 = sgl.DisplayActiveAreaX1;
+          if (sgl.ActiveAreaY1 < sgl.DisplayActiveAreaY1)
+            sgl.ActiveAreaY1 = sgl.DisplayActiveAreaY1;
+          if (sgl.ActiveAreaX2 > sgl.DisplayActiveAreaX2)
+            sgl.ActiveAreaX2 = sgl.DisplayActiveAreaX2;
+          if (sgl.ActiveAreaY2 > sgl.DisplayActiveAreaY2)
+            sgl.ActiveAreaY2 = sgl.DisplayActiveAreaY2;
+#endif
+          GuiLib_SetClipping(sgl.ActiveAreaX1, sgl.ActiveAreaY1,
+                             sgl.ActiveAreaX2, sgl.ActiveAreaY2);
+        }
+#endif
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+        if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_ACTIVEAREARELCOORD)
+        {
+          sgl.CurItem.ClipRectX1 += sgl.CoordOrigoX;
+          sgl.CurItem.ClipRectY1 += sgl.CoordOrigoY;
+          sgl.CurItem.ClipRectX2 += sgl.CoordOrigoX;
+          sgl.CurItem.ClipRectY2 += sgl.CoordOrigoY;
+        }
+#endif
+#endif
+
+        sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+        sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+        if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_ACTIVEAREARELCOORD)
+        {
+          sgl.CoordOrigoX += sgl.CurItem.X1;
+          sgl.CoordOrigoY += sgl.CurItem.Y1;
+        }
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+        sgl.CurItem.CoordOrigoX = sgl.CoordOrigoX;
+        sgl.CurItem.CoordOrigoY = sgl.CoordOrigoY;
+#endif
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+        sgl.CurItem.ClipRectX1 -= sgl.CoordOrigoX;
+        sgl.CurItem.ClipRectY1 -= sgl.CoordOrigoY;
+        sgl.CurItem.ClipRectX2 -= sgl.CoordOrigoX;
+        sgl.CurItem.ClipRectY2 -= sgl.CoordOrigoY;
+#endif
+#endif
+      }
+      break;
+
+    case GuiLib_ITEM_CLIPRECT:
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      if (sgl.DisplayWriting)
+      {
+        if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CLIPPING)
+        {
+          sgl.CurItem.ClipRectX1 = sgl.CurItem.X1;
+          sgl.CurItem.ClipRectY1 = sgl.CurItem.Y1;
+          sgl.CurItem.ClipRectX2 = sgl.CurItem.X2;
+          sgl.CurItem.ClipRectY2 = sgl.CurItem.Y2;
+        }
+        StartClipping(
+           (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_CLIPPING) != 0);
+      }
+#endif
+      break;
+
+    case GuiLib_ITEM_STRUCTURE:
+    case GuiLib_ITEM_STRUCTARRAY:
+    case GuiLib_ITEM_STRUCTCOND:
+      if (sgl.DisplayWriting && (sgl.CurItem.TextPar[0].BackBoxSizeX > 0))
+      {
+        DrawBackBox(BackColor, BackColorTransp, 0);
+        UpdateDrawLimits(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2);
+      }
+
+      StructToCallIndex = sgl.CurItem.StructToCallIndex;
+      if (sgl.CurItem.ItemType == GuiLib_ITEM_STRUCTARRAY)
+      {
+        if (StructToCallIndex != 0xFFFF)
+        {
+          VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+
+          I = sgl.CurItem.CompPars.StructCall.IndexCount;
+          while (I > 0)
+          {
+            if (ReadWord(GuiStruct_StructNdxList[StructToCallIndex]) ==
+                VarValue)
+              break;
+
+            StructToCallIndex++;
+            I--;
+          }
+          if (I == 0)
+          {
+            if (ReadWord(GuiStruct_StructNdxList[sgl.CurItem.StructToCallIndex]) == 0xFFFF)
+              StructToCallIndex = sgl.CurItem.StructToCallIndex;
+            else
+              StructToCallIndex = 0xFFFF;
+          }
+        }
+      }
+#ifdef GuiConst_ITEM_STRUCTCOND_INUSE
+      else if (sgl.CurItem.ItemType == GuiLib_ITEM_STRUCTCOND)
+      {
+        VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+
+        I = sgl.CurItem.CompPars.StructCall.IndexCount - 1;
+        FirstRound = 1;
+        while (I >= 0)
+        {
+          if ((VarValue >= sgl.CurItem.CompPars.StructCall.IndexFirst[I]) &&
+              (VarValue <= sgl.CurItem.CompPars.StructCall.IndexLast[I]) &&
+              ((sgl.CurItem.CompPars.StructCall.IndexFirst[I] ==
+                sgl.CurItem.CompPars.StructCall.IndexLast[I]) ||
+              !FirstRound))
+          {
+            StructToCallIndex = sgl.CurItem.CompPars.StructCall.CallIndex[I];
+            break;
+          }
+
+          I--;
+
+          if ((I == -1) && FirstRound)
+          {
+            FirstRound = 0;
+            I = sgl.CurItem.CompPars.StructCall.IndexCount - 1;
+          }
+        }
+      }
+#endif
+      DrawSubStruct(StructToCallIndex, ColorInvert, 0);
+      break;
+
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+    case GuiLib_ITEM_TOUCHAREA:
+      TouchIndex = -1;
+      for (TouchSearch = 0; TouchSearch < sgl.TouchAreaCnt; TouchSearch++)
+        if (sgl.TouchAreas[TouchSearch].IndexNo ==
+            sgl.CurItem.CompPars.CompTouch.AreaNo)
+        {
+          TouchIndex = TouchSearch;
+          break;
+        }
+      if (TouchIndex == -1)
+      {
+        TouchIndex = sgl.TouchAreaCnt;
+        sgl.TouchAreaCnt++;
+      }
+      sgl.TouchAreas[TouchIndex].IndexNo = sgl.CurItem.CompPars.CompTouch.AreaNo;
+      sgl.TouchAreas[TouchIndex].X1 = sgl.CurItem.X1;
+      sgl.TouchAreas[TouchIndex].Y1 = sgl.CurItem.Y1;
+      sgl.TouchAreas[TouchIndex].X2 = sgl.CurItem.X2;
+      sgl.TouchAreas[TouchIndex].Y2 = sgl.CurItem.Y2;
+      OrderCoord(&sgl.TouchAreas[TouchIndex].X1, &sgl.TouchAreas[TouchIndex].X2);
+      OrderCoord(&sgl.TouchAreas[TouchIndex].Y1, &sgl.TouchAreas[TouchIndex].Y2);
+
+      break;
+#endif
+
+    case GuiLib_ITEM_POSCALLBACK:
+      for (I = 0; I < GuiConst_POSCALLBACK_CNT; I++)
+        if (sgl.PosCallbacks[I].InUse &&
+           (sgl.PosCallbacks[I].IndexNo == sgl.CurItem.PosCallbackNo) &&
+           (sgl.PosCallbacks[I].PosCallbackFunc != 0))
+        {
+          (*sgl.PosCallbacks[I].PosCallbackFunc)(sgl.CurItem.PosCallbackNo,
+                                                 sgl.CurItem.X1,
+                                                 sgl.CurItem.Y1);
+          break;
+        }
+      break;
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+    case GuiLib_ITEM_SCROLLBOX:
+      break;
+#endif
+
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+    case GuiLib_ITEM_CHECKBOX:
+      PrepareInternalStruct();
+
+      GuiVarCompInt1 = sgl.CurItem.CompPars.CompCheckBox.Size;
+      sgl.Memory.C[0] = ForeColor;
+
+      Y2 = sgl.CurItem.Y1 + sgl.CurItem.CompPars.CompCheckBox.Size - 1;
+      switch (sgl.CurItem.CompPars.CompCheckBox.Style)
+      {
+        case GuiLib_CHECKBOX_FLAT:
+          if (BackColorTransp)
+            DrawSubStruct(GuiStructCOMP_CBFLATTRANSP, 0, 1);
+          else
+            DrawSubStruct(GuiStructCOMP_CBFLAT, 0, 1);
+          break;
+        case GuiLib_CHECKBOX_3D:
+          DrawSubStruct(GuiStructCOMP_CB3D, 0, 1);
+          if (!BackColorTransp)
+            DrawSubStruct(GuiStructCOMP_CB3DINNER, 0, 1);
+          break;
+        case GuiLib_CHECKBOX_ICON:
+          TempTextPar = sgl.CurItem.TextPar[0];
+          SetCurFont(sgl.CurItem.CompPars.CompCheckBox.IconFont);
+          sgl.CurItem.X1 = sgl.CurItem.X1 + sgl.CurItem.CompPars.CompCheckBox.IconOffsetX;
+          sgl.CurItem.Y1 = sgl.CurItem.Y1 + sgl.CurItem.CompPars.CompCheckBox.IconOffsetY;
+          sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
+          sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
+          sgl.CurItem.TextPar[0].BitFlags = 0;
+          sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+          sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+          DrawText(sgl.CurItem.CompPars.CompCheckBox.IconPtr,
+                   1,
+                   0,
+                   ForeColor,
+                   BackColor,
+                   BackColorTransp);
+          Y2 = sgl.FontWriteY2;
+          sgl.CurItem.TextPar[0] = TempTextPar;
+          break;
+        case GuiLib_CHECKBOX_BITMAP:
+          if (sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent)
+            BackColor2 = sgl.CurItem.CompPars.CompCheckBox.BitmapTranspColor;
+          else
+            BackColor2 = -1;
+          GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompCheckBox.BitmapIndex,
+                            sgl.CurItem.X1, sgl.CurItem.Y1,
+                            BackColor2);
+          break;
+      }
+
+      if ((sgl.CurItem.VarPtr != 0) && (sgl.CurItem.VarType != GuiLib_VAR_STRING))
+      {
+        VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+
+        if (VarValue != 0)
+          CheckmarkMode = 1;
+        else if ((sgl.CurItem.CompPars.CompCheckBox.Style == GuiLib_CHECKBOX_NONE) &&
+                 (!BackColorTransp))
+          CheckmarkMode = 2;
+        else
+          CheckmarkMode = 0;
+
+        if (CheckmarkMode > 0)
+        {
+          GuiVarCompInt1 = sgl.CurItem.CompPars.CompCheckBox.Size;
+          if (CheckmarkMode == 1)
+            sgl.Memory.C[0] = sgl.CurItem.CompPars.CompCheckBox.MarkColor;
+          else
+            sgl.Memory.C[0] = BackColor;
+
+          switch (sgl.CurItem.CompPars.CompCheckBox.MarkStyle)
+          {
+            case GuiLib_CHECKBOX_MARK_CHECKED:
+              GuiVarCompInt1 =
+                     (sgl.CurItem.CompPars.CompCheckBox.Size / 2) -
+                     ((sgl.CurItem.CompPars.CompCheckBox.Size - 6) / 6);
+              GuiVarCompInt2 =
+                     (sgl.CurItem.CompPars.CompCheckBox.Size /
+                      2) +
+                     ((sgl.CurItem.CompPars.CompCheckBox.Size - 8) / 6);
+              GuiVarCompInt3 = GuiVarCompInt2 -
+                     ((sgl.CurItem.CompPars.CompCheckBox.Size - 1) / 5);
+              GuiVarCompInt4 = -GuiVarCompInt3;
+              GuiVarCompInt5 = -((GuiVarCompInt3 - 1) / 2);
+              if (((sgl.CurItem.CompPars.CompCheckBox.Style ==
+                    GuiLib_CHECKBOX_FLAT) ||
+                   (sgl.CurItem.CompPars.CompCheckBox.Style ==
+                    GuiLib_CHECKBOX_3D) ||
+                   (sgl.CurItem.CompPars.CompCheckBox.Style ==
+                    GuiLib_CHECKBOX_NONE)) &&
+                   (sgl.CurItem.CompPars.CompCheckBox.Size <= 10))
+                DrawSubStruct(GuiStructCOMP_CBMCHSMALL, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_CBMCHBIG, 0, 1);
+              break;
+            case GuiLib_CHECKBOX_MARK_CROSSED:
+              if ((sgl.CurItem.CompPars.CompCheckBox.Style ==
+                   GuiLib_CHECKBOX_FLAT) &&
+                  (sgl.CurItem.CompPars.CompCheckBox.Size <= 8))
+                DrawSubStruct(GuiStructCOMP_CBMCRFLSMALL, 0, 1);
+              else if (((sgl.CurItem.CompPars.CompCheckBox.Style ==
+                         GuiLib_CHECKBOX_3D) ||
+                        (sgl.CurItem.CompPars.CompCheckBox.Style ==
+                         GuiLib_CHECKBOX_NONE)) &&
+                       (sgl.CurItem.CompPars.CompCheckBox.Size <= 8))
+                DrawSubStruct(GuiStructCOMP_CBMCR3DSMALL, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_CBMCRBIG, 0, 1);
+              break;
+            case GuiLib_CHECKBOX_MARK_FILLED:
+              if (sgl.CurItem.CompPars.CompCheckBox.Style == GuiLib_CHECKBOX_FLAT)
+                DrawSubStruct(GuiStructCOMP_CBMFIFLAT, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_CBMFI3D, 0, 1);
+              break;
+            case GuiLib_CHECKBOX_MARK_ICON:
+              TempTextPar = sgl.CurItem.TextPar[0];
+              SetCurFont(sgl.CurItem.CompPars.CompCheckBox.MarkIconFont);
+              sgl.CurItem.X1 = sgl.CurItem.X1 +
+                               sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX;
+              sgl.CurItem.Y1 = Y2 +
+                               sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY;
+              sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
+              sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
+              sgl.CurItem.TextPar[0].BitFlags = 0;
+              sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+              sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+              if (CheckmarkMode == 1)
+                DrawText(sgl.CurItem.CompPars.CompCheckBox.MarkIconPtr,
+                         1,
+                         0,
+                         sgl.CurItem.CompPars.CompCheckBox.MarkColor,
+                         0,
+                         1);
+              else
+                DrawText(sgl.CurItem.CompPars.CompCheckBox.MarkIconPtr,
+                         1,
+                         0,
+                         BackColor,
+                         0,
+                         2);
+              sgl.CurItem.TextPar[0] = TempTextPar;
+              break;
+            case GuiLib_CHECKBOX_MARK_BITMAP:
+              if (CheckmarkMode == 1)
+              {
+                if (sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent)
+                  BackColor2 = sgl.CurItem.CompPars.CompCheckBox.MarkBitmapTranspColor;
+                else
+                  BackColor2 = -1;
+                GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIndex,
+                                  sgl.CurItem.X1 +
+                                  sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX,
+                                  sgl.CurItem.Y1 +
+                                  sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY,
+                                  BackColor2);
+              }
+              else
+              {
+                ReadBitmapSizes(sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIndex);
+                GuiLib_FillBox(sgl.CurItem.X1, sgl.CurItem.Y1,
+                               sgl.CurItem.X1 + sgl.BitmapSizeX -1, sgl.CurItem.Y1 + sgl.BitmapSizeY - 1,
+                               BackColor);
+              }
+              break;
+          }
+        }
+      }
+      break;
+#endif
+
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+    case GuiLib_ITEM_RADIOBUTTON:
+      PrepareInternalStruct();
+
+      X1 = sgl.CurItem.X1;
+      Y1 = sgl.CurItem.Y1;
+      RemYMemory = sgl.Memory.Y[GuiLib_MEMORY_CNT];
+
+      if ((sgl.CurItem.VarPtr != 0) &&
+          (sgl.CurItem.VarType != GuiLib_VAR_STRING))
+        VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+      else
+        VarValue = -1;
+
+      for (N = 0; N < sgl.CurItem.CompPars.CompRadioButton.Count; N++)
+      {
+        GuiVarCompInt1 = sgl.CurItem.CompPars.CompRadioButton.Size;
+        sgl.Memory.C[0] = ForeColor;
+        switch (sgl.CurItem.CompPars.CompRadioButton.Style)
+        {
+          case GuiLib_RADIOBUTTON_FLAT:
+            if (BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_RBFLATTRANSP, 0, 1);
+            else
+              DrawSubStruct(GuiStructCOMP_RBFLAT, 0, 1);
+            break;
+          case GuiLib_RADIOBUTTON_3D:
+            if (!BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_RB3DINNER, 0, 1);
+            DrawSubStruct(GuiStructCOMP_RB3D, 0, 1);
+            break;
+          case GuiLib_RADIOBUTTON_ICON:
+            TempTextPar = sgl.CurItem.TextPar[0];
+            SetCurFont(sgl.CurItem.CompPars.CompRadioButton.IconFont);
+            sgl.CurItem.X1 = X1 + sgl.CurItem.CompPars.CompRadioButton.IconOffsetX;
+            sgl.CurItem.Y1 = Y1 + sgl.CurItem.CompPars.CompRadioButton.IconOffsetY +
+                         sgl.CurFont->BaseLine;
+            sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
+            sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
+            sgl.CurItem.TextPar[0].BitFlags = 0;
+            sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+            sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+            DrawText(sgl.CurItem.CompPars.CompRadioButton.IconPtr,
+                     1,
+                     0,
+                     ForeColor,
+                     BackColor,
+                     BackColorTransp);
+            sgl.CurItem.TextPar[0] = TempTextPar;
+            break;
+          case GuiLib_RADIOBUTTON_BITMAP:
+            if (sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent)
+              BackColor2 = sgl.CurItem.CompPars.CompRadioButton.BitmapTranspColor;
+            else
+              BackColor2 = -1;
+            GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompRadioButton.BitmapIndex,
+                              X1, Y1,
+                              BackColor2);
+            break;
+        }
+
+        if (VarValue == N)
+        {
+          GuiVarCompInt1 = sgl.CurItem.CompPars.CompRadioButton.Size;
+          GuiVarCompInt2 = sgl.CurItem.CompPars.CompRadioButton.Size - 3;
+          if (sgl.CurItem.CompPars.CompRadioButton.Style ==
+              GuiLib_RADIOBUTTON_FLAT)
+            GuiVarCompInt2++;
+          sgl.Memory.C[0] = sgl.CurItem.CompPars.CompRadioButton.MarkColor;
+          switch (sgl.CurItem.CompPars.CompRadioButton.MarkStyle)
+          {
+            case GuiLib_RADIOBUTTON_MARK_STANDARD:
+              if (GuiVarCompInt1 <= 1)
+                DrawSubStruct(GuiStructCOMP_RBMSQUA, 0, 1);
+              else if (sgl.CurItem.CompPars.CompRadioButton.Style ==
+                       GuiLib_RADIOBUTTON_FLAT)
+                DrawSubStruct(GuiStructCOMP_RBMFLAT, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_RBM3D, 0, 1);
+              break;
+            case GuiLib_RADIOBUTTON_MARK_ICON:
+              TempTextPar = sgl.CurItem.TextPar[0];
+              SetCurFont(sgl.CurItem.CompPars.CompRadioButton.MarkIconFont);
+              sgl.CurItem.X1 = X1 + sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX;
+              sgl.CurItem.Y1 = Y1 + sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY +
+                           sgl.CurFont->BaseLine;
+              sgl.CurItem.TextPar[0].Alignment = GuiLib_ALIGN_LEFT;
+              sgl.CurItem.TextPar[0].Ps = GuiLib_PS_OFF;
+              sgl.CurItem.TextPar[0].BitFlags = 0;
+              sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+              sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+              DrawText(sgl.CurItem.CompPars.CompRadioButton.MarkIconPtr,
+                       1,
+                       0,
+                       ForeColor,
+                       BackColor,
+                       BackColorTransp);
+              sgl.CurItem.TextPar[0] = TempTextPar;
+              break;
+            case GuiLib_RADIOBUTTON_MARK_BITMAP:
+              if (sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent)
+                BackColor2 = sgl.CurItem.CompPars.CompRadioButton.MarkBitmapTranspColor;
+              else
+                BackColor2 = -1;
+              GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIndex,
+                                X1 +
+                                sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX,
+                                Y1 +
+                                sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY,
+                                BackColor2);
+              break;
+          }
+        }
+
+        Y1 += sgl.CurItem.CompPars.CompRadioButton.InterDistance;
+        sgl.Memory.Y[GuiLib_MEMORY_CNT] +=
+           sgl.CurItem.CompPars.CompRadioButton.InterDistance;
+      }
+
+      sgl.Memory.Y[GuiLib_MEMORY_CNT] = RemYMemory;
+      break;
+#endif
+
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+    case GuiLib_ITEM_BUTTON:
+      PrepareInternalStruct();
+
+      X1 = sgl.CurItem.X1;
+      Y1 = sgl.CurItem.Y1;
+      X2 = sgl.CurItem.X2;
+      Y2 = sgl.CurItem.Y2;
+      RemX1 = sgl.CurItem.X1;
+      RemY1 = sgl.CurItem.Y1;
+
+      GuiVarCompInt1 = X2 - X1 + 1;
+      GuiVarCompInt2 = Y2 - Y1 + 1;
+      GuiVarCompInt3 = sgl.CurItem.R1;
+      GuiVarCompInt4 = GuiVarCompInt1 - sgl.CurItem.R1;
+      GuiVarCompInt5 = GuiVarCompInt2 - sgl.CurItem.R1;
+
+      sgl.Memory.C[0] = ForeColor;
+      sgl.Memory.C[1] = BackColor;
+
+      if (sgl.ButtonColorOverride == GuiLib_TRUE)
+        sgl.Memory.C[2] = sgl.DisabledButtonColor;
+      else
+        sgl.Memory.C[2] = GuiLib_DesaturatePixelColor(BackColor,800);
+
+      if ((sgl.CurItem.VarPtr != 0) &&
+          (sgl.CurItem.VarType != GuiLib_VAR_STRING))
+      {
+        VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+        if ((VarValue < GuiLib_BUTTON_STATE_UP) ||
+            (VarValue > GuiLib_BUTTON_STATE_DISABLED))
+          VarValue = GuiLib_BUTTON_STATE_UP;
+      }
+      else
+        VarValue = GuiLib_BUTTON_STATE_UP;
+
+      DisabledGlyphColorInUse = 0;
+      DisabledTextColorInUse = 0;
+      switch (sgl.CurItem.CompPars.CompButton.BodyStyle)
+      {
+        case GuiLib_BUTTON_BODY_FLAT:
+          switch (VarValue)
+          {
+            case 0 :
+              if (sgl.CurItem.R1 == 0)
+                DrawSubStruct(GuiStructCOMP_BUFLAT0, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_BUFLATR0, 0, 1);
+              break;
+            case 1 :
+              if (sgl.CurItem.R1 == 0)
+                DrawSubStruct(GuiStructCOMP_BUFLAT1, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_BUFLATR1, 0, 1);
+              break;
+            case 2 :
+              if (sgl.CurItem.R1 == 0)
+                DrawSubStruct(GuiStructCOMP_BUFLAT2, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_BUFLATR2, 0, 1);
+              DisabledGlyphColorInUse =
+                 (sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x02);
+              DisabledTextColorInUse =
+                 (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x08);
+              break;
+          }
+          break;
+        case GuiLib_BUTTON_BODY_3D:
+          switch (VarValue)
+          {
+            case 0 :
+              if (sgl.CurItem.R1 == 0)
+                DrawSubStruct(GuiStructCOMP_BU3D0, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_BU3DR0, 0, 1);
+              break;
+            case 1 :
+              if (sgl.CurItem.R1 == 0)
+                DrawSubStruct(GuiStructCOMP_BU3D1, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_BU3DR1, 0, 1);
+              break;
+            case 2 :
+              if (sgl.CurItem.R1 == 0)
+                DrawSubStruct(GuiStructCOMP_BU3D2, 0, 1);
+              else
+                DrawSubStruct(GuiStructCOMP_BU3DR2, 0, 1);
+              DisabledGlyphColorInUse =
+                 !(sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x02);
+              DisabledTextColorInUse =
+                 !(sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x08);
+              break;
+          }
+          break;
+        case GuiLib_BUTTON_BODY_ICON:
+          TempTextPar = sgl.CurItem.TextPar[VarValue];
+          SetCurFont(sgl.CurItem.CompPars.CompButton.BodyIconFont[VarValue]);
+          sgl.CurItem.X1 =
+             X1 +
+             sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[VarValue];
+          sgl.CurItem.Y1 =
+             Y1 +
+             sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[VarValue] +
+             sgl.CurFont->BaseLine;
+          sgl.CurItem.TextPar[VarValue].Alignment = GuiLib_ALIGN_LEFT;
+          sgl.CurItem.TextPar[VarValue].Ps = GuiLib_PS_OFF;
+          sgl.CurItem.TextPar[VarValue].BitFlags = 0;
+          sgl.CurItem.TextPar[VarValue].BackBoxSizeX = 0;
+          sgl.CurItem.TextPar[VarValue].BackBorderPixels = 0;
+          DrawText(sgl.CurItem.CompPars.CompButton.BodyIconPtr[VarValue],
+                   1,
+                   VarValue,
+                   ForeColor,
+                   BackColor,
+                   BackColorTransp);
+          sgl.CurItem.TextPar[VarValue] = TempTextPar;
+          X1 = sgl.FontWriteX1;
+          Y1 = sgl.FontWriteY1;
+          X2 = sgl.FontWriteX2;
+          Y2 = sgl.FontWriteY2;
+          break;
+        case GuiLib_BUTTON_BODY_BITMAP:
+          if (sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[VarValue])
+            BackColor2 =
+               sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[VarValue];
+          else
+            BackColor2 = -1;
+          GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[VarValue],
+                            X1, Y1,
+                            BackColor2);
+          X2 = sgl.BitmapWriteX2;
+          Y2 = sgl.BitmapWriteY2;
+          break;
+      }
+
+      CX = (X1 + X2) / 2;
+      CY = (Y1 + Y2) / 2;
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      RemClippingX1 = sgl.CurItem.ClipRectX1;
+      RemClippingY1 = sgl.CurItem.ClipRectY1;
+      RemClippingX2 = sgl.CurItem.ClipRectX2;
+      RemClippingY2 = sgl.CurItem.ClipRectY2;
+      sgl.CurItem.ClipRectX1 = GuiLib_GET_MAX(sgl.CurItem.ClipRectX1, X1);
+      sgl.CurItem.ClipRectY1 = GuiLib_GET_MAX(sgl.CurItem.ClipRectY1, Y1);
+      sgl.CurItem.ClipRectX2 = GuiLib_GET_MIN(sgl.CurItem.ClipRectX2, X2);
+      sgl.CurItem.ClipRectY2 = GuiLib_GET_MIN(sgl.CurItem.ClipRectY2, Y2);
+      GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                         sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+      if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_TEXT)
+      {
+        switch (sgl.CurItem.CompPars.CompButton.Layout)
+        {
+          case GuiLib_BUTTON_LAYOUT_GLYPH:
+            GX1 = CX;
+            GY1 = CY;
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHLEFT:
+            GX1 = X1 + GuiLib_GET_MIN((Y2 - Y1) / 2, (X2 - X1) / 4);
+            GY1 = CY;
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHRIGHT:
+            GX1 = X2 - GuiLib_GET_MIN((Y2 - Y1) / 2, (X2 - X1) / 4);
+            GY1 = CY;
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHTOP:
+            GX1 = CX;
+            GY1 = Y1 + ((Y2 - Y1) / 4);
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHBOTTOM:
+            GX1 = CX;
+            GY1 = Y2 - ((Y2 - Y1) / 4);
+            break;
+        }
+        switch (sgl.CurItem.CompPars.CompButton.GlyphStyle)
+        {
+          case GuiLib_BUTTON_GLYPH_ICON:
+            TempTextPar = sgl.CurItem.TextPar[VarValue];
+            SetCurFont(sgl.CurItem.CompPars.CompButton.GlyphIconFont[VarValue]);
+            sgl.CurItem.X1 =
+               GX1 +
+               sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[VarValue];
+            sgl.CurItem.Y1 =
+               GY1 +
+               sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[VarValue] +
+               GuiLib_FONT_MID_Y(sgl.CurFont->BaseLine, sgl.CurFont->TopLine);
+            sgl.CurItem.TextPar[VarValue].Alignment = GuiLib_ALIGN_CENTER;
+            sgl.CurItem.TextPar[VarValue].Ps = GuiLib_PS_OFF;
+            sgl.CurItem.TextPar[VarValue].BitFlags = 0;
+            sgl.CurItem.TextPar[VarValue].BackBoxSizeX = 0;
+            sgl.CurItem.TextPar[VarValue].BackBorderPixels = 0;
+            if (DisabledGlyphColorInUse)
+              ButtonColor = GuiLib_MiddlePixelColor(
+                 sgl.CurItem.CompPars.CompButton.GlyphIconColor[VarValue],
+                 sgl.Memory.C[2],
+                 800);
+            else
+              ButtonColor = sgl.CurItem.CompPars.CompButton.GlyphIconColor[VarValue];
+            DrawText(sgl.CurItem.CompPars.CompButton.GlyphIconPtr[VarValue],
+                     1,
+                     VarValue,
+                     ButtonColor,
+                     0,
+                     GuiLib_TRUE);
+            sgl.CurItem.TextPar[VarValue] = TempTextPar;
+            GX1 = sgl.FontWriteX1;
+            GY1 = sgl.FontWriteY1;
+            GX2 = sgl.FontWriteX2;
+            GY2 = sgl.FontWriteY2;
+            break;
+          case GuiLib_BUTTON_GLYPH_BITMAP:
+            ReadBitmapSizes(sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[VarValue]);
+            GX1 -= sgl.BitmapSizeX / 2;
+            GY1 -= sgl.BitmapSizeY / 2;
+
+            GX1 += sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[VarValue];
+            GY1 += sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[VarValue];
+            if (sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[VarValue])
+              BackColor2 = sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[VarValue];
+            else
+              BackColor2 = -1;
+            GuiLib_ShowBitmap(sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[VarValue],
+                              GX1, GY1,
+                              BackColor2);
+            GX2 = sgl.BitmapWriteX2;
+            GY2 = sgl.BitmapWriteY2;
+            break;
+        }
+      }
+
+      if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_GLYPH)
+      {
+        TempTextPar = sgl.CurItem.TextPar[VarValue];
+        SetCurFont(sgl.CurItem.TextPar[VarValue].FontIndex);
+        switch (sgl.CurItem.CompPars.CompButton.Layout)
+        {
+          case GuiLib_BUTTON_LAYOUT_TEXT:
+            sgl.CurItem.X1 = CX;
+            sgl.CurItem.Y1 = CY;
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHLEFT:
+            sgl.CurItem.X1 = X2 - ((X2 - GX2 + 1) / 2);
+            sgl.CurItem.Y1 = CY;
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHRIGHT:
+            sgl.CurItem.X1 = X1 + ((GX1 - X1 + 1) / 2);
+            sgl.CurItem.Y1 = CY;
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHTOP:
+            sgl.CurItem.X1 = CX;
+            sgl.CurItem.Y1 = Y2 - ((Y2 - GY2 + 1) / 2);
+            break;
+          case GuiLib_BUTTON_LAYOUT_GLYPHBOTTOM:
+            sgl.CurItem.X1 = CX;
+            sgl.CurItem.Y1 = Y1 + ((GY1 - Y1 + 1) / 2);
+            break;
+        }
+        sgl.CurItem.Y1 +=
+           GuiLib_FONT_MID_Y(sgl.CurFont->BaseLine, sgl.CurFont->TopLine);
+        sgl.CurItem.TextPar[VarValue].Alignment = GuiLib_ALIGN_CENTER;
+        sgl.CurItem.TextPar[VarValue].BitFlags = 0;
+        sgl.CurItem.TextPar[VarValue].BackBoxSizeX = 0;
+        sgl.CurItem.TextPar[VarValue].BackBorderPixels = 0;
+        if (DisabledTextColorInUse)
+          ButtonColor = GuiLib_MiddlePixelColor(
+             sgl.CurItem.CompPars.CompButton.TextColor[VarValue],
+             sgl.Memory.C[2],
+             800);
+        else
+          ButtonColor = sgl.CurItem.CompPars.CompButton.TextColor[VarValue];
+        DRAW_ROM_TEXT(GetItemTextPtr(VarValue),
+                      sgl.CurItem.TextLength[VarValue],
+                      VarValue,
+                      ButtonColor,
+                      0,
+                      GuiLib_TRUE);
+        sgl.CurItem.TextPar[VarValue] = TempTextPar;
+      }
+
+      sgl.CurItem.X1 = RemX1;
+      sgl.CurItem.Y1 = RemY1;
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      sgl.CurItem.ClipRectX1 = RemClippingX1;
+      sgl.CurItem.ClipRectY1 = RemClippingY1;
+      sgl.CurItem.ClipRectX2 = RemClippingX2;
+      sgl.CurItem.ClipRectY2 = RemClippingY2;
+      GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                         sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+
+      break;
+#endif
+
+#ifdef GuiConst_ITEM_PANEL_INUSE
+    case GuiLib_ITEM_PANEL:
+      PrepareInternalStruct();
+
+      X1 = sgl.CurItem.X1;
+      Y1 = sgl.CurItem.Y1;
+      X2 = sgl.CurItem.X2;
+      Y2 = sgl.CurItem.Y2;
+      OrderCoord(&X1, &X2);
+      OrderCoord(&Y1, &Y2);
+
+      GuiVarCompInt1 = X2 - X1 + 1;
+      GuiVarCompInt2 = Y2 - Y1 + 1;
+      GuiVarCompInt3 = sgl.CurItem.R1;
+      GuiVarCompInt4 = GuiVarCompInt1 - sgl.CurItem.R1;
+      GuiVarCompInt5 = GuiVarCompInt2 - sgl.CurItem.R1;
+
+      sgl.Memory.C[0] = ForeColor;
+      switch (sgl.CurItem.CompPars.CompPanel.Style)
+      {
+        case GuiLib_PANEL_FLAT:
+          if (sgl.CurItem.R1 == 0)
+          {
+            if (BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_PAFLATTRANSP, 0, 1);
+            else
+              DrawSubStruct(GuiStructCOMP_PAFLAT, 0, 1);
+          }
+          else
+          {
+            if (BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_PAFLATTRANSPR, 0, 1);
+            else
+              DrawSubStruct(GuiStructCOMP_PAFLATR, 0, 1);
+          }
+          break;
+
+        case GuiLib_PANEL_3D_RAISED:
+          if (sgl.CurItem.R1 == 0)
+          {
+            if (!BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
+            DrawSubStruct(GuiStructCOMP_PA3DRAIS, 0, 1);
+          }
+          else
+          {
+            if (!BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_PA3DINNERR, 0, 1);
+            DrawSubStruct(GuiStructCOMP_PA3DRAISR, 0, 1);
+          }
+          break;
+
+        case GuiLib_PANEL_3D_LOWERED:
+          if (sgl.CurItem.R1 == 0)
+          {
+            if (!BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
+            DrawSubStruct(GuiStructCOMP_PA3DLOW, 0, 1);
+          }
+          else
+          {
+            if (!BackColorTransp)
+              DrawSubStruct(GuiStructCOMP_PA3DINNERR, 0, 1);
+            DrawSubStruct(GuiStructCOMP_PA3DLOWR, 0, 1);
+          }
+          break;
+
+        case GuiLib_PANEL_EMBOSSED_RAISED:
+          if (!BackColorTransp)
+            DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
+          DrawSubStruct(GuiStructCOMP_PAEMBRAIS, 0, 1);
+          break;
+
+        case GuiLib_PANEL_EMBOSSED_LOWERED:
+          if (!BackColorTransp)
+            DrawSubStruct(GuiStructCOMP_PA3DINNER, 0, 1);
+          DrawSubStruct(GuiStructCOMP_PAEMBLOW, 0, 1);
+          break;
+      }
+      break;
+#endif
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+    case GuiLib_ITEM_GRAPH:
+      break;
+#endif
+
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+    case GuiLib_ITEM_GRAPHICSLAYER:
+#ifdef GuiLib_LAYERS_SUPPORTED
+      if (sgl.DisplayWriting)
+      {
+        sgl.LayerOrigoX = 0;
+        sgl.LayerOrigoY = 0;
+        sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+        sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+
+        X1 = sgl.CurItem.X1;
+        X2 = sgl.CurItem.X2;
+        Y1 = sgl.CurItem.Y1;
+        Y2 = sgl.CurItem.Y2;
+        GuiLib_COORD_ADJUST(X1, Y1);
+        GuiLib_COORD_ADJUST(X2, Y2);
+        OrderCoord(&X1, &X2);
+        OrderCoord(&Y1, &Y2);
+
+        switch (sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].SizeMode)
+        {
+          case GuiLib_GRAPHICS_LAYER_SIZE_COORD:
+            X1 = GuiLib_GET_MINMAX(X1, 0, GuiConst_DISPLAY_WIDTH_HW - 1);
+            Y1 = GuiLib_GET_MINMAX(Y1, 0, GuiConst_DISPLAY_HEIGHT_HW - 1);
+            X2 = GuiLib_GET_MINMAX(X2, 0, GuiConst_DISPLAY_WIDTH_HW - 1);
+            Y2 = GuiLib_GET_MINMAX(Y2, 0, GuiConst_DISPLAY_HEIGHT_HW - 1);
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X = GuiLib_GET_MINMAX(
+               X1, 0, GuiConst_DISPLAY_WIDTH_HW);
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y = GuiLib_GET_MINMAX(
+               Y1, 0, GuiConst_DISPLAY_HEIGHT_HW);
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width = X2 - X1 + 1;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height = Y2 - Y1 + 1;
+            break;
+
+          case GuiLib_GRAPHICS_LAYER_SIZE_SCREEN:
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X = 0;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y = 0;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width =
+               GuiConst_DISPLAY_WIDTH_HW;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height =
+               GuiConst_DISPLAY_HEIGHT_HW;
+            break;
+
+          case GuiLib_GRAPHICS_LAYER_SIZE_CLIP:
+            CX1 = sgl.CurItem.ClipRectX1;
+            CX2 = sgl.CurItem.ClipRectX2;
+            CY1 = sgl.CurItem.ClipRectY1;
+            CY2 = sgl.CurItem.ClipRectY2;
+            GuiLib_COORD_ADJUST(CX1, CY1);
+            GuiLib_COORD_ADJUST(CX2, CY2);
+            OrderCoord(&CX1, &CX2);
+            OrderCoord(&CY1, &CY2);
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X = CX1;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y = CY1;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width = CX2 - CX1 + 1;
+            sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height = CY2 - CY1 + 1;
+            break;
+        }
+        sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].LineSize =
+             GuiConst_PIXEL_BYTE_SIZE *
+             sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width;
+        sgl.CurItem.ClipRectX1 = 0;
+        sgl.CurItem.ClipRectY1 = 0;
+        sgl.CurItem.ClipRectX2 =
+           sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width - 1;
+        sgl.CurItem.ClipRectY2 =
+           sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height - 1;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+        StartClipping(1);
+#endif
+        sgl.LayerOrigoX = -sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X;
+        sgl.LayerOrigoY = -sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y;
+        sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+        sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+
+        if (GraphicsLayer_Push(sgl.GlobalGraphicsLayerIndex))
+        {
+          switch (sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].InitMode)
+          {
+            case GuiLib_GRAPHICS_LAYER_INIT_NONE:
+              break;
+
+            case GuiLib_GRAPHICS_LAYER_INIT_COL:
+              GuiLib_FillBox(
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X +
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width - 1,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y +
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height - 1,
+                 BackColor);
+              break;
+
+            case GuiLib_GRAPHICS_LAYER_INIT_COPY:
+              GraphicsLayer_Copy(
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].BaseAddress,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].LineSize,
+                 0,
+                 0,
+#ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
+#ifdef GuiLib_COLOR_UNIT_16
+                 (GuiConst_INT8U*)GuiLib_DisplayBuf.Bytes,
+#else
+                 (GuiConst_INT8U*)GuiLib_DisplayBuf,
+#endif
+#else // GuiConst_DISPLAY_BUFFER_EASYGUI
+                 0,
+#endif // GuiConst_DISPLAY_BUFFER_EASYGUI
+                 GuiConst_BYTES_PR_LINE,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].X,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Y,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Width,
+                 sgl.GraphicsLayerList[sgl.GlobalGraphicsLayerIndex].Height);
+              break;
+          }
+        }
+      }
+#endif
+      break;
+
+    case GuiLib_ITEM_GRAPHICSFILTER:
+#ifdef GuiLib_LAYERS_SUPPORTED
+      if (sgl.DisplayWriting)
+      {
+        sgl.LayerOrigoX = 0;
+        sgl.LayerOrigoY = 0;
+        sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+        sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+
+        SourceLayerIndexNo = IndexOfGraphicsLayer(
+           sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].SourceLayerIndexNo);
+        DestLayerIndexNo = IndexOfGraphicsLayer(
+           sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].DestLayerIndexNo);
+        if (SourceLayerIndexNo != DestLayerIndexNo)
+        {
+          if (SourceLayerIndexNo == GuiLib_GRAPHICS_LAYER_BASE)
+          {
+#ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
+#ifdef GuiLib_COLOR_UNIT_16
+            SourceAddress = &(GuiLib_DisplayBuf.Bytes[0][0]);
+#else
+  #ifdef GuiConst_COLOR_DEPTH_2
+    #ifdef GuiConst_BYTE_HORIZONTAL
+      #ifdef GuiConst_COLOR_PLANES_2
+            SourceAddress = &(GuiLib_DisplayBuf[0][0][0]);
+      #else
+            SourceAddress = &(GuiLib_DisplayBuf[0][0]);
+      #endif
+    #else
+      #ifdef GuiConst_COLOR_PLANES_2
+            SourceAddress = &(GuiLib_DisplayBuf[0][0][0]);
+      #else
+            SourceAddress = &(GuiLib_DisplayBuf[0][0]);
+      #endif
+    #endif
+  #else
+            SourceAddress = &(GuiLib_DisplayBuf[0][0]);
+  #endif
+#endif // GuiLib_COLOR_UNIT_16
+#else // GuiConst_DISPLAY_BUFFER_EASYGUI
+            SourceAddress = 0;
+#endif // GuiConst_DISPLAY_BUFFER_EASYGUI
+            SourceLineSize = GuiConst_BYTES_PR_LINE;
+            SourceX = 0;
+            SourceY = 0;
+            SourceWidth = GuiConst_DISPLAY_WIDTH_HW;
+            SourceHeight = GuiConst_DISPLAY_HEIGHT_HW;
+          }
+          else
+          {
+            SourceAddress = sgl.GraphicsLayerList[SourceLayerIndexNo].BaseAddress;
+            SourceLineSize = sgl.GraphicsLayerList[SourceLayerIndexNo].LineSize;
+            SourceX = sgl.GraphicsLayerList[SourceLayerIndexNo].X;
+            SourceY = sgl.GraphicsLayerList[SourceLayerIndexNo].Y;
+            SourceWidth = sgl.GraphicsLayerList[SourceLayerIndexNo].Width;
+            SourceHeight = sgl.GraphicsLayerList[SourceLayerIndexNo].Height;
+          }
+          if (DestLayerIndexNo == GuiLib_GRAPHICS_LAYER_BASE)
+          {
+#ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
+#ifdef GuiLib_COLOR_UNIT_16
+            DestAddress = &(GuiLib_DisplayBuf.Bytes[0][0]);
+#else
+  #ifdef GuiConst_COLOR_DEPTH_2
+    #ifdef GuiConst_BYTE_HORIZONTAL
+      #ifdef GuiConst_COLOR_PLANES_2
+            DestAddress = &(GuiLib_DisplayBuf[0][0][0]);
+      #else
+            DestAddress = &(GuiLib_DisplayBuf[0][0]);
+      #endif
+    #else
+      #ifdef GuiConst_COLOR_PLANES_2
+            DestAddress = &(GuiLib_DisplayBuf[0][0][0]);
+      #else
+            DestAddress = &(GuiLib_DisplayBuf[0][0]);
+      #endif
+    #endif
+  #else
+            DestAddress = &(GuiLib_DisplayBuf[0][0]);
+  #endif
+#endif
+#else // GuiConst_DISPLAY_BUFFER_EASYGUI
+            DestAddress = 0;
+#endif // GuiConst_DISPLAY_BUFFER_EASYGUI
+            DestLineSize = GuiConst_BYTES_PR_LINE;
+            DestX = SourceX;
+            DestY = SourceY;
+            DestWidth = SourceWidth;
+            DestHeight = SourceHeight;
+          }
+          else
+          {
+            DestAddress = sgl.GraphicsLayerList[DestLayerIndexNo].BaseAddress;
+            DestLineSize = sgl.GraphicsLayerList[DestLayerIndexNo].LineSize;
+            DestX = sgl.GraphicsLayerList[DestLayerIndexNo].X;
+            DestY = sgl.GraphicsLayerList[DestLayerIndexNo].Y;
+            DestWidth = sgl.GraphicsLayerList[DestLayerIndexNo].Width;
+            DestHeight = sgl.GraphicsLayerList[DestLayerIndexNo].Height;
+          }
+
+          if ((DestX <= SourceX) && (DestY <= SourceY) &&
+              (DestX + DestWidth >= SourceX + SourceWidth) &&
+              (DestY + DestHeight >= SourceY + SourceHeight) &&
+              (sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].
+               GraphicsFilterFunc != 0))
+          {
+            if (DestLayerIndexNo != GuiLib_GRAPHICS_LAYER_BASE)
+            {
+              DestX = SourceX - DestX;
+              DestY = SourceY - DestY;
+            }
+            if (SourceLayerIndexNo != GuiLib_GRAPHICS_LAYER_BASE)
+            {
+              SourceX = 0;
+              SourceY = 0;
+            }
+
+            for (I = 0; I <= 9; I++)
+            {
+              if (sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParVarType[I] ==
+                  GuiLib_VAR_NONE)
+                FilterPars[I] =
+                   sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParValueNum[I];
+              else
+                FilterPars[I] = ReadVar(
+                   sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParVarPtr[I],
+                   sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ParVarType[I]);
+            }
+            sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].GraphicsFilterFunc(
+               DestAddress + DestY * DestLineSize +
+                  DestX * GuiConst_PIXEL_BYTE_SIZE,
+               DestLineSize,
+               SourceAddress + SourceY * SourceLineSize +
+                  SourceX * GuiConst_PIXEL_BYTE_SIZE,
+               SourceLineSize,
+               sgl.GraphicsLayerList[SourceLayerIndexNo].Width,
+               sgl.GraphicsLayerList[SourceLayerIndexNo].Height,
+               FilterPars);
+          }
+
+          GraphicsLayer_Pop(
+             sgl.GraphicsFilterList[sgl.GlobalGraphicsFilterIndex].ContAtLayerIndexNo);
+          MarkDisplayBoxRepaint(
+             DestX,
+             DestY,
+             DestX + sgl.GraphicsLayerList[SourceLayerIndexNo].Width - 1,
+             DestY + sgl.GraphicsLayerList[SourceLayerIndexNo].Height - 1);
+        }
+        else
+          GraphicsLayer_Pop(GuiLib_GRAPHICS_LAYER_BASE);
+
+        if (sgl.BaseLayerDrawing)
+        {
+          sgl.LayerOrigoX = 0;
+          sgl.LayerOrigoY = 0;
+        }
+        else
+        {
+          I = sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1];
+          sgl.LayerOrigoX = -sgl.GraphicsLayerList[I].X;
+          sgl.LayerOrigoY = -sgl.GraphicsLayerList[I].Y;
+        }
+        sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+        sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+
+        if (sgl.BaseLayerDrawing)
+        {
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+          StartClipping(0);
+#endif
+        }
+        else
+        {
+          I = sgl.GraphicsLayerLifo[sgl.GraphicsLayerLifoCnt - 1];
+          sgl.CurItem.ClipRectX1 = 0;
+          sgl.CurItem.ClipRectY1 = 0;
+          sgl.CurItem.ClipRectX2 = sgl.GraphicsLayerList[I].Width - 1;
+          sgl.CurItem.ClipRectY2 = sgl.GraphicsLayerList[I].Height - 1;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+          StartClipping(1);
+#endif
+        }
+      }
+#endif
+      break;
+#endif
+  }
+
+  if (sgl.CurItem.UpdateType == GuiLib_UPDATE_ON_CHANGE)
+    if ((sgl.InitialDrawing) || (sgl.AutoRedrawUpdate == GuiLib_TRUE))
+      AutoRedraw_UpdateOnChange(sgl.AutoRedrawSaveIndex);
+
+  if (sgl.AutoRedrawSaveIndex >= 0)
+    AutoRedraw_UpdateDrawn(sgl.AutoRedrawSaveIndex, &sgl.CurItem);
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  if (((sgl.CurItem.ItemType == GuiLib_ITEM_TEXTBLOCK) ||
+       (sgl.CurItem.ItemType == GuiLib_ITEM_VARBLOCK)) &&
+       (sgl.CurItem.CompPars.CompTextBox.ScrollIndex != 0xFF))
+  {
+    found = AutoRedraw_GetTextBox(
+                  sgl.CurItem.CompPars.CompTextBox.ScrollIndex, -1);
+    if (found == -1)
+    {
+      if (sgl.AutoRedrawSaveIndex >= 0)
+        AutoRedraw_SetAsTextBox(sgl.AutoRedrawSaveIndex);
+      else
+        AutoRedraw_InsertTextBox(&sgl.CurItem, 0, sgl.DisplayLevel);
+    }
+
+    found = 0;
+
+    for (N = 0; N < GuiConst_TEXTBOX_FIELDS_MAX; N++)
+    {
+      if (sgl.TextBoxScrollPositions[N].index ==
+          sgl.CurItem.CompPars.CompTextBox.ScrollIndex)
+      {
+        found = 1;
+        break;
+      }
+    }
+
+    if (found == 0)
+    {
+      for (N = 0; N < GuiConst_TEXTBOX_FIELDS_MAX; N++)
+      {
+        if (sgl.TextBoxScrollPositions[N].index == -1)
+        {
+          sgl.TextBoxScrollPositions[N].index =
+            sgl.CurItem.CompPars.CompTextBox.ScrollIndex;
+          sgl.TextBoxScrollPositions[N].pos =
+            sgl.CurItem.CompPars.CompTextBox.ScrollPos;
+            break;
+        }
+      }
+    }
+  }
+#endif
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  if (sgl.InitialDrawing && IsCursorField)
+    sgl.CurItem.CursorFieldLevel--;
+
+  if ((ColorInvert == GuiLib_COL_INVERT_IF_CURSOR) && FoundActiveCursorField)
+    sgl.SwapColors = 0;
+#endif
+
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+  if (!sgl.InitialDrawing)
+  {
+    sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+    sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+  }
+#endif
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  if (!sgl.InitialDrawing && sgl.DisplayWriting)
+    GuiLib_ResetClipping();
+#endif
+}
+//------------------------------------------------------------------------------
+//------------------------------------------------------------------------------
+static void ReadItem(GuiConst_INT16S LanguageIndex)
+{
+  GuiConst_INT16S X;
+  GuiConst_INT16S N;
+  GuiConst_INT16S I,J;
+  GuiConst_INTCOLOR TmpForeColor, TmpBackColor;
+  GuiConst_INTCOLOR PrefixLocate *ColVarPtr;
+  GuiConst_INT16U ColVarPtrIdx, PtrIdx;
+  GuiConst_INT16U TmpColIdx;
+  GuiConst_INT16U TmpForeColIdx;
+#ifdef GuiConst_ADV_CONTROLS
+  GuiConst_INT16U TmpBackColIdx;
+#endif
+  GuiConst_INT8U B1;
+  GuiConst_INT16U W1;
+#ifdef GuiConst_REMOTE_TEXT_DATA
+  GuiConst_INT16U Ti;
+#endif
+  GuiConst_INT16U TxtSize;
+#ifndef GuiConst_REMOTE_TEXT_DATA
+  GuiConst_INT16U TxtSum1, TxtSum2;
+#endif
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  GuiConst_INT16U TxtReadSize;
+#endif
+#ifdef GuiConst_BLINK_SUPPORT_ON
+  GuiConst_INT8S BS2;
+#endif
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  GuiConst_INT8U ScrollBoxIndex;
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+  GuiConst_INT8U * PixelDataPtr;
+  GuiConst_INT8U BitmapHeader[4];
+#else
+  GuiConst_INT8U PrefixRom * PixelDataPtr;
+#endif // GuiConst_REMOTE_BITMAP_DATA
+#endif // GuiConst_SCROLLITEM_BAR_NONE
+#endif // GuiConst_ITEM_SCROLLBOX_INUSE
+#ifdef GuiConst_ADV_COMPONENTS
+  GuiConst_INT8U L;
+#endif
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+  GuiConst_INT8U GraphIndex;
+  GuiConst_INT8U Axis;
+  GuiConst_INT8U B;
+#endif
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  GuiConst_INT8U GraphicsLayerIndex;
+  GuiConst_INT8U GraphicsFilterIndex;
+#endif
+#ifdef GuiConst_ITEM_STRUCTCOND_INUSE
+  GuiConst_INT16U CondI;
+#endif
+  GuiConst_INT8U ColMemoryFore;
+  GuiConst_INT8U ColMemoryBack;
+
+  sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_INUSE;
+
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+  if (sgl.DisplayLevel == 0)
+  {
+    sgl.CurItem.CoordOrigoX = sgl.CoordOrigoX;
+    sgl.CurItem.CoordOrigoY = sgl.CoordOrigoY;
+  }
+#endif
+
+  sgl.CommonByte0 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte1 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte2 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte3 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte4 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte5 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte6 = GetItemByte(&sgl.ItemDataPtr);
+  sgl.CommonByte7 = GetItemByte(&sgl.ItemDataPtr);
+
+  sgl.CurItem.ItemType = sgl.CommonByte0 & 0x3F;
+  if (sgl.CurItem.ItemType < 32)
+    sgl.ItemTypeBit1 = (GuiConst_INT32U)0x00000001 << (sgl.CurItem.ItemType & 0x1F);
+  else
+    sgl.ItemTypeBit1 = 0;
+  if (sgl.CurItem.ItemType >= 32)
+    sgl.ItemTypeBit2 = (GuiConst_INT32U)0x00000001 << (sgl.CurItem.ItemType - 32);
+  else
+    sgl.ItemTypeBit2 = 0;
+
+  if (sgl.CommonByte7 & 0x20)
+  {
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+    if (B1 & 0x01)
+      sgl.CurItem.ForeColorEnhance = GetItemWord(&sgl.ItemDataPtr);
+    if (B1 & 0x02)
+      sgl.CurItem.BackColorEnhance = GetItemWord(&sgl.ItemDataPtr);
+    if (B1 & 0x04)
+      sgl.CurItem.BarForeColorEnhance = GetItemWord(&sgl.ItemDataPtr);
+    if (B1 & 0x08)
+      sgl.CurItem.BarBackColorEnhance = GetItemWord(&sgl.ItemDataPtr);
+  }
+  else
+  {
+    sgl.CurItem.ForeColorEnhance = 0;
+    sgl.CurItem.BackColorEnhance = 0;
+    sgl.CurItem.BarForeColorEnhance = 0;
+    sgl.CurItem.BarBackColorEnhance = 0;
+  }
+  if (sgl.CommonByte7 & 0x40)
+  {
+    ColMemoryFore = GetItemByte(&sgl.ItemDataPtr);
+    ColMemoryBack = GetItemByte(&sgl.ItemDataPtr);
+  }
+  else
+  {
+    ColMemoryFore = 0;
+    ColMemoryBack = 0;
+  }
+
+  TmpForeColor = sgl.CurItem.ForeColor;
+  TmpForeColIdx = sgl.CurItem.ForeColorIndex;
+
+  TmpBackColor = sgl.CurItem.BackColor;
+#ifdef GuiConst_ADV_CONTROLS
+  TmpBackColIdx = sgl.CurItem.BackColorIndex;
+#endif
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_DOT +
+                           GuiLib_ITEMBIT_LINE +
+                           GuiLib_ITEMBIT_FRAME +
+                           GuiLib_ITEMBIT_BLOCK +
+                           GuiLib_ITEMBIT_CIRCLE +
+                           GuiLib_ITEMBIT_ELLIPSE +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK +
+                           GuiLib_ITEMBIT_SCROLLBOX +
+                           GuiLib_ITEMBIT_GRAPH)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                           GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                           GuiLib_ITEMBIT_QUARTERCIRCLE +
+                           GuiLib_ITEMBIT_QUARTERELLIPSE +
+                           GuiLib_ITEMBIT_CHECKBOX +
+                           GuiLib_ITEMBIT_RADIOBUTTON +
+                           GuiLib_ITEMBIT_BUTTON +
+                           GuiLib_ITEMBIT_EDITBOX +
+                           GuiLib_ITEMBIT_PANEL +
+                           GuiLib_ITEMBIT_MEMO +
+                           GuiLib_ITEMBIT_LISTBOX +
+                           GuiLib_ITEMBIT_COMBOBOX +
+                           GuiLib_ITEMBIT_SCROLLAREA +
+                           GuiLib_ITEMBIT_PROGRESSBAR +
+                           GuiLib_ITEMBIT_STRUCTCOND)))
+  {
+    B1 = ColMemoryFore & 0x03;
+    if (B1)
+    {
+      sgl.CurItem.ForeColor = sgl.Memory.C[B1-1];
+      sgl.CurItem.ForeColorIndex = sgl.ColMemoryIndex[B1-1];
+    }
+    else
+    {
+      TmpColIdx = sgl.CurItem.ForeColorIndex;
+      sgl.CurItem.ForeColorIndex = 0xFFFF;
+      switch (sgl.CommonByte3 & 0x07)
+      {
+        case GuiLib_COLOR_FORE:
+          sgl.CurItem.ForeColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.CurItem.ForeColor = GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.CurItem.ForeColor = (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.CurItem.ForeColor = TmpBackColor;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.CurItem.ForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+          {
+            sgl.CurItem.ForeColor = GuiConst_PIXEL_ON;
+          }
+          else
+          {
+            sgl.CurItem.ForeColor = *ColVarPtr;
+            sgl.CurItem.ForeColorIndex = ColVarPtrIdx;
+          }
+          break;
+        default:
+          sgl.CurItem.ForeColorIndex = TmpColIdx;
+          break;
+      }
+    }
+    if (sgl.CurItem.ForeColorEnhance > 0)
+      sgl.CurItem.ForeColor = GuiLib_BrightenPixelColor(
+         sgl.CurItem.ForeColor, sgl.CurItem.ForeColorEnhance);
+    else if (sgl.CurItem.ForeColorEnhance < 0)
+      sgl.CurItem.ForeColor = GuiLib_DarkenPixelColor(
+         sgl.CurItem.ForeColor, -sgl.CurItem.ForeColorEnhance);
+
+    B1 = ColMemoryFore & 0x30;
+    if (B1)
+    {
+      sgl.CurItem.BarForeColor = sgl.Memory.C[B1-1];
+      sgl.CurItem.BarForeColorIndex = sgl.ColMemoryIndex[B1-1];
+    }
+    else
+    {
+      TmpColIdx = sgl.CurItem.BarForeColorIndex;
+      sgl.CurItem.BarForeColorIndex = 0xFFFF;
+      switch ((sgl.CommonByte5 >> 1) & 0x07)
+      {
+        case GuiLib_COLOR_FORE:
+          sgl.CurItem.BarForeColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.CurItem.BarForeColor = GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.CurItem.BarForeColor = (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.CurItem.BarForeColor = sgl.CurItem.BackColor;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.CurItem.BarForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+          {
+            sgl.CurItem.BarForeColor = GuiConst_PIXEL_ON;
+          }
+          else
+          {
+            sgl.CurItem.BarForeColor = *ColVarPtr;
+            sgl.CurItem.BarForeColorIndex = ColVarPtrIdx;
+          }
+          break;
+        default:
+          sgl.CurItem.BarForeColorIndex = TmpColIdx;
+          break;
+      }
+    }
+    if (sgl.CurItem.BarForeColorEnhance > 0)
+      sgl.CurItem.BarForeColor = GuiLib_BrightenPixelColor(
+         sgl.CurItem.BarForeColor, sgl.CurItem.BarForeColorEnhance);
+    else if (sgl.CurItem.BarForeColorEnhance < 0)
+      sgl.CurItem.BarForeColor = GuiLib_DarkenPixelColor(
+         sgl.CurItem.BarForeColor, -sgl.CurItem.BarForeColorEnhance);
+  }
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
+                           GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_FRAME +
+                           GuiLib_ITEMBIT_CIRCLE +
+                           GuiLib_ITEMBIT_ELLIPSE +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK +
+                           GuiLib_ITEMBIT_SCROLLBOX +
+                           GuiLib_ITEMBIT_GRAPH +
+                           GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                           GuiLib_ITEMBIT_QUARTERCIRCLE +
+                           GuiLib_ITEMBIT_QUARTERELLIPSE +
+                           GuiLib_ITEMBIT_CHECKBOX +
+                           GuiLib_ITEMBIT_RADIOBUTTON +
+                           GuiLib_ITEMBIT_BUTTON +
+                           GuiLib_ITEMBIT_EDITBOX +
+                           GuiLib_ITEMBIT_PANEL +
+                           GuiLib_ITEMBIT_MEMO +
+                           GuiLib_ITEMBIT_LISTBOX +
+                           GuiLib_ITEMBIT_COMBOBOX +
+                           GuiLib_ITEMBIT_SCROLLAREA +
+                           GuiLib_ITEMBIT_PROGRESSBAR +
+                           GuiLib_ITEMBIT_STRUCTCOND)))
+  {
+    B1 = ColMemoryBack & 0x03;
+    if (B1)
+    {
+      sgl.CurItem.BackColor = sgl.Memory.C[B1-1];
+      sgl.CurItem.BackColorIndex = sgl.ColMemoryIndex[B1-1];
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+    }
+    else
+    {
+      TmpColIdx = sgl.CurItem.BackColorIndex;
+      sgl.CurItem.BackColorIndex = 0xFFFF;
+      switch ((sgl.CommonByte3 >> 3) & 0x07)
+      {
+        case GuiLib_COLOR_FORE:
+          sgl.CurItem.BackColor = GuiConst_PIXEL_ON;
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.CurItem.BackColor = GuiConst_PIXEL_OFF;
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.CurItem.BackColor = GetItemColor(&sgl.ItemDataPtr);
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.CurItem.BackColor = TmpForeColor;
+          sgl.CurItem.BackColorIndex = TmpForeColIdx;
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.CurItem.BackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+          {
+            sgl.CurItem.BackColor = GuiConst_PIXEL_ON;
+          }
+          else
+          {
+            sgl.CurItem.BackColor = *ColVarPtr;
+            sgl.CurItem.BackColorIndex = ColVarPtrIdx;
+          }
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSPARENT;
+          break;
+        default:
+          sgl.CurItem.BackColorIndex = TmpColIdx;
+          break;
+      }
+    }
+    if (sgl.CurItem.BackColorEnhance > 0)
+      sgl.CurItem.BackColor = GuiLib_BrightenPixelColor(
+         sgl.CurItem.BackColor, sgl.CurItem.BackColorEnhance);
+    else if (sgl.CurItem.BackColorEnhance < 0)
+      sgl.CurItem.BackColor = GuiLib_DarkenPixelColor(
+         sgl.CurItem.BackColor, -sgl.CurItem.BackColorEnhance);
+
+    B1 = ColMemoryBack & 0x30;
+    if (B1)
+    {
+      sgl.CurItem.BarBackColor = sgl.Memory.C[B1-1];
+      sgl.CurItem.BarBackColorIndex = sgl.ColMemoryIndex[B1-1];
+    }
+    else
+    {
+      TmpColIdx = sgl.CurItem.BarBackColorIndex;
+      sgl.CurItem.BarBackColorIndex = 0xFFFF;
+      switch ((sgl.CommonByte5 >> 4) & 0x07)
+      {
+        case GuiLib_COLOR_FORE:
+          sgl.CurItem.BarBackColor = GuiConst_PIXEL_ON;
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.CurItem.BarBackColor = GuiConst_PIXEL_OFF;
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.CurItem.BarBackColor = GetItemColor(&sgl.ItemDataPtr);
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
+          sgl.CurItem.BarBackColor = sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_BARTRANSPARENT;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.CurItem.BarBackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+          {
+            sgl.CurItem.BarBackColor = GuiConst_PIXEL_ON;
+          }
+          else
+          {
+            sgl.CurItem.BarBackColor = *ColVarPtr;
+            sgl.CurItem.BarBackColorIndex = ColVarPtrIdx;
+          }
+          sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BARTRANSPARENT;
+          break;
+        default:
+          sgl.CurItem.BarBackColorIndex = TmpColIdx;
+          break;
+      }
+    }
+    if (sgl.CurItem.BarBackColorEnhance > 0)
+      sgl.CurItem.BarBackColor = GuiLib_BrightenPixelColor(
+         sgl.CurItem.BarBackColor, sgl.CurItem.BarBackColorEnhance);
+    else if (sgl.CurItem.BarBackColorEnhance < 0)
+      sgl.CurItem.BarBackColor = GuiLib_DarkenPixelColor(
+         sgl.CurItem.BarBackColor, -sgl.CurItem.BarBackColorEnhance);
+  }
+
+#ifdef GuiConst_COLOR_DEPTH_1
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_BITMAP +
+                           GuiLib_ITEMBIT_BACKGROUND)) &&
+      (sgl.CommonByte6 & 0x02))
+    sgl.CurItem.CompPars.CompBitmap.TranspColor = (sgl.CommonByte6 >> 2) & 0x01;
+  #endif
+#else
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_BITMAP +
+                           GuiLib_ITEMBIT_BACKGROUND)) &&
+      (sgl.CommonByte6 & 0x02))
+  {
+    sgl.CurItem.CompPars.CompBitmap.TranspColor = GetItemColor(&sgl.ItemDataPtr);
+  }
+  #endif
+#endif
+
+  B1 = ColMemoryFore & 0x0C;
+  if (B1)
+  {
+    sgl.Memory.C[B1 - 1] = sgl.CurItem.ForeColor;
+    sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.ForeColorIndex;
+  }
+  B1 = ColMemoryFore & 0xC0;
+  if (B1)
+  {
+    sgl.Memory.C[B1 - 1] = sgl.CurItem.BarForeColor;
+    sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.BarForeColorIndex;
+  }
+  B1 = ColMemoryBack & 0x0C;
+  if (B1)
+  {
+    sgl.Memory.C[B1 - 1] = sgl.CurItem.BackColor;
+    sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.BackColorIndex;
+  }
+  B1 = ColMemoryBack & 0xC0;
+  if (B1)
+  {
+    sgl.Memory.C[B1 - 1] = sgl.CurItem.BarBackColor;
+    sgl.ColMemoryIndex[B1 - 1] = sgl.CurItem.BarBackColorIndex;
+  }
+
+  if (sgl.CommonByte0 & 0x40)
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+  else
+    B1 = 0;
+  sgl.X1MemoryRead = B1 & 0x03;
+  sgl.X1MemoryWrite = (B1 >> 2) & 0x03;
+  sgl.Y1MemoryRead = (B1 >> 4) & 0x03;
+  sgl.Y1MemoryWrite = (B1 >> 6) & 0x03;
+  if (sgl.CommonByte0 & 0x80)
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+  else
+    B1 = 0;
+  sgl.X2MemoryRead = B1 & 0x03;
+  sgl.X2MemoryWrite = (B1 >> 2) & 0x03;
+  sgl.Y2MemoryRead = (B1 >> 4) & 0x03;
+  sgl.Y2MemoryWrite = (B1 >> 6) & 0x03;
+  if (sgl.CommonByte7 & 0x01)
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+  else
+    B1 = 0;
+  sgl.R1MemoryRead = B1 & 0x03;
+  sgl.R1MemoryWrite = (B1 >> 2) & 0x03;
+  sgl.R2MemoryRead = (B1 >> 4) & 0x03;
+  sgl.R2MemoryWrite = (B1 >> 6) & 0x03;
+  if (sgl.CommonByte7 & 0x80)
+  {
+    if (sgl.X1MemoryRead)
+      sgl.X1MemoryRead += GuiLib_MEMORY_CNT;
+    if (sgl.X1MemoryWrite)
+      sgl.X1MemoryWrite += GuiLib_MEMORY_CNT;
+    if (sgl.Y1MemoryRead)
+      sgl.Y1MemoryRead += GuiLib_MEMORY_CNT;
+    if (sgl.Y1MemoryWrite)
+      sgl.Y1MemoryWrite += GuiLib_MEMORY_CNT;
+    if (sgl.X2MemoryRead)
+      sgl.X2MemoryRead += GuiLib_MEMORY_CNT;
+    if (sgl.X2MemoryWrite)
+      sgl.X2MemoryWrite += GuiLib_MEMORY_CNT;
+    if (sgl.Y2MemoryRead)
+      sgl.Y2MemoryRead += GuiLib_MEMORY_CNT;
+    if (sgl.Y2MemoryWrite)
+      sgl.Y2MemoryWrite += GuiLib_MEMORY_CNT;
+    if (sgl.R1MemoryRead)
+      sgl.R1MemoryRead += GuiLib_MEMORY_CNT;
+    if (sgl.R1MemoryWrite)
+      sgl.R1MemoryWrite += GuiLib_MEMORY_CNT;
+    if (sgl.R2MemoryRead)
+      sgl.R2MemoryRead += GuiLib_MEMORY_CNT;
+    if (sgl.R2MemoryWrite)
+      sgl.R2MemoryWrite += GuiLib_MEMORY_CNT;
+  }
+
+  if (sgl.CommonByte6 & 0x01)
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+  else
+    B1 = 0;
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
+    sgl.CurItem.TextPar[0].BackBorderPixels = B1;
+  else
+    sgl.CurItem.TextPar[0].BackBorderPixels = 0;
+
+  if (sgl.CommonByte6 & 0x08)
+  {
+    N = GetItemWord(&sgl.ItemDataPtr);
+    sgl.CurItem.TextPar[0].BackBoxSizeY1 = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.TextPar[0].BackBoxSizeY2 = GetItemByte(&sgl.ItemDataPtr);
+  }
+  else
+    N = 0;
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
+    sgl.CurItem.TextPar[0].BackBoxSizeX = N;
+  else
+    sgl.CurItem.TextPar[0].BackBoxSizeX = 0;
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_SCROLLBOX)
+  {
+    if (sgl.NextScrollLineReading)
+      if (sgl.CommonByte6 & 0x08)
+      {
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].LineSizeX =
+           sgl.CurItem.TextPar[0].BackBoxSizeX;
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].LineSizeY =
+           sgl.CurItem.TextPar[0].BackBoxSizeY1;
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].LineSizeY2 =
+           sgl.CurItem.TextPar[0].BackBoxSizeY2;
+      }
+  }
+#endif
+
+  sgl.X1Mode = sgl.CommonByte1 & 0x03;
+  sgl.Y1Mode = (sgl.CommonByte1 >> 2) & 0x03;
+  sgl.X2Mode = (sgl.CommonByte1 >> 4) & 0x03;
+  sgl.Y2Mode = (sgl.CommonByte1 >> 6) & 0x03;
+  sgl.R1Mode = (sgl.CommonByte7 >> 1) & 0x03;
+  sgl.R2Mode = (sgl.CommonByte7 >> 3) & 0x03;
+
+  if (sgl.CommonByte2 & 0x01)
+    sgl.ItemX1 = GetItemWord(&sgl.ItemDataPtr);
+  else
+    sgl.ItemX1 = 0;
+  if (sgl.CommonByte2 & 0x02)
+    sgl.ItemY1 = GetItemWord(&sgl.ItemDataPtr);
+  else
+    sgl.ItemY1 = 0;
+  if (sgl.CommonByte2 & 0x04)
+    sgl.ItemX2 = GetItemWord(&sgl.ItemDataPtr);
+  else
+    sgl.ItemX2 = 0;
+  if (sgl.CommonByte2 & 0x08)
+    sgl.ItemY2 = GetItemWord(&sgl.ItemDataPtr);
+  else
+    sgl.ItemY2 = 0;
+  if (sgl.CommonByte6 & 0x10)
+    sgl.ItemR1 = GetItemWord(&sgl.ItemDataPtr);
+  else
+    sgl.ItemR1 = 0;
+  if (sgl.CommonByte6 & 0x20)
+    sgl.ItemR2 = GetItemWord(&sgl.ItemDataPtr);
+  else
+    sgl.ItemR2 = 0;
+
+  if (sgl.CommonByte2 & 0x10)
+  {
+    sgl.X1VarIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (sgl.X1VarIdx >= GuiStruct_VarPtrCnt)
+      sgl.X1VarIdx = 0;
+  }
+  if (sgl.CommonByte2 & 0x20)
+  {
+    sgl.Y1VarIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (sgl.Y1VarIdx >= GuiStruct_VarPtrCnt)
+      sgl.Y1VarIdx = 0;
+  }
+  if (sgl.CommonByte2 & 0x40)
+  {
+    sgl.X2VarIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (sgl.X2VarIdx >= GuiStruct_VarPtrCnt)
+      sgl.X2VarIdx = 0;
+  }
+  if (sgl.CommonByte2 & 0x80)
+  {
+    sgl.Y2VarIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (sgl.Y2VarIdx >= GuiStruct_VarPtrCnt)
+      sgl.Y2VarIdx = 0;
+  }
+  if (sgl.CommonByte6 & 0x40)
+  {
+    sgl.R1VarIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (sgl.R1VarIdx >= GuiStruct_VarPtrCnt)
+      sgl.R1VarIdx = 0;
+  }
+  if (sgl.CommonByte6 & 0x80)
+  {
+    sgl.R2VarIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (sgl.R2VarIdx >= GuiStruct_VarPtrCnt)
+      sgl.R2VarIdx = 0;
+  }
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
+                           GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_LINE +
+                           GuiLib_ITEMBIT_FRAME +
+                           GuiLib_ITEMBIT_BLOCK +
+                           GuiLib_ITEMBIT_CIRCLE +
+                           GuiLib_ITEMBIT_ELLIPSE +
+                           GuiLib_ITEMBIT_BITMAP +
+                           GuiLib_ITEMBIT_BACKGROUND +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_ACTIVEAREA +
+                           GuiLib_ITEMBIT_CLIPRECT +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK +
+                           GuiLib_ITEMBIT_TOUCHAREA +
+                           GuiLib_ITEMBIT_SCROLLBOX +
+                           GuiLib_ITEMBIT_GRAPH +
+                           GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                           GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                           GuiLib_ITEMBIT_QUARTERCIRCLE +
+                           GuiLib_ITEMBIT_QUARTERELLIPSE +
+                           GuiLib_ITEMBIT_CHECKBOX +
+                           GuiLib_ITEMBIT_RADIOBUTTON +
+                           GuiLib_ITEMBIT_BUTTON +
+                           GuiLib_ITEMBIT_EDITBOX +
+                           GuiLib_ITEMBIT_PANEL +
+                           GuiLib_ITEMBIT_MEMO +
+                           GuiLib_ITEMBIT_LISTBOX +
+                           GuiLib_ITEMBIT_COMBOBOX +
+                           GuiLib_ITEMBIT_SCROLLAREA +
+                           GuiLib_ITEMBIT_PROGRESSBAR +
+                           GuiLib_ITEMBIT_STRUCTCOND)))
+  {
+    B1 = (sgl.CommonByte3 >> 6) & 0x03;
+    if (B1 != GuiLib_ALIGN_NOCHANGE)
+      sgl.CurItem.TextPar[0].Alignment = B1;
+  }
+
+  B1 = sgl.CommonByte4 & 0x03;
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_EDITBOX +
+                           GuiLib_ITEMBIT_MEMO +
+                           GuiLib_ITEMBIT_LISTBOX +
+                           GuiLib_ITEMBIT_COMBOBOX +
+                           GuiLib_ITEMBIT_PROGRESSBAR +
+                           GuiLib_ITEMBIT_STRUCTCOND)))
+  {
+    if (B1 != GuiLib_PS_NOCHANGE)
+      sgl.CurItem.TextPar[0].Ps = B1;
+  }
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_EDITBOX +
+                           GuiLib_ITEMBIT_MEMO +
+                           GuiLib_ITEMBIT_LISTBOX +
+                           GuiLib_ITEMBIT_COMBOBOX +
+                           GuiLib_ITEMBIT_PROGRESSBAR +
+                           GuiLib_ITEMBIT_STRUCTCOND)))
+  {
+    if (sgl.CommonByte4 & 0x10)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_UNDERLINE;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_UNDERLINE;
+  }
+  else if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_LINE +
+                               GuiLib_ITEMBIT_CIRCLE))
+  {
+    if (sgl.CommonByte4 & 0x10)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_PATTERNEDLINE;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_PATTERNEDLINE;
+  }
+
+  if (sgl.CommonByte4 & 0x20)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_AUTOREDRAWFIELD;
+  else
+    sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_AUTOREDRAWFIELD;
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  if (sgl.CommonByte4 & 0x40)
+    sgl.CurItem.CursorFieldNo = GetItemByte(&sgl.ItemDataPtr);
+  else
+    sgl.CurItem.CursorFieldNo = -1;
+#endif
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+  if (sgl.CommonByte5 & 0x01)
+    BS2 = GetItemByte(&sgl.ItemDataPtr);
+  else
+    BS2 = -1;
+  if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                          GuiLib_ITEMBIT_TEXTBLOCK +
+                          GuiLib_ITEMBIT_VAR +
+                          GuiLib_ITEMBIT_VARBLOCK))
+    sgl.CurItem.BlinkFieldNo = BS2;
+  else
+    sgl.CurItem.BlinkFieldNo = -1;
+#endif
+
+  if (sgl.CommonByte4 & 0x80)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_TRANSLATION;
+  else
+    sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_TRANSLATION;
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON)))
+  {
+    if (sgl.CommonByte5 & 0x80)
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+    else
+    {
+      if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_VAR +
+                               GuiLib_ITEMBIT_VARBLOCK)) ||
+          (sgl.CommonByte4 & 0x80))
+        I = LanguageIndex;
+      else
+        I = 0;
+      B1 = ReadByte(GuiFont_LanguageTextDir[I]);
+    }
+  }
+  else
+    B1 = 0;
+  if (B1)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_REVERSEWRITING;
+  else
+    sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_REVERSEWRITING;
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_LINE)) &&
+      (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_PATTERNEDLINE))
+    sgl.CurItem.LinePattern = GetItemByte(&sgl.ItemDataPtr);
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+  if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                          GuiLib_ITEMBIT_TEXTBLOCK +
+                          GuiLib_ITEMBIT_VAR +
+                          GuiLib_ITEMBIT_VARBLOCK))
+  {
+    if (sgl.CommonByte5 & 0x01)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_BLINKTEXTFIELD;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_BLINKTEXTFIELD;
+  }
+#endif
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON)))
+    sgl.CurItem.TextCnt = GetItemByte(&sgl.ItemDataPtr);
+  else
+    sgl.CurItem.TextCnt = 1;
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK +
+                           GuiLib_ITEMBIT_SCROLLBOX +
+                           GuiLib_ITEMBIT_GRAPH)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON +
+                           GuiLib_ITEMBIT_EDITBOX +
+                           GuiLib_ITEMBIT_LISTBOX +
+                           GuiLib_ITEMBIT_COMBOBOX +
+                           GuiLib_ITEMBIT_PROGRESSBAR +
+                           GuiLib_ITEMBIT_STRUCTCOND)))
+  {
+    if (sgl.CurItem.ItemType == GuiLib_ITEM_BUTTON)
+      J = 3;
+    else
+      J = 1;
+    for (I = 0; I < J; I++)
+    {
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      if (B1 != 0xFF)
+        sgl.CurItem.TextPar[I].FontIndex = B1 + 1;
+    }
+  }
+
+  if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXTBLOCK +
+                          GuiLib_ITEMBIT_VARBLOCK))
+  {
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+    sgl.CurItem.CompPars.CompTextBox.ScrollPos = 0;
+    sgl.CurItem.CompPars.CompTextBox.ScrollIndex = GetItemByte(&sgl.ItemDataPtr);
+#else
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+#endif
+  }
+
+  sgl.CurItem.UpdateType = GuiLib_AUTOREDRAW_MODE;
+
+  if (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_CHECKBOX +
+                          GuiLib_ITEMBIT_RADIOBUTTON +
+                          GuiLib_ITEMBIT_BUTTON +
+                          GuiLib_ITEMBIT_EDITBOX +
+                          GuiLib_ITEMBIT_LISTBOX +
+                          GuiLib_ITEMBIT_COMBOBOX +
+                          GuiLib_ITEMBIT_PROGRESSBAR))
+  {
+    PtrIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (PtrIdx >= GuiStruct_VarPtrCnt)
+      PtrIdx = 0;
+
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_AUTOREDRAWFIELD;
+    sgl.CurItem.UpdateType = GuiLib_UPDATE_ON_CHANGE;
+    sgl.CurItem.VarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
+    sgl.CurItem.VarType = ReadByte(GuiStruct_VarTypeList[PtrIdx]);
+  }
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_VAR +
+                           GuiLib_ITEMBIT_VARBLOCK)) ||
+      (sgl.ItemTypeBit2 &  GuiLib_ITEMBIT_STRUCTCOND))
+  {
+    PtrIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (PtrIdx >= GuiStruct_VarPtrCnt)
+      PtrIdx = 0;
+
+    sgl.CurItem.UpdateType = GuiLib_AUTOREDRAW_MODE;
+    sgl.CurItem.VarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
+    sgl.CurItem.VarType = ReadByte(GuiStruct_VarTypeList[PtrIdx]);
+
+  }
+
+#ifdef GuiConst_AUTOREDRAW_ON_CHANGE
+  if ((sgl.CommonByte4 & 0x20) &&
+     ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK +
+                           GuiLib_ITEMBIT_DOT +
+                           GuiLib_ITEMBIT_LINE +
+                           GuiLib_ITEMBIT_FRAME +
+                           GuiLib_ITEMBIT_BLOCK +
+                           GuiLib_ITEMBIT_CIRCLE +
+                           GuiLib_ITEMBIT_ELLIPSE +
+                           GuiLib_ITEMBIT_BITMAP +
+                           GuiLib_ITEMBIT_BACKGROUND +
+                           GuiLib_ITEMBIT_STRUCTURE)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                           GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                           GuiLib_ITEMBIT_QUARTERCIRCLE +
+                           GuiLib_ITEMBIT_QUARTERELLIPSE))))
+  {
+    PtrIdx = GetItemWord(&sgl.ItemDataPtr);
+    if (PtrIdx >= GuiStruct_VarPtrCnt)
+      PtrIdx = 0;
+
+    sgl.CurItem.UpdateType = GuiLib_AUTOREDRAW_MODE;
+    sgl.CurItem.VarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
+    sgl.CurItem.VarType = ReadByte(GuiStruct_VarTypeList[PtrIdx]);
+  }
+#endif
+
+  if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_FRAME +
+                          GuiLib_ITEMBIT_CIRCLE +
+                          GuiLib_ITEMBIT_ELLIPSE))
+  {
+    sgl.CurItem.FrameThickness = GetItemByte(&sgl.ItemDataPtr);
+  }
+
+  if (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_QUARTERCIRCLE +
+                          GuiLib_ITEMBIT_QUARTERELLIPSE))
+  {
+    sgl.CurItem.FrameThickness = GetItemByte(&sgl.ItemDataPtr) % 4;
+  }
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_STRUCTARRAY)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
+    sgl.CurItem.CompPars.StructCall.IndexCount = GetItemWord(&sgl.ItemDataPtr);
+
+#ifdef GuiConst_ITEM_STRUCTCOND_INUSE
+  if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_STRUCTCOND)
+  {
+    for (CondI = 0; CondI < sgl.CurItem.CompPars.StructCall.IndexCount; CondI++)
+    {
+      sgl.CurItem.CompPars.StructCall.IndexFirst[CondI] = GetItemWord(&sgl.ItemDataPtr);
+      sgl.CurItem.CompPars.StructCall.IndexLast[CondI] = GetItemWord(&sgl.ItemDataPtr);
+      sgl.CurItem.CompPars.StructCall.CallIndex[CondI] = GetItemWord(&sgl.ItemDataPtr);
+    }
+  }
+#endif
+
+  if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_ACTIVEAREA +
+                          GuiLib_ITEMBIT_CLIPRECT))
+  {
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+    if (B1 & 0x01)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_CLIPPING;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_CLIPPING;
+    if (B1 & 0x02)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_ACTIVEAREARELCOORD;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_ACTIVEAREARELCOORD;
+  }
+
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_FORMATTER)
+  {
+    sgl.CurItem.FormatFormat = GetItemByte(&sgl.ItemDataPtr);
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+    if (B1 & 0x01)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATSHOWSIGN;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATSHOWSIGN;
+    if (B1 & 0x02)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATZEROPADDING;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATZEROPADDING;
+    sgl.CurItem.FormatAlignment = (B1 >> 2) & 0x03;
+    if (B1 & 0x10)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATTRAILINGZEROS;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATTRAILINGZEROS;
+    if (B1 & 0x20)
+      sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
+    else
+      sgl.CurItem.TextPar[0].BitFlags &= ~GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
+    sgl.CurItem.FormatFieldWidth = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.FormatDecimals = GetItemByte(&sgl.ItemDataPtr);
+  }
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_STRUCTURE +
+                           GuiLib_ITEMBIT_STRUCTARRAY +
+                           GuiLib_ITEMBIT_BITMAP +
+                           GuiLib_ITEMBIT_BACKGROUND)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_STRUCTCOND)))
+    sgl.CurItem.StructToCallIndex = GetItemWord(&sgl.ItemDataPtr);
+
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+  if (sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXTBLOCK +
+                          GuiLib_ITEMBIT_VARBLOCK))
+  {
+    sgl.CurItem.CompPars.CompTextBox.HorzAlignment = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompTextBox.VertAlignment = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompTextBox.LineDist = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompTextBox.LineDistRelToFont = GetItemByte(&sgl.ItemDataPtr);
+  }
+#endif
+
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_TOUCHAREA)
+    sgl.CurItem.CompPars.CompTouch.AreaNo = GetItemWord(&sgl.ItemDataPtr);
+#endif
+
+  if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_POSCALLBACK)
+    sgl.CurItem.PosCallbackNo = GetItemWord(&sgl.ItemDataPtr);
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_SCROLLBOX)
+  {
+    ScrollBoxIndex = GetItemByte(&sgl.ItemDataPtr);
+    sgl.GlobalScrollBoxIndex = ScrollBoxIndex;
+    sgl.ScrollBoxesAry[ScrollBoxIndex].InUse = GuiLib_SCROLL_STRUCTURE_READ;
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType = GetItemByte(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].MakeUpStructIndex =
+       GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollVisibleLines =
+       GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineVerticalOffset =
+       GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetX = GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineOffsetY = GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeX = GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineSizeY = GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructIndex = GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetX =
+       GetItemWord(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineStructOffsetY =
+       GetItemWord(&sgl.ItemDataPtr);
+    B1 = GetItemByte(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent = 0;
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = 0xFFFF;
+
+    switch (B1)
+    {
+      case GuiLib_COLOR_NOCHANGE:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = sgl.CurItem.ForeColor;
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = sgl.CurItem.ForeColorIndex;
+        break;
+      case GuiLib_COLOR_FORE:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = GuiConst_PIXEL_ON;
+        break;
+      case GuiLib_COLOR_BACK:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = GuiConst_PIXEL_OFF;
+        break;
+      case GuiLib_COLOR_OTHER:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = (GuiConst_INTCOLOR)
+           GetItemColor(&sgl.ItemDataPtr);
+        break;
+      case GuiLib_COLOR_INVERT:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = TmpForeColor;
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = TmpForeColIdx;
+        break;
+      case GuiLib_COLOR_TRANSP:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorTransparent = 1;
+        break;
+      case GuiLib_COLOR_TABLE:
+        sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor =
+           GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+        break;
+      case GuiLib_COLOR_VAR:
+        ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+        if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+          ColVarPtrIdx = 0;
+        ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+        if (ColVarPtr == 0)
+          sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = GuiConst_PIXEL_ON;
+        else
+        {
+          sgl.ScrollBoxesAry[ScrollBoxIndex].LineColor = *ColVarPtr;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].LineColorIndex = ColVarPtrIdx;
+        }
+        break;
+    }
+    sgl.ScrollBoxesAry[ScrollBoxIndex].WrapMode = GetItemByte(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollStartOfs = GetItemByte(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollMode = GetItemByte(&sgl.ItemDataPtr);
+    sgl.ScrollBoxesAry[ScrollBoxIndex].LineMarkerCount = GetItemByte(&sgl.ItemDataPtr);
+    for (L = 0; L < sgl.ScrollBoxesAry[ScrollBoxIndex].LineMarkerCount; L++)
+    {
+      sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = 0xFFFF;
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = sgl.CurItem.BackColor;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = sgl.CurItem.BackColorIndex;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = GuiConst_PIXEL_ON;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = GuiConst_PIXEL_OFF;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = TmpForeColor;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = TmpForeColIdx;
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 1;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = GuiConst_PIXEL_ON;
+          else
+          {
+            sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColor[L] = *ColVarPtr;
+            sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorIndex[L] = ColVarPtrIdx;
+          }
+          sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerColorTransparent[L] = 0;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStructIndex[L] =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerDrawingOrder[L] =
+         GetItemByte(&sgl.ItemDataPtr);
+      if (L || (sgl.ScrollBoxesAry[ScrollBoxIndex].ScrollBoxType))
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[L] = 0;
+      else
+        sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerSize[L] = 1;
+      sgl.ScrollBoxesAry[ScrollBoxIndex].MarkerStartLine[L] = 0;
+    }
+
+    sgl.ScrollBoxesAry[ScrollBoxIndex].BarType = GetItemByte(&sgl.ItemDataPtr);
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType != GuiLib_MARKER_NONE)
+    {
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMode = GetItemByte(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionX = GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarPositionY = GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeX = GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarSizeY = GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarStructIndex = GetItemWord(&sgl.ItemDataPtr);
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = TmpBackColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarForeColor = *ColVarPtr;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarTransparent = 0;
+      switch ((B1 & 0x38) >> 3)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = TmpForeColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarTransparent = 1;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarBackColor = *ColVarPtr;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarThickness = GetItemByte(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerLeftOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerRightOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTopOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBottomOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarIconPtr =
+         (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+#ifdef GuiConst_CHARMODE_ANSI
+      sgl.ItemDataPtr++;
+#else
+      sgl.ItemDataPtr += 2;
+#endif
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconFont =
+         GetItemByte(&sgl.ItemDataPtr) + 1;
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetX =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerIconOffsetY =
+         GetItemWord(&sgl.ItemDataPtr);
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor =
+             GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor =
+             (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = TmpBackColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerForeColor = *ColVarPtr;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent = 0;
+      switch ((B1 & 0x38) >> 3)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = sgl.CurItem.BackColor;
+          break;
+
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = GuiConst_PIXEL_ON;
+          break;
+
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor =
+             GuiConst_PIXEL_OFF;
+          break;
+
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor =
+             (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = TmpForeColor;
+          break;
+
+        case GuiLib_COLOR_TRANSP:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerTransparent = 1;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBackColor = *ColVarPtr;
+          break;
+      }
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarType == GuiLib_MARKER_BITMAP)
+      {
+        sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex =
+           GetItemWord(&sgl.ItemDataPtr);
+#ifdef GuiConst_REMOTE_BITMAP_DATA
+        GuiLib_RemoteDataReadBlock(
+           (GuiConst_INT32U PrefixRom)GuiStruct_BitmapPtrList[
+           sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex], 4,
+           BitmapHeader);
+        PixelDataPtr = &BitmapHeader[0] + 2;
+#else
+        PixelDataPtr = (GuiConst_INT8U PrefixRom *)ReadWord(GuiStruct_BitmapPtrList[
+           sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIndex]) + 2;
+#endif
+        sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapHeight =
+           (GuiConst_INT16S)*PixelDataPtr;
+        PixelDataPtr++;
+        sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapHeight +=
+           256*(GuiConst_INT16S)*PixelDataPtr;
+        B1 = GetItemByte(&sgl.ItemDataPtr);
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+        sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent =
+           (B1 & 0x01);
+        if (sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent)
+#ifdef GuiConst_COLOR_DEPTH_1
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapTranspColor =
+             (B1 >> 1) & 0x01;
+#else
+          sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapTranspColor =
+             GetItemColor(&sgl.ItemDataPtr);
+#endif
+#else
+        sgl.ScrollBoxesAry[ScrollBoxIndex].BarMarkerBitmapIsTransparent = 0;
+#endif
+      }
+    }
+#endif
+
+    sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType = GetItemByte(&sgl.ItemDataPtr);
+#ifndef GuiConst_SCROLLITEM_INDICATOR_NONE
+    if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType != GuiLib_INDICATOR_NONE)
+    {
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMode = GetItemByte(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionX =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorPositionY =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeX =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorSizeY =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorStructIndex =
+          GetItemWord(&sgl.ItemDataPtr);
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor =
+             GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor =
+             (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = TmpBackColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorForeColor = *ColVarPtr;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorTransparent = 0;
+      switch ((B1 & 0x38) >> 3)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = sgl.CurItem.BackColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor =
+              GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor =
+             (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = TmpForeColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorTransparent = 1;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorBackColor = *ColVarPtr;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorThickness =
+         GetItemByte(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerLeftOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerRightOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTopOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBottomOffset =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorIconPtr =
+         (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+#ifdef GuiConst_CHARMODE_ANSI
+      sgl.ItemDataPtr++;
+#else
+      sgl.ItemDataPtr += 2;
+#endif
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconFont =
+         GetItemByte(&sgl.ItemDataPtr) + 1;
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetX =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerIconOffsetY =
+         GetItemWord(&sgl.ItemDataPtr);
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
+             sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
+             GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
+             GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
+             (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
+             TmpBackColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerForeColor = *ColVarPtr;
+          break;
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTransparent = 0;
+      switch ((B1 & 0x38) >> 3)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
+             sgl.CurItem.BackColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
+             GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
+             GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
+             (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
+             TmpForeColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerTransparent = 1;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor = GuiConst_PIXEL_ON;
+          else
+            sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBackColor = *ColVarPtr;
+          break;
+      }
+      if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorType == GuiLib_MARKER_BITMAP)
+      {
+        sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIndex =
+           GetItemWord(&sgl.ItemDataPtr);
+        B1 = GetItemByte(&sgl.ItemDataPtr);
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+        sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent =
+           (B1 & 0x01);
+        if (sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent)
+#ifdef GuiConst_COLOR_DEPTH_1
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapTranspColor =
+             (B1 >> 1) & 0x01;
+#else
+          sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapTranspColor =
+             GetItemColor(&sgl.ItemDataPtr);
+#endif
+#else
+        sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorMarkerBitmapIsTransparent = 0;
+#endif
+      }
+      sgl.ScrollBoxesAry[ScrollBoxIndex].IndicatorLine = -1;
+    }
+#endif
+  }
+#endif
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPH)
+  {
+    GraphIndex = GetItemByte(&sgl.ItemDataPtr);
+    sgl.GlobalGraphIndex = GraphIndex;
+
+    sgl.GraphAry[GraphIndex].InUse = GuiLib_GRAPH_STRUCTURE_USED;
+    sgl.GraphAry[GraphIndex].OriginOffsetX = GetItemWord(&sgl.ItemDataPtr);
+    sgl.GraphAry[GraphIndex].OriginOffsetY = GetItemWord(&sgl.ItemDataPtr);
+    sgl.GraphAry[GraphIndex].ForeColor = sgl.CurItem.ForeColor;
+    sgl.GraphAry[GraphIndex].BackColor = sgl.CurItem.BackColor;
+
+    for (Axis = GuiLib_GRAPHAXIS_X; Axis <= GuiLib_GRAPHAXIS_Y; Axis++)
+    {
+      sgl.GraphAry[GraphIndex].GraphAxesCnt[Axis] = GetItemByte(&sgl.ItemDataPtr);
+      for (L = 0; L < sgl.GraphAry[GraphIndex].GraphAxesCnt[Axis]; L++)
+      {
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags = 0;
+        B = GetItemByte(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Visible = 1;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Line = B & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].LineBetweenAxes = (B >> 7) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].LineNegative = (B >> 1) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Arrow = (B >> 2) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMajor = (B >> 3) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMinor = (B >> 4) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Numbers = (B >> 5) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersAtOrigo = (B >> 6) & 0x01;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Offset =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].ArrowLength =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].ArrowWidth =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMajorLength =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMajorWidth =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMinorLength =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].TicksMinorWidth =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMinValue =
+           GetItemLong(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMinValueOrg =
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMinValue;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMaxValue =
+           GetItemLong(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMaxValueOrg =
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersMaxValue;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersStepMajor =
+           GetItemLong(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersStepMinor =
+           GetItemLong(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersOffset =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].NumbersAtEnd =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatFieldWidth =
+           GetItemByte(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatDecimals =
+           GetItemByte(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatAlignment =
+           GetItemByte(&sgl.ItemDataPtr);
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].FormatFormat =
+           GetItemByte(&sgl.ItemDataPtr);
+        B = GetItemByte(&sgl.ItemDataPtr);
+        if (B & 0x01)
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATSHOWSIGN;
+        else
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATSHOWSIGN;
+        if (B & 0x02)
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATZEROPADDING;
+        else
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATZEROPADDING;
+        if (B & 0x04)
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATTRAILINGZEROS;
+        else
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATTRAILINGZEROS;
+        if (B & 0x08)
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags |= GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
+        else
+          sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].BitFlags &= ~GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
+        sgl.GraphAry[GraphIndex].GraphAxes[L][Axis].Scale = 10000;
+      }
+    }
+
+    sgl.GraphAry[GraphIndex].GraphDataSetCnt = GetItemByte(&sgl.ItemDataPtr);
+    for (L = 0; L < sgl.GraphAry[GraphIndex].GraphDataSetCnt; L++)
+    {
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].DataSize = 0;
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].DataFirst = 0;
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].DataCount = 0;
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].AxisIndexX = 0;
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].AxisIndexY = 0;
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].Visible = 1;
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].Representation =
+         GetItemByte(&sgl.ItemDataPtr);
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].Width =
+         GetItemWord(&sgl.ItemDataPtr);
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].Thickness =
+         GetItemWord(&sgl.ItemDataPtr);
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = sgl.CurItem.ForeColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = TmpBackColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = GuiConst_PIXEL_ON;
+          else
+            sgl.GraphAry[GraphIndex].GraphDataSets[L].ForeColor = *ColVarPtr;
+          break;
+      }
+      sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColorTransparent = 0;
+      switch ((B1 & 0x38) >> 3)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = sgl.CurItem.BackColor;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = GuiConst_PIXEL_ON;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = GuiConst_PIXEL_OFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = TmpForeColor;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColorTransparent = 1;
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+            sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = GuiConst_PIXEL_ON;
+          else
+            sgl.GraphAry[GraphIndex].GraphDataSets[L].BackColor = *ColVarPtr;
+          break;
+      }
+    }
+  }
+#endif
+
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPHICSLAYER)
+  {
+    GraphicsLayerIndex = GetItemByte(&sgl.ItemDataPtr);
+    sgl.GlobalGraphicsLayerIndex = GraphicsLayerIndex;
+
+    sgl.GraphicsLayerList[GraphicsLayerIndex].InUse = GuiLib_GRAPHICS_LAYER_USED;
+    sgl.GraphicsLayerList[GraphicsLayerIndex].SizeMode = GetItemByte(&sgl.ItemDataPtr);
+    sgl.GraphicsLayerList[GraphicsLayerIndex].InitMode = GetItemByte(&sgl.ItemDataPtr);
+  }
+
+  if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPHICSFILTER)
+  {
+    GraphicsFilterIndex = GetItemByte(&sgl.ItemDataPtr);
+    sgl.GlobalGraphicsFilterIndex = GraphicsFilterIndex;
+
+    sgl.GraphicsFilterList[GraphicsFilterIndex].InUse = GuiLib_GRAPHICS_FILTER_USED;
+    sgl.GraphicsFilterList[GraphicsFilterIndex].SourceLayerIndexNo =
+       GetItemWord(&sgl.ItemDataPtr);
+    sgl.GraphicsFilterList[GraphicsFilterIndex].DestLayerIndexNo =
+       GetItemWord(&sgl.ItemDataPtr);
+    sgl.GraphicsFilterList[GraphicsFilterIndex].ContAtLayerIndexNo =
+       GetItemWord(&sgl.ItemDataPtr);
+    for (I = 0; I <= 9; I++)
+    {
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      if (B1 == 0)
+      {
+        sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarType[I] = GuiLib_VAR_NONE;
+        sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarPtr[I] = 0;
+        sgl.GraphicsFilterList[GraphicsFilterIndex].ParValueNum[I] =
+           GetItemLong(&sgl.ItemDataPtr);
+      }
+      else
+      {
+        PtrIdx = GetItemWord(&sgl.ItemDataPtr);
+        if (PtrIdx >= GuiStruct_VarPtrCnt)
+          PtrIdx = 0;
+
+        sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarType[I] =
+            ReadByte(GuiStruct_VarTypeList[PtrIdx]);
+        sgl.GraphicsFilterList[GraphicsFilterIndex].ParVarPtr[I] =
+            (void*)ReadWord(GuiStruct_VarPtrList[PtrIdx]);
+        sgl.GraphicsFilterList[GraphicsFilterIndex].ParValueNum[I] = 0;
+      }
+    }
+  }
+#endif
+
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+  if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_CHECKBOX)
+  {
+    sgl.CurItem.CompPars.CompCheckBox.Style = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompCheckBox.Size = GetItemByte(&sgl.ItemDataPtr);
+    switch (sgl.CurItem.CompPars.CompCheckBox.Style)
+    {
+      case GuiLib_CHECKBOX_ICON:
+        sgl.CurItem.CompPars.CompCheckBox.IconPtr =
+           (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+  #ifdef GuiConst_CHARMODE_ANSI
+        sgl.ItemDataPtr++;
+  #else
+        sgl.ItemDataPtr += 2;
+  #endif
+        sgl.CurItem.CompPars.CompCheckBox.IconFont = GetItemByte(&sgl.ItemDataPtr) + 1;
+        sgl.CurItem.CompPars.CompCheckBox.IconOffsetX = GetItemWord(&sgl.ItemDataPtr);
+        sgl.CurItem.CompPars.CompCheckBox.IconOffsetY = GetItemWord(&sgl.ItemDataPtr);
+        break;
+      case GuiLib_CHECKBOX_BITMAP:
+        sgl.CurItem.CompPars.CompCheckBox.BitmapIndex = GetItemWord(&sgl.ItemDataPtr);
+        B1 = GetItemByte(&sgl.ItemDataPtr);
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+        sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent = (B1 & 0x01);
+        if (sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent)
+  #ifdef GuiConst_COLOR_DEPTH_1
+          sgl.CurItem.CompPars.CompCheckBox.BitmapTranspColor = (B1 >> 1) & 0x01;
+  #else
+          sgl.CurItem.CompPars.CompCheckBox.BitmapTranspColor =
+             GetItemColor(&sgl.ItemDataPtr);
+  #endif
+  #else
+        sgl.CurItem.CompPars.CompCheckBox.BitmapIsTransparent = 0;
+  #endif
+        break;
+    }
+
+    sgl.CurItem.CompPars.CompCheckBox.MarkStyle = GetItemByte(&sgl.ItemDataPtr);
+    if (sgl.CurItem.CompPars.CompCheckBox.MarkStyle != GuiLib_CHECKBOX_MARK_BITMAP)
+    {
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.CurItem.CompPars.CompCheckBox.MarkColor = sgl.CurItem.ForeColor;
+          sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = sgl.CurItem.ForeColorIndex;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.CurItem.CompPars.CompCheckBox.MarkColor = GuiConst_PIXEL_ON;
+          sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.CurItem.CompPars.CompCheckBox.MarkColor = GuiConst_PIXEL_OFF;
+          sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.CurItem.CompPars.CompCheckBox.MarkColor = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.CurItem.CompPars.CompCheckBox.MarkColor = TmpBackColor;
+          sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = TmpBackColIdx;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.CurItem.CompPars.CompCheckBox.MarkColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+          {
+            sgl.CurItem.CompPars.CompCheckBox.MarkColor = GuiConst_PIXEL_ON;
+            sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = 0xFFFF;
+          }
+          else
+          {
+            sgl.CurItem.CompPars.CompCheckBox.MarkColor = *ColVarPtr;
+            sgl.CurItem.CompPars.CompCheckBox.MarkColorIndex = ColVarPtrIdx;
+          }
+          break;
+      }
+    }
+    switch (sgl.CurItem.CompPars.CompCheckBox.MarkStyle)
+    {
+      case GuiLib_CHECKBOX_MARK_ICON:
+        sgl.CurItem.CompPars.CompCheckBox.MarkIconPtr =
+           (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+  #ifdef GuiConst_CHARMODE_ANSI
+        sgl.ItemDataPtr++;
+  #else
+        sgl.ItemDataPtr += 2;
+  #endif
+        sgl.CurItem.CompPars.CompCheckBox.MarkIconFont =
+           GetItemByte(&sgl.ItemDataPtr) + 1;
+        sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY =
+           GetItemWord(&sgl.ItemDataPtr);
+        break;
+      case GuiLib_CHECKBOX_MARK_BITMAP:
+        sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIndex =
+           GetItemWord(&sgl.ItemDataPtr);
+        B1 = GetItemByte(&sgl.ItemDataPtr);
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+        sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent = (B1 & 0x01);
+        if (sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent)
+  #ifdef GuiConst_COLOR_DEPTH_1
+          sgl.CurItem.CompPars.CompCheckBox.MarkBitmapTranspColor =
+             (B1 >> 1) & 0x01;
+  #else
+          sgl.CurItem.CompPars.CompCheckBox.MarkBitmapTranspColor =
+             GetItemColor(&sgl.ItemDataPtr);
+  #endif
+  #else
+        sgl.CurItem.CompPars.CompCheckBox.MarkBitmapIsTransparent = 0;
+  #endif
+        sgl.CurItem.CompPars.CompCheckBox.MarkOffsetX =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.CurItem.CompPars.CompCheckBox.MarkOffsetY =
+           GetItemWord(&sgl.ItemDataPtr);
+        break;
+    }
+  }
+#endif
+
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+  if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_RADIOBUTTON)
+  {
+    sgl.CurItem.CompPars.CompRadioButton.Style = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompRadioButton.Size = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompRadioButton.Count = GetItemByte(&sgl.ItemDataPtr);
+    sgl.CurItem.CompPars.CompRadioButton.InterDistance = GetItemWord(&sgl.ItemDataPtr);
+    switch (sgl.CurItem.CompPars.CompRadioButton.Style)
+    {
+      case GuiLib_RADIOBUTTON_ICON:
+        sgl.CurItem.CompPars.CompRadioButton.IconPtr =
+           (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+  #ifdef GuiConst_CHARMODE_ANSI
+        sgl.ItemDataPtr++;
+  #else
+        sgl.ItemDataPtr += 2;
+  #endif
+        sgl.CurItem.CompPars.CompRadioButton.IconFont = GetItemByte(&sgl.ItemDataPtr) + 1;
+        sgl.CurItem.CompPars.CompRadioButton.IconOffsetX = GetItemWord(&sgl.ItemDataPtr);
+        sgl.CurItem.CompPars.CompRadioButton.IconOffsetY = GetItemWord(&sgl.ItemDataPtr);
+        break;
+      case GuiLib_RADIOBUTTON_BITMAP:
+        sgl.CurItem.CompPars.CompRadioButton.BitmapIndex = GetItemWord(&sgl.ItemDataPtr);
+        B1 = GetItemByte(&sgl.ItemDataPtr);
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+        sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent = (B1 & 0x01);
+        if (sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent)
+  #ifdef GuiConst_COLOR_DEPTH_1
+          sgl.CurItem.CompPars.CompRadioButton.BitmapTranspColor = (B1 >> 1) & 0x01;
+  #else
+          sgl.CurItem.CompPars.CompRadioButton.BitmapTranspColor =
+             GetItemColor(&sgl.ItemDataPtr);
+  #endif
+  #else
+        sgl.CurItem.CompPars.CompRadioButton.BitmapIsTransparent = 0;
+  #endif
+        break;
+    }
+
+    sgl.CurItem.CompPars.CompRadioButton.MarkStyle = GetItemByte(&sgl.ItemDataPtr);
+    if (sgl.CurItem.CompPars.CompRadioButton.MarkStyle != GuiLib_RADIOBUTTON_MARK_BITMAP)
+    {
+      B1 = GetItemByte(&sgl.ItemDataPtr);
+      switch (B1 & 0x07)
+      {
+        case GuiLib_COLOR_NOCHANGE:
+          sgl.CurItem.CompPars.CompRadioButton.MarkColor = sgl.CurItem.ForeColor;
+          sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = sgl.CurItem.ForeColorIndex;
+          break;
+        case GuiLib_COLOR_FORE:
+          sgl.CurItem.CompPars.CompRadioButton.MarkColor = GuiConst_PIXEL_ON;
+          sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_BACK:
+          sgl.CurItem.CompPars.CompRadioButton.MarkColor = GuiConst_PIXEL_OFF;
+          sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_OTHER:
+          sgl.CurItem.CompPars.CompRadioButton.MarkColor = (GuiConst_INTCOLOR)
+             GetItemColor(&sgl.ItemDataPtr);
+          sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_INVERT:
+          sgl.CurItem.CompPars.CompRadioButton.MarkColor = TmpBackColor;
+          sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = TmpBackColIdx;
+          break;
+        case GuiLib_COLOR_TRANSP:
+          break;
+        case GuiLib_COLOR_TABLE:
+          sgl.CurItem.CompPars.CompRadioButton.MarkColor =
+             GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+          sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
+          break;
+        case GuiLib_COLOR_VAR:
+          ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+          if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+            ColVarPtrIdx = 0;
+          ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+          if (ColVarPtr == 0)
+          {
+            sgl.CurItem.CompPars.CompRadioButton.MarkColor = GuiConst_PIXEL_ON;
+            sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = 0xFFFF;
+          }
+          else
+          {
+            sgl.CurItem.CompPars.CompRadioButton.MarkColor = *ColVarPtr;
+            sgl.CurItem.CompPars.CompRadioButton.MarkColorIndex = ColVarPtrIdx;
+          }
+          break;
+      }
+    }
+    switch (sgl.CurItem.CompPars.CompRadioButton.MarkStyle)
+    {
+      case GuiLib_RADIOBUTTON_MARK_ICON:
+        sgl.CurItem.CompPars.CompRadioButton.MarkIconPtr =
+           (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+  #ifdef GuiConst_CHARMODE_ANSI
+        sgl.ItemDataPtr++;
+  #else
+        sgl.ItemDataPtr += 2;
+  #endif
+        sgl.CurItem.CompPars.CompRadioButton.MarkIconFont =
+           GetItemByte(&sgl.ItemDataPtr) + 1;
+        sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY =
+           GetItemWord(&sgl.ItemDataPtr);
+        break;
+      case GuiLib_RADIOBUTTON_MARK_BITMAP:
+        sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIndex =
+           GetItemWord(&sgl.ItemDataPtr);
+        B1 = GetItemByte(&sgl.ItemDataPtr);
+  #ifdef GuiConst_BITMAP_SUPPORT_ON
+        sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent = (B1 & 0x01);
+        if (sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent)
+  #ifdef GuiConst_COLOR_DEPTH_1
+          sgl.CurItem.CompPars.CompRadioButton.MarkBitmapTranspColor =
+             (B1 >> 1) & 0x01;
+  #else
+          sgl.CurItem.CompPars.CompRadioButton.MarkBitmapTranspColor =
+             GetItemColor(&sgl.ItemDataPtr);
+  #endif
+  #else
+        sgl.CurItem.CompPars.CompRadioButton.MarkBitmapIsTransparent = 0;
+  #endif
+        sgl.CurItem.CompPars.CompRadioButton.MarkOffsetX =
+           GetItemWord(&sgl.ItemDataPtr);
+        sgl.CurItem.CompPars.CompRadioButton.MarkOffsetY =
+           GetItemWord(&sgl.ItemDataPtr);
+        break;
+    }
+  }
+#endif
+
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+  if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON)
+  {
+    sgl.CurItem.CompPars.CompButton.Layout = GetItemByte(&sgl.ItemDataPtr);
+
+    sgl.CurItem.CompPars.CompButton.BodyStyle = GetItemByte(&sgl.ItemDataPtr);
+    if ((sgl.CurItem.CompPars.CompButton.BodyStyle == GuiLib_BUTTON_BODY_ICON) ||
+        (sgl.CurItem.CompPars.CompButton.BodyStyle == GuiLib_BUTTON_BODY_BITMAP))
+    {
+      sgl.CurItem.CompPars.CompButton.BodyLikeUp = GetItemByte(&sgl.ItemDataPtr);
+      for (I = 0; I < 3; I++)
+        if ((I == 0) ||
+           ((I == 1) && !(sgl.CurItem.CompPars.CompButton.BodyLikeUp & 0x01)) ||
+           ((I == 2) && !(sgl.CurItem.CompPars.CompButton.BodyLikeUp & 0x02)))
+        {
+          switch (sgl.CurItem.CompPars.CompButton.BodyStyle)
+          {
+            case GuiLib_BUTTON_BODY_ICON:
+              sgl.CurItem.CompPars.CompButton.BodyIconPtr[I] =
+                 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+        #ifdef GuiConst_CHARMODE_ANSI
+              sgl.ItemDataPtr++;
+        #else
+              sgl.ItemDataPtr += 2;
+        #endif
+              sgl.CurItem.CompPars.CompButton.BodyIconFont[I] =
+                 GetItemByte(&sgl.ItemDataPtr) + 1;
+              sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              break;
+            case GuiLib_BUTTON_BODY_BITMAP:
+              sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              B1 = GetItemByte(&sgl.ItemDataPtr);
+        #ifdef GuiConst_BITMAP_SUPPORT_ON
+              sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I] =
+                 (B1 & 0x01);
+              if (sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I])
+        #ifdef GuiConst_COLOR_DEPTH_1
+                sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[I] =
+                   (B1 >> 1) & 0x01;
+        #else
+                sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[I] =
+                   GetItemColor(&sgl.ItemDataPtr);
+        #endif
+        #else
+              sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I] = 0;
+        #endif
+              break;
+          }
+        }
+        else
+        {
+          switch (sgl.CurItem.CompPars.CompButton.BodyStyle)
+          {
+            case GuiLib_BUTTON_BODY_ICON:
+              sgl.CurItem.CompPars.CompButton.BodyIconPtr[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyIconPtr[0];
+              sgl.CurItem.CompPars.CompButton.BodyIconFont[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyIconFont[0];
+              sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyIconOffsetX[0];
+              sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyIconOffsetY[0];
+              break;
+            case GuiLib_BUTTON_BODY_BITMAP:
+              sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyBitmapIndex[0];
+              sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyBitmapIsTransparent[0];
+              sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[I] =
+                 sgl.CurItem.CompPars.CompButton.BodyBitmapTranspColor[0];
+              break;
+          }
+        }
+    }
+
+    if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_GLYPH)
+    {
+      sgl.CurItem.CompPars.CompButton.TextLikeUp = GetItemByte(&sgl.ItemDataPtr);
+      for (I = 0; I < 3; I++)
+      {
+        if ((I == 0) ||
+           ((I == 1) && !(sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x04)) ||
+           ((I == 2) && !(sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x08)))
+        {
+          B1 = GetItemByte(&sgl.ItemDataPtr);
+          switch (B1 & 0x07)
+          {
+            case GuiLib_COLOR_NOCHANGE:
+              sgl.CurItem.CompPars.CompButton.TextColor[I] = sgl.CurItem.ForeColor;
+              sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = sgl.CurItem.ForeColorIndex;
+              break;
+            case GuiLib_COLOR_FORE:
+              sgl.CurItem.CompPars.CompButton.TextColor[I] = GuiConst_PIXEL_ON;
+              sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
+              break;
+            case GuiLib_COLOR_BACK:
+              sgl.CurItem.CompPars.CompButton.TextColor[I] = GuiConst_PIXEL_OFF;
+              sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
+              break;
+            case GuiLib_COLOR_OTHER:
+              sgl.CurItem.CompPars.CompButton.TextColor[I] =
+                 (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+              sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
+              break;
+            case GuiLib_COLOR_INVERT:
+              sgl.CurItem.CompPars.CompButton.TextColor[I] = TmpBackColor;
+              sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = TmpBackColIdx;
+              break;
+            case GuiLib_COLOR_TRANSP:
+              break;
+            case GuiLib_COLOR_TABLE:
+              sgl.CurItem.CompPars.CompButton.TextColor[I] =
+                 GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+              sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
+              break;
+            case GuiLib_COLOR_VAR:
+              ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+              if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+                ColVarPtrIdx = 0;
+              ColVarPtr = (GuiConst_INTCOLOR*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+              if (ColVarPtr == 0)
+              {
+                sgl.CurItem.CompPars.CompButton.TextColor[I] = GuiConst_PIXEL_ON;
+                sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = 0xFFFF;
+              }
+              else
+              {
+                sgl.CurItem.CompPars.CompButton.TextColor[I] = *ColVarPtr;
+                sgl.CurItem.CompPars.CompButton.TextColorIndex[I] = ColVarPtrIdx;
+              }
+              break;
+          }
+
+          B1 = GetItemByte(&sgl.ItemDataPtr);
+          if (B1 & 0x04)
+            sgl.CurItem.TextPar[I].BitFlags |= GuiLib_BITFLAG_UNDERLINE;
+          else
+            sgl.CurItem.TextPar[I].BitFlags &= ~GuiLib_BITFLAG_UNDERLINE;
+          B1 = B1 & 0x03;
+          if (B1 != GuiLib_PS_NOCHANGE)
+            sgl.CurItem.TextPar[I].Ps = B1;
+        }
+        else
+        {
+          sgl.CurItem.CompPars.CompButton.TextColor[I] =
+             sgl.CurItem.CompPars.CompButton.TextColor[0];
+          sgl.CurItem.TextPar[I] = sgl.CurItem.TextPar[0];
+        }
+      }
+    }
+
+    if (sgl.CurItem.CompPars.CompButton.Layout != GuiLib_BUTTON_LAYOUT_TEXT)
+    {
+      sgl.CurItem.CompPars.CompButton.GlyphStyle = GetItemByte(&sgl.ItemDataPtr);
+      sgl.CurItem.CompPars.CompButton.GlyphLikeUp = GetItemByte(&sgl.ItemDataPtr);
+      for (I = 0; I < 3; I++)
+        if ((I == 0) ||
+           ((I == 1) && !(sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x01)) ||
+           ((I == 2) && !(sgl.CurItem.CompPars.CompButton.GlyphLikeUp & 0x02)))
+        {
+          switch (sgl.CurItem.CompPars.CompButton.GlyphStyle)
+          {
+            case GuiLib_BUTTON_GLYPH_ICON:
+              B1 = GetItemByte(&sgl.ItemDataPtr);
+              switch (B1 & 0x07)
+              {
+                case GuiLib_COLOR_NOCHANGE:
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = sgl.CurItem.ForeColor;
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = sgl.CurItem.ForeColorIndex;
+                  break;
+                case GuiLib_COLOR_FORE:
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = GuiConst_PIXEL_ON;
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
+                  break;
+                case GuiLib_COLOR_BACK:
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = GuiConst_PIXEL_OFF;
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
+                  break;
+                case GuiLib_COLOR_OTHER:
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] =
+                     (GuiConst_INTCOLOR)GetItemColor(&sgl.ItemDataPtr);
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
+                  break;
+                case GuiLib_COLOR_INVERT:
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = TmpBackColor;
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = TmpBackColIdx;
+                  break;
+                case GuiLib_COLOR_TRANSP:
+                  break;
+                case GuiLib_COLOR_TABLE:
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] =
+                     GuiStruct_ColorTable[GetItemByte(&sgl.ItemDataPtr)];
+                  sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
+                  break;
+                case GuiLib_COLOR_VAR:
+                  ColVarPtrIdx = GetItemWord(&sgl.ItemDataPtr);
+                  if (ColVarPtrIdx >= GuiStruct_VarPtrCnt)
+                    ColVarPtrIdx = 0;
+                  ColVarPtr = (GuiConst_INTCOLOR*)ReadWord(GuiStruct_VarPtrList[ColVarPtrIdx]);
+                  if (ColVarPtr == 0)
+                  {
+                    sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = GuiConst_PIXEL_ON;
+                    sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = 0xFFFF;
+                  }
+                  else
+                  {
+                    sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] = *ColVarPtr;
+                    sgl.CurItem.CompPars.CompButton.GlyphIconColorIndex[I] = ColVarPtrIdx;
+                  }
+                  break;
+              }
+
+              sgl.CurItem.CompPars.CompButton.GlyphIconPtr[I] =
+                 (GuiConst_TEXT PrefixRom *)sgl.ItemDataPtr;
+        #ifdef GuiConst_CHARMODE_ANSI
+              sgl.ItemDataPtr++;
+        #else
+              sgl.ItemDataPtr += 2;
+        #endif
+              sgl.CurItem.CompPars.CompButton.GlyphIconFont[I] =
+                 GetItemByte(&sgl.ItemDataPtr) + 1;
+              sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              break;
+            case GuiLib_BUTTON_GLYPH_BITMAP:
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              B1 = GetItemByte(&sgl.ItemDataPtr);
+        #ifdef GuiConst_BITMAP_SUPPORT_ON
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I] =
+                 (B1 & 0x01);
+              if (sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I])
+        #ifdef GuiConst_COLOR_DEPTH_1
+                sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[I] =
+                   (B1 >> 1) & 0x01;
+        #else
+                sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[I] =
+                   GetItemColor(&sgl.ItemDataPtr);
+        #endif
+        #else
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I] = 0;
+        #endif
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[I] =
+                 GetItemWord(&sgl.ItemDataPtr);
+              break;
+          }
+        }
+        else
+        {
+          switch (sgl.CurItem.CompPars.CompButton.GlyphStyle)
+          {
+            case GuiLib_BUTTON_GLYPH_ICON:
+              sgl.CurItem.CompPars.CompButton.GlyphIconColor[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphIconColor[0];
+              sgl.CurItem.CompPars.CompButton.GlyphIconPtr[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphIconPtr[0];
+              sgl.CurItem.CompPars.CompButton.GlyphIconFont[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphIconFont[0];
+              sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetX[0];
+              sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphIconOffsetY[0];
+              break;
+            case GuiLib_BUTTON_GLYPH_BITMAP:
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphBitmapIndex[0];
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphBitmapIsTransparent[0];
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphBitmapTranspColor[0];
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetX[0];
+              sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[I] =
+                 sgl.CurItem.CompPars.CompButton.GlyphBitmapOffsetY[0];
+              break;
+          }
+        }
+    }
+  }
+#endif
+
+#ifdef GuiConst_ITEM_PANEL_INUSE
+  if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_PANEL)
+  {
+    sgl.CurItem.CompPars.CompPanel.Style = GetItemByte(&sgl.ItemDataPtr);
+  }
+#endif
+
+  if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_TEXT +
+                           GuiLib_ITEMBIT_TEXTBLOCK)) ||
+      (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_BUTTON)))
+  {
+    if (sgl.CommonByte4 & 0x80)
+    {
+#ifdef GuiConst_LANGUAGE_ALL_ACTIVE
+      N = GuiConst_LANGUAGE_CNT;
+      W1 = LanguageIndex;
+#else
+      N = GuiConst_LANGUAGE_ACTIVE_CNT;
+      W1 = ReadWord(GuiFont_LanguageIndex[LanguageIndex]);
+#endif
+    }
+    else
+    {
+      N = 1;
+      W1 = 0;
+    }
+
+    J = 0;
+    for (I = 0; I < sgl.CurItem.TextCnt; I++)
+    {
+#ifndef GuiConst_REMOTE_TEXT_DATA
+      TxtSum1 = 0;
+      TxtSum2 = 0;
+#endif
+      for (X = 0; X < N; X++)
+      {
+#ifdef GuiConst_REMOTE_TEXT_DATA
+        Ti = GetItemWord(&sgl.ItemDataPtr);
+        if (X == W1)
+        {
+          sgl.CurItem.TextLength[J] = GetRemoteText(Ti);
+          sgl.CurItem.TextIndex[J] = Ti;
+          sgl.CurItem.TextPtr[J] = &sgl.GuiLib_RemoteTextBuffer[0];
+        }
+#else
+        TxtSize = GetItemByte(&sgl.ItemDataPtr);
+        if (TxtSize == 0xFF)
+          TxtSize = GetItemWord(&sgl.ItemDataPtr);
+
+        if (X == W1)
+        {
+          sgl.CurItem.TextLength[J] = GuiLib_GET_MIN(TxtSize, GuiConst_MAX_TEXT_LEN);
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+          TxtReadSize = sgl.CurItem.TextLength[J] + 1;
+#ifndef GuiConst_CHARMODE_ANSI
+          TxtReadSize *= 2;
+#endif
+#endif
+        }
+
+        TxtSize++;
+#ifndef GuiConst_CHARMODE_ANSI
+        TxtSize *= 2;
+#endif
+
+#ifndef GuiConst_REMOTE_TEXT_DATA
+        if (X < W1)
+          TxtSum1 += TxtSize;
+        else
+          TxtSum2 += TxtSize;
+#endif
+#endif // GuiConst_REMOTE_TEXT_DATA
+      }
+
+#ifndef GuiConst_REMOTE_TEXT_DATA
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+      sgl.RemoteStructOffset += TxtSum1;
+      GuiLib_RemoteDataReadBlock(
+         sgl.RemoteStructOffset,
+         TxtReadSize,
+         (GuiConst_INT8U*)&sgl.GuiLib_RemoteStructText);
+      sgl.CurItem.TextOffset[J] = sgl.RemoteStructOffset;
+      sgl.CurItem.TextPtr[J] = (GuiConst_TEXT PrefixGeneric *)&sgl.GuiLib_RemoteStructText;
+      sgl.RemoteStructOffset += TxtSum2;
+#else
+      sgl.ItemDataPtr += TxtSum1;
+      sgl.CurItem.TextPtr[J] = (GuiConst_TEXT PrefixGeneric *)(sgl.ItemDataPtr);
+      sgl.ItemDataPtr += TxtSum2;
+#endif
+#endif // GuiConst_REMOTE_TEXT_DATA
+
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+      if ((sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON) &&
+         (((I == 0) && (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x01)) ||
+          ((I == 1) && (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x02))))
+        J++;
+#endif
+      J++;
+    }
+
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+    if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON)
+    {
+      if (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x01)
+      {
+        sgl.CurItem.TextLength[1] = sgl.CurItem.TextLength[0];
+        sgl.CurItem.TextPtr[1] = sgl.CurItem.TextPtr[0];
+
+#ifdef GuiConst_REMOTE_TEXT_DATA
+        sgl.CurItem.TextIndex[1] = sgl.CurItem.TextIndex[0];
+#else
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+        sgl.CurItem.TextOffset[1] = sgl.CurItem.TextOffset[0];
+#endif
+#endif
+
+      }
+      if (sgl.CurItem.CompPars.CompButton.TextLikeUp & 0x02)
+      {
+        sgl.CurItem.TextLength[2] = sgl.CurItem.TextLength[0];
+        sgl.CurItem.TextPtr[2] = sgl.CurItem.TextPtr[0];
+
+#ifdef GuiConst_REMOTE_TEXT_DATA
+        sgl.CurItem.TextIndex[2] = sgl.CurItem.TextIndex[0];
+#else
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+        sgl.CurItem.TextOffset[2] = sgl.CurItem.TextOffset[0];
+#endif
+#endif
+      }
+    }
+#endif
+  }
+}
+//------------------------------------------------------------------------------
+static GuiConst_INT16S VarStrCmp(
+   GuiConst_INT8U PrefixLocate *S1,
+   GuiConst_INT8U PrefixLocate *S2)
+{
+  GuiConst_INT16S len = 0;
+
+#ifdef GuiConst_CHARMODE_ANSI
+  do
+  {
+    if ((*S1 == 0) && (*S2 == 0))
+      return (0);
+
+    else if (*S1 == 0)
+      return (-1);
+    else if (*S2 == 0)
+      return (1);
+    else if (*S1 < *S2)
+      return (-1);
+    else if (*S1 > *S2)
+      return (1);
+    S1++;
+    S2++;
+  }
+  while ((len++) < GuiConst_AUTOREDRAW_MAX_VAR_SIZE);
+#else
+  GuiConst_INT16U T1, T2, T3;
+
+  do
+  {
+    T1 = *S1++;
+    T3 = *S1++;
+    T1 |= T3 << 8;
+
+    T2 = *S2++;
+    T3 = *S2++;
+    T2 |= T3 << 8;
+
+    if (T1 < T2)
+      return (-1);
+    else if (T1 > T2)
+      return (1);
+    else if (T1 == 0)
+      return (0);
+  }
+  while ((len++) < GuiConst_AUTOREDRAW_MAX_VAR_SIZE);
+#endif
+  return (1);
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_Init(void)
+{
+  GuiConst_INT16S I;
+
+  for (I=0;I<GuiConst_MAX_DYNAMIC_ITEMS;I++)
+  {
+    sgl.AutoRedraw[I].Next = -1;
+    sgl.AutoRedraw[I].Prev = -1;
+    sgl.AutoRedraw[I].Valid = ITEM_NONE;
+  }
+
+  sgl.AutoRedrawCount = 0;
+  sgl.AutoRedrawFirst = -1;
+  sgl.AutoRedrawLast = -1;
+  sgl.AutoRedrawCount = 0;
+  sgl.AutoRedrawParent = -1;
+  sgl.AutoRedrawUpdate = GuiLib_FALSE;
+  sgl.AutoRedrawInsertPoint = GuiConst_MAX_DYNAMIC_ITEMS;
+  sgl.AutoRedrawLatest = -1;
+
+  return;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_Reset(void)
+{
+  sgl.AutoRedrawNext = sgl.AutoRedrawFirst;
+
+  return sgl.AutoRedrawNext;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetNext(GuiConst_INT16S I)
+{
+  GuiConst_INT16S N, result;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return -1;
+
+  result = -1;
+
+  N = sgl.AutoRedraw[I].Next;
+  while ((N >= 0) && (N < GuiConst_MAX_DYNAMIC_ITEMS))
+  {
+    if ((sgl.AutoRedraw[N].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+    {
+      result = N;
+      break;
+    }
+    else if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
+      break;
+    else
+    {
+      N = sgl.AutoRedraw[N].Next;
+      if ((N < 0) || (N >= GuiConst_MAX_DYNAMIC_ITEMS))
+        break;
+    }
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT8S AutoRedraw_ItemIsStruct(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return GuiLib_FALSE;
+
+  if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+  {
+    if ((sgl.AutoRedraw[I].Item.ItemType == GuiLib_ITEM_STRUCTARRAY) ||
+        (sgl.AutoRedraw[I].Item.ItemType == GuiLib_ITEM_STRUCTCOND))
+      return GuiLib_TRUE;
+    else
+      return GuiLib_FALSE;
+  }
+  else
+    return GuiLib_FALSE;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT8S AutoRedraw_GetLevel(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return -1;
+
+  if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+    return sgl.AutoRedraw[I].Level;
+  else
+    return 0;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_Add(PrefixLocate GuiLib_ItemRec * PrefixLocate Item, GuiConst_INT16S Struct, GuiConst_INT8U Level)
+{
+  GuiConst_INT16S I, N;
+
+  I = -1;
+
+  if (sgl.AutoRedrawCount < GuiConst_MAX_DYNAMIC_ITEMS)
+  {
+
+    if (sgl.AutoRedrawFirst == -1)
+    {
+      I = 0;
+      sgl.AutoRedrawFirst = 0;
+      sgl.AutoRedrawLast  = -1;
+      sgl.AutoRedrawNext  = 0;
+    }
+    else
+    {
+      for (N=0;N<GuiConst_MAX_DYNAMIC_ITEMS;N++)
+      {
+        if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
+        {
+          I = N;
+          break;
+        }
+      }
+    }
+
+    if (I >= 0)
+    {
+      sgl.AutoRedraw[I].Next = -1;
+      sgl.AutoRedraw[I].Prev = sgl.AutoRedrawLast;
+      sgl.AutoRedraw[I].Valid = ITEM_AUTOREDRAW;
+      sgl.AutoRedraw[I].Parent = sgl.AutoRedrawParent;
+      sgl.AutoRedraw[I].Level  = Level;
+      memcpy(&sgl.AutoRedraw[I].Item, Item, sizeof(GuiLib_ItemRec));
+      memcpy(&sgl.AutoRedraw[I].Memory, &sgl.Memory, sizeof(ItemMemory));
+
+      if ((sgl.AutoRedrawLast >= 0)
+       && (sgl.AutoRedrawLast < GuiConst_MAX_DYNAMIC_ITEMS))
+        sgl.AutoRedraw[sgl.AutoRedrawLast].Next = I;
+
+      sgl.AutoRedrawCount++;
+      sgl.AutoRedrawLast = I;
+      sgl.AutoRedrawLatest = I;
+    }
+
+  }
+
+  return I;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_Insert(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
+          GuiConst_INT16S Struct,
+          GuiConst_INT8U Level)
+{
+  GuiConst_INT16S I, N;
+
+  if ((sgl.AutoRedrawFirst == -1) ||
+      (sgl.AutoRedrawInsertPoint >= GuiConst_MAX_DYNAMIC_ITEMS))
+  {
+    return AutoRedraw_Add(Item, Struct, Level);
+  }
+
+  if (sgl.AutoRedrawCount < GuiConst_MAX_DYNAMIC_ITEMS)
+  {
+    I = -1;
+
+    for (N=0;N<GuiConst_MAX_DYNAMIC_ITEMS;N++)
+    {
+      if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
+      {
+        I = N;
+        break;
+      }
+    }
+  }
+  else
+    return -1;
+
+  if (I >= 0)
+  {
+    if (sgl.AutoRedrawInsertPoint < 0)
+    {
+      sgl.AutoRedraw[I].Next = sgl.AutoRedrawFirst;
+      sgl.AutoRedraw[I].Prev = -1;
+    }
+    else
+    {
+      sgl.AutoRedraw[I].Next = sgl.AutoRedraw[sgl.AutoRedrawInsertPoint].Next;
+      sgl.AutoRedraw[I].Prev = sgl.AutoRedrawInsertPoint;
+      sgl.AutoRedraw[sgl.AutoRedraw[I].Prev].Next = I;
+    }
+
+    if (sgl.AutoRedraw[I].Next != -1)
+      sgl.AutoRedraw[sgl.AutoRedraw[I].Next].Prev = I;
+
+    sgl.AutoRedraw[I].Valid = ITEM_AUTOREDRAW;
+    sgl.AutoRedraw[I].Parent = sgl.AutoRedrawParent;
+    sgl.AutoRedraw[I].Level  = Level;
+
+    memcpy(&sgl.AutoRedraw[I].Item, Item, sizeof(GuiLib_ItemRec));
+    memcpy(&sgl.AutoRedraw[I].Memory, &sgl.Memory, sizeof(ItemMemory));
+
+    if (sgl.AutoRedraw[I].Next == -1)
+      sgl.AutoRedrawLast = I;
+
+    if (sgl.AutoRedraw[I].Prev == -1)
+      sgl.AutoRedrawFirst = I;
+
+    sgl.AutoRedrawInsertPoint = I;
+    sgl.AutoRedrawLatest = I;
+    sgl.AutoRedrawCount++;
+  }
+
+  return I;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_UpdateDrawn(GuiConst_INT16S I, PrefixLocate GuiLib_ItemRec * PrefixLocate Item)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+  {
+    sgl.AutoRedraw[I].Item.Drawn   = Item->Drawn;
+    sgl.AutoRedraw[I].Item.DrawnX1 = Item->DrawnX1;
+    sgl.AutoRedraw[I].Item.DrawnY1 = Item->DrawnY1;
+    sgl.AutoRedraw[I].Item.DrawnX2 = Item->DrawnX2;
+    sgl.AutoRedraw[I].Item.DrawnY2 = Item->DrawnY2;
+  }
+
+  return;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_Delete(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+  {
+    if (sgl.AutoRedrawLast == I)
+      sgl.AutoRedrawLast = sgl.AutoRedraw[I].Prev;
+
+    if (sgl.AutoRedrawFirst == I)
+      sgl.AutoRedrawFirst = sgl.AutoRedraw[I].Next;
+
+    if (sgl.AutoRedraw[I].Prev != -1)
+      sgl.AutoRedraw[sgl.AutoRedraw[I].Prev].Next = sgl.AutoRedraw[I].Next;
+
+    if (sgl.AutoRedraw[I].Next != -1)
+      sgl.AutoRedraw[sgl.AutoRedraw[I].Next].Prev = sgl.AutoRedraw[I].Prev;
+
+    sgl.AutoRedraw[I].Next = -1;
+    sgl.AutoRedraw[I].Prev = -1;
+    sgl.AutoRedraw[I].Valid = ITEM_NONE;
+
+    sgl.AutoRedrawCount--;
+  }
+
+  return;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_DeleteStruct(GuiConst_INT16S Struct_id)
+{
+  GuiConst_INT16S I, N, X;
+
+  I = sgl.AutoRedrawFirst;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return -1;
+
+  if ((Struct_id < 0) || (Struct_id >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return -1;
+
+  if (sgl.AutoRedraw[Struct_id].Valid == ITEM_NONE)
+    return -1;
+
+  while (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+  {
+    N = sgl.AutoRedraw[I].Next;
+    if (sgl.AutoRedraw[I].Parent == Struct_id)
+    {
+      X = AutoRedraw_DeleteStruct(I);
+      if ((X >= 0) && (X < GuiConst_MAX_DYNAMIC_ITEMS))
+        N = sgl.AutoRedraw[X].Next;
+    }
+
+    I = N;
+
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      break;
+  }
+
+  sgl.AutoRedrawInsertPoint = sgl.AutoRedraw[Struct_id].Prev;
+
+  AutoRedraw_Delete(Struct_id);
+
+  if (sgl.AutoRedrawInsertPoint >= 0)
+    return sgl.AutoRedrawInsertPoint;
+  else
+    return sgl.AutoRedrawFirst;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_Destroy(void)
+{
+  GuiConst_INT16S I;
+
+  for (I=0;I<GuiConst_MAX_DYNAMIC_ITEMS;I++)
+  {
+    sgl.AutoRedraw[I].Next = -1;
+    sgl.AutoRedraw[I].Prev = -1;
+    sgl.AutoRedraw[I].Valid = ITEM_NONE;
+  }
+
+  sgl.AutoRedrawCount = 0;
+  sgl.AutoRedrawFirst = -1;
+  sgl.AutoRedrawLast = -1;
+  sgl.AutoRedrawCount = 0;
+  sgl.AutoRedrawParent = -1;
+  sgl.AutoRedrawUpdate = GuiLib_FALSE;
+  sgl.AutoRedrawInsertPoint = GuiConst_MAX_DYNAMIC_ITEMS;
+  sgl.AutoRedrawLatest = -1;
+
+  return;
+}
+//------------------------------------------------------------------------------
+PrefixLocate GuiLib_ItemRec *AutoRedraw_GetItem(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return NULL;
+  else
+    return &sgl.AutoRedraw[I].Item;
+}
+//------------------------------------------------------------------------------
+PrefixLocate ItemMemory *AutoRedraw_GetItemMemory(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return NULL;
+  else
+    return &sgl.AutoRedraw[I].Memory;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_UpdateOnChange(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+  {
+    sgl.AutoRedraw[I].ValueSize = 0;
+
+    if (sgl.AutoRedraw[I].Item.UpdateType == GuiLib_UPDATE_ON_CHANGE)
+    {
+      if (sgl.AutoRedraw[I].Item.VarPtr != 0)
+      {
+        switch (sgl.AutoRedraw[I].Item.VarType)
+        {
+          case GuiLib_VAR_BOOL:
+          case GuiLib_VAR_UNSIGNED_CHAR:
+          case GuiLib_VAR_SIGNED_CHAR:
+            sgl.AutoRedraw[I].ValueSize = 1;
+            break;
+
+          case GuiLib_VAR_UNSIGNED_INT:
+          case GuiLib_VAR_SIGNED_INT:
+            sgl.AutoRedraw[I].ValueSize = 2;
+            break;
+
+          case GuiLib_VAR_UNSIGNED_LONG:
+          case GuiLib_VAR_SIGNED_LONG:
+          case GuiLib_VAR_FLOAT:
+            sgl.AutoRedraw[I].ValueSize = 4;
+            break;
+
+          case GuiLib_VAR_DOUBLE:
+            sgl.AutoRedraw[I].ValueSize = 8;
+            break;
+
+          case GuiLib_VAR_COLOR:
+            sgl.AutoRedraw[I].ValueSize =
+               GuiConst_PIXEL_BYTE_SIZE;
+            break;
+
+          case GuiLib_VAR_STRING:
+            sgl.AutoRedraw[I].ValueSize =
+               GuiLib_AUTOREDRAW_MAX_VAR_SIZE;
+            break;
+
+          default:
+            sgl.AutoRedraw[I].ValueSize = 0;
+        }
+        if (sgl.AutoRedraw[I].ValueSize > 0)
+        {
+          memcpy(&sgl.AutoRedraw[I].Value[0],
+                  sgl.AutoRedraw[I].Item.VarPtr,
+                  sgl.AutoRedraw[I].ValueSize);
+        }
+      }
+    }
+  }
+
+  return;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT8S RefreshColorVariable(GuiConst_INTCOLOR PrefixLocate *comp, GuiConst_INT16U idx)
+{
+  GuiConst_INTCOLOR PrefixLocate *ColVarPtr;
+  GuiConst_INTCOLOR ColVal;
+  GuiConst_INT8S    changed = GuiLib_FALSE;
+
+  if (idx != 0xFFFF)
+  {
+    if (idx < GuiStruct_VarPtrCnt)
+    {
+      ColVarPtr = (GuiConst_INTCOLOR PrefixLocate *)ReadWord(GuiStruct_VarPtrList[idx]);
+      if (ColVarPtr != 0)
+      {
+        ColVal = *ColVarPtr;
+        if (*comp != ColVal)
+        {
+          *comp = ColVal;
+          changed = GuiLib_TRUE;
+        }
+      }
+    }
+  }
+
+  return changed;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT8S AutoRedraw_VarChanged(GuiConst_INT16S I)
+{
+  GuiLib_ItemRecPtr Item;
+  GuiConst_INT16S VarChange;
+  GuiConst_INT8S  changed;
+
+  changed = GuiLib_FALSE;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return changed;
+
+  if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+  {
+    Item = &sgl.AutoRedraw[I].Item;
+    if (Item->UpdateType == GuiLib_UPDATE_ON_CHANGE)
+    {
+      if ((Item->TextPar[0].BitFlags & GuiLib_BITFLAG_INUSE) &&
+          (Item->VarPtr != 0))
+      {
+        VarChange = 0;
+        if (sgl.AutoRedraw[I].ValueSize > 0)
+        {
+          if (Item->VarType == GuiLib_VAR_STRING)
+            VarChange = VarStrCmp(&sgl.AutoRedraw[I].Value[0],
+               (GuiConst_INT8U PrefixLocate *)Item->VarPtr);
+          else
+            VarChange =
+               memcmp(&sgl.AutoRedraw[I].Value[0],
+                       Item->VarPtr,
+                       sgl.AutoRedraw[I].ValueSize);
+        }
+        if ((sgl.AutoRedraw[I].ValueSize == 0) || (VarChange != 0))
+          changed = GuiLib_TRUE;
+      }
+    }
+    else
+      changed = GuiLib_TRUE;
+
+    changed |= RefreshColorVariable(&Item->ForeColor, Item->ForeColorIndex);
+    changed |= RefreshColorVariable(&Item->BackColor, Item->BackColorIndex);
+    changed |= RefreshColorVariable(&Item->BarForeColor, Item->BarForeColorIndex);
+    changed |= RefreshColorVariable(&Item->BarBackColor, Item->BarBackColorIndex);
+
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+    if (Item->ItemType == GuiLib_ITEM_RADIOBUTTON)
+      changed |= RefreshColorVariable(&Item->CompPars.CompRadioButton.MarkColor,
+                           Item->CompPars.CompRadioButton.MarkColorIndex);
+#endif
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+    if (Item->ItemType == GuiLib_ITEM_CHECKBOX)
+      changed |= RefreshColorVariable(&Item->CompPars.CompCheckBox.MarkColor,
+                           Item->CompPars.CompCheckBox.MarkColorIndex);
+#endif
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+    if (Item->ItemType == GuiLib_ITEM_BUTTON)
+    {
+      GuiConst_INT32S state;
+
+      if ((sgl.CurItem.VarPtr != 0) &&
+          (sgl.CurItem.VarType != GuiLib_VAR_STRING))
+      {
+        state = ReadVar(Item->VarPtr, Item->VarType);
+        if ((state < GuiLib_BUTTON_STATE_UP) ||
+            (state > GuiLib_BUTTON_STATE_DISABLED))
+          state = GuiLib_BUTTON_STATE_UP;
+      }
+      else
+        state = GuiLib_BUTTON_STATE_UP;
+
+
+      changed |= RefreshColorVariable(&Item->CompPars.CompButton.TextColor[state],
+                           Item->CompPars.CompButton.TextColorIndex[state]);
+
+      changed |= RefreshColorVariable(&Item->CompPars.CompButton.GlyphIconColor[state],
+                           Item->CompPars.CompButton.GlyphIconColorIndex[state]);
+    }
+#endif
+  }
+
+  return changed;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_UpdateVar(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  if ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+  {
+    if (sgl.AutoRedraw[I].Item.UpdateType == GuiLib_UPDATE_ON_CHANGE)
+    {
+      if ((sgl.AutoRedraw[I].Item.TextPar[0].BitFlags & GuiLib_BITFLAG_INUSE) &&
+          (sgl.AutoRedraw[I].Item.VarPtr != 0))
+      {
+        if (sgl.AutoRedraw[I].ValueSize > 0)
+        {
+          memcpy(&sgl.AutoRedraw[I].Value[0],
+                  sgl.AutoRedraw[I].Item.VarPtr,
+                  sgl.AutoRedraw[I].ValueSize);
+        }
+      }
+    }
+  }
+
+  return;
+}
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_InsertTextBox(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
+                  GuiConst_INT16S Struct,
+                  GuiConst_INT8U Level)
+{
+  GuiConst_INT16S I;
+
+  I = AutoRedraw_Insert(Item, Struct, Level);
+
+  if (I != -1)
+    sgl.AutoRedraw[I].Valid = ITEM_TEXTBOX;
+
+  return I;
+}//------------------------------------------------------------------------------
+void AutoRedraw_SetAsTextBox(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    sgl.AutoRedraw[I].Valid |= ITEM_TEXTBOX;
+
+  return;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetTextBox(GuiConst_INT8S T, GuiConst_INT16S I)
+{
+  if (I == -1)
+  {
+    I = sgl.AutoRedrawFirst;
+
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      return -1;
+  }
+  else
+  {
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      return -1;
+
+    if (sgl.AutoRedraw[I].Valid == ITEM_NONE)
+      return -1;
+
+    I = sgl.AutoRedraw[I].Next;
+
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      return -1;
+  }
+
+  while (I != -1)
+  {
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_TEXTBOX) == ITEM_TEXTBOX)
+      {
+        if (sgl.AutoRedraw[I].Item.CompPars.CompTextBox.ScrollIndex == T)
+          break;
+      }
+      I = sgl.AutoRedraw[I].Next;
+    }
+    else
+      return -1;
+  }
+
+  return I;
+}
+
+#endif // GuiConst_TEXTBOX_FIELDS_ON
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_InsertCursor(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
+                  GuiConst_INT16S Struct,
+                  GuiConst_INT8U Level)
+{
+  GuiConst_INT16S I;
+
+  I = AutoRedraw_Insert(Item, Struct, Level);
+
+  if (I != -1)
+    sgl.AutoRedraw[I].Valid = ITEM_CURSOR;
+
+  return I;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_SetAsCursor(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    sgl.AutoRedraw[I].Valid |= ITEM_CURSOR;
+
+  return;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_IsOnlyCursor(GuiConst_INT16S I)
+{
+  GuiConst_INT16S ret = GuiLib_FALSE;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return ret;
+
+  if (sgl.AutoRedraw[I].Valid == ITEM_CURSOR)
+    ret = GuiLib_TRUE;
+
+  return ret;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetCursor(GuiConst_INT8S C, GuiConst_INT16S I)
+{
+  if (I == -1)
+  {
+    I = sgl.AutoRedrawFirst;
+
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      return -1;
+  }
+  else
+  {
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      return -1;
+
+    if (sgl.AutoRedraw[I].Valid == ITEM_NONE)
+      return -1;
+
+    I = sgl.AutoRedraw[I].Next;
+
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      return -1;
+  }
+
+  while (I != -1)
+  {
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
+      {
+        if (sgl.AutoRedraw[I].Item.CursorFieldNo == C)
+          break;
+      }
+      I = sgl.AutoRedraw[I].Next;
+    }
+    else
+      return -1;
+  }
+
+  return I;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT8S AutoRedraw_GetCursorNumber(GuiConst_INT16S I)
+{
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return -1;
+
+  if (sgl.AutoRedraw[I].Valid & ITEM_CURSOR)
+    return sgl.AutoRedraw[I].Item.CursorFieldNo;
+
+  return -1;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetFirstCursor(void)
+{
+  GuiConst_INT16S I, result;
+  GuiConst_INT8S C;
+
+  I = sgl.AutoRedrawFirst;
+  C = 0x7F;
+
+  result = -1;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return result;
+
+  while (I != -1)
+  {
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
+      {
+        if (sgl.AutoRedraw[I].Item.CursorFieldNo < C)
+        {
+          C = sgl.AutoRedraw[I].Item.CursorFieldNo;
+          result = I;
+        }
+      }
+      I = sgl.AutoRedraw[I].Next;
+    }
+    else
+      return -1;
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetLastCursor(void)
+{
+  GuiConst_INT16S I, result;
+  GuiConst_INT8S C;
+
+  I = sgl.AutoRedrawFirst;
+  C = 0;
+
+  result = -1;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return result;
+
+  while (I != -1)
+  {
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
+      {
+        if (sgl.AutoRedraw[I].Item.CursorFieldNo > C)
+        {
+          C = sgl.AutoRedraw[I].Item.CursorFieldNo;
+          result = I;
+        }
+      }
+      I = sgl.AutoRedraw[I].Next;
+    }
+    else
+      return -1;
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetNextCursor(GuiConst_INT8S C)
+{
+  GuiConst_INT16S I, result;
+  GuiConst_INT8S closest;
+
+  I = sgl.AutoRedrawFirst;
+  closest = 0x7f;
+
+  result = -1;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return result;
+
+  while (I != -1)
+  {
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
+      {
+        if ((sgl.AutoRedraw[I].Item.CursorFieldNo > C)
+         && (sgl.AutoRedraw[I].Item.CursorFieldNo <= closest))
+        {
+          closest = sgl.AutoRedraw[I].Item.CursorFieldNo;
+          result = I;
+        }
+      }
+      I = sgl.AutoRedraw[I].Next;
+    }
+    else
+      return -1;
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_GetPrevCursor(GuiConst_INT8S C)
+{
+  GuiConst_INT16S I, result;
+  GuiConst_INT8S closest;
+
+  I = sgl.AutoRedrawFirst;
+  closest = 0;
+
+  result = -1;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return result;
+
+  while (I != -1)
+  {
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
+      {
+        if ((sgl.AutoRedraw[I].Item.CursorFieldNo < C)
+         && (sgl.AutoRedraw[I].Item.CursorFieldNo >= closest))
+        {
+          closest = sgl.AutoRedraw[I].Item.CursorFieldNo;
+          result = I;
+        }
+      }
+      I = sgl.AutoRedraw[I].Next;
+    }
+    else
+      return -1;
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+GuiConst_INT16S AutoRedraw_CheckCursorInheritance(GuiConst_INT16S N)
+{
+  GuiConst_INT16S I, J, result;
+  GuiConst_INT16S cursor_id;
+
+  if (GuiLib_ActiveCursorFieldNo < 0)
+    return -1;
+
+  if ((N < 0) || (N >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return -1;
+
+  if (sgl.AutoRedraw[N].Valid == ITEM_NONE)
+    return -1;
+
+  I = sgl.AutoRedraw[N].Parent;
+  result = 1;
+
+  while (result == 1)
+  {
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    {
+      result = -1;
+      break;
+    }
+
+    if (sgl.AutoRedraw[I].Valid != ITEM_NONE)
+    {
+      if ((sgl.AutoRedraw[I].Valid & ITEM_CURSOR) == ITEM_CURSOR)
+      {
+        cursor_id = sgl.AutoRedraw[I].Item.CursorFieldNo;
+
+        if (cursor_id == GuiLib_ActiveCursorFieldNo)
+        {
+          result = 0;
+          break;
+        }
+      }
+      J = sgl.AutoRedraw[I].Parent;
+      if (J == I)
+        result = -1;
+      I = J;
+    }
+    else
+    {
+      result = -1;
+      break;
+    }
+
+  }
+
+  return result;
+}
+//------------------------------------------------------------------------------
+void AutoRedraw_ResetCursor(void)
+{
+  GuiConst_INT16S I;
+
+  I = sgl.AutoRedrawFirst;
+
+  if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+    return;
+
+  while ((sgl.AutoRedraw[I].Valid & ITEM_AUTOREDRAW) == ITEM_AUTOREDRAW)
+  {
+    sgl.AutoRedraw[I].Item.CursorFieldNo = GuiLib_NO_CURSOR;
+
+    I = sgl.AutoRedraw[I].Next;
+    if ((I < 0) || (I >= GuiConst_MAX_DYNAMIC_ITEMS))
+      break;
+  }
+
+  return;
+}
+#endif // GuiConst_CURSOR_SUPPORT_ON
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiLib.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiLib.c	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,4965 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/* ************************************************************************ */
+
+
+
+//------------------------------------------------------------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+#include "GuiLibStruct.h"
+#ifdef GuiConst_VNC_REMOTE_SUPPORT_ON
+#include "GuiVnc.h"
+#endif
+#include <string.h>
+#include <stdlib.h>
+
+#ifndef GuiConst_PC_V6_0_9
+If your compiler sees this text you are using a wrong version of the easyGUI
+library. Version numbers of the easyGUI PC application and c library must match.
+Only exception is GuiDisplay.c/h (your display driver), which can be kept from
+version to version.
+#endif
+
+#define WANT_DOUBLE_BUFFERING // Also in GuiGraph16.h, GuiDisplay.c - *** all three must match ***
+
+
+#define GuiLib_CHR_PSLEFT_OFS              0
+#define GuiLib_CHR_PSRIGHT_OFS             5
+#define GuiLib_CHR_XLEFT_OFS               10
+#define GuiLib_CHR_XWIDTH_OFS              11
+#define GuiLib_CHR_YTOP_OFS                12
+#define GuiLib_CHR_YHEIGHT_OFS             13
+#define GuiLib_CHR_LINECTRL_OFS            14
+#define GuiLib_CHR_PS_TOP_OFS              0
+#define GuiLib_CHR_PS_MID_OFS              1
+#define GuiLib_CHR_PS_MIDBASE_OFS          2
+#define GuiLib_CHR_PS_BASE_OFS             3
+#define GuiLib_CHR_PS_BOTTOM_OFS           4
+
+
+
+#ifdef GuiConst_ARAB_CHARS_INUSE
+#define GuiLib_ARAB_LIGATURES_CNT          4
+const GuiConst_INT16U GuiLib_ARAB_LIGATURES[GuiLib_ARAB_LIGATURES_CNT][3] =
+   {{0x0644, 0x0622, 0xFEF5},
+    {0x0644, 0x0623, 0xFEF7},
+    {0x0644, 0x0625, 0xFEF9},
+    {0x0644, 0x0627, 0xFEFB}};
+
+#define GuiLib_ARAB_CHAR_PRI_MIN           0x0622
+#define GuiLib_ARAB_CHAR_PRI_MAX           0x06D6
+#define GuiLib_ARAB_CHAR_SEC_MIN           0xFB50
+#define GuiLib_ARAB_CHAR_SEC_MAX           0xFEF4
+#define GuiLib_ARAB_CHAR_TYPE_ISO          0
+#define GuiLib_ARAB_CHAR_TYPE_FIN          1
+#define GuiLib_ARAB_CHAR_TYPE_INI          2
+#define GuiLib_ARAB_CHAR_TYPE_MED          3
+#define GuiLib_ARAB_CHAR_ISOFIN            0x02
+#define GuiLib_ARAB_CHAR_ISOFININIMED      0x04
+#define GuiLib_ARAB_CHAR_DIACRITIC         0x0A
+#define GuiLib_ARAB_CHAR_CONVERT_CNT       83
+
+const GuiConst_INT16U GuiLib_ARAB_CHAR_CONVERT[GuiLib_ARAB_CHAR_CONVERT_CNT][3] =
+   {{0x0622, 0xFE81, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0623, 0xFE83, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0624, 0xFE85, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0625, 0xFE87, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0626, 0xFE89, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0627, 0xFE8D, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0628, 0xFE8F, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0629, 0xFE93, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x062A, 0xFE95, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x062B, 0xFE99, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x062C, 0xFE9D, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x062D, 0xFEA1, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x062E, 0xFEA5, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x062F, 0xFEA9, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0630, 0xFEAB, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0631, 0xFEAD, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0632, 0xFEAF, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0633, 0xFEB1, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0634, 0xFEB5, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0635, 0xFEB9, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0636, 0xFEBD, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0637, 0xFEC1, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0638, 0xFEC5, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0639, 0xFEC9, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x063A, 0xFECD, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0641, 0xFED1, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0642, 0xFED5, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0643, 0xFED9, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0644, 0xFEDD, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0645, 0xFEE1, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0646, 0xFEE5, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0647, 0xFEE9, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0648, 0xFEED, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0649, 0xFEEF, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x064A, 0xFEF1, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x064E, 0xFE76, GuiLib_ARAB_CHAR_DIACRITIC},
+    {0x064F, 0xFE78, GuiLib_ARAB_CHAR_DIACRITIC},
+    {0x0650, 0xFE7A, GuiLib_ARAB_CHAR_DIACRITIC},
+    {0x0651, 0xFE7C, GuiLib_ARAB_CHAR_DIACRITIC},
+    {0x0652, 0xFE7E, GuiLib_ARAB_CHAR_DIACRITIC},
+    {0x0671, 0xFB50, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0679, 0xFB66, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x067A, 0xFB5E, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x067B, 0xFB52, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x067E, 0xFB56, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x067F, 0xFB62, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0680, 0xFB5A, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0683, 0xFB76, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0684, 0xFB72, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0686, 0xFB7A, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0687, 0xFB7E, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x0688, 0xFB88, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x068C, 0xFB84, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x068D, 0xFB82, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x068E, 0xFB86, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0691, 0xFB8C, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x0698, 0xFB8A, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06A4, 0xFB6A, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06A6, 0xFB6E, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06A9, 0xFB8E, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06AD, 0xFBD3, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06AF, 0xFB92, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06B1, 0xFB9A, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06B3, 0xFB96, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06BA, 0xFB9E, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06BB, 0xFBA0, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06BE, 0xFBAA, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06C0, 0xFBA4, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06C1, 0xFBA6, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06C5, 0xFBE0, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06C6, 0xFBD9, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06C7, 0xFBD7, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06C8, 0xFBDB, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06C9, 0xFBE2, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06CB, 0xFBDE, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06CC, 0xFBFC, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06D0, 0xFBE4, GuiLib_ARAB_CHAR_ISOFININIMED},
+    {0x06D2, 0xFBAE, GuiLib_ARAB_CHAR_ISOFIN},
+    {0x06D3, 0xFBB0, GuiLib_ARAB_CHAR_ISOFIN},
+    {     0, 0xFEF5, GuiLib_ARAB_CHAR_ISOFIN},
+    {     0, 0xFEF7, GuiLib_ARAB_CHAR_ISOFIN},
+    {     0, 0xFEF9, GuiLib_ARAB_CHAR_ISOFIN},
+    {     0, 0xFEFB, GuiLib_ARAB_CHAR_ISOFIN}};
+#endif
+
+//------------------------------------------------------------------------------
+//----------------------X-----------------------
+
+GuiLib_DisplayLineRec GuiLib_DisplayRepaint[GuiConst_BYTE_LINES];
+#ifdef GuiConst_VNC_REMOTE_SUPPORT_ON
+GuiLib_DisplayLineRec GuiLib_VncRepaint[GuiConst_BYTE_LINES];
+#endif // GuiConst_VNC_REMOTE_SUPPORT_ON
+
+#ifdef GuiConst_REMOTE_DATA
+void (*GuiLib_RemoteDataReadBlock) (
+      GuiConst_INT32U SourceOffset,
+      GuiConst_INT32U SourceSize,
+      GuiConst_INT8U * TargetAddr);
+#endif // GuiConst_REMOTE_DATA
+#ifdef GuiConst_REMOTE_TEXT_DATA
+void (*GuiLib_RemoteTextReadBlock) (
+      GuiConst_INT32U SourceOffset,
+      GuiConst_INT32U SourceSize,
+      void * TargetAddr);
+#endif // GuiConst_REMOTE_TEXT_DATA
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+GuiConst_INT16S GuiLib_ActiveCursorFieldNo;
+#endif
+#ifdef GuiConst_ALLOW_UPSIDEDOWN_AT_RUNTIME
+GuiConst_INT8U GuiLib_DisplayUpsideDown;
+#endif
+
+GuiConst_INT16S GuiLib_CurStructureNdx;
+GuiConst_INT16S GuiLib_LanguageIndex;
+
+PrefixLocate GuiLib_GLOBAL gl;
+static PrefixLocate GuiLib_STATIC sgl;
+
+
+//==============================================================================
+#ifdef GuiConst_ALLOW_UPSIDEDOWN_AT_RUNTIME
+  #define GuiLib_COORD_ADJUST(X, Y)                                            \
+  {                                                                            \
+    if (GuiLib_DisplayUpsideDown)                                              \
+    {                                                                          \
+      X = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoX - X;                 \
+      Y = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoY - Y;                \
+    }                                                                          \
+    else                                                                       \
+    {                                                                          \
+      X = sgl.CoordOrigoX + X;                                                 \
+      Y = sgl.CoordOrigoY + Y;                                                 \
+    }                                                                          \
+  }
+
+  #define GuiLib_MIRROR_BITS(B)                                                \
+  {                                                                            \
+    B = (((B & 0x80) >> 7) | ((B & 0x40) >> 5) |                               \
+         ((B & 0x20) >> 3) | ((B & 0x10) >> 1) |                               \
+         ((B & 0x08) << 1) | ((B & 0x04) << 3) |                               \
+         ((B & 0x02) << 5) | ((B & 0x01) << 7));                               \
+  }
+#else
+  #ifdef GuiConst_ROTATED_OFF
+    #ifdef GuiConst_MIRRORED_HORIZONTALLY
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoX - X;             \
+          Y = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoY - Y;            \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoX - X;             \
+          Y = sgl.CoordOrigoY + Y;                                             \
+        }
+      #endif
+    #else
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoY - Y;            \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = sgl.CoordOrigoY + Y;                                             \
+        }
+      #endif
+    #endif
+  #endif
+  #ifdef GuiConst_ROTATED_90DEGREE_RIGHT
+    #ifdef GuiConst_MIRRORED_HORIZONTALLY
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoY - Y;             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = sgl.CoordOrigoY + Y;                                             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #endif
+    #else
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoX - X;            \
+          Y = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoY - Y;             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoX - X;            \
+          Y = sgl.CoordOrigoY + Y;                                             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #endif
+    #endif
+  #endif
+  #ifdef GuiConst_ROTATED_UPSIDEDOWN
+    #ifdef GuiConst_MIRRORED_HORIZONTALLY
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = sgl.CoordOrigoY + Y;                                             \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoY - Y;            \
+        }
+      #endif
+    #else
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoX - X;             \
+          Y = sgl.CoordOrigoY + Y;                                             \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoX - X;             \
+          Y = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoY - Y;            \
+        }
+      #endif
+    #endif
+  #endif
+  #ifdef GuiConst_ROTATED_90DEGREE_LEFT
+    #ifdef GuiConst_MIRRORED_HORIZONTALLY
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoX - X;            \
+          Y = sgl.CoordOrigoY + Y;                                             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = GuiConst_DISPLAY_HEIGHT_HW - 1 - sgl.CoordOrigoX - X;            \
+          Y = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoY - Y;             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #endif
+    #else
+      #ifdef GuiConst_MIRRORED_VERTICALLY
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = sgl.CoordOrigoY + Y;                                             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #else
+        #define GuiLib_COORD_ADJUST(X, Y)                                      \
+        {                                                                      \
+          X = sgl.CoordOrigoX + X;                                             \
+          Y = GuiConst_DISPLAY_WIDTH_HW - 1 - sgl.CoordOrigoY - Y;             \
+          SwapCoord(&X, &Y);                                                   \
+        }
+      #endif
+    #endif
+  #endif
+#endif
+
+#define GuiLib_FONT_MID_Y(BaseLine, TopLine) ((BaseLine - TopLine + 1) / 2)
+
+#ifdef GuiConst_COLOR_DEPTH_1
+#define GuiLib_COLOR_ADJUST(C)  C &= 0x01;
+#endif
+#ifdef GuiConst_COLOR_DEPTH_2
+#define GuiLib_COLOR_ADJUST(C)  C &= 0x03;
+#endif
+#ifdef GuiConst_COLOR_DEPTH_4
+#define GuiLib_COLOR_ADJUST(C)  C &= 0x0F;
+#endif
+#ifdef GuiConst_COLOR_DEPTH_5
+#define GuiLib_COLOR_ADJUST(C)  C = (C & 0x1F) << 3;
+#endif
+#ifndef GuiLib_COLOR_ADJUST
+#define GuiLib_COLOR_ADJUST_TRANSP(C)
+#define GuiLib_COLOR_ADJUST(C)
+#else
+#define GuiLib_COLOR_ADJUST_TRANSP(C) if (C != -1)  GuiLib_COLOR_ADJUST(C)
+#endif
+//----------------------X-----------------------
+#define GuiLib_GET_MIN(A, B) ((A) > (B) ? (B) : (A))
+#define GuiLib_GET_MAX(A, B) ((A) > (B) ? (A) : (B))
+#define GuiLib_GET_MINMAX(X, A, B) ((X) > (A) ? (GuiLib_GET_MIN(X,B)) : (A))
+#define GuiLib_LIMIT_MIN(X, A) if (X < A) X = A
+#define GuiLib_LIMIT_MAX(X, B) if (X > B) X = B
+#define GuiLib_LIMIT_MINMAX(X, A, B)                                           \
+{                                                                              \
+  if (X < A)                                                                   \
+    X = A;                                                                     \
+  else if ((B < A) && (X > A))                                                 \
+    X = A;                                                                     \
+  else if ((B >= A) && (X > B))                                                \
+    X = B;                                                                     \
+}
+
+//==============================================================================
+
+//------------------------------------------------------------------------------
+static GuiConst_INT16S CopyBytes(GuiConst_INT8U *dst, GuiConst_INT8U *src, GuiConst_INT32S size)
+{
+  GuiConst_INT32S i;
+  GuiConst_INT8U *d, *s;
+
+  if (size < 0)
+    return -1;
+
+  if (size > GuiConst_DISPLAY_BYTES)
+    return -1;
+
+  d = (GuiConst_INT8U *)dst;
+  s = (GuiConst_INT8U *)src;
+
+  for (i=0;i<size;i++)
+    *d++ = *s++;
+
+  return 0;
+}
+//------------------------------------------------------------------------------
+static void SwapCoord(
+   GuiConst_INT16S * X1,
+   GuiConst_INT16S * X2)
+{
+  GuiConst_INT16S Tmp;
+
+  Tmp = *X1;
+  *X1 = *X2;
+  *X2 = Tmp;
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT8U OrderCoord(
+   GuiConst_INT16S * X1,
+   GuiConst_INT16S * X2)
+{
+  if (*X1 > *X2)
+  {
+    SwapCoord (X1, X2);
+    return (1);
+  }
+  else
+    return (0);
+}
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+//------------------------------------------------------------------------------
+static GuiConst_INT8U CheckRect(
+   GuiConst_INT16S * X1,
+   GuiConst_INT16S * Y1,
+   GuiConst_INT16S * X2,
+   GuiConst_INT16S * Y2)
+{
+  if (sgl.ClippingTotal ||
+     (*X1 > sgl.ClippingX2) || (*X2 < sgl.ClippingX1) ||
+     (*Y1 > sgl.ClippingY2) || (*Y2 < sgl.ClippingY1))
+    return (0);
+  else
+  {
+    if (*X1 < sgl.ClippingX1)
+      *X1 = sgl.ClippingX1;
+    if (*X2 > sgl.ClippingX2)
+      *X2 = sgl.ClippingX2;
+    if (*Y1 < sgl.ClippingY1)
+      *Y1 = sgl.ClippingY1;
+    if (*Y2 > sgl.ClippingY2)
+      *Y2 = sgl.ClippingY2;
+    return (1);
+  }
+}
+#endif
+
+//==============================================================================
+
+#ifdef GuiConst_COLOR_DEPTH_1
+  #ifdef GuiConst_BYTE_HORIZONTAL
+    #include "GuiGraph1H.c"
+  #else
+    #include "GuiGraph1V.c"
+  #endif
+#endif
+#ifdef GuiConst_COLOR_DEPTH_2
+  #ifdef GuiConst_BYTE_HORIZONTAL
+    #ifdef GuiConst_COLOR_PLANES_2
+      #include "GuiGraph2H2P.c"
+    #else
+      #include "GuiGraph2H.c"
+    #endif
+  #else
+    #ifdef GuiConst_COLOR_PLANES_2
+      #include "GuiGraph2V2P.c"
+    #else
+      #include "GuiGraph2V.c"
+    #endif
+  #endif
+#endif
+#ifdef GuiConst_COLOR_DEPTH_4
+  #ifdef GuiConst_BYTE_HORIZONTAL
+    #include "GuiGraph4H.c"
+  #else
+    #include "GuiGraph4V.c"
+  #endif
+#endif
+#ifdef GuiConst_COLOR_DEPTH_5
+  #include "GuiGraph5.c"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_8
+  #include "GuiGraph8.c"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_12
+  #include "GuiGraph16.c"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_15
+  #include "GuiGraph16.c"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_16
+  #include "GuiGraph16.h"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_18
+  #include "GuiGraph24.c"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_24
+  #include "GuiGraph24.h"
+#endif
+#ifdef GuiConst_COLOR_DEPTH_32
+  #include "GuiGraph32.c"
+#endif
+
+#include "GuiGraph.h"
+#ifdef GuiConst_ADV_GRAPHICS_ON
+//#include "GuiGraphAdv.c"
+#endif
+
+//==============================================================================
+static void DrawStructure(GuiLib_StructPtr Structure, GuiConst_INT8U ColorInvert) PrefixReentrant;
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+static void DrawCursorItem(GuiConst_INT8U CursorVisible);
+#endif
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+static void ScrollBox_DrawScrollLine(GuiConst_INT8U ScrollBoxIndex, GuiConst_INT16S LineNdx);
+#endif
+
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+static GuiConst_INT16S IndexOfGraphicsLayer(GuiConst_INT16S GraphicsLayerIndex);
+static GuiConst_INT8U GraphicsLayer_Push(GuiConst_INT8U GraphicsLayerIndex);
+static GuiConst_INT8U GraphicsLayer_Pop(GuiConst_INT16S GraphicsLayerIndex);
+static void GraphicsLayer_Copy(
+   GuiConst_INT8U *DestAddress,
+   GuiConst_INT16U DestLineSize,
+   GuiConst_INT16S DestX,
+   GuiConst_INT16S DestY,
+   GuiConst_INT8U *SourceAddress,
+   GuiConst_INT16U SourceLineSize,
+   GuiConst_INT16S SourceX,
+   GuiConst_INT16S SourceY,
+   GuiConst_INT16U Width,
+   GuiConst_INT16U Height);
+#endif
+
+//==============================================================================
+
+//------------------------------------------------------------------------------
+static void ResetLayerBufPtr(void)
+{
+#ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
+#ifdef GuiLib_COLOR_UNIT_16
+  sgl.CurLayerBufPtr = &(GuiLib_DisplayBuf.Bytes[0][0]);
+#else
+  #ifdef GuiConst_COLOR_DEPTH_2
+    #ifdef GuiConst_BYTE_HORIZONTAL
+      #ifdef GuiConst_COLOR_PLANES_2
+  sgl.CurLayerBufPtr = &(GuiLib_DisplayBuf[0][0][0]);
+      #else
+  sgl.CurLayerBufPtr = &(GuiLib_DisplayBuf[0][0]);
+      #endif
+    #else // GuiConst_BYTE_HORIZONTAL
+      #ifdef GuiConst_COLOR_PLANES_2
+  sgl.CurLayerBufPtr = &(GuiLib_DisplayBuf[0][0][0]);
+      #else
+  sgl.CurLayerBufPtr = &(GuiLib_DisplayBuf[0][0]);
+      #endif
+    #endif // GuiConst_BYTE_HORIZONTAL
+  #else // GuiConst_COLOR_DEPTH_2
+  sgl.CurLayerBufPtr = &(GuiLib_DisplayBuf[0][0]);
+  #endif // GuiConst_COLOR_DEPTH_2
+#endif // GuiLib_COLOR_UNIT_16
+#else // GuiConst_DISPLAY_BUFFER_EASYGUI
+  sgl.CurLayerBufPtr = 0;
+#endif // GuiConst_DISPLAY_BUFFER_EASYGUI
+
+  sgl.CurLayerLineSize = GuiConst_BYTES_PR_LINE;
+  sgl.CurLayerWidth = GuiConst_DISPLAY_WIDTH_HW;
+  sgl.CurLayerHeight = GuiConst_DISPLAY_HEIGHT_HW;
+  sgl.CurLayerBytes = GuiConst_DISPLAY_BYTES;
+  sgl.BaseLayerDrawing = 1;
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Init(void)
+{
+  sgl.RefreshClock = 0;
+
+  ResetLayerBufPtr();
+
+  AutoRedraw_Init();
+
+#ifdef GuiConst_DISPLAY_ACTIVE_AREA
+#ifdef GuiConst_DISPLAY_ACTIVE_AREA_COO_REL
+  sgl.DisplayOrigoX = GuiConst_DISPLAY_ACTIVE_AREA_X1;
+  sgl.DisplayOrigoY = GuiConst_DISPLAY_ACTIVE_AREA_Y1;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  sgl.DisplayActiveAreaX1 = 0;
+  sgl.DisplayActiveAreaY1 = 0;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+#ifdef GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+  sgl.DisplayActiveAreaX2 =
+     GuiConst_DISPLAY_ACTIVE_AREA_X2 - GuiConst_DISPLAY_ACTIVE_AREA_X1;
+  sgl.DisplayActiveAreaY2 =
+     GuiConst_DISPLAY_ACTIVE_AREA_Y2 - GuiConst_DISPLAY_ACTIVE_AREA_Y1;
+#else // GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+  sgl.DisplayActiveAreaX2 =
+     GuiConst_DISPLAY_WIDTH - GuiConst_DISPLAY_ACTIVE_AREA_X1 - 1;
+  sgl.DisplayActiveAreaY2 =
+     GuiConst_DISPLAY_HEIGHT - GuiConst_DISPLAY_ACTIVE_AREA_Y1 - 1;
+#endif // GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+#else // GuiConst_DISPLAY_ACTIVE_AREA_COO_REL
+  sgl.DisplayOrigoX = 0;
+  sgl.DisplayOrigoY = 0;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+#ifdef GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+  sgl.DisplayActiveAreaX1 = GuiConst_DISPLAY_ACTIVE_AREA_X1;
+  sgl.DisplayActiveAreaY1 = GuiConst_DISPLAY_ACTIVE_AREA_Y1;
+  sgl.DisplayActiveAreaX2 = GuiConst_DISPLAY_ACTIVE_AREA_X2;
+  sgl.DisplayActiveAreaY2 = GuiConst_DISPLAY_ACTIVE_AREA_Y2;
+#else // GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+  sgl.DisplayActiveAreaX1 = 0;
+  sgl.DisplayActiveAreaY1 = 0;
+  sgl.DisplayActiveAreaX2 = GuiConst_DISPLAY_WIDTH - 1;
+  sgl.DisplayActiveAreaY2 = GuiConst_DISPLAY_HEIGHT - 1;
+#endif // GuiConst_DISPLAY_ACTIVE_AREA_CLIPPING
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+#endif // GuiConst_DISPLAY_ACTIVE_AREA_COO_REL
+#else // GuiConst_DISPLAY_ACTIVE_AREA
+  sgl.DisplayOrigoX = 0;
+  sgl.DisplayOrigoY = 0;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  sgl.DisplayActiveAreaX1 = 0;
+  sgl.DisplayActiveAreaY1 = 0;
+  sgl.DisplayActiveAreaX2 = GuiConst_DISPLAY_WIDTH - 1;
+  sgl.DisplayActiveAreaY2 = GuiConst_DISPLAY_HEIGHT - 1;
+#endif // GuiConst_CLIPPING_SUPPORT_ON
+#endif // GuiConst_DISPLAY_ACTIVE_AREA
+
+#ifdef GuiConst_ADV_GRAPHICS_ON
+//  GuiLib_AG_Init();
+#endif
+
+  GuiDisplay_Init();
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiLib_ResetClipping();
+#endif
+  GuiLib_ResetDisplayRepaint();
+  GuiLib_Clear();
+
+  sgl.DisplayWriting = 1;
+  sgl.InitialDrawing = 0;
+  sgl.TopLevelStructure = 0;
+  sgl.SwapColors = 0;
+  GuiLib_SetLanguage(0);
+#ifdef GuiConst_BLINK_SUPPORT_ON
+  sgl.BlinkBoxRate = 0;
+#endif
+  sgl.InvertBoxOn = 0;
+  sgl.DrawingLevel = 0;
+  GuiLib_CurStructureNdx = -1;
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+  GuiLib_TouchAdjustReset();
+#endif
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+  sgl.ButtonColorOverride = GuiLib_FALSE;
+  sgl.DisabledButtonColor = 0;
+#endif
+#ifdef GuiConst_REMOTE_DATA
+  GuiLib_RemoteDataReadBlock = 0;
+  #ifdef GuiConst_REMOTE_TEXT_DATA
+  GuiLib_RemoteTextReadBlock = 0;
+  sgl.CurRemoteText = -1;
+  sgl.RemoteTextTableOfs = -1;
+  #endif
+  #ifdef GuiConst_REMOTE_FONT_DATA
+  sgl.CurRemoteFont = -1;
+  #endif
+  #ifdef GuiConst_REMOTE_BITMAP_DATA
+  sgl.CurRemoteBitmap = -1;
+  #endif
+#endif
+
+#ifdef GuiConst_VNC_REMOTE_SUPPORT_ON
+  GuiVnc_Init();
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Clear(void)
+{
+  GuiConst_INT16S I;
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  GuiConst_INT16S N;
+#endif
+
+  GuiLib_ClearDisplay();
+
+  GuiLib_CurStructureNdx = -1;
+
+  AutoRedraw_Destroy();
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  sgl.CursorInUse = 0;
+  GuiLib_ActiveCursorFieldNo = -1;
+#endif
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  for (I = 0; I < GuiConst_BLINK_FIELDS_MAX; I++)
+  {
+    sgl.BlinkTextItems[I].InUse = 0;
+    sgl.BlinkTextItems[I].Active = 0;
+  }
+#endif
+#endif
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+  sgl.TouchAreaCnt = 0;
+#endif
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  for (I = 0; I < GuiConst_TEXTBOX_FIELDS_MAX; I++)
+    sgl.TextBoxScrollPositions[I].index = -1;
+#endif
+
+  sgl.LayerOrigoX = 0;
+  sgl.LayerOrigoY = 0;
+
+  sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+  sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  sgl.NextScrollLineReading = 0;
+  sgl.GlobalScrollBoxIndex = 0;
+  for (I = 0; I < GuiConst_SCROLLITEM_BOXES_MAX; I++)
+  {
+    sgl.ScrollBoxesAry[I].X1 = 0;
+    sgl.ScrollBoxesAry[I].Y1 = 0;
+    sgl.ScrollBoxesAry[I].InUse = GuiLib_SCROLL_STRUCTURE_UNDEF;
+    sgl.ScrollBoxesAry[I].ScrollTopLine = 0;
+    sgl.ScrollBoxesAry[I].LastScrollTopLine = 0;
+    sgl.ScrollBoxesAry[I].LastMarkerLine = 0;
+    sgl.ScrollBoxesAry[I].ScrollActiveLine = 0;
+    sgl.ScrollBoxesAry[I].NumberOfLines = 0;
+  }
+#endif
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+  sgl.GlobalGraphIndex = 0;
+  for (I = 0; I < GuiConst_GRAPH_MAX; I++)
+  {
+    sgl.GraphAry[I].InUse = GuiLib_GRAPH_STRUCTURE_UNDEF;
+    sgl.GraphAry[I].GraphAxesCnt[GuiLib_GRAPHAXIS_X] = 0;
+    sgl.GraphAry[I].GraphAxesCnt[GuiLib_GRAPHAXIS_Y] = 0;
+    sgl.GraphAry[I].GraphDataSetCnt = 0;
+  }
+#endif
+
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  GraphicsLayer_Pop(GuiLib_GRAPHICS_LAYER_BASE);
+  for (I = 0; I < GuiConst_GRAPHICS_LAYER_MAX; I++)
+    sgl.GraphicsLayerLifo[I] = -1;
+  sgl.GraphicsLayerLifoCnt = 0;
+  sgl.GlobalGraphicsLayerIndex = 0;
+  for (I = 0; I < GuiConst_GRAPHICS_LAYER_MAX; I++)
+  {
+    sgl.GraphicsLayerList[I].InUse = GuiLib_GRAPHICS_LAYER_UNDEF;
+    sgl.GraphicsLayerList[I].SizeMode = 0;
+    sgl.GraphicsLayerList[I].InitMode = 0;
+  }
+  sgl.GlobalGraphicsFilterIndex = 0;
+  for (I = 0; I < GuiConst_GRAPHICS_FILTER_MAX; I++)
+  {
+    sgl.GraphicsFilterList[I].InUse = GuiLib_GRAPHICS_FILTER_UNDEF;
+    sgl.GraphicsFilterList[I].GraphicsFilterFunc = 0;
+    sgl.GraphicsFilterList[I].SourceLayerIndexNo = GuiLib_GRAPHICS_LAYER_BASE;
+    sgl.GraphicsFilterList[I].DestLayerIndexNo = GuiLib_GRAPHICS_LAYER_BASE;
+    sgl.GraphicsFilterList[I].ContAtLayerIndexNo = GuiLib_GRAPHICS_LAYER_BASE;
+    for (N = 0; N <= 9; N++)
+    {
+      sgl.GraphicsFilterList[I].ParVarType[N] = 0;
+      sgl.GraphicsFilterList[I].ParVarPtr[N] = 0;
+      sgl.GraphicsFilterList[I].ParValueNum[N] = 0;
+    }
+  }
+#endif
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  sgl.GlobalBackgrBitmapIndex = 0;
+  for (I = 0; I < GuiConst_MAX_BACKGROUND_BITMAPS; I++)
+  {
+    sgl.BackgrBitmapAry[I].InUse = 0;
+    sgl.BackgrBitmapAry[I].Index = 0;
+    sgl.BackgrBitmapAry[I].X = 0;
+    sgl.BackgrBitmapAry[I].Y = 0;
+  }
+#endif
+
+  GuiLib_ClearPositionCallbacks();
+}
+
+// Groupstart CHARS
+
+#ifdef GuiConst_CHARMODE_UNICODE
+//------------------------------------------------------------------------------
+GuiConst_INT16U GuiLib_UnicodeStrLen(
+   GuiConst_TEXT PrefixLocate *S)
+{
+  GuiConst_INT16U StrLen;
+
+  StrLen = 0;
+  while (*S != 0)
+  {
+    StrLen++;
+    S++;
+  }
+  return (StrLen);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_StrAnsiToUnicode(
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_CHAR PrefixLocate *S1)
+{
+  do
+  {
+    *S2 = (GuiConst_TEXT)(*S1);
+    *S2 &= 0x00ff;
+    if (*S1 == 0)
+      return;
+    S1++;
+    S2++;
+  }
+  while (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S GuiLib_UnicodeStrCmp(
+   GuiConst_TEXT PrefixLocate *S1,
+   GuiConst_TEXT PrefixLocate *S2)
+{
+  do
+  {
+    if ((*S1 == 0) && (*S2 == 0))
+      return (0);
+
+    else if (*S1 == 0)
+      return (-1);
+    else if (*S2 == 0)
+      return (1);
+    else if (*S1 < *S2)
+      return (-1);
+    else if (*S1 > *S2)
+      return (1);
+    S1++;
+    S2++;
+  }
+  while (1);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S GuiLib_UnicodeStrNCmp(
+   GuiConst_TEXT PrefixLocate *S1,
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_INT16U StrLen)
+{
+  while (StrLen > 0)
+  {
+    if ((*S1 == 0) && (*S2 == 0))
+      return (0);
+    else if (*S1 == 0)
+      return (-1);
+    else if (*S2 == 0)
+      return (1);
+    else if (*S1 < *S2)
+      return (-1);
+    else if (*S1 > *S2)
+      return (1);
+    S1++;
+    S2++;
+    StrLen--;
+  }
+  return (0);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_UnicodeStrCpy(
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_TEXT PrefixLocate *S1)
+{
+  do
+  {
+    *S2 = *S1;
+    if (*S1 == 0)
+      return;
+    S1++;
+    S2++;
+  }
+  while (1);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_UnicodeStrNCpy(
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_TEXT PrefixLocate *S1,
+   GuiConst_INT16U StrLen)
+{
+  while (StrLen > 0)
+  {
+    *S2 = *S1;
+    if (*S1 != 0)
+      S1++;
+    S2++;
+    StrLen--;
+  }
+}
+#endif // GuiConst_CHARMODE_UNICODE
+
+//------------------------------------------------------------------------------
+static void ConvertIntToStr(
+   GuiConst_INT32U num,
+   GuiConst_CHAR PrefixLocate *string,
+   GuiConst_INT32U base)
+{
+  #define BUFFER_SIZE 11
+
+  GuiConst_INT8U digits[16] =
+     { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 65, 66, 67, 68, 69, 70 };
+  GuiConst_CHAR buffer[BUFFER_SIZE];
+  GuiConst_INT8U bufferLen;
+  GuiConst_INT8U i;
+
+  bufferLen = 0;
+  do
+  {
+    i = num % base;
+    buffer[bufferLen++] = digits[i];
+    num /= base;
+  }
+  while ((num != 0) && (bufferLen < BUFFER_SIZE));
+
+  if (bufferLen <= GuiConst_MAX_VARNUM_TEXT_LEN)
+    while (bufferLen-- > 0)
+      *string++ = buffer[bufferLen];
+
+  *string = '\0';
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT16S CharDist(
+   GuiConst_INT16U ChPos1,
+   GuiConst_INT16U ChPos2,
+   GuiConst_INT8U Ps)
+{
+  GuiConst_INT16S Result, D;
+#ifndef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U PrefixRom *Ps1;
+  GuiConst_INT8U PrefixRom *Ps2;
+#endif
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U CharHeader1[GuiLib_CHR_LINECTRL_OFS];
+  GuiConst_INT8U CharHeader2[GuiLib_CHR_LINECTRL_OFS];
+#endif
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+  if (Ps == GuiLib_PS_OFF)
+    return (sgl.CurFont->XSize);
+  else if ((Ps == GuiLib_PS_ON) || (Ps == GuiLib_PS_NUM))
+  {
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[ChPos1]],
+       GuiLib_CHR_LINECTRL_OFS, CharHeader1);
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[ChPos2]],
+       GuiLib_CHR_LINECTRL_OFS, CharHeader2);
+    if ((Ps == GuiLib_PS_ON) || (sgl.TextPsMode[ChPos1] && sgl.TextPsMode[ChPos2]))
+    {
+      Result = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_TOP_OFS] -
+          CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_TOP_OFS];
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_MID_OFS] -
+          CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_MID_OFS];
+      if (D > Result)
+        Result = D;
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_MIDBASE_OFS] -
+          CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_MIDBASE_OFS];
+      if (D > Result)
+        Result = D;
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_BASE_OFS] -
+          CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_BASE_OFS];
+      if (D > Result)
+        Result = D;
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_BOTTOM_OFS] -
+          CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_BOTTOM_OFS];
+      if (D > Result)
+        Result = D;
+      return (Result + sgl.CurFont->PsSpace + 1);
+    }
+    else if (sgl.TextPsMode[ChPos1])
+    {
+      Result = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_TOP_OFS];
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_MID_OFS];
+      if (D > Result)
+        Result = D;
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_MIDBASE_OFS];
+      if (D > Result)
+        Result = D;
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_BASE_OFS];
+      if (D > Result)
+        Result = D;
+      D = CharHeader1[GuiLib_CHR_PSRIGHT_OFS + GuiLib_CHR_PS_BOTTOM_OFS];
+      if (D > Result)
+        Result = D;
+      return (Result + sgl.CurFont->PsSpace + 1);
+    }
+    else if (sgl.TextPsMode[ChPos2])
+    {
+      Result = CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_TOP_OFS];
+      D = CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_MID_OFS];
+      if (D < Result)
+        Result = D;
+      D = CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_MIDBASE_OFS];
+      if (D < Result)
+        Result = D;
+      D = CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_BASE_OFS];
+      if (D < Result)
+        Result = D;
+      D = CharHeader2[GuiLib_CHR_PSLEFT_OFS + GuiLib_CHR_PS_BOTTOM_OFS];
+      if (D < Result)
+        Result = D;
+      return (sgl.CurFont->PsNumWidth - Result + sgl.CurFont->PsSpace);
+    }
+    else
+      return (sgl.CurFont->PsNumWidth + sgl.CurFont->PsSpace);
+  }
+  else
+    return (0);
+#else
+  if (Ps == GuiLib_PS_OFF)
+    return (ReadByte(sgl.CurFont->XSize));
+  else if ((Ps == GuiLib_PS_ON) || (Ps == GuiLib_PS_NUM))
+  {
+    if ((Ps == GuiLib_PS_ON) || (sgl.TextPsMode[ChPos1] && sgl.TextPsMode[ChPos2]))
+    {
+      Ps1 = sgl.TextCharPtrAry[ChPos1] + GuiLib_CHR_PSRIGHT_OFS;
+      Ps2 = sgl.TextCharPtrAry[ChPos2] + GuiLib_CHR_PSLEFT_OFS;
+      Result = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_TOP_OFS)) -
+         (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_TOP_OFS));
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_MID_OFS)) -
+          (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_MID_OFS));
+      if (D > Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_MIDBASE_OFS)) -
+          (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_MIDBASE_OFS));
+      if (D > Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_BASE_OFS)) -
+          (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_BASE_OFS));
+      if (D > Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_BOTTOM_OFS)) -
+          (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_BOTTOM_OFS));
+      if (D > Result)
+        Result = D;
+      return (Result + ReadByte(sgl.CurFont->PsSpace) + 1);
+    }
+    else if (sgl.TextPsMode[ChPos1])
+    {
+      Ps1 = sgl.TextCharPtrAry[ChPos1] + GuiLib_CHR_PSRIGHT_OFS;
+      Result = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_TOP_OFS));
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_MID_OFS));
+      if (D > Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_MIDBASE_OFS));
+      if (D > Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_BASE_OFS));
+      if (D > Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps1 + GuiLib_CHR_PS_BOTTOM_OFS));
+      if (D > Result)
+        Result = D;
+      return (Result + ReadByte(sgl.CurFont->PsSpace) + 1);
+    }
+    else if (sgl.TextPsMode[ChPos2])
+    {
+      Ps2 = sgl.TextCharPtrAry[ChPos2] + GuiLib_CHR_PSLEFT_OFS;
+      Result = (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_TOP_OFS));
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_MID_OFS));
+      if (D < Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_MIDBASE_OFS));
+      if (D < Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_BASE_OFS));
+      if (D < Result)
+        Result = D;
+      D = (GuiConst_INT16S)(ReadBytePtr(Ps2 + GuiLib_CHR_PS_BOTTOM_OFS));
+      if (D < Result)
+        Result = D;
+      return (ReadByte(sgl.CurFont->PsNumWidth) - Result +
+              ReadByte(sgl.CurFont->PsSpace));
+    }
+    else
+      return (ReadByte(sgl.CurFont->PsNumWidth) +
+         ReadByte(sgl.CurFont->PsSpace));
+  }
+  else
+    return (0);
+#endif
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT16S TextPixelLength(
+   GuiConst_INT8U Ps,
+   GuiConst_INT16U CharCnt,
+   GuiConst_INT16S *TextXOfs)
+{
+  GuiConst_INT16U P;
+  GuiConst_INT16S L;
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U CharHeader1[GuiLib_CHR_LINECTRL_OFS + 1];
+  GuiConst_INT8U CharHeader2[GuiLib_CHR_LINECTRL_OFS + 1];
+#endif
+
+  if (CharCnt == 0)
+    return (0);
+  else
+  {
+#ifdef GuiConst_REMOTE_FONT_DATA
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[0]],
+       GuiLib_CHR_LINECTRL_OFS + 1, CharHeader1);
+    GuiLib_RemoteDataReadBlock(
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[CharCnt - 1]],
+       GuiLib_CHR_LINECTRL_OFS + 1, CharHeader2);
+#endif
+
+    if (sgl.TextPsMode[0])
+    {
+#ifdef GuiConst_REMOTE_FONT_DATA
+      if (CharHeader1[GuiLib_CHR_LINECTRL_OFS] & 0x01)
+        L = -(GuiConst_INT16S)CharHeader1[GuiLib_CHR_PSLEFT_OFS];
+      else
+        L = -(GuiConst_INT16S)CharHeader1[GuiLib_CHR_XLEFT_OFS];
+#else
+      if (ReadBytePtr(sgl.TextCharPtrAry[0] + GuiLib_CHR_LINECTRL_OFS) & 0x01)
+        L = -(GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[0] +
+           GuiLib_CHR_PSLEFT_OFS));
+      else
+        L = -(GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[0] +
+         GuiLib_CHR_XLEFT_OFS));
+#endif
+    }
+    else
+      L = 0;
+
+    if (TextXOfs != NULL)
+      TextXOfs[0] = L;
+
+    for (P = 0; P < CharCnt - 1; P++)
+    {
+      L += CharDist (P, P + 1, Ps);
+      if (TextXOfs != NULL)
+        TextXOfs[P + 1] = L;
+    }
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+    if (sgl.TextPsMode[CharCnt - 1])
+    {
+      if (CharHeader2[GuiLib_CHR_LINECTRL_OFS] & 0x01)
+        L += (GuiConst_INT16S)CharHeader2[GuiLib_CHR_PSRIGHT_OFS] + 1;
+      else
+        L += (GuiConst_INT16S)CharHeader2[GuiLib_CHR_XLEFT_OFS] +
+             (GuiConst_INT16S)CharHeader2[GuiLib_CHR_XWIDTH_OFS];
+    }
+    else if (Ps == GuiLib_PS_NUM)
+    {
+      if (CharHeader2[GuiLib_CHR_LINECTRL_OFS] & 0x01)
+        L += (GuiConst_INT16S)CharHeader2[GuiLib_CHR_PSRIGHT_OFS] + 1;
+      else
+        L += sgl.CurFont->PsNumWidth + sgl.CurFont->PsSpace;
+    }
+    else
+      L += sgl.CurFont->XSize;
+#else
+    if (sgl.TextPsMode[CharCnt - 1])
+    {
+      if (ReadBytePtr(sgl.TextCharPtrAry[CharCnt - 1] + GuiLib_CHR_LINECTRL_OFS) & 0x01)
+        L += (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharCnt - 1] +
+              GuiLib_CHR_PSRIGHT_OFS)) + 1;
+      else
+        L += ReadBytePtr(sgl.TextCharPtrAry[CharCnt - 1] + GuiLib_CHR_XLEFT_OFS) +
+          ReadBytePtr(sgl.TextCharPtrAry[CharCnt - 1] + GuiLib_CHR_XWIDTH_OFS);
+    }
+    else if (Ps == GuiLib_PS_NUM)
+    {
+      if (ReadBytePtr(sgl.TextCharPtrAry[CharCnt - 1] +
+          GuiLib_CHR_LINECTRL_OFS) & 0x01)
+        L += (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharCnt - 1] +
+              GuiLib_CHR_PSRIGHT_OFS)) + 1;
+      else
+        L += ReadByte(sgl.CurFont->PsNumWidth) +
+           ReadByte(sgl.CurFont->PsSpace);
+    }
+    else
+      L += ReadByte(sgl.CurFont->XSize);
+#endif
+    if (TextXOfs != NULL)
+      TextXOfs[CharCnt] = L;
+    return (L);
+  }
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT16U CalcCharsWidth(
+   GuiConst_INT16U CharPos1,
+   GuiConst_INT16U CharPos2,
+   GuiConst_INT16S *TextXOfs,
+   GuiConst_INT16S *pXStart,
+   GuiConst_INT16S *pXEnd)
+{
+  GuiConst_INT16S X1;
+  GuiConst_INT16S X2;
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U CharHeader1[GuiLib_CHR_LINECTRL_OFS+1];
+  GuiConst_INT8U CharHeader2[GuiLib_CHR_LINECTRL_OFS+1];
+
+  GuiLib_RemoteDataReadBlock(
+     (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[CharPos1]],
+      GuiLib_CHR_LINECTRL_OFS+1, CharHeader1);
+  GuiLib_RemoteDataReadBlock(
+     (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[CharPos2]],
+      GuiLib_CHR_LINECTRL_OFS+1, CharHeader2);
+
+  if (sgl.TextPsMode[CharPos1])
+  {
+    if (CharHeader1[GuiLib_CHR_LINECTRL_OFS] & 0x01)
+      X1 = TextXOfs[CharPos1] +
+           (GuiConst_INT16S)CharHeader1[GuiLib_CHR_PSLEFT_OFS];
+    else
+      X1 = TextXOfs[CharPos1] +
+           (GuiConst_INT16S)CharHeader1[GuiLib_CHR_XLEFT_OFS];
+  }
+  else
+    X1 = TextXOfs[CharPos1];
+  if (sgl.TextPsMode[CharPos2])
+  {
+    if (CharHeader2[GuiLib_CHR_LINECTRL_OFS] & 0x01)
+      X2 = TextXOfs[CharPos2] +
+           (GuiConst_INT16S)CharHeader2[GuiLib_CHR_PSRIGHT_OFS];
+    else
+      X2 = TextXOfs[CharPos2] +
+           (GuiConst_INT16S)CharHeader1[GuiLib_CHR_XLEFT_OFS] +
+           (GuiConst_INT16S)CharHeader2[GuiLib_CHR_XWIDTH_OFS] - 1;
+  }
+  else
+    X2 = TextXOfs[CharPos2] + sgl.CurFont->XSize - 1;
+#else
+  if (sgl.TextPsMode[CharPos1])
+  {
+    if (ReadBytePtr(sgl.TextCharPtrAry[CharPos1] +
+        GuiLib_CHR_LINECTRL_OFS) & 0x01)
+      X1 = TextXOfs[CharPos1] +
+           (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharPos1] +
+            GuiLib_CHR_PSLEFT_OFS));
+    else
+      X1 = TextXOfs[CharPos1] +
+           (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharPos1] +
+            GuiLib_CHR_XLEFT_OFS));
+  }
+  else
+    X1 = TextXOfs[CharPos1];
+  if (sgl.TextPsMode[CharPos2])
+  {
+    if (ReadBytePtr(sgl.TextCharPtrAry[CharPos2] +
+        GuiLib_CHR_LINECTRL_OFS) & 0x01)
+      X2 = TextXOfs[CharPos2] +
+           (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharPos2] +
+            GuiLib_CHR_PSRIGHT_OFS));
+    else
+      X2 = TextXOfs[CharPos2] +
+           (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharPos2] +
+            GuiLib_CHR_XLEFT_OFS)) +
+           (GuiConst_INT16S)(ReadBytePtr(sgl.TextCharPtrAry[CharPos2] +
+            GuiLib_CHR_XWIDTH_OFS)) - 1;
+  }
+  else
+    X2 = TextXOfs[CharPos2] + sgl.CurFont->XSize - 1;
+#endif
+
+  *pXStart = X1;
+  *pXEnd = X2;
+  return(X2 - X1 + 1);
+}
+
+#ifdef GuiConst_CHARMODE_UNICODE
+//------------------------------------------------------------------------------
+static GuiConst_INT32U GetCharNdx(
+   GuiLib_FontRecPtr Font,
+   GuiConst_INT16U CharCode)
+{
+  GuiConst_INT32U CharNdx,CharNdx1,CharNdx2;
+  GuiConst_INT32U ReturnValue;
+
+  CharNdx1 = ReadWord(Font->FirstCharNdx) + 1;
+  CharNdx2 = CharNdx1 + ReadWord(Font->CharCount) - 1;
+
+  ReturnValue = 0;
+
+  do
+  {
+    CharNdx = CharNdx1 + ((CharNdx2 - CharNdx1) >> 1);
+
+    if (ReadWord(GuiFont_ChUnicodeList[CharNdx]) == CharCode)
+    {
+      ReturnValue = CharNdx;
+      break;
+    }
+
+    if (CharNdx1 == CharNdx2)
+    {
+      ReturnValue = ReadWord(Font->FirstCharNdx);
+      break;
+    }
+
+    if (ReadWord(GuiFont_ChUnicodeList[CharNdx]) > CharCode)
+      CharNdx2 = CharNdx - 1;
+    else
+      CharNdx1 = CharNdx + 1;
+
+    if (CharNdx1 > CharNdx2)
+    {
+      ReturnValue = ReadWord(Font->FirstCharNdx);
+      break;
+    }
+  }
+  while (1);
+
+  return ReturnValue;
+}
+#endif
+
+//------------------------------------------------------------------------------
+static void PrepareText(
+   GuiConst_TEXT PrefixGeneric *CharPtr,
+   GuiConst_INT16U CharCnt,
+   GuiConst_INT8U TextNdx)
+{
+  GuiConst_INT16S P;
+#ifdef GuiConst_CHARMODE_ANSI
+  GuiConst_INT8U CharCode;
+#else
+  GuiConst_INT16U CharCode;
+  GuiConst_INT16U CharNdx;
+#endif
+
+  if (CharCnt > GuiConst_MAX_TEXT_LEN)
+    CharCnt = GuiConst_MAX_TEXT_LEN;
+
+  for (P = 0; P < CharCnt; P++)
+  {
+#ifdef GuiConst_CHARMODE_ANSI
+
+#ifdef GuiConst_AVRGCC_COMPILER
+    if (displayVarNow)
+      CharCode = (unsigned GuiConst_CHAR) *CharPtr;
+    else
+      CharCode = (unsigned GuiConst_CHAR) ReadBytePtr(CharPtr);
+#else
+#ifdef GuiConst_ICC_COMPILER
+    if (displayVarNow)
+      CharCode = (unsigned GuiConst_CHAR) *CharPtr;
+    else
+      CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+    if (displayVarNow)
+      CharCode = (unsigned GuiConst_CHAR) *CharPtr;
+    else
+      CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+#else
+#ifdef GuiConst_RENESAS_COMPILER_FAR
+    if (displayVarNow)
+      CharCode = (unsigned GuiConst_CHAR) *CharPtr;
+    else
+      CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+#else
+      CharCode = (unsigned GuiConst_TEXT) *CharPtr;
+#endif // GuiConst_RENESAS_COMPILER_FAR
+#endif // GuiConst_CODEVISION_COMPILER
+#endif // GuiConst_ICC_COMPILER
+#endif // GuiConst_AVRGCC_COMPILER
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+    if ((CharCode < sgl.CurFont->FirstChar) ||
+        (CharCode > sgl.CurFont->LastChar))
+      sgl.TextCharNdx[P] = sgl.CurFont->IllegalCharNdx;
+    else
+    {
+      sgl.TextCharNdx[P] =
+         sgl.CurFont->FirstCharNdx + (GuiConst_INT16U)CharCode -
+         (GuiConst_INT16U)sgl.CurFont->FirstChar;
+
+      if ((GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[P] + 1] -
+          (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[sgl.TextCharNdx[P]] == 0)
+        sgl.TextCharNdx[P] = sgl.CurFont->IllegalCharNdx;
+    }
+#else // GuiConst_REMOTE_FONT_DATA
+    if ((CharCode < ReadByte(sgl.CurFont->FirstChar)) ||
+        (CharCode > ReadByte(sgl.CurFont->LastChar)))
+      sgl.TextCharPtrAry[P] = (GuiConst_INT8U*)ReadWord(
+         GuiFont_ChPtrList[ReadWord(sgl.CurFont->IllegalCharNdx)]);
+    else
+      sgl.TextCharPtrAry[P] = (GuiConst_INT8U*)ReadWord(
+         GuiFont_ChPtrList[ReadWord(sgl.CurFont->FirstCharNdx) +
+         (GuiConst_INT16U)CharCode -
+         (GuiConst_INT16U)ReadByte(sgl.CurFont->FirstChar)]);
+#endif // GuiConst_REMOTE_FONT_DATA
+
+    if (sgl.CurItem.TextPar[TextNdx].Ps == GuiLib_PS_ON)
+      sgl.TextPsMode[P] = 1;
+    else if (sgl.CurItem.TextPar[TextNdx].Ps == GuiLib_PS_NUM)
+    {
+      if (((CharCode >= '0') && (CharCode <= '9')) ||
+         (CharCode == ' ') || (CharCode == '+') || (CharCode == '-') ||
+         (CharCode == '*') || (CharCode == '/') || (CharCode == '='))
+        sgl.TextPsMode[P] = 0;
+      else
+        sgl.TextPsMode[P] = 1;
+    }
+    else
+      sgl.TextPsMode[P] = 0;
+
+#else // GuiConst_CHARMODE_ANSI
+    CharCode = *((PrefixLocate GuiConst_INT16U*)CharPtr);
+    CharNdx = GetCharNdx(sgl.CurFont, CharCode);
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+    sgl.TextCharNdx[P] = CharNdx;
+#else
+    sgl.TextCharPtrAry[P] =
+       (GuiConst_INT8U PrefixRom *)ReadWord(GuiFont_ChPtrList[CharNdx]);
+#endif
+
+    if (sgl.CurItem.TextPar[TextNdx].Ps == GuiLib_PS_ON)
+      sgl.TextPsMode[P] = 1;
+    else if ((sgl.CurItem.TextPar[TextNdx].Ps == GuiLib_PS_NUM) && (CharNdx > 0))
+    {
+      if (((CharCode >= '0') && (CharCode <= '9')) ||
+         (CharCode == ' ') || (CharCode == '+') || (CharCode == '-') ||
+         (CharCode == '*') || (CharCode == '/') || (CharCode == '='))
+        sgl.TextPsMode[P] = 0;
+      else
+        sgl.TextPsMode[P] = 1;
+    }
+    else
+      sgl.TextPsMode[P] = 0;
+#endif // GuiConst_CHARMODE_ANSI
+    CharPtr++;
+  }
+}
+
+#ifdef GuiConst_ARAB_CHARS_INUSE
+//------------------------------------------------------------------------------
+static GuiConst_INT16U ArabicCorrection(
+   GuiConst_TEXT PrefixGeneric *CharPtr,
+   GuiConst_INT16U CharCnt,
+   GuiConst_INT8U RightToLeftWriting)
+{
+  GuiConst_INT16S I, J, P;
+  GuiConst_INT16U CharCode;
+  GuiConst_INT16U CharCode2;
+  GuiConst_TEXT PrefixLocate *CharPtr2;
+  GuiConst_TEXT PrefixLocate *CharPtrA;
+  GuiConst_TEXT PrefixLocate *CharPtrB;
+
+  if (!RightToLeftWriting)
+    return CharCnt;
+
+  CharPtr2 = CharPtr;
+
+  for (P = 0; P < CharCnt; P++)
+  {
+    CharCode = *((GuiConst_INT16U*)CharPtr);
+    switch (CharCode)
+    {
+      case 40:
+        *((GuiConst_INT16U*)CharPtr) = 41;
+        break;
+      case 41:
+        *((GuiConst_INT16U*)CharPtr) = 40;
+        break;
+
+      case 91:
+        *((GuiConst_INT16U*)CharPtr) = 93;
+        break;
+      case 93:
+        *((GuiConst_INT16U*)CharPtr) = 91;
+        break;
+
+      case 123:
+        *((GuiConst_INT16U*)CharPtr) = 125;
+        break;
+      case 125:
+        *((GuiConst_INT16U*)CharPtr) = 123;
+        break;
+    }
+
+    CharPtr++;
+  }
+
+  P = 0;
+  CharPtr = CharPtr2;
+  do
+  {
+    CharCode = *((GuiConst_INT16U*)CharPtr);
+    CharPtrA = CharPtr;
+    CharPtr++;
+    CharCode2 = *((GuiConst_INT16U*)CharPtr);
+
+    for (I = 0; I < GuiLib_ARAB_LIGATURES_CNT; I++)
+      if ((CharCode == GuiLib_ARAB_LIGATURES[I][0]) &&
+          (CharCode2 == GuiLib_ARAB_LIGATURES[I][1]))
+      {
+        *((GuiConst_INT16U*)CharPtrA) = GuiLib_ARAB_LIGATURES[I][2];
+        CharPtrA = CharPtr;
+        CharPtrB = CharPtrA;
+        CharPtrB++;
+        CharCnt--;
+        for (J = P + 1; J < CharCnt; J++)
+        {
+          *((GuiConst_INT16U*)CharPtrA) = *((GuiConst_INT16U*)CharPtrB);
+          CharPtrA++;
+          CharPtrB++;
+        }
+        *((GuiConst_INT16U*)CharPtrA) = 0;
+        break;
+      }
+
+    P++;
+  }
+  while (P < CharCnt - 1);
+
+  CharPtr = CharPtr2;
+  for (P = 0; P < CharCnt; P++)
+  {
+    CharCode = *((GuiConst_INT16U*)CharPtr);
+
+    for (I = 0; I < GuiLib_ARAB_CHAR_CONVERT_CNT; I++)
+      if ((CharCode == GuiLib_ARAB_CHAR_CONVERT[I][0]) && (CharCode > 0))
+      {
+        *((GuiConst_INT16U*)CharPtr) = GuiLib_ARAB_CHAR_CONVERT[I][1];
+        break;
+      }
+
+    CharPtr++;
+  }
+
+  gl.ArabicCharJoiningModeIndex[0] = -1;
+  CharPtr = CharPtr2;
+  for (P = 0; P < CharCnt; P++)
+  {
+    CharCode = *((GuiConst_INT16U*)CharPtr);
+
+    gl.ArabicCharJoiningModeIndex[P + 1] = -1;
+    for (I = 0; I < GuiLib_ARAB_CHAR_CONVERT_CNT; I++)
+      if ((CharCode >= GuiLib_ARAB_CHAR_CONVERT[I][1]) &&
+          (CharCode <= GuiLib_ARAB_CHAR_CONVERT[I][1] +
+          (GuiLib_ARAB_CHAR_CONVERT[I][2] & 7) - 1))
+      {
+        gl.ArabicCharJoiningModeIndex[P + 1] = I;
+        break;
+      }
+
+    CharPtr++;
+  }
+  gl.ArabicCharJoiningModeIndex[CharCnt + 1] = -1;
+
+  for (P = 0; P < CharCnt + 2; P++)
+  {
+    if (gl.ArabicCharJoiningModeIndex[P] == -1)
+      gl.ArabicCharJoiningMode[P] = GuiLib_ARAB_CHAR_TYPE_ISO;
+    else
+      gl.ArabicCharJoiningMode[P] =
+         GuiLib_ARAB_CHAR_CONVERT[gl.ArabicCharJoiningModeIndex[P]][2];
+  }
+
+  CharPtr = CharPtr2;
+  for (P = 0; P < CharCnt; P++)
+  {
+    CharCode = *((GuiConst_INT16U*)CharPtr);
+
+    I = P;
+    while (gl.ArabicCharJoiningMode[I] == GuiLib_ARAB_CHAR_DIACRITIC)
+      I--;
+    gl.ArabicCharJoiningModeBefore = gl.ArabicCharJoiningMode[I];
+    I = P + 2;
+    while (gl.ArabicCharJoiningMode[I] == GuiLib_ARAB_CHAR_DIACRITIC)
+      I++;
+    gl.ArabicCharJoiningModeAfter = gl.ArabicCharJoiningMode[I];
+
+    switch (gl.ArabicCharJoiningMode[P + 1])
+    {
+      case GuiLib_ARAB_CHAR_ISOFIN:
+        if (gl.ArabicCharJoiningModeBefore == GuiLib_ARAB_CHAR_ISOFININIMED)
+          *((GuiConst_INT16U*)CharPtr) =
+             GuiLib_ARAB_CHAR_CONVERT[gl.ArabicCharJoiningModeIndex[P + 1]][1] +
+             GuiLib_ARAB_CHAR_TYPE_FIN;
+        break;
+
+      case GuiLib_ARAB_CHAR_ISOFININIMED:
+        if ((gl.ArabicCharJoiningModeAfter == GuiLib_ARAB_CHAR_ISOFIN) ||
+            (gl.ArabicCharJoiningModeAfter == GuiLib_ARAB_CHAR_ISOFININIMED))
+        {
+          if (gl.ArabicCharJoiningModeBefore == GuiLib_ARAB_CHAR_ISOFININIMED)
+            *((GuiConst_INT16U*)CharPtr) =
+               GuiLib_ARAB_CHAR_CONVERT[gl.ArabicCharJoiningModeIndex[P + 1]][1] +
+               GuiLib_ARAB_CHAR_TYPE_MED;
+          else
+            *((GuiConst_INT16U*)CharPtr) =
+               GuiLib_ARAB_CHAR_CONVERT[gl.ArabicCharJoiningModeIndex[P + 1]][1] +
+               GuiLib_ARAB_CHAR_TYPE_INI;
+        }
+        else if (gl.ArabicCharJoiningModeBefore == GuiLib_ARAB_CHAR_ISOFININIMED)
+          *((GuiConst_INT16U*)CharPtr) =
+             GuiLib_ARAB_CHAR_CONVERT[gl.ArabicCharJoiningModeIndex[P + 1]][1] +
+             GuiLib_ARAB_CHAR_TYPE_FIN;
+        break;
+
+      case GuiLib_ARAB_CHAR_DIACRITIC:
+        if (((gl.ArabicCharJoiningMode[P + 2] == GuiLib_ARAB_CHAR_ISOFIN) ||
+             (gl.ArabicCharJoiningMode[P + 2] == GuiLib_ARAB_CHAR_ISOFININIMED)) &&
+            (gl.ArabicCharJoiningMode[P] == GuiLib_ARAB_CHAR_ISOFININIMED))
+          *((GuiConst_INT16U*)CharPtr) =
+             GuiLib_ARAB_CHAR_CONVERT[gl.ArabicCharJoiningModeIndex[P + 1]][1] + 1;
+        break;
+    }
+
+    CharPtr++;
+  }
+
+  return (CharCnt);
+}
+#endif
+
+// Groupend CHARS
+// Groupstart DRAW
+
+//------------------------------------------------------------------------------
+static void ResetDrawLimits(void)
+{
+  gl.Drawn = 0;
+  gl.DrawnX1 = 0x7FFF;
+  gl.DrawnY1 = 0x7FFF;
+  gl.DrawnX2 = 0x8000;
+  gl.DrawnY2 = 0x8000;
+}
+
+//------------------------------------------------------------------------------
+static void UpdateDrawLimits(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  sgl.CurItem.Drawn = 1;
+  sgl.CurItem.DrawnX1 = X1;
+  sgl.CurItem.DrawnY1 = Y1;
+  sgl.CurItem.DrawnX2 = X2;
+  sgl.CurItem.DrawnY2 = Y2;
+
+  gl.Drawn = 1;
+  gl.DrawnX1 = GuiLib_GET_MIN(gl.DrawnX1, X1);
+  gl.DrawnY1 = GuiLib_GET_MIN(gl.DrawnY1, Y1);
+  gl.DrawnX2 = GuiLib_GET_MAX(gl.DrawnX2, X2);
+  gl.DrawnY2 = GuiLib_GET_MAX(gl.DrawnY2, Y2);
+}
+
+//------------------------------------------------------------------------------
+static void DrawBorderBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR BorderColor,
+   GuiConst_INTCOLOR FillColor,
+   GuiConst_INT8U FillTransparent,
+   GuiConst_INT16U BorderThickness)
+{
+  if (BorderThickness == 1)
+    GuiLib_Box(X1, Y1, X2, Y2, BorderColor);
+  else
+  {
+    GuiLib_FillBox(X1, Y1, X1 + BorderThickness - 1, Y2, BorderColor);
+    GuiLib_FillBox(X2 - BorderThickness + 1, Y1, X2, Y2, BorderColor);
+    GuiLib_FillBox(X1, Y1, X2, Y1 + BorderThickness - 1, BorderColor);
+    GuiLib_FillBox(X1, Y2 - BorderThickness + 1, X2, Y2, BorderColor);
+  }
+  if ((!FillTransparent) &&
+     (X2 - X1 >= 2 * BorderThickness) &&
+     (Y2 - Y1 >= 2 * BorderThickness))
+    GuiLib_FillBox(X1 + BorderThickness,
+                   Y1 + BorderThickness,
+                   X2 - BorderThickness,
+                   Y2 - BorderThickness,
+                   FillColor);
+}
+
+//------------------------------------------------------------------------------
+static void SetBackColorBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INT8U TextNdx)
+{
+  sgl.BbX1 = X1;
+  sgl.BbY1 = Y1;
+  sgl.BbX2 = X2;
+  sgl.BbY2 = Y2;
+
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_LEFT) != 0)
+    sgl.BbX1--;
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_RIGHT) != 0)
+    sgl.BbX2++;
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_TOP) != 0)
+    sgl.BbY1--;
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_BOTTOM) != 0)
+    sgl.BbY2++;
+}
+
+//------------------------------------------------------------------------------
+static void SetBackBox(
+   GuiConst_INT8U TextNdx)
+{
+  GuiConst_INT16S L;
+
+  L = sgl.CurItem.TextPar[TextNdx].BackBoxSizeX;
+  sgl.BbX1 = sgl.CurItem.X1;
+  sgl.BbX2 = sgl.CurItem.X1 + L - 1;
+
+  if (sgl.CurItem.TextPar[TextNdx].Alignment == GuiLib_ALIGN_CENTER)
+  {
+    sgl.BbX1 -= L / 2;
+    sgl.BbX2 -= L / 2;
+  }
+  else if (sgl.CurItem.TextPar[TextNdx].Alignment == GuiLib_ALIGN_RIGHT)
+  {
+    sgl.BbX1 -= L - 1;
+    sgl.BbX2 -= L - 1;
+  }
+
+  if (sgl.CurItem.TextPar[TextNdx].BackBoxSizeY1 > 0)
+    sgl.BbY1 = sgl.CurItem.Y1 - sgl.CurItem.TextPar[TextNdx].BackBoxSizeY1;
+  else
+    sgl.BbY1 = sgl.CurItem.Y1 - ReadByte(sgl.CurFont->BaseLine);
+  if (sgl.CurItem.TextPar[TextNdx].BackBoxSizeY2 > 0)
+    sgl.BbY2 = sgl.CurItem.Y1 + sgl.CurItem.TextPar[TextNdx].BackBoxSizeY2;
+  else
+    sgl.BbY2 = sgl.CurItem.Y1 - ReadByte(sgl.CurFont->BaseLine) +
+       ReadByte(sgl.CurFont->YSize) - 1;
+
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_LEFT) != 0)
+    sgl.BbX1--;
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_RIGHT) != 0)
+    sgl.BbX2++;
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_TOP) != 0)
+    sgl.BbY1--;
+  if ((sgl.CurItem.TextPar[TextNdx].BackBorderPixels & GuiLib_BBP_BOTTOM) != 0)
+    sgl.BbY2++;
+}
+
+//------------------------------------------------------------------------------
+static void DrawBackBox(
+   GuiConst_INTCOLOR BoxColor,
+   GuiConst_INT8U Transparent,
+   GuiConst_INT8U TextNdx)
+{
+  SetBackBox(TextNdx);
+
+  if (!Transparent)
+    GuiLib_FillBox(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2, BoxColor);
+}
+
+//------------------------------------------------------------------------------
+#ifdef GuiConst_CHARMODE_ANSI
+  #ifdef GuiConst_ICC_COMPILER
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        DrawText((GuiConst_TEXT *)ChPtr,                                       \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #else
+  #ifdef GuiConst_CODEVISION_COMPILER
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        DrawText((GuiConst_TEXT *)ChPtr,                                       \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #else
+  #ifdef GuiConst_RENESAS_COMPILER_FAR
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        DrawText((GuiConst_TEXT PrefixLocate *)ChPtr,                         \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #else
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        DrawText((GuiConst_TEXT PrefixRom *)ChPtr,                             \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #endif
+  #endif
+  #endif
+#else
+  #ifdef GuiConst_ICC_COMPILER
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        ExtractUnicodeString((GuiConst_INT8U *)ChPtr, ChCnt);                  \
+        DrawText((GuiConst_TEXT *)&sgl.UnicodeTextBuf,                         \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #else
+  #ifdef GuiConst_CODEVISION_COMPILER
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        ExtractUnicodeString((GuiConst_INT8U *)ChPtr, ChCnt);                  \
+        DrawText((GuiConst_TEXT *)sgl.UnicodeTextBuf,                          \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #else
+  #ifdef GuiConst_RENESAS_COMPILER_FAR
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        ExtractUnicodeString((GuiConst_INT8U PrefixLocate *)ChPtr, ChCnt);    \
+        DrawText((GuiConst_TEXT PrefixLocate *)sgl.UnicodeTextBuf,            \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #else
+#define DRAW_ROM_TEXT(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)       \
+        ExtractUnicodeString((GuiConst_INT8U PrefixRom *)ChPtr, ChCnt);        \
+        DrawText((GuiConst_TEXT *)&sgl.UnicodeTextBuf,                         \
+                  ChCnt,                                                       \
+                  TxtNdx,                                                      \
+                  FColor,                                                      \
+                  BColor,                                                      \
+                  Transparent);
+  #endif
+  #endif
+#endif
+#endif
+
+//------------------------------------------------------------------------------
+static void DrawText(
+   GuiConst_TEXT PrefixGeneric *CharPtr,
+   GuiConst_INT16U CharCount,
+   GuiConst_INT8U TextNdx,
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor,
+   GuiConst_INT8U Transparent)
+{
+  GuiConst_INT16S P, N;
+  GuiConst_INT16U CharCnt;
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT32U PrefixRom TempOfs;
+#else
+  GuiConst_INT8U PrefixRom * TempPtr;
+#endif
+  GuiConst_INT8U  TempPsMode;
+  GuiConst_INT16S TextPixelLen;
+  GuiConst_INT16S X1, Y1, X2, Y2;
+  GuiConst_INT16S  TextXOfs[GuiConst_MAX_TEXT_LEN + 2];
+
+#ifdef GuiConst_ARAB_CHARS_INUSE
+  CharCnt = ArabicCorrection(CharPtr,
+                             CharCount,
+                            (sgl.CurItem.TextPar[TextNdx].BitFlags &
+               GuiLib_BITFLAG_REVERSEWRITING) > 0);
+#else
+  CharCnt = CharCount;
+#endif
+  PrepareText(CharPtr, CharCnt, TextNdx);
+
+  if (sgl.CurItem.TextPar[TextNdx].BitFlags & GuiLib_BITFLAG_REVERSEWRITING)
+  {
+    for (N = 0; N < CharCnt / 2; N++)
+    {
+#ifdef GuiConst_REMOTE_FONT_DATA
+      TempOfs = sgl.TextCharNdx[N];
+      sgl.TextCharNdx[N] = sgl.TextCharNdx[CharCnt - 1 - N];
+      sgl.TextCharNdx[CharCnt - 1 - N] = TempOfs;
+#else
+      TempPtr = sgl.TextCharPtrAry[N];
+      sgl.TextCharPtrAry[N] =
+         (GuiConst_INT8U PrefixRom *)sgl.TextCharPtrAry[CharCnt - 1 - N];
+      sgl.TextCharPtrAry[CharCnt - 1 - N] = (GuiConst_INT8U PrefixRom *)TempPtr;
+#endif
+      TempPsMode = sgl.TextPsMode[N];
+      sgl.TextPsMode[N] = sgl.TextPsMode[CharCnt - 1 - N];
+      sgl.TextPsMode[CharCnt - 1 - N] = TempPsMode;
+    }
+  }
+
+  TextPixelLen = TextPixelLength(sgl.CurItem.TextPar[TextNdx].Ps,
+                                 CharCnt,
+                                 TextXOfs);
+
+  X1 = sgl.CurItem.X1;
+  switch (sgl.CurItem.TextPar[TextNdx].Alignment)
+  {
+    case GuiLib_ALIGN_CENTER:
+      if (CharCnt > 0)
+        X1 -= TextPixelLen / 2;
+      break;
+
+    case GuiLib_ALIGN_RIGHT:
+      X1 -= TextPixelLen - 1;
+      break;
+  }
+  Y1 = sgl.CurItem.Y1 - ReadByte(sgl.CurFont->BaseLine);
+  X2 = X1 + TextPixelLen - 1;
+  Y2 = Y1 + ReadByte(sgl.CurFont->YSize) - 1;
+
+  sgl.FontWriteX1 = X1;
+  sgl.FontWriteY1 = Y1;
+  sgl.FontWriteX2 = X2;
+  sgl.FontWriteY2 = Y2;
+
+  if (sgl.DisplayWriting)
+  {
+    if (CharCnt > 0)
+    {
+      if ((Transparent == 0) && (sgl.CurItem.TextPar[TextNdx].BackBoxSizeX == 0))
+      {
+        SetBackColorBox(X1, Y1, X2, Y2, TextNdx);
+        GuiLib_FillBox(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2, BackColor);
+      }
+
+      for (P = 0; P < CharCnt; P++)
+#ifdef GuiConst_REMOTE_FONT_DATA
+        DrawChar(X1 + TextXOfs[P], Y1, sgl.CurFont, sgl.TextCharNdx[P], ForeColor, (Transparent == 2));
+#else
+        DrawChar(X1 + TextXOfs[P], Y1, sgl.CurFont, sgl.TextCharPtrAry[P], ForeColor, (Transparent == 2));
+#endif
+    }
+
+    if ((sgl.CurItem.TextPar[TextNdx].BitFlags & GuiLib_BITFLAG_UNDERLINE) &&
+        (CharCnt > 0))
+      GuiLib_FillBox(X1, Y1 + ReadByte(sgl.CurFont->Underline1), X2,
+         Y1 + ReadByte(sgl.CurFont->Underline2), ForeColor);
+
+    GuiLib_MarkDisplayBoxRepaint(X1, Y1, X2, Y2);
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+    if ((sgl.CurItem.TextPar[TextNdx].BitFlags & GuiLib_BITFLAG_BLINKTEXTFIELD) &&
+        (sgl.CurItem.BlinkFieldNo < GuiConst_BLINK_FIELDS_MAX))
+    {
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].InUse = 1;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].BlinkBoxInverted = 0;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].ItemType = sgl.CurItem.ItemType;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].CharCnt = CharCnt;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].TextPar = sgl.CurItem.TextPar[TextNdx];
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].FormatFieldWidth =
+         sgl.CurItem.FormatFieldWidth;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].FormatDecimals =
+         sgl.CurItem.FormatDecimals;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].FormatAlignment =
+         sgl.CurItem.FormatAlignment;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].FormatFormat = sgl.CurItem.FormatFormat;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].VarType = sgl.CurItem.VarType;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].XSize =
+      ReadByte(sgl.CurFont->XSize);
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].PsNumWidth =
+      ReadByte(sgl.CurFont->PsNumWidth);
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].PsSpace =
+      ReadByte(sgl.CurFont->PsSpace);
+      if (sgl.CurItem.ItemType == GuiLib_ITEM_TEXT)
+        sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].TextPtr =
+           sgl.CurItem.TextPtr[TextNdx];
+      else
+        sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].TextPtr =
+           (GuiConst_TEXT*)sgl.CurItem.VarPtr;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].X1 = sgl.CurItem.X1;
+      sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].X2 = sgl.CurItem.X2;
+      if (sgl.CurItem.TextPar[TextNdx].BackBoxSizeX > 0)
+      {
+        if (sgl.CurItem.TextPar[TextNdx].BackBoxSizeY1 > 0)
+          sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Y1 =
+             sgl.CurItem.Y1 - sgl.CurItem.TextPar[TextNdx].BackBoxSizeY1;
+        else
+          sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Y1 =
+        sgl.CurItem.Y1 - ReadByte(sgl.CurFont->BaseLine);
+        if (sgl.CurItem.TextPar[TextNdx].BackBoxSizeY1 > 0)
+          sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Y2 =
+             sgl.CurItem.Y1 + sgl.CurItem.TextPar[TextNdx].BackBoxSizeY2;
+        else
+          sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Y2 =
+          sgl.CurItem.Y1 - ReadByte(sgl.CurFont->BaseLine) +
+                ReadByte(sgl.CurFont->YSize) - 1;
+      }
+      else
+      {
+        sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Y1 = Y1;
+        sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Y2 = Y2;
+      }
+    }
+#endif
+#endif
+  }
+}
+
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+
+//------------------------------------------------------------------------------
+#ifdef GuiConst_CHARMODE_ANSI
+  #ifdef GuiConst_ICC_COMPILER
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        DrawTextBlock((GuiConst_TEXT *)ChPtr,                                  \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #else
+  #ifdef GuiConst_CODEVISION_COMPILER
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        DrawTextBlock((GuiConst_TEXT *)ChPtr,                                  \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #else
+  #ifdef GuiConst_RENESAS_COMPILER_FAR
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        DrawTextBlock((GuiConst_TEXT PrefixLocate *)ChPtr,                     \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #else
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        DrawTextBlock((GuiConst_TEXT PrefixRom *)ChPtr,                        \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #endif
+  #endif
+  #endif
+#else
+  #ifdef GuiConst_ICC_COMPILER
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        ExtractUnicodeString((GuiConst_INT8U *)ChPtr, ChCnt);                  \
+        DrawTextBlock((GuiConst_TEXT *)&sgl.UnicodeTextBuf,                    \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #else
+  #ifdef GuiConst_CODEVISION_COMPILER
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        ExtractUnicodeString((GuiConst_INT8U *)ChPtr, ChCnt);                  \
+        DrawTextBlock((GuiConst_TEXT *)sgl.UnicodeTextBuf,                     \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #else
+  #ifdef GuiConst_RENESAS_COMPILER_FAR
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        ExtractUnicodeString((GuiConst_INT8U PrefixLocate *)ChPtr, ChCnt);     \
+        DrawTextBlock((GuiConst_TEXT PrefixLocate *)sgl.UnicodeTextBuf,        \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #else
+#define DRAW_ROM_TEXTBLOCK(ChPtr, ChCnt, TxtNdx, FColor, BColor, Transparent)  \
+        ExtractUnicodeString((GuiConst_INT8U PrefixRom *)ChPtr, ChCnt);        \
+        DrawTextBlock((GuiConst_TEXT *)&sgl.UnicodeTextBuf,                    \
+                       ChCnt,                                                  \
+                       TxtNdx,                                                 \
+                       FColor,                                                 \
+                       BColor,                                                 \
+                       Transparent);
+  #endif
+  #endif
+#endif
+#endif
+
+//------------------------------------------------------------------------------
+static void DrawTextBlock(
+   GuiConst_TEXT PrefixGeneric *CharPtr,
+   GuiConst_INT16U CharCnt,
+   GuiConst_INT8U TextNdx,
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor,
+   GuiConst_INT8U Transparent)
+{
+  GuiConst_INT16S X1, Y1, X2, Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S CX1, CX2;
+#endif
+  GuiConst_INT16S CY1, CY2;
+  GuiConst_INT16S TextXOfs[GuiConst_MAX_TEXT_LEN + 2];
+  GuiConst_INT16S TextCharLineStart[GuiConst_MAX_PARAGRAPH_LINE_CNT + 1];
+  GuiConst_INT16S TextCharLineEnd[GuiConst_MAX_PARAGRAPH_LINE_CNT + 1];
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S RemClipX1, RemClipY1, RemClipX2, RemClipY2;
+#endif
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  GuiConst_INT16S BlinkNo;
+#endif
+#endif
+  GuiConst_INT16S PixWidth;
+  GuiConst_INT16S N, P, M, F;
+  GuiConst_INT16S LineLen;
+  GuiConst_INT16S LineCnt;
+  GuiConst_INT16S LineCnt2;
+  GuiConst_INT16S BlindLinesAtTop;
+  GuiConst_INT16S XPos, YPos;
+  GuiConst_INT16S XStart, XEnd;
+  GuiConst_INT8U  TempPsMode;
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT32U PrefixRom TempOfs;
+  GuiConst_INT8U CharHeader1[GuiLib_CHR_LINECTRL_OFS];
+  GuiConst_INT8U CharHeader2[GuiLib_CHR_LINECTRL_OFS];
+#else
+  GuiConst_INT8U PrefixRom * TempPtr;
+#endif
+
+  X1 = sgl.CurItem.X1;
+  Y1 = sgl.CurItem.Y1;
+  X2 = sgl.CurItem.X2;
+  Y2 = sgl.CurItem.Y2;
+  sgl.FontWriteX1 = X1;
+  sgl.FontWriteY1 = Y1;
+  sgl.FontWriteX2 = X2;
+  sgl.FontWriteY2 = Y2;
+
+  PixWidth = 0;
+
+  if (sgl.DisplayWriting)
+  {
+    if (!Transparent && (sgl.CurItem.TextPar[TextNdx].BackBoxSizeX == 0))
+    {
+      SetBackColorBox(X1, Y1, X2, Y2, TextNdx);
+      GuiLib_FillBox(sgl.BbX1, sgl.BbY1, sgl.BbX2, sgl.BbY2, BackColor);
+    }
+
+    if (sgl.CurItem.CompPars.CompTextBox.LineDistRelToFont)
+    {
+      sgl.CurItem.CompPars.CompTextBox.LineDist +=sgl.CurFont->YSize;
+      sgl.CurItem.CompPars.CompTextBox.LineDistRelToFont = 0;
+    }
+
+    LineCnt = 0;
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+    sgl.CurItem.CompPars.CompTextBox.Lines = 1;
+#endif
+    if (CharCnt > 0)
+    {
+      PixWidth = X2 - X1 + 1;
+
+#ifdef GuiConst_ARAB_CHARS_INUSE
+      CharCnt =
+         ArabicCorrection(CharPtr,
+                          CharCnt,
+                          (sgl.CurItem.TextPar[TextNdx].BitFlags &
+                           GuiLib_BITFLAG_REVERSEWRITING) > 0);
+#endif
+      PrepareText(CharPtr, CharCnt, TextNdx);
+      TextPixelLength(sgl.CurItem.TextPar[TextNdx].Ps,
+                      CharCnt,
+                      TextXOfs);
+
+      TextCharLineStart[0] = 0;
+      TextCharLineEnd[0] = -1;
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+      if (sgl.CurItem.CompPars.CompTextBox.ScrollIndex == 0xFF)
+        BlindLinesAtTop = 0;
+      else
+        BlindLinesAtTop = sgl.CurItem.CompPars.CompTextBox.ScrollPos /
+           sgl.CurItem.CompPars.CompTextBox.LineDist;
+#else
+      BlindLinesAtTop = 0;
+#endif
+      LineCnt = 1 - BlindLinesAtTop;
+      if (LineCnt >= 1)
+        LineCnt = 1;
+      LineCnt2 = 1;
+      P = 0;
+#ifdef GuiConst_REMOTE_FONT_DATA
+      GuiLib_RemoteDataReadBlock(
+         (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[
+         sgl.TextCharNdx[TextCharLineStart[LineCnt2 - 1]]],
+         GuiLib_CHR_LINECTRL_OFS,
+         CharHeader2);
+#endif
+      while (P < CharCnt)
+      {
+        while ((P < CharCnt - 1) &&
+           !((ReadBytePtr(CharPtr + P) == GuiLib_LINEFEED) ||
+           ((ReadBytePtr(CharPtr + P) != ' ') &&
+           (ReadBytePtr(CharPtr + P + 1) == ' ')) ||
+           ((ReadBytePtr(CharPtr + P) == '-') &&
+           (ReadBytePtr(CharPtr + P + 1) != ' '))))
+          P++;
+
+        F = 0;
+
+        if (CalcCharsWidth(TextCharLineStart[LineCnt2 - 1], P,
+                           TextXOfs, &XStart, &XEnd) > PixWidth)
+        {
+          if (TextCharLineEnd[LineCnt2 - 1] == -1)
+          {
+            if (ReadBytePtr(CharPtr + P) == GuiLib_LINEFEED)
+            {
+              TextCharLineEnd[LineCnt2 - 1] = P - 1;
+              F = 1;
+            }
+            else
+              TextCharLineEnd[LineCnt2 - 1] = P;
+
+            TextCharLineStart[LineCnt2] = P + 1;
+            TextCharLineEnd[LineCnt2] = -1;
+          }
+          else
+          {
+            TextCharLineStart[LineCnt2] = TextCharLineEnd[LineCnt2 - 1] + 1;
+            while ((TextCharLineStart[LineCnt2] < P) &&
+               (ReadBytePtr(CharPtr + TextCharLineStart[LineCnt2]) == ' '))
+              TextCharLineStart[LineCnt2]++;
+            TextCharLineEnd[LineCnt2] = P;
+          }
+          if (LineCnt >= GuiConst_MAX_PARAGRAPH_LINE_CNT)
+          {
+            P = CharCnt;
+            break;
+          }
+          LineCnt++;
+          if (LineCnt > 1)
+            LineCnt2 = LineCnt;
+          else
+          {
+            TextCharLineStart[LineCnt2 - 1] = TextCharLineStart[LineCnt2];
+            TextCharLineEnd[LineCnt2 - 1] = TextCharLineEnd[LineCnt2];
+          }
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+          sgl.CurItem.CompPars.CompTextBox.Lines++;
+#endif
+        }
+        else
+          TextCharLineEnd[LineCnt2 - 1] = P;
+
+        if ((ReadBytePtr(CharPtr + P) == GuiLib_LINEFEED) &&
+            (F == 0))
+        {
+          TextCharLineEnd[LineCnt2 - 1] = P - 1;
+          TextCharLineStart[LineCnt2] = P + 1;
+          TextCharLineEnd[LineCnt2] = -1;
+
+          if (LineCnt >= GuiConst_MAX_PARAGRAPH_LINE_CNT)
+          {
+            P = CharCnt;
+            break;
+          }
+          LineCnt++;
+          if (LineCnt > 1)
+            LineCnt2 = LineCnt;
+          else
+          {
+            TextCharLineStart[LineCnt2 - 1] = TextCharLineStart[LineCnt2];
+            TextCharLineEnd[LineCnt2 - 1] = TextCharLineEnd[LineCnt2];
+          }
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+          sgl.CurItem.CompPars.CompTextBox.Lines++;
+#endif
+        }
+
+        P++;
+      }
+    }
+
+    if (LineCnt >= 1)
+    {
+      if (sgl.CurItem.TextPar[TextNdx].BitFlags & GuiLib_BITFLAG_REVERSEWRITING)
+      {
+        for (M = 0; M < LineCnt ; M++)
+        {
+          for (P = TextCharLineStart[M]; P <= (TextCharLineStart[M] +
+             ((TextCharLineEnd[M] - TextCharLineStart[M] + 1) / 2) - 1); P++)
+          {
+#ifdef GuiConst_REMOTE_FONT_DATA
+            TempOfs = sgl.TextCharNdx[P];
+            sgl.TextCharNdx[P] =
+               sgl.TextCharNdx[TextCharLineEnd[M] - (P - TextCharLineStart[M])];
+            sgl.TextCharNdx[TextCharLineEnd[M] - (P - TextCharLineStart[M])] =
+               TempOfs;
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+            TempPtr = &sgl.TextCharPtrAry[P];
+#else
+            TempPtr = sgl.TextCharPtrAry[P];
+#endif
+            sgl.TextCharPtrAry[P] = (GuiConst_INT8U PrefixRom *)
+               sgl.TextCharPtrAry[TextCharLineEnd[M] - (P - TextCharLineStart[M])];
+            sgl.TextCharPtrAry[TextCharLineEnd[M] - (P - TextCharLineStart[M])] =
+               (GuiConst_INT8U PrefixRom *)TempPtr;
+#endif
+            TempPsMode = sgl.TextPsMode[P];
+            sgl.TextPsMode[P] =
+               sgl.TextPsMode[TextCharLineEnd[M] - (P - TextCharLineStart[M])];
+            sgl.TextPsMode[TextCharLineEnd[M] - (P - TextCharLineStart[M])] =
+               TempPsMode;
+          }
+        }
+        TextPixelLength(sgl.CurItem.TextPar[TextNdx].Ps,
+                        CharCnt,
+                        TextXOfs);
+      }
+
+      CY1 = Y1;
+      CY2 = Y2;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      CX1 = X1;
+      CX2 = X2;
+      RemClipX1 = sgl.CurItem.ClipRectX1;
+      RemClipY1 = sgl.CurItem.ClipRectY1;
+      RemClipX2 = sgl.CurItem.ClipRectX2;
+      RemClipY2 = sgl.CurItem.ClipRectY2;
+      if (RemClipX1 > CX1)
+        CX1 = RemClipX1;
+      if (RemClipY1 > CY1)
+        CY1 = RemClipY1;
+      if (RemClipX2 < CX2)
+        CX2 = RemClipX2;
+      if (RemClipY2 < CY2)
+        CY2 = RemClipY2;
+      GuiLib_SetClipping(CX1, CY1, CX2, CY2);
+#endif
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+      if ((sgl.CurItem.TextPar[TextNdx].BitFlags & GuiLib_BITFLAG_BLINKTEXTFIELD) &&
+          (sgl.CurItem.BlinkFieldNo < GuiConst_BLINK_FIELDS_MAX))
+      {
+        BlinkNo = sgl.CurItem.BlinkFieldNo;
+        sgl.BlinkTextItems[BlinkNo].InUse = 1;
+        sgl.BlinkTextItems[BlinkNo].ItemType = sgl.CurItem.ItemType;
+        sgl.BlinkTextItems[BlinkNo].VarType = sgl.CurItem.VarType;
+        sgl.BlinkTextItems[BlinkNo].CharCnt = CharCnt;
+        sgl.BlinkTextItems[BlinkNo].TextPar = sgl.CurItem.TextPar[TextNdx];
+        sgl.BlinkTextItems[BlinkNo].XSize = sgl.CurFont->XSize;
+        sgl.BlinkTextItems[BlinkNo].YSize = sgl.CurFont->YSize;
+        sgl.BlinkTextItems[BlinkNo].PsNumWidth = sgl.CurFont->PsNumWidth;
+        sgl.BlinkTextItems[BlinkNo].PsSpace = sgl.CurFont->PsSpace;
+        if (sgl.CurItem.ItemType == GuiLib_ITEM_TEXTBLOCK)
+          sgl.BlinkTextItems[BlinkNo].TextPtr = sgl.CurItem.TextPtr[TextNdx];
+        else
+          sgl.BlinkTextItems[BlinkNo].TextPtr = (GuiConst_TEXT*)sgl.CurItem.VarPtr;
+        sgl.BlinkTextItems[BlinkNo].X1 = X1;
+        sgl.BlinkTextItems[BlinkNo].X2 = X2;
+        sgl.BlinkTextItems[BlinkNo].Y1 = Y1;
+        sgl.BlinkTextItems[BlinkNo].Y2 = Y2;
+        sgl.BlinkTextItems[BlinkNo].LineCnt = LineCnt;
+        sgl.BlinkTextItems[BlinkNo].TextBoxLineDist =
+           sgl.CurItem.CompPars.CompTextBox.LineDist;
+        sgl.BlinkTextItems[BlinkNo].BlindLinesAtTop = BlindLinesAtTop;
+        sgl.BlinkTextItems[BlinkNo].FormatFieldWidth = sgl.CurItem.FormatFieldWidth;
+        sgl.BlinkTextItems[BlinkNo].FormatDecimals = sgl.CurItem.FormatDecimals;
+        sgl.BlinkTextItems[BlinkNo].FormatAlignment = sgl.CurItem.FormatAlignment;
+        sgl.BlinkTextItems[BlinkNo].FormatFormat = sgl.CurItem.FormatFormat;
+        sgl.BlinkTextItems[BlinkNo].TextBoxHorzAlignment =
+           sgl.CurItem.CompPars.CompTextBox.HorzAlignment;
+        sgl.BlinkTextItems[BlinkNo].TextBoxVertAlignment =
+           sgl.CurItem.CompPars.CompTextBox.VertAlignment;
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+        sgl.BlinkTextItems[BlinkNo].TextBoxScrollPos =
+           sgl.CurItem.CompPars.CompTextBox.ScrollPos;
+#endif
+      }
+      else
+        BlinkNo = -1;
+#endif
+#endif
+
+      YPos = Y1;
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+      if (BlindLinesAtTop < 0)
+        BlindLinesAtTop = 0;
+      YPos -= sgl.CurItem.CompPars.CompTextBox.ScrollPos -
+             (sgl.CurItem.CompPars.CompTextBox.LineDist * BlindLinesAtTop);
+#endif
+
+      N = ReadByte(sgl.CurFont->YSize) +
+         (LineCnt - 1) * sgl.CurItem.CompPars.CompTextBox.LineDist;
+      switch (sgl.CurItem.CompPars.CompTextBox.VertAlignment)
+      {
+        case GuiLib_ALIGN_CENTER:
+          YPos += (Y2 - Y1 + 1 - N) / 2;
+          break;
+
+        case GuiLib_ALIGN_RIGHT:
+          YPos += Y2 - Y1 + 1 - N;
+          break;
+      }
+
+      for (N = 0; N < LineCnt; N++)
+      {
+        if (TextCharLineEnd[N] >= TextCharLineStart[N])
+        {
+          XPos = X1;
+
+          LineLen = CalcCharsWidth(TextCharLineStart[N],
+                                   TextCharLineEnd[N],
+                                   TextXOfs,
+                                   &XStart,
+                                   &XEnd);
+          switch (sgl.CurItem.CompPars.CompTextBox.HorzAlignment)
+          {
+            case GuiLib_ALIGN_CENTER:
+              XPos += (PixWidth - LineLen) / 2;
+              break;
+
+            case GuiLib_ALIGN_RIGHT:
+              XPos += PixWidth - LineLen;
+              break;
+          }
+
+          if (sgl.CurItem.TextPar[TextNdx].BitFlags & GuiLib_BITFLAG_UNDERLINE)
+            GuiLib_FillBox(XPos, YPos + ReadByte(sgl.CurFont->Underline1),
+               XPos + LineLen - 1, YPos + ReadByte(sgl.CurFont->Underline2),
+               ForeColor);
+
+          XPos -= XStart;
+          if ((YPos + sgl.CurFont->YSize >= CY1) && (YPos <= CY2))
+            for (P = TextCharLineStart[N]; P <= TextCharLineEnd[N]; P++)
+#ifdef GuiConst_REMOTE_FONT_DATA
+              DrawChar(
+                 XPos + TextXOfs[P], YPos, sgl.CurFont, sgl.TextCharNdx[P], ForeColor, 0);
+#else
+              DrawChar(XPos + TextXOfs[P], YPos, sgl.CurFont, sgl.TextCharPtrAry[P],
+                 ForeColor, 0);
+#endif
+        }
+        YPos += sgl.CurItem.CompPars.CompTextBox.LineDist;
+      }
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+      GuiLib_SetClipping(RemClipX1, RemClipY1, RemClipX2, RemClipY2);
+#endif
+    }
+    GuiLib_MarkDisplayBoxRepaint(X1, Y1, X2, Y2);
+  }
+}
+#endif
+// Groupend DRAW
+
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+static float Floor(float X)
+{
+  GuiConst_INT32S I;
+
+  I = X - 2;
+  while(++I <= X - 1);
+  return I;
+}
+#endif
+
+//------------------------------------------------------------------------------
+static GuiConst_INT32S ReadVar(
+   void PrefixLocate *VarPtr,
+   GuiConst_INT8U VarType)
+{
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+  GuiConst_INT32S tmp;
+  GuiConst_INT8U i;
+  double dfactor;
+  double dx;
+  float ffactor;
+  float fx;
+#endif
+
+  if (VarPtr == 0)
+    return (0);
+  else
+  {
+    if (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP)
+    {
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+      if ((VarType == GuiLib_VAR_FLOAT) || (VarType == GuiLib_VAR_DOUBLE))
+        sgl.VarExponent = 0;
+      else
+#endif
+        sgl.CurItem.FormatFormat = GuiLib_FORMAT_DEC;
+    }
+    switch (VarType)
+    {
+      case GuiLib_VAR_BOOL:
+        if (*(GuiConst_INT8U PrefixLocate *) VarPtr == 0)
+          return (0);
+        else
+          return (1);
+
+      case GuiLib_VAR_UNSIGNED_CHAR:
+        return (*(GuiConst_INT8U PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_SIGNED_CHAR:
+        return (*(GuiConst_INT8S PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_UNSIGNED_INT:
+        return (*(GuiConst_INT16U PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_SIGNED_INT:
+        return (*(GuiConst_INT16S PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_UNSIGNED_LONG:
+        return (*(GuiConst_INT32U PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_SIGNED_LONG:
+        return (*(GuiConst_INT32S PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_COLOR:
+        return (*(GuiConst_INTCOLOR PrefixLocate *) VarPtr);
+
+      case GuiLib_VAR_FLOAT:
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+        fx = *(float PrefixLocate *) VarPtr;
+        if (fx < 0)
+          fx = -fx;
+        if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP) && (fx != 0))
+        {
+          while (Floor(fx + 0.5) > 10)
+          {
+            fx /= 10;
+            sgl.VarExponent++;
+          }
+          while (Floor(fx) < 1)
+          {
+            fx *= 10;
+            sgl.VarExponent--;
+          }
+        }
+        if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+            (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP))
+        {
+          ffactor=1.0;
+          for (i = 0; i < sgl.CurItem.FormatDecimals ; i++)
+            ffactor *= 10.0;
+          tmp = (GuiConst_INT32S) (fx * ffactor);
+          ffactor *= 100.0;
+          if (((GuiConst_INT32S) (fx * ffactor) - (tmp * 100)) >= 45)
+            tmp++;
+          if (*(float PrefixLocate *) VarPtr < 0)
+            tmp = -tmp;
+        }
+        else
+          tmp = (GuiConst_INT32S) *(float PrefixLocate *) VarPtr;
+        return (tmp);
+#else
+        return (0);
+#endif
+
+      case GuiLib_VAR_DOUBLE:
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+        dx = *(double PrefixLocate *) VarPtr;
+        if (dx < 0)
+          dx = -dx;
+        if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP) && (dx != 0))
+        {
+          while (dx > 10)
+          {
+            dx /= 10;
+            sgl.VarExponent++;
+          }
+          while (dx < 1)
+          {
+            dx *= 10;
+            sgl.VarExponent--;
+          }
+        }
+        if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+            (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP))
+        {
+          dfactor=1.0;
+          for (i = 0; i < sgl.CurItem.FormatDecimals ; i++)
+            dfactor *= 10.0;
+          tmp = (GuiConst_INT32S) (dx * dfactor);
+          dfactor *= 100.0;
+          if (((GuiConst_INT32S) (dx * dfactor) - (tmp * 100)) >= 45)
+            tmp++;
+          if (*(double PrefixLocate *) VarPtr < 0)
+            tmp = -tmp;
+        }
+        else
+          tmp = (GuiConst_INT32S) dx;
+        return (tmp);
+#else
+        return (0);
+#endif
+
+      default:
+        return (0);
+    }
+  }
+}
+
+//------------------------------------------------------------------------------
+static GuiConst_INT8U DataNumStr(
+   GuiConst_INT32S DataValue,
+   GuiConst_INT8U VarType,
+   GuiConst_INT8U TextNdx)
+{
+  GuiConst_CHAR *S1;
+  GuiConst_INT8U StrLen, L;
+  GuiConst_INT16S I, N, P;
+  GuiConst_INT8U Offset;
+  GuiConst_INT8U Sign;
+  GuiConst_INT8U ShowSign;
+  GuiConst_INT8U ZeroPadding;
+  GuiConst_INT8U TrailingZeros;
+  GuiConst_INT8U ThousandsSeparator;
+  GuiConst_INT8U Time;
+  GuiConst_INT16S TT1, TT2, TT3;
+  GuiConst_INT8U am;
+  GuiConst_INT8U DecimalsPos;
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+  GuiConst_CHAR ExponentStr[5];
+#endif
+
+  sgl.VarNumTextStr[0] = 0;
+  am = 0;
+
+  Sign = 0;
+  switch (VarType)
+  {
+    case GuiLib_VAR_BOOL:
+    case GuiLib_VAR_UNSIGNED_CHAR:
+      if (DataValue > 255)
+        DataValue = 255;
+      else if (DataValue < 0)
+        DataValue = 0;
+      break;
+
+    case GuiLib_VAR_SIGNED_CHAR:
+      if (DataValue > 127)
+        DataValue = 127;
+      else if (DataValue < -128)
+        DataValue = -128;
+      if (DataValue < 0)
+        Sign = 1;
+      break;
+
+    case GuiLib_VAR_UNSIGNED_INT:
+      if (DataValue > 65535)
+        DataValue = 65535;
+      else if (DataValue < 0)
+        DataValue = 0;
+      break;
+
+    case GuiLib_VAR_SIGNED_INT:
+      if (DataValue > 32767)
+        DataValue = 32767;
+      else if (DataValue < -32768)
+        DataValue = -32768;
+      if (DataValue < 0)
+        Sign = 1;
+      break;
+
+    case GuiLib_VAR_SIGNED_LONG:
+    case GuiLib_VAR_FLOAT:
+    case GuiLib_VAR_DOUBLE:
+      if (DataValue < 0)
+        Sign = 1;
+      break;
+
+    case GuiLib_VAR_COLOR:
+      if (DataValue < 0)
+          DataValue = 0;
+#if GuiConst_PIXEL_BYTE_SIZE == 1
+      if (DataValue > 255)
+        DataValue = 255;
+#elif GuiConst_PIXEL_BYTE_SIZE == 2
+      if (DataValue > 65535)
+        DataValue = 65535;
+#elif GuiConst_PIXEL_BYTE_SIZE == 3
+      if (DataValue > 16777215)
+        DataValue = 16777215;
+#endif
+      break;
+  }
+
+  if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP))
+    DecimalsPos = sgl.CurItem.FormatDecimals;
+  else
+    DecimalsPos = 0;
+  Time = ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_MMSS) ||
+          (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_24) ||
+          (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_24) ||
+          (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_12_ampm) ||
+          (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_ampm) ||
+          (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_12_AMPM) ||
+          (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_AMPM));
+  if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP))
+    ShowSign = ((sgl.CurItem.TextPar[TextNdx].BitFlags &
+                 GuiLib_BITFLAG_FORMATSHOWSIGN) > 0);
+  else
+  {
+    Sign = 0;
+    ShowSign = 0;
+  }
+  if (sgl.CurItem.FormatAlignment == GuiLib_FORMAT_ALIGNMENT_RIGHT)
+    ZeroPadding = ((sgl.CurItem.TextPar[TextNdx].BitFlags &
+                    GuiLib_BITFLAG_FORMATZEROPADDING) > 0);
+  else
+    ZeroPadding = 0;
+  if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP))
+    TrailingZeros = ((sgl.CurItem.TextPar[TextNdx].BitFlags &
+                      GuiLib_BITFLAG_FORMATTRAILINGZEROS) > 0);
+  else
+    TrailingZeros = 0;
+  if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_HEX_POSTFIX_H) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_HEX_PREFIX_0X) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_HEX_CLEAN))
+    ThousandsSeparator = ((sgl.CurItem.TextPar[TextNdx].BitFlags &
+                           GuiLib_BITFLAG_FORMATTHOUSANDSSEP) > 0);
+  else
+    ThousandsSeparator = 0;
+
+  if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_DEC) ||
+      (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP))
+  {
+    if (Sign)
+      ConvertIntToStr(-DataValue, sgl.VarNumTextStr, 10);
+    else
+      ConvertIntToStr(DataValue, sgl.VarNumTextStr, 10);
+  }
+
+  else if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_HEX_POSTFIX_H) ||
+           (sgl.CurItem.FormatFormat == GuiLib_FORMAT_HEX_PREFIX_0X) ||
+           (sgl.CurItem.FormatFormat == GuiLib_FORMAT_HEX_CLEAN))
+  {
+    ConvertIntToStr(DataValue, sgl.VarNumTextStr, 16);
+    S1 = sgl.VarNumTextStr;
+    StrLen = 0;
+    while (*S1 != 0)
+    {
+      if ((*S1 >= 'a') && (*S1 <= 'f'))
+        *S1 -= 32;
+      S1++;
+      StrLen++;
+    }
+    if (DataValue < 0)
+    {
+      while ((StrLen > 1) && (StrLen >= sgl.CurItem.FormatFieldWidth))
+      {
+        if (sgl.VarNumTextStr[0] == 'F')
+        {
+          for (N = 0; N < StrLen; N++)
+            sgl.VarNumTextStr[N] = sgl.VarNumTextStr[N + 1];
+          sgl.VarNumTextStr[StrLen] = 0;
+          StrLen--;
+        }
+        else
+          break;
+      }
+
+    }
+    if (StrLen >= GuiConst_MAX_VARNUM_TEXT_LEN)
+      return (0);
+
+    switch (sgl.CurItem.FormatFormat)
+    {
+      case GuiLib_FORMAT_HEX_POSTFIX_H:
+        if (StrLen < GuiConst_MAX_VARNUM_TEXT_LEN - 1)
+        {
+          #ifdef GuiConst_CODEVISION_COMPILER
+          strcatf(sgl.VarNumTextStr, "h");
+          #else
+          strcat(sgl.VarNumTextStr, "h");
+          #endif
+        }
+        break;
+      case GuiLib_FORMAT_HEX_PREFIX_0X:
+        if (StrLen < GuiConst_MAX_VARNUM_TEXT_LEN - 2)
+        {
+          for (N = StrLen - 1; N >= 0; N--)
+            sgl.VarNumTextStr[N + 2] = sgl.VarNumTextStr[N];
+          sgl.VarNumTextStr[0] = '0';
+          sgl.VarNumTextStr[1] = 'x';
+        }
+        break;
+    }
+  }
+
+  else if (Time)
+  {
+    if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_24) ||
+        (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_ampm) ||
+        (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_AMPM))
+    {
+      DataValue %= 360000;
+      TT1 = DataValue / 3600;
+      TT2 = (DataValue % 3600) / 60;
+      TT3 = DataValue % 60;
+    }
+    else
+    {
+      DataValue %= 6000;
+      TT1 = DataValue / 60;
+      TT2 = DataValue % 60;
+      TT3 = -1;
+    }
+
+    if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_12_ampm) ||
+        (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_ampm) ||
+        (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_12_AMPM) ||
+        (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_AMPM))
+    {
+      am = ((TT1%24) < 12);
+      TT1 %= 12;
+      if (TT1 == 0)
+        TT1 = 12;
+    }
+    else
+      am = 0;   // To avoid compiler warning
+
+    if (ZeroPadding && (TT1 < 10))
+#ifdef GuiConst_CODEVISION_COMPILER
+      strcatf(sgl.VarNumTextStr, "0");
+#else
+      strcat(sgl.VarNumTextStr, "0");
+#endif
+    ConvertIntToStr(TT1, sgl.VarNumTextStr + strlen(sgl.VarNumTextStr), 10);
+
+#ifdef GuiConst_CODEVISION_COMPILER
+    strcatf(sgl.VarNumTextStr, ":");
+#else
+    strcat(sgl.VarNumTextStr, ":");
+#endif
+
+    if (TT2 < 10)
+#ifdef GuiConst_CODEVISION_COMPILER
+      strcatf(sgl.VarNumTextStr, "0");
+#else
+      strcat(sgl.VarNumTextStr, "0");
+#endif
+    ConvertIntToStr(TT2, sgl.VarNumTextStr + strlen(sgl.VarNumTextStr), 10);
+
+    if (TT3 >= 0)
+    {
+#ifdef GuiConst_CODEVISION_COMPILER
+      strcatf(sgl.VarNumTextStr, ":");
+#else
+      strcat(sgl.VarNumTextStr, ":");
+#endif
+
+      if (TT3 < 10)
+#ifdef GuiConst_CODEVISION_COMPILER
+        strcatf(sgl.VarNumTextStr, "0");
+#else
+        strcat(sgl.VarNumTextStr, "0");
+#endif
+      ConvertIntToStr(TT3, sgl.VarNumTextStr + strlen(sgl.VarNumTextStr), 10);
+    }
+
+    if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_12_ampm) ||
+        (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_ampm))
+    {
+      if (am)
+#ifdef GuiConst_CODEVISION_COMPILER
+        strcatf(sgl.VarNumTextStr, "am");
+#else
+        strcat(sgl.VarNumTextStr, "am");
+#endif
+      else
+#ifdef GuiConst_CODEVISION_COMPILER
+        strcatf(sgl.VarNumTextStr, "pm");
+#else
+        strcat(sgl.VarNumTextStr, "pm");
+#endif
+    }
+    else if ((sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMM_12_AMPM) ||
+             (sgl.CurItem.FormatFormat == GuiLib_FORMAT_TIME_HHMMSS_12_AMPM))
+    {
+      if (am)
+#ifdef GuiConst_CODEVISION_COMPILER
+        strcatf(sgl.VarNumTextStr, "AM");
+#else
+        strcat(sgl.VarNumTextStr, "AM");
+#endif
+      else
+#ifdef GuiConst_CODEVISION_COMPILER
+        strcatf(sgl.VarNumTextStr, "PM");
+#else
+        strcat(sgl.VarNumTextStr, "PM");
+#endif
+    }
+  }
+  else
+    return (0);
+
+  StrLen = 0;
+  S1 = sgl.VarNumTextStr;
+  while (*S1 != 0)
+  {
+    StrLen++;
+    S1++;
+  }
+
+  if (DecimalsPos > 0)
+  {
+    L = DecimalsPos + 1;
+    if (StrLen < L)
+    {
+      if (L > GuiConst_MAX_VARNUM_TEXT_LEN)
+        return (0);
+      for (N = 1; N <= StrLen; N++)
+        sgl.VarNumTextStr[L - N] = sgl.VarNumTextStr[StrLen - N];
+      for (N = 0; N < L - StrLen; N++)
+        sgl.VarNumTextStr[N] = '0';
+
+      StrLen = L;
+    }
+
+    if ((!TrailingZeros) && (!Time) && (VarType != GuiLib_VAR_BOOL))
+    {
+      L = StrLen;
+      for (N = L - 1; N > L - sgl.CurItem.FormatDecimals; N--)
+        if (sgl.VarNumTextStr[N] == '0')
+        {
+          DecimalsPos--;
+          StrLen--;
+        }
+        else
+          break;
+    }
+
+    if (StrLen >= GuiConst_MAX_VARNUM_TEXT_LEN)
+      return (0);
+    P = StrLen - DecimalsPos;
+    for (N = StrLen; N > P; N--)
+      sgl.VarNumTextStr[N] = sgl.VarNumTextStr[N - 1];
+    if (ReadByte(GuiFont_DecimalChar[GuiLib_LanguageIndex]) == GuiLib_DECIMAL_PERIOD)
+      sgl.VarNumTextStr[P] = '.';
+    else
+      sgl.VarNumTextStr[P] = ',';
+    StrLen++;
+    sgl.VarNumTextStr[StrLen] = 0;
+  }
+  else
+    P = StrLen;
+
+  if (ThousandsSeparator)
+  {
+    I = 0;
+    while (P > 0)
+    {
+      if ((I > 0) && (I % 3 ==0 ))
+      {
+        for (N = StrLen; N > P; N--)
+          sgl.VarNumTextStr[N] = sgl.VarNumTextStr[N - 1];
+        if (ReadByte(GuiFont_DecimalChar[GuiLib_LanguageIndex]) == GuiLib_DECIMAL_PERIOD)
+          sgl.VarNumTextStr[P] = ',';
+        else
+          sgl.VarNumTextStr[P] = '.';
+        StrLen++;
+        if (StrLen >= GuiConst_MAX_VARNUM_TEXT_LEN)
+          return (0);
+        sgl.VarNumTextStr[StrLen] = 0;
+      }
+      I++;
+      P--;
+    }
+  }
+
+  if (Sign || ShowSign)
+  {
+    if (StrLen > GuiConst_MAX_VARNUM_TEXT_LEN)
+      return (0);
+    for (N = StrLen; N >= 1; N--)
+      sgl.VarNumTextStr[N] = sgl.VarNumTextStr[N - 1];
+    if (Sign)
+      sgl.VarNumTextStr[0] = '-';
+    else
+      sgl.VarNumTextStr[0] = '+';
+    StrLen++;
+    sgl.VarNumTextStr[StrLen] = 0;
+  }
+
+#ifdef GuiConst_FLOAT_SUPPORT_ON
+  if (sgl.CurItem.FormatFormat == GuiLib_FORMAT_EXP)
+  {
+    N = sgl.VarExponent;
+    if (N < 0)
+      N = -N;
+    ConvertIntToStr(N, ExponentStr, 10);
+    S1 = ExponentStr;
+    N = 0;
+    while (*S1 != 0)
+    {
+      S1++;
+      N++;
+    }
+    if (N == 1)
+      I = 2;
+    else
+      I = N;
+    if (StrLen + 2 + I >= GuiConst_MAX_VARNUM_TEXT_LEN)
+      return (0);
+#ifdef GuiConst_CODEVISION_COMPILER
+    strcatf(sgl.VarNumTextStr, "E");
+#else
+    strcat(sgl.VarNumTextStr, "E");
+#endif
+    StrLen++;
+    if (sgl.VarExponent >= 0)
+#ifdef GuiConst_CODEVISION_COMPILER
+      strcatf(sgl.VarNumTextStr, "+");
+#else
+      strcat(sgl.VarNumTextStr, "+");
+#endif
+    else
+#ifdef GuiConst_CODEVISION_COMPILER
+      strcatf(sgl.VarNumTextStr, "-");
+#else
+      strcat(sgl.VarNumTextStr, "-");
+#endif
+    StrLen++;
+    if (N == 1)
+    {
+#ifdef GuiConst_CODEVISION_COMPILER
+      strcatf(sgl.VarNumTextStr, "0");
+#else
+      strcat(sgl.VarNumTextStr, "0");
+#endif
+      StrLen++;
+    }
+    strcat(sgl.VarNumTextStr, ExponentStr);
+    StrLen += N;
+  }
+#endif
+
+  if (sgl.CurItem.FormatFieldWidth > 0)
+  {
+    if (StrLen > sgl.CurItem.FormatFieldWidth)
+    {
+      for (N = 0; N < sgl.CurItem.FormatFieldWidth; N++)
+        sgl.VarNumTextStr[N] = '-';
+    }
+    else
+    {
+      if (sgl.CurItem.FormatFieldWidth > GuiConst_MAX_VARNUM_TEXT_LEN)
+        return (0);
+      if (ZeroPadding && (!Time))
+      {
+        if ((sgl.VarNumTextStr[0] == '-') || (sgl.VarNumTextStr[0] == '+'))
+          Offset = 1;
+        else
+          Offset = 0;
+        for (N = 1; N <= StrLen - Offset; N++)
+          sgl.VarNumTextStr[sgl.CurItem.FormatFieldWidth - N] =
+            sgl.VarNumTextStr[StrLen - N];
+        for (N = 0; N < sgl.CurItem.FormatFieldWidth - StrLen; N++)
+          sgl.VarNumTextStr[N + Offset] = '0';
+      }
+      else if (sgl.CurItem.FormatAlignment == GuiLib_FORMAT_ALIGNMENT_LEFT)
+      {
+        for (N = StrLen; N < sgl.CurItem.FormatFieldWidth; N++)
+          sgl.VarNumTextStr[N] = ' ';
+      }
+      else if (sgl.CurItem.FormatAlignment == GuiLib_FORMAT_ALIGNMENT_CENTER)
+      {
+        Offset = (sgl.CurItem.FormatFieldWidth - StrLen) / 2;
+        if (Offset > 0)
+        {
+          for (N = StrLen - 1; N >= 0; N--)
+            sgl.VarNumTextStr[N + Offset] = sgl.VarNumTextStr[N];
+          for (N = 0; N < Offset; N++)
+            sgl.VarNumTextStr[N] = ' ';
+        }
+        Offset = sgl.CurItem.FormatFieldWidth - StrLen - Offset;
+        if (Offset > 0)
+          for (N = sgl.CurItem.FormatFieldWidth - Offset;
+               N < sgl.CurItem.FormatFieldWidth; N++)
+            sgl.VarNumTextStr[N] = ' ';
+      }
+      else if (sgl.CurItem.FormatAlignment == GuiLib_FORMAT_ALIGNMENT_RIGHT)
+      {
+        for (N = 1; N <= StrLen; N++)
+          sgl.VarNumTextStr[sgl.CurItem.FormatFieldWidth - N] =
+            sgl.VarNumTextStr[StrLen - N];
+        for (N = 0; N < sgl.CurItem.FormatFieldWidth - StrLen; N++)
+          sgl.VarNumTextStr[N] = ' ';
+      }
+    }
+    sgl.VarNumTextStr[sgl.CurItem.FormatFieldWidth] = 0;
+    return (sgl.CurItem.FormatFieldWidth);
+  }
+  else
+  {
+    sgl.VarNumTextStr[StrLen] = 0;
+    return (StrLen);
+  }
+}
+
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+//------------------------------------------------------------------------------
+static GuiLib_StructPtr GetRemoteStructData(
+   GuiConst_INT32S StructIndex)
+{
+  sgl.RemoteStructOffset =
+     (GuiConst_INT32U PrefixRom)GuiStruct_StructPtrList[StructIndex];
+  GuiLib_RemoteDataReadBlock(
+     sgl.RemoteStructOffset,
+     1,
+     sgl.GuiLib_RemoteStructBuffer);
+  sgl.RemoteStructOffset++;
+  return((GuiLib_StructPtr)&sgl.GuiLib_RemoteStructBuffer[0]);
+}
+
+#ifdef GuiConst_REMOTE_TEXT_DATA
+//------------------------------------------------------------------------------
+static GuiConst_INT16U GetRemoteText(
+   GuiConst_INT16U TextIndex)
+{
+  GuiConst_INT32S TextOfs;
+
+  if (TextIndex != sgl.CurRemoteText)
+  {
+    if (sgl.RemoteTextTableOfs == -1)
+      GuiLib_RemoteTextReadBlock(4, 4, &sgl.RemoteTextTableOfs);
+
+    GuiLib_RemoteTextReadBlock(sgl.RemoteTextTableOfs + 6 * TextIndex, 4, &TextOfs);
+    GuiLib_RemoteTextReadBlock(
+       sgl.RemoteTextTableOfs + 6 * TextIndex + 4, 2, &sgl.RemoteTextLen);
+
+#ifdef GuiConst_CHARMODE_ANSI
+    GuiLib_RemoteTextReadBlock(TextOfs, sgl.RemoteTextLen, sgl.GuiLib_RemoteTextBuffer);
+#else
+    GuiLib_RemoteTextReadBlock(TextOfs, 2 * sgl.RemoteTextLen, sgl.GuiLib_RemoteTextBuffer);
+#endif
+    sgl.CurRemoteText = TextIndex;
+  }
+  return(sgl.RemoteTextLen);
+}
+#endif
+
+#endif
+
+#ifdef GuiConst_CHARMODE_UNICODE
+//------------------------------------------------------------------------------
+static void ExtractUnicodeString(
+   GuiConst_INT8U PrefixLocate *ItemTextPtr,
+   GuiConst_INT16U TextLength)
+{
+  GuiConst_INT16U P;
+
+  for (P = 0; P < TextLength; P++)
+    sgl.UnicodeTextBuf[P] = GetItemWord(&ItemTextPtr);
+  sgl.UnicodeTextBuf[TextLength] = 0;
+}
+#endif
+
+//------------------------------------------------------------------------------
+static void SetCurFont(
+   GuiConst_INT8U FontIndex)
+{
+  if (FontIndex >= GuiFont_FontCnt)
+    sgl.CurFont = (GuiLib_FontRecPtr)ReadWord(GuiFont_FontList[0]);
+  else
+    sgl.CurFont = (GuiLib_FontRecPtr)ReadWord(GuiFont_FontList[FontIndex]);
+}
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+//------------------------------------------------------------------------------
+static void UpdateBackgroundBitmap(void)
+{
+  GuiConst_INT8U BackgroundOn;
+  GuiConst_INT16U BackgroundX1, BackgroundY1, BackgroundX2, BackgroundY2;
+  GuiConst_INT16S N;
+
+  for (N = 0; N < GuiConst_MAX_BACKGROUND_BITMAPS; N++)
+    if (sgl.BackgrBitmapAry[N].InUse)
+    {
+      BackgroundOn = 0;
+      switch (sgl.CurItem.ItemType)
+      {
+        case GuiLib_ITEM_TEXT:
+        case GuiLib_ITEM_VAR:
+          BackgroundOn = 1;
+          if (sgl.CurItem.TextPar[0].BackBoxSizeX == 0)
+          {
+            BackgroundX1 = sgl.CurItem.DrawnX1;
+            BackgroundY1 = sgl.CurItem.DrawnY1;
+            BackgroundX2 = sgl.CurItem.DrawnX2;
+            BackgroundY2 = sgl.CurItem.DrawnY2;
+          }
+          else
+          {
+            SetCurFont(sgl.CurItem.TextPar[0].FontIndex);
+            SetBackBox(0);
+            BackgroundX1 = sgl.BbX1;
+            BackgroundY1 = sgl.BbY1;
+            BackgroundX2 = sgl.BbX2;
+            BackgroundY2 = sgl.BbY2;
+          }
+          break;
+
+        case GuiLib_ITEM_STRUCTURE:
+        case GuiLib_ITEM_STRUCTARRAY:
+        case GuiLib_ITEM_STRUCTCOND:
+          if (sgl.CurItem.Drawn)
+          {
+            BackgroundOn = 1;
+            BackgroundX1 = sgl.CurItem.DrawnX1;
+            BackgroundY1 = sgl.CurItem.DrawnY1;
+            BackgroundX2 = sgl.CurItem.DrawnX2;
+            BackgroundY2 = sgl.CurItem.DrawnY2;
+          }
+          break;
+
+        case GuiLib_ITEM_TEXTBLOCK:
+        case GuiLib_ITEM_VARBLOCK:
+        case GuiLib_ITEM_CHECKBOX:
+        case GuiLib_ITEM_BUTTON:
+        case GuiLib_ITEM_EDITBOX:
+        case GuiLib_ITEM_PANEL:
+        case GuiLib_ITEM_MEMO:
+        case GuiLib_ITEM_LISTBOX:
+        case GuiLib_ITEM_COMBOBOX:
+        case GuiLib_ITEM_SCROLLBOX:
+        case GuiLib_ITEM_SCROLLAREA:
+        case GuiLib_ITEM_PROGRESSBAR:
+          if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_TRANSPARENT)
+          {
+            BackgroundOn = 1;
+            SetBackColorBox(sgl.CurItem.X1, sgl.CurItem.Y1,
+                            sgl.CurItem.X2, sgl.CurItem.Y2,
+                            0);
+            BackgroundX1 = sgl.BbX1;
+            BackgroundY1 = sgl.BbY1;
+            BackgroundX2 = sgl.BbX2;
+            BackgroundY2 = sgl.BbY2;
+          }
+          break;
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+        case GuiLib_ITEM_RADIOBUTTON:
+          if (sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_TRANSPARENT)
+          {
+            BackgroundOn = 1;
+            SetBackColorBox(sgl.CurItem.X1,
+                            sgl.CurItem.Y1,
+                            sgl.CurItem.X2,
+                            sgl.CurItem.Y2 +
+                              (sgl.CurItem.CompPars.CompRadioButton.Count - 1) *
+                               sgl.CurItem.CompPars.CompRadioButton.InterDistance,
+                            0);
+            BackgroundX1 = sgl.BbX1;
+            BackgroundY1 = sgl.BbY1;
+            BackgroundX2 = sgl.BbX2;
+            BackgroundY2 = sgl.BbY2;
+          }
+          break;
+#endif
+      }
+      if (BackgroundOn)
+        GuiLib_ShowBitmapArea(sgl.BackgrBitmapAry[N].Index,
+           sgl.BackgrBitmapAry[N].X, sgl.BackgrBitmapAry[N].Y,
+           BackgroundX1, BackgroundY1, BackgroundX2, BackgroundY2, -1);
+    }
+}
+#endif
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+//------------------------------------------------------------------------------
+static void StartClipping(
+   GuiConst_INT8U Clipping)
+{
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+  sgl.CurItem.ClipRectX1 += sgl.CoordOrigoX;
+  sgl.CurItem.ClipRectY1 += sgl.CoordOrigoY;
+  sgl.CurItem.ClipRectX2 += sgl.CoordOrigoX;
+  sgl.CurItem.ClipRectY2 += sgl.CoordOrigoY;
+#endif
+  if (Clipping)
+  {
+    OrderCoord(&sgl.CurItem.ClipRectX1, &sgl.CurItem.ClipRectX2);
+    OrderCoord(&sgl.CurItem.ClipRectY1, &sgl.CurItem.ClipRectY2);
+    if (sgl.CurItem.ClipRectX1 < sgl.ActiveAreaX1)
+      sgl.CurItem.ClipRectX1 = sgl.ActiveAreaX1;
+    if (sgl.CurItem.ClipRectY1 < sgl.ActiveAreaY1)
+      sgl.CurItem.ClipRectY1 = sgl.ActiveAreaY1;
+    if (sgl.CurItem.ClipRectX2 > sgl.ActiveAreaX2)
+      sgl.CurItem.ClipRectX2 = sgl.ActiveAreaX2;
+    if (sgl.CurItem.ClipRectY2 > sgl.ActiveAreaY2)
+      sgl.CurItem.ClipRectY2 = sgl.ActiveAreaY2;
+  }
+  else
+  {
+    sgl.CurItem.ClipRectX1 = sgl.ActiveAreaX1;
+    sgl.CurItem.ClipRectY1 = sgl.ActiveAreaY1;
+    sgl.CurItem.ClipRectX2 = sgl.ActiveAreaX2;
+    sgl.CurItem.ClipRectY2 = sgl.ActiveAreaY2;
+  }
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+  sgl.CurItem.ClipRectX1 -= sgl.CoordOrigoX;
+  sgl.CurItem.ClipRectY1 -= sgl.CoordOrigoY;
+  sgl.CurItem.ClipRectX2 -= sgl.CoordOrigoX;
+  sgl.CurItem.ClipRectY2 -= sgl.CoordOrigoY;
+#endif
+  GuiLib_SetClipping(sgl.CurItem.ClipRectX1, sgl.CurItem.ClipRectY1,
+                     sgl.CurItem.ClipRectX2, sgl.CurItem.ClipRectY2);
+}
+#endif
+
+//------------------------------------------------------------------------------
+static void PrepareInternalStruct(void)
+{
+  sgl.Memory.X[GuiLib_MEMORY_CNT] = sgl.CurItem.X1;
+  sgl.Memory.Y[GuiLib_MEMORY_CNT] = sgl.CurItem.Y1;
+}
+
+//------------------------------------------------------------------------------
+static void DrawSubStruct(
+   GuiConst_INT16U SubStructIndex,
+   GuiConst_INT8U ColorInvert,
+   GuiConst_INT8U SubInt)
+{
+  GuiLib_ItemRec RemCurItem;
+  GuiLib_StructPtr StructToCall;
+  GuiConst_INT8U RemBackBox;
+  GuiConst_INT16S RemBbX1, RemBbX2;
+  GuiConst_INT16S RemBbY1, RemBbY2;
+  GuiConst_INT8U RemDrawn;
+  GuiConst_INT16S RemDrawnX1, RemDrawnY1, RemDrawnX2, RemDrawnY2;
+  GuiConst_INT16S RemAutoRedrawSaveIndex;
+  GuiConst_INT16S RemAutoRedrawParent;
+  GuiConst_INT16S RemAutoRedrawLatest;
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  GuiConst_INT32U RemRemoteStructOffset;
+#endif
+
+  if (SubStructIndex != 0xFFFF)
+  {
+    RemAutoRedrawParent = sgl.AutoRedrawParent;
+    RemAutoRedrawLatest = sgl.AutoRedrawLatest;
+
+    sgl.AutoRedrawParent = sgl.AutoRedrawLatest;
+
+    if (SubInt)
+      memcpy(&RemCurItem, &sgl.CurItem, sizeof(GuiLib_ItemRec));
+
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+    RemRemoteStructOffset = sgl.RemoteStructOffset;
+#endif
+    RemBackBox = (sgl.CurItem.TextPar[0].BackBoxSizeX);
+    RemBbX1 = sgl.BbX1;
+    RemBbX2 = sgl.BbX2;
+    RemBbY1 = sgl.BbY1;
+    RemBbY2 = sgl.BbY2;
+    RemDrawn = gl.Drawn;
+    RemDrawnX1 = gl.DrawnX1;
+    RemDrawnY1 = gl.DrawnY1;
+    RemDrawnX2 = gl.DrawnX2;
+    RemDrawnY2 = gl.DrawnY2;
+    ResetDrawLimits();
+    RemAutoRedrawSaveIndex = sgl.AutoRedrawSaveIndex;
+
+    sgl.DisplayLevel++;
+    StructToCall =
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+       GetRemoteStructData(SubStructIndex);
+#else
+       (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[SubStructIndex]);
+#endif
+    DrawStructure(StructToCall, ColorInvert);
+    sgl.DisplayLevel--;
+
+    if (RemBackBox)
+    {
+      sgl.CurItem.Drawn = 1;
+      sgl.CurItem.DrawnX1 = RemBbX1;
+      sgl.CurItem.DrawnY1 = RemBbY1;
+      sgl.CurItem.DrawnX2 = RemBbX2;
+      sgl.CurItem.DrawnY2 = RemBbY2;
+
+      gl.DrawnX1 = GuiLib_GET_MIN(sgl.BbX1, RemDrawnX1);
+      gl.DrawnY1 = GuiLib_GET_MIN(sgl.BbY1, RemDrawnY1);
+      gl.DrawnX2 = GuiLib_GET_MAX(sgl.BbX2, RemDrawnX2);
+      gl.DrawnY2 = GuiLib_GET_MAX(sgl.BbY2, RemDrawnY2);
+    }
+    else if (gl.Drawn)
+    {
+      sgl.CurItem.Drawn = 1;
+      sgl.CurItem.DrawnX1 = gl.DrawnX1;
+      sgl.CurItem.DrawnY1 = gl.DrawnY1;
+      sgl.CurItem.DrawnX2 = gl.DrawnX2;
+      sgl.CurItem.DrawnY2 = gl.DrawnY2;
+
+      gl.DrawnX1 = GuiLib_GET_MIN(gl.DrawnX1, RemDrawnX1);
+      gl.DrawnY1 = GuiLib_GET_MIN(gl.DrawnY1, RemDrawnY1);
+      gl.DrawnX2 = GuiLib_GET_MAX(gl.DrawnX2, RemDrawnX2);
+      gl.DrawnY2 = GuiLib_GET_MAX(gl.DrawnY2, RemDrawnY2);
+    }
+    else
+    {
+      gl.Drawn = RemDrawn;
+      gl.DrawnX1 = RemDrawnX1;
+      gl.DrawnY1 = RemDrawnY1;
+      gl.DrawnX2 = RemDrawnX2;
+      gl.DrawnY2 = RemDrawnY2;
+    }
+    sgl.AutoRedrawSaveIndex = RemAutoRedrawSaveIndex;
+
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+    sgl.RemoteStructOffset = RemRemoteStructOffset;
+#endif
+
+    if (SubInt)
+      memcpy(&sgl.CurItem, &RemCurItem, sizeof(GuiLib_ItemRec));
+
+    sgl.AutoRedrawLatest = RemAutoRedrawLatest;
+    sgl.AutoRedrawParent = RemAutoRedrawParent;
+  }
+}
+
+#include "GuiItems.h"
+
+//------------------------------------------------------------------------------
+static void DrawStructure(
+   GuiLib_StructPtr Structure,
+   GuiConst_INT8U ColorInvert) PrefixReentrant
+{
+  GuiConst_INT16S ItemNdx;
+  GuiConst_INT16S X, RemAutoRedrawLatest;
+  void PrefixLocate *XVarPtr;
+  void PrefixLocate *YVarPtr;
+  GuiConst_INT8U ItemCnt;
+  GuiConst_INT8U PrefixLocate *LocalItemDataPtr;
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  GuiConst_INT16S I;
+#endif
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  GuiConst_INT8U ItemSizeBuf[2];
+  GuiConst_INT16U ItemSize;
+#endif
+
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  LocalItemDataPtr = sgl.GuiLib_RemoteStructBuffer;
+#else
+  LocalItemDataPtr = (GuiConst_INT8U PrefixLocate *)Structure;
+#endif
+  ItemCnt = GetItemByte(&LocalItemDataPtr);
+
+  for (ItemNdx = 0; ItemNdx < ItemCnt; ItemNdx++)
+  {
+    RemAutoRedrawLatest = sgl.AutoRedrawLatest;
+
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+    GuiLib_RemoteDataReadBlock(
+       sgl.RemoteStructOffset,
+       2,
+       (GuiConst_INT8U*)&ItemSizeBuf);
+    ItemSize = (256 * (GuiConst_INT16U)ItemSizeBuf[1]) + ItemSizeBuf[0];
+    sgl.RemoteStructOffset += 2;
+    GuiLib_RemoteDataReadBlock(
+       sgl.RemoteStructOffset,
+       ItemSize,
+       sgl.GuiLib_RemoteItemBuffer);
+    sgl.RemoteStructOffset += ItemSize;
+    LocalItemDataPtr = &sgl.GuiLib_RemoteItemBuffer[0];
+#endif
+
+    sgl.ItemDataPtr = LocalItemDataPtr;
+    ReadItem(GuiLib_LanguageIndex);
+    LocalItemDataPtr = sgl.ItemDataPtr;
+
+    if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
+                             GuiLib_ITEMBIT_TEXT +
+                             GuiLib_ITEMBIT_TEXTBLOCK +
+                             GuiLib_ITEMBIT_DOT +
+                             GuiLib_ITEMBIT_LINE +
+                             GuiLib_ITEMBIT_FRAME +
+                             GuiLib_ITEMBIT_BLOCK +
+                             GuiLib_ITEMBIT_CIRCLE +
+                             GuiLib_ITEMBIT_ELLIPSE +
+                             GuiLib_ITEMBIT_BITMAP +
+                             GuiLib_ITEMBIT_BACKGROUND +
+                             GuiLib_ITEMBIT_STRUCTURE +
+                             GuiLib_ITEMBIT_STRUCTARRAY +
+                             GuiLib_ITEMBIT_ACTIVEAREA +
+                             GuiLib_ITEMBIT_CLIPRECT +
+                             GuiLib_ITEMBIT_VAR +
+                             GuiLib_ITEMBIT_VARBLOCK +
+                             GuiLib_ITEMBIT_TOUCHAREA +
+                             GuiLib_ITEMBIT_SCROLLBOX +
+                             GuiLib_ITEMBIT_GRAPH +
+                             GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
+        (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                             GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                             GuiLib_ITEMBIT_QUARTERCIRCLE +
+                             GuiLib_ITEMBIT_QUARTERELLIPSE +
+                             GuiLib_ITEMBIT_CHECKBOX +
+                             GuiLib_ITEMBIT_RADIOBUTTON +
+                             GuiLib_ITEMBIT_BUTTON +
+                             GuiLib_ITEMBIT_EDITBOX +
+                             GuiLib_ITEMBIT_PANEL +
+                             GuiLib_ITEMBIT_MEMO +
+                             GuiLib_ITEMBIT_LISTBOX +
+                             GuiLib_ITEMBIT_COMBOBOX +
+                             GuiLib_ITEMBIT_SCROLLAREA +
+                             GuiLib_ITEMBIT_PROGRESSBAR +
+                             GuiLib_ITEMBIT_STRUCTCOND +
+                             GuiLib_ITEMBIT_POSCALLBACK)))
+    {
+      if (sgl.CommonByte2 & 0x10)
+      {
+        XVarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[sgl.X1VarIdx]);
+        sgl.X1VarType = ReadByte(GuiStruct_VarTypeList[sgl.X1VarIdx]);
+      }
+      else
+        XVarPtr = 0;
+      if (XVarPtr != 0)
+        sgl.ItemX1 += ReadVar(XVarPtr, sgl.X1VarType);
+      if (sgl.X1MemoryRead > 0)
+        sgl.ItemX1 += sgl.Memory.X[sgl.X1MemoryRead - 1];
+      if (sgl.X1Mode == GuiLib_COOR_REL)
+        sgl.ItemX1 += sgl.CurItem.RX;
+      else if (sgl.X1Mode == GuiLib_COOR_REL_1)
+        sgl.ItemX1 += sgl.CurItem.RX1;
+      else if (sgl.X1Mode == GuiLib_COOR_REL_2)
+        sgl.ItemX1 += sgl.CurItem.RX2;
+      if (sgl.X1MemoryWrite > 0)
+        sgl.Memory.X[sgl.X1MemoryWrite - 1] = sgl.ItemX1;
+      sgl.CurItem.X1 = sgl.ItemX1;
+
+      if (sgl.CommonByte2 & 0x20)
+      {
+        YVarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[sgl.Y1VarIdx]);
+        sgl.Y1VarType = ReadByte(GuiStruct_VarTypeList[sgl.Y1VarIdx]);
+      }
+      else
+        YVarPtr = 0;
+      if (YVarPtr != 0)
+        sgl.ItemY1 += ReadVar(YVarPtr, sgl.Y1VarType);
+      if (sgl.Y1MemoryRead > 0)
+        sgl.ItemY1 += sgl.Memory.Y[sgl.Y1MemoryRead - 1];
+      if (sgl.Y1Mode == GuiLib_COOR_REL)
+        sgl.ItemY1 += sgl.CurItem.RY;
+      else if (sgl.Y1Mode == GuiLib_COOR_REL_1)
+        sgl.ItemY1 += sgl.CurItem.RY1;
+      else if (sgl.Y1Mode == GuiLib_COOR_REL_2)
+        sgl.ItemY1 += sgl.CurItem.RY2;
+      if (sgl.Y1MemoryWrite > 0)
+        sgl.Memory.Y[sgl.Y1MemoryWrite - 1] = sgl.ItemY1;
+      sgl.CurItem.Y1 = sgl.ItemY1;
+
+      sgl.CurItem.RX = sgl.CurItem.X1;
+      sgl.CurItem.RY = sgl.CurItem.Y1;
+    }
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+    if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_SCROLLBOX)
+    {
+      sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].X1 = sgl.CurItem.X1;
+      sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].Y1 = sgl.CurItem.Y1;
+      sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].BackColor = sgl.CurItem.BackColor;
+
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+      if ((sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].BarMode & 0x03) ==
+         GuiLib_COOR_REL)
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].BarPositionX += sgl.CurItem.X1;
+      if (((sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].BarMode >> 2) & 0x03) ==
+         GuiLib_COOR_REL)
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].BarPositionY += sgl.CurItem.Y1;
+#endif
+#ifndef GuiConst_SCROLLITEM_INDICATOR_NONE
+      if ((sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].IndicatorMode & 0x03) ==
+         GuiLib_COOR_REL)
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].IndicatorPositionX += sgl.CurItem.X1;
+      if (((sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].IndicatorMode >> 2) & 0x03) ==
+         GuiLib_COOR_REL)
+        sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].IndicatorPositionY += sgl.CurItem.Y1;
+#endif
+    }
+#endif
+
+    if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
+                             GuiLib_ITEMBIT_TEXTBLOCK +
+                             GuiLib_ITEMBIT_VARBLOCK +
+                             GuiLib_ITEMBIT_LINE +
+                             GuiLib_ITEMBIT_FRAME +
+                             GuiLib_ITEMBIT_BLOCK +
+                             GuiLib_ITEMBIT_BITMAP +
+                             GuiLib_ITEMBIT_BACKGROUND +
+                             GuiLib_ITEMBIT_ACTIVEAREA +
+                             GuiLib_ITEMBIT_CLIPRECT +
+                             GuiLib_ITEMBIT_TOUCHAREA +
+                             GuiLib_ITEMBIT_GRAPH +
+                             GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
+        (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                             GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                             GuiLib_ITEMBIT_BUTTON +
+                             GuiLib_ITEMBIT_EDITBOX +
+                             GuiLib_ITEMBIT_PANEL +
+                             GuiLib_ITEMBIT_MEMO +
+                             GuiLib_ITEMBIT_LISTBOX +
+                             GuiLib_ITEMBIT_COMBOBOX +
+                             GuiLib_ITEMBIT_SCROLLAREA +
+                             GuiLib_ITEMBIT_PROGRESSBAR)))
+    {
+      if (sgl.CommonByte2 & 0x40)
+      {
+        XVarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[sgl.X2VarIdx]);
+        sgl.X2VarType = ReadByte(GuiStruct_VarTypeList[sgl.X2VarIdx]);
+      }
+      else
+        XVarPtr = 0;
+      if (XVarPtr != 0)
+        sgl.ItemX2 += ReadVar(XVarPtr, sgl.X2VarType);
+      if (sgl.X2MemoryRead > 0)
+        sgl.ItemX2 += sgl.Memory.X[sgl.X2MemoryRead - 1];
+      if (sgl.X2Mode == GuiLib_COOR_REL)
+        sgl.ItemX2 += sgl.CurItem.X1;
+      else if (sgl.X2Mode == GuiLib_COOR_REL_1)
+        sgl.ItemX2 += sgl.CurItem.RX1;
+      else if (sgl.X2Mode == GuiLib_COOR_REL_2)
+        sgl.ItemX2 += sgl.CurItem.RX2;
+      if (sgl.X2MemoryWrite > 0)
+        sgl.Memory.X[sgl.X2MemoryWrite - 1] = sgl.ItemX2;
+      sgl.CurItem.X2 = sgl.ItemX2;
+
+      if (sgl.CommonByte2 & 0x80)
+      {
+        YVarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[sgl.Y2VarIdx]);
+        sgl.Y2VarType = ReadByte(GuiStruct_VarTypeList[sgl.Y2VarIdx]);
+      }
+      else
+        YVarPtr = 0;
+      if (YVarPtr != 0)
+        sgl.ItemY2 += ReadVar(YVarPtr, sgl.Y2VarType);
+      if (sgl.Y2MemoryRead > 0)
+        sgl.ItemY2 += sgl.Memory.Y[sgl.Y2MemoryRead - 1];
+      if (sgl.Y2Mode == GuiLib_COOR_REL)
+        sgl.ItemY2 += sgl.CurItem.Y1;
+      else if (sgl.Y2Mode == GuiLib_COOR_REL_1)
+        sgl.ItemY2 += sgl.CurItem.RY1;
+      else if (sgl.Y2Mode == GuiLib_COOR_REL_2)
+        sgl.ItemY2 += sgl.CurItem.RY2;
+      if (sgl.Y2MemoryWrite > 0)
+        sgl.Memory.Y[sgl.Y2MemoryWrite - 1] = sgl.ItemY2;
+      sgl.CurItem.Y2 = sgl.ItemY2;
+    }
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+    else if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_CHECKBOX)
+    {
+      switch (sgl.CurItem.CompPars.CompCheckBox.Style)
+      {
+        case GuiLib_CHECKBOX_FLAT:
+        case GuiLib_CHECKBOX_3D:
+        case GuiLib_CHECKBOX_NONE:
+          sgl.CurItem.X2 = sgl.CurItem.X1 +
+                           sgl.CurItem.CompPars.CompCheckBox.Size - 1;
+          sgl.CurItem.Y2 = sgl.CurItem.Y1 +
+                           sgl.CurItem.CompPars.CompCheckBox.Size - 1;
+          break;
+        case GuiLib_CHECKBOX_ICON:
+          sgl.CurItem.X2 = sgl.CurItem.X1;
+          sgl.CurItem.Y2 = sgl.CurItem.Y1;
+          break;
+        case GuiLib_CHECKBOX_BITMAP:
+          sgl.CurItem.X2 = sgl.CurItem.X1;
+          sgl.CurItem.Y2 = sgl.CurItem.Y1;
+          break;
+      }
+    }
+#endif
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+    else if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_RADIOBUTTON)
+    {
+      switch (sgl.CurItem.CompPars.CompRadioButton.Style)
+      {
+        case GuiLib_RADIOBUTTON_FLAT:
+        case GuiLib_RADIOBUTTON_3D:
+          sgl.CurItem.X2 = sgl.CurItem.X1 +
+                           2 * sgl.CurItem.CompPars.CompRadioButton.Size;
+          sgl.CurItem.Y2 = sgl.CurItem.Y1 +
+                           2 * sgl.CurItem.CompPars.CompRadioButton.Size;
+          break;
+        case GuiLib_RADIOBUTTON_ICON:
+          sgl.CurItem.X2 = sgl.CurItem.X1;
+          sgl.CurItem.Y2 = sgl.CurItem.Y1;
+          break;
+        case GuiLib_RADIOBUTTON_BITMAP:
+          sgl.CurItem.X2 = sgl.CurItem.X1;
+          sgl.CurItem.Y2 = sgl.CurItem.Y1;
+          break;
+      }
+    }
+#endif
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+    else if (sgl.ItemTypeBit2 & GuiLib_ITEMBIT_BUTTON)
+    {
+      sgl.CurItem.X2 = sgl.CurItem.X1;
+      sgl.CurItem.Y2 = sgl.CurItem.Y1;
+    }
+#endif
+
+    if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CIRCLE +
+                             GuiLib_ITEMBIT_ELLIPSE)) ||
+        (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                             GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                             GuiLib_ITEMBIT_QUARTERCIRCLE +
+                             GuiLib_ITEMBIT_QUARTERELLIPSE +
+                             GuiLib_ITEMBIT_BUTTON +
+                             GuiLib_ITEMBIT_PANEL)))
+    {
+      if (sgl.CommonByte6 & 0x40)
+      {
+        XVarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[sgl.R1VarIdx]);
+        sgl.R1VarType = ReadByte(GuiStruct_VarTypeList[sgl.R1VarIdx]);
+      }
+      else
+        XVarPtr = 0;
+      if (XVarPtr != 0)
+        sgl.ItemR1 += ReadVar(XVarPtr, sgl.R1VarType);
+      if (sgl.R1MemoryRead > 0)
+        sgl.ItemR1 += sgl.Memory.X[sgl.R1MemoryRead - 1];
+      if (sgl.R1Mode == GuiLib_COOR_REL)
+        sgl.ItemR1 += sgl.CurItem.X1;
+      else if (sgl.R1Mode == GuiLib_COOR_REL_1)
+        sgl.ItemR1 += sgl.CurItem.RX1;
+      else if (sgl.R1Mode == GuiLib_COOR_REL_2)
+        sgl.ItemR1 += sgl.CurItem.RX2;
+      if (sgl.R1MemoryWrite > 0)
+        sgl.Memory.X[sgl.R1MemoryWrite - 1] = sgl.ItemR1;
+      sgl.CurItem.R1 = sgl.ItemR1;
+    }
+
+    if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_ELLIPSE)) ||
+        (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_QUARTERELLIPSE)))
+    {
+      if (sgl.CommonByte6 & 0x80)
+      {
+        YVarPtr = (void PrefixLocate *)ReadWord(GuiStruct_VarPtrList[sgl.R2VarIdx]);
+        sgl.R2VarType = ReadByte(GuiStruct_VarTypeList[sgl.R2VarIdx]);
+      }
+      else
+        YVarPtr = 0;
+      if (YVarPtr != 0)
+        sgl.ItemR2 += ReadVar(YVarPtr, sgl.R2VarType);
+      if (sgl.R2MemoryRead > 0)
+        sgl.ItemR2 += sgl.Memory.Y[sgl.R2MemoryRead - 1];
+      if (sgl.R2Mode == GuiLib_COOR_REL)
+        sgl.ItemR2 += sgl.CurItem.Y1;
+      else if (sgl.R2Mode == GuiLib_COOR_REL_1)
+        sgl.ItemR2 += sgl.CurItem.RY1;
+      else if (sgl.R2Mode == GuiLib_COOR_REL_2)
+        sgl.ItemR2 += sgl.CurItem.RY2;
+      if (sgl.R2MemoryWrite > 0)
+        sgl.Memory.Y[sgl.R2MemoryWrite - 1] = sgl.ItemR2;
+      sgl.CurItem.R2 = sgl.ItemR2;
+    }
+
+    if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CLEARAREA +
+                             GuiLib_ITEMBIT_TEXTBLOCK +
+                             GuiLib_ITEMBIT_VARBLOCK +
+                             GuiLib_ITEMBIT_LINE +
+                             GuiLib_ITEMBIT_FRAME +
+                             GuiLib_ITEMBIT_BLOCK +
+                             GuiLib_ITEMBIT_BITMAP +
+                             GuiLib_ITEMBIT_BACKGROUND +
+                             GuiLib_ITEMBIT_ACTIVEAREA +
+                             GuiLib_ITEMBIT_CLIPRECT +
+                             GuiLib_ITEMBIT_TOUCHAREA +
+                             GuiLib_ITEMBIT_GRAPH +
+                             GuiLib_ITEMBIT_GRAPHICSLAYER)) ||
+        (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_ROUNDEDFRAME +
+                             GuiLib_ITEMBIT_ROUNDEDBLOCK +
+                             GuiLib_ITEMBIT_CHECKBOX +
+                             GuiLib_ITEMBIT_RADIOBUTTON +
+                             GuiLib_ITEMBIT_BUTTON +
+                             GuiLib_ITEMBIT_EDITBOX +
+                             GuiLib_ITEMBIT_PANEL +
+                             GuiLib_ITEMBIT_MEMO +
+                             GuiLib_ITEMBIT_LISTBOX +
+                             GuiLib_ITEMBIT_COMBOBOX +
+                             GuiLib_ITEMBIT_SCROLLAREA +
+                             GuiLib_ITEMBIT_PROGRESSBAR)))
+    {
+      X = sgl.CurItem.X2 - sgl.CurItem.X1;
+      if (sgl.CurItem.TextPar[0].Alignment == GuiLib_ALIGN_CENTER)
+      {
+        sgl.CurItem.X1 -= X / 2;
+        sgl.CurItem.X2 -= X / 2;
+      }
+      else if (sgl.CurItem.TextPar[0].Alignment == GuiLib_ALIGN_RIGHT)
+      {
+        sgl.CurItem.X1 -= X;
+        sgl.CurItem.X2 -= X;
+      }
+    }
+    else if ((sgl.ItemTypeBit1 & (GuiLib_ITEMBIT_CIRCLE +
+                                  GuiLib_ITEMBIT_ELLIPSE)) ||
+             (sgl.ItemTypeBit2 & (GuiLib_ITEMBIT_QUARTERCIRCLE +
+                                  GuiLib_ITEMBIT_QUARTERELLIPSE)))
+    {
+      if (sgl.CurItem.TextPar[0].Alignment == GuiLib_ALIGN_CENTER)
+        sgl.CurItem.X1 -= sgl.CurItem.R1;
+      else if (sgl.CurItem.TextPar[0].Alignment == GuiLib_ALIGN_RIGHT)
+        sgl.CurItem.X1 -= 2 * sgl.CurItem.R1;
+    }
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+    if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_SCROLLBOX)
+      memcpy(&sgl.ScrollBoxesAry[sgl.GlobalScrollBoxIndex].ScrollBoxItem, &sgl.CurItem,
+         sizeof(GuiLib_ItemRec));
+#endif
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+    if (sgl.ItemTypeBit1 & GuiLib_ITEMBIT_GRAPH)
+    {
+      memcpy(&sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem, &sgl.CurItem,
+         sizeof(GuiLib_ItemRec));
+      OrderCoord(&sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem.X1,
+                 &sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem.X2);
+      OrderCoord(&sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem.Y1,
+                 &sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem.Y2);
+      sgl.GraphAry[sgl.GlobalGraphIndex].OrigoX =
+         sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem.X1 +
+         sgl.GraphAry[sgl.GlobalGraphIndex].OriginOffsetX;
+      sgl.GraphAry[sgl.GlobalGraphIndex].OrigoY =
+         sgl.GraphAry[sgl.GlobalGraphIndex].GraphItem.Y2 -
+         sgl.GraphAry[sgl.GlobalGraphIndex].OriginOffsetY;
+    }
+#endif
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+    if (sgl.NextScrollLineReading)
+      sgl.DisplayWriting = 0;
+    else
+#endif
+      sgl.DisplayWriting = 1;
+    DrawItem(ColorInvert);
+
+    sgl.DisplayWriting = 1;
+
+    switch (sgl.CurItem.ItemType)
+    {
+      case GuiLib_ITEM_TEXT:
+      case GuiLib_ITEM_VAR:
+        sgl.CurItem.RX1 = sgl.FontWriteX1;
+        sgl.CurItem.RY1 = sgl.FontWriteY1;
+        sgl.CurItem.RX2 = sgl.FontWriteX2 + 1;
+        sgl.CurItem.RY2 = sgl.FontWriteY2;
+        break;
+      case GuiLib_ITEM_DOT:
+        sgl.CurItem.RX1 = sgl.CurItem.X1;
+        sgl.CurItem.RY1 = sgl.CurItem.Y1;
+        sgl.CurItem.RX2 = sgl.CurItem.X1 + 1;
+        sgl.CurItem.RY2 = sgl.CurItem.Y1;
+        break;
+      case GuiLib_ITEM_CIRCLE:
+      case GuiLib_ITEM_QUARTERCIRCLE:
+        sgl.CurItem.RX1 = sgl.CurItem.X1;
+        sgl.CurItem.RY1 = sgl.CurItem.Y1 - sgl.CurItem.R1;
+        sgl.CurItem.RX2 = sgl.CurItem.X1 + (2 * sgl.CurItem.R1) + 1;
+        sgl.CurItem.RY2 = sgl.CurItem.Y1 + sgl.CurItem.R1;
+        break;
+      case GuiLib_ITEM_ELLIPSE:
+      case GuiLib_ITEM_QUARTERELLIPSE:
+        sgl.CurItem.RX1 = sgl.CurItem.X1;
+        sgl.CurItem.RY1 = sgl.CurItem.Y1 - sgl.CurItem.R2;
+        sgl.CurItem.RX2 = sgl.CurItem.X1 + (2 * sgl.CurItem.R1) + 1;
+        sgl.CurItem.RY2 = sgl.CurItem.Y1 + sgl.CurItem.R2;
+        break;
+      case GuiLib_ITEM_CLEARAREA:
+      case GuiLib_ITEM_LINE:
+      case GuiLib_ITEM_FRAME:
+      case GuiLib_ITEM_ROUNDEDFRAME:
+      case GuiLib_ITEM_BLOCK:
+      case GuiLib_ITEM_ROUNDEDBLOCK:
+      case GuiLib_ITEM_BITMAP:
+      case GuiLib_ITEM_BACKGROUND:
+      case GuiLib_ITEM_ACTIVEAREA:
+      case GuiLib_ITEM_CLIPRECT:
+      case GuiLib_ITEM_TEXTBLOCK:
+      case GuiLib_ITEM_VARBLOCK:
+      case GuiLib_ITEM_CHECKBOX:
+      case GuiLib_ITEM_BUTTON:
+      case GuiLib_ITEM_EDITBOX:
+      case GuiLib_ITEM_PANEL:
+      case GuiLib_ITEM_MEMO:
+      case GuiLib_ITEM_LISTBOX:
+      case GuiLib_ITEM_COMBOBOX:
+      case GuiLib_ITEM_SCROLLAREA:
+      case GuiLib_ITEM_PROGRESSBAR:
+      case GuiLib_ITEM_TOUCHAREA:
+      case GuiLib_ITEM_SCROLLBOX:
+      case GuiLib_ITEM_GRAPH:
+      case GuiLib_ITEM_GRAPHICSLAYER:
+        sgl.CurItem.RX1 = sgl.CurItem.X1;
+        sgl.CurItem.RY1 = sgl.CurItem.Y1;
+        sgl.CurItem.RX2 = sgl.CurItem.X2 + 1;
+        sgl.CurItem.RY2 = sgl.CurItem.Y2;
+        break;
+      case GuiLib_ITEM_POSCALLBACK:
+        sgl.CurItem.RX1 = sgl.CurItem.X1;
+        sgl.CurItem.RY1 = sgl.CurItem.Y1;
+        sgl.CurItem.RX2 = sgl.CurItem.X1;
+        sgl.CurItem.RY2 = sgl.CurItem.Y1;
+        break;
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+      case GuiLib_ITEM_RADIOBUTTON:
+        sgl.CurItem.RX1 = sgl.CurItem.X1;
+        sgl.CurItem.RY1 = sgl.CurItem.Y1;
+        sgl.CurItem.RX2 = sgl.CurItem.X2 + 1;
+        sgl.CurItem.RY2 = sgl.CurItem.Y2 +
+                         (sgl.CurItem.CompPars.CompRadioButton.Count - 1) *
+                          sgl.CurItem.CompPars.CompRadioButton.InterDistance;
+        break;
+#endif
+    }
+
+    sgl.AutoRedrawLatest = RemAutoRedrawLatest;
+  }
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_ShowScreen(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16S CursorFieldToShow,
+   GuiConst_INT8U ResetAutoRedraw)
+{
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  GuiConst_INT16S M;
+#endif
+  GuiConst_INT16S N;
+  GuiLib_StructPtr StructureToCall;
+
+  GuiDisplay_Lock();
+
+  GuiLib_CurStructureNdx = StructureNdx;
+  StructureToCall =
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+     GetRemoteStructData(StructureNdx);
+#else
+     (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructureNdx]);
+#endif
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  sgl.CursorFieldFound = -1;
+  sgl.CursorActiveFieldFound = 0;
+  GuiLib_ActiveCursorFieldNo = CursorFieldToShow;
+  sgl.CursorInUse = (GuiLib_ActiveCursorFieldNo >= 0);
+#else
+  gl.Dummy1_16S = CursorFieldToShow;   // To avoid compiler warning
+#endif
+
+  if ((GuiLib_StructPtr)StructureToCall != 0)
+  {
+    sgl.CurItem.X1 = 0;
+    sgl.CurItem.Y1 = 0;
+    sgl.CurItem.X2 = 0;
+    sgl.CurItem.Y2 = 0;
+    sgl.CurItem.R1 = 0;
+    sgl.CurItem.R2 = 0;
+
+    sgl.CurItem.RX = 0;
+    sgl.CurItem.RY = 0;
+    sgl.CurItem.RX1 = 0;
+    sgl.CurItem.RY1 = 0;
+    sgl.CurItem.RX2 = 0;
+    sgl.CurItem.RY2 = 0;
+
+    for (N = 0; N < 2 * GuiLib_MEMORY_CNT; N++)
+    {
+      sgl.Memory.X[N] = 0;
+      sgl.Memory.Y[N] = 0;
+    }
+    for (N = 0; N < GuiLib_MEMORY_CNT; N++)
+      sgl.Memory.C[N] = 0;
+    sgl.ThicknessMemory = 1;
+
+    sgl.CurItem.ForeColor = GuiConst_PIXEL_ON;
+    sgl.CurItem.BackColor = GuiConst_PIXEL_OFF;
+    sgl.CurItem.BarForeColor = GuiConst_PIXEL_OFF;
+    sgl.CurItem.BarBackColor = GuiConst_PIXEL_ON;
+    sgl.CurItem.ForeColorIndex = 0xFFFF;
+    sgl.CurItem.BackColorIndex = 0xFFFF;
+    sgl.CurItem.BarForeColorIndex = 0xFFFF;
+    sgl.CurItem.BarBackColorIndex = 0xFFFF;
+
+
+    for (N = 0; N < 3; N++)
+    {
+      sgl.CurItem.TextPar[N].BitFlags = GuiLib_BITFLAG_TRANSPARENT;
+      sgl.CurItem.TextPar[N].Alignment = GuiLib_ALIGN_LEFT;
+      sgl.CurItem.TextPar[N].BackBoxSizeX = 0;
+      sgl.CurItem.TextPar[N].FontIndex = 0;
+      sgl.CurItem.TextPar[N].Ps = GuiLib_PS_ON;
+    }
+
+    sgl.CurItem.FormatFieldWidth = 10;
+    sgl.CurItem.FormatDecimals = 0;
+    sgl.CurItem.FormatAlignment = GuiLib_FORMAT_ALIGNMENT_RIGHT;
+    sgl.CurItem.FormatFormat = GuiLib_FORMAT_DEC;
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+    for (N = 0; N < GuiConst_BLINK_FIELDS_MAX; N++)
+    {
+      sgl.BlinkTextItems[N].InUse = 0;
+      sgl.BlinkTextItems[N].Active = 0;
+    }
+#endif
+#endif
+
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+    sgl.TouchAreaCnt = 0;
+#endif
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+    for (M = 0; M < GuiConst_SCROLLITEM_BOXES_MAX; M++)
+    {
+      sgl.ScrollBoxesAry[M].InUse = GuiLib_SCROLL_STRUCTURE_UNDEF;
+      for (N = 0; N < GuiConst_SCROLLITEM_MARKERS_MAX; N++)
+      {
+        sgl.ScrollBoxesAry[M].MarkerColor[N] = GuiConst_PIXEL_ON;
+        sgl.ScrollBoxesAry[M].MarkerColorTransparent[N] = 1;
+      }
+    }
+#endif
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+    for (N = 0; N < GuiConst_GRAPH_MAX; N++)
+      sgl.GraphAry[N].InUse = GuiLib_GRAPH_STRUCTURE_UNDEF;
+#endif
+
+    sgl.BaseLayerDrawing = 1;
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+    GraphicsLayer_Pop(GuiLib_GRAPHICS_LAYER_BASE);
+    for (N = 0; N < GuiConst_GRAPHICS_LAYER_MAX; N++)
+    {
+      sgl.GraphicsLayerList[N].InUse = GuiLib_GRAPHICS_LAYER_UNDEF;
+      sgl.GraphicsFilterList[N].InUse = GuiLib_GRAPHICS_FILTER_UNDEF;
+    }
+#endif
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+    sgl.GlobalBackgrBitmapIndex = 0;
+    for (N = 0; N < GuiConst_MAX_BACKGROUND_BITMAPS; N++)
+      sgl.BackgrBitmapAry[N].InUse = 0;
+#endif
+
+    if (ResetAutoRedraw)
+      AutoRedraw_Destroy();
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    else
+      AutoRedraw_ResetCursor();
+#endif
+
+    sgl.DrawingLevel = 0;
+    sgl.TopLevelStructure = 0;
+
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+    sgl.CurItem.CompPars.CompTextBox.ScrollIndex = 0;
+    sgl.CurItem.CompPars.CompTextBox.ScrollPos = 0;
+    for (N = 0; N < GuiConst_TEXTBOX_FIELDS_MAX; N++)
+      sgl.TextBoxScrollPositions[N].index = -1;
+#endif
+
+    sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+    sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    sgl.CurItem.ClipRectX1 = sgl.DisplayActiveAreaX1;
+    sgl.CurItem.ClipRectY1 = sgl.DisplayActiveAreaY1;
+    sgl.CurItem.ClipRectX2 = sgl.DisplayActiveAreaX2;
+    sgl.CurItem.ClipRectY2 = sgl.DisplayActiveAreaY2;
+    sgl.ActiveAreaX1 = sgl.DisplayActiveAreaX1;
+    sgl.ActiveAreaY1 = sgl.DisplayActiveAreaY1;
+    sgl.ActiveAreaX2 = sgl.DisplayActiveAreaX2;
+    sgl.ActiveAreaY2 = sgl.DisplayActiveAreaY2;
+    if (sgl.DisplayWriting)
+    {
+      if ((sgl.DisplayActiveAreaX1 != 0) || (sgl.DisplayActiveAreaY1 != 0) ||
+          (sgl.DisplayActiveAreaX2 != GuiConst_DISPLAY_WIDTH - 1) ||
+          (sgl.DisplayActiveAreaY2 != GuiConst_DISPLAY_HEIGHT - 1))
+        GuiLib_SetClipping(sgl.DisplayActiveAreaX1, sgl.DisplayActiveAreaY1,
+                           sgl.DisplayActiveAreaX2, sgl.DisplayActiveAreaY2);
+      else
+        GuiLib_ResetClipping();
+    }
+#endif
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    sgl.CurItem.CursorFieldLevel = 0;
+#endif
+    sgl.DisplayLevel = 0;
+    sgl.InitialDrawing = 1;
+    sgl.SwapColors = 0;
+    DrawStructure((GuiLib_StructPtr) StructureToCall,
+                   GuiLib_COL_INVERT_IF_CURSOR);
+    ResetLayerBufPtr();
+    sgl.InitialDrawing = 0;
+    sgl.CoordOrigoX = sgl.DisplayOrigoX + sgl.LayerOrigoX;
+    sgl.CoordOrigoY = sgl.DisplayOrigoY + sgl.LayerOrigoY;
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+    if (sgl.DisplayWriting)
+      GuiLib_ResetClipping();
+#endif
+  }
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  if (sgl.CursorFieldFound == -1)
+  {
+    sgl.CursorInUse = 0;
+    GuiLib_ActiveCursorFieldNo = -1;
+  }
+  else if (sgl.CursorInUse)
+  {
+    if (sgl.CursorActiveFieldFound == 0)
+    {
+      GuiLib_ActiveCursorFieldNo = sgl.CursorFieldFound;
+
+      DrawCursorItem(1);
+    }
+  }
+#endif
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+  sgl.BlinkBoxInverted = 0;
+#endif
+
+  GuiDisplay_Unlock();
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16S CheckLanguageIndex(
+   GuiConst_INT16S LanguageIndex)
+{
+  if ((LanguageIndex < 0) || (LanguageIndex > GuiConst_LANGUAGE_CNT - 1))
+    LanguageIndex = 0;
+
+#ifdef GuiConst_LANGUAGE_SOME_ACTIVE
+  if (!ReadByte(GuiFont_LanguageActive[LanguageIndex]))
+    LanguageIndex = GuiConst_LANGUAGE_FIRST;
+#endif
+
+  return(LanguageIndex);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_TEXT PrefixLocate *GuiLib_GetTextLanguagePtr(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16U TextNo,
+   GuiConst_INT16S LanguageIndex)
+{
+  GuiConst_INT16U I;
+  GuiConst_INT16S ItemNdx;
+  GuiConst_INT8U ItemCnt;
+  GuiLib_StructPtr StructureToCall;
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  GuiConst_INT8U ItemSizeBuf[2];
+  GuiConst_INT16U ItemSize;
+#endif
+
+  StructureToCall =
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+     GetRemoteStructData(StructureNdx);
+#else
+     (GuiLib_StructPtr)ReadWord(GuiStruct_StructPtrList[StructureNdx]);
+#endif
+
+  if (StructureToCall != 0)
+  {
+    LanguageIndex = CheckLanguageIndex(LanguageIndex);
+
+    sgl.ItemDataPtr = (GuiConst_INT8U PrefixLocate *)StructureToCall;
+    ItemCnt = GetItemByte(&sgl.ItemDataPtr);
+
+    I = 0;
+    for (ItemNdx = 0; ItemNdx < ItemCnt; ItemNdx++)
+    {
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+      GuiLib_RemoteDataReadBlock(
+         sgl.RemoteStructOffset,
+         2,
+         (GuiConst_INT8U*)&ItemSizeBuf);
+      ItemSize = (256 * (GuiConst_INT16U)ItemSizeBuf[1]) + ItemSizeBuf[0];
+      sgl.RemoteStructOffset += 2;
+      GuiLib_RemoteDataReadBlock(
+         sgl.RemoteStructOffset,
+         ItemSize,
+         sgl.GuiLib_RemoteItemBuffer);
+      sgl.RemoteStructOffset += ItemSize;
+      sgl.ItemDataPtr = &sgl.GuiLib_RemoteItemBuffer[0];
+#endif
+
+      ReadItem(LanguageIndex);
+
+      if ((sgl.CurItem.ItemType == GuiLib_ITEM_TEXT) ||
+          (sgl.CurItem.ItemType == GuiLib_ITEM_TEXTBLOCK))
+      {
+        if (I == TextNo)
+        {
+#ifdef GuiConst_CHARMODE_ANSI
+          return (GuiConst_TEXT PrefixLocate *) sgl.CurItem.TextPtr[0];
+#else
+          #ifdef GuiConst_ICC_COMPILER
+          ExtractUnicodeString((GuiConst_INT8U *)sgl.CurItem.TextPtr[0],
+                               sgl.CurItem.TextLength[0]);
+          #else
+          #ifdef GuiConst_CODEVISION_COMPILER
+          ExtractUnicodeString((GuiConst_INT8U *)sgl.CurItem.TextPtr[0],
+                               sgl.CurItem.TextLength[0]);
+          #else
+          ExtractUnicodeString((GuiConst_INT8U PrefixRom *)sgl.CurItem.TextPtr[0],
+                               sgl.CurItem.TextLength[0]);
+          #endif
+          #endif
+
+          return (sgl.UnicodeTextBuf);
+#endif
+        }
+        I++;
+      }
+    }
+  }
+
+  return (0);
+}
+
+//------------------------------------------------------------------------------
+GuiConst_TEXT PrefixLocate *GuiLib_GetTextPtr(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16U TextNo)
+{
+  return (GuiLib_GetTextLanguagePtr(StructureNdx, TextNo, GuiLib_LanguageIndex));
+}
+
+//------------------------------------------------------------------------------
+GuiConst_INT16U GuiLib_GetTextWidth(
+   GuiConst_TEXT PrefixLocate *String,
+   GuiLib_FontRecConstPtr Font,
+   GuiConst_INT8U PsWriting)
+{
+  GuiLib_ItemRec TextData;
+  GuiConst_INT16U CharCnt;
+
+  if ((String[0] != 0) && (Font != 0))
+  {
+    TextData.TextPar[0].Ps = PsWriting;
+    sgl.CurItem.TextPar[0].Ps = TextData.TextPar[0].Ps;
+#ifdef GuiConst_CHARMODE_ANSI
+    CharCnt = strlen(String);
+#else
+    CharCnt = GuiLib_UnicodeStrLen(String);
+#endif
+    sgl.CurFont = (GuiLib_FontRecPtr)Font;
+#ifdef GuiConst_DISP_VAR_NOW
+    displayVarNow = 1;
+#endif
+
+#ifdef GuiConst_CODEVISION_COMPILER
+    PrepareText((GuiConst_TEXT *)String, CharCnt, 0);
+#else
+#ifdef GuiConst_RENESAS_COMPILER_FAR
+    PrepareText((GuiConst_TEXT PrefixGeneric *)String, CharCnt, 0);
+#else
+    PrepareText(String, CharCnt, 0);
+#endif
+#endif
+#ifdef GuiConst_DISP_VAR_NOW
+    displayVarNow = 0;
+#endif
+
+    return (TextPixelLength(TextData.TextPar[0].Ps, CharCnt, 0));
+  }
+
+  return (0);
+}
+
+//---------------------------------------------------------------
+static GuiConst_TEXT GetCharCode(
+   GuiConst_TEXT PrefixRom * CharPtr,
+   GuiConst_INT16U CharCnt,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16U OmitCtrlCode)
+{
+  GuiConst_INT16U P;
+  GuiConst_TEXT CharCode, PreviousCharCode;
+
+  if (CharCnt > GuiConst_MAX_TEXT_LEN)
+    CharCnt = GuiConst_MAX_TEXT_LEN;
+
+  if (CharNo > CharCnt)
+    return 0;
+
+  if (CharCnt > GuiConst_MAX_TEXT_LEN)
+    CharCnt = GuiConst_MAX_TEXT_LEN;
+
+  if (OmitCtrlCode)
+  {
+    for (P = 0; P < CharNo + 1; P++)
+    {
+#ifdef GuiConst_CHARMODE_ANSI
+  #ifdef GuiConst_AVRGCC_COMPILER
+      CharCode = (unsigned GuiConst_CHAR) ReadBytePtr(CharPtr);
+  #else
+  #ifdef GuiConst_ICC_COMPILER
+      CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+  #else
+  #ifdef GuiConst_CODEVISION_COMPILER
+      CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+  #else
+      CharCode = (unsigned GuiConst_TEXT) *CharPtr;
+  #endif
+  #endif
+  #endif
+#else
+      CharCode = *((GuiConst_INT16U PrefixLocate *)CharPtr);
+#endif
+
+      if (P)
+      {
+        if ((CharCode == GuiLib_LINEFEED) ||
+           ((CharCode == ' ') && (PreviousCharCode == ' ')) ||
+           ((CharCode == ' ') && (PreviousCharCode == '-')))
+          CharNo++;
+      }
+      PreviousCharCode = CharCode;
+
+      CharPtr++;
+    }
+  }
+  else
+  {
+    CharPtr += CharNo;
+
+#ifdef GuiConst_CHARMODE_ANSI
+  #ifdef GuiConst_AVRGCC_COMPILER
+    CharCode = (unsigned GuiConst_CHAR) ReadBytePtr(CharPtr);
+  #else
+  #ifdef GuiConst_ICC_COMPILER
+    CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+  #else
+  #ifdef GuiConst_CODEVISION_COMPILER
+    CharCode = *((GuiConst_INT8U PrefixRom *)CharPtr);
+  #else
+    CharCode = (unsigned GuiConst_TEXT) *CharPtr;
+  #endif
+  #endif
+  #endif
+#else
+    CharCode = *((GuiConst_INT16U PrefixLocate *)CharPtr);
+#endif
+  }
+
+  return (GuiConst_TEXT)CharCode;
+}
+
+//------------------------------------------------------------------------------
+GuiConst_TEXT GuiLib_GetCharCode(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16U TextNo,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16U OmitCtrlCode)
+{
+  GuiConst_TEXT PrefixRom * CharPtr;
+
+  CharPtr = GuiLib_GetTextPtr(StructureNdx, TextNo);
+
+  if (CharPtr == 0) return 0;
+
+#ifdef GuiConst_CHARMODE_ANSI
+  return GetCharCode(CharPtr,
+                     strlen(CharPtr),
+                     CharNo,
+                     OmitCtrlCode);
+#else
+  return GetCharCode(CharPtr,
+                     GuiLib_UnicodeStrLen(CharPtr),
+                     CharNo,
+                     OmitCtrlCode);
+#endif
+}
+
+//------------------------------------------------------------------------------
+#ifdef GuiConst_BLINK_SUPPORT_ON
+GuiConst_TEXT GuiLib_GetBlinkingCharCode(
+   GuiConst_INT16U BlinkFieldNo,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16U OmitCtrlCode)
+{
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  GuiConst_INT16U StrLen;
+
+  if (BlinkFieldNo >= GuiConst_BLINK_FIELDS_MAX)
+    return 0;
+
+  if (sgl.BlinkTextItems[BlinkFieldNo].InUse)
+  {
+    #ifdef GuiConst_CHARMODE_ANSI
+    StrLen = strlen((GuiConst_TEXT*)sgl.BlinkTextItems[BlinkFieldNo].TextPtr);
+    #else
+    #ifdef GuiConst_CODEVISION_COMPILER
+    StrLen = GuiLib_UnicodeStrLen(
+       (GuiConst_TEXT*)sgl.BlinkTextItems[BlinkFieldNo].TextPtr);
+    #else
+    StrLen = GuiLib_UnicodeStrLen((GuiConst_TEXT*)sgl.BlinkTextItems[BlinkFieldNo].TextPtr);
+    #endif
+    #endif
+
+    return GetCharCode((GuiConst_TEXT PrefixRom *)sgl.BlinkTextItems[BlinkFieldNo].TextPtr,
+                       StrLen,
+                       CharNo,
+                       OmitCtrlCode);
+  }
+  else
+#endif
+    return 0;
+}
+#endif
+
+//------------------------------------------------------------------------------
+void GuiLib_SetLanguage(
+   GuiConst_INT16S NewLanguage)
+{
+  GuiLib_LanguageIndex = CheckLanguageIndex(NewLanguage);
+}
+
+//------------------------------------------------------------------------------
+static void InvertBox(void)
+{
+  if (sgl.DisplayWriting)
+    GuiLib_InvertBox(sgl.InvertBoxX1, sgl.InvertBoxY1, sgl.InvertBoxX2, sgl.InvertBoxY2);
+  sgl.InvertBoxOn = !sgl.InvertBoxOn;
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_InvertBoxStart(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2)
+{
+  GuiLib_InvertBoxStop();
+  sgl.InvertBoxX1 = X1;
+  sgl.InvertBoxY1 = Y1;
+  sgl.InvertBoxX2 = X2;
+  sgl.InvertBoxY2 = Y2;
+  InvertBox();
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_InvertBoxStop(void)
+{
+  if (sgl.InvertBoxOn)
+    InvertBox();
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_Refresh(void)
+{
+#ifdef WANT_DOUBLE_BUFFERING // Otherwise we are writing direct to the display - no need for this code
+  GuiConst_INT16S N, L;
+  GuiConst_INT8U RedrawBottomLevel;
+  ItemMemory     RemMemory;
+  GuiConst_INT8U ColorInvert;
+
+  GuiDisplay_Lock();
+
+  sgl.RefreshClock++;
+
+  RedrawBottomLevel = 0;
+
+  N = AutoRedraw_Reset();
+
+  memcpy(&RemMemory, &sgl.Memory, sizeof(ItemMemory));
+
+  while (N != -1)
+  {
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    if (!AutoRedraw_IsOnlyCursor(N))
+#endif
+    {
+      if (AutoRedraw_VarChanged(N) != 0)
+      {
+        memcpy(&sgl.CurItem, AutoRedraw_GetItem(N), sizeof(GuiLib_ItemRec));
+        memcpy(&sgl.Memory, AutoRedraw_GetItemMemory(N), sizeof(ItemMemory));
+
+        AutoRedraw_UpdateVar(N);
+
+        ColorInvert = GuiLib_COL_INVERT_IF_CURSOR;
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+        if (AutoRedraw_CheckCursorInheritance(N) == 0)
+          ColorInvert = GuiLib_COL_INVERT_ON;
+#endif
+
+        L = AutoRedraw_GetLevel(N);
+
+        if (AutoRedraw_ItemIsStruct(N))
+        {
+          N = AutoRedraw_DeleteStruct(N);
+          sgl.AutoRedrawUpdate = GuiLib_TRUE;
+          if (sgl.AutoRedrawInsertPoint >= 0)
+            N = AutoRedraw_GetNext(N);
+        }
+        else
+        {
+          sgl.AutoRedrawUpdate = GuiLib_FALSE;
+          N = AutoRedraw_GetNext(N);
+        }
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+        UpdateBackgroundBitmap();
+#endif
+
+        sgl.DisplayLevel = 0;
+        sgl.SwapColors = 0;
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+        if ((sgl.CurItem.TextPar[0].BitFlags & GuiLib_BITFLAG_BLINKTEXTFIELD) &&
+            (sgl.CurItem.BlinkFieldNo < GuiConst_BLINK_FIELDS_MAX) &&
+             sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].InUse &&
+             sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].Active &&
+             sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].BlinkBoxInverted)
+           GuiLib_InvertBox(sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].BlinkBoxX1,
+                            sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].BlinkBoxY1,
+                            sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].BlinkBoxX2,
+                            sgl.BlinkTextItems[sgl.CurItem.BlinkFieldNo].BlinkBoxY2);
+#endif
+#endif
+
+        DrawItem(ColorInvert);
+
+        if (L == 0)
+          RedrawBottomLevel = 1;
+
+        sgl.AutoRedrawUpdate = GuiLib_FALSE;
+      }
+      else
+        N = AutoRedraw_GetNext(N);
+    }
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+    else
+      N = AutoRedraw_GetNext(N);
+#endif
+  }
+
+  memcpy(&sgl.Memory, &RemMemory, sizeof(ItemMemory));
+
+
+  if ((sgl.DrawingLevel > 0) && RedrawBottomLevel && (sgl.TopLevelStructure != 0))
+  {
+    sgl.DisplayLevel = 0;
+    sgl.SwapColors = 0;
+    DrawStructure(sgl.TopLevelStructure, GuiLib_COL_INVERT_IF_CURSOR);
+    ResetLayerBufPtr();
+  }
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+  for (N = 0; N < GuiConst_BLINK_FIELDS_MAX; N++)
+    if (sgl.BlinkTextItems[N].InUse &&
+        sgl.BlinkTextItems[N].Active)
+    {
+      if (sgl.BlinkTextItems[N].BlinkBoxInverted !=
+          sgl.BlinkTextItems[N].BlinkBoxLast)
+      {
+         GuiLib_InvertBox(sgl.BlinkTextItems[N].BlinkBoxX1,
+                          sgl.BlinkTextItems[N].BlinkBoxY1,
+                          sgl.BlinkTextItems[N].BlinkBoxX2,
+                          sgl.BlinkTextItems[N].BlinkBoxY2);
+         sgl.BlinkTextItems[N].BlinkBoxInverted =
+            sgl.BlinkTextItems[N].BlinkBoxLast;
+      }
+      if (sgl.BlinkTextItems[N].BlinkBoxState < 255)
+      {
+        sgl.BlinkTextItems[N].BlinkBoxState--;
+        if (sgl.BlinkTextItems[N].BlinkBoxState == 0)
+        {
+          sgl.BlinkTextItems[N].BlinkBoxState = sgl.BlinkTextItems[N].BlinkBoxRate;
+          if (sgl.DisplayWriting)
+          {
+            GuiLib_InvertBox(sgl.BlinkTextItems[N].BlinkBoxX1,
+                             sgl.BlinkTextItems[N].BlinkBoxY1,
+                             sgl.BlinkTextItems[N].BlinkBoxX2,
+                             sgl.BlinkTextItems[N].BlinkBoxY2);
+            sgl.BlinkTextItems[N].BlinkBoxInverted =
+               !sgl.BlinkTextItems[N].BlinkBoxInverted;
+            sgl.BlinkTextItems[N].BlinkBoxLast =
+               sgl.BlinkTextItems[N].BlinkBoxInverted;
+          }
+        }
+      }
+    }
+  if (sgl.BlinkBoxRate)
+  {
+    if (sgl.BlinkBoxState < 255)
+      sgl.BlinkBoxState--;
+    if (sgl.BlinkBoxState == 0)
+    {
+      sgl.BlinkBoxState = sgl.BlinkBoxRate;
+      BlinkBox();
+    }
+  }
+#endif
+#endif
+
+  GuiDisplay_Unlock();
+
+  GuiDisplay_Refresh();
+#endif // WANT_DOUBLE_BUFFERING 
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_DrawChar(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U FontNo,
+   GuiConst_TEXT Character,
+   GuiConst_INTCOLOR Color)
+{
+  GuiLib_FontRecPtr Font;
+#ifndef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT8U PrefixRom *CharPtr;
+#endif
+  GuiConst_INT16S X1,Y1,X2,Y2;
+#ifdef GuiConst_REMOTE_FONT_DATA
+  GuiConst_INT32U CharNdx;
+#else
+#ifdef GuiConst_CHARMODE_UNICODE
+  GuiConst_INT32U CharNdx;
+#endif
+#endif
+
+  Font = (GuiLib_FontRecPtr) ReadWord(GuiFont_FontList[FontNo]);
+
+  Y -= ReadByte(Font->BaseLine);
+
+#ifdef GuiConst_CHARMODE_ANSI
+  #ifdef GuiConst_REMOTE_FONT_DATA
+  if ((Character < Font->FirstChar) || (Character > Font->LastChar))
+    CharNdx =
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[Font->IllegalCharNdx];
+  else
+    CharNdx =
+       (GuiConst_INT32U PrefixRom)GuiFont_ChPtrList[Font->FirstCharNdx +
+       (GuiConst_INT16U)Character - (GuiConst_INT16U)Font->FirstChar];
+  DrawChar(X, Y, Font, CharNdx, Color, 0);
+  #else
+  if ((Character < ReadByte(Font->FirstChar)) ||
+     (Character > ReadByte(Font->LastChar)))
+    CharPtr = (GuiConst_INT8U PrefixRom *)ReadWord(
+       GuiFont_ChPtrList[ReadWord(Font->IllegalCharNdx)]);
+  else
+    CharPtr = (GuiConst_INT8U PrefixRom *)ReadWord(
+       GuiFont_ChPtrList[ReadWord(Font->FirstCharNdx) +
+       (GuiConst_INT16U)Character -
+       (GuiConst_INT16U)ReadByte(Font->FirstChar)]);
+  DrawChar(X, Y, Font, CharPtr, Color, 0);
+  #endif
+#else
+  CharNdx = GetCharNdx(Font, Character);
+  #ifdef GuiConst_REMOTE_FONT_DATA
+  DrawChar(X, Y, Font, CharNdx, Color, 0);
+  #else
+  CharPtr = (GuiConst_INT8U PrefixRom *)ReadWord(GuiFont_ChPtrList[CharNdx]);
+  DrawChar(X, Y, Font, CharPtr, Color, 0);
+  #endif
+#endif
+
+#ifdef GuiConst_REMOTE_FONT_DATA
+  X1 = X + sgl.GuiLib_RemoteFontBuffer[GuiLib_CHR_XLEFT_OFS];
+  X2 = X1 + sgl.GuiLib_RemoteFontBuffer[GuiLib_CHR_XWIDTH_OFS] - 1;
+  Y1 = Y + sgl.GuiLib_RemoteFontBuffer[GuiLib_CHR_YTOP_OFS];
+  Y2 = Y1 + sgl.GuiLib_RemoteFontBuffer[GuiLib_CHR_YHEIGHT_OFS] - 1;
+#else
+  X1 = X + ReadBytePtr(CharPtr + GuiLib_CHR_XLEFT_OFS);
+  X2 = X1 + ReadBytePtr(CharPtr + GuiLib_CHR_XWIDTH_OFS) - 1;
+  Y1 = Y + ReadBytePtr(CharPtr + GuiLib_CHR_YTOP_OFS);
+  Y2 = Y1 + ReadBytePtr(CharPtr + GuiLib_CHR_YHEIGHT_OFS) - 1;
+#endif
+
+  GuiLib_MarkDisplayBoxRepaint(X1,Y1,X2,Y2);
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_DrawStr(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U FontNo,
+   GuiConst_TEXT *String,
+   GuiConst_INT8U Alignment,
+   GuiConst_INT8U PsWriting,
+   GuiConst_INT8U Transparent,
+   GuiConst_INT8U Underlining,
+   GuiConst_INT16S BackBoxSizeX,
+   GuiConst_INT16S BackBoxSizeY1,
+   GuiConst_INT16S BackBoxSizeY2,
+   GuiConst_INT8U BackBorderPixels,
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor)
+{
+  if (FontNo >= GuiFont_FontCnt)
+    return;
+  if (*String == 0)
+    return;
+
+  SetCurFont(FontNo);
+
+#ifdef GuiConst_AVRGCC_COMPILER
+  #ifdef GuiConst_CHARMODE_ANSI
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT8U *)String;
+  #else
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT16U *)String;
+  #endif
+#else
+#ifdef GuiConst_ICC_COMPILER
+  #ifdef GuiConst_CHARMODE_ANSI
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT8U *)String;
+  #else
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT16U *)String;
+  #endif
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+  #ifdef GuiConst_CHARMODE_ANSI
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT8U *)String;
+  #else
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT16U *)String;
+  #endif
+#else
+#ifdef GuiConst_RENESAS_COMPILER_FAR
+  #ifdef GuiConst_CHARMODE_ANSI
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT8U PrefixLocate *)String;
+  #else
+  sgl.CurItem.TextPtr[0] = (GuiConst_INT16U PrefixLocate *)String;
+  #endif
+#else
+  sgl.CurItem.TextPtr[0] = String;
+#endif
+#endif
+#endif
+#endif
+
+  sgl.CurItem.TextLength[0] = 0;
+  while (*String != 0)
+  {
+    sgl.CurItem.TextLength[0]++;
+    String++;
+  }
+  sgl.CurItem.X1 = X;
+  sgl.CurItem.Y1 = Y;
+  sgl.CurItem.TextPar[0].FontIndex = FontNo;
+  sgl.CurItem.TextPar[0].Alignment = Alignment;
+  sgl.CurItem.TextPar[0].Ps = PsWriting;
+  sgl.CurItem.TextPar[0].BitFlags = 0;
+  if (Underlining)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_UNDERLINE;
+  sgl.CurItem.TextPar[0].BackBoxSizeX = BackBoxSizeX;
+  sgl.CurItem.TextPar[0].BackBoxSizeY1 = BackBoxSizeY1;
+  sgl.CurItem.TextPar[0].BackBoxSizeY2 = BackBoxSizeY2;
+  sgl.CurItem.TextPar[0].BackBorderPixels = BackBorderPixels;
+  if (sgl.CurItem.TextPar[0].BackBoxSizeX > 0)
+    DrawBackBox(BackColor, Transparent, 0);
+
+#ifdef GuiConst_DISP_VAR_NOW
+  displayVarNow = 1;
+#endif
+
+  DrawText(sgl.CurItem.TextPtr[0],
+           sgl.CurItem.TextLength[0],
+           0,
+           ForeColor,
+           BackColor,
+           Transparent);
+
+#ifdef GuiConst_DISP_VAR_NOW
+  displayVarNow = 0;
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_DrawVar(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U FontNo,
+   void PrefixLocate *VarPtr,
+   GuiConst_INT8U VarType,
+   GuiConst_INT8U FormatterFormat,
+   GuiConst_INT8U FormatterFieldWidth,
+   GuiConst_INT8U FormatterAlignment,
+   GuiConst_INT8U FormatterDecimals,
+   GuiConst_INT8U FormatterShowSign,
+   GuiConst_INT8U FormatterZeroPadding,
+   GuiConst_INT8U FormatterTrailingZeros,
+   GuiConst_INT8U FormatterThousandsSeparator,
+   GuiConst_INT8U Alignment,
+   GuiConst_INT8U PsWriting,
+   GuiConst_INT8U Transparent,
+   GuiConst_INT8U Underlining,
+   GuiConst_INT16S BackBoxSizeX,
+   GuiConst_INT16S BackBoxSizeY1,
+   GuiConst_INT16S BackBoxSizeY2,
+   GuiConst_INT8U BackBorderPixels,
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor)
+{
+  GuiConst_INT32S VarValue;
+  GuiConst_INT16U StrLen;
+#ifndef GuiConst_CHARMODE_ANSI
+  GuiConst_INT16U P;
+#endif
+  GuiConst_TEXT PrefixGeneric *CharPtr;
+
+  if (FontNo >= GuiFont_FontCnt)
+    return;
+
+  SetCurFont(FontNo);
+
+  sgl.CurItem.VarPtr = VarPtr;
+  sgl.CurItem.VarType = VarType;
+  sgl.CurItem.FormatFormat = FormatterFormat;
+  sgl.CurItem.FormatFieldWidth = FormatterFieldWidth;
+  sgl.CurItem.FormatAlignment = FormatterAlignment;
+  sgl.CurItem.FormatDecimals = FormatterDecimals;
+  sgl.CurItem.TextPar[0].BitFlags = 0;
+  if (FormatterShowSign)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATSHOWSIGN;
+  if (FormatterZeroPadding)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATZEROPADDING;
+  if (FormatterTrailingZeros)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATTRAILINGZEROS;
+  if (FormatterThousandsSeparator)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_FORMATTHOUSANDSSEP;
+  sgl.CurItem.X1 = X;
+  sgl.CurItem.Y1 = Y;
+  sgl.CurItem.TextPar[0].FontIndex = FontNo;
+  sgl.CurItem.TextPar[0].Alignment = Alignment;
+  sgl.CurItem.TextPar[0].Ps = PsWriting;
+  if (Underlining)
+    sgl.CurItem.TextPar[0].BitFlags |= GuiLib_BITFLAG_UNDERLINE;
+  sgl.CurItem.TextPar[0].BackBoxSizeX = BackBoxSizeX;
+  sgl.CurItem.TextPar[0].BackBoxSizeY1 = BackBoxSizeY1;
+  sgl.CurItem.TextPar[0].BackBoxSizeY2 = BackBoxSizeY2;
+  sgl.CurItem.TextPar[0].BackBorderPixels = BackBorderPixels;
+  if (sgl.CurItem.TextPar[0].BackBoxSizeX > 0)
+    DrawBackBox(BackColor, Transparent, 0);
+
+#ifdef GuiConst_DISP_VAR_NOW
+  displayVarNow = 1;
+#endif
+
+  if (sgl.CurItem.VarType == GuiLib_VAR_STRING)
+  {
+    CharPtr = (GuiConst_TEXT PrefixLocate *)sgl.CurItem.VarPtr;
+#ifdef GuiConst_CHARMODE_ANSI
+    StrLen = strlen(CharPtr);
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+    StrLen = GuiLib_UnicodeStrLen((GuiConst_TEXT*)CharPtr);
+#else
+    StrLen = GuiLib_UnicodeStrLen(CharPtr);
+#endif
+#endif
+  }
+  else
+  {
+    VarValue = ReadVar(sgl.CurItem.VarPtr, sgl.CurItem.VarType);
+    StrLen = DataNumStr(VarValue, sgl.CurItem.VarType, 0);
+#ifdef GuiConst_CHARMODE_ANSI
+    CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumTextStr;
+#else
+    for (P = 0; P <= StrLen; P++)
+      sgl.VarNumUnicodeTextStr[P] = sgl.VarNumTextStr[P];
+    CharPtr = (GuiConst_TEXT PrefixGeneric *) sgl.VarNumUnicodeTextStr;
+#endif
+  }
+
+  DrawText(CharPtr,
+           StrLen,
+           0,
+           ForeColor,
+           BackColor,
+           Transparent);
+
+#ifdef GuiConst_DISP_VAR_NOW
+  displayVarNow = 0;
+#endif
+}
+
+//------------------------------------------------------------------------------
+void GuiLib_TestPattern(void)
+{
+  GuiLib_HLine(0, 31, 0, GuiConst_PIXEL_ON);
+  GuiLib_VLine(0, 1, 31, GuiConst_PIXEL_ON);
+  GuiLib_HLine(2, 8, 2, GuiConst_PIXEL_ON);
+  GuiLib_HLine(11, 16, 2, GuiConst_PIXEL_ON);
+  GuiLib_VLine(4, 4, 10, GuiConst_PIXEL_ON);
+  GuiLib_VLine(4, 13, 18, GuiConst_PIXEL_ON);
+}
+
+#include "GuiComponents.h"
+
+#ifdef GuiConst_REMOTE_DATA
+//------------------------------------------------------------------------------
+GuiConst_INT8U GuiLib_RemoteCheck(void)
+{
+  union
+  {
+    GuiConst_INT8U Bytes[4];
+    GuiConst_INT32U IdInFile;
+  } RemoteIdUnion;
+  GuiConst_INT8U ok;
+
+  GuiLib_RemoteDataReadBlock(0, 4, RemoteIdUnion.Bytes);
+  ok = (RemoteIdUnion.IdInFile == GuiConst_REMOTE_ID);
+
+#ifdef GuiConst_REMOTE_TEXT_DATA
+  GuiLib_RemoteTextReadBlock(0, 4, RemoteIdUnion.Bytes);
+  ok = ok && (RemoteIdUnion.IdInFile == GuiConst_REMOTE_ID);
+#endif
+
+  return (ok);
+}
+#endif
+
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiLib.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiLib.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,3742 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/* ************************************************************************ */
+
+
+// =============================================================================
+#ifndef __GUILIB_H
+#define __GUILIB_H
+#include "GuiConst.h"
+#include "GuiVar.h"
+#include "GuiDisplay.h"
+
+
+#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */
+extern "C" {
+#endif
+
+// =============================================================================
+#ifdef GuiConst_CODEVISION_COMPILER
+// Remove warnings about unused functions
+#pragma used+
+#endif
+
+
+// =============================================================================
+#ifdef GuiConst_COLOR_DEPTH_5
+  #define GuiLib_COLOR_UNIT_8
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_8
+  #define GuiLib_COLOR_UNIT_8
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_12
+  #define GuiLib_COLOR_UNIT_16
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_15
+  #define GuiLib_COLOR_UNIT_16
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_16
+  #define GuiLib_COLOR_UNIT_16
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_18
+  #define GuiLib_COLOR_UNIT_24
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_24
+  #define GuiLib_COLOR_UNIT_24
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+#ifdef GuiConst_COLOR_DEPTH_32
+  #define GuiLib_COLOR_UNIT_32
+  #define GuiLib_LAYERS_SUPPORTED
+#endif
+
+
+// =============================================================================
+#ifdef GuiConst_AVR_COMPILER_FLASH_RAM
+  #define PrefixRom __flash
+  #define PrefixGeneric __generic
+  #define PrefixReentrant
+  #define PrefixLocate
+#else
+#ifdef GuiConst_PICC_COMPILER_ROM
+  #define PrefixRom rom
+  #define PrefixGeneric
+  #define PrefixReentrant
+  #define PrefixLocate
+#else
+#ifdef GuiConst_KEIL_COMPILER_REENTRANT
+  #define PrefixRom
+  #define PrefixGeneric
+  #define PrefixReentrant reentrant
+  #define PrefixLocate
+#else
+#ifdef GuiConst_ICC_COMPILER
+  #define PrefixRom const
+  #define PrefixGeneric
+  #define PrefixReentrant
+  #define PrefixLocate
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+  #define PrefixRom flash
+  #define PrefixGeneric
+  #define PrefixReentrant
+  #define PrefixLocate
+#else
+#ifdef GuiConst_RENESAS_COMPILER_FAR
+  #define PrefixRom _far
+  #define PrefixGeneric _far
+  #define PrefixReentrant
+  #define PrefixLocate _far
+#else
+  #define PrefixRom
+  #define PrefixGeneric
+  #define PrefixReentrant
+  #define PrefixLocate
+#endif
+#endif
+#endif
+#endif
+#endif
+#endif
+
+
+// =============================================================================
+#ifdef GuiConst_COLOR_DEPTH_1
+  #define GuiLib_COLOR_BYTESIZE_1
+#endif
+#ifdef GuiConst_COLOR_DEPTH_2
+  #define GuiLib_COLOR_BYTESIZE_1
+#endif
+#ifdef GuiConst_COLOR_DEPTH_4
+  #define GuiLib_COLOR_BYTESIZE_1
+#endif
+#ifdef GuiConst_COLOR_DEPTH_5
+  #define GuiLib_COLOR_BYTESIZE_1
+#endif
+#ifdef GuiConst_COLOR_DEPTH_8
+  #define GuiLib_COLOR_BYTESIZE_1
+#endif
+#ifdef GuiConst_COLOR_DEPTH_12
+  #define GuiLib_COLOR_BYTESIZE_2
+#endif
+#ifdef GuiConst_COLOR_DEPTH_15
+  #define GuiLib_COLOR_BYTESIZE_2
+#endif
+#ifdef GuiConst_COLOR_DEPTH_16
+  #define GuiLib_COLOR_BYTESIZE_2
+#endif
+#ifdef GuiConst_COLOR_DEPTH_18
+  #define GuiLib_COLOR_BYTESIZE_3
+#endif
+#ifdef GuiConst_COLOR_DEPTH_24
+  #define GuiLib_COLOR_BYTESIZE_3
+#endif
+#ifdef GuiConst_COLOR_DEPTH_32
+  #define GuiLib_COLOR_BYTESIZE_3
+#endif
+
+#define GuiLib_NO_CURSOR                    -1
+
+#define GuiLib_NO_RESET_AUTO_REDRAW         0
+#define GuiLib_RESET_AUTO_REDRAW            1
+
+#define GuiLib_ALIGN_NOCHANGE               0
+#define GuiLib_ALIGN_LEFT                   1
+#define GuiLib_ALIGN_CENTER                 2
+#define GuiLib_ALIGN_RIGHT                  3
+
+#define GuiLib_PS_NOCHANGE                  0
+#define GuiLib_PS_OFF                       1
+#define GuiLib_PS_ON                        2
+#define GuiLib_PS_NUM                       3
+
+#define GuiLib_TRANSPARENT_OFF              0
+#define GuiLib_TRANSPARENT_ON               1
+
+#define GuiLib_UNDERLINE_OFF                0
+#define GuiLib_UNDERLINE_ON                 1
+
+#define GuiLib_BBP_NONE                     0
+#define GuiLib_BBP_LEFT                     1
+#define GuiLib_BBP_RIGHT                    2
+#define GuiLib_BBP_TOP                      4
+#define GuiLib_BBP_BOTTOM                   8
+
+#define GuiLib_VAR_BOOL                     0
+#define GuiLib_VAR_UNSIGNED_CHAR            1
+#define GuiLib_VAR_SIGNED_CHAR              2
+#define GuiLib_VAR_UNSIGNED_INT             3
+#define GuiLib_VAR_SIGNED_INT               4
+#define GuiLib_VAR_UNSIGNED_LONG            5
+#define GuiLib_VAR_SIGNED_LONG              6
+#define GuiLib_VAR_FLOAT                    7
+#define GuiLib_VAR_DOUBLE                   8
+#define GuiLib_VAR_STRING                   9
+#define GuiLib_VAR_COLOR                    10
+#define GuiLib_VAR_NONE                     255
+
+#define GuiLib_FORMAT_DEC                   0
+#define GuiLib_FORMAT_EXP                   1
+#define GuiLib_FORMAT_HEX_POSTFIX_H         2
+#define GuiLib_FORMAT_TIME_MMSS             3
+#define GuiLib_FORMAT_TIME_HHMM_24          4
+#define GuiLib_FORMAT_TIME_HHMMSS_24        5
+#define GuiLib_FORMAT_TIME_HHMM_12_ampm     6
+#define GuiLib_FORMAT_TIME_HHMMSS_12_ampm   7
+#define GuiLib_FORMAT_TIME_HHMM_12_AMPM     8
+#define GuiLib_FORMAT_TIME_HHMMSS_12_AMPM   9
+#define GuiLib_FORMAT_HEX_PREFIX_0X         10
+#define GuiLib_FORMAT_HEX_CLEAN             11
+
+#define GuiLib_FORMAT_ALIGNMENT_LEFT        0
+#define GuiLib_FORMAT_ALIGNMENT_CENTER      1
+#define GuiLib_FORMAT_ALIGNMENT_RIGHT       2
+
+#define GuiLib_DECIMAL_PERIOD               0
+#define GuiLib_DECIMAL_COMMA                1
+
+#define GuiLib_LANGUAGE_TEXTDIR_LEFTTORIGHT 0
+#define GuiLib_LANGUAGE_TEXTDIR_RIGHTTOLEFT 1
+
+#define GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX   0
+#define GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK  1
+#define GuiLib_TEXTBOX_SCROLL_AT_HOME       2
+#define GuiLib_TEXTBOX_SCROLL_AT_END        3
+#define GuiLib_TEXTBOX_SCROLL_ABOVE_HOME    4
+#define GuiLib_TEXTBOX_SCROLL_BELOW_END     5
+
+#define GuiLib_BUTTON_STATE_UP              0
+#define GuiLib_BUTTON_STATE_DOWN            1
+#define GuiLib_BUTTON_STATE_DISABLED        2
+
+#define GuiLib_CHECKBOX_OFF                 0
+#define GuiLib_CHECKBOX_ON                  1
+
+#define GuiLib_RADIOBUTTON_OFF             -1
+
+
+#define GuiLib_NO_COLOR                     0x10000000
+
+
+// =============================================================================
+typedef struct
+{
+  GuiConst_INT16S ByteBegin;
+  GuiConst_INT16S ByteEnd;
+}
+GuiLib_DisplayLineRec;
+
+#ifdef GuiConst_CODEVISION_COMPILER
+typedef flash struct
+#else
+typedef struct
+#endif
+{
+#ifdef GuiConst_CHARMODE_ANSI
+  GuiConst_INT8U FirstChar;
+  GuiConst_INT8U LastChar;
+  GuiConst_INT16U FirstCharNdx;
+  GuiConst_INT16U IllegalCharNdx;
+#else
+  GuiConst_INT16U CharCount;
+  GuiConst_INT32U FirstCharNdx;
+#endif
+  GuiConst_INT8U XSize, YSize;
+#ifdef GuiConst_ADV_FONTS_ON
+  GuiConst_INT8U ColorDepth;
+#endif
+  GuiConst_INT8U TopLine, MidLine, BaseLine;
+  GuiConst_INT8U Cursor1, Cursor2;
+  GuiConst_INT8U Underline1, Underline2;
+  GuiConst_INT8U BoxWidth;
+  GuiConst_INT8U PsNumWidth;
+  GuiConst_INT8U PsSpace;
+  GuiConst_INT8U LineSize;
+}
+GuiLib_FontRec;
+
+#ifdef GuiConst_ICC_COMPILER
+typedef GuiLib_FontRec PrefixRom *GuiLib_FontRecPtr;
+typedef const GuiLib_FontRec * GuiLib_FontRecConstPtr;
+#else
+#ifdef GuiConst_CODEVISION_COMPILER
+typedef flash GuiLib_FontRec *GuiLib_FontRecPtr;
+typedef flash GuiLib_FontRec *GuiLib_FontRecConstPtr;
+#else
+typedef GuiLib_FontRec PrefixRom *GuiLib_FontRecPtr;
+typedef const GuiLib_FontRec PrefixRom *GuiLib_FontRecConstPtr;
+#endif
+#endif
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+typedef struct
+{
+  GuiConst_INT32S X;
+  GuiConst_INT32S Y;
+} GuiLib_GraphDataPoint;
+#endif
+
+// =============================================================================
+#ifdef GuiConst_DISPLAY_BUFFER_EASYGUI
+#ifdef GuiConst_COLOR_DEPTH_1
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#ifdef GuiConst_COLOR_DEPTH_2
+#ifdef GuiConst_COLOR_PLANES_2
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[2][GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#else
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#endif
+#ifdef GuiConst_COLOR_DEPTH_4
+#ifdef GuiConst_COLOR_PLANES_4
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[4][GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#else
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#endif
+#ifdef GuiConst_COLOR_DEPTH_5
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#ifdef GuiConst_COLOR_DEPTH_8
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#ifdef GuiConst_COLOR_DEPTH_12
+typedef union
+{
+  GuiConst_INT8U  Bytes[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+  GuiConst_INT16U Words[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE / 2];
+} DisplayBufUnion;
+extern DisplayBufUnion GuiLib_DisplayBuf;
+#endif
+#ifdef GuiConst_COLOR_DEPTH_15
+typedef union
+{
+  GuiConst_INT8U  Bytes[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+  GuiConst_INT16U Words[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE / 2];
+} DisplayBufUnion;
+extern DisplayBufUnion GuiLib_DisplayBuf;
+#endif
+#ifdef GuiConst_COLOR_DEPTH_16
+typedef union
+{
+  GuiConst_INT8U  Bytes[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+  GuiConst_INT16U Words[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE / 2];
+} DisplayBufUnion;
+extern DisplayBufUnion GuiLib_DisplayBuf;
+#endif
+#ifdef GuiConst_COLOR_DEPTH_18
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#ifdef GuiConst_COLOR_DEPTH_24
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#ifdef GuiConst_COLOR_DEPTH_32
+extern GuiConst_INT8U
+  GuiLib_DisplayBuf[GuiConst_BYTE_LINES][GuiConst_BYTES_PR_LINE];
+#endif
+#endif
+
+extern GuiLib_DisplayLineRec GuiLib_DisplayRepaint[GuiConst_BYTE_LINES];
+#ifdef GuiConst_VNC_REMOTE_SUPPORT_ON
+extern GuiLib_DisplayLineRec GuiLib_VncRepaint[GuiConst_BYTE_LINES];
+#endif // GuiConst_VNC_REMOTE_SUPPORT_ON
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+extern GuiConst_INT16S GuiLib_ActiveCursorFieldNo;
+#endif
+extern GuiConst_INT16S GuiLib_LanguageIndex;
+extern GuiConst_INT16S GuiLib_CurStructureNdx;
+#ifdef GuiConst_ALLOW_UPSIDEDOWN_AT_RUNTIME
+extern GuiConst_INT8U GuiLib_DisplayUpsideDown;
+#endif
+
+#ifdef GuiConst_REMOTE_DATA
+extern void (*GuiLib_RemoteDataReadBlock) (
+   GuiConst_INT32U SourceOffset,
+   GuiConst_INT32U SourceSize,
+   GuiConst_INT8U * TargetAddr);
+#ifdef GuiConst_REMOTE_TEXT_DATA
+extern void (*GuiLib_RemoteTextReadBlock) (
+   GuiConst_INT32U SourceOffset,
+   GuiConst_INT32U SourceSize,
+   void * TargetAddr);
+#endif
+#endif
+
+
+// =============================================================================
+#include "GuiFont.h"
+#include "GuiStruct.h"
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DegToRad
+// ===============
+//
+// Converts angle from degrees to radians.
+//
+// Input:
+// ------
+// Angle in degrees * 10 (1° = 10)
+//
+// Output:
+// -------
+// Angle in radians * 4096 (1 rad = 4096)
+//
+extern GuiConst_INT32S GuiLib_DegToRad(
+   GuiConst_INT32S Angle);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_RadToDeg
+// ===============
+//
+// Converts angle from radians to degrees.
+//
+// Input:
+// ------
+// Angle in radians * 4096 (1 rad = 4096)
+//
+// Output:
+// -------
+// Angle in degrees * 10 (1° = 10)
+//
+extern GuiConst_INT32S GuiLib_RadToDeg(
+   GuiConst_INT32S Angle);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_SinRad
+// =============
+//
+// Calculates Sin(angle), where angle is in radians (factored).
+//
+// Input:
+// ------
+// Angle in radians * 4096 (1 rad = 4096)
+//
+// Output:
+// -------
+// Sine of angle in 1/4096 units
+//
+extern GuiConst_INT32S GuiLib_SinRad(
+   GuiConst_INT32S Angle);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_SinDeg
+// =============
+//
+// Calculates Sin(angle), where angle is in degrees (factored).
+//
+// Input:
+// ------
+// Angle in degrees * 10 (1° = 10)
+//
+// Output:
+// -------
+// Sine of angle in 1/4096 units
+//
+extern GuiConst_INT32S GuiLib_SinDeg(
+   GuiConst_INT32S Angle);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_CosRad
+// =============
+//
+// Calculates Cos(angle), where angle is in radians (factored).
+//
+// Input:
+// ------
+// Angle in radians * 4096 (1 rad = 4096)
+//
+// Output:
+// -------
+// Cosine of angle in 1/4096 units
+//
+extern GuiConst_INT32S GuiLib_CosRad(
+   GuiConst_INT32S Angle);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_CosDeg
+// =============
+//
+// Calculates Cos(angle), where angle is in degrees (factored).
+//
+// Input:
+// ------
+// Angle in degrees * 10 (1° = 10)
+//
+// Output:
+// -------
+// Cosine of angle in 1/4096 units
+//
+extern GuiConst_INT32S GuiLib_CosDeg(
+   GuiConst_INT32S Angle);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Sqrt
+// ===========
+//
+// Returns Square root of argument.
+//
+// Input:
+// ------
+// Argument
+//
+// Output:
+// -------
+// Square root of argument
+//
+extern GuiConst_INT32U GuiLib_Sqrt(
+   GuiConst_INT32U X);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetRedRgbColor
+// =====================
+//
+// Extracts red component from RGB color.
+//
+// Input:
+// ------
+// 24 bit RGB color
+//
+// Output:
+// -------
+// 8 bit red color component
+//
+extern GuiConst_INT8U GuiLib_GetRedRgbColor(
+   GuiConst_INT32U RgbColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_SetRedRgbColor
+// =====================
+//
+// Sets red component from RGB color.
+//
+// Input:
+// ------
+// 24 bit RGB color
+// 8 bit red color component
+//
+// Output:
+// -------
+// 24 bit RGB color
+//
+extern GuiConst_INT32U GuiLib_SetRedRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT8U RedColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetGreenRgbColor
+// =======================
+//
+// Extracts green component from RGB color.
+//
+// Input:
+// ------
+// 24 bit RGB color
+//
+// Output:
+// -------
+// 8 bit green color component
+//
+extern GuiConst_INT8U GuiLib_GetGreenRgbColor(
+   GuiConst_INT32U RgbColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_SetGreenRgbColor
+// =======================
+//
+// Sets green component from RGB color.
+//
+// Input:
+// ------
+// 24 bit RGB color
+// 8 bit green color component
+//
+// Output:
+// -------
+// 24 bit RGB color
+//
+extern GuiConst_INT32U GuiLib_SetGreenRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT8U GreenColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetBlueRgbColor
+// ======================
+//
+// Extracts blue component from RGB color.
+//
+// Input:
+// ------
+// 24 bit RGB color
+//
+// Output:
+// -------
+// 8 bit blue color component
+//
+extern GuiConst_INT8U GuiLib_GetBlueRgbColor(
+   GuiConst_INT32U RgbColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_SetBlueRgbColor
+// ======================
+//
+// Sets blue component from RGB color.
+//
+// Input:
+// ------
+// 24 bit RGB color
+// 8 bit blue color component
+//
+// Output:
+// -------
+// 24 bit RGB color
+//
+extern GuiConst_INT32U GuiLib_SetBlueRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT8U BlueColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_RgbToPixelColor
+// ======================
+//
+// Translates from RGB color to proper pixel value for display controller
+// color setup.
+//
+// Input:
+// ------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_RgbToPixelColor(
+   GuiConst_INT32U RgbColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Rgb888ToPixelColor
+// =========================
+//
+// Translates from RGB color components to proper pixel value for display
+// controller color setup.
+//
+// Input:
+// ------
+// Red color value
+// Green color value
+// Blue color value
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+GuiConst_INTCOLOR GuiLib_Rgb888ToPixelColor(
+   GuiConst_INT8U Red, GuiConst_INT8U Green, GuiConst_INT8U Blue);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_PixelToRgbColor
+// ======================
+//
+// Translates from pixel value for display controller color setup to RGB color.
+//
+// Input:
+// ------
+// Encoded pixel color value
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_PixelToRgbColor(
+   GuiConst_INTCOLOR PixelColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_RgbColorToGrayScale
+// ==========================
+//
+// Translates from RGB color to 0~255 gray scale value.
+//
+// Input:
+// ------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+// Output:
+// -------
+// Gray scale value, 0~255
+//
+extern GuiConst_INT8U GuiLib_RgbColorToGrayScale(
+   GuiConst_INT32U RgbColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Rgb888ColorToGrayScale
+// =============================
+//
+// Translates from RGB color components to a 0~255 grayscale value.
+//
+// Input:
+// ------
+// Red color value
+// Green color value
+// Blue color value
+//
+// Output:
+// -------
+// Gray scale value, 0~255
+//
+GuiConst_INT8U GuiLib_Rgb888ColorToGrayScale(
+   GuiConst_INT8U Red, GuiConst_INT8U Green, GuiConst_INT8U Blue);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GrayScaleToRgbColor
+// ==========================
+//
+// Translates from 0~255 gray scale value to RGB color.
+//
+// Input:
+// ------
+// Gray scale value, 0~255
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_GrayScaleToRgbColor(
+   GuiConst_INT8U GrayValue);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_PixelColorToGrayScale
+// ============================
+//
+// Translates from pixel value for display controller color setup to 0~255 gray
+// scale value.
+//
+// Input:
+// ------
+// Encoded pixel color value
+//
+// Output:
+// -------
+// Gray scale value, 0~255
+//
+extern GuiConst_INT8U GuiLib_PixelColorToGrayScale(
+   GuiConst_INTCOLOR PixelColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GrayScaleToPixelColor
+// ============================
+//
+// Translates from gray scale value to display controller color setup.
+//
+// Input:
+// ------
+// Gray scale value, 0~255
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_GrayScaleToPixelColor(
+   GuiConst_INT8U GrayValue);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_BrightenRgbColor
+// =======================
+//
+// Brightens RGB color 0~1000‰, 1000‰ results in pure white.
+//
+// Input:
+// ------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+// Brighten value, 0 ~ 1000‰
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_BrightenRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_BrightenPixelColor
+// =========================
+//
+// Brightens color in display controller color setup 0~1000‰, 1000‰ results in
+// pure white.
+//
+// Input:
+// ------
+// Encoded pixel color value
+// Brighten value, 0 ~ 1000‰
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_BrightenPixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DarkenRgbColor
+// =====================
+//
+// Darkens RGB color 0~1000‰, 1000‰ results in pure black.
+//
+// Input:
+// ------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+// Darken value, 0 ~ 1000‰
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_DarkenRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DarkenPixelColor
+// =======================
+//
+// Darkens color in display controller color setup 0~1000‰, 1000‰ results in
+// pure black.
+//
+// Input:
+// ------
+// Encoded pixel color value
+// Darken value, 0 ~ 1000‰
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_DarkenPixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_MiddleRgbColor
+// =====================
+//
+// Gives middle color, between color 1 and color 2.
+// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives color 2.
+//
+// Input:
+// ------
+// RGB color 1 value
+// RGB color 2 value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+// Color ratio, 0 ~ 1000‰
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_MiddleRgbColor(
+   GuiConst_INT32U RgbColor1,
+   GuiConst_INT32U RgbColor2,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_MiddlePixelColor
+// =======================
+//
+// Gives middle color in display controller color setup,
+// between color 1 and color 2.
+// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives color 2.
+//
+// Input:
+// ------
+// Encoded pixel color 1 value
+// Encoded pixel color 2 value
+// Color ratio, 0 ~ 1000‰
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_MiddlePixelColor(
+   GuiConst_INTCOLOR PixelColor1,
+   GuiConst_INTCOLOR PixelColor2,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DesaturateRgbColor
+// =========================
+//
+// Removes saturation from color, turning it towards gray color.
+// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives gray.
+//
+// Input:
+// ------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+// Desaturation ratio, 0 ~ 1000‰
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_DesaturateRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DesaturatePixelColor
+// ===========================
+//
+// Removes saturation from color, turning it towards gray color.
+// Ratio in 0~1000‰, 0‰ gives color 1, 1000‰ gives gray.
+//
+// Input:
+// ------
+// Encoded pixel color value
+// Color ratio, 0 ~ 1000‰
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_DesaturatePixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_AccentuateRgbColor
+// =========================
+//
+// Accentuates RGB color. Colors with less than 50% mean gray are made darker,
+// otherwise brighter. Amount in ‰, 0‰ gives no change, 1000‰ gives pure black
+// or white.
+//
+// Input:
+// ------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+// Accentuate value, 0 ~ 1000‰
+//
+// Output:
+// -------
+// RGB color value
+// (32 bit, 24 bits used, low byte = Red, middle byte = Green, high byte = Blue)
+//
+extern GuiConst_INT32U GuiLib_AccentuateRgbColor(
+   GuiConst_INT32U RgbColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_AccentuatePixelColor
+// ===========================
+//
+// Accentuates color in display controller color setup. Colors with less than
+// 50% mean gray are made darker, otherwise brighter. Amount in ‰, 0‰ gives no
+// change, 1000‰ gives pure black or white.
+//
+// Input:
+// ------
+// Encoded pixel color value
+// Accentuate value, 0 ~ 1000‰
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+extern GuiConst_INTCOLOR GuiLib_AccentuatePixelColor(
+   GuiConst_INTCOLOR PixelColor,
+   GuiConst_INT16U Amount);
+// -----------------------------------------------------------------------------
+
+// =============================================================================
+// GuiLib_SetButtonDisabledColor
+// =============================
+//
+// Override automatic generation of button disabled color with the specified
+// pixel color value.
+//
+// Input:
+// ------
+// Encoded pixel color value
+//
+// Output:
+// -------
+// Encoded pixel color value
+//
+GuiConst_INTCOLOR GuiLib_SetButtonDisabledColor(GuiConst_INTCOLOR PixelColor);
+// -----------------------------------------------------------------------------
+
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+
+// =============================================================================
+// GuiLib_ResetClipping
+// ====================
+//
+// Resets clipping.
+// Drawing can be limited to a rectangular portion of the screen,
+// this routine resets the clipping limits to the entire screen.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ResetClipping(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_SetClipping
+// ==================
+//
+// Sets clipping.
+// Drawing can be limited to a rectangular portion of the screen,
+// this routine sets the clipping limits expressed as two opposite
+// corner coordinates.
+//
+// Input:
+// ------
+// Rectangle coordinates
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_SetClipping(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+// =============================================================================
+// GuiLib_ResetDisplayRepaint
+// ==========================
+//
+// Resets all repainting scan line markers.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ResetDisplayRepaint(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_MarkDisplayBoxRepaint
+// ============================
+//
+// Sets the repainting scan line markers, indicating that all pixels inside the
+// specified rectangle must be repainted.
+//
+// Input:
+// ------
+// Rectangle coordinates
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_MarkDisplayBoxRepaint(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ClearDisplay
+// ===================
+//
+// Clears the screen.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ClearDisplay(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Dot
+// ==========
+//
+// Draws a single pixel.
+//
+// Input:
+// ------
+// Coordinates
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Dot(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetDot
+// =============
+//
+// Returns the color of a single pixel.
+//
+// Input:
+// ------
+// Coordinates
+//
+// Output:
+// -------
+// Color
+//
+extern GuiConst_INTCOLOR GuiLib_GetDot(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Line
+// ===========
+//
+// Draws a line.
+//
+// Input:
+// ------
+// Coordinates
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Line(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_LinePattern
+// ==================
+//
+// Draws a patterned line.
+//
+// Input:
+// ------
+// Coordinates
+// Line pattern (8 pixel pattern)
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_LinePattern(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INT8U LinePattern,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_HLine
+// ============
+//
+// Draws a horizontal line.
+//
+// Input:
+// ------
+// Coordinates
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_HLine(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_VLine
+// ============
+//
+// Draws a vertical line.
+//
+// Input:
+// ------
+// Coordinates
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_VLine(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Box
+// ==========
+//
+// Draws a single pixel wide rectangle.
+//
+// Input:
+// ------
+// Coordinates
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Box(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_FillBox
+// ==============
+//
+// Draws a filled rectangle.
+//
+// Input:
+// ------
+// Coordinates
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_FillBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_BorderBox
+// ================
+//
+// Draws a filled rectangle with single pixel border.
+//
+// Input:
+// ------
+// Coordinates
+// Border and fill colors
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_BorderBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INTCOLOR BorderColor,
+   GuiConst_INTCOLOR FillColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_InvertBox
+// ================
+//
+// Inverts a block.
+//
+// Input:
+// ------
+// Coordinates
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_InvertBox(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Circle
+// =============
+//
+// Draws a filled or framed circle with single pixel width border.
+//
+// Input:
+// ------
+// Center coordinate
+// Radius
+// Border color, GuiLib_NO_COLOR means same color as fill color
+// Fill color, GuiLib_NO_COLOR means no filling
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Circle(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius,
+   GuiConst_INT32S BorderColor,
+   GuiConst_INT32S FillColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Ellipse
+// ==============
+//
+// Draws a filled or framed ellipse with single pixel width border.
+//
+// Input:
+// ------
+// Center coordinate
+// Horizontal and vertical radii
+// Border color, GuiLib_NO_COLOR means same color as fill color
+// Fill color, GuiLib_NO_COLOR means no filling
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Ellipse(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U Radius1,
+   GuiConst_INT16U Radius2,
+   GuiConst_INT32S BorderColor,
+   GuiConst_INT32S FillColor);
+// -----------------------------------------------------------------------------
+
+
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+
+// =============================================================================
+// GuiLib_ShowBitmap
+// =================
+//
+// Displays a stored bitmap.
+//
+// Input:
+// ------
+// Bitmap index in GuiStruct_BitmapPtrList
+// Coordinates for upper left corner
+// Transparent background color, -1 means no transparency
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ShowBitmap(
+   GuiConst_INT16U BitmapIndex,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT32S TranspColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ShowBitmapAt
+// ===================
+//
+// Displays a bitmap at a specific address.
+// The data in the memory area must conform to the format explained in the
+// easyGUI user manual.
+//
+// Input:
+// ------
+// Pointer to memory area
+// Coordinates for upper left corner
+// Transparent background color, -1 means no transparency
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ShowBitmapAt(
+   GuiConst_INT8U * BitmapPtr,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT32S TranspColor);
+// -----------------------------------------------------------------------------
+
+
+// ============================================================================
+// GuiLib_ShowBitmapArea
+// =====================
+//
+// Displays part of a stored bitmap.
+//
+// Input:
+// ------
+// Bitmap index in GuiStruct_BitmapPtrList
+// Starting coordinates for upper left corner of bitmap
+// Absolute coordinates for upper left and lower right corner of displayed area
+// Transparent background color, -1 means no transparency
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ShowBitmapArea(
+   GuiConst_INT16U BitmapIndex,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S AX1,
+   GuiConst_INT16S AY1,
+   GuiConst_INT16S AX2,
+   GuiConst_INT16S AY2,
+   GuiConst_INT32S TranspColor);
+// -----------------------------------------------------------------------------
+
+
+// ============================================================================
+// GuiLib_ShowBitmapAreaAt
+// =======================
+//
+// Displays part of a bitmap at a specific address.
+// The data in the memory area must conform to the format explained in the
+// easyGUI user manual.
+//
+// Input:
+// ------
+// Pointer to memory area
+// Starting coordinates for upper left corner of bitmap
+// Absolute coordinates for upper left and lower right corner of displayed area
+// Transparent background color, -1 means no transparency
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ShowBitmapAreaAt(
+   GuiConst_INT8U * BitmapPtr,
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S AX1,
+   GuiConst_INT16S AY1,
+   GuiConst_INT16S AX2,
+   GuiConst_INT16S AY2,
+   GuiConst_INT32S TranspColor);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+// =============================================================================
+// GuiLib_DrawChar
+// ===============
+//
+// Draws a single character on the display.
+//
+// Input:
+// ------
+// Coordinates
+// Font index
+// Character
+// Color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_DrawChar(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U FontNo,
+   GuiConst_TEXT Character,
+   GuiConst_INTCOLOR Color);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DrawStr
+// ==============
+//
+// Draws a text string on the display.
+//
+// Input:
+// ------
+// Coordinates
+// Font index
+// Text string
+// Alignment
+// Ps mode
+// Transparent
+// Underlining
+// Back box size X (0 = none)
+// Back box size Y1 (height above base line, 0 = default font box)
+// Back box size Y2 (height below base line, 0 = default font box)
+// Extra back box pixels
+// Text color
+// Background box color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_DrawStr(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U FontNo,
+   GuiConst_TEXT PrefixLocate *String,
+   GuiConst_INT8U Alignment,
+   GuiConst_INT8U PsWriting,
+   GuiConst_INT8U Transparent,
+   GuiConst_INT8U Underlining,
+   GuiConst_INT16S BackBoxSizeX,
+   GuiConst_INT16S BackBoxSizeY1,
+   GuiConst_INT16S BackBoxSizeY2,
+   GuiConst_INT8U BackBorderPixels,
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_DrawVar
+// ==============
+//
+// Draws a variable on the display.
+//
+// Input:
+// ------
+// Coordinates
+// Font index
+// Variable pointer reference
+// Variable type - can be:
+//                   GuiLib_VAR_BOOL
+//                   GuiLib_VAR_UNSIGNED_CHAR
+//                   GuiLib_VAR_SIGNED_CHAR
+//                   GuiLib_VAR_UNSIGNED_INT
+//                   GuiLib_VAR_SIGNED_INT
+//                   GuiLib_VAR_UNSIGNED_LONG
+//                   GuiLib_VAR_SIGNED_LONG
+//                   GuiLib_VAR_FLOAT
+//                   GuiLib_VAR_DOUBLE
+//                   GuiLib_VAR_STRING
+// Variable format - can be:
+//                   GuiLib_FORMAT_DEC
+//                   GuiLib_FORMAT_EXP
+//                   GuiLib_FORMAT_HEX
+//                   GuiLib_FORMAT_TIME_MMSS
+//                   GuiLib_FORMAT_TIME_HHMM_24
+//                   GuiLib_FORMAT_TIME_HHMMSS_24
+//                   GuiLib_FORMAT_TIME_HHMM_12_ampm
+//                   GuiLib_FORMAT_TIME_HHMMSS_12_ampm
+//                   GuiLib_FORMAT_TIME_HHMM_12_AMPM
+//                   GuiLib_FORMAT_TIME_HHMMSS_12_AMPM
+// Variable format field width
+// Variable format alignment - can be:
+//                   GuiLib_FORMAT_ALIGNMENT_LEFT
+//                   GuiLib_FORMAT_ALIGNMENT_CENTER
+//                   GuiLib_FORMAT_ALIGNMENT_RIGHT
+// Variable format decimals
+// Variable format show sign (true or false)
+// Variable format zero padding (true or false)
+// Variable format trailing zeros (true or false)
+// Variable format thousands separator (true or false)
+// Alignment
+// Ps mode
+// Transparent
+// Underlining
+// Back box size X (0 = none)
+// Back box size Y1 (height above base line, 0 = default font box)
+// Back box size Y2 (height below base line, 0 = default font box)
+// Extra back box pixels
+// Text color
+// Background box color
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_DrawVar(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16U FontNo,
+   void PrefixLocate *VarPtr,
+   GuiConst_INT8U VarType,
+   GuiConst_INT8U FormatterFormat,
+   GuiConst_INT8U FormatterFieldWidth,
+   GuiConst_INT8U FormatterAlignment,
+   GuiConst_INT8U FormatterDecimals,
+   GuiConst_INT8U FormatterShowSign,
+   GuiConst_INT8U FormatterZeroPadding,
+   GuiConst_INT8U FormatterTrailingZeros,
+   GuiConst_INT8U FormatterThousandsSeparator,
+   GuiConst_INT8U Alignment,
+   GuiConst_INT8U PsWriting,
+   GuiConst_INT8U Transparent,
+   GuiConst_INT8U Underlining,
+   GuiConst_INT16S BackBoxSizeX,
+   GuiConst_INT16S BackBoxSizeY1,
+   GuiConst_INT16S BackBoxSizeY2,
+   GuiConst_INT8U BackBorderPixels,
+   GuiConst_INTCOLOR ForeColor,
+   GuiConst_INTCOLOR BackColor);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Init
+// ===========
+//
+// Initialises the easyGUI library module.
+// MUST be called at application startup, before using the easyGUI library.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Init(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Clear
+// ============
+//
+// Clears the screen, and resets the easyGUI system.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Clear(void);
+// -----------------------------------------------------------------------------
+
+
+#ifdef GuiConst_CHARMODE_UNICODE
+
+// =============================================================================
+// GuiLib_UnicodeStrLen
+// ====================
+//
+// Calculates length of Unicode string.
+// This function is equivalent to the ANSI character mode strlen function.
+//
+// Input:
+// ------
+// Unicode string reference
+//
+// Output:
+// -------
+// Length in characters, excluding zero termination
+//
+extern GuiConst_INT16U GuiLib_UnicodeStrLen(
+   GuiConst_TEXT PrefixLocate *S);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_StrAnsiToUnicode
+// =======================
+//
+// Converts ANSI string to Unicode string.
+//
+// Input:
+// ------
+// ANSI and Unicode string references
+// Unicode string must have sufficient space
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_StrAnsiToUnicode(
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_CHAR PrefixLocate *S1);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_UnicodeStrCmp
+// ====================
+//
+// Compares two Unicode strings.
+// This function is equivalent to the ANSI character mode strcmp function.
+//
+// Input:
+// ------
+// Unicode string references
+//
+// Output:
+// -------
+// <0: S1 is less than S2
+// =0: S1 and S2 are equal
+// >0: S1 is greater than S2
+//
+GuiConst_INT16S GuiLib_UnicodeStrCmp(
+   GuiConst_TEXT PrefixLocate *S1,
+   GuiConst_TEXT PrefixLocate *S2);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_UnicodeStrNCmp
+// =====================
+//
+// Compares two Unicode strings, until the N'th character.
+// This function is equivalent to the ANSI character mode strncmp function.
+//
+// Input:
+// ------
+// Unicode string references
+// Character count to compare
+//
+// Output:
+// -------
+// <0: S1 is less than S2 inside the N characters
+// =0: S1 and S2 are equal inside the N characters
+// >0: S1 is greater than S2 inside the N characters
+//
+GuiConst_INT16S GuiLib_UnicodeStrNCmp(
+   GuiConst_TEXT PrefixLocate *S1,
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_INT16U StrLen);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_UnicodeStrCpy
+// ====================
+//
+// Copy from one Unicode string to another.
+// This function is equivalent to the ANSI character mode strcpy function
+//
+// Input:
+// ------
+// S1: Unicode source string reference
+// S2: Unicode destination string reference
+// Unicode destination string must have sufficient space
+//
+// Output:
+// -------
+// None
+//
+void GuiLib_UnicodeStrCpy(
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_TEXT PrefixLocate *S1);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_UnicodeStrNCpy
+// =====================
+//
+// Copy from one Unicode string to another. No more than source StrLen bytes are
+// copied.
+// Bytes following a source null byte are not copied.
+// If needed target is padded with null bytes until reaching StrLen.
+// This function is equivalent to the ANSI character mode strncpy function.
+//
+// Input:
+// ------
+// S1: Unicode source string reference
+// S2: Unicode destination string reference
+// StrLen: Number of characters to copy
+// Unicode destination string must have sufficient space
+//
+// Output:
+// -------
+// None
+//
+void GuiLib_UnicodeStrNCpy(
+   GuiConst_TEXT PrefixLocate *S2,
+   GuiConst_TEXT PrefixLocate *S1,
+   GuiConst_INT16U StrLen);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+// =============================================================================
+// GuiLib_ShowScreen
+// =================
+//
+// Instructs structure drawing task to draw a complete structure.
+//
+// Input:
+// ------
+// Structure ID
+// Active cursor field No. -
+//    use GuiLib_NO_CURSOR if there is no cursor to show
+// Maintain or erase old AutoReadraw fields -
+//    use GuiLib_NO_RESET_AUTO_REDRAW or GuiLib_RESET_AUTO_REDRAW
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ShowScreen(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16S CursorFieldToShow,
+   GuiConst_INT8U ResetAutoRedraw);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetTextLanguagePtr
+// =========================
+//
+// Returns pointer to text in structure
+// Language of selected text can be freely selected, no matter what language
+// is active
+//
+// Input:
+// ------
+// Structure ID
+// Text No. - index 0 is first text in structure, Item types other than Texts
+// and Paragraph are ignored
+//
+// Output:
+// -------
+// Pointer to text based on structure, text No. and current language
+// Returns Nil if no text was found
+//
+extern GuiConst_TEXT PrefixLocate *GuiLib_GetTextLanguagePtr(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16U TextNo,
+   GuiConst_INT16S LanguageIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetTextPtr
+// =================
+//
+// Returns pointer to text in structure
+//
+// Input:
+// ------
+// Structure ID
+// Text No. - index 0 is first text in the structure, item types other than
+// Text and Paragraph are ignored
+//
+// Output:
+// -------
+// Pointer to text based on structure, text No. and current language
+// Returns Nil if no text was found
+//
+extern GuiConst_TEXT PrefixLocate *GuiLib_GetTextPtr(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16U TextNo);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetTextWidth
+// ===================
+//
+// Returns width of text in pixels
+//
+// Input:
+// ------
+// Pointer to text string
+// Pointer to font
+// PS writing mode - can be:
+//   GuiLib_PS_OFF   No proportional writing
+//   GuiLib_PS_ON    Normal proportional writing
+//   GuiLib_PS_NUM   Numerical proportional writing
+//
+// Output:
+// -------
+// Width of text in pixels, returns zero if an error is encountered
+//
+extern GuiConst_INT16U GuiLib_GetTextWidth(
+   GuiConst_TEXT PrefixLocate *String,
+   GuiLib_FontRecConstPtr Font,
+   GuiConst_INT8U PsWriting);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GetCharCode
+// ==================
+//
+// Returns ANSI or Unicode code of specific character in string
+//
+// Input:
+// ------
+// Structure ID
+// Text No. - index 0 is first text in the structure, item types other than
+// Text and Paragraph are ignored
+// Character position
+// Omit control codes, Control codes are soft and hard line breaks
+//   0 - count all charactes
+//   1 - omit control codes during counting
+//
+// Output:
+// -------
+// ANSI or Unicode code of character, returns zero if an error is encountered
+//
+extern GuiConst_TEXT GuiLib_GetCharCode(
+   const GuiConst_INT16U StructureNdx,
+   GuiConst_INT16U TextNo,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16U OmitCtrlCode);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_GuiLib_ClearPositionCallbacks
+// ====================================
+//
+// Resets all position callback function references - no callbacks will then
+// happen, until GuiLib_SetPositionCallbackFunc has been called
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_ClearPositionCallbacks(void);
+
+
+// =============================================================================
+// GuiLib_SetPositionCallbackFunc
+// ==============================
+//
+// Defines a callback function for a specific position callback item
+// The callback function will be called each time a structure containing a
+// position callback item with the same index number. The callback will contain
+// the index number and the current X,Y display coordinates.
+//
+// Input:
+// ------
+// Position callback index No.
+// Position callback function - function style is F(IndexNo, X, Y)
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_SetPositionCallbackFunc(
+   GuiConst_INT16U IndexNo,
+   void (*PosCallbackFunc) (GuiConst_INT16U IndexNo,
+                            GuiConst_INT16S X,
+                            GuiConst_INT16S Y));
+
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+
+// =============================================================================
+// GuiLib_GetBlinkingCharCode
+// ==========================
+//
+// Returns ANSI or Unicode code of character in string marked as blinking field
+//
+// Input:
+// ------
+// Blinking item No.
+// Character position
+// Omit control codes, Control codes are soft and hard line breaks
+//   0 - count all charactes
+//   1 - omit control codes during counting
+//
+// Output:
+// -------
+// ANSI or Unicode code of character, returns zero if an error is encountered
+//
+extern GuiConst_TEXT GuiLib_GetBlinkingCharCode(
+   GuiConst_INT16U BlinkFieldNo,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16U OmitCtrlCode);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+// =============================================================================
+// GuiLib_SetLanguage
+// ==================
+//
+// Selects current language. Index zero is the reference language.
+//
+// Input:
+// ------
+// Language index
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_SetLanguage(
+   GuiConst_INT16S NewLanguage);
+// -----------------------------------------------------------------------------
+
+
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+
+// =============================================================================
+// GuiLib_Cursor_Hide
+// ==================
+//
+// Hides cursor field.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Cursor_Hide(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_IsCursorFieldInUse
+// =========================
+//
+// Reports if a cursor field is active.
+//
+// Input:
+// ------
+// Query cursor field No.
+//
+// Output:
+// -------
+// 0 = Cursor field not active
+// 1 = Cursor field active
+//
+extern GuiConst_INT8U GuiLib_IsCursorFieldInUse(
+   GuiConst_INT16S AskCursorFieldNo);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Cursor_Select
+// ====================
+//
+// Makes requested cursor field active, redrawing both current and new cursor
+// field.
+//
+// Input:
+// ------
+// New cursor field No.
+// -1 hides cursor.
+//
+// Output:
+// -------
+// 0 = No change, requested cursor field is invalid
+// 1 = Cursor moved // extern GuiConst_INT8U GuiLib_Cursor_Select(
+//  GuiConst_INT16S NewCursorFieldNo);
+//
+extern GuiConst_INT8U GuiLib_Cursor_Select(
+   GuiConst_INT16S NewCursorFieldNo);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Cursor_Down
+// ==================
+//
+// Makes next cursor field active, redrawing both current and new cursor field.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// 0 = Cursor at end of range
+// 1 = Cursor moved
+//
+extern GuiConst_INT8U GuiLib_Cursor_Down(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Cursor_Up
+// ================
+//
+// Makes previous cursor field active, redrawing both current and new cursor
+// field.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// 0 = Cursor at end of range
+// 1 = Cursor moved
+//
+extern GuiConst_INT8U GuiLib_Cursor_Up(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Cursor_Home
+// ==================
+//
+// Makes first cursor field active, redrawing both current and new cursor
+// field.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// 0 = No change, first cursor field already active
+// 1 = Cursor moved
+//
+extern GuiConst_INT8U GuiLib_Cursor_Home(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Cursor_End
+// =================
+//
+// Makes last cursor field active, redrawing both current and new cursor
+// field.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// 0 = No change, last cursor field already active
+// 1 = Cursor moved
+//
+extern GuiConst_INT8U GuiLib_Cursor_End(void);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+#ifdef GuiConst_BLINK_SUPPORT_ON
+
+// =============================================================================
+// GuiLib_BlinkBoxStart
+// ====================
+//
+// Sets parameters for blinking box function
+//
+// Input:
+// ------
+// X1, Y1, X2, Y2: Blinking rectangle
+// Rate: Blinking rate, in multiples of refresh rate, valid range 0-255
+//       Rate = 255 disables blinking, but makes an initial inverting of the
+//       rectangle
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_BlinkBoxStart(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2,
+   GuiConst_INT16S Rate);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_BlinkBoxStop
+// ===================
+//
+// Stops blinking box function
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_BlinkBoxStop(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_BlinkBoxMarkedItem
+// =========================
+//
+// Sets parameters for blinking box function based on marked blink text field
+//
+// Input:
+// ------
+// BlinkFieldNo: Index No. to marked blink text field in structure
+// CharNo: Character number in text, first character is No. 1
+//         CharNo = 0 means entire text
+// Rate: Blinking rate, in multiples of refresh rate, valid range 0-255
+//       Rate = 255 disables blinking, but makes an initial marking of the
+//       character/text
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_BlinkBoxMarkedItem(
+   GuiConst_INT16U BlinkFieldNo,
+   GuiConst_INT16U CharNo,
+   GuiConst_INT16S Rate);
+// -----------------------------------------------------------------------------
+
+// =============================================================================
+// GuiLib_BlinkBoxMarkedItemStop
+// =============================
+//
+// Stops blinking box function based on marked blink text field
+//
+// Input:
+// ------
+// BlinkFieldNo: Index No. to marked blink text field in structure
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_BlinkBoxMarkedItemStop(
+   GuiConst_INT16U BlinkFieldNo);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_BlinkBoxMarkedItemUpdate
+// ===============================
+//
+// Update parameters for blinking box function based on marked blink text field
+//
+// Input:
+// ------
+// BlinkFieldNo: Index No. to marked blink text field in structure
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_BlinkBoxMarkedItemUpdate(
+   GuiConst_INT16U BlinkFieldNo);
+
+//------------------------------------------------------------------------------
+
+#endif
+
+
+// =============================================================================
+// GuiLib_InvertBoxStart
+// =====================
+//
+// Sets parameters for inverted box function
+//
+// Input:
+// ------
+// X1, Y1, X2, Y2: Inverted box rectangle
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_InvertBoxStart(
+   GuiConst_INT16S X1,
+   GuiConst_INT16S Y1,
+   GuiConst_INT16S X2,
+   GuiConst_INT16S Y2);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_InvertBoxStop
+// ====================
+//
+// Stops inverted box function
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_InvertBoxStop(void);
+// -----------------------------------------------------------------------------
+
+
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+
+// =============================================================================
+// GuiLib_TouchCheck
+// =================
+//
+// Returns touch area No. corresponding to the supplied coordinates.
+// If no touch area is found at coordinates -1 is returned.
+// Touch coordinates are converted to display coordinates, if conversion
+// parameters have been set with the GuiLib_TouchAdjustSet function.
+//
+// Input:
+// ------
+// X, Y: Touch position in touch interface coordinates
+//
+// Output:
+// -------
+// -1  = No touch area found
+// >=0 = Touch area No.
+//
+//
+extern GuiConst_INT32S GuiLib_TouchCheck(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TouchGet
+// ===============
+//
+// Performs the same action as GuiLib_TouchCheck, and additionally returns
+// touch coordinates in display coordinates:
+// Returns touch area No. corresponding to the supplied coordinates.
+// If no touch area is found at coordinates -1 is returned.
+// Touch coordinates are converted to display coordinates, if conversion
+// parameters have been set with the GuiLib_TouchAdjustSet function.
+// OBS: If no conversion parameters have been set with the GuiLib_TouchAdjustSet
+// function the calculated touch coordinates in display coordinates will be
+// TouchX = X, and TouchY = Y.
+//
+// Input:
+// ------
+// X, Y: Touch position in touch interface coordinates
+// TouchX, TouchY: Addresses of the variables where touch coordinates
+//                 converted to display coordinates will be stored
+//
+// Output:
+// -------
+// -1  = No touch area found
+// >=0 = Touch area No.
+//
+//
+extern GuiConst_INT32S GuiLib_TouchGet(
+   GuiConst_INT16S X,
+   GuiConst_INT16S Y,
+   GuiConst_INT16S* TouchX,
+   GuiConst_INT16S* TouchY);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TouchAdjustReset
+// =======================
+//
+// Resets touch coordinate conversion.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_TouchAdjustReset(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TouchAdjustSet
+// =====================
+//
+// Sets one coordinate pair for touch coordinate conversion.
+// Must be called two times, once for each of two diagonally opposed corners,
+// or four times, once for each of the corners.
+// The corner positions should be as close as possible to the physical display
+// corners, as precision is lowered when going towards the display center.
+//
+// Input:
+// ------
+// XTrue, YTrue        : Position represented in display coordinates
+// XMeasured, YMeasured: Position represented in touch interface coordinates
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_TouchAdjustSet(
+   GuiConst_INT16S XTrue,
+   GuiConst_INT16S YTrue,
+   GuiConst_INT16S XMeasured,
+   GuiConst_INT16S YMeasured);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+// =============================================================================
+// GuiLib_Refresh
+// ==============
+//
+// Refreshes variables and updates display.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_Refresh(void);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TestPattern
+// ==================
+//
+// Makes test pattern for display control error diagnosis. See user manual for
+// further info.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// None
+//
+extern void GuiLib_TestPattern(void);
+// -----------------------------------------------------------------------------
+
+
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+
+// =============================================================================
+// GuiLib_ScrollBox_Init
+// =====================
+//
+// Initializes a scroll box (new item type style).
+//
+// Input:
+// ------
+// Scroll box index
+// DataFuncPtr: Address of scroll line call-back function of type
+//    "void F(GuiConst_INT16S LineIndex)"
+// NoOfLines: Total No. of lines in scroll box
+// ActiveLine: Active scroll line, -1 means no active scroll line
+//
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_Init(
+   GuiConst_INT8U ScrollBoxIndex,
+   void (*DataFuncPtr) (GuiConst_INT16S LineIndex),
+   GuiConst_INT16S NoOfLines,
+   GuiConst_INT16S ActiveLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_Redraw
+// =======================
+//
+// Redraws dynamic parts of scroll box (new item type style).
+// For complete redraw use GuiLib_ScrollBox_Init.
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_Redraw(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_RedrawLine
+// ===========================
+//
+// Redraws single line of scroll box (new item type style).
+// If line is not visible no action is performed.
+//
+// Input:
+// ------
+// Scroll box index
+// Scroll line to redraw, index zero is first line in scroll box list
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_RedrawLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_Close
+// ======================
+//
+// Closes a scroll box (new item type style).
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_Close(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_Down
+// =====================
+//
+// Makes next scroll line active, and scrolls list if needed (new item type
+// style).
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// 0 = No change, list already at bottom
+// 1 = Active scroll line changed
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_Down(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_Up
+// ===================
+//
+// Makes previous scroll line active, and scrolls list if needed (new item type
+// style).
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// 0 = No change, list already at top
+// 1 = Active scroll line changed
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_Up(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_Home
+// =====================
+//
+// Makes first scroll line active, and scrolls list if needed (new item type
+// style).
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// 0 = No change, list already at top
+// 1 = Active scroll line changed
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_Home(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_End
+// ====================
+//
+// Makes last scroll line active, and scrolls list if needed (new item type
+// style).
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// 0 = No change, list already at bottom
+// 1 = Active scroll line changed
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_End(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_To_Line
+// ========================
+//
+// Makes specified scroll line active, and scrolls list if needed (new item type
+// style).
+//
+// Input:
+// ------
+// Scroll box index
+// New scroll line, -1 means no active scroll line
+//
+// Output:
+// -------
+// 0 = No change, list already at specified line
+// 1 = Active scroll line changed
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_To_Line(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S NewLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_SetLineMarker
+// ==============================
+//
+// Sets scroll marker position and line count.
+// Scroll marker index 0 (active scroll line) can only cover 1 scroll line.
+// Display only changes after subsequent GuiLib_ScrollBox_Redraw call.
+//
+// Input:
+// ------
+// Scroll box index
+// Scroll marker index
+// Marker start line, -1 means no marker
+// Marker line count (clipped to a maximum of 1 for marker index 0)
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_SetLineMarker(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLineMarkerIndex,
+   GuiConst_INT16S StartLine,
+   GuiConst_INT16U Size);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_GetActiveLine
+// ==============================
+//
+// Returns topmost scroll marker line of selected scroll box / marker.
+//
+// Input:
+// ------
+// Scroll box index
+// Scroll marker index (0 = active scroll line, >0 = secondary line markers)
+//
+// Output:
+// -------
+// Index of topmost scroll marker line
+// -1 = Error in parameters
+//
+extern GuiConst_INT16S GuiLib_ScrollBox_GetActiveLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLineMarkerIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_GetActiveLineCount
+// ===================================
+//
+// Returns number of marked lines in selected scroll box / marker.
+//
+// Input:
+// ------
+// Scroll box index
+// Scroll marker index (0 = active scroll line, >0 = secondary line markers)
+//
+// Output:
+// -------
+// Count of marked scroll lines
+// -1 = Error in parameters
+// Active scroll line (scroll marker index = 0) will always return 1
+//
+extern GuiConst_INT16S GuiLib_ScrollBox_GetActiveLineCount(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16U ScrollLineMarkerIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_SetIndicator
+// =============================
+//
+// Sets scroll indicator position.
+// Display only changes after subsequent GuiLib_ScrollBox_Redraw call.
+//
+// Input:
+// ------
+// Scroll box index
+// Indicator line, -1 means no indicator
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_SetIndicator(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S StartLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_SetTopLine
+// ===========================
+//
+// Sets topmost visible scroll line of selected scroll box.
+// Display only changes after subsequent GuiLib_ScrollBox_Redraw call.
+// If simultaneously setting line marker position make sure top line setting is
+// last action before GuiLib_ScrollBox_Redraw call.
+//
+// Input:
+// ------
+// Scroll box index
+// Index of topmost visible scroll line
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_ScrollBox_SetTopLine(
+   GuiConst_INT8U ScrollBoxIndex,
+   GuiConst_INT16S TopLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_ScrollBox_GetTopLine
+// ===========================
+//
+// Returns topmost visible scroll line of selected scroll box.
+//
+// Input:
+// ------
+// Scroll box index
+//
+// Output:
+// -------
+// Index of topmost visible scroll line
+// -1  = Error in parameters
+//
+extern GuiConst_INT16S GuiLib_ScrollBox_GetTopLine(
+   GuiConst_INT8U ScrollBoxIndex);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+
+// =============================================================================
+// GuiLib_Graph_Close
+// ==================
+//
+// Closes a graph, so that no futher actions can be accomplished with it.
+// Memory assigned to datasets must be freed independently.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+GuiConst_INT8U GuiLib_Graph_Close(
+   GuiConst_INT8U GraphIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_AddDataSet
+// =======================
+//
+// Adds a data set to a graph. The data set must be created in the structure,
+// but is not shown before this function is called.
+// Memory must be assigned independently for the data set.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+// XAxisIndex: Index of X-axis to use.
+// YAxisIndex: Index of Y-axis to use.
+// DataPtr: Pointer to an array of data points, where each data point is a 32
+//    bit signed X,Y entity of type GuiLib_GraphDataPoint.
+// DataSize: Maximum number of data points possible in the data set.
+// DataCount: Number of active data points in the data set.
+// DataFirst: Index of first active data point (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_AddDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT8U XAxisIndex,
+   GuiConst_INT8U YAxisIndex,
+   GuiLib_GraphDataPoint *DataPtr,
+   GuiConst_INT16U DataSize,
+   GuiConst_INT16U DataCount,
+   GuiConst_INT16U DataFirst);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_RemoveDataSet
+// ==========================
+//
+// Removes a data set from a graph.
+// Memory must be released independently for the data set.
+// Nothing is drawn in this function.
+//
+//------------------------------------------------------------------------------
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_RemoveDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_AddDataPoint
+// =========================
+//
+// Adds a data point to a data set. The data set must have sufficient space for
+// the new data point.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+// DataPointX, DataPointY: The data point.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_AddDataPoint(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT32S DataPointX,
+   GuiConst_INT32S DataPointY);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_ShowDataSet
+// ========================
+//
+// Marks a data set as visible.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_ShowDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_HideDataSet
+// ========================
+//
+// Marks a data set as invisible.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_HideDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_ShowXAxis
+// ======================
+//
+// Marks an X-axis as visible.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of X axis in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_ShowXAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_HideXAxis
+// ======================
+//
+// Marks an X-axis as invisible.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of X axis in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_HideXAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_ShowYAxis
+// ======================
+//
+// Marks an Y-axis as visible.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of Y axis in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_ShowYAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_HideYAxis
+// ======================
+//
+// Marks an Y-axis as invisible.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of Y axis in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_HideYAxis(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_SetXAxisRange
+// ==========================
+//
+// Changes an X-axis range.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of X axis in the graph (index is zero based).
+// MinValue, MaxValue: Limits of the X axis range.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_SetXAxisRange(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex,
+   GuiConst_INT32S MinValue,
+   GuiConst_INT32S MaxValue);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_SetYAxisRange
+// ==========================
+//
+// Changes an Y-axis range.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of Y axis in the graph (index is zero based).
+// MinValue, MaxValue: Limits of the Y axis range.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_SetYAxisRange(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U AxisIndex,
+   GuiConst_INT32S MinValue,
+   GuiConst_INT32S MaxValue);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_ResetXAxisOrigin
+// =============================
+//
+// Resets the X-axis origin to the original origin.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of X axis in the graph (index is zero based). Index -1 will
+//            reset all defined X axes.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_ResetXAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_OffsetXAxisOrigin
+// ==============================
+//
+// Adjusts the X-axis origin. Useful for dynamic graphs with moving X-axis.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of X axis in the graph (index is zero based). Index -1 will
+//            offset all defined X axes. This only makes sense if all X axes
+//            have identical scaling.
+// Offset: Amount of movement of the X axis origin.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_OffsetXAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex,
+   GuiConst_INT32S Offset);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_ResetYAxisOrigin
+// =============================
+//
+// Resets the Y-axis origin to the original origin.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of Y axis in the graph (index is zero based). Index -1 will
+//            reset all defined Y axes.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_ResetYAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_OffsetYAxisOrigin
+// ==============================
+//
+// Adjusts the Y-axis origin. Useful for dynamic graphs with moving Y-axis.
+// Nothing is drawn in this function.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// AxisIndex: Index of Y axis in the graph (index is zero based). Index -1 will
+//            offset all defined Y axes. This only makes sense if all Y axes
+//            have identical scaling.
+// Offset: Amount of movement of the Y axis origin.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_OffsetYAxisOrigin(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8S AxisIndex,
+   GuiConst_INT32S Offset);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_Redraw
+// ===================
+//
+// Redraws the complete graph, including background, axes, and data sets.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_Redraw(
+   GuiConst_INT8U GraphIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_DrawAxes
+// =====================
+//
+// Redraws the graph, including background and axes, but excluding data sets.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_DrawAxes(
+   GuiConst_INT8U GraphIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_DrawDataSet
+// ========================
+//
+// Redraws a data set.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_DrawDataSet(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex);
+//------------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_Graph_DrawDataPoint
+// ==========================
+//
+// Draws a single data point in a data set.
+//
+// Input:
+// ------
+// GraphIndex: Index of graph (index is zero based).
+// DataSetIndex: Index of data set in the graph (index is zero based).
+// DataIndex: Index of point in the data set (index is zero based).
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_Graph_DrawDataPoint(
+   GuiConst_INT8U GraphIndex,
+   GuiConst_INT8U DataSetIndex,
+   GuiConst_INT16U DataIndex);
+// -----------------------------------------------------------------------------
+
+#endif
+
+
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+
+// =============================================================================
+// GuiLib_GraphicsFilter_Init
+// ==========================
+//
+// Initializes a graphics filter call-back function.
+//
+// Input:
+// ------
+// GraphicsFilterIndex: Index of graphics filter (index is zero based).
+// FilterFuncPtr: Pointer to user-defined call-back filter function.
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+//------------------------------------------------------------------------------
+extern GuiConst_INT8U GuiLib_GraphicsFilter_Init(
+   GuiConst_INT8U GraphicsFilterIndex,
+   void (*FilterFuncPtr)
+     (GuiConst_INT8U *DestAddress,
+      GuiConst_INT16U DestLineSize,
+      GuiConst_INT8U *SourceAddress,
+      GuiConst_INT16U SourceLineSize,
+      GuiConst_INT16U Width,
+      GuiConst_INT16U Height,
+      GuiConst_INT32S FilterPars[10]));
+#endif
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Up
+// ========================
+//
+// Scrolls text box contents one text line up.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Up(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Down
+// ==========================
+//
+// Scrolls text box contents one text line down.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Down(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Home
+// ==========================
+//
+// Scrolls text box contents to the top.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Home(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_End
+// =========================
+//
+// Scrolls text box contents to the bottom.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_End(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_To_Line
+// =============================
+//
+// Scrolls text box contents to a specific text line.
+//
+// Input:
+// ------
+// Text box index
+// Text line
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_To_Line(
+   GuiConst_INT8U TextBoxIndex,
+   GuiConst_INT16S NewLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Up_Pixel
+// ==============================
+//
+// Scrolls text box contents one pixel position up.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Up_Pixel(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Down_Pixel
+// ================================
+//
+// Scrolls text box contents one pixel position down.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Down_Pixel(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Home_Pixel
+// ================================
+//
+// Scrolls text box contents to the top.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Home_Pixel(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_End_Pixel
+// ===============================
+//
+// Scrolls text box contents to the bottom.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_End_Pixel(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_To_PixelLine
+// ==================================
+//
+// Scrolls text box contents to a specific pixel position.
+//
+// Input:
+// ------
+// Text box index
+// Pixel line
+//
+// Output:
+// -------
+// 0 = Error in parameters
+// 1 = Ok
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_To_PixelLine(
+   GuiConst_INT8U TextBoxIndex,
+   GuiConst_INT16S NewPixelLine);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Get_Pos
+// =============================
+//
+// Returns status of topmost visible text line of text box.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX   Illegal text box index
+// GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK  Text box scrolled mid way
+// GuiLib_TEXTBOX_SCROLL_AT_HOME       Text box scrolled to the top
+// GuiLib_TEXTBOX_SCROLL_AT_END        Text box scrolled to the bottom
+// GuiLib_TEXTBOX_SCROLL_ABOVE_HOME    Text box scrolled above the top
+// GuiLib_TEXTBOX_SCROLL_BELOW_END     Text box scrolled below the bottom
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_Get_Pos_Pixel
+// ===================================
+//
+// Returns status of topmost visible pixel position of text box.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// GuiLib_TEXTBOX_SCROLL_ILLEGAL_NDX   Illegal text box index
+// GuiLib_TEXTBOX_SCROLL_INSIDE_BLOCK  Text box scrolled mid way
+// GuiLib_TEXTBOX_SCROLL_AT_HOME       Text box scrolled to the top
+// GuiLib_TEXTBOX_SCROLL_AT_END        Text box scrolled to the bottom
+// GuiLib_TEXTBOX_SCROLL_ABOVE_HOME    Text box scrolled above the top
+// GuiLib_TEXTBOX_SCROLL_BELOW_END     Text box scrolled below the bottom
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_Get_Pos_Pixel(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+// =============================================================================
+// GuiLib_TextBox_Scroll_FitsInside
+// ================================
+//
+// Determines if a text fits completely inside a text box without scrolling.
+//
+// Input:
+// ------
+// Text box index
+//
+// Output:
+// -------
+// 0 = No
+// 1 = Yes
+//
+extern GuiConst_INT8U GuiLib_TextBox_Scroll_FitsInside(
+   GuiConst_INT8U TextBoxIndex);
+// -----------------------------------------------------------------------------
+
+
+#ifdef GuiConst_REMOTE_DATA
+// =============================================================================
+// GuiLib_RemoteCheck
+// ==================
+//
+// Checks if binary remote data file has correct ID.
+//
+// Input:
+// ------
+// None
+//
+// Output:
+// -------
+// 0 = Illegal ID
+// 1 = ID accepted
+//
+extern GuiConst_INT8U GuiLib_RemoteCheck(void);
+// -----------------------------------------------------------------------------
+#endif
+
+
+
+#ifdef GuiConst_CODEVISION_COMPILER
+#pragma used-
+#endif
+// -----------------------------------------------------------------------------
+
+
+#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */
+}
+
+#endif
+
+#endif
+
diff -r 000000000000 -r 7d6bc03009a3 easyGUIFixed/GuiLibStruct.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIFixed/GuiLibStruct.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,1139 @@
+/* ************************************************************************ */
+/*                                                                          */
+/*                     (C)2004-2015 IBIS Solutions ApS                      */
+/*                            sales@easyGUI.com                             */
+/*                             www.easyGUI.com                              */
+/*                                                                          */
+/*                               v6.0.9.005                                 */
+/*                                                                          */
+/* ************************************************************************ */
+
+#ifndef __GUILIBSTRUCT_H_
+#define __GUILIBSTRUCT_H_
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+
+#ifdef __cplusplus /* If this is a C++ compiler, use C linkage */
+extern "C" {
+#endif
+
+#define GuiLib_ITEM_TEXT                   0
+#define GuiLib_ITEM_DOT                    1
+#define GuiLib_ITEM_LINE                   2
+#define GuiLib_ITEM_FRAME                  3
+#define GuiLib_ITEM_BLOCK                  4
+#define GuiLib_ITEM_STRUCTURE              5
+#define GuiLib_ITEM_STRUCTARRAY            6
+#define GuiLib_ITEM_CLIPRECT               7
+#define GuiLib_ITEM_VAR                    8
+#define GuiLib_ITEM_FORMATTER              9
+#define GuiLib_ITEM_BITMAP                 10
+#define GuiLib_ITEM_TEXTBLOCK              11
+#define GuiLib_ITEM_TOUCHAREA              12
+#define GuiLib_ITEM_VARBLOCK               13
+#define GuiLib_ITEM_ACTIVEAREA             14
+#define GuiLib_ITEM_SCROLLBOX              15
+#define GuiLib_ITEM_CIRCLE                 16
+#define GuiLib_ITEM_ELLIPSE                17
+#define GuiLib_ITEM_BACKGROUND             18
+#define GuiLib_ITEM_CLEARAREA              19
+#define GuiLib_ITEM_ADVGRAPH_COORDSYST     20
+#define GuiLib_ITEM_ADVGRAPH_PIXEL         21
+#define GuiLib_ITEM_ADVGRAPH_LINE          22
+#define GuiLib_ITEM_ADVGRAPH_ARC           23
+#define GuiLib_ITEM_ADVGRAPH_RECT          24
+#define GuiLib_ITEM_ADVGRAPH_ELLIPSE       25
+#define GuiLib_ITEM_ADVGRAPH_SEGMENT       26
+#define GuiLib_ITEM_ADVGRAPH_TRIANGLE      27
+#define GuiLib_ITEM_ADVGRAPH_POLYGON       28
+#define GuiLib_ITEM_GRAPH                  29
+#define GuiLib_ITEM_GRAPHICSLAYER          30
+#define GuiLib_ITEM_GRAPHICSFILTER         31
+#define GuiLib_ITEM_ROUNDEDFRAME           32
+#define GuiLib_ITEM_ROUNDEDBLOCK           33
+#define GuiLib_ITEM_QUARTERCIRCLE          34
+#define GuiLib_ITEM_QUARTERELLIPSE         35
+#define GuiLib_ITEM_CHECKBOX               36
+#define GuiLib_ITEM_RADIOBUTTON            37
+#define GuiLib_ITEM_BUTTON                 38
+#define GuiLib_ITEM_EDITBOX                39
+#define GuiLib_ITEM_PANEL                  40
+#define GuiLib_ITEM_MEMO                   41
+#define GuiLib_ITEM_LISTBOX                42
+#define GuiLib_ITEM_COMBOBOX               43
+#define GuiLib_ITEM_SCROLLAREA             44
+#define GuiLib_ITEM_PROGRESSBAR            45
+#define GuiLib_ITEM_STRUCTCOND             46
+#define GuiLib_ITEM_POSCALLBACK            47
+
+#define GuiLib_ITEMBIT_TEXT                0x00000001
+#define GuiLib_ITEMBIT_DOT                 0x00000002
+#define GuiLib_ITEMBIT_LINE                0x00000004
+#define GuiLib_ITEMBIT_FRAME               0x00000008
+#define GuiLib_ITEMBIT_BLOCK               0x00000010
+#define GuiLib_ITEMBIT_STRUCTURE           0x00000020
+#define GuiLib_ITEMBIT_STRUCTARRAY         0x00000040
+#define GuiLib_ITEMBIT_CLIPRECT            0x00000080
+#define GuiLib_ITEMBIT_VAR                 0x00000100
+#define GuiLib_ITEMBIT_FORMATTER           0x00000200
+#define GuiLib_ITEMBIT_BITMAP              0x00000400
+#define GuiLib_ITEMBIT_TEXTBLOCK           0x00000800
+#define GuiLib_ITEMBIT_TOUCHAREA           0x00001000
+#define GuiLib_ITEMBIT_VARBLOCK            0x00002000
+#define GuiLib_ITEMBIT_ACTIVEAREA          0x00004000
+#define GuiLib_ITEMBIT_SCROLLBOX           0x00008000
+#define GuiLib_ITEMBIT_CIRCLE              0x00010000
+#define GuiLib_ITEMBIT_ELLIPSE             0x00020000
+#define GuiLib_ITEMBIT_BACKGROUND          0x00040000
+#define GuiLib_ITEMBIT_CLEARAREA           0x00080000
+#define GuiLib_ITEMBIT_ADVGRAPH_COORDSYST  0x00100000
+#define GuiLib_ITEMBIT_ADVGRAPH_PIXEL      0x00200000
+#define GuiLib_ITEMBIT_ADVGRAPH_LINE       0x00400000
+#define GuiLib_ITEMBIT_ADVGRAPH_ARC        0x00800000
+#define GuiLib_ITEMBIT_ADVGRAPH_RECT       0x01000000
+#define GuiLib_ITEMBIT_ADVGRAPH_ELLIPSE    0x02000000
+#define GuiLib_ITEMBIT_ADVGRAPH_SEGMENT    0x04000000
+#define GuiLib_ITEMBIT_ADVGRAPH_TRIANGLE   0x08000000
+#define GuiLib_ITEMBIT_ADVGRAPH_POLYGON    0x10000000
+#define GuiLib_ITEMBIT_GRAPH               0x20000000
+#define GuiLib_ITEMBIT_GRAPHICSLAYER       0x40000000
+#define GuiLib_ITEMBIT_GRAPHICSFILTER      0x80000000
+#define GuiLib_ITEMBIT_ROUNDEDFRAME        0x00000001
+#define GuiLib_ITEMBIT_ROUNDEDBLOCK        0x00000002
+#define GuiLib_ITEMBIT_QUARTERCIRCLE       0x00000004
+#define GuiLib_ITEMBIT_QUARTERELLIPSE      0x00000008
+#define GuiLib_ITEMBIT_CHECKBOX            0x00000010
+#define GuiLib_ITEMBIT_RADIOBUTTON         0x00000020
+#define GuiLib_ITEMBIT_BUTTON              0x00000040
+#define GuiLib_ITEMBIT_EDITBOX             0x00000080
+#define GuiLib_ITEMBIT_PANEL               0x00000100
+#define GuiLib_ITEMBIT_MEMO                0x00000200
+#define GuiLib_ITEMBIT_LISTBOX             0x00000400
+#define GuiLib_ITEMBIT_COMBOBOX            0x00000800
+#define GuiLib_ITEMBIT_SCROLLAREA          0x00001000
+#define GuiLib_ITEMBIT_PROGRESSBAR         0x00002000
+#define GuiLib_ITEMBIT_STRUCTCOND          0x00004000
+#define GuiLib_ITEMBIT_POSCALLBACK         0x00008000
+
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+  #define GuiLib_GETITEMLONG
+#else
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  #define GuiLib_GETITEMLONG
+#endif
+#endif
+
+#define GuiLib_TRUE                        1
+#define GuiLib_FALSE                       0
+
+#define GuiLib_UPDATE_ALWAYS               0
+#define GuiLib_UPDATE_ON_CHANGE            1
+
+#ifdef GuiConst_AUTOREDRAW_ON_CHANGE
+#define GuiLib_AUTOREDRAW_MODE GuiLib_UPDATE_ON_CHANGE
+#else
+#define GuiLib_AUTOREDRAW_MODE GuiLib_UPDATE_ALWAYS
+#endif
+
+#define GuiLib_COOR_ABS                    0
+#define GuiLib_COOR_REL                    1
+#define GuiLib_COOR_REL_1                  2
+#define GuiLib_COOR_REL_2                  3
+
+#define GuiLib_COLOR_NOCHANGE              0
+#define GuiLib_COLOR_FORE                  1
+#define GuiLib_COLOR_BACK                  2
+#define GuiLib_COLOR_OTHER                 3
+#define GuiLib_COLOR_INVERT                4
+#define GuiLib_COLOR_TRANSP                5
+#define GuiLib_COLOR_TABLE                 6
+#define GuiLib_COLOR_VAR                   7
+
+#define GuiLib_MARKER_NONE                 0
+#define GuiLib_MARKER_ICON                 1
+#define GuiLib_MARKER_BITMAP               2
+#define GuiLib_MARKER_FIXED_BLOCK          3
+#define GuiLib_MARKER_VARIABLE_BLOCK       4
+
+#define GuiLib_MEMORY_MIN                  1
+#define GuiLib_MEMORY_MAX                  3
+#define GuiLib_MEMORY_CNT                  GuiLib_MEMORY_MAX - GuiLib_MEMORY_MIN + 1
+
+#define GuiLib_COL_INVERT_OFF              0
+#define GuiLib_COL_INVERT_ON               1
+#define GuiLib_COL_INVERT_IF_CURSOR        2
+
+#define GuiLib_BITFLAG_INUSE               0x00000001
+#define GuiLib_BITFLAG_TRANSPARENT         0x00000002
+#define GuiLib_BITFLAG_UNDERLINE           0x00000004
+#define GuiLib_BITFLAG_PATTERNEDLINE       0x00000004
+#define GuiLib_BITFLAG_CIRCLE_IF           0x00000004
+#define GuiLib_BITFLAG_FORMATSHOWSIGN      0x00000008
+#define GuiLib_BITFLAG_FORMATZEROPADDING   0x00000010
+#define GuiLib_BITFLAG_AUTOREDRAWFIELD     0x00000020
+#define GuiLib_BITFLAG_NOTINUSE            0x00000040
+#define GuiLib_BITFLAG_TRANSLATION         0x00000080
+#define GuiLib_BITFLAG_BLINKTEXTFIELD      0x00000100
+#define GuiLib_BITFLAG_CLIPPING            0x00000200
+#define GuiLib_BITFLAG_ACTIVEAREARELCOORD  0x00000400
+#define GuiLib_BITFLAG_REVERSEWRITING      0x00000800
+#define GuiLib_BITFLAG_FORMATTRAILINGZEROS 0x00001000
+#define GuiLib_BITFLAG_FORMATTHOUSANDSSEP  0x00002000
+#define GuiLib_BITFLAG_FIELDSCROLLBOX      0x00004000
+#define GuiLib_BITFLAG_BARTRANSPARENT      0x00008000
+
+#define GuiLib_SCROLL_STRUCTURE_UNDEF      0
+#define GuiLib_SCROLL_STRUCTURE_READ       1
+#define GuiLib_SCROLL_STRUCTURE_USED       2
+
+#define GuiLib_GRAPH_STRUCTURE_UNDEF       0
+#define GuiLib_GRAPH_STRUCTURE_USED        1
+
+#define GuiLib_GRAPH_DATATYPE_DOT          0
+#define GuiLib_GRAPH_DATATYPE_LINE         1
+#define GuiLib_GRAPH_DATATYPE_BAR          2
+#define GuiLib_GRAPH_DATATYPE_CROSS        3
+#define GuiLib_GRAPH_DATATYPE_X            4
+
+#define GuiLib_GRAPHAXIS_X                 0
+#define GuiLib_GRAPHAXIS_Y                 1
+
+#define GuiLib_GRAPHICS_LAYER_UNDEF        0
+#define GuiLib_GRAPHICS_LAYER_USED         1
+
+#define GuiLib_GRAPHICS_LAYER_SIZE_COORD   0
+#define GuiLib_GRAPHICS_LAYER_SIZE_SCREEN  1
+#define GuiLib_GRAPHICS_LAYER_SIZE_CLIP    2
+
+#define GuiLib_GRAPHICS_LAYER_INIT_NONE    0
+#define GuiLib_GRAPHICS_LAYER_INIT_COL     1
+#define GuiLib_GRAPHICS_LAYER_INIT_COPY    2
+
+#define GuiLib_GRAPHICS_LAYER_CURRENT      -3
+#define GuiLib_GRAPHICS_LAYER_PREVIOUS     -2
+#define GuiLib_GRAPHICS_LAYER_BASE         -1
+
+#define GuiLib_GRAPHICS_FILTER_UNDEF       0
+#define GuiLib_GRAPHICS_FILTER_USED        1
+
+#define GuiLib_MARKER_NONE                 0
+#define GuiLib_INDICATOR_NONE              0
+#define GuiLib_MARKER_SIZE                 8
+
+#define GuiLib_FULL_BITMAP                 0
+#define GuiLib_AREA_BITMAP                 1
+
+#define GuiLib_LANGUAGE_INACTIVE           9999
+
+#define GuiLib_LINEFEED                    0x0A
+
+#define GuiLib_CHECKBOX_FLAT               0
+#define GuiLib_CHECKBOX_3D                 1
+#define GuiLib_CHECKBOX_ICON               2
+#define GuiLib_CHECKBOX_BITMAP             3
+#define GuiLib_CHECKBOX_NONE               4
+#define GuiLib_CHECKBOX_MARK_CHECKED       0
+#define GuiLib_CHECKBOX_MARK_CROSSED       1
+#define GuiLib_CHECKBOX_MARK_FILLED        2
+#define GuiLib_CHECKBOX_MARK_ICON          3
+#define GuiLib_CHECKBOX_MARK_BITMAP        4
+
+#define GuiLib_RADIOBUTTON_FLAT            0
+#define GuiLib_RADIOBUTTON_3D              1
+#define GuiLib_RADIOBUTTON_ICON            2
+#define GuiLib_RADIOBUTTON_BITMAP          3
+#define GuiLib_RADIOBUTTON_MARK_STANDARD   0
+#define GuiLib_RADIOBUTTON_MARK_ICON       1
+#define GuiLib_RADIOBUTTON_MARK_BITMAP     2
+
+#define GuiLib_BUTTON_LAYOUT_TEXT          0
+#define GuiLib_BUTTON_LAYOUT_GLYPH         1
+#define GuiLib_BUTTON_LAYOUT_GLYPHLEFT     2
+#define GuiLib_BUTTON_LAYOUT_GLYPHRIGHT    3
+#define GuiLib_BUTTON_LAYOUT_GLYPHBOTTOM   4
+#define GuiLib_BUTTON_LAYOUT_GLYPHTOP      5
+
+#define GuiLib_BUTTON_BODY_FLAT            0
+#define GuiLib_BUTTON_BODY_3D              1
+#define GuiLib_BUTTON_BODY_ICON            2
+#define GuiLib_BUTTON_BODY_BITMAP          3
+
+#define GuiLib_BUTTON_GLYPH_ICON           0
+#define GuiLib_BUTTON_GLYPH_BITMAP         1
+
+#define GuiLib_PANEL_FLAT                  0
+#define GuiLib_PANEL_3D_RAISED             1
+#define GuiLib_PANEL_3D_LOWERED            2
+#define GuiLib_PANEL_EMBOSSED_RAISED       3
+#define GuiLib_PANEL_EMBOSSED_LOWERED      4
+
+#define GuiLib_AUTOREDRAW_MAX_VAR_SIZE GuiConst_AUTOREDRAW_MAX_VAR_SIZE
+
+//----------------------X-----------------------
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  typedef GuiConst_PTR *GuiLib_StructPtr;
+#else
+  #ifdef GuiConst_DISP_VAR_NOW
+    unsigned char displayVarNow;
+  #endif
+  #ifdef GuiConst_AVRGCC_COMPILER
+    typedef GuiConst_PTR *GuiLib_StructPtr;
+    #define ReadBytePtr(X) pgm_read_byte(X)
+    #define ReadByte(X)    pgm_read_byte(&X)
+    #define ReadWordPtr(X) pgm_read_word(X)
+    #define ReadWord(X)    pgm_read_word(&X)
+  #else
+    #if defined GuiConst_ICC_COMPILER
+      typedef void PrefixRom *GuiLib_StructPtr;
+    #elif defined GuiConst_CODEVISION_COMPILER
+      typedef void PrefixRom *GuiLib_StructPtr;
+    #elif defined GuiConst_RENESAS_COMPILER_FAR
+      typedef void PrefixRom *GuiLib_StructPtr; 
+    #else
+      typedef GuiConst_PTR *GuiLib_StructPtr;
+    #endif
+  #endif
+#endif
+//----------------------X-----------------------
+#ifndef ReadBytePtr
+#define ReadBytePtr(X) *(X)
+#endif
+#ifndef ReadByte
+#define ReadByte(X)    X
+#endif
+#ifndef ReadWordPtr
+#define ReadWordPtr(X) *(X)
+#endif
+#ifndef ReadWord
+#define ReadWord(X)    X
+#endif
+
+//----------------------X-----------------------
+
+
+//----------------------X-----------------------
+typedef struct
+{
+  GuiConst_INT32U BitFlags;
+  GuiConst_INT16S BackBoxSizeX;
+  GuiConst_INT8U BackBoxSizeY1, BackBoxSizeY2;
+  GuiConst_INT8U FontIndex;
+  GuiConst_INT8U Alignment;
+  GuiConst_INT8U Ps;
+  GuiConst_INT8U BackBorderPixels;
+} TextParRec;
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_STRUCTCOND_INUSE
+typedef struct
+{
+  GuiConst_INT16U IndexCount;
+  GuiConst_INT16S IndexFirst[GuiConst_STRUCTCOND_MAX];
+  GuiConst_INT16S IndexLast[GuiConst_STRUCTCOND_MAX];
+  GuiConst_INT16U CallIndex[GuiConst_STRUCTCOND_MAX];
+} CompStructCallRec;
+#else
+typedef struct
+{
+  GuiConst_INT16U IndexCount;
+} CompStructCallRec;
+#endif // GuiConst_ITEM_STRUCTCOND_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+typedef struct
+{
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  GuiConst_INT16S ScrollPos;
+  GuiConst_INT16U Lines;
+  GuiConst_INT8U ScrollIndex;
+#endif // GuiConst_TEXTBOX_FIELDS_ON
+  GuiConst_INT8U HorzAlignment;
+  GuiConst_INT8U VertAlignment;
+  GuiConst_INT8S LineDist;
+  GuiConst_INT8U LineDistRelToFont;
+} CompTextBoxRec;
+#endif // GuiConst_ITEM_TEXTBLOCK_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+typedef struct
+{
+  GuiConst_INT16U AreaNo;
+} CompTouchRec;
+#endif
+//----------------------X-----------------------
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+typedef struct
+{
+  GuiConst_INTCOLOR TranspColor;
+} CompBitmapRec;
+#endif
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+typedef struct
+{
+  GuiConst_INT16U MarkOffsetX;
+  GuiConst_INT16U MarkOffsetY;
+  GuiConst_INT16U MarkBitmapIndex;
+  GuiConst_INT16U IconOffsetX;
+  GuiConst_INT16U IconOffsetY;
+  GuiConst_INT16U BitmapIndex;
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR BitmapTranspColor;
+  GuiConst_INTCOLOR MarkBitmapTranspColor;
+#endif // GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR MarkColor;
+  GuiConst_INT16U MarkColorIndex;
+  GuiConst_TEXT PrefixLocate *IconPtr;
+  GuiConst_TEXT PrefixLocate *MarkIconPtr;
+  GuiConst_INT8U Style;
+  GuiConst_INT8U Size;
+  GuiConst_INT8U IconFont;
+  GuiConst_INT8U BitmapIsTransparent;
+  GuiConst_INT8U MarkStyle;
+  GuiConst_INT8U MarkIconFont;
+  GuiConst_INT8U MarkBitmapIsTransparent;
+} CompCheckBoxRec;
+#endif // GuiConst_ITEM_CHECKBOX_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+typedef struct
+{
+  GuiConst_INT16U InterDistance;
+  GuiConst_INT16U MarkOffsetX;
+  GuiConst_INT16U MarkOffsetY;
+  GuiConst_INT16U MarkBitmapIndex;
+  GuiConst_INT16U IconOffsetX;
+  GuiConst_INT16U IconOffsetY;
+  GuiConst_INT16U BitmapIndex;
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR BitmapTranspColor;
+  GuiConst_INTCOLOR MarkBitmapTranspColor;
+#endif // GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR MarkColor;
+  GuiConst_INT16U MarkColorIndex;
+  GuiConst_TEXT PrefixLocate *IconPtr;
+  GuiConst_TEXT PrefixLocate *MarkIconPtr;
+  GuiConst_INT8U Style;
+  GuiConst_INT8U Size;
+  GuiConst_INT8U Count;
+  GuiConst_INT8U IconFont;
+  GuiConst_INT8U BitmapIsTransparent;
+  GuiConst_INT8U MarkStyle;
+  GuiConst_INT8U MarkIconFont;
+  GuiConst_INT8U MarkBitmapIsTransparent;
+} CompRadioButtonRec;
+#endif // GuiConst_ITEM_RADIOBUTTON_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+typedef struct
+{
+  GuiConst_INT8U Layout;
+  GuiConst_INT8U BodyStyle;
+  GuiConst_INT8U BodyLikeUp;
+  GuiConst_TEXT PrefixLocate *BodyIconPtr[3];
+  GuiConst_INT8U BodyIconFont[3];
+  GuiConst_INT16U BodyIconOffsetX[3];
+  GuiConst_INT16U BodyIconOffsetY[3];
+  GuiConst_INT16U BodyBitmapIndex[3];
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR BodyBitmapTranspColor[3];
+#endif // GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INT8U BodyBitmapIsTransparent[3];
+  GuiConst_INT8U TextLikeUp;
+  GuiConst_INTCOLOR TextColor[3];
+  GuiConst_INT16U TextColorIndex[3];
+  GuiConst_INT8U GlyphStyle;
+  GuiConst_INT8U GlyphLikeUp;
+  GuiConst_INTCOLOR GlyphIconColor[3];
+  GuiConst_INT16U GlyphIconColorIndex[3];
+  GuiConst_TEXT PrefixLocate *GlyphIconPtr[3];
+  GuiConst_INT8U GlyphIconFont[3];
+  GuiConst_INT16U GlyphIconOffsetX[3];
+  GuiConst_INT16U GlyphIconOffsetY[3];
+  GuiConst_INT16U GlyphBitmapIndex[3];
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR GlyphBitmapTranspColor[3];
+#endif // GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INT8U GlyphBitmapIsTransparent[3];
+  GuiConst_INT16U GlyphBitmapOffsetX[3];
+  GuiConst_INT16U GlyphBitmapOffsetY[3];
+} CompButtonRec;
+#endif // GuiConst_ITEM_BUTTON_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_PANEL_INUSE
+typedef struct
+{
+  GuiConst_INT8U Style;
+} CompPanelRec;
+#endif
+//----------------------X-----------------------
+typedef union
+{
+  CompStructCallRec StructCall;
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+  CompTextBoxRec     CompTextBox;
+#endif
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+  CompTouchRec       CompTouch;
+#endif
+#ifdef GuiConst_ITEM_CHECKBOX_INUSE
+  CompCheckBoxRec    CompCheckBox;
+#endif
+#ifdef GuiConst_ITEM_RADIOBUTTON_INUSE
+  CompRadioButtonRec CompRadioButton;
+#endif
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+  CompButtonRec CompButton;
+#endif
+#ifdef GuiConst_ITEM_PANEL_INUSE
+  CompPanelRec       CompPanel;
+#endif
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  CompBitmapRec      CompBitmap;
+#endif
+} CompUnion;
+//----------------------X-----------------------
+typedef struct
+{
+  TextParRec TextPar[3];
+  void PrefixLocate *VarPtr;
+  GuiConst_INT16U StructToCallIndex;
+  GuiConst_INT16S X1, Y1, X2, Y2;
+  GuiConst_INT16S R1, R2;
+  GuiConst_INT16S RX, RY;
+  GuiConst_INT16S RX1, RY1, RX2, RY2;
+  GuiConst_INT16S DrawnX1, DrawnY1, DrawnX2, DrawnY2;
+  GuiConst_INT16U TextLength[3];
+  GuiConst_INT16S ForeColorEnhance;
+  GuiConst_INT16S BackColorEnhance;
+  GuiConst_INT16S BarForeColorEnhance;
+  GuiConst_INT16S BarBackColorEnhance;
+#ifdef GuiConst_REL_COORD_ORIGO_INUSE
+  GuiConst_INT16S CoordOrigoX, CoordOrigoY;
+#endif
+#ifdef GuiConst_CLIPPING_SUPPORT_ON
+  GuiConst_INT16S ClipRectX1, ClipRectY1, ClipRectX2, ClipRectY2;
+#endif
+  GuiConst_INT16U PosCallbackNo;
+  GuiConst_INTCOLOR ForeColor, BackColor;
+  GuiConst_INTCOLOR BarForeColor, BarBackColor;
+  GuiConst_INT16U ForeColorIndex;
+  GuiConst_INT16U BackColorIndex;
+  GuiConst_INT16U BarForeColorIndex;
+  GuiConst_INT16U BarBackColorIndex;
+  GuiConst_TEXT PrefixGeneric *TextPtr[3];
+#ifdef GuiConst_REMOTE_TEXT_DATA
+  GuiConst_INT32U TextIndex[3];
+#endif
+#ifdef GuiConst_REMOTE_STRUCT_DATA
+  GuiConst_INT32U TextOffset[3];
+#endif
+  GuiConst_INT8U TextCnt;
+  GuiConst_INT8U Drawn;
+  GuiConst_INT8U ItemType;
+  GuiConst_INT8U FrameThickness;
+  GuiConst_INT8U FormatFieldWidth;
+  GuiConst_INT8U FormatDecimals;
+  GuiConst_INT8U FormatAlignment;
+  GuiConst_INT8U FormatFormat;
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  GuiConst_INT8S CursorFieldNo;
+  GuiConst_INT8U CursorFieldLevel;
+#endif
+#ifdef GuiConst_BLINK_SUPPORT_ON
+  GuiConst_INT8S BlinkFieldNo;
+#endif
+  GuiConst_INT8U UpdateType;
+  GuiConst_INT8U VarType;
+  GuiConst_INT8U LinePattern;
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  GuiConst_INT8U CursorScrollBoxIndex;
+#endif
+  CompUnion CompPars;
+} GuiLib_ItemRec;
+typedef GuiLib_ItemRec PrefixLocate * GuiLib_ItemRecPtr;
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+typedef struct
+{
+  GuiConst_INT16S X1, Y1, X2, Y2;
+  GuiConst_INT16U IndexNo;
+} GuiLib_TouchAreaRec;
+#endif
+//----------------------X-----------------------
+typedef struct
+{
+  void (*PosCallbackFunc) (GuiConst_INT16U IndexNo,
+                           GuiConst_INT16S X,
+                           GuiConst_INT16S Y);
+  GuiConst_INT16U IndexNo;
+  GuiConst_INT8U InUse;
+} GuiLib_PosCallbackRec;
+
+//----------------------X-----------------------
+#ifdef GuiConst_BLINK_SUPPORT_ON
+#ifndef GuiConst_BLINK_FIELDS_OFF
+typedef struct
+{
+  TextParRec TextPar;
+  GuiConst_INT16U CharNo;
+  GuiConst_INT16U CharCnt;
+  GuiConst_INT16S X1, X2;
+  GuiConst_INT16S Y1, Y2;
+  GuiConst_INT16S BlinkBoxX1, BlinkBoxX2;
+  GuiConst_INT16S BlinkBoxY1, BlinkBoxY2;
+  GuiConst_INT16S LineCnt;
+  GuiConst_INT16S BlindLinesAtTop;
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+  GuiConst_INT16S TextBoxScrollPos;
+#endif
+  GuiConst_TEXT PrefixGeneric *TextPtr;
+  GuiConst_INT8U InUse;
+  GuiConst_INT8U Active;
+  GuiConst_INT8U XSize;
+  GuiConst_INT8U ItemType;
+  GuiConst_INT8U VarType;
+  GuiConst_INT8U FormatFieldWidth;
+  GuiConst_INT8U FormatDecimals;
+  GuiConst_INT8U FormatAlignment;
+  GuiConst_INT8U FormatFormat;
+  GuiConst_INT8U PsNumWidth;
+  GuiConst_INT8U PsSpace;
+  GuiConst_INT8U BlinkBoxRate;
+  GuiConst_INT8U BlinkBoxState;
+  GuiConst_INT8U BlinkBoxInverted;
+  GuiConst_INT8U BlinkBoxLast;
+#ifdef GuiConst_ITEM_TEXTBLOCK_INUSE
+  GuiConst_INT8U YSize;
+  GuiConst_INT8S TextBoxLineDist;
+  GuiConst_INT8U TextBoxHorzAlignment;
+  GuiConst_INT8U TextBoxVertAlignment;
+#endif
+} GuiLib_BlinkTextItemRec;
+#endif // GuiConst_BLINK_FIELDS_OFF
+#endif // GuiConst_BLINK_SUPPORT_ON
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+typedef struct
+{
+  void (*ScrollLineDataFunc) (GuiConst_INT16S LineIndex);
+  GuiLib_ItemRec ScrollBoxItem;
+  GuiConst_INT16S X1;
+  GuiConst_INT16S Y1;
+  GuiConst_INT16S ScrollTopLine;
+  GuiConst_INT16U LastScrollTopLine;
+  GuiConst_INT16S LastMarkerLine;
+  GuiConst_INT16U ScrollActiveLine;
+  GuiConst_INT16U NumberOfLines;
+  GuiConst_INT16U MakeUpStructIndex;
+  GuiConst_INT16U ScrollVisibleLines;
+  GuiConst_INT16S LineVerticalOffset;
+  GuiConst_INT16S LineOffsetX;
+  GuiConst_INT16S LineOffsetY;
+  GuiConst_INT16S LineSizeX;
+  GuiConst_INT16S LineSizeY;
+  GuiConst_INT16S LineSizeY2;
+  GuiConst_INT16U LineStructIndex;
+  GuiConst_INT16S LineStructOffsetX;
+  GuiConst_INT16S LineStructOffsetY;
+  GuiConst_INT16U MarkerStructIndex[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INT16S MarkerStartLine[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INT16S MarkerSize[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INTCOLOR LineColor;
+  GuiConst_INT16U LineColorIndex;
+  GuiConst_INTCOLOR BackColor;
+  GuiConst_INT16U BackColorIndex;
+  GuiConst_INTCOLOR MarkerColor[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INT16U MarkerColorIndex[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INT8U InUse;
+  GuiConst_INT8U ScrollBoxType;
+  GuiConst_INT8U LineColorTransparent;
+  GuiConst_INT8U WrapMode;
+  GuiConst_INT8U ScrollStartOfs;
+  GuiConst_INT8U ScrollMode;
+  GuiConst_INT8U LineMarkerCount;
+  GuiConst_INT8U MarkerColorTransparent[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INT8U MarkerDrawingOrder[GuiConst_SCROLLITEM_MARKERS_MAX];
+  GuiConst_INT8U BarType;
+  GuiConst_INT8U IndicatorType;
+#ifndef GuiConst_SCROLLITEM_BAR_NONE
+  GuiConst_INT16S BarPositionX;
+  GuiConst_INT16S BarPositionY;
+  GuiConst_INT16S BarSizeX;
+  GuiConst_INT16S BarSizeY;
+  GuiConst_INT16U BarStructIndex;
+  GuiConst_INT16S BarMarkerLeftOffset;
+  GuiConst_INT16S BarMarkerRightOffset;
+  GuiConst_INT16S BarMarkerTopOffset;
+  GuiConst_INT16S BarMarkerBottomOffset;
+  GuiConst_INT16U BarMarkerIconOffsetX;
+  GuiConst_INT16U BarMarkerIconOffsetY;
+  GuiConst_INT16U BarMarkerBitmapIndex;
+  GuiConst_INT16U BarMarkerBitmapHeight;
+  GuiConst_INTCOLOR BarForeColor;
+  GuiConst_INT16U BarForeColorIndex;
+  GuiConst_INTCOLOR BarBackColor;
+  GuiConst_INT16U BarBackColorIndex;
+  GuiConst_INTCOLOR BarMarkerForeColor;
+  GuiConst_INT16U BarMarkerForeColorIndex;
+  GuiConst_INTCOLOR BarMarkerBackColor;
+  GuiConst_INT16U BarMarkerBackColorIndex;
+  GuiConst_INT8U BarMarkerBitmapIsTransparent;
+  GuiConst_INT8U BarMode;
+  GuiConst_INT8U BarTransparent;
+  GuiConst_INT8U BarThickness;
+  GuiConst_INT8U BarMarkerIconFont;
+  GuiConst_INT8U BarMarkerTransparent;
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR BarMarkerBitmapTranspColor;
+#endif // GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_TEXT PrefixLocate *BarIconPtr;
+#endif // GuiConst_SCROLLITEM_BAR_NONE
+#ifndef GuiConst_SCROLLITEM_INDICATOR_NONE
+  GuiConst_INT16S IndicatorPositionX;
+  GuiConst_INT16S IndicatorPositionY;
+  GuiConst_INT16S IndicatorSizeX;
+  GuiConst_INT16S IndicatorSizeY;
+  GuiConst_INT16U IndicatorStructIndex;
+  GuiConst_INT16S IndicatorMarkerLeftOffset;
+  GuiConst_INT16S IndicatorMarkerRightOffset;
+  GuiConst_INT16S IndicatorMarkerTopOffset;
+  GuiConst_INT16S IndicatorMarkerBottomOffset;
+  GuiConst_INT16U IndicatorMarkerIconFont;
+  GuiConst_INT16U IndicatorMarkerIconOffsetX;
+  GuiConst_INT16U IndicatorMarkerIconOffsetY;
+  GuiConst_INT16U IndicatorMarkerBitmapIndex;
+  GuiConst_INT16S IndicatorLine;
+  GuiConst_INTCOLOR IndicatorForeColor;
+  GuiConst_INT16U IndicatorForeColorIndex;
+  GuiConst_INTCOLOR IndicatorBackColor;
+  GuiConst_INT16U IndicatorBackColorIndex;
+  GuiConst_INTCOLOR IndicatorMarkerForeColor;
+  GuiConst_INT16U IndicatorMarkerForeColorIndex;
+  GuiConst_INTCOLOR IndicatorMarkerBackColor;
+  GuiConst_INT16U IndicatorMarkerBackColorIndex;
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_INTCOLOR IndicatorMarkerBitmapTranspColor;
+#endif // GuiConst_BITMAP_SUPPORT_ON
+  GuiConst_TEXT PrefixLocate *IndicatorIconPtr;
+  GuiConst_INT8U IndicatorMode;
+  GuiConst_INT8U IndicatorTransparent;
+  GuiConst_INT8U IndicatorThickness;
+  GuiConst_INT8U IndicatorMarkerTransparent;
+  GuiConst_INT8U IndicatorMarkerBitmapIsTransparent;
+#endif // GuiConst_SCROLLITEM_INDICATOR_NONE
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+  GuiConst_INT8U ContainsCursorFields;
+#endif // GuiConst_CURSOR_SUPPORT_ON
+} ScrollBoxRec;
+#endif // GuiConst_ITEM_SCROLLBOX_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+typedef struct
+{
+  GuiConst_INT32S NumbersMinValue;
+  GuiConst_INT32S NumbersMaxValue;
+  GuiConst_INT32S NumbersMinValueOrg;
+  GuiConst_INT32S NumbersMaxValueOrg;
+  GuiConst_INT32S NumbersStepMajor;
+  GuiConst_INT32S NumbersStepMinor;
+  GuiConst_INT32S Scale;
+  GuiConst_INT32U BitFlags;
+  GuiConst_INT16S Offset;
+  GuiConst_INT16S ArrowLength;
+  GuiConst_INT16S ArrowWidth;
+  GuiConst_INT16S TicksMajorLength;
+  GuiConst_INT16S TicksMajorWidth;
+  GuiConst_INT16S TicksMinorLength;
+  GuiConst_INT16S TicksMinorWidth;
+  GuiConst_INT16S NumbersAtEnd;
+  GuiConst_INT16S NumbersOffset;
+  GuiConst_INT8U Visible;
+  GuiConst_INT8U Line;
+  GuiConst_INT8U LineBetweenAxes;
+  GuiConst_INT8U LineNegative;
+  GuiConst_INT8U Arrow;
+  GuiConst_INT8U TicksMajor;
+  GuiConst_INT8U TicksMinor;
+  GuiConst_INT8U Numbers;
+  GuiConst_INT8U NumbersAtOrigo;
+  GuiConst_INT8U FormatFieldWidth;
+  GuiConst_INT8U FormatDecimals;
+  GuiConst_INT8U FormatAlignment;
+  GuiConst_INT8U FormatFormat;
+} GraphAxisRec;
+//----------------------X-----------------------
+typedef struct
+{
+  GuiLib_GraphDataPoint *DataPtr;
+  GuiConst_INT16U DataSize;
+  GuiConst_INT16U DataFirst;
+  GuiConst_INT16U DataCount;
+  GuiConst_INT16S Width;
+  GuiConst_INT16S Height;
+  GuiConst_INT16S Thickness;
+  GuiConst_INTCOLOR ForeColor, BackColor;
+  GuiConst_INT16U ForeColorIndex;
+  GuiConst_INT16U BackColorIndex;
+  GuiConst_INT8U Visible;
+  GuiConst_INT8U Representation;
+  GuiConst_INT8U BackColorTransparent;
+  GuiConst_INT8U AxisIndexX, AxisIndexY;
+} GraphDataSetRec;
+//----------------------X-----------------------
+typedef struct
+{
+  GuiLib_ItemRec GraphItem;
+  GraphAxisRec GraphAxes[GuiConst_GRAPH_AXES_MAX][2];
+  GraphDataSetRec GraphDataSets[GuiConst_GRAPH_DATASETS_MAX];
+  GuiConst_INT16S OrigoX, OrigoY;
+  GuiConst_INT16S OriginOffsetX, OriginOffsetY;
+  GuiConst_INTCOLOR ForeColor, BackColor;
+  GuiConst_INT16U ForeColorIndex;
+  GuiConst_INT16U BackColorIndex;
+  GuiConst_INT8U InUse;
+  GuiConst_INT8U GraphAxesCnt[2];
+  GuiConst_INT8U GraphDataSetCnt;
+} GraphItemRec;
+#endif //GuiConst_ITEM_GRAPH_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+typedef struct
+{
+  GuiConst_INT8U *BaseAddress;
+  GuiConst_INT16U X, Y;
+  GuiConst_INT16U LineSize;
+  GuiConst_INT16U Width, Height;
+  GuiConst_INT8U InUse;
+  GuiConst_INT8U SizeMode;
+  GuiConst_INT8U InitMode;
+} GraphicsLayerRec;
+typedef struct
+{
+  void (*GraphicsFilterFunc)
+     (GuiConst_INT8U *DestAddress,
+      GuiConst_INT16U DestLineSize,
+      GuiConst_INT8U *SourceAddress,
+      GuiConst_INT16U SourceLineSize,
+      GuiConst_INT16U Width,
+      GuiConst_INT16U Height,
+      GuiConst_INT32S FilterPars[10]);
+  void PrefixLocate *ParVarPtr[10];
+  GuiConst_INT32S ParValueNum[10];
+  GuiConst_INT16S SourceLayerIndexNo;
+  GuiConst_INT16S DestLayerIndexNo;
+  GuiConst_INT16S ContAtLayerIndexNo;
+  GuiConst_INT8U InUse;
+  GuiConst_INT8U ParVarType[10];
+} GraphicsFilterRec;
+#endif // GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+typedef struct
+{
+  GuiConst_INT16S Index;
+  GuiConst_INT16S X;
+  GuiConst_INT16S Y;
+  GuiConst_INT8U InUse;
+} BackgrBitmapRec;
+#endif // GuiConst_BITMAP_SUPPORT_ON
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+typedef struct
+{
+  GuiConst_INT16S index;
+  GuiConst_INT16S pos;
+} TextBoxRec;
+#endif
+//----------------------X-----------------------
+typedef struct
+{
+  GuiConst_INT16S X[2 * GuiLib_MEMORY_CNT];
+  GuiConst_INT16S Y[2 * GuiLib_MEMORY_CNT];
+  GuiConst_INTCOLOR C[GuiLib_MEMORY_CNT];
+} ItemMemory;
+//----------------------X-----------------------
+#define ITEM_NONE         0
+#define ITEM_AUTOREDRAW   1
+#define ITEM_CURSOR       2
+#define ITEM_TEXTBOX      4
+typedef struct
+{
+  PrefixLocate GuiLib_ItemRec  Item;
+  ItemMemory      Memory;
+  GuiConst_INT16S Prev;
+  GuiConst_INT16S Next;
+  GuiConst_INT16S Parent;
+  GuiConst_INT16S Padding;
+  GuiConst_INT8U  Valid;
+  GuiConst_INT8U  Level;
+  GuiConst_INT16U ValueSize;
+  GuiConst_INT8U  Value[GuiLib_AUTOREDRAW_MAX_VAR_SIZE];
+} AutoRedrawItems;
+//----------------------X-----------------------
+static GuiConst_INT8U GetItemByte(GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr);
+static GuiConst_INT16S GetItemWord(GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr);
+#ifdef GuiLib_COLOR_BYTESIZE_3
+static GuiConst_INT32S GetItemTriple(GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr);
+#endif
+#ifdef GuiLib_GETITEMLONG
+static GuiConst_INT32S GetItemLong(GuiConst_INT8U *PrefixLocate*PrefixLocate ItemDataPtrPtr);
+#endif
+#ifdef GuiConst_BLINK_SUPPORT_ON
+static void BlinkBox(void);
+#endif
+//----------------------X-----------------------
+void AutoRedraw_Init(void);
+void AutoRedraw_UpdateDrawn(GuiConst_INT16S I, PrefixLocate GuiLib_ItemRec * PrefixLocate Item);
+void AutoRedraw_Delete(GuiConst_INT16S I);
+void AutoRedraw_Destroy(void);
+GuiConst_INT8S AutoRedraw_GetLevel(GuiConst_INT16S I);
+GuiConst_INT8S AutoRedraw_ItemIsStruct(GuiConst_INT16S I);
+GuiConst_INT16S AutoRedraw_DeleteStruct(GuiConst_INT16S Struct_id);
+GuiConst_INT16S AutoRedraw_Reset(void);
+GuiConst_INT16S AutoRedraw_GetNext(GuiConst_INT16S I);
+GuiConst_INT16S AutoRedraw_Add(PrefixLocate GuiLib_ItemRec * PrefixLocate Item, GuiConst_INT16S Struct, GuiConst_INT8U Level);
+GuiConst_INT16S AutoRedraw_Insert(PrefixLocate GuiLib_ItemRec * PrefixLocate Item, GuiConst_INT16S Struct, GuiConst_INT8U Level);
+PrefixLocate GuiLib_ItemRec *AutoRedraw_GetItem(GuiConst_INT16S I);
+PrefixLocate ItemMemory     *AutoRedraw_GetItemMemory(GuiConst_INT16S I);
+GuiConst_INT8S RefreshColorVariable(GuiConst_INTCOLOR *comp, GuiConst_INT16U idx);
+void AutoRedraw_UpdateOnChange(GuiConst_INT16S I);
+void AutoRedraw_UpdateVar(GuiConst_INT16S I);
+GuiConst_INT8S AutoRedraw_VarChanged(GuiConst_INT16S I);
+#ifdef GuiConst_TEXTBOX_FIELDS_ON
+GuiConst_INT16S *TextBox_Scroll_GetPosRec(GuiConst_INT8U TextBoxIndex);
+GuiConst_INT16S AutoRedraw_InsertTextBox(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
+                  GuiConst_INT16S Struct,
+                  GuiConst_INT8U Level);
+void AutoRedraw_SetAsTextBox(GuiConst_INT16S I);
+GuiConst_INT16S AutoRedraw_GetTextBox(GuiConst_INT8S T, GuiConst_INT16S I);
+#endif
+#ifdef GuiConst_CURSOR_SUPPORT_ON
+void AutoRedraw_ResetCursor(void);
+GuiConst_INT16S AutoRedraw_InsertCursor(PrefixLocate GuiLib_ItemRec * PrefixLocate Item,
+                  GuiConst_INT16S Struct,
+                  GuiConst_INT8U Level);
+void AutoRedraw_SetAsCursor(GuiConst_INT16S I);
+GuiConst_INT16S AutoRedraw_IsOnlyCursor(GuiConst_INT16S I);
+GuiConst_INT16S AutoRedraw_GetCursor(GuiConst_INT8S C, GuiConst_INT16S I);
+GuiConst_INT8S AutoRedraw_GetCursorNumber(GuiConst_INT16S I);
+GuiConst_INT16S AutoRedraw_GetFirstCursor(void);
+GuiConst_INT16S AutoRedraw_GetLastCursor(void);
+GuiConst_INT16S AutoRedraw_GetNextCursor(GuiConst_INT8S C);
+GuiConst_INT16S AutoRedraw_GetPrevCursor(GuiConst_INT8S C);
+GuiConst_INT16S AutoRedraw_CheckCursorInheritance(GuiConst_INT16S N);
+#endif
+//----------------------X-----------------------
+typedef struct
+{
+  GuiConst_INT16S DrawnX1, DrawnY1, DrawnX2, DrawnY2;
+  GuiConst_INT16U Dummy1_16U;
+  GuiConst_INT16U Dummy2_16U;
+  GuiConst_INT16S Dummy1_16S;
+#ifdef GuiConst_ARAB_CHARS_INUSE
+  GuiConst_INT16S ArabicCharJoiningModeIndex[GuiConst_MAX_TEXT_LEN + 2];
+  GuiConst_INT8U ArabicCharJoiningMode[GuiConst_MAX_TEXT_LEN + 2];
+  GuiConst_INT8U ArabicCharJoiningModeBefore;
+  GuiConst_INT8U ArabicCharJoiningModeAfter;
+#endif
+  GuiConst_INT8U Drawn;
+  GuiConst_INT8U Dummy1_8U;
+  GuiConst_INT8U Dummy2_8U;
+  GuiConst_INT8U Dummy3_8U;
+} GuiLib_GLOBAL;
+typedef struct
+{
+  PrefixLocate GuiLib_ItemRec CurItem;
+  GuiLib_FontRecPtr CurFont;
+  GuiLib_StructPtr TopLevelStructure;
+  ItemMemory      Memory;
+  PrefixLocate AutoRedrawItems AutoRedraw[GuiConst_MAX_DYNAMIC_ITEMS];
+  GuiConst_INT8U PrefixLocate *ItemDataPtr;
+  GuiConst_INT8U *CurLayerBufPtr;
+  GuiConst_INT32U RefreshClock;
+  GuiConst_INT32U CurLayerBytes;
+  GuiConst_INT32U ItemTypeBit1, ItemTypeBit2;
+  GuiConst_INT16S AutoRedrawFirst;
+  GuiConst_INT16S AutoRedrawLast;
+  GuiConst_INT16S AutoRedrawLatest;
+  GuiConst_INT16S AutoRedrawNext;
+  GuiConst_INT16S AutoRedrawCount;
+  GuiConst_INT16S AutoRedrawParent;
+  GuiConst_INT16S AutoRedrawUpdate;
+  GuiConst_INT16S AutoRedrawInsertPoint;
+  GuiConst_INT32U CurLayerLineSize;
+  GuiConst_INT32U CurLayerWidth;
+  GuiConst_INT32U CurLayerHeight;
+  GuiConst_INT16S DisplayOrigoX, DisplayOrigoY;
+  GuiConst_INT16S LayerOrigoX, LayerOrigoY;
+  GuiConst_INT16S CoordOrigoX, CoordOrigoY;
+  GuiConst_INT16S InvertBoxX1, InvertBoxY1, InvertBoxX2, InvertBoxY2;
+  GuiConst_INT16S ItemX1, ItemY1;
+  GuiConst_INT16S ItemX2, ItemY2;
+  GuiConst_INT16S ItemR1, ItemR2;
+  GuiConst_INT16U X1VarIdx, Y1VarIdx, X2VarIdx, Y2VarIdx;
+  GuiConst_INT16U R1VarIdx, R2VarIdx;
+  GuiConst_INT16S BbX1, BbX2;
+  GuiConst_INT16S BbY1, BbY2;
+  GuiConst_INT16S DisplayLevel;
+  GuiConst_INT16S AutoRedrawSaveIndex;
+  GuiConst_INT16S ThicknessMemory;
+  GuiConst_INT16S FontWriteX1, FontWriteY1, FontWriteX2, FontWriteY2;
+  GuiConst_INT16U ColMemoryIndex[GuiLib_MEMORY_CNT];
+  GuiConst_INT8U TextPsMode[GuiConst_MAX_TEXT_LEN + 1];
+  GuiConst_CHAR  VarNumTextStr[GuiConst_MAX_VARNUM_TEXT_LEN + 1];
+  GuiConst_INT8U InvertBoxOn;
+  GuiConst_INT8U CommonByte0;
+  GuiConst_INT8U CommonByte1;
+  GuiConst_INT8U CommonByte2;
+  GuiConst_INT8U CommonByte3;
+  GuiConst_INT8U CommonByte4;
+  GuiConst_INT8U CommonByte5;
+  GuiConst_INT8U CommonByte6;
+  GuiConst_INT8U CommonByte7;
+  GuiConst_INT8U X1Mode, Y1Mode;
+  GuiConst_INT8U X2Mode, Y2Mode;
+  GuiConst_INT8U R1Mode, R2Mode;
+  GuiConst_INT8U X1MemoryRead, Y1MemoryRead;
+  GuiConst_INT8U X1MemoryWrite, Y1MemoryWrite;
+  GuiConst_INT8U X2MemoryRead, Y2MemoryRead;
+  GuiConst_INT8U X2MemoryWrite, Y2MemoryWrite;
+  GuiConst_INT8U R1MemoryRead, R2MemoryRead;
+  GuiConst_INT8U R1MemoryWrite, R2MemoryWrite;
+  GuiConst_INT8U X1VarType, Y1VarType, X2VarType, Y2VarType;
+  GuiConst_INT8U R1VarType, R2VarType;
+  GuiConst_INT8U DisplayWriting;
+  GuiConst_INT8U InitialDrawing;
+  GuiConst_INT8U DrawingLevel;
+  GuiConst_INT8U SwapColors;
+  GuiConst_INT8U BaseLayerDrawing;
+  GuiLib_PosCallbackRec PosCallbacks[GuiConst_POSCALLBACK_CNT];
+//----------------------X-----------------------
+  #ifdef GuiConst_TEXTBOX_FIELDS_ON
+    TextBoxRec TextBoxScrollPositions[GuiConst_TEXTBOX_FIELDS_MAX];
+  #endif
+//----------------------X-----------------------
+  #ifdef GuiConst_ITEM_TOUCHAREA_INUSE
+    GuiLib_TouchAreaRec TouchAreas[GuiConst_TOUCHAREA_CNT];
+    GuiConst_INT32S TouchAreaCnt;
+    GuiConst_INT32S TouchAdjustXMeasured[4];
+    GuiConst_INT32S TouchAdjustYMeasured[4];
+    GuiConst_INT32S TouchAdjustXTL, TouchAdjustYTL;
+    GuiConst_INT32S TouchAdjustXTR, TouchAdjustYTR;
+    GuiConst_INT32S TouchAdjustXBL, TouchAdjustYBL;
+    GuiConst_INT32S TouchAdjustXBR, TouchAdjustYBR;
+    GuiConst_INT16S TouchAdjustXTrue[4];
+    GuiConst_INT16S TouchAdjustYTrue[4];
+    GuiConst_INT8U TouchAdjustInUse[4];
+    GuiConst_INT8U TouchAdjustActive;
+    GuiConst_INT16S TouchConvertX, TouchConvertY;
+  #endif // GuiConst_ITEM_TOUCHAREA_INUSE
+//----------------------X-----------------------
+  #ifdef GuiConst_FLOAT_SUPPORT_ON
+    GuiConst_INT16S VarExponent;
+  #endif
+//----------------------X-----------------------
+  #ifdef GuiConst_CHARMODE_UNICODE
+    GuiConst_TEXT VarNumUnicodeTextStr[GuiConst_MAX_VARNUM_TEXT_LEN + 1];
+    GuiConst_TEXT UnicodeTextBuf[GuiConst_MAX_TEXT_LEN + 1];
+  #else
+    GuiConst_TEXT AnsiTextBuf[GuiConst_MAX_TEXT_LEN + 1];
+  #endif // GuiConst_CHARMODE_UNICODE
+//----------------------X-----------------------
+  #ifdef GuiConst_CURSOR_SUPPORT_ON
+    GuiConst_INT16S CursorFieldFound;
+    GuiConst_INT8U CursorInUse;
+    GuiConst_INT8U CursorActiveFieldFound;
+  #endif // GuiConst_CURSOR_SUPPORT_ON
+//----------------------X-----------------------
+  #ifdef GuiConst_BLINK_SUPPORT_ON
+    #ifndef GuiConst_BLINK_FIELDS_OFF
+      GuiLib_BlinkTextItemRec BlinkTextItems[GuiConst_BLINK_FIELDS_MAX];
+    #endif // GuiConst_BLINK_FIELDS_OFF
+    GuiConst_INT16S BlinkBoxX1, BlinkBoxY1, BlinkBoxX2, BlinkBoxY2;
+    GuiConst_INT16S BlinkBoxRate;
+    GuiConst_INT16S BlinkBoxState;
+    GuiConst_INT8U BlinkBoxInverted;
+  #endif // GuiConst_BLINK_SUPPORT_ON
+//----------------------X-----------------------
+  #ifdef GuiConst_CLIPPING_SUPPORT_ON
+    GuiConst_INT16S DisplayActiveAreaX1, DisplayActiveAreaY1;
+    GuiConst_INT16S DisplayActiveAreaX2, DisplayActiveAreaY2;
+    GuiConst_INT16S ClippingX1, ClippingY1, ClippingX2, ClippingY2;
+    GuiConst_INT16S ActiveAreaX1, ActiveAreaY1, ActiveAreaX2, ActiveAreaY2;
+    GuiConst_INT8U ClippingTotal;
+  #endif // GuiConst_CLIPPING_SUPPORT_ON
+//----------------------X-----------------------
+  #ifdef GuiConst_REMOTE_DATA
+    #ifdef GuiConst_REMOTE_FONT_DATA
+      GuiConst_INT32S CurRemoteFont;
+      GuiConst_INT8U GuiLib_RemoteFontBuffer[GuiConst_REMOTE_FONT_BUF_SIZE];
+    #endif // GuiConst_REMOTE_FONT_DATA
+    #ifdef GuiConst_REMOTE_STRUCT_DATA
+      GuiConst_INT32U RemoteStructOffset;
+      GuiConst_TEXT GuiLib_RemoteStructText[GuiConst_MAX_TEXT_LEN + 1];
+      GuiConst_INT8U GuiLib_RemoteStructBuffer[1];
+      GuiConst_INT8U GuiLib_RemoteItemBuffer[GuiConst_REMOTE_STRUCT_BUF_SIZE];
+    #endif // GuiConst_REMOTE_STRUCT_DATA
+    #ifdef GuiConst_REMOTE_BITMAP_DATA
+      GuiConst_INT32S CurRemoteBitmap;
+      GuiConst_INT8U GuiLib_RemoteBitmapBuffer[GuiConst_REMOTE_BITMAP_BUF_SIZE];
+    #endif // GuiConst_REMOTE_BITMAP_DATA
+    #ifdef GuiConst_REMOTE_TEXT_DATA
+      GuiConst_INT32S CurRemoteText;
+      GuiConst_INT32S RemoteTextTableOfs;
+      GuiConst_INT16U RemoteTextLen;
+      GuiConst_TEXT GuiLib_RemoteTextBuffer[GuiConst_REMOTE_TEXT_BUF_SIZE];
+    #endif // GuiConst_REMOTE_TEXT_DATA
+  #endif // GuiConst_REMOTE_DATA
+  #ifdef GuiConst_REMOTE_FONT_DATA
+    GuiConst_INT32U TextCharNdx[GuiConst_MAX_TEXT_LEN + 1];
+  #else
+    GuiConst_INT8U PrefixRom *TextCharPtrAry[GuiConst_MAX_TEXT_LEN + 1];
+  #endif // GuiConst_REMOTE_FONT_DATA
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_SCROLLBOX_INUSE
+  ScrollBoxRec ScrollBoxesAry[GuiConst_SCROLLITEM_BOXES_MAX];
+  GuiConst_INT8U NextScrollLineReading;
+  GuiConst_INT8U GlobalScrollBoxIndex;
+#endif // GuiConst_ITEM_SCROLLBOX_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_GRAPH_INUSE
+  GraphItemRec GraphAry[GuiConst_GRAPH_MAX];
+  GuiConst_INT16U GlobalGraphIndex;
+#endif
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+  GraphicsLayerRec GraphicsLayerList[GuiConst_GRAPHICS_LAYER_MAX];
+  GraphicsFilterRec GraphicsFilterList[GuiConst_GRAPHICS_FILTER_MAX];
+  GuiConst_INT16U GlobalGraphicsLayerIndex;
+  GuiConst_INT16U GlobalGraphicsFilterIndex;
+  GuiConst_INT16S GraphicsLayerLifo[GuiConst_GRAPHICS_LAYER_MAX];
+  GuiConst_INT8U LayerBuf[GuiConst_GRAPHICS_LAYER_BUF_BYTES];
+  GuiConst_INT8U GraphicsLayerLifoCnt;
+#endif // GuiConst_ITEM_GRAPHICS_LAYER_FILTER_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_ITEM_BUTTON_INUSE
+  GuiConst_INTCOLOR DisabledButtonColor;
+  GuiConst_INT16S   ButtonColorOverride;
+#endif // GuiConst_ITEM_BUTTON_INUSE
+//----------------------X-----------------------
+#ifdef GuiConst_BITMAP_SUPPORT_ON
+  BackgrBitmapRec BackgrBitmapAry[GuiConst_MAX_BACKGROUND_BITMAPS];
+  GuiConst_INT16U GlobalBackgrBitmapIndex;
+  GuiConst_INT16S BitmapWriteX2, BitmapWriteY2;
+  GuiConst_INT16S BitmapSizeX, BitmapSizeY;
+#endif // GuiConst_BITMAP_SUPPORT_ON
+} GuiLib_STATIC;
+
+#ifdef __cplusplus /* If this is a C++ compiler, end C linkage */
+}
+#endif
+
+//----------------------X-----------------------
+//----------------------X-----------------------
+
+
+#endif
+
+/* End of File */
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiConst.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiConst.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,135 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// Ensure that this header file is only included once
+#ifndef __GUICONST_H
+#define __GUICONST_H
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+#define GuiConst_PC_V6_0_9
+
+#define GuiConst_MICRO_LITTLE_ENDIAN
+#define GuiConst_CHAR    char
+#define GuiConst_INT8S   signed char
+#define GuiConst_INT8U   unsigned char
+#define GuiConst_INT16S  signed short
+#define GuiConst_INT16U  unsigned short
+#define GuiConst_INT32S  signed int
+#define GuiConst_INT32U  unsigned int
+
+#define GuiConst_PTR void *
+#define GuiConst_TEXT GuiConst_CHAR
+
+#define GuiConst_BITMAP_COMPRESSED
+
+#define GuiConst_DISPLAY_BUFFER_INTERMEDIATE
+#define GuiConst_DISPLAY_BUFFER_EASYGUI
+#define GuiConst_DISPLAY_LITTLE_ENDIAN
+#define GuiConst_DISPLAY_WIDTH            800
+#define GuiConst_DISPLAY_HEIGHT           480
+#define GuiConst_DISPLAY_WIDTH_HW         800
+#define GuiConst_DISPLAY_HEIGHT_HW        480
+#define GuiConst_CONTROLLER_COUNT_HORZ    1
+#define GuiConst_CONTROLLER_COUNT_VERT    1
+#define GuiConst_BYTES_PR_LINE            1600
+#define GuiConst_BYTE_LINES               480
+#define GuiConst_BYTES_PR_SECTION         1600
+#define GuiConst_LINES_PR_SECTION         480
+#define GuiConst_DISPLAY_BYTES            768000
+#define GuiConst_PIXELS_PER_BYTE          1
+
+#define GuiConst_BYTE_HORIZONTAL
+#define GuiConst_ROTATED_OFF
+
+#define GuiConst_COLOR_MODE_RGB
+#define GuiConst_COLOR_DEPTH_16
+#define GuiConst_COLOR_PLANES_1
+#define GuiConst_INTCOLOR                 GuiConst_INT16U
+#define GuiConst_COLOR_SIZE               16
+#define GuiConst_COLOR_MAX                65535
+#define GuiConst_COLOR_BYTE_SIZE          2
+#define GuiConst_PIXEL_BYTE_SIZE          2
+#define GuiConst_COLORCODING_MASK         0xFFFF
+#define GuiConst_COLORCODING_R_START      0
+#define GuiConst_COLORCODING_R_SIZE       5
+#define GuiConst_COLORCODING_R_MAX        31
+#define GuiConst_COLORCODING_R_MASK       0x001F
+#define GuiConst_COLORCODING_G_START      5
+#define GuiConst_COLORCODING_G_SIZE       6
+#define GuiConst_COLORCODING_G_MAX        63
+#define GuiConst_COLORCODING_G_MASK       0x07E0
+#define GuiConst_COLORCODING_B_START      11
+#define GuiConst_COLORCODING_B_SIZE       5
+#define GuiConst_COLORCODING_B_MAX        31
+#define GuiConst_COLORCODING_B_MASK       0xF800
+#define GuiConst_PIXEL_OFF                65535
+#define GuiConst_PIXEL_ON                 0
+
+
+#define GuiConst_CURSOR_SUPPORT_ON
+#define GuiConst_BLINK_SUPPORT_ON
+#define GuiConst_BITMAP_SUPPORT_ON
+#define GuiConst_CLIPPING_SUPPORT_ON
+#define GuiConst_FLOAT_SUPPORT_ON
+#define GuiConst_ADV_FONTS_ON
+
+#define GuiConst_CHARMODE_ANSI
+#define GuiConst_CURSOR_FIELDS_OFF
+#define GuiConst_BLINK_FIELDS_MAX         0
+#define GuiConst_BLINK_FIELDS_OFF
+#define GuiConst_BLINK_LF_COUNTS
+#define GuiConst_MAX_TEXT_LEN             80
+#define GuiConst_MAX_VARNUM_TEXT_LEN      12
+#define GuiConst_MAX_PARAGRAPH_LINE_CNT   50
+#define GuiConst_MAX_DYNAMIC_ITEMS        10
+#define GuiConst_MAX_BACKGROUND_BITMAPS   10
+#define GuiConst_TOUCHAREA_CNT            0
+#define GuiConst_POSCALLBACK_CNT          5
+#define GuiConst_CURSOR_MODE_STOP_TOP
+#define GuiConst_SCROLL_MODE_STOP_TOP
+
+#define GuiConst_DECIMAL_PERIOD
+
+#define GuiConst_AUTOREDRAW_MAX_VAR_SIZE  1
+
+#define GuiConst_LANGUAGE_CNT             1
+#define GuiConst_LANGUAGE_ACTIVE_CNT      1
+#define GuiConst_LANGUAGE_FIRST           0
+#define GuiConst_LANGUAGE_ALL_ACTIVE
+#define GuiConst_LANGUAGE_ENGLISH         0
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+#endif
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiFont.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiFont.c	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,5305 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+const GuiConst_INT8U Ch000000[16] =
+{
+  0,0,0,0,0,  1,1,1,1,1,
+  0,2,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000001[18] =
+{
+  1,0,0,1,2,  3,4,4,3,2,
+  0,5,
+  3,5,
+  0x12,
+  0x20,0xF8,0x20
+};
+const GuiConst_INT8U Ch000002[17] =
+{
+  2,2,2,1,1,  2,2,2,2,1,
+  1,2,
+  7,3,
+  0x02,
+  0x40,0x80
+};
+const GuiConst_INT8U Ch000003[16] =
+{
+  2,0,0,2,2,  2,4,4,2,2,
+  0,5,
+  5,1,
+  0x00,
+  0xF8
+};
+const GuiConst_INT8U Ch000004[16] =
+{
+  2,2,2,2,2,  2,2,2,2,2,
+  2,1,
+  8,1,
+  0x00,
+  0x80
+};
+const GuiConst_INT8U Ch000005[20] =
+{
+  1,0,0,1,2,  3,4,4,3,2,
+  0,5,
+  2,7,
+  0x18,
+  0x20,0x50,0x88,0x50,0x20
+};
+const GuiConst_INT8U Ch000006[18] =
+{
+  1,1,2,2,1,  2,2,2,2,2,
+  1,2,
+  2,7,
+  0x78,
+  0x40,0xC0,0x40
+};
+const GuiConst_INT8U Ch000007[22] =
+{
+  0,0,0,0,2,  4,4,3,4,2,
+  0,5,
+  2,7,
+  0x00,
+  0x70,0x88,0x08,0x30,0x40,0x80,0xF8
+};
+const GuiConst_INT8U Ch000008[22] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  2,7,
+  0x00,
+  0x70,0x88,0x08,0x30,0x08,0x88,0x70
+};
+const GuiConst_INT8U Ch000009[21] =
+{
+  1,0,0,1,2,  3,4,4,3,2,
+  0,5,
+  2,7,
+  0x40,
+  0x10,0x30,0x50,0x90,0xF8,0x10
+};
+const GuiConst_INT8U Ch000010[21] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  2,7,
+  0x10,
+  0xF8,0x80,0xF0,0x08,0x88,0x70
+};
+const GuiConst_INT8U Ch000011[21] =
+{
+  1,0,0,0,2,  3,4,4,4,2,
+  0,5,
+  2,7,
+  0x20,
+  0x30,0x40,0x80,0xF0,0x88,0x70
+};
+const GuiConst_INT8U Ch000012[21] =
+{
+  0,1,0,0,2,  4,4,3,1,2,
+  0,5,
+  2,7,
+  0x04,
+  0xF8,0x08,0x10,0x20,0x40,0x80
+};
+const GuiConst_INT8U Ch000013[20] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  2,7,
+  0x24,
+  0x70,0x88,0x70,0x88,0x70
+};
+const GuiConst_INT8U Ch000014[21] =
+{
+  0,0,0,1,2,  4,4,4,3,2,
+  0,5,
+  2,7,
+  0x04,
+  0x70,0x88,0x78,0x08,0x10,0x60
+};
+const GuiConst_INT8U Ch000015[18] =
+{
+  2,2,2,2,2,  2,2,2,2,2,
+  2,1,
+  4,5,
+  0x0C,
+  0x80,0x00,0x80
+};
+const GuiConst_INT8U Ch000016[20] =
+{
+  1,0,0,0,2,  3,4,4,4,2,
+  0,5,
+  2,7,
+  0x44,
+  0x20,0x50,0x88,0xF8,0x88
+};
+const GuiConst_INT8U Ch000017[20] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  2,7,
+  0x24,
+  0xF0,0x88,0xF0,0x88,0xF0
+};
+const GuiConst_INT8U Ch000018[20] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  2,7,
+  0x18,
+  0x70,0x88,0x80,0x88,0x70
+};
+const GuiConst_INT8U Ch000019[18] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  2,7,
+  0x3C,
+  0xF0,0x88,0xF0
+};
+const GuiConst_INT8U Ch000020[20] =
+{
+  0,0,0,0,2,  4,3,3,4,2,
+  0,5,
+  2,7,
+  0x24,
+  0xF8,0x80,0xF0,0x80,0xF8
+};
+const GuiConst_INT8U Ch000021[19] =
+{
+  0,0,0,0,2,  4,3,3,2,2,
+  0,5,
+  2,7,
+  0x64,
+  0xF8,0x80,0xF0,0x80
+};
+const GuiConst_INT8U Ch000022[18] =
+{
+  0,0,0,0,1,  0,3,3,3,2,
+  0,4,
+  2,7,
+  0x72,
+  0x80,0xE0,0x90
+};
+const GuiConst_INT8U Ch000023[17] =
+{
+  0,0,0,0,0,  5,5,5,5,5,
+  0,6,
+  0,11,
+  0xFE,0x07,
+  0xFC
+};
+const GuiConst_INT8U Ch000024[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000025[18] =
+{
+  2,0,0,2,2,  3,5,5,3,3,
+  0,6,
+  3,5,
+  0x12,
+  0x30,0xFC,0x30
+};
+const GuiConst_INT8U Ch000026[17] =
+{
+  2,2,2,1,1,  2,2,3,3,2,
+  1,3,
+  7,3,
+  0x02,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000027[16] =
+{
+  2,0,0,2,2,  3,5,5,3,3,
+  0,6,
+  5,1,
+  0x00,
+  0xFC
+};
+const GuiConst_INT8U Ch000028[16] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  7,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000029[20] =
+{
+  1,0,0,1,2,  4,5,5,4,3,
+  0,6,
+  2,7,
+  0x18,
+  0x30,0x78,0xCC,0x78,0x30
+};
+const GuiConst_INT8U Ch000030[19] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  2,7,
+  0x70,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000031[22] =
+{
+  0,0,0,0,2,  5,5,4,5,3,
+  0,6,
+  2,7,
+  0x00,
+  0x78,0xCC,0x0C,0x38,0x60,0xC0,0xFC
+};
+const GuiConst_INT8U Ch000032[22] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  2,7,
+  0x00,
+  0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000033[20] =
+{
+  1,0,0,3,2,  4,4,5,4,3,
+  0,6,
+  2,7,
+  0x48,
+  0x38,0x78,0xD8,0xFC,0x18
+};
+const GuiConst_INT8U Ch000034[21] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  2,7,
+  0x10,
+  0xFC,0xC0,0xF8,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000035[21] =
+{
+  1,0,0,0,2,  4,4,5,5,3,
+  0,6,
+  2,7,
+  0x20,
+  0x38,0x60,0xC0,0xF8,0xCC,0x78
+};
+const GuiConst_INT8U Ch000036[20] =
+{
+  0,1,2,1,2,  5,5,4,3,3,
+  0,6,
+  2,7,
+  0x28,
+  0xFC,0x0C,0x18,0x30,0x60
+};
+const GuiConst_INT8U Ch000037[20] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  2,7,
+  0x24,
+  0x78,0xCC,0x78,0xCC,0x78
+};
+const GuiConst_INT8U Ch000038[21] =
+{
+  0,0,1,1,2,  5,5,5,4,3,
+  0,6,
+  2,7,
+  0x04,
+  0x78,0xCC,0x7C,0x0C,0x18,0x70
+};
+const GuiConst_INT8U Ch000039[18] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  3,6,
+  0x2A,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000040[20] =
+{
+  1,0,0,0,2,  4,5,5,5,3,
+  0,6,
+  2,7,
+  0x48,
+  0x30,0x78,0xCC,0xFC,0xCC
+};
+const GuiConst_INT8U Ch000041[20] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  2,7,
+  0x24,
+  0xF8,0xCC,0xF8,0xCC,0xF8
+};
+const GuiConst_INT8U Ch000042[20] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  2,7,
+  0x18,
+  0x78,0xCC,0xC0,0xCC,0x78
+};
+const GuiConst_INT8U Ch000043[20] =
+{
+  0,0,0,0,2,  4,5,5,4,3,
+  0,6,
+  2,7,
+  0x18,
+  0xF0,0xD8,0xCC,0xD8,0xF0
+};
+const GuiConst_INT8U Ch000044[20] =
+{
+  0,0,0,0,2,  5,4,4,5,3,
+  0,6,
+  2,7,
+  0x24,
+  0xFC,0xC0,0xF8,0xC0,0xFC
+};
+const GuiConst_INT8U Ch000045[19] =
+{
+  0,0,0,0,2,  5,4,4,2,3,
+  0,6,
+  2,7,
+  0x64,
+  0xFC,0xC0,0xF8,0xC0
+};
+const GuiConst_INT8U Ch000046[18] =
+{
+  0,0,0,0,2,  1,4,4,4,2,
+  0,5,
+  2,7,
+  0x72,
+  0xC0,0xF0,0xD8
+};
+const GuiConst_INT8U Ch000047[17] =
+{
+  0,0,0,0,0,  6,6,6,6,6,
+  0,7,
+  0,11,
+  0xFE,0x07,
+  0xFE
+};
+const GuiConst_INT8U Ch000048[16] =
+{
+  0,0,0,0,0,  0,0,0,0,0,
+  0,1,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000049[18] =
+{
+  1,0,0,1,1,  1,2,2,1,1,
+  0,3,
+  4,3,
+  0x00,
+  0x40,0xE0,0x40
+};
+const GuiConst_INT8U Ch000050[17] =
+{
+  1,1,1,0,0,  1,1,1,1,0,
+  0,2,
+  7,3,
+  0x02,
+  0x40,0x80
+};
+const GuiConst_INT8U Ch000051[16] =
+{
+  1,0,0,1,1,  1,2,2,1,1,
+  0,3,
+  5,1,
+  0x00,
+  0xE0
+};
+const GuiConst_INT8U Ch000052[16] =
+{
+  1,1,1,1,1,  1,1,1,1,1,
+  1,1,
+  8,1,
+  0x00,
+  0x80
+};
+const GuiConst_INT8U Ch000053[18] =
+{
+  1,0,0,1,1,  1,2,2,1,1,
+  0,3,
+  2,7,
+  0x3C,
+  0x40,0xA0,0x40
+};
+const GuiConst_INT8U Ch000054[18] =
+{
+  1,0,1,1,0,  1,1,1,1,1,
+  0,2,
+  2,7,
+  0x78,
+  0x40,0xC0,0x40
+};
+const GuiConst_INT8U Ch000055[21] =
+{
+  1,0,0,0,1,  1,2,1,2,1,
+  0,3,
+  2,7,
+  0x20,
+  0x40,0xA0,0x20,0x40,0x80,0xE0
+};
+const GuiConst_INT8U Ch000056[22] =
+{
+  1,0,0,1,1,  1,2,2,1,1,
+  0,3,
+  2,7,
+  0x00,
+  0x40,0xA0,0x20,0x40,0x20,0xA0,0x40
+};
+const GuiConst_INT8U Ch000057[20] =
+{
+  1,0,0,1,1,  2,2,3,2,2,
+  0,4,
+  2,7,
+  0x48,
+  0x20,0x60,0xA0,0xF0,0x20
+};
+const GuiConst_INT8U Ch000058[21] =
+{
+  0,0,0,1,1,  2,2,2,1,1,
+  0,3,
+  2,7,
+  0x10,
+  0xE0,0x80,0xC0,0x20,0xA0,0x40
+};
+const GuiConst_INT8U Ch000059[20] =
+{
+  1,0,0,1,1,  2,2,2,1,1,
+  0,3,
+  2,7,
+  0x30,
+  0x60,0x80,0xC0,0xA0,0x40
+};
+const GuiConst_INT8U Ch000060[18] =
+{
+  0,1,1,1,1,  2,2,1,1,1,
+  0,3,
+  2,7,
+  0x74,
+  0xE0,0x20,0x40
+};
+const GuiConst_INT8U Ch000061[20] =
+{
+  1,0,0,1,1,  1,2,2,1,1,
+  0,3,
+  2,7,
+  0x24,
+  0x40,0xA0,0x40,0xA0,0x40
+};
+const GuiConst_INT8U Ch000062[20] =
+{
+  1,0,0,0,1,  1,2,2,1,1,
+  0,3,
+  2,7,
+  0x0C,
+  0x40,0xA0,0x60,0x20,0xC0
+};
+const GuiConst_INT8U Ch000063[18] =
+{
+  1,1,1,1,1,  1,1,1,1,1,
+  1,1,
+  4,5,
+  0x0C,
+  0x80,0x00,0x80
+};
+const GuiConst_INT8U Ch000064[19] =
+{
+  1,0,0,0,1,  1,2,2,2,1,
+  0,3,
+  2,7,
+  0x4C,
+  0x40,0xA0,0xE0,0xA0
+};
+const GuiConst_INT8U Ch000065[20] =
+{
+  0,0,0,0,0,  1,2,2,1,0,
+  0,3,
+  2,7,
+  0x24,
+  0xC0,0xA0,0xC0,0xA0,0xC0
+};
+const GuiConst_INT8U Ch000066[20] =
+{
+  0,0,0,0,0,  1,2,2,1,0,
+  0,3,
+  2,7,
+  0x18,
+  0x40,0xA0,0x80,0xA0,0x40
+};
+const GuiConst_INT8U Ch000067[18] =
+{
+  0,0,0,0,0,  1,2,2,1,0,
+  0,3,
+  2,7,
+  0x3C,
+  0xC0,0xA0,0xC0
+};
+const GuiConst_INT8U Ch000068[20] =
+{
+  0,0,0,0,0,  2,1,1,2,0,
+  0,3,
+  2,7,
+  0x24,
+  0xE0,0x80,0xC0,0x80,0xE0
+};
+const GuiConst_INT8U Ch000069[19] =
+{
+  0,0,0,0,0,  2,1,1,0,1,
+  0,3,
+  2,7,
+  0x64,
+  0xE0,0x80,0xC0,0x80
+};
+const GuiConst_INT8U Ch000070[18] =
+{
+  0,0,0,0,1,  0,1,2,2,1,
+  0,3,
+  2,7,
+  0x72,
+  0x80,0xC0,0xA0
+};
+const GuiConst_INT8U Ch000071[17] =
+{
+  0,0,0,0,0,  4,4,4,4,4,
+  0,5,
+  0,11,
+  0xFE,0x07,
+  0xF8
+};
+const GuiConst_INT8U Ch000072[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000073[18] =
+{
+  2,1,0,2,2,  3,4,5,3,3,
+  0,6,
+  5,5,
+  0x12,
+  0x30,0xFC,0x30
+};
+const GuiConst_INT8U Ch000074[17] =
+{
+  2,2,2,1,2,  2,2,2,3,2,
+  1,3,
+  10,3,
+  0x02,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000075[16] =
+{
+  2,1,0,2,2,  2,3,4,2,2,
+  0,5,
+  7,2,
+  0x02,
+  0xF8
+};
+const GuiConst_INT8U Ch000076[16] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  10,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000077[19] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  3,9,
+  0xFC,0x00,
+  0x78,0xCC,0x78
+};
+const GuiConst_INT8U Ch000078[20] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  3,9,
+  0xF0,0x01,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000079[24] =
+{
+  0,0,0,0,2,  5,5,3,5,3,
+  0,6,
+  3,9,
+  0x80,0x00,
+  0x78,0xCC,0x0C,0x18,0x30,0x60,0xC0,0xFC
+};
+const GuiConst_INT8U Ch000080[24] =
+{
+  0,0,1,0,2,  5,5,5,5,3,
+  0,6,
+  3,9,
+  0x40,0x00,
+  0x78,0xCC,0x04,0x0C,0x18,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000081[23] =
+{
+  2,1,0,1,3,  5,5,6,5,3,
+  0,7,
+  3,9,
+  0x20,0x01,
+  0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C
+};
+const GuiConst_INT8U Ch000082[22] =
+{
+  0,0,1,0,2,  5,4,5,5,3,
+  0,6,
+  3,9,
+  0x64,0x00,
+  0xFC,0xC0,0xF8,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000083[22] =
+{
+  1,0,0,0,2,  4,4,5,5,3,
+  0,6,
+  3,9,
+  0xE0,0x00,
+  0x38,0x60,0xC0,0xF8,0xCC,0x78
+};
+const GuiConst_INT8U Ch000084[20] =
+{
+  0,1,2,2,2,  5,5,4,3,3,
+  0,6,
+  3,9,
+  0xB4,0x01,
+  0xFC,0x0C,0x18,0x30
+};
+const GuiConst_INT8U Ch000085[21] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  3,9,
+  0xCC,0x00,
+  0x78,0xCC,0x78,0xCC,0x78
+};
+const GuiConst_INT8U Ch000086[22] =
+{
+  0,0,0,1,2,  5,5,5,4,3,
+  0,6,
+  3,9,
+  0x1C,0x00,
+  0x78,0xCC,0x7C,0x0C,0x18,0x70
+};
+const GuiConst_INT8U Ch000087[18] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  5,7,
+  0x5A,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000088[21] =
+{
+  2,1,0,0,2,  3,4,5,5,3,
+  0,6,
+  3,9,
+  0x2A,0x01,
+  0x30,0x78,0xCC,0xFC,0xCC
+};
+const GuiConst_INT8U Ch000089[21] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  3,9,
+  0xCC,0x00,
+  0xF8,0xCC,0xF8,0xCC,0xF8
+};
+const GuiConst_INT8U Ch000090[21] =
+{
+  0,0,0,0,2,  5,5,4,5,3,
+  0,6,
+  3,9,
+  0x78,0x00,
+  0x78,0xCC,0xC0,0xCC,0x78
+};
+const GuiConst_INT8U Ch000091[21] =
+{
+  0,0,0,0,2,  4,5,5,4,3,
+  0,6,
+  3,9,
+  0x78,0x00,
+  0xF0,0xD8,0xCC,0xD8,0xF0
+};
+const GuiConst_INT8U Ch000092[21] =
+{
+  0,0,0,0,2,  4,3,3,4,2,
+  0,5,
+  3,9,
+  0xCC,0x00,
+  0xF8,0xC0,0xF0,0xC0,0xF8
+};
+const GuiConst_INT8U Ch000093[20] =
+{
+  0,0,0,0,2,  4,3,3,1,2,
+  0,5,
+  3,9,
+  0xCC,0x01,
+  0xF8,0xC0,0xF0,0xC0
+};
+const GuiConst_INT8U Ch000094[19] =
+{
+  0,0,0,0,2,  3,5,5,5,3,
+  0,6,
+  3,9,
+  0xF2,0x01,
+  0xC0,0xF8,0xCC
+};
+const GuiConst_INT8U Ch000095[18] =
+{
+  0,0,0,0,0,  8,8,8,8,8,
+  0,9,
+  0,14,
+  0xFE,0x3F,
+  0xFF,0x80
+};
+const GuiConst_INT8U Ch000096[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000097[18] =
+{
+  3,1,0,3,3,  4,6,7,4,4,
+  0,8,
+  5,7,
+  0x66,
+  0x18,0xFF,0x18
+};
+const GuiConst_INT8U Ch000098[17] =
+{
+  3,3,3,3,2,  3,3,3,4,4,
+  2,3,
+  12,4,
+  0x06,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000099[16] =
+{
+  3,1,0,3,3,  4,6,7,4,4,
+  0,8,
+  8,1,
+  0x00,
+  0xFF
+};
+const GuiConst_INT8U Ch000100[16] =
+{
+  3,3,3,3,3,  4,4,4,4,4,
+  3,2,
+  12,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000101[21] =
+{
+  1,0,0,1,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0xF4,0x02,
+  0x3C,0x66,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000102[20] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  3,11,
+  0xF0,0x07,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000103[25] =
+{
+  1,0,1,0,3,  6,7,6,7,4,
+  0,8,
+  3,11,
+  0x08,0x02,
+  0x3C,0x66,0xC3,0x03,0x0E,0x38,0x60,0xC0,0xFF
+};
+const GuiConst_INT8U Ch000104[27] =
+{
+  1,0,4,1,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0x00,0x00,
+  0x3C,0x66,0xC3,0x03,0x06,0x0C,0x06,0x03,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000105[22] =
+{
+  2,1,0,4,3,  5,5,7,5,4,
+  0,8,
+  3,11,
+  0x54,0x06,
+  0x1C,0x3C,0x6C,0xCC,0xFF,0x0C
+};
+const GuiConst_INT8U Ch000106[24] =
+{
+  0,0,1,1,3,  7,6,7,6,4,
+  0,8,
+  3,11,
+  0xC4,0x00,
+  0xFF,0xC0,0xFC,0xE6,0x03,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000107[25] =
+{
+  2,0,0,1,3,  6,5,7,6,4,
+  0,8,
+  3,11,
+  0x80,0x01,
+  0x1E,0x30,0x60,0xC0,0xFC,0xE6,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000108[22] =
+{
+  0,3,3,2,3,  7,7,5,4,4,
+  0,8,
+  3,11,
+  0x54,0x05,
+  0xFF,0x03,0x06,0x0C,0x18,0x30
+};
+const GuiConst_INT8U Ch000109[25] =
+{
+  1,0,0,1,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0x08,0x01,
+  0x3C,0x66,0xC3,0x66,0x3C,0x66,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000110[25] =
+{
+  1,0,1,1,3,  6,7,7,5,4,
+  0,8,
+  3,11,
+  0x18,0x00,
+  0x3C,0x66,0xC3,0x67,0x3F,0x03,0x06,0x0C,0x78
+};
+const GuiConst_INT8U Ch000111[18] =
+{
+  3,3,3,3,3,  4,4,4,4,4,
+  3,2,
+  6,8,
+  0xBA,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000112[21] =
+{
+  2,2,1,0,3,  5,5,6,7,4,
+  0,8,
+  3,11,
+  0xDA,0x04,
+  0x18,0x3C,0x66,0xFF,0xC3
+};
+const GuiConst_INT8U Ch000113[25] =
+{
+  0,0,0,0,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0x08,0x01,
+  0xFC,0xC6,0xC3,0xC6,0xFC,0xC6,0xC3,0xC6,0xFC
+};
+const GuiConst_INT8U Ch000114[21] =
+{
+  1,0,0,1,3,  7,6,6,7,4,
+  0,8,
+  3,11,
+  0xF8,0x01,
+  0x3E,0x63,0xC0,0x63,0x3E
+};
+const GuiConst_INT8U Ch000115[21] =
+{
+  0,0,0,0,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0xF8,0x01,
+  0xFC,0xC6,0xC3,0xC6,0xFC
+};
+const GuiConst_INT8U Ch000116[21] =
+{
+  0,0,0,0,3,  7,5,5,7,4,
+  0,8,
+  3,11,
+  0x9C,0x03,
+  0xFF,0xC0,0xFC,0xC0,0xFF
+};
+const GuiConst_INT8U Ch000117[20] =
+{
+  0,0,0,0,3,  7,5,5,1,4,
+  0,8,
+  3,11,
+  0x9C,0x07,
+  0xFF,0xC0,0xFC,0xC0
+};
+const GuiConst_INT8U Ch000118[20] =
+{
+  0,0,0,0,3,  1,5,6,6,3,
+  0,7,
+  3,11,
+  0xC6,0x07,
+  0xC0,0xF8,0xEC,0xC6
+};
+const GuiConst_INT8U Ch000119[19] =
+{
+  0,0,0,0,0,  8,8,8,8,8,
+  0,9,
+  0,17,
+  0xFE,0xFF,0x01,
+  0xFF,0x80
+};
+const GuiConst_INT8U Ch000120[16] =
+{
+  0,0,0,0,0,  1,1,1,1,1,
+  0,2,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000121[18] =
+{
+  2,0,0,2,2,  3,5,5,3,3,
+  0,6,
+  5,7,
+  0x66,
+  0x30,0xFC,0x30
+};
+const GuiConst_INT8U Ch000122[17] =
+{
+  3,3,3,3,2,  3,3,3,4,4,
+  2,3,
+  12,4,
+  0x06,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000123[16] =
+{
+  3,1,0,3,3,  4,6,6,4,4,
+  0,7,
+  8,1,
+  0x00,
+  0xFE
+};
+const GuiConst_INT8U Ch000124[16] =
+{
+  3,3,3,3,3,  4,4,4,4,4,
+  3,2,
+  12,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000125[21] =
+{
+  1,0,0,1,3,  5,6,6,5,3,
+  0,7,
+  3,11,
+  0xF4,0x02,
+  0x38,0x6C,0xC6,0x6C,0x38
+};
+const GuiConst_INT8U Ch000126[20] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  3,11,
+  0xF0,0x07,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000127[25] =
+{
+  1,0,1,0,2,  5,6,5,6,3,
+  0,7,
+  3,11,
+  0x08,0x02,
+  0x38,0x6C,0xC6,0x0C,0x18,0x30,0x60,0xC0,0xFE
+};
+const GuiConst_INT8U Ch000128[27] =
+{
+  1,0,3,1,2,  5,6,6,5,3,
+  0,7,
+  3,11,
+  0x00,0x00,
+  0x38,0x6C,0xC6,0x06,0x0C,0x18,0x0C,0x06,0xC6,0x6C,0x38
+};
+const GuiConst_INT8U Ch000129[22] =
+{
+  3,1,0,4,3,  5,5,6,5,3,
+  0,7,
+  3,11,
+  0xAA,0x04,
+  0x1C,0x3C,0x6C,0xCC,0xFE,0x0C
+};
+const GuiConst_INT8U Ch000130[24] =
+{
+  0,0,1,1,3,  6,5,6,5,3,
+  0,7,
+  3,11,
+  0xC4,0x00,
+  0xFE,0xC0,0xF8,0xCC,0x06,0xC6,0x6C,0x38
+};
+const GuiConst_INT8U Ch000131[25] =
+{
+  2,0,0,1,3,  5,4,6,5,3,
+  0,7,
+  3,11,
+  0x80,0x01,
+  0x1C,0x30,0x60,0xC0,0xF8,0xEC,0xC6,0x6C,0x38
+};
+const GuiConst_INT8U Ch000132[22] =
+{
+  0,2,2,1,2,  6,6,4,3,3,
+  0,7,
+  3,11,
+  0x54,0x05,
+  0xFE,0x06,0x0C,0x18,0x30,0x60
+};
+const GuiConst_INT8U Ch000133[25] =
+{
+  1,0,0,1,3,  5,6,6,5,3,
+  0,7,
+  3,11,
+  0x08,0x01,
+  0x38,0x6C,0xC6,0x6C,0x38,0x6C,0xC6,0x6C,0x38
+};
+const GuiConst_INT8U Ch000134[25] =
+{
+  1,0,1,1,2,  5,6,6,4,3,
+  0,7,
+  3,11,
+  0x18,0x00,
+  0x38,0x6C,0xC6,0x6E,0x3E,0x06,0x0C,0x18,0x70
+};
+const GuiConst_INT8U Ch000135[18] =
+{
+  3,3,3,3,3,  4,4,4,4,4,
+  3,2,
+  6,8,
+  0xBA,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000136[22] =
+{
+  2,1,0,0,3,  4,5,6,6,3,
+  0,7,
+  3,11,
+  0xD2,0x04,
+  0x38,0x7C,0x6C,0xC6,0xFE,0xC6
+};
+const GuiConst_INT8U Ch000137[25] =
+{
+  0,0,0,0,2,  5,6,6,5,3,
+  0,7,
+  3,11,
+  0x08,0x01,
+  0xF8,0xCC,0xC6,0xCC,0xF8,0xCC,0xC6,0xCC,0xF8
+};
+const GuiConst_INT8U Ch000138[21] =
+{
+  1,0,0,1,3,  6,5,5,6,3,
+  0,7,
+  3,11,
+  0xF8,0x01,
+  0x3C,0x66,0xC0,0x66,0x3C
+};
+const GuiConst_INT8U Ch000139[21] =
+{
+  0,0,0,0,2,  5,6,6,5,3,
+  0,7,
+  3,11,
+  0xF8,0x01,
+  0xF8,0xCC,0xC6,0xCC,0xF8
+};
+const GuiConst_INT8U Ch000140[21] =
+{
+  0,0,0,0,3,  6,4,4,6,3,
+  0,7,
+  3,11,
+  0x9C,0x03,
+  0xFE,0xC0,0xF8,0xC0,0xFE
+};
+const GuiConst_INT8U Ch000141[20] =
+{
+  0,0,0,0,3,  6,4,4,1,3,
+  0,7,
+  3,11,
+  0x9C,0x07,
+  0xFE,0xC0,0xF8,0xC0
+};
+const GuiConst_INT8U Ch000142[19] =
+{
+  0,0,0,0,2,  1,5,5,5,3,
+  0,6,
+  3,11,
+  0xE6,0x07,
+  0xC0,0xF8,0xCC
+};
+const GuiConst_INT8U Ch000143[18] =
+{
+  0,0,0,0,0,  7,7,7,7,7,
+  0,8,
+  0,17,
+  0xFE,0xFF,0x01,
+  0xFF
+};
+const GuiConst_INT8U Ch000144[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000145[18] =
+{
+  2,0,0,2,2,  2,4,4,2,2,
+  0,5,
+  5,7,
+  0x66,
+  0x20,0xF8,0x20
+};
+const GuiConst_INT8U Ch000146[17] =
+{
+  1,1,1,1,1,  2,2,2,2,1,
+  0,3,
+  12,3,
+  0x02,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000147[16] =
+{
+  2,0,0,2,2,  2,4,4,2,2,
+  0,5,
+  8,1,
+  0x00,
+  0xF8
+};
+const GuiConst_INT8U Ch000148[16] =
+{
+  1,1,1,1,1,  2,2,2,2,2,
+  1,2,
+  12,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000149[21] =
+{
+  1,0,0,1,2,  3,4,4,3,2,
+  0,5,
+  3,11,
+  0xF8,0x01,
+  0x20,0x50,0x88,0x50,0x20
+};
+const GuiConst_INT8U Ch000150[19] =
+{
+  1,2,2,2,1,  2,2,2,2,2,
+  1,2,
+  3,11,
+  0xF8,0x07,
+  0x40,0xC0,0x40
+};
+const GuiConst_INT8U Ch000151[24] =
+{
+  0,1,0,0,2,  4,4,2,4,2,
+  0,5,
+  3,11,
+  0x84,0x02,
+  0x70,0x88,0x08,0x10,0x20,0x40,0x80,0xF8
+};
+const GuiConst_INT8U Ch000152[23] =
+{
+  0,1,0,0,2,  4,4,4,4,2,
+  0,5,
+  3,11,
+  0x94,0x02,
+  0x70,0x88,0x08,0x30,0x08,0x88,0x70
+};
+const GuiConst_INT8U Ch000153[22] =
+{
+  2,1,0,3,2,  3,3,4,3,2,
+  0,5,
+  3,11,
+  0xB4,0x04,
+  0x10,0x30,0x50,0x90,0xF8,0x10
+};
+const GuiConst_INT8U Ch000154[22] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  3,11,
+  0xCC,0x02,
+  0xF8,0x80,0xF0,0x08,0x88,0x70
+};
+const GuiConst_INT8U Ch000155[22] =
+{
+  1,0,0,0,2,  3,3,4,4,2,
+  0,5,
+  3,11,
+  0x94,0x03,
+  0x30,0x40,0x80,0xF0,0x88,0x70
+};
+const GuiConst_INT8U Ch000156[22] =
+{
+  0,2,1,0,2,  4,3,2,2,2,
+  0,5,
+  3,11,
+  0x54,0x05,
+  0xF8,0x08,0x10,0x20,0x40,0x80
+};
+const GuiConst_INT8U Ch000157[21] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  3,11,
+  0x9C,0x03,
+  0x70,0x88,0x70,0x88,0x70
+};
+const GuiConst_INT8U Ch000158[22] =
+{
+  0,0,1,1,2,  4,4,4,3,2,
+  0,5,
+  3,11,
+  0x9C,0x02,
+  0x70,0x88,0x78,0x08,0x10,0x60
+};
+const GuiConst_INT8U Ch000159[18] =
+{
+  1,1,1,1,1,  2,2,2,2,2,
+  1,2,
+  7,7,
+  0x5A,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000160[21] =
+{
+  2,0,0,0,2,  2,4,4,4,2,
+  0,5,
+  3,11,
+  0x5A,0x06,
+  0x20,0x50,0x88,0xF8,0x88
+};
+const GuiConst_INT8U Ch000161[21] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  3,11,
+  0x9C,0x03,
+  0xF0,0x88,0xF0,0x88,0xF0
+};
+const GuiConst_INT8U Ch000162[21] =
+{
+  0,0,0,0,2,  4,3,4,4,2,
+  0,5,
+  3,11,
+  0xF4,0x02,
+  0x70,0x88,0x80,0x88,0x70
+};
+const GuiConst_INT8U Ch000163[19] =
+{
+  0,0,0,0,2,  4,4,4,4,2,
+  0,5,
+  3,11,
+  0xFC,0x03,
+  0xF0,0x88,0xF0
+};
+const GuiConst_INT8U Ch000164[21] =
+{
+  0,0,0,0,2,  4,3,3,4,2,
+  0,5,
+  3,11,
+  0x9C,0x03,
+  0xF8,0x80,0xF0,0x80,0xF8
+};
+const GuiConst_INT8U Ch000165[20] =
+{
+  0,0,0,0,2,  4,3,3,2,2,
+  0,5,
+  3,11,
+  0x9C,0x07,
+  0xF8,0x80,0xF0,0x80
+};
+const GuiConst_INT8U Ch000166[19] =
+{
+  0,0,0,0,1,  0,3,3,3,2,
+  0,4,
+  3,11,
+  0xCE,0x07,
+  0x80,0xE0,0x90
+};
+const GuiConst_INT8U Ch000167[18] =
+{
+  0,0,0,0,0,  5,5,5,5,5,
+  0,6,
+  0,17,
+  0xFE,0xFF,0x01,
+  0xFC
+};
+const GuiConst_INT8U Ch000168[17] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00,0x00
+};
+const GuiConst_INT8U Ch000169[27] =
+{
+  3,3,1,3,3,  3,3,6,3,3,
+  0,7,
+  9,5,
+  0x12,
+  0x00,0xB0,0x01,0x00,0xF3,0xFF,0xFF,0x05,0x00,0xB0,0x01,0x00
+};
+const GuiConst_INT8U Ch000170[18] =
+{
+  0,0,0,1,1,  1,1,1,1,1,
+  0,2,
+  15,3,
+  0x00,
+  0xA0,0x60,0x83
+};
+const GuiConst_INT8U Ch000171[17] =
+{
+  3,3,2,3,3,  4,4,5,4,4,
+  2,4,
+  12,1,
+  0x00,
+  0xF8,0x8F
+};
+const GuiConst_INT8U Ch000172[16] =
+{
+  1,1,1,1,1,  1,1,1,1,1,
+  1,1,
+  15,1,
+  0x00,
+  0x0A
+};
+const GuiConst_INT8U Ch000173[60] =
+{
+  1,0,0,1,3,  5,5,6,5,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0x00,0xFC,0x0C,0x00,0xA0,0x05,0x85,0x00,0xB1,0x00,0xB0,0x01,
+  0xA3,0x00,0xA0,0x03,0x85,0x00,0x80,0x03,0x85,0x00,0x80,0x05,
+  0x85,0x00,0x80,0x03,0xA3,0x00,0xA0,0x03,0xB1,0x00,0xB0,0x01,
+  0xA0,0x05,0x85,0x00,0x00,0xFC,0x0C,0x00
+};
+const GuiConst_INT8U Ch000174[26] =
+{
+  3,1,4,4,2,  4,4,4,4,3,
+  1,4,
+  5,11,
+  0xE0,0x07,
+  0x00,0x71,0x00,0x8A,0x80,0x86,0x17,0x83,0x00,0x83
+};
+const GuiConst_INT8U Ch000175[60] =
+{
+  1,1,2,0,3,  5,6,5,6,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0x00,0xFC,0x3F,0x00,0xA0,0x03,0xB1,0x00,0x81,0x00,0x80,0x03,
+  0x00,0x00,0x80,0x05,0x00,0x00,0xC1,0x01,0x00,0x00,0x8A,0x00,
+  0x00,0x80,0x0C,0x00,0x00,0xC5,0x00,0x00,0x50,0x1D,0x00,0x00,
+  0xD1,0x03,0x00,0x00,0xF5,0xFF,0xFF,0x05
+};
+const GuiConst_INT8U Ch000176[60] =
+{
+  1,1,2,1,3,  5,5,6,5,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0x00,0xFC,0x0A,0x00,0xA0,0x03,0x85,0x00,0xB1,0x00,0xB1,0x00,
+  0x00,0x00,0x81,0x00,0x00,0x00,0x38,0x00,0x00,0xD1,0x8F,0x00,
+  0x00,0x00,0xD1,0x03,0x00,0x00,0x80,0x05,0xA3,0x00,0xA0,0x03,
+  0xC0,0x03,0xC3,0x00,0x10,0xFD,0x0C,0x00
+};
+const GuiConst_INT8U Ch000177[52] =
+{
+  4,3,1,5,4,  5,5,6,5,4,
+  1,7,
+  5,11,
+  0x00,0x06,
+  0x00,0x00,0x1B,0x00,0x00,0x50,0x1D,0x00,0x00,0xA1,0x1C,0x00,
+  0x00,0x37,0x1B,0x00,0x30,0x08,0x1B,0x00,0x80,0x01,0x1B,0x00,
+  0x55,0x00,0x1B,0x00,0xFA,0xFF,0xFF,0x03,0x00,0x00,0x1B,0x00
+};
+const GuiConst_INT8U Ch000178[60] =
+{
+  1,1,1,1,3,  5,4,6,5,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0x50,0xFF,0xCF,0x00,0x80,0x03,0x00,0x00,0x80,0x01,0x00,0x00,
+  0xA0,0x00,0x00,0x00,0xC0,0xFF,0x1D,0x00,0xD1,0x03,0xC3,0x00,
+  0x00,0x00,0xA0,0x03,0x00,0x00,0x80,0x05,0xA3,0x00,0xA0,0x03,
+  0xC0,0x03,0xA5,0x00,0x10,0xFD,0x0C,0x00
+};
+const GuiConst_INT8U Ch000179[60] =
+{
+  1,0,0,1,3,  5,5,6,5,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0x00,0xFA,0x1D,0x00,0x80,0x05,0xA5,0x00,0x81,0x00,0xB0,0x01,
+  0x83,0x00,0x00,0x00,0x65,0xFA,0x1D,0x00,0xF5,0x03,0xC3,0x00,
+  0xA5,0x00,0xA0,0x03,0x83,0x00,0x80,0x05,0x81,0x00,0xA0,0x03,
+  0xA0,0x05,0xC3,0x00,0x00,0xFA,0x1D,0x00
+};
+const GuiConst_INT8U Ch000180[60] =
+{
+  0,3,2,2,3,  6,5,3,2,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0xF5,0xFF,0xFF,0x05,0x00,0x00,0xD3,0x01,0x00,0x00,0x5A,0x00,
+  0x00,0x30,0x0C,0x00,0x00,0xA0,0x05,0x00,0x00,0xB1,0x00,0x00,
+  0x00,0x85,0x00,0x00,0x00,0x5A,0x00,0x00,0x00,0x1B,0x00,0x00,
+  0x10,0x0B,0x00,0x00,0x10,0x08,0x00,0x00
+};
+const GuiConst_INT8U Ch000181[52] =
+{
+  1,1,0,1,3,  5,5,5,5,3,
+  0,7,
+  5,11,
+  0x08,0x01,
+  0x00,0xFC,0x0C,0x00,0xA0,0x05,0x85,0x00,0xA0,0x00,0xB1,0x00,
+  0xA0,0x05,0xA5,0x00,0x00,0xFA,0x0A,0x00,0xC1,0x01,0xC3,0x00,
+  0x85,0x00,0x80,0x03,0xD1,0x03,0xD3,0x01,0x10,0xFD,0x1D,0x00
+};
+const GuiConst_INT8U Ch000182[60] =
+{
+  1,0,1,1,3,  5,6,6,5,3,
+  0,7,
+  5,11,
+  0x00,0x00,
+  0x10,0xFD,0x0A,0x00,0xC0,0x05,0x83,0x00,0xA3,0x00,0x80,0x01,
+  0x85,0x00,0x80,0x03,0xA3,0x00,0xA0,0x05,0xC0,0x03,0xF3,0x05,
+  0x10,0xFD,0x88,0x03,0x00,0x00,0x80,0x03,0xB1,0x00,0xA0,0x00,
+  0xC0,0x03,0x85,0x00,0x10,0xFD,0x0A,0x00
+};
+const GuiConst_INT8U Ch000183[18] =
+{
+  1,1,1,1,1,  1,1,1,1,1,
+  1,1,
+  8,8,
+  0x7C,
+  0x0A,0x00,0x0A
+};
+const GuiConst_INT8U Ch000184[60] =
+{
+  4,3,2,1,3,  5,5,6,7,4,
+  0,8,
+  5,11,
+  0x00,0x00,
+  0x00,0x00,0x3A,0x00,0x00,0x10,0x8D,0x00,0x00,0x50,0x74,0x00,
+  0x00,0x80,0x82,0x01,0x00,0x81,0x80,0x03,0x00,0x35,0x30,0x08,
+  0x00,0x07,0x10,0x0B,0x10,0xFD,0xFF,0x1D,0x50,0x05,0x00,0x58,
+  0x80,0x01,0x00,0x85,0x81,0x00,0x00,0xC3
+};
+const GuiConst_INT8U Ch000185[52] =
+{
+  1,1,1,1,3,  6,6,6,6,4,
+  0,8,
+  5,11,
+  0x08,0x01,
+  0xD1,0xFF,0xCF,0x00,0xB1,0x00,0x50,0x0A,0xB1,0x00,0x00,0x0A,
+  0xB1,0x00,0x50,0x08,0xD1,0xFF,0xAF,0x00,0xB1,0x00,0x30,0x0C,
+  0xB1,0x00,0x00,0x3A,0xB1,0x00,0x10,0x0B,0xD1,0xFF,0xFF,0x03
+};
+const GuiConst_INT8U Ch000186[66] =
+{
+  2,1,1,2,4,  7,7,7,7,4,
+  0,9,
+  5,11,
+  0x20,0x00,
+  0x00,0xC0,0xFF,0x08,0x00,0x10,0x1C,0x00,0x88,0x00,0xA0,0x03,
+  0x00,0xB0,0x01,0xB1,0x00,0x00,0x00,0x00,0xA3,0x00,0x00,0x00,
+  0x00,0x81,0x00,0x00,0x00,0x00,0xA0,0x00,0x00,0x80,0x03,0x80,
+  0x03,0x00,0xA0,0x00,0x10,0x1C,0x00,0x5A,0x00,0x00,0xD1,0xFF,
+  0x05,0x00
+};
+const GuiConst_INT8U Ch000187[52] =
+{
+  1,1,1,1,4,  6,7,7,6,5,
+  1,8,
+  5,11,
+  0x60,0x00,
+  0xFC,0xFF,0x3F,0x00,0x0A,0x00,0xC0,0x03,0x0A,0x00,0x30,0x0A,
+  0x0A,0x00,0x00,0x1B,0x0A,0x00,0x00,0x3A,0x0A,0x00,0x00,0x1B,
+  0x0A,0x00,0x30,0x0A,0x0A,0x00,0xC0,0x03,0xFC,0xFF,0x3F,0x00
+};
+const GuiConst_INT8U Ch000188[36] =
+{
+  1,1,1,1,3,  6,5,6,7,4,
+  0,8,
+  5,11,
+  0x9C,0x03,
+  0xD1,0xFF,0xFF,0x3F,0xB1,0x00,0x00,0x00,0xD1,0xFF,0xFF,0x0C,
+  0xB1,0x00,0x00,0x00,0xD1,0xFF,0xFF,0x5F
+};
+const GuiConst_INT8U Ch000189[28] =
+{
+  1,1,1,1,3,  6,4,5,1,4,
+  1,6,
+  5,11,
+  0x9C,0x07,
+  0xFC,0xFF,0xCF,0x1B,0x00,0x00,0xFC,0xFF,0x3F,0x1B,0x00,0x00
+};
+const GuiConst_INT8U Ch000190[31] =
+{
+  1,1,1,1,2,  1,5,5,5,3,
+  0,6,
+  5,11,
+  0x86,0x07,
+  0xB1,0x00,0x00,0xB1,0xF4,0x3F,0xD1,0x3F,0xA3,0xD1,0x03,0xA0,
+  0xB1,0x00,0xA0
+};
+const GuiConst_INT8U Ch000191[26] =
+{
+  0,0,0,0,0,  17,17,17,17,17,
+  0,18,
+  0,20,
+  0xFE,0xFF,0x0F,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
+};
+const GuiConst_INT8U Ch000192[16] =
+{
+  0,0,0,0,0,  3,3,3,3,3,
+  0,4,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000193[18] =
+{
+  4,2,1,4,4,  5,7,8,5,5,
+  1,8,
+  7,8,
+  0xD6,
+  0x18,0xFF,0x18
+};
+const GuiConst_INT8U Ch000194[19] =
+{
+  3,3,2,2,3,  4,4,5,4,4,
+  2,4,
+  13,5,
+  0x04,
+  0x60,0xF0,0x60,0xC0
+};
+const GuiConst_INT8U Ch000195[16] =
+{
+  4,1,1,4,4,  5,8,8,5,5,
+  1,8,
+  10,2,
+  0x02,
+  0xFF
+};
+const GuiConst_INT8U Ch000196[18] =
+{
+  3,3,3,2,3,  4,4,4,5,4,
+  2,4,
+  13,4,
+  0x04,
+  0x60,0xF0,0x60
+};
+const GuiConst_INT8U Ch000197[34] =
+{
+  2,0,0,2,4,  6,8,8,6,4,
+  0,9,
+  4,13,
+  0xE0,0x01,
+  0x3E,0x00,0x7F,0x00,0x63,0x00,0xE3,0x80,0xC1,0x80,0xE3,0x80,
+  0x63,0x00,0x7F,0x00,0x3E,0x00
+};
+const GuiConst_INT8U Ch000198[22] =
+{
+  3,1,4,4,3,  5,5,5,5,3,
+  1,5,
+  4,13,
+  0xC0,0x1F,
+  0x18,0x38,0x78,0xF8,0xD8,0x18
+};
+const GuiConst_INT8U Ch000199[38] =
+{
+  1,0,1,0,4,  7,8,7,8,4,
+  0,9,
+  4,13,
+  0x10,0x10,
+  0x3E,0x00,0x7F,0x00,0xE3,0x80,0x01,0x80,0x03,0x80,0x0F,0x00,
+  0x3E,0x00,0x78,0x00,0xE0,0x00,0xC0,0x00,0xFF,0x80
+};
+const GuiConst_INT8U Ch000200[40] =
+{
+  1,0,1,1,4,  7,8,8,7,4,
+  0,9,
+  4,13,
+  0x40,0x00,
+  0x3E,0x00,0x7F,0x00,0xE3,0x80,0xC1,0x80,0x03,0x80,0x0F,0x00,
+  0x03,0x80,0x01,0x80,0xC1,0x80,0xE3,0x80,0x7F,0x00,0x3E,0x00
+};
+const GuiConst_INT8U Ch000201[36] =
+{
+  3,1,0,5,4,  6,6,8,6,4,
+  0,9,
+  4,13,
+  0x00,0x1A,
+  0x0E,0x00,0x1E,0x00,0x3E,0x00,0x36,0x00,0x76,0x00,0x66,0x00,
+  0xE6,0x00,0xC6,0x00,0xFF,0x80,0x06,0x00
+};
+const GuiConst_INT8U Ch000202[36] =
+{
+  0,0,0,1,4,  8,6,8,7,4,
+  0,9,
+  4,13,
+  0x0A,0x01,
+  0xFF,0x80,0xC0,0x00,0xDE,0x00,0xFF,0x00,0xE3,0x80,0x01,0x80,
+  0xC1,0x80,0xE3,0x80,0x7F,0x00,0x3E,0x00
+};
+const GuiConst_INT8U Ch000203[38] =
+{
+  2,0,0,1,4,  7,6,8,7,4,
+  0,9,
+  4,13,
+  0x00,0x03,
+  0x1F,0x00,0x3F,0x00,0x70,0x00,0xE0,0x00,0xDE,0x00,0xFF,0x00,
+  0xE3,0x80,0xC1,0x80,0xE3,0x80,0x7F,0x00,0x3E,0x00
+};
+const GuiConst_INT8U Ch000204[40] =
+{
+  0,4,4,2,4,  8,8,6,5,4,
+  0,9,
+  4,13,
+  0x02,0x00,
+  0xFF,0x80,0x01,0x80,0x03,0x80,0x03,0x00,0x07,0x00,0x06,0x00,
+  0x0E,0x00,0x0C,0x00,0x1C,0x00,0x18,0x00,0x38,0x00,0x30,0x00
+};
+const GuiConst_INT8U Ch000205[42] =
+{
+  1,0,0,1,4,  7,8,8,7,4,
+  0,9,
+  4,13,
+  0x00,0x00,
+  0x3E,0x00,0x7F,0x00,0xE3,0x80,0xC1,0x80,0xE3,0x80,0x7F,0x00,
+  0x3E,0x00,0x7F,0x00,0xE3,0x80,0xC1,0x80,0xE3,0x80,0x7F,0x00,
+  0x3E,0x00
+};
+const GuiConst_INT8U Ch000206[38] =
+{
+  1,0,0,1,4,  7,8,8,6,4,
+  0,9,
+  4,13,
+  0x30,0x00,
+  0x3E,0x00,0x7F,0x00,0xE3,0x80,0xC1,0x80,0xE3,0x80,0x7F,0x80,
+  0x3D,0x80,0x03,0x80,0x07,0x00,0x7E,0x00,0x7C,0x00
+};
+const GuiConst_INT8U Ch000207[23] =
+{
+  3,2,3,2,3,  4,5,4,5,4,
+  2,4,
+  6,11,
+  0x64,0x02,
+  0x60,0xF0,0x60,0x00,0x60,0xF0,0x60
+};
+const GuiConst_INT8U Ch000208[32] =
+{
+  2,2,1,0,4,  6,6,7,8,4,
+  0,9,
+  4,13,
+  0x26,0x18,
+  0x1C,0x00,0x3E,0x00,0x36,0x00,0x77,0x00,0x63,0x00,0x7F,0x00,
+  0xFF,0x80,0xC1,0x80
+};
+const GuiConst_INT8U Ch000209[38] =
+{
+  0,0,0,0,4,  7,8,8,7,4,
+  0,9,
+  4,13,
+  0x40,0x02,
+  0xFE,0x00,0xFF,0x00,0xC3,0x80,0xC1,0x80,0xC3,0x80,0xFF,0x00,
+  0xC3,0x80,0xC1,0x80,0xC3,0x80,0xFF,0x00,0xFE,0x00
+};
+const GuiConst_INT8U Ch000210[34] =
+{
+  1,0,0,1,4,  7,8,8,7,4,
+  0,9,
+  4,13,
+  0xE0,0x01,
+  0x3E,0x00,0x7F,0x00,0xE3,0x80,0xC1,0x80,0xC0,0x00,0xC1,0x80,
+  0xE3,0x80,0x7F,0x00,0x3E,0x00
+};
+const GuiConst_INT8U Ch000211[30] =
+{
+  0,0,0,0,4,  7,8,8,7,4,
+  0,9,
+  4,13,
+  0xF0,0x03,
+  0xFE,0x00,0xFF,0x00,0xC3,0x80,0xC1,0x80,0xC3,0x80,0xFF,0x00,
+  0xFE,0x00
+};
+const GuiConst_INT8U Ch000212[26] =
+{
+  0,0,0,0,4,  8,6,6,8,4,
+  0,9,
+  4,13,
+  0x5A,0x17,
+  0xFF,0x80,0xC0,0x00,0xFE,0x00,0xC0,0x00,0xFF,0x80
+};
+const GuiConst_INT8U Ch000213[24] =
+{
+  0,0,0,0,4,  8,6,6,1,4,
+  0,9,
+  4,13,
+  0x5A,0x1F,
+  0xFF,0x80,0xC0,0x00,0xFE,0x00,0xC0,0x00
+};
+const GuiConst_INT8U Ch000214[21] =
+{
+  0,0,0,0,3,  1,6,7,7,4,
+  0,8,
+  4,13,
+  0x86,0x1F,
+  0xC0,0xDC,0xFE,0xE7,0xC3
+};
+const GuiConst_INT8U Ch000215[19] =
+{
+  0,0,0,0,0,  10,10,10,10,10,
+  0,11,
+  0,21,
+  0xFE,0xFF,0x1F,
+  0xFF,0xE0
+};
+const GuiConst_INT8U Ch000216[17] =
+{
+  0,0,0,0,0,  3,3,3,3,3,
+  0,4,
+  0,0,
+  0x00,
+  0x00,0x00
+};
+const GuiConst_INT8U Ch000217[34] =
+{
+  5,2,0,5,5,  6,9,11,6,6,
+  0,12,
+  10,10,
+  0xAE,0x03,
+  0x00,0x00,0xF0,0x0F,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+  0x00,0x00,0xF0,0x0F,0x00,0x00
+};
+const GuiConst_INT8U Ch000218[23] =
+{
+  1,1,1,1,1,  1,1,1,2,1,
+  0,3,
+  21,5,
+  0x02,
+  0xF0,0x0F,0x00,0x0F,0x50,0x09,0x93,0x00
+};
+const GuiConst_INT8U Ch000219[18] =
+{
+  4,4,2,4,4,  4,4,6,4,4,
+  2,5,
+  16,2,
+  0x02,
+  0xFF,0xFF,0x0F
+};
+const GuiConst_INT8U Ch000220[16] =
+{
+  0,0,0,0,0,  1,1,1,1,1,
+  0,2,
+  21,2,
+  0x02,
+  0xFF
+};
+const GuiConst_INT8U Ch000221[82] =
+{
+  1,0,0,1,4,  7,8,8,7,4,
+  0,9,
+  6,17,
+  0x80,0x07,0x00,
+  0x00,0xB5,0xBF,0x05,0x00,0x50,0xFF,0xFF,0x5F,0x00,0xD0,0x5F,
+  0x50,0xDF,0x00,0xF5,0x07,0x00,0xF7,0x05,0xF8,0x04,0x00,0xF4,
+  0x08,0xF9,0x03,0x00,0xF3,0x09,0xFF,0x00,0x00,0xF0,0x0F,0xFA,
+  0x03,0x00,0xF3,0x09,0xF8,0x04,0x00,0xF4,0x08,0xF5,0x07,0x00,
+  0xF7,0x05,0xF3,0x5F,0x50,0xDF,0x00,0x50,0xFF,0xFF,0x5F,0x00,
+  0x00,0xB4,0xBF,0x05,0x00
+};
+const GuiConst_INT8U Ch000222[38] =
+{
+  5,2,5,5,4,  6,6,6,6,4,
+  2,5,
+  6,17,
+  0x80,0xFF,0x01,
+  0x00,0x60,0x0F,0x00,0xF3,0x0F,0x30,0xFD,0x0F,0xD4,0xFF,0x0F,
+  0xFF,0xF5,0x0F,0x39,0xF0,0x0F,0x00,0xF0,0x0F
+};
+const GuiConst_INT8U Ch000223[102] =
+{
+  1,0,3,0,4,  7,8,6,8,4,
+  0,9,
+  6,17,
+  0x00,0x00,0x00,
+  0x00,0xB6,0xDF,0x07,0x00,0xA0,0xFF,0xFF,0xAF,0x00,0xF5,0x3A,
+  0x30,0xFD,0x06,0xF9,0x04,0x00,0xF4,0x0B,0xFF,0x00,0x00,0xF0,
+  0x0F,0x00,0x00,0x00,0xF0,0x0F,0x00,0x00,0x00,0xF5,0x08,0x00,
+  0x00,0x00,0xFB,0x05,0x00,0x00,0x70,0x9F,0x00,0x00,0x00,0xF5,
+  0x0A,0x00,0x00,0x50,0xDF,0x03,0x00,0x00,0xF4,0x3D,0x00,0x00,
+  0x30,0xDD,0x03,0x00,0x00,0xA0,0x3D,0x00,0x00,0x00,0xF5,0x04,
+  0x00,0x00,0x00,0xFA,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,
+  0x0F
+};
+const GuiConst_INT8U Ch000224[102] =
+{
+  1,1,1,1,4,  7,8,8,7,4,
+  0,9,
+  6,17,
+  0x00,0x00,0x00,
+  0x00,0xB6,0xDF,0x07,0x00,0xA0,0xFF,0xFF,0xAF,0x00,0xF6,0x3A,
+  0x30,0xFA,0x07,0xFB,0x03,0x00,0xF3,0x0D,0x00,0x00,0x00,0xF0,
+  0x0F,0x00,0x00,0x00,0xF3,0x0A,0x00,0x00,0x50,0xFD,0x04,0x00,
+  0xF0,0xFF,0x4F,0x00,0x00,0xF0,0xFF,0xDF,0x00,0x00,0x30,0x40,
+  0xFD,0x07,0x00,0x00,0x00,0xF4,0x0B,0x00,0x00,0x00,0xF0,0x0F,
+  0xFF,0x00,0x00,0xF0,0x0F,0xF9,0x05,0x00,0xF5,0x09,0xF5,0x3D,
+  0x30,0xFD,0x05,0x80,0xFF,0xFF,0x7F,0x00,0x00,0xD6,0xBF,0x06,
+  0x00
+};
+const GuiConst_INT8U Ch000225[82] =
+{
+  5,2,0,6,4,  7,7,9,7,5,
+  0,10,
+  6,17,
+  0x00,0xD0,0x01,
+  0x00,0x00,0x60,0xFF,0x00,0x00,0x00,0xD3,0xFF,0x00,0x00,0x00,
+  0xF7,0xFF,0x00,0x00,0x30,0xBF,0xFF,0x00,0x00,0x70,0x5F,0xFF,
+  0x00,0x00,0xF3,0x0B,0xFF,0x00,0x00,0xF7,0x05,0xFF,0x00,0x30,
+  0xBF,0x00,0xFF,0x00,0x90,0x4F,0x00,0xFF,0x00,0xF3,0x09,0x00,
+  0xFF,0x00,0xF9,0x03,0x00,0xFF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,
+  0x00,0x00,0x00,0xFF,0x00
+};
+const GuiConst_INT8U Ch000226[92] =
+{
+  1,0,1,1,4,  7,7,8,7,4,
+  0,9,
+  6,17,
+  0x10,0x08,0x00,
+  0xF0,0xFF,0xFF,0xFF,0x00,0xF3,0xFF,0xFF,0xFF,0x00,0xF3,0x09,
+  0x00,0x00,0x00,0xF6,0x06,0x00,0x00,0x00,0xF8,0x87,0xDF,0x06,
+  0x00,0xF9,0xFF,0xFF,0x8F,0x00,0xFD,0x3A,0x50,0xFD,0x05,0x64,
+  0x00,0x00,0xF6,0x08,0x00,0x00,0x00,0xF3,0x0D,0x00,0x00,0x00,
+  0xF0,0x0F,0xFF,0x00,0x00,0xF3,0x0A,0xF9,0x05,0x00,0xF6,0x06,
+  0xF5,0x3D,0x50,0xFF,0x03,0x90,0xFF,0xFF,0x6F,0x00,0x00,0xD6,
+  0xBF,0x05,0x00
+};
+const GuiConst_INT8U Ch000227[102] =
+{
+  2,0,0,1,4,  7,7,8,7,4,
+  0,9,
+  6,17,
+  0x00,0x00,0x00,
+  0x00,0x83,0xFF,0x38,0x00,0x30,0xFD,0xFF,0xDF,0x03,0xB0,0x5F,
+  0x30,0xFA,0x07,0xF4,0x07,0x00,0xF3,0x0D,0xF6,0x03,0x00,0x00,
+  0x00,0xF9,0x00,0x00,0x00,0x00,0x9D,0x60,0xFD,0x07,0x00,0x9F,
+  0xF9,0xFF,0xAF,0x00,0xFF,0x3D,0x30,0xFD,0x05,0xFF,0x05,0x00,
+  0xF5,0x09,0xFF,0x00,0x00,0xF0,0x0F,0xFA,0x00,0x00,0xF0,0x0F,
+  0xF8,0x03,0x00,0xF0,0x0D,0xF5,0x06,0x00,0xF5,0x08,0xD0,0x5F,
+  0x30,0xFD,0x05,0x50,0xFF,0xFF,0x9F,0x00,0x00,0xA4,0xDF,0x06,
+  0x00
+};
+const GuiConst_INT8U Ch000228[102] =
+{
+  0,4,3,2,4,  8,6,5,3,4,
+  0,9,
+  6,17,
+  0x00,0x00,0x00,
+  0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,0xFF,0xFF,0x0D,0x00,0x00,
+  0x00,0xF4,0x05,0x00,0x00,0x00,0xBD,0x00,0x00,0x00,0x60,0x4F,
+  0x00,0x00,0x00,0xD0,0x0B,0x00,0x00,0x00,0xF6,0x05,0x00,0x00,
+  0x00,0xFB,0x00,0x00,0x00,0x40,0x8F,0x00,0x00,0x00,0x70,0x5F,
+  0x00,0x00,0x00,0xD0,0x0F,0x00,0x00,0x00,0xF3,0x0A,0x00,0x00,
+  0x00,0xF5,0x06,0x00,0x00,0x00,0xF7,0x05,0x00,0x00,0x00,0xF9,
+  0x03,0x00,0x00,0x00,0xFD,0x03,0x00,0x00,0x00,0xFF,0x00,0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000229[97] =
+{
+  1,0,0,1,4,  7,8,8,7,4,
+  0,9,
+  6,17,
+  0x00,0x10,0x00,
+  0x00,0xD7,0xDF,0x07,0x00,0xA0,0xFF,0xFF,0xAF,0x00,0xF7,0x3A,
+  0x30,0xFA,0x07,0xFD,0x03,0x00,0xF3,0x0D,0xFF,0x00,0x00,0xF0,
+  0x0F,0xFB,0x03,0x00,0xF3,0x0B,0xF6,0x3A,0x30,0xFA,0x06,0x60,
+  0xFD,0xFF,0x6D,0x00,0x60,0xFF,0xFF,0x6F,0x00,0xF6,0x3D,0x30,
+  0xFD,0x05,0xFA,0x04,0x00,0xF4,0x0A,0xFF,0x00,0x00,0xF0,0x0F,
+  0xFA,0x04,0x00,0xF4,0x0B,0xF6,0x3D,0x30,0xFD,0x06,0xA0,0xFF,
+  0xFF,0xAF,0x00,0x00,0xB6,0xBF,0x06,0x00
+};
+const GuiConst_INT8U Ch000230[102] =
+{
+  1,0,1,1,4,  7,8,8,6,4,
+  0,9,
+  6,17,
+  0x00,0x00,0x00,
+  0x00,0xD6,0xAF,0x04,0x00,0x90,0xFF,0xFF,0x5F,0x00,0xF5,0x5F,
+  0x30,0xDD,0x00,0xF9,0x06,0x00,0xF5,0x05,0xFF,0x03,0x00,0xF0,
+  0x09,0xFF,0x00,0x00,0xF0,0x0B,0xFF,0x00,0x00,0xF0,0x0F,0xF9,
+  0x05,0x00,0xF5,0x0F,0xF5,0x3D,0x30,0xDD,0x0F,0xA0,0xFF,0xFF,
+  0x97,0x0F,0x00,0xF7,0x6D,0xB0,0x0D,0x00,0x00,0x00,0xF0,0x09,
+  0x00,0x00,0x00,0xF4,0x06,0xFD,0x03,0x00,0xF9,0x04,0xF7,0x09,
+  0x50,0xBF,0x00,0xD3,0xFF,0xFF,0x3D,0x00,0x30,0xF8,0x8F,0x03,
+  0x00
+};
+const GuiConst_INT8U Ch000231[19] =
+{
+  0,0,0,0,0,  1,1,1,1,1,
+  0,2,
+  11,12,
+  0xFA,0x0B,
+  0xFF,0x00,0xFF
+};
+const GuiConst_INT8U Ch000232[136] =
+{
+  4,3,1,0,6,  8,9,11,12,6,
+  0,13,
+  6,17,
+  0x00,0x00,0x00,
+  0x00,0x00,0xF3,0xFF,0x03,0x00,0x00,0x00,0x00,0xF5,0xFF,0x05,
+  0x00,0x00,0x00,0x00,0xF8,0xF8,0x08,0x00,0x00,0x00,0x00,0xFF,
+  0xF3,0x0F,0x00,0x00,0x00,0x40,0xBF,0x90,0x4F,0x00,0x00,0x00,
+  0x70,0x6F,0x50,0x7F,0x00,0x00,0x00,0xB0,0x3F,0x30,0xBF,0x00,
+  0x00,0x00,0xF3,0x0B,0x00,0xFB,0x03,0x00,0x00,0xF6,0x06,0x00,
+  0xF6,0x06,0x00,0x00,0xFA,0x03,0x00,0xF3,0x0A,0x00,0x00,0xFF,
+  0xFF,0xFF,0xFF,0x0F,0x00,0x50,0xFF,0xFF,0xFF,0xFF,0x5F,0x00,
+  0x80,0x4F,0x00,0x00,0x40,0x8F,0x00,0xD0,0x0F,0x00,0x00,0x00,
+  0xDF,0x00,0xF3,0x09,0x00,0x00,0x00,0xF9,0x03,0xF6,0x05,0x00,
+  0x00,0x00,0xF5,0x06,0xFB,0x03,0x00,0x00,0x00,0xF3,0x0B
+};
+const GuiConst_INT8U Ch000233[113] =
+{
+  0,0,0,0,5,  8,9,10,9,5,
+  0,11,
+  6,17,
+  0x00,0x10,0x00,
+  0xFF,0xFF,0xFF,0x8D,0x03,0x00,0xFF,0xFF,0xFF,0xFF,0x3D,0x00,
+  0xFF,0x00,0x00,0xA3,0x8F,0x00,0xFF,0x00,0x00,0x30,0xFF,0x00,
+  0xFF,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,0x00,0x30,0x8F,0x00,
+  0xFF,0x00,0x00,0xA3,0x3D,0x00,0xFF,0xFF,0xFF,0xFF,0x05,0x00,
+  0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0xFF,0x00,0x00,0x40,0xFD,0x05,
+  0xFF,0x00,0x00,0x00,0xF4,0x0A,0xFF,0x00,0x00,0x00,0xF0,0x0F,
+  0xFF,0x00,0x00,0x00,0xF4,0x0A,0xFF,0x00,0x00,0x40,0xFD,0x05,
+  0xFF,0xFF,0xFF,0xFF,0x9F,0x00,0xFF,0xFF,0xFF,0xAF,0x06,0x00
+};
+const GuiConst_INT8U Ch000234[107] =
+{
+  2,0,0,2,5,  9,11,10,9,6,
+  0,12,
+  6,17,
+  0x00,0x03,0x00,
+  0x00,0x30,0xD7,0xDF,0x37,0x00,0x00,0xF5,0xFF,0xFF,0xDF,0x03,
+  0x50,0xDF,0x06,0x30,0xFA,0x0D,0xD0,0x4F,0x00,0x00,0xD0,0x6F,
+  0xF5,0x09,0x00,0x00,0x50,0xBF,0xF8,0x04,0x00,0x00,0x30,0x39,
+  0xFB,0x03,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,
+  0xFB,0x03,0x00,0x00,0x00,0x00,0xF8,0x05,0x00,0x00,0x30,0x39,
+  0xF5,0x08,0x00,0x00,0x50,0xBF,0xD0,0x3F,0x00,0x00,0xB0,0x6F,
+  0x50,0xDF,0x05,0x30,0xFA,0x0D,0x00,0xF7,0xFF,0xFF,0xDF,0x03,
+  0x00,0x50,0xF9,0xBF,0x37,0x00
+};
+const GuiConst_INT8U Ch000235[107] =
+{
+  0,0,0,0,5,  9,11,11,9,6,
+  0,12,
+  6,17,
+  0x00,0x03,0x00,
+  0xFF,0xFF,0xFF,0x9F,0x05,0x00,0xFF,0xFF,0xFF,0xFF,0x9F,0x00,
+  0xFF,0x00,0x00,0x50,0xFD,0x06,0xFF,0x00,0x00,0x00,0xF3,0x3F,
+  0xFF,0x00,0x00,0x00,0x70,0x5F,0xFF,0x00,0x00,0x00,0x40,0x9F,
+  0xFF,0x00,0x00,0x00,0x30,0xDF,0xFF,0x00,0x00,0x00,0x00,0xFF,
+  0xFF,0x00,0x00,0x00,0x30,0xBF,0xFF,0x00,0x00,0x00,0x50,0x8F,
+  0xFF,0x00,0x00,0x00,0x70,0x5F,0xFF,0x00,0x00,0x00,0xF3,0x0D,
+  0xFF,0x00,0x00,0x53,0xFD,0x06,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,
+  0xFF,0xFF,0xFF,0x8D,0x05,0x00
+};
+const GuiConst_INT8U Ch000236[42] =
+{
+  0,0,0,0,4,  9,7,7,9,5,
+  0,10,
+  6,17,
+  0x7A,0x7D,0x01,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
+  0xFF,0xFF,0x0F,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
+  0xFF
+};
+const GuiConst_INT8U Ch000237[37] =
+{
+  0,0,0,0,4,  9,7,7,1,5,
+  0,10,
+  6,17,
+  0x7A,0xFD,0x01,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,
+  0xFF,0xFF,0x0F,0xFF,0x00,0x00,0x00,0x00
+};
+const GuiConst_INT8U Ch000238[47] =
+{
+  0,0,0,0,4,  1,8,8,8,4,
+  0,9,
+  6,17,
+  0x1E,0xFC,0x01,
+  0xFF,0x00,0x00,0x00,0x00,0xFF,0x60,0xFD,0x5B,0x00,0xFF,0xF7,
+  0xFF,0xFF,0x05,0xFF,0x5D,0x30,0xF9,0x09,0xFF,0x05,0x00,0xF3,
+  0x0F,0xFF,0x00,0x00,0xF0,0x0F
+};
+const GuiConst_INT8U Ch000239[30] =
+{
+  0,0,0,0,0,  23,23,23,23,23,
+  0,24,
+  0,29,
+  0xFE,0xFF,0xFF,0x1F,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
+};
+const GuiConst_INT8U Ch000240[16] =
+{
+  0,0,0,0,0,  5,5,5,5,5,
+  0,6,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000241[22] =
+{
+  7,1,1,7,7,  7,13,13,7,7,
+  1,13,
+  8,13,
+  0xDE,0x1E,
+  0x07,0x00,0xFF,0xF8,0x07,0x00
+};
+const GuiConst_INT8U Ch000242[21] =
+{
+  6,6,6,4,6,  6,6,6,8,6,
+  4,5,
+  20,7,
+  0x04,
+  0x70,0xF8,0x78,0x38,0x70,0x60
+};
+const GuiConst_INT8U Ch000243[17] =
+{
+  6,1,1,6,6,  6,13,13,6,6,
+  1,13,
+  13,3,
+  0x06,
+  0xFF,0xF8
+};
+const GuiConst_INT8U Ch000244[18] =
+{
+  6,6,6,4,6,  6,6,6,8,6,
+  4,5,
+  20,4,
+  0x04,
+  0x70,0xF8,0x70
+};
+const GuiConst_INT8U Ch000245[39] =
+{
+  3,0,0,3,6,  10,13,13,10,7,
+  0,14,
+  5,19,
+  0xA0,0x5F,0x00,
+  0x0F,0xC0,0x1F,0xE0,0x3F,0xF0,0x78,0x78,0x70,0x38,0xE0,0x1C,
+  0x70,0x38,0x78,0x78,0x3F,0xF0,0x1F,0xE0,0x0F,0xC0
+};
+const GuiConst_INT8U Ch000246[24] =
+{
+  5,2,6,6,5,  8,8,8,8,5,
+  2,7,
+  5,19,
+  0x80,0xFF,0x07,
+  0x0E,0x1E,0x3E,0x7E,0xFE,0xEE,0x0E
+};
+const GuiConst_INT8U Ch000247[49] =
+{
+  2,0,1,0,6,  11,13,10,13,7,
+  0,14,
+  5,19,
+  0x00,0x80,0x06,
+  0x0F,0xC0,0x3F,0xF0,0x7F,0xF8,0x78,0x78,0xF0,0x3C,0xE0,0x1C,
+  0x00,0x3C,0x00,0x7C,0x01,0xF8,0x07,0xE0,0x1F,0x80,0x3E,0x00,
+  0x78,0x00,0xF0,0x00,0xE0,0x00,0xFF,0xFC
+};
+const GuiConst_INT8U Ch000248[51] =
+{
+  2,0,0,2,6,  11,13,13,11,7,
+  0,14,
+  5,19,
+  0x20,0x40,0x00,
+  0x0F,0xC0,0x3F,0xF0,0x7F,0xF8,0x70,0x38,0xE0,0x1C,0x00,0x1C,
+  0x00,0x3C,0x01,0xF8,0x01,0xF0,0x01,0xF8,0x00,0x3C,0x00,0x1C,
+  0xE0,0x1C,0x70,0x38,0x7F,0xF8,0x3F,0xF0,0x0F,0xC0
+};
+const GuiConst_INT8U Ch000249[41] =
+{
+  6,3,0,8,6,  10,10,13,10,7,
+  0,14,
+  5,19,
+  0x0A,0x60,0x07,
+  0x03,0xE0,0x07,0xE0,0x0F,0xE0,0x0E,0xE0,0x1E,0xE0,0x1C,0xE0,
+  0x3C,0xE0,0x38,0xE0,0x78,0xE0,0x70,0xE0,0xFF,0xFC,0x00,0xE0
+};
+const GuiConst_INT8U Ch000250[43] =
+{
+  0,0,0,2,6,  12,11,13,11,7,
+  0,14,
+  5,19,
+  0x16,0x58,0x00,
+  0xFF,0xF8,0xE0,0x00,0xE7,0xC0,0xFF,0xF0,0xFF,0xF8,0xF8,0x38,
+  0xE0,0x1C,0x00,0x1C,0xE0,0x1C,0x70,0x38,0x7F,0xF8,0x3F,0xF0,
+  0x0F,0xC0
+};
+const GuiConst_INT8U Ch000251[49] =
+{
+  4,0,0,2,6,  11,9,13,11,7,
+  0,14,
+  5,19,
+  0x00,0x70,0x00,
+  0x03,0xF0,0x0F,0xF0,0x1F,0xF0,0x3C,0x00,0x78,0x00,0x70,0x00,
+  0xE0,0x00,0xEF,0xC0,0xFF,0xF0,0xFF,0xF8,0xF0,0x38,0xE0,0x1C,
+  0x70,0x38,0x7F,0xF8,0x3F,0xF0,0x0F,0xC0
+};
+const GuiConst_INT8U Ch000252[51] =
+{
+  0,9,6,3,6,  13,12,9,6,7,
+  0,14,
+  5,19,
+  0x06,0x00,0x00,
+  0xFF,0xFC,0x00,0x3C,0x00,0x38,0x00,0x78,0x00,0x70,0x00,0xF0,
+  0x00,0xE0,0x01,0xE0,0x01,0xC0,0x03,0xC0,0x03,0x80,0x07,0x80,
+  0x07,0x00,0x0F,0x00,0x0E,0x00,0x1E,0x00,0x1C,0x00
+};
+const GuiConst_INT8U Ch000253[47] =
+{
+  2,0,0,2,6,  11,13,13,11,7,
+  0,14,
+  5,19,
+  0x60,0x60,0x00,
+  0x0F,0xC0,0x3F,0xF0,0x7F,0xF8,0x70,0x38,0xE0,0x1C,0x70,0x38,
+  0x7F,0xF0,0x3F,0xF0,0x7F,0xF8,0x70,0x3C,0xE0,0x1C,0x70,0x38,
+  0x7F,0xF8,0x3F,0xF0,0x0F,0xC0
+};
+const GuiConst_INT8U Ch000254[49] =
+{
+  2,0,2,2,6,  11,13,13,9,7,
+  0,14,
+  5,19,
+  0xE0,0x00,0x00,
+  0x0F,0xC0,0x3F,0xF0,0x7F,0xF8,0x70,0x38,0xE0,0x1C,0x70,0x3C,
+  0x7F,0xFC,0x3F,0xFC,0x0F,0xDC,0x00,0x1C,0x00,0x38,0x00,0x78,
+  0x00,0xF0,0x3F,0xE0,0x3F,0xC0,0x3F,0x00
+};
+const GuiConst_INT8U Ch000255[23] =
+{
+  6,4,6,4,6,  6,8,6,8,6,
+  4,5,
+  10,14,
+  0xE4,0x13,
+  0x70,0xF8,0x70,0x00,0x70,0xF8,0x70
+};
+const GuiConst_INT8U Ch000256[37] =
+{
+  4,4,2,0,6,  9,9,11,13,7,
+  0,14,
+  5,19,
+  0x6C,0xD2,0x04,
+  0x03,0x00,0x07,0x80,0x0F,0xC0,0x1F,0xE0,0x1C,0xE0,0x3C,0xF0,
+  0x38,0x70,0x7F,0xF8,0xF0,0x3C,0xE0,0x1C
+};
+const GuiConst_INT8U Ch000257[53] =
+{
+  0,0,0,0,6,  11,13,13,11,7,
+  0,14,
+  5,19,
+  0x00,0x02,0x00,
+  0xFF,0xC0,0xFF,0xF0,0xFF,0xF8,0xE0,0x78,0xE0,0x3C,0xE0,0x1C,
+  0xE0,0x3C,0xE0,0x78,0xFF,0xF0,0xFF,0xF8,0xE0,0x78,0xE0,0x3C,
+  0xE0,0x1C,0xE0,0x3C,0xE0,0x78,0xFF,0xF8,0xFF,0xF0,0xFF,0xC0
+};
+const GuiConst_INT8U Ch000258[43] =
+{
+  2,0,0,2,6,  11,13,13,11,7,
+  0,14,
+  5,19,
+  0x80,0x1F,0x00,
+  0x0F,0xC0,0x3F,0xF0,0x7F,0xF8,0x78,0x78,0xF0,0x3C,0xE0,0x1C,
+  0xE0,0x00,0xE0,0x1C,0xF0,0x3C,0x78,0x78,0x7F,0xF8,0x3F,0xF0,
+  0x0F,0xC0
+};
+const GuiConst_INT8U Ch000259[39] =
+{
+  0,0,0,0,6,  11,13,13,11,7,
+  0,14,
+  5,19,
+  0xC0,0x3F,0x00,
+  0xFF,0xC0,0xFF,0xF0,0xFF,0xF8,0xE0,0x78,0xE0,0x3C,0xE0,0x1C,
+  0xE0,0x3C,0xE0,0x78,0xFF,0xF8,0xFF,0xF0,0xFF,0xC0
+};
+const GuiConst_INT8U Ch000260[27] =
+{
+  0,0,0,0,6,  13,9,9,13,7,
+  0,14,
+  5,19,
+  0xF6,0xF6,0x06,
+  0xFF,0xFC,0xE0,0x00,0xFF,0xC0,0xE0,0x00,0xFF,0xFC
+};
+const GuiConst_INT8U Ch000261[25] =
+{
+  0,0,0,0,6,  13,9,9,2,7,
+  0,14,
+  5,19,
+  0xF6,0xF6,0x07,
+  0xFF,0xFC,0xE0,0x00,0xFF,0xC0,0xE0,0x00
+};
+const GuiConst_INT8U Ch000262[31] =
+{
+  0,0,0,0,6,  2,10,12,12,6,
+  0,13,
+  5,19,
+  0x1E,0xF8,0x07,
+  0xE0,0x00,0xEF,0x80,0xFF,0xE0,0xFF,0xF0,0xF0,0xF0,0xE0,0x78,
+  0xE0,0x38
+};
+const GuiConst_INT8U Ch000263[21] =
+{
+  0,0,0,0,0,  16,16,16,16,16,
+  0,17,
+  0,31,
+  0xFE,0xFF,0xFF,0x7F,
+  0xFF,0xFF,0x80
+};
+const GuiConst_INT8U Ch000264[18] =
+{
+  0,0,0,0,0,  4,4,4,4,4,
+  0,5,
+  0,0,
+  0x00,
+  0x00,0x00,0x00
+};
+const GuiConst_INT8U Ch000265[37] =
+{
+  6,6,0,6,6,  7,7,13,7,7,
+  0,14,
+  14,12,
+  0x5E,0x0F,
+  0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,
+  0xFF,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00
+};
+const GuiConst_INT8U Ch000266[25] =
+{
+  1,1,1,1,1,  1,1,1,2,2,
+  0,3,
+  28,7,
+  0x0A,
+  0xF0,0x0F,0x00,0x0F,0x60,0x0D,0xF3,0x06,0x82,0x00
+};
+const GuiConst_INT8U Ch000267[19] =
+{
+  5,5,2,5,5,  5,5,8,5,5,
+  2,7,
+  21,2,
+  0x02,
+  0xFF,0xFF,0xFF,0x0F
+};
+const GuiConst_INT8U Ch000268[16] =
+{
+  0,0,0,0,0,  1,1,1,1,1,
+  0,2,
+  28,2,
+  0x02,
+  0xFF
+};
+const GuiConst_INT8U Ch000269[150] =
+{
+  3,0,0,3,6,  9,12,12,9,6,
+  0,13,
+  7,23,
+  0x00,0x3C,0x00,
+  0x00,0x10,0xE8,0xEF,0x18,0x00,0x00,0x00,0xE4,0xFF,0xFF,0xFF,
+  0x04,0x00,0x00,0xFE,0x08,0x00,0xF9,0x0E,0x00,0x80,0x8F,0x00,
+  0x00,0x80,0x8F,0x00,0xF0,0x0E,0x00,0x00,0x00,0xFE,0x00,0xF4,
+  0x08,0x00,0x00,0x00,0xF8,0x04,0xF7,0x04,0x00,0x00,0x00,0xF4,
+  0x07,0xFA,0x02,0x00,0x00,0x00,0xF2,0x0A,0xFD,0x00,0x00,0x00,
+  0x00,0xF0,0x0D,0xFF,0x00,0x00,0x00,0x00,0xF0,0x0F,0xFD,0x00,
+  0x00,0x00,0x00,0xF0,0x0D,0xFA,0x02,0x00,0x00,0x00,0xF2,0x0A,
+  0xF8,0x04,0x00,0x00,0x00,0xF4,0x07,0xF5,0x08,0x00,0x00,0x00,
+  0xF8,0x04,0xF0,0x0E,0x00,0x00,0x00,0xFE,0x00,0xA0,0x8F,0x00,
+  0x00,0x80,0x8F,0x00,0x10,0xFE,0x09,0x00,0xF9,0x0E,0x00,0x00,
+  0xE4,0xFF,0xFF,0xFF,0x04,0x00,0x00,0x00,0xE8,0xEF,0x18,0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000270[53] =
+{
+  7,2,7,7,5,  8,8,8,8,5,
+  2,7,
+  7,23,
+  0x00,0xFE,0x7F,
+  0x00,0x00,0x60,0x0F,0x00,0x00,0xE0,0x0F,0x00,0x00,0xFC,0x0F,
+  0x00,0x90,0xFF,0x0F,0x00,0xFC,0xFF,0x0F,0xE3,0xFF,0xF4,0x0F,
+  0xFF,0x1A,0xF0,0x0F,0x4C,0x00,0xF0,0x0F,0x00,0x00,0xF0,0x0F
+};
+const GuiConst_INT8U Ch000271[178] =
+{
+  2,0,5,0,3,  10,12,9,12,9,
+  0,13,
+  7,23,
+  0x00,0x00,0x00,
+  0x00,0x20,0xE9,0xFF,0x5C,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xFF,
+  0x0C,0x00,0x70,0xEF,0x06,0x00,0xD4,0xAF,0x00,0xF0,0x1E,0x00,
+  0x00,0x00,0xFD,0x04,0xF7,0x06,0x00,0x00,0x00,0xF3,0x09,0xFA,
+  0x00,0x00,0x00,0x00,0xF0,0x0F,0xFF,0x00,0x00,0x00,0x00,0xF0,
+  0x0F,0x00,0x00,0x00,0x00,0x00,0xF1,0x0E,0x00,0x00,0x00,0x00,
+  0x00,0xF6,0x09,0x00,0x00,0x00,0x00,0x00,0xFE,0x04,0x00,0x00,
+  0x00,0x00,0x90,0xDF,0x00,0x00,0x00,0x00,0x00,0xF5,0x2F,0x00,
+  0x00,0x00,0x00,0x40,0xFF,0x06,0x00,0x00,0x00,0x00,0xF4,0x8F,
+  0x00,0x00,0x00,0x00,0x40,0xFF,0x0A,0x00,0x00,0x00,0x00,0xF4,
+  0xCF,0x00,0x00,0x00,0x00,0x40,0xFF,0x0C,0x00,0x00,0x00,0x00,
+  0xF4,0xCF,0x00,0x00,0x00,0x00,0x20,0xFF,0x0C,0x00,0x00,0x00,
+  0x00,0xD0,0xDF,0x00,0x00,0x00,0x00,0x00,0xF4,0x2F,0x00,0x00,
+  0x00,0x00,0x00,0xFC,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0xFF,
+  0xFF,0xFF,0xFF,0xFF,0x0F
+};
+const GuiConst_INT8U Ch000272[171] =
+{
+  2,0,2,2,6,  9,11,12,10,6,
+  0,13,
+  7,23,
+  0x00,0x00,0x01,
+  0x00,0x40,0xFC,0xDF,0x06,0x00,0x00,0x00,0xFC,0xFF,0xFF,0xEF,
+  0x01,0x00,0xA0,0xDF,0x04,0x10,0xFA,0x0E,0x00,0xF2,0x0D,0x00,
+  0x00,0xA0,0x7F,0x00,0xF8,0x04,0x00,0x00,0x10,0xDF,0x00,0xFE,
+  0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,
+  0x00,0x00,0x00,0x00,0x00,0x30,0xCF,0x00,0x00,0x00,0x00,0x00,
+  0xC0,0x4F,0x00,0x00,0x00,0x00,0x40,0xFD,0x0C,0x00,0x00,0x00,
+  0xF0,0xFF,0xEF,0x03,0x00,0x00,0x00,0xF0,0xFF,0xFF,0x7F,0x00,
+  0x00,0x00,0x10,0x00,0xD3,0xFF,0x02,0x00,0x00,0x00,0x00,0x00,
+  0xFD,0x08,0x00,0x00,0x00,0x00,0x00,0xF4,0x0D,0x00,0x00,0x00,
+  0x00,0x00,0xF0,0x0F,0xFF,0x00,0x00,0x00,0x00,0xF0,0x0D,0xF9,
+  0x06,0x00,0x00,0x00,0xF6,0x08,0xF4,0x1E,0x00,0x00,0x10,0xFE,
+  0x00,0xA0,0xEF,0x04,0x00,0xF6,0x6F,0x00,0x00,0xFA,0xFF,0xFF,
+  0xFF,0x06,0x00,0x00,0x40,0xFA,0xEF,0x28,0x00,0x00
+};
+const GuiConst_INT8U Ch000273[136] =
+{
+  7,4,0,8,6,  9,9,12,9,6,
+  0,13,
+  7,23,
+  0x00,0x00,0x7D,
+  0x00,0x00,0x00,0x00,0xFD,0x00,0x00,0x00,0x00,0x00,0x60,0xFF,
+  0x00,0x00,0x00,0x00,0x00,0xE0,0xFF,0x00,0x00,0x00,0x00,0x00,
+  0xF7,0xFF,0x00,0x00,0x00,0x00,0x00,0xEF,0xFF,0x00,0x00,0x00,
+  0x00,0xA0,0x6F,0xFF,0x00,0x00,0x00,0x00,0xF2,0x0D,0xFF,0x00,
+  0x00,0x00,0x00,0xFC,0x04,0xFF,0x00,0x00,0x00,0x40,0xAF,0x00,
+  0xFF,0x00,0x00,0x00,0xD0,0x2F,0x00,0xFF,0x00,0x00,0x00,0xF6,
+  0x09,0x00,0xFF,0x00,0x00,0x00,0xFE,0x00,0x00,0xFF,0x00,0x00,
+  0x80,0x7F,0x00,0x00,0xFF,0x00,0x00,0xF0,0x0E,0x00,0x00,0xFF,
+  0x00,0x00,0xFA,0x06,0x00,0x00,0xFF,0x00,0x00,0xFF,0xFF,0xFF,
+  0xFF,0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00,0xFF,0x00,0x00
+};
+const GuiConst_INT8U Ch000274[164] =
+{
+  2,1,2,2,6,  11,9,12,9,6,
+  0,13,
+  7,23,
+  0x00,0xC0,0x00,
+  0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x20,0xFF,0xFF,0xFF,0xFF,
+  0xFF,0x00,0x50,0x7F,0x00,0x00,0x00,0x00,0x00,0x80,0x5F,0x00,
+  0x00,0x00,0x00,0x00,0xA0,0x2F,0x00,0x00,0x00,0x00,0x00,0xF0,
+  0x0F,0x00,0x00,0x00,0x00,0x00,0xF0,0x0E,0x00,0x00,0x00,0x00,
+  0x00,0xF2,0x4A,0xE9,0xEF,0x29,0x00,0x00,0xF6,0xFF,0xFF,0xFF,
+  0xFF,0x06,0x00,0xF8,0xDF,0x04,0x10,0xF8,0x5F,0x00,0xFC,0x0D,
+  0x00,0x00,0x40,0xFF,0x00,0xD9,0x02,0x00,0x00,0x00,0xFA,0x07,
+  0x00,0x00,0x00,0x00,0x00,0xF3,0x0A,0x00,0x00,0x00,0x00,0x00,
+  0xF0,0x0F,0x00,0x00,0x00,0x00,0x00,0xF1,0x0C,0xFF,0x00,0x00,
+  0x00,0x00,0xF4,0x08,0xF9,0x04,0x00,0x00,0x00,0xFD,0x03,0xF4,
+  0x0E,0x00,0x00,0x80,0xDF,0x00,0xC0,0xEF,0x04,0x10,0xF9,0x1F,
+  0x00,0x00,0xFC,0xFF,0xFF,0xEF,0x04,0x00,0x00,0x40,0xFA,0xDF,
+  0x08,0x00,0x00
+};
+const GuiConst_INT8U Ch000275[178] =
+{
+  3,0,0,3,6,  10,12,12,10,6,
+  0,13,
+  7,23,
+  0x00,0x00,0x00,
+  0x00,0x00,0xA4,0xFF,0x7D,0x00,0x00,0x00,0xA0,0xFF,0xFF,0xFF,
+  0x1E,0x00,0x00,0xFA,0x3C,0x00,0xD3,0xCF,0x00,0x50,0xAF,0x00,
+  0x00,0x00,0xFE,0x04,0xD0,0x0E,0x00,0x00,0x00,0xF5,0x09,0xF2,
+  0x07,0x00,0x00,0x00,0xF0,0x0E,0xF6,0x01,0x00,0x00,0x00,0x00,
+  0x00,0xF9,0x00,0x00,0x00,0x00,0x00,0x00,0xCA,0x00,0xD8,0xFF,
+  0x39,0x00,0x00,0xAF,0xE4,0xFF,0xFF,0xFF,0x08,0x00,0xDF,0xFF,
+  0x06,0x00,0xF6,0x7F,0x00,0xFF,0x4F,0x00,0x00,0x10,0xFF,0x01,
+  0xFF,0x08,0x00,0x00,0x00,0xF8,0x08,0xFF,0x01,0x00,0x00,0x00,
+  0xF2,0x0C,0xFE,0x00,0x00,0x00,0x00,0xF0,0x0F,0xFA,0x00,0x00,
+  0x00,0x00,0xF0,0x0F,0xF8,0x00,0x00,0x00,0x00,0xF0,0x0F,0xF5,
+  0x04,0x00,0x00,0x00,0xF3,0x0A,0xF0,0x0A,0x00,0x00,0x00,0xF8,
+  0x05,0x80,0x8F,0x00,0x00,0x40,0xFF,0x00,0x00,0xFE,0x19,0x00,
+  0xF6,0x6F,0x00,0x00,0xE1,0xFF,0xFF,0xFF,0x08,0x00,0x00,0x00,
+  0xD6,0xFF,0x4A,0x00,0x00
+};
+const GuiConst_INT8U Ch000276[164] =
+{
+  0,7,4,3,6,  12,10,6,4,6,
+  0,13,
+  7,23,
+  0x02,0x00,0x40,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,
+  0xF4,0x0A,0x00,0x00,0x00,0x00,0x10,0xEF,0x00,0x00,0x00,0x00,
+  0x00,0xC0,0x2F,0x00,0x00,0x00,0x00,0x00,0xF6,0x09,0x00,0x00,
+  0x00,0x00,0x00,0xEE,0x00,0x00,0x00,0x00,0x00,0x80,0x6F,0x00,
+  0x00,0x00,0x00,0x00,0xF0,0x0E,0x00,0x00,0x00,0x00,0x00,0xF8,
+  0x06,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,
+  0x50,0x9F,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0x00,0x00,0x00,
+  0x00,0x00,0xF0,0x0E,0x00,0x00,0x00,0x00,0x00,0xF5,0x08,0x00,
+  0x00,0x00,0x00,0x00,0xFA,0x03,0x00,0x00,0x00,0x00,0x00,0xFF,
+  0x00,0x00,0x00,0x00,0x00,0x20,0xCF,0x00,0x00,0x00,0x00,0x00,
+  0x60,0x7F,0x00,0x00,0x00,0x00,0x00,0x90,0x5F,0x00,0x00,0x00,
+  0x00,0x00,0xA0,0x2F,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x00,
+  0x00,0x00,0x00
+};
+const GuiConst_INT8U Ch000277[164] =
+{
+  3,1,0,2,6,  9,11,12,10,6,
+  0,13,
+  7,23,
+  0x40,0x00,0x01,
+  0x00,0x00,0xE8,0xEF,0x08,0x00,0x00,0x00,0xE1,0xFF,0xFF,0xEF,
+  0x01,0x00,0x00,0xFE,0x09,0x00,0xF9,0x0E,0x00,0x70,0x9F,0x00,
+  0x00,0xA0,0x6F,0x00,0xC0,0x1F,0x00,0x00,0x30,0xCF,0x00,0xF0,
+  0x0F,0x00,0x00,0x00,0xFF,0x00,0xD0,0x2F,0x00,0x00,0x10,0xEF,
+  0x00,0x80,0x9F,0x00,0x00,0x90,0x8F,0x00,0x00,0xFE,0x09,0x00,
+  0xF9,0x0E,0x00,0x00,0xD1,0xFF,0xFF,0xEF,0x02,0x00,0x00,0xF8,
+  0xFF,0xFF,0xFF,0x07,0x00,0xC0,0xEF,0x04,0x00,0xE6,0xAF,0x00,
+  0xF5,0x1E,0x00,0x00,0x10,0xFE,0x04,0xFA,0x04,0x00,0x00,0x00,
+  0xF5,0x0A,0xFF,0x00,0x00,0x00,0x00,0xF0,0x0F,0xFE,0x00,0x00,
+  0x00,0x00,0xF0,0x0F,0xF9,0x04,0x00,0x00,0x00,0xF4,0x09,0xF4,
+  0x1E,0x00,0x00,0x10,0xFE,0x04,0xA0,0xEF,0x06,0x00,0xE4,0xAF,
+  0x00,0x00,0xFA,0xFF,0xFF,0xFF,0x0A,0x00,0x00,0x40,0xF9,0xFF,
+  0x49,0x00,0x00
+};
+const GuiConst_INT8U Ch000278[178] =
+{
+  2,0,2,2,6,  9,12,12,9,6,
+  0,13,
+  7,23,
+  0x00,0x00,0x00,
+  0x00,0x30,0xF9,0xDF,0x06,0x00,0x00,0x00,0xF8,0xFF,0xFF,0xEF,
+  0x01,0x00,0x70,0xFF,0x19,0x00,0xF6,0x0E,0x00,0xF0,0x6F,0x00,
+  0x00,0x40,0x8F,0x00,0xF7,0x0A,0x00,0x00,0x00,0xF8,0x00,0xFC,
+  0x03,0x00,0x00,0x00,0xF2,0x05,0xFF,0x00,0x00,0x00,0x00,0xF0,
+  0x09,0xFF,0x00,0x00,0x00,0x00,0xF0,0x0A,0xFF,0x00,0x00,0x00,
+  0x00,0xF0,0x0F,0xFC,0x01,0x00,0x00,0x00,0xF2,0x0F,0xF8,0x08,
+  0x00,0x00,0x00,0xF8,0x0F,0xF1,0x3F,0x00,0x00,0x10,0xFF,0x0F,
+  0x70,0xFF,0x06,0x00,0xE6,0xDE,0x0F,0x00,0xF8,0xFF,0xFF,0xEF,
+  0xA3,0x0F,0x00,0x30,0xF9,0xDF,0x07,0xD0,0x0A,0x00,0x00,0x00,
+  0x00,0x00,0xF0,0x09,0x00,0x00,0x00,0x00,0x00,0xF3,0x06,0xFF,
+  0x00,0x00,0x00,0x00,0xF8,0x01,0xFA,0x04,0x00,0x00,0x00,0xDF,
+  0x00,0xF4,0x0D,0x00,0x00,0xC0,0x4F,0x00,0xD0,0xCF,0x02,0x30,
+  0xFC,0x0A,0x00,0x10,0xFE,0xFF,0xFF,0xAF,0x00,0x00,0x00,0x70,
+  0xFD,0xAF,0x04,0x00,0x00
+};
+const GuiConst_INT8U Ch000279[20] =
+{
+  0,0,0,0,0,  1,1,1,1,1,
+  0,2,
+  13,17,
+  0xFA,0x7F,0x01,
+  0xFF,0x00,0xFF
+};
+const GuiConst_INT8U Ch000280[224] =
+{
+  7,5,2,0,3,  9,11,14,16,13,
+  0,17,
+  7,23,
+  0x00,0x00,0x00,
+  0x00,0x00,0x00,0xE0,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+  0xF3,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0xFF,0x07,
+  0x00,0x00,0x00,0x00,0x00,0x00,0xFD,0xF7,0x0D,0x00,0x00,0x00,
+  0x00,0x00,0x10,0xFF,0xE0,0x1F,0x00,0x00,0x00,0x00,0x00,0x70,
+  0xCF,0x80,0x6F,0x00,0x00,0x00,0x00,0x00,0xC0,0x5F,0x30,0xCF,
+  0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0x00,0xFF,0x00,0x00,0x00,
+  0x00,0x00,0xF5,0x0C,0x00,0xF9,0x05,0x00,0x00,0x00,0x00,0xFC,
+  0x05,0x00,0xF4,0x0A,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xF0,
+  0x0F,0x00,0x00,0x00,0x40,0xCF,0x00,0x00,0x90,0x4F,0x00,0x00,
+  0x00,0x90,0x4F,0x00,0x00,0x40,0x9F,0x00,0x00,0x00,0xF0,0x0F,
+  0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xF4,0xFF,0xFF,0xFF,0xFF,
+  0xFF,0x03,0x00,0x00,0xF8,0xFF,0xFF,0xFF,0xFF,0xFF,0x08,0x00,
+  0x00,0xFE,0x00,0x00,0x00,0x00,0xF0,0x0E,0x00,0x30,0xCF,0x00,
+  0x00,0x00,0x00,0xC0,0x3F,0x00,0x80,0x5F,0x00,0x00,0x00,0x00,
+  0x50,0x7F,0x00,0xD0,0x1F,0x00,0x00,0x00,0x00,0x00,0xDF,0x00,
+  0xF1,0x0D,0x00,0x00,0x00,0x00,0x00,0xFD,0x01,0xF7,0x07,0x00,
+  0x00,0x00,0x00,0x00,0xF7,0x07,0xFD,0x01,0x00,0x00,0x00,0x00,
+  0x00,0xF1,0x0D
+};
+const GuiConst_INT8U Ch000281[164] =
+{
+  0,0,0,0,3,  10,12,13,11,7,
+  0,14,
+  7,23,
+  0x40,0x00,0x01,
+  0xFF,0xFF,0xFF,0xFF,0x8D,0x01,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,
+  0x4F,0x00,0xFF,0x00,0x00,0x00,0x71,0xEF,0x00,0xFF,0x00,0x00,
+  0x00,0x00,0xF9,0x08,0xFF,0x00,0x00,0x00,0x00,0xF1,0x0D,0xFF,
+  0x00,0x00,0x00,0x00,0xF0,0x0F,0xFF,0x00,0x00,0x00,0x00,0xF1,
+  0x0A,0xFF,0x00,0x00,0x00,0x00,0xF7,0x04,0xFF,0x00,0x00,0x00,
+  0x71,0xCF,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,0x00,0xFF,0xFF,
+  0xFF,0xFF,0xFF,0xFF,0x04,0xFF,0x00,0x00,0x00,0x40,0xFD,0x0E,
+  0xFF,0x00,0x00,0x00,0x00,0xD0,0x7F,0xFF,0x00,0x00,0x00,0x00,
+  0x40,0xCF,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,
+  0x00,0x00,0x00,0xEF,0xFF,0x00,0x00,0x00,0x00,0x30,0x9F,0xFF,
+  0x00,0x00,0x00,0x00,0xC0,0x4F,0xFF,0x00,0x00,0x00,0x30,0xFC,
+  0x0C,0xFF,0xFF,0xFF,0xFF,0xFF,0xCF,0x00,0xFF,0xFF,0xFF,0xFF,
+  0xAF,0x05,0x00
+};
+const GuiConst_INT8U Ch000282[177] =
+{
+  4,0,0,4,7,  12,15,14,12,8,
+  0,16,
+  7,23,
+  0x00,0x1C,0x00,
+  0x00,0x00,0x40,0xE9,0xFF,0x6C,0x00,0x00,0x00,0x10,0xFC,0xFF,
+  0xFF,0xFF,0x3E,0x00,0x00,0xE1,0xCF,0x04,0x00,0xC3,0xFF,0x03,
+  0x00,0xFD,0x08,0x00,0x00,0x00,0xFA,0x0E,0x60,0xAF,0x00,0x00,
+  0x00,0x00,0xE0,0x6F,0xE0,0x0F,0x00,0x00,0x00,0x00,0x60,0xDF,
+  0xF4,0x09,0x00,0x00,0x00,0x00,0x00,0x2A,0xF8,0x05,0x00,0x00,
+  0x00,0x00,0x00,0x00,0xFA,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
+  0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,
+  0x00,0x00,0x00,0x00,0xFA,0x02,0x00,0x00,0x00,0x00,0x00,0x00,
+  0xF7,0x05,0x00,0x00,0x00,0x00,0x00,0x2A,0xF3,0x09,0x00,0x00,
+  0x00,0x00,0x40,0xDF,0xE0,0x0F,0x00,0x00,0x00,0x00,0xA0,0x7F,
+  0x60,0x9F,0x00,0x00,0x00,0x00,0xF2,0x1F,0x00,0xFE,0x07,0x00,
+  0x00,0x10,0xFE,0x09,0x00,0xF3,0xAF,0x03,0x00,0xE6,0xCF,0x00,
+  0x00,0x40,0xFE,0xFF,0xFF,0xFF,0x0C,0x00,0x00,0x00,0x60,0xFC,
+  0xEF,0x49,0x00,0x00
+};
+const GuiConst_INT8U Ch000283[177] =
+{
+  0,0,0,0,3,  11,14,14,11,6,
+  0,15,
+  7,23,
+  0x00,0x1C,0x00,
+  0xFF,0xFF,0xFF,0xFF,0x9D,0x02,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
+  0xFF,0x8F,0x00,0x00,0xFF,0x00,0x00,0x00,0x62,0xFF,0x07,0x00,
+  0xFF,0x00,0x00,0x00,0x00,0xF1,0x2F,0x00,0xFF,0x00,0x00,0x00,
+  0x00,0x60,0xAF,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,
+  0xFF,0x00,0x00,0x00,0x00,0x00,0xF7,0x05,0xFF,0x00,0x00,0x00,
+  0x00,0x00,0xF3,0x09,0xFF,0x00,0x00,0x00,0x00,0x00,0xF1,0x0C,
+  0xFF,0x00,0x00,0x00,0x00,0x00,0xF0,0x0F,0xFF,0x00,0x00,0x00,
+  0x00,0x00,0xF0,0x0E,0xFF,0x00,0x00,0x00,0x00,0x00,0xF2,0x0A,
+  0xFF,0x00,0x00,0x00,0x00,0x00,0xF4,0x08,0xFF,0x00,0x00,0x00,
+  0x00,0x00,0xF8,0x04,0xFF,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,
+  0xFF,0x00,0x00,0x00,0x00,0x60,0x9F,0x00,0xFF,0x00,0x00,0x00,
+  0x00,0xE1,0x1F,0x00,0xFF,0x00,0x00,0x00,0x72,0xFF,0x06,0x00,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x00,0x00,0xFF,0xFF,0xFF,0xFF,
+  0x8C,0x01,0x00,0x00
+};
+const GuiConst_INT8U Ch000284[52] =
+{
+  0,0,0,0,3,  13,9,10,13,10,
+  0,14,
+  7,23,
+  0xFA,0xEB,0x5F,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,
+  0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0x00,0x00,
+  0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
+};
+const GuiConst_INT8U Ch000285[45] =
+{
+  0,0,0,0,6,  12,1,10,1,6,
+  0,13,
+  7,23,
+  0xFA,0xD7,0x7F,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x0F,0xFF,0x00,0x00,0x00,0x00,
+  0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0xFF,0x00,0x00,
+  0x00,0x00,0x00,0x00
+};
+const GuiConst_INT8U Ch000286[65] =
+{
+  0,0,0,0,3,  1,9,10,10,7,
+  0,11,
+  7,23,
+  0x3E,0xE0,0x7F,
+  0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x40,0xFA,0xDF,0x06,0x00,
+  0xFF,0xF8,0xFF,0xFF,0xCF,0x00,0xFF,0xCF,0x03,0x50,0xFF,0x04,
+  0xFF,0x0D,0x00,0x00,0xF6,0x09,0xFF,0x05,0x00,0x00,0xF0,0x0D,
+  0xFF,0x01,0x00,0x00,0xF0,0x0F,0xFF,0x00,0x00,0x00,0xF0,0x0F
+};
+const GuiConst_INT8U Ch000287[33] =
+{
+  0,0,0,0,0,  27,27,27,27,27,
+  0,28,
+  0,37,
+  0xFE,0xFF,0xFF,0xFF,0x1F,
+  0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
+  0xFF,0xFF
+};
+const GuiConst_INT8U Ch000288[17] =
+{
+  0,0,0,0,0,  9,9,9,9,9,
+  0,10,
+  0,0,
+  0x00,
+  0x00,0x00
+};
+const GuiConst_INT8U Ch000289[23] =
+{
+  7,6,0,7,7,  8,9,15,8,8,
+  0,16,
+  12,17,
+  0x7E,0xFB,0x01,
+  0x03,0xC0,0xFF,0xFF,0x03,0xC0
+};
+const GuiConst_INT8U Ch000290[22] =
+{
+  7,7,7,5,7,  7,7,7,9,7,
+  5,5,
+  27,8,
+  0x04,
+  0x70,0xF8,0x78,0x38,0x70,0xE0,0xC0
+};
+const GuiConst_INT8U Ch000291[17] =
+{
+  7,7,0,7,7,  8,8,15,8,8,
+  0,16,
+  19,3,
+  0x06,
+  0xFF,0xFF
+};
+const GuiConst_INT8U Ch000292[18] =
+{
+  7,7,7,5,7,  7,7,7,9,7,
+  5,5,
+  27,4,
+  0x04,
+  0x70,0xF8,0x70
+};
+const GuiConst_INT8U Ch000293[43] =
+{
+  4,0,0,4,7,  11,15,15,11,8,
+  0,16,
+  7,24,
+  0x40,0xFF,0x05,
+  0x03,0xC0,0x0F,0xF0,0x1F,0xF8,0x3E,0x7C,0x3C,0x3C,0x78,0x1E,
+  0xF0,0x0F,0x78,0x1E,0x3C,0x3C,0x3E,0x7C,0x1F,0xF8,0x0F,0xF0,
+  0x03,0xC0
+};
+const GuiConst_INT8U Ch000294[35] =
+{
+  6,3,7,7,6,  10,10,10,10,6,
+  2,9,
+  7,24,
+  0x00,0xFE,0xFF,
+  0x07,0x80,0x0F,0x80,0x1F,0x80,0x3F,0x80,0x7F,0x80,0xFF,0x80,
+  0x77,0x80,0x27,0x80,0x07,0x80
+};
+const GuiConst_INT8U Ch000295[55] =
+{
+  3,2,1,0,7,  12,15,10,15,8,
+  0,16,
+  7,24,
+  0x00,0x01,0xD8,
+  0x07,0xE0,0x1F,0xF8,0x3F,0xFC,0x7C,0x3E,0xF8,0x1F,0x70,0x0F,
+  0x20,0x0F,0x00,0x0F,0x00,0x1F,0x00,0x3E,0x00,0x7C,0x01,0xF8,
+  0x07,0xF0,0x1F,0xC0,0x3F,0x00,0x7C,0x00,0x78,0x00,0xF0,0x00,
+  0xFF,0xFF
+};
+const GuiConst_INT8U Ch000296[63] =
+{
+  3,2,3,3,7,  12,15,15,12,8,
+  0,16,
+  7,24,
+  0x00,0x10,0x00,
+  0x07,0xE0,0x1F,0xF8,0x3F,0xFC,0x7C,0x3E,0xF8,0x1F,0x70,0x0F,
+  0x20,0x0F,0x00,0x0F,0x00,0x1F,0x00,0x3E,0x00,0xFC,0x03,0xF8,
+  0x00,0xFC,0x00,0x3E,0x00,0x1F,0x00,0x0F,0x20,0x0F,0x70,0x0F,
+  0xF8,0x1F,0x7C,0x3E,0x3F,0xFC,0x1F,0xF8,0x07,0xE0
+};
+const GuiConst_INT8U Ch000297[39] =
+{
+  8,4,0,3,7,  12,12,14,12,8,
+  0,16,
+  7,24,
+  0xAA,0xAA,0xEC,
+  0x00,0xF8,0x01,0xF8,0x03,0xF8,0x07,0xF8,0x0F,0x78,0x1E,0x78,
+  0x3C,0x78,0x78,0x78,0xF0,0x78,0xFF,0xFF,0x00,0x78
+};
+const GuiConst_INT8U Ch000298[47] =
+{
+  1,1,3,3,7,  15,11,15,12,8,
+  0,16,
+  7,24,
+  0xF6,0x81,0x01,
+  0x7F,0xFF,0x78,0x00,0x7F,0xF0,0x7F,0xFC,0x7F,0xFE,0x00,0x7E,
+  0x00,0x1F,0x00,0x0F,0x20,0x0F,0x70,0x0F,0xF8,0x1F,0x7C,0x3E,
+  0x3F,0xFC,0x1F,0xF8,0x07,0xE0
+};
+const GuiConst_INT8U Ch000299[55] =
+{
+  6,1,0,3,7,  11,10,15,12,8,
+  0,16,
+  7,24,
+  0x00,0x81,0x07,
+  0x00,0x60,0x01,0xF0,0x03,0xF0,0x0F,0xE0,0x1F,0x80,0x3F,0x00,
+  0x3C,0x00,0x78,0x00,0xF7,0xE0,0xFF,0xF8,0xFF,0xFC,0xFC,0x3E,
+  0xF8,0x1F,0xF0,0x0F,0xF8,0x1F,0x7C,0x3E,0x3F,0xFC,0x1F,0xF8,
+  0x07,0xE0
+};
+const GuiConst_INT8U Ch000300[61] =
+{
+  0,9,5,2,7,  15,14,10,6,8,
+  0,16,
+  7,24,
+  0x06,0x00,0x00,
+  0xFF,0xFF,0x00,0x0F,0x00,0x1F,0x00,0x1E,0x00,0x3E,0x00,0x3C,
+  0x00,0x7C,0x00,0x78,0x00,0xF8,0x00,0xF0,0x01,0xF0,0x01,0xE0,
+  0x03,0xE0,0x03,0xC0,0x07,0xC0,0x07,0x80,0x0F,0x80,0x0F,0x00,
+  0x1F,0x00,0x1E,0x00,0x3E,0x00,0x3C,0x00
+};
+const GuiConst_INT8U Ch000301[55] =
+{
+  3,0,0,3,7,  12,15,15,12,8,
+  0,16,
+  7,24,
+  0xC0,0x10,0x06,
+  0x07,0xE0,0x1F,0xF8,0x3F,0xFC,0x7C,0x3E,0xF8,0x1F,0xF0,0x0F,
+  0xF8,0x1F,0x7C,0x3E,0x3F,0xFC,0x1F,0xF8,0x3F,0xFC,0x7C,0x3E,
+  0xF8,0x1F,0xF0,0x0F,0xF8,0x1F,0x7C,0x3E,0x3F,0xFC,0x1F,0xF8,
+  0x07,0xE0
+};
+const GuiConst_INT8U Ch000302[55] =
+{
+  3,0,4,4,7,  12,15,15,9,8,
+  0,16,
+  7,24,
+  0xC0,0x03,0x01,
+  0x07,0xE0,0x1F,0xF8,0x3F,0xFC,0x7C,0x3E,0xF8,0x1F,0xF0,0x0F,
+  0xF8,0x1F,0x7C,0x3F,0x3F,0xFF,0x1F,0xFF,0x07,0xEF,0x00,0x1E,
+  0x00,0x3C,0x00,0xFC,0x01,0xF8,0x07,0xF0,0x0F,0xC0,0x0F,0x80,
+  0x06,0x00
+};
+const GuiConst_INT8U Ch000303[24] =
+{
+  7,5,7,5,7,  7,9,7,9,7,
+  5,5,
+  14,17,
+  0xE4,0x9F,0x00,
+  0x70,0xF8,0x70,0x00,0x70,0xF8,0x70
+};
+const GuiConst_INT8U Ch000304[35] =
+{
+  6,4,2,0,7,  9,11,13,15,8,
+  0,16,
+  7,24,
+  0xDA,0xDD,0xD4,
+  0x03,0xC0,0x07,0xE0,0x0F,0xF0,0x1E,0x78,0x3C,0x3C,0x3F,0xFC,
+  0x7F,0xFE,0x78,0x1E,0xF0,0x0F
+};
+const GuiConst_INT8U Ch000305[57] =
+{
+  0,0,0,0,7,  12,15,15,12,8,
+  0,16,
+  7,24,
+  0xC0,0x00,0x06,
+  0xFF,0xC0,0xFF,0xF0,0xFF,0xFC,0xF0,0x7E,0xF0,0x1E,0xF0,0x0F,
+  0xF0,0x1E,0xF0,0x7E,0xFF,0xF8,0xFF,0xF0,0xFF,0xF8,0xF0,0x7E,
+  0xF0,0x1E,0xF0,0x1F,0xF0,0x0F,0xF0,0x1E,0xF0,0x7E,0xFF,0xFC,
+  0xFF,0xF0,0xFF,0xC0
+};
+const GuiConst_INT8U Ch000306[47] =
+{
+  3,0,0,3,7,  12,15,14,12,8,
+  0,16,
+  7,24,
+  0x00,0xFF,0x01,
+  0x03,0xC0,0x0F,0xF0,0x3F,0xFC,0x7E,0x7E,0x78,0x1E,0xF8,0x1F,
+  0xF0,0x0F,0xF0,0x00,0xF0,0x0F,0xF8,0x1F,0x78,0x1E,0x7E,0x7E,
+  0x3F,0xFC,0x0F,0xF0,0x03,0xC0
+};
+const GuiConst_INT8U Ch000307[39] =
+{
+  0,0,0,0,7,  12,15,15,12,8,
+  0,16,
+  7,24,
+  0xC0,0xFF,0x07,
+  0xFF,0xC0,0xFF,0xF0,0xFF,0xFC,0xF0,0x7E,0xF0,0x1E,0xF0,0x0F,
+  0xF0,0x1E,0xF0,0x7E,0xFF,0xFC,0xFF,0xF0,0xFF,0xC0
+};
+const GuiConst_INT8U Ch000308[27] =
+{
+  0,0,0,0,7,  15,11,11,15,8,
+  0,16,
+  7,24,
+  0xF6,0xDB,0xDF,
+  0xFF,0xFF,0xF0,0x00,0xFF,0xF0,0xF0,0x00,0xFF,0xFF
+};
+const GuiConst_INT8U Ch000309[25] =
+{
+  0,0,0,0,7,  15,11,9,3,8,
+  0,16,
+  7,24,
+  0xF6,0xDB,0xFF,
+  0xFF,0xFF,0xF0,0x00,0xFF,0xF0,0xF0,0x00
+};
+const GuiConst_INT8U Ch000310[31] =
+{
+  0,0,0,0,7,  3,12,15,15,8,
+  0,16,
+  7,24,
+  0x7E,0xD0,0xFF,
+  0xF0,0x00,0xF3,0xC0,0xFF,0xF0,0xFF,0xFC,0xFC,0x3C,0xF0,0x1E,
+  0xF0,0x0F
+};
+const GuiConst_INT8U Ch000311[22] =
+{
+  0,0,0,0,0,  18,18,18,18,18,
+  0,19,
+  0,39,
+  0xFE,0xFF,0xFF,0xFF,0x7F,
+  0xFF,0xFF,0xE0
+};
+const GuiConst_INT8U Ch000312[16] =
+{
+  0,0,0,0,0,  7,7,7,7,7,
+  0,8,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000313[26] =
+{
+  8,0,0,8,8,  9,17,17,9,9,
+  0,18,
+  14,18,
+  0x7E,0xF7,0x03,
+  0x01,0xE0,0x00,0xFF,0xFF,0xC0,0x01,0xE0,0x00
+};
+const GuiConst_INT8U Ch000314[23] =
+{
+  6,6,6,4,6,  7,7,7,9,7,
+  4,6,
+  32,10,
+  0x1C,0x00,
+  0x78,0xFC,0x7C,0x3C,0x38,0x78,0x70
+};
+const GuiConst_INT8U Ch000315[18] =
+{
+  8,0,0,8,8,  9,17,17,9,9,
+  0,18,
+  21,4,
+  0x0E,
+  0xFF,0xFF,0xC0
+};
+const GuiConst_INT8U Ch000316[18] =
+{
+  6,6,6,4,6,  7,7,7,9,7,
+  4,6,
+  32,6,
+  0x1C,
+  0x78,0xFC,0x78
+};
+const GuiConst_INT8U Ch000317[69] =
+{
+  3,0,0,3,8,  14,17,17,14,9,
+  0,18,
+  8,30,
+  0x80,0xFC,0x9F,0x00,
+  0x03,0xF0,0x00,0x0F,0xFC,0x00,0x1F,0xFE,0x00,0x3F,0xFF,0x00,
+  0x3E,0x1F,0x00,0x7C,0x0F,0x80,0x78,0x07,0x80,0xF8,0x07,0xC0,
+  0xF0,0x03,0xC0,0xF8,0x07,0xC0,0x78,0x07,0x80,0x7C,0x0F,0x80,
+  0x3E,0x1F,0x00,0x3F,0xFF,0x00,0x1F,0xFE,0x00,0x0F,0xFC,0x00,
+  0x03,0xF0,0x00
+};
+const GuiConst_INT8U Ch000318[38] =
+{
+  6,3,8,8,6,  11,11,11,11,7,
+  2,10,
+  8,30,
+  0x00,0xFC,0xFF,0x3F,
+  0x03,0xC0,0x07,0xC0,0x0F,0xC0,0x1F,0xC0,0x3F,0xC0,0x7F,0xC0,
+  0xFF,0xC0,0x7B,0xC0,0x33,0xC0,0x03,0xC0
+};
+const GuiConst_INT8U Ch000319[87] =
+{
+  2,2,0,0,8,  15,17,12,16,9,
+  0,18,
+  8,30,
+  0x08,0x00,0x80,0x3B,
+  0x03,0xF0,0x00,0x0F,0xFC,0x00,0x3F,0xFF,0x00,0x7E,0x1F,0x80,
+  0x78,0x07,0x80,0xF8,0x07,0xC0,0x70,0x03,0xC0,0x30,0x03,0xC0,
+  0x00,0x03,0xC0,0x00,0x07,0xC0,0x00,0x07,0x80,0x00,0x1F,0x80,
+  0x00,0x7F,0x00,0x01,0xFE,0x00,0x07,0xFC,0x00,0x0F,0xF0,0x00,
+  0x1F,0xC0,0x00,0x3F,0x00,0x00,0x7E,0x00,0x00,0x7C,0x00,0x00,
+  0xF8,0x00,0x00,0xF0,0x00,0x00,0xFF,0xFF,0x80
+};
+const GuiConst_INT8U Ch000320[99] =
+{
+  2,1,1,2,8,  15,17,17,15,9,
+  0,18,
+  8,30,
+  0x08,0x80,0x00,0x08,
+  0x03,0xF0,0x00,0x0F,0xFC,0x00,0x3F,0xFF,0x00,0x7E,0x1F,0x80,
+  0x78,0x07,0x80,0xF8,0x07,0xC0,0x70,0x03,0xC0,0x30,0x03,0xC0,
+  0x00,0x03,0xC0,0x00,0x07,0xC0,0x00,0x07,0x80,0x00,0x1F,0x80,
+  0x00,0xFF,0x00,0x00,0xFE,0x00,0x00,0xFF,0x00,0x00,0x1F,0x80,
+  0x00,0x07,0x80,0x00,0x07,0xC0,0x00,0x03,0xC0,0x30,0x03,0xC0,
+  0x70,0x03,0xC0,0xF8,0x07,0xC0,0x78,0x07,0x80,0x7E,0x1F,0x80,
+  0x3F,0xFF,0x00,0x0F,0xFC,0x00,0x03,0xF0,0x00
+};
+const GuiConst_INT8U Ch000321[72] =
+{
+  9,4,0,10,8,  13,13,17,13,9,
+  0,18,
+  8,30,
+  0xAA,0x02,0xC0,0x3D,
+  0x00,0x3C,0x00,0x00,0x7C,0x00,0x00,0xFC,0x00,0x01,0xFC,0x00,
+  0x03,0xFC,0x00,0x07,0xFC,0x00,0x07,0xBC,0x00,0x0F,0xBC,0x00,
+  0x0F,0x3C,0x00,0x1F,0x3C,0x00,0x1E,0x3C,0x00,0x3E,0x3C,0x00,
+  0x3C,0x3C,0x00,0x7C,0x3C,0x00,0x78,0x3C,0x00,0xF8,0x3C,0x00,
+  0xFF,0xFF,0xC0,0x00,0x3C,0x00
+};
+const GuiConst_INT8U Ch000322[69] =
+{
+  1,1,1,2,8,  16,15,17,15,9,
+  0,18,
+  8,30,
+  0xEE,0x11,0x1E,0x08,
+  0x7F,0xFF,0x80,0x78,0x00,0x00,0x7B,0xF0,0x00,0x7F,0xFC,0x00,
+  0x7F,0xFF,0x00,0x7C,0x1F,0x80,0x70,0x07,0x80,0x00,0x07,0xC0,
+  0x00,0x03,0xC0,0x30,0x03,0xC0,0x70,0x03,0xC0,0xF8,0x07,0xC0,
+  0x78,0x07,0x80,0x7E,0x1F,0x80,0x3F,0xFF,0x00,0x0F,0xFC,0x00,
+  0x03,0xF0,0x00
+};
+const GuiConst_INT8U Ch000323[87] =
+{
+  6,0,0,2,8,  14,15,17,15,9,
+  0,18,
+  8,30,
+  0x00,0x20,0x7C,0x08,
+  0x00,0x38,0x00,0x00,0xF8,0x00,0x03,0xFC,0x00,0x07,0xF8,0x00,
+  0x0F,0xE0,0x00,0x1F,0x80,0x00,0x3F,0x00,0x00,0x3E,0x00,0x00,
+  0x7C,0x00,0x00,0x78,0x00,0x00,0x7B,0xF0,0x00,0xFF,0xFC,0x00,
+  0xFF,0xFF,0x00,0xFE,0x1F,0x80,0xF8,0x07,0x80,0xF8,0x07,0xC0,
+  0xF0,0x03,0xC0,0xF8,0x07,0xC0,0x78,0x07,0x80,0x7E,0x1F,0x80,
+  0x3F,0xFF,0x00,0x0F,0xFC,0x00,0x03,0xF0,0x00
+};
+const GuiConst_INT8U Ch000324[60] =
+{
+  0,7,5,1,8,  17,15,11,9,9,
+  0,18,
+  8,30,
+  0xAE,0xAA,0xAA,0x2A,
+  0xFF,0xFF,0xC0,0x00,0x07,0xC0,0x00,0x0F,0x80,0x00,0x1F,0x00,
+  0x00,0x3E,0x00,0x00,0x7C,0x00,0x00,0xF8,0x00,0x01,0xF0,0x00,
+  0x03,0xE0,0x00,0x07,0xC0,0x00,0x0F,0x80,0x00,0x1F,0x00,0x00,
+  0x3E,0x00,0x00,0x7C,0x00,0x00
+};
+const GuiConst_INT8U Ch000325[93] =
+{
+  2,0,0,2,8,  15,17,17,15,9,
+  0,18,
+  8,30,
+  0x08,0x01,0x60,0x08,
+  0x03,0xF0,0x00,0x0F,0xFC,0x00,0x3F,0xFF,0x00,0x7E,0x1F,0x80,
+  0x78,0x07,0x80,0xF8,0x07,0xC0,0xF0,0x03,0xC0,0xF8,0x07,0xC0,
+  0x78,0x07,0x80,0x7E,0x1F,0x80,0x3F,0xFF,0x00,0x1F,0xFE,0x00,
+  0x0F,0xFC,0x00,0x1F,0xFE,0x00,0x3F,0xFF,0x00,0x7E,0x1F,0x80,
+  0x78,0x07,0x80,0xF8,0x07,0xC0,0xF0,0x03,0xC0,0xF8,0x07,0xC0,
+  0x78,0x07,0x80,0x7E,0x1F,0x80,0x3F,0xFF,0x00,0x0F,0xFC,0x00,
+  0x03,0xF0,0x00
+};
+const GuiConst_INT8U Ch000326[87] =
+{
+  2,0,2,3,8,  15,17,17,11,9,
+  0,18,
+  8,30,
+  0x08,0x1F,0x02,0x00,
+  0x03,0xF0,0x00,0x0F,0xFC,0x00,0x3F,0xFF,0x00,0x7E,0x1F,0x80,
+  0x78,0x07,0x80,0xF8,0x07,0xC0,0xF0,0x03,0xC0,0xF8,0x07,0xC0,
+  0x78,0x07,0xC0,0x7E,0x1F,0xC0,0x3F,0xFF,0xC0,0x0F,0xFF,0xC0,
+  0x03,0xF7,0x80,0x00,0x07,0x80,0x00,0x0F,0x80,0x00,0x1F,0x00,
+  0x00,0x3F,0x00,0x00,0x7E,0x00,0x01,0xFC,0x00,0x07,0xF8,0x00,
+  0x0F,0xF0,0x00,0x07,0xC0,0x00,0x07,0x00,0x00
+};
+const GuiConst_INT8U Ch000327[24] =
+{
+  6,4,6,4,6,  7,9,7,9,7,
+  4,6,
+  15,23,
+  0x9C,0xFF,0x39,
+  0x78,0xFC,0x78,0x00,0x78,0xFC,0x78
+};
+const GuiConst_INT8U Ch000328[54] =
+{
+  6,4,1,0,8,  11,13,16,17,9,
+  0,18,
+  8,30,
+  0xDA,0x99,0xD9,0x39,
+  0x01,0xE0,0x00,0x03,0xF0,0x00,0x07,0xF8,0x00,0x0F,0xFC,0x00,
+  0x0F,0x3C,0x00,0x1F,0x3E,0x00,0x1E,0x1E,0x00,0x3E,0x1F,0x00,
+  0x3C,0x0F,0x00,0x7F,0xFF,0x80,0xF8,0x07,0xC0,0xF0,0x03,0xC0
+};
+const GuiConst_INT8U Ch000329[87] =
+{
+  0,0,0,0,8,  15,17,17,15,9,
+  0,18,
+  8,30,
+  0x08,0x83,0x60,0x08,
+  0xFF,0xF0,0x00,0xFF,0xFC,0x00,0xFF,0xFF,0x00,0xF0,0x1F,0x80,
+  0xF0,0x07,0x80,0xF0,0x07,0xC0,0xF0,0x03,0xC0,0xF0,0x07,0xC0,
+  0xF0,0x07,0x80,0xF0,0x1F,0x80,0xFF,0xFF,0x00,0xFF,0xFE,0x00,
+  0xFF,0xFF,0x00,0xF0,0x1F,0x80,0xF0,0x07,0x80,0xF0,0x07,0xC0,
+  0xF0,0x03,0xC0,0xF0,0x07,0xC0,0xF0,0x07,0x80,0xF0,0x1F,0x80,
+  0xFF,0xFF,0x00,0xFF,0xFC,0x00,0xFF,0xF0,0x00
+};
+const GuiConst_INT8U Ch000330[69] =
+{
+  2,0,0,2,8,  15,16,16,15,9,
+  0,18,
+  8,30,
+  0x08,0xFC,0x1F,0x08,
+  0x03,0xF0,0x00,0x0F,0xFC,0x00,0x3F,0xFF,0x00,0x7E,0x1F,0x80,
+  0x78,0x07,0x80,0xF8,0x07,0xC0,0xF0,0x03,0x80,0xF0,0x03,0x00,
+  0xF0,0x00,0x00,0xF0,0x03,0x00,0xF0,0x03,0x80,0xF8,0x07,0xC0,
+  0x78,0x07,0x80,0x7E,0x1F,0x80,0x3F,0xFF,0x00,0x0F,0xFC,0x00,
+  0x03,0xF0,0x00
+};
+const GuiConst_INT8U Ch000331[57] =
+{
+  0,0,0,0,8,  15,17,17,15,9,
+  0,18,
+  8,30,
+  0x08,0xFF,0x7F,0x08,
+  0xFF,0xF0,0x00,0xFF,0xFC,0x00,0xFF,0xFF,0x00,0xF0,0x1F,0x80,
+  0xF0,0x07,0x80,0xF0,0x07,0xC0,0xF0,0x03,0xC0,0xF0,0x07,0xC0,
+  0xF0,0x07,0x80,0xF0,0x1F,0x80,0xFF,0xFF,0x00,0xFF,0xFC,0x00,
+  0xFF,0xF0,0x00
+};
+const GuiConst_INT8U Ch000332[33] =
+{
+  0,0,0,0,8,  17,11,11,17,9,
+  0,18,
+  8,30,
+  0xEE,0xDF,0xFD,0x3B,
+  0xFF,0xFF,0xC0,0xF0,0x00,0x00,0xFF,0xF0,0x00,0xF0,0x00,0x00,
+  0xFF,0xFF,0xC0
+};
+const GuiConst_INT8U Ch000333[30] =
+{
+  0,0,0,0,8,  17,11,11,3,9,
+  0,18,
+  8,30,
+  0xEE,0xDF,0xFD,0x3F,
+  0xFF,0xFF,0xC0,0xF0,0x00,0x00,0xFF,0xF0,0x00,0xF0,0x00,0x00
+};
+const GuiConst_INT8U Ch000334[42] =
+{
+  0,0,0,0,8,  3,14,16,16,8,
+  0,17,
+  8,30,
+  0xFE,0x23,0xFC,0x3F,
+  0xF0,0x00,0x00,0xF3,0xE0,0x00,0xFF,0xF8,0x00,0xFF,0xFE,0x00,
+  0xFC,0x1F,0x00,0xF0,0x0F,0x00,0xF0,0x0F,0x80,0xF0,0x07,0x80
+};
+const GuiConst_INT8U Ch000335[23] =
+{
+  0,0,0,0,0,  20,20,20,20,20,
+  0,21,
+  0,47,
+  0xFE,0xFF,0xFF,0xFF,0xFF,0x7F,
+  0xFF,0xFF,0xF8
+};
+const GuiConst_INT8U Ch000336[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000337[18] =
+{
+  2,0,0,2,2,  3,5,5,3,3,
+  0,6,
+  6,5,
+  0x12,
+  0x30,0xFC,0x30
+};
+const GuiConst_INT8U Ch000338[17] =
+{
+  2,2,2,1,1,  2,2,3,3,2,
+  1,3,
+  10,3,
+  0x02,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000339[16] =
+{
+  2,0,0,2,2,  3,5,5,3,3,
+  0,6,
+  8,1,
+  0x00,
+  0xFC
+};
+const GuiConst_INT8U Ch000340[16] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  10,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000341[20] =
+{
+  1,0,0,1,2,  4,5,5,4,3,
+  0,6,
+  5,7,
+  0x18,
+  0x30,0x78,0xCC,0x78,0x30
+};
+const GuiConst_INT8U Ch000342[19] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  5,7,
+  0x70,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000343[22] =
+{
+  0,0,0,0,2,  5,5,4,5,3,
+  0,6,
+  5,7,
+  0x00,
+  0x78,0xCC,0x0C,0x38,0x60,0xC0,0xFC
+};
+const GuiConst_INT8U Ch000344[22] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  5,7,
+  0x00,
+  0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000345[20] =
+{
+  1,0,0,3,2,  4,4,5,4,3,
+  0,6,
+  5,7,
+  0x48,
+  0x38,0x78,0xD8,0xFC,0x18
+};
+const GuiConst_INT8U Ch000346[21] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  5,7,
+  0x10,
+  0xFC,0xC0,0xF8,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000347[21] =
+{
+  1,0,0,0,2,  4,4,5,5,3,
+  0,6,
+  5,7,
+  0x20,
+  0x38,0x60,0xC0,0xF8,0xCC,0x78
+};
+const GuiConst_INT8U Ch000348[20] =
+{
+  0,1,2,1,2,  5,5,4,3,3,
+  0,6,
+  5,7,
+  0x28,
+  0xFC,0x0C,0x18,0x30,0x60
+};
+const GuiConst_INT8U Ch000349[20] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  5,7,
+  0x24,
+  0x78,0xCC,0x78,0xCC,0x78
+};
+const GuiConst_INT8U Ch000350[21] =
+{
+  0,0,1,1,2,  5,5,5,4,3,
+  0,6,
+  5,7,
+  0x04,
+  0x78,0xCC,0x7C,0x0C,0x18,0x70
+};
+const GuiConst_INT8U Ch000351[18] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  6,6,
+  0x2A,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000352[20] =
+{
+  1,0,0,0,2,  4,5,5,5,3,
+  0,6,
+  5,7,
+  0x48,
+  0x30,0x78,0xCC,0xFC,0xCC
+};
+const GuiConst_INT8U Ch000353[20] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  5,7,
+  0x24,
+  0xF8,0xCC,0xF8,0xCC,0xF8
+};
+const GuiConst_INT8U Ch000354[20] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  5,7,
+  0x18,
+  0x78,0xCC,0xC0,0xCC,0x78
+};
+const GuiConst_INT8U Ch000355[20] =
+{
+  0,0,0,0,2,  4,5,5,4,3,
+  0,6,
+  5,7,
+  0x18,
+  0xF0,0xD8,0xCC,0xD8,0xF0
+};
+const GuiConst_INT8U Ch000356[20] =
+{
+  0,0,0,0,2,  5,4,4,5,3,
+  0,6,
+  5,7,
+  0x24,
+  0xFC,0xC0,0xF8,0xC0,0xFC
+};
+const GuiConst_INT8U Ch000357[19] =
+{
+  0,0,0,0,2,  5,4,4,2,3,
+  0,6,
+  5,7,
+  0x64,
+  0xFC,0xC0,0xF8,0xC0
+};
+const GuiConst_INT8U Ch000358[18] =
+{
+  0,0,0,0,2,  1,4,4,4,2,
+  0,5,
+  5,7,
+  0x72,
+  0xC0,0xF0,0xD8
+};
+const GuiConst_INT8U Ch000359[18] =
+{
+  0,0,0,0,0,  14,14,14,14,14,
+  0,15,
+  0,16,
+  0xFE,0xFF,
+  0xFF,0xFE
+};
+const GuiConst_INT8U Ch000360[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000361[18] =
+{
+  2,1,0,2,2,  3,4,5,3,3,
+  0,6,
+  6,5,
+  0x12,
+  0x30,0xFC,0x30
+};
+const GuiConst_INT8U Ch000362[17] =
+{
+  2,2,2,1,2,  2,2,2,3,2,
+  1,3,
+  11,3,
+  0x02,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000363[16] =
+{
+  2,1,0,2,2,  2,3,4,2,2,
+  0,5,
+  8,2,
+  0x02,
+  0xF8
+};
+const GuiConst_INT8U Ch000364[16] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  11,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000365[19] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  4,9,
+  0xFC,0x00,
+  0x78,0xCC,0x78
+};
+const GuiConst_INT8U Ch000366[20] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  4,9,
+  0xF0,0x01,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000367[24] =
+{
+  0,0,0,0,2,  5,5,3,5,3,
+  0,6,
+  4,9,
+  0x80,0x00,
+  0x78,0xCC,0x0C,0x18,0x30,0x60,0xC0,0xFC
+};
+const GuiConst_INT8U Ch000368[24] =
+{
+  0,0,1,0,2,  5,5,5,5,3,
+  0,6,
+  4,9,
+  0x40,0x00,
+  0x78,0xCC,0x04,0x0C,0x18,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000369[23] =
+{
+  2,1,0,1,3,  5,5,6,5,3,
+  0,7,
+  4,9,
+  0x20,0x01,
+  0x0C,0x1C,0x3C,0x6C,0xCC,0xFE,0x0C
+};
+const GuiConst_INT8U Ch000370[22] =
+{
+  0,0,1,0,2,  5,4,5,5,3,
+  0,6,
+  4,9,
+  0x64,0x00,
+  0xFC,0xC0,0xF8,0x0C,0xCC,0x78
+};
+const GuiConst_INT8U Ch000371[22] =
+{
+  1,0,0,0,2,  4,4,5,5,3,
+  0,6,
+  4,9,
+  0xE0,0x00,
+  0x38,0x60,0xC0,0xF8,0xCC,0x78
+};
+const GuiConst_INT8U Ch000372[20] =
+{
+  0,1,2,2,2,  5,5,4,3,3,
+  0,6,
+  4,9,
+  0xB4,0x01,
+  0xFC,0x0C,0x18,0x30
+};
+const GuiConst_INT8U Ch000373[21] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  4,9,
+  0xCC,0x00,
+  0x78,0xCC,0x78,0xCC,0x78
+};
+const GuiConst_INT8U Ch000374[22] =
+{
+  0,0,0,1,2,  5,5,5,4,3,
+  0,6,
+  4,9,
+  0x1C,0x00,
+  0x78,0xCC,0x7C,0x0C,0x18,0x70
+};
+const GuiConst_INT8U Ch000375[18] =
+{
+  2,2,2,2,2,  3,3,3,3,3,
+  2,2,
+  6,7,
+  0x5A,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000376[21] =
+{
+  2,1,0,0,2,  3,4,5,5,3,
+  0,6,
+  4,9,
+  0x2A,0x01,
+  0x30,0x78,0xCC,0xFC,0xCC
+};
+const GuiConst_INT8U Ch000377[21] =
+{
+  0,0,0,0,2,  5,5,5,5,3,
+  0,6,
+  4,9,
+  0xCC,0x00,
+  0xF8,0xCC,0xF8,0xCC,0xF8
+};
+const GuiConst_INT8U Ch000378[21] =
+{
+  0,0,0,0,2,  5,5,4,5,3,
+  0,6,
+  4,9,
+  0x78,0x00,
+  0x78,0xCC,0xC0,0xCC,0x78
+};
+const GuiConst_INT8U Ch000379[21] =
+{
+  0,0,0,0,2,  4,5,5,4,3,
+  0,6,
+  4,9,
+  0x78,0x00,
+  0xF0,0xD8,0xCC,0xD8,0xF0
+};
+const GuiConst_INT8U Ch000380[21] =
+{
+  0,0,0,0,2,  4,3,3,4,2,
+  0,5,
+  4,9,
+  0xCC,0x00,
+  0xF8,0xC0,0xF0,0xC0,0xF8
+};
+const GuiConst_INT8U Ch000381[20] =
+{
+  0,0,0,0,2,  4,3,3,1,2,
+  0,5,
+  4,9,
+  0xCC,0x01,
+  0xF8,0xC0,0xF0,0xC0
+};
+const GuiConst_INT8U Ch000382[19] =
+{
+  0,0,0,0,2,  3,5,5,5,3,
+  0,6,
+  4,9,
+  0xF2,0x01,
+  0xC0,0xF8,0xCC
+};
+const GuiConst_INT8U Ch000383[19] =
+{
+  0,0,0,0,0,  15,15,15,15,15,
+  0,16,
+  0,17,
+  0xFE,0xFF,0x01,
+  0xFF,0xFF
+};
+const GuiConst_INT8U Ch000384[16] =
+{
+  0,0,0,0,0,  2,2,2,2,2,
+  0,3,
+  0,0,
+  0x00,
+  0x00
+};
+const GuiConst_INT8U Ch000385[18] =
+{
+  3,1,0,3,3,  4,6,7,4,4,
+  0,8,
+  5,7,
+  0x66,
+  0x18,0xFF,0x18
+};
+const GuiConst_INT8U Ch000386[17] =
+{
+  3,3,3,3,2,  3,3,3,4,4,
+  2,3,
+  12,4,
+  0x06,
+  0x60,0xC0
+};
+const GuiConst_INT8U Ch000387[16] =
+{
+  3,1,0,3,3,  4,6,7,4,4,
+  0,8,
+  8,1,
+  0x00,
+  0xFF
+};
+const GuiConst_INT8U Ch000388[16] =
+{
+  3,3,3,3,3,  4,4,4,4,4,
+  3,2,
+  12,2,
+  0x02,
+  0xC0
+};
+const GuiConst_INT8U Ch000389[21] =
+{
+  1,0,0,1,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0xF4,0x02,
+  0x3C,0x66,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000390[20] =
+{
+  2,1,3,3,2,  4,4,4,4,3,
+  1,4,
+  3,11,
+  0xF0,0x07,
+  0x30,0x70,0xF0,0x30
+};
+const GuiConst_INT8U Ch000391[25] =
+{
+  1,0,1,0,3,  6,7,6,7,4,
+  0,8,
+  3,11,
+  0x08,0x02,
+  0x3C,0x66,0xC3,0x03,0x0E,0x38,0x60,0xC0,0xFF
+};
+const GuiConst_INT8U Ch000392[27] =
+{
+  1,0,4,1,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0x00,0x00,
+  0x3C,0x66,0xC3,0x03,0x06,0x0C,0x06,0x03,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000393[22] =
+{
+  2,1,0,4,3,  5,5,7,5,4,
+  0,8,
+  3,11,
+  0x54,0x06,
+  0x1C,0x3C,0x6C,0xCC,0xFF,0x0C
+};
+const GuiConst_INT8U Ch000394[24] =
+{
+  0,0,1,1,3,  7,6,7,6,4,
+  0,8,
+  3,11,
+  0xC4,0x00,
+  0xFF,0xC0,0xFC,0xE6,0x03,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000395[25] =
+{
+  2,0,0,1,3,  6,5,7,6,4,
+  0,8,
+  3,11,
+  0x80,0x01,
+  0x1E,0x30,0x60,0xC0,0xFC,0xE6,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000396[22] =
+{
+  0,3,3,2,3,  7,7,5,4,4,
+  0,8,
+  3,11,
+  0x54,0x05,
+  0xFF,0x03,0x06,0x0C,0x18,0x30
+};
+const GuiConst_INT8U Ch000397[25] =
+{
+  1,0,0,1,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0x08,0x01,
+  0x3C,0x66,0xC3,0x66,0x3C,0x66,0xC3,0x66,0x3C
+};
+const GuiConst_INT8U Ch000398[25] =
+{
+  1,0,1,1,3,  6,7,7,5,4,
+  0,8,
+  3,11,
+  0x18,0x00,
+  0x3C,0x66,0xC3,0x67,0x3F,0x03,0x06,0x0C,0x78
+};
+const GuiConst_INT8U Ch000399[18] =
+{
+  3,3,3,3,3,  4,4,4,4,4,
+  3,2,
+  6,8,
+  0xBA,
+  0xC0,0x00,0xC0
+};
+const GuiConst_INT8U Ch000400[21] =
+{
+  2,2,1,0,3,  5,5,6,7,4,
+  0,8,
+  3,11,
+  0xDA,0x04,
+  0x18,0x3C,0x66,0xFF,0xC3
+};
+const GuiConst_INT8U Ch000401[25] =
+{
+  0,0,0,0,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0x08,0x01,
+  0xFC,0xC6,0xC3,0xC6,0xFC,0xC6,0xC3,0xC6,0xFC
+};
+const GuiConst_INT8U Ch000402[21] =
+{
+  1,0,0,1,3,  7,6,6,7,4,
+  0,8,
+  3,11,
+  0xF8,0x01,
+  0x3E,0x63,0xC0,0x63,0x3E
+};
+const GuiConst_INT8U Ch000403[21] =
+{
+  0,0,0,0,3,  6,7,7,6,4,
+  0,8,
+  3,11,
+  0xF8,0x01,
+  0xFC,0xC6,0xC3,0xC6,0xFC
+};
+const GuiConst_INT8U Ch000404[21] =
+{
+  0,0,0,0,3,  7,5,5,7,4,
+  0,8,
+  3,11,
+  0x9C,0x03,
+  0xFF,0xC0,0xFC,0xC0,0xFF
+};
+const GuiConst_INT8U Ch000405[20] =
+{
+  0,0,0,0,3,  7,5,5,1,4,
+  0,8,
+  3,11,
+  0x9C,0x07,
+  0xFF,0xC0,0xFC,0xC0
+};
+const GuiConst_INT8U Ch000406[20] =
+{
+  0,0,0,0,3,  1,5,6,6,3,
+  0,7,
+  3,11,
+  0xC6,0x07,
+  0xC0,0xF8,0xEC,0xC6
+};
+const GuiConst_INT8U Ch000407[20] =
+{
+  0,0,0,0,0,  16,16,16,16,16,
+  0,17,
+  0,18,
+  0xFE,0xFF,0x03,
+  0xFF,0xFF,0x80
+};
+const GuiConst_PTR const GuiFont_ChPtrList[GuiFont_CharCnt] =
+{
+  (GuiConst_PTR)Ch000000,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000001,
+  (GuiConst_PTR)Ch000002,
+  (GuiConst_PTR)Ch000003,
+  (GuiConst_PTR)Ch000004,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000005,
+  (GuiConst_PTR)Ch000006,
+  (GuiConst_PTR)Ch000007,
+  (GuiConst_PTR)Ch000008,
+  (GuiConst_PTR)Ch000009,
+  (GuiConst_PTR)Ch000010,
+  (GuiConst_PTR)Ch000011,
+  (GuiConst_PTR)Ch000012,
+  (GuiConst_PTR)Ch000013,
+  (GuiConst_PTR)Ch000014,
+  (GuiConst_PTR)Ch000015,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000016,
+  (GuiConst_PTR)Ch000017,
+  (GuiConst_PTR)Ch000018,
+  (GuiConst_PTR)Ch000019,
+  (GuiConst_PTR)Ch000020,
+  (GuiConst_PTR)Ch000021,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000022,
+  (GuiConst_PTR)Ch000023,
+  (GuiConst_PTR)Ch000024,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000025,
+  (GuiConst_PTR)Ch000026,
+  (GuiConst_PTR)Ch000027,
+  (GuiConst_PTR)Ch000028,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000029,
+  (GuiConst_PTR)Ch000030,
+  (GuiConst_PTR)Ch000031,
+  (GuiConst_PTR)Ch000032,
+  (GuiConst_PTR)Ch000033,
+  (GuiConst_PTR)Ch000034,
+  (GuiConst_PTR)Ch000035,
+  (GuiConst_PTR)Ch000036,
+  (GuiConst_PTR)Ch000037,
+  (GuiConst_PTR)Ch000038,
+  (GuiConst_PTR)Ch000039,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000040,
+  (GuiConst_PTR)Ch000041,
+  (GuiConst_PTR)Ch000042,
+  (GuiConst_PTR)Ch000043,
+  (GuiConst_PTR)Ch000044,
+  (GuiConst_PTR)Ch000045,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000046,
+  (GuiConst_PTR)Ch000047,
+  (GuiConst_PTR)Ch000048,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000049,
+  (GuiConst_PTR)Ch000050,
+  (GuiConst_PTR)Ch000051,
+  (GuiConst_PTR)Ch000052,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000053,
+  (GuiConst_PTR)Ch000054,
+  (GuiConst_PTR)Ch000055,
+  (GuiConst_PTR)Ch000056,
+  (GuiConst_PTR)Ch000057,
+  (GuiConst_PTR)Ch000058,
+  (GuiConst_PTR)Ch000059,
+  (GuiConst_PTR)Ch000060,
+  (GuiConst_PTR)Ch000061,
+  (GuiConst_PTR)Ch000062,
+  (GuiConst_PTR)Ch000063,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000064,
+  (GuiConst_PTR)Ch000065,
+  (GuiConst_PTR)Ch000066,
+  (GuiConst_PTR)Ch000067,
+  (GuiConst_PTR)Ch000068,
+  (GuiConst_PTR)Ch000069,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000070,
+  (GuiConst_PTR)Ch000071,
+  (GuiConst_PTR)Ch000072,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000073,
+  (GuiConst_PTR)Ch000074,
+  (GuiConst_PTR)Ch000075,
+  (GuiConst_PTR)Ch000076,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000077,
+  (GuiConst_PTR)Ch000078,
+  (GuiConst_PTR)Ch000079,
+  (GuiConst_PTR)Ch000080,
+  (GuiConst_PTR)Ch000081,
+  (GuiConst_PTR)Ch000082,
+  (GuiConst_PTR)Ch000083,
+  (GuiConst_PTR)Ch000084,
+  (GuiConst_PTR)Ch000085,
+  (GuiConst_PTR)Ch000086,
+  (GuiConst_PTR)Ch000087,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000088,
+  (GuiConst_PTR)Ch000089,
+  (GuiConst_PTR)Ch000090,
+  (GuiConst_PTR)Ch000091,
+  (GuiConst_PTR)Ch000092,
+  (GuiConst_PTR)Ch000093,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000094,
+  (GuiConst_PTR)Ch000095,
+  (GuiConst_PTR)Ch000096,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000097,
+  (GuiConst_PTR)Ch000098,
+  (GuiConst_PTR)Ch000099,
+  (GuiConst_PTR)Ch000100,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000101,
+  (GuiConst_PTR)Ch000102,
+  (GuiConst_PTR)Ch000103,
+  (GuiConst_PTR)Ch000104,
+  (GuiConst_PTR)Ch000105,
+  (GuiConst_PTR)Ch000106,
+  (GuiConst_PTR)Ch000107,
+  (GuiConst_PTR)Ch000108,
+  (GuiConst_PTR)Ch000109,
+  (GuiConst_PTR)Ch000110,
+  (GuiConst_PTR)Ch000111,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000112,
+  (GuiConst_PTR)Ch000113,
+  (GuiConst_PTR)Ch000114,
+  (GuiConst_PTR)Ch000115,
+  (GuiConst_PTR)Ch000116,
+  (GuiConst_PTR)Ch000117,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000118,
+  (GuiConst_PTR)Ch000119,
+  (GuiConst_PTR)Ch000120,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000121,
+  (GuiConst_PTR)Ch000122,
+  (GuiConst_PTR)Ch000123,
+  (GuiConst_PTR)Ch000124,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000125,
+  (GuiConst_PTR)Ch000126,
+  (GuiConst_PTR)Ch000127,
+  (GuiConst_PTR)Ch000128,
+  (GuiConst_PTR)Ch000129,
+  (GuiConst_PTR)Ch000130,
+  (GuiConst_PTR)Ch000131,
+  (GuiConst_PTR)Ch000132,
+  (GuiConst_PTR)Ch000133,
+  (GuiConst_PTR)Ch000134,
+  (GuiConst_PTR)Ch000135,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000136,
+  (GuiConst_PTR)Ch000137,
+  (GuiConst_PTR)Ch000138,
+  (GuiConst_PTR)Ch000139,
+  (GuiConst_PTR)Ch000140,
+  (GuiConst_PTR)Ch000141,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000142,
+  (GuiConst_PTR)Ch000143,
+  (GuiConst_PTR)Ch000144,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000145,
+  (GuiConst_PTR)Ch000146,
+  (GuiConst_PTR)Ch000147,
+  (GuiConst_PTR)Ch000148,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000149,
+  (GuiConst_PTR)Ch000150,
+  (GuiConst_PTR)Ch000151,
+  (GuiConst_PTR)Ch000152,
+  (GuiConst_PTR)Ch000153,
+  (GuiConst_PTR)Ch000154,
+  (GuiConst_PTR)Ch000155,
+  (GuiConst_PTR)Ch000156,
+  (GuiConst_PTR)Ch000157,
+  (GuiConst_PTR)Ch000158,
+  (GuiConst_PTR)Ch000159,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000160,
+  (GuiConst_PTR)Ch000161,
+  (GuiConst_PTR)Ch000162,
+  (GuiConst_PTR)Ch000163,
+  (GuiConst_PTR)Ch000164,
+  (GuiConst_PTR)Ch000165,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000166,
+  (GuiConst_PTR)Ch000167,
+  (GuiConst_PTR)Ch000168,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000169,
+  (GuiConst_PTR)Ch000170,
+  (GuiConst_PTR)Ch000171,
+  (GuiConst_PTR)Ch000172,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000173,
+  (GuiConst_PTR)Ch000174,
+  (GuiConst_PTR)Ch000175,
+  (GuiConst_PTR)Ch000176,
+  (GuiConst_PTR)Ch000177,
+  (GuiConst_PTR)Ch000178,
+  (GuiConst_PTR)Ch000179,
+  (GuiConst_PTR)Ch000180,
+  (GuiConst_PTR)Ch000181,
+  (GuiConst_PTR)Ch000182,
+  (GuiConst_PTR)Ch000183,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000184,
+  (GuiConst_PTR)Ch000185,
+  (GuiConst_PTR)Ch000186,
+  (GuiConst_PTR)Ch000187,
+  (GuiConst_PTR)Ch000188,
+  (GuiConst_PTR)Ch000189,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000190,
+  (GuiConst_PTR)Ch000191,
+  (GuiConst_PTR)Ch000192,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000193,
+  (GuiConst_PTR)Ch000194,
+  (GuiConst_PTR)Ch000195,
+  (GuiConst_PTR)Ch000196,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000197,
+  (GuiConst_PTR)Ch000198,
+  (GuiConst_PTR)Ch000199,
+  (GuiConst_PTR)Ch000200,
+  (GuiConst_PTR)Ch000201,
+  (GuiConst_PTR)Ch000202,
+  (GuiConst_PTR)Ch000203,
+  (GuiConst_PTR)Ch000204,
+  (GuiConst_PTR)Ch000205,
+  (GuiConst_PTR)Ch000206,
+  (GuiConst_PTR)Ch000207,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000208,
+  (GuiConst_PTR)Ch000209,
+  (GuiConst_PTR)Ch000210,
+  (GuiConst_PTR)Ch000211,
+  (GuiConst_PTR)Ch000212,
+  (GuiConst_PTR)Ch000213,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000214,
+  (GuiConst_PTR)Ch000215,
+  (GuiConst_PTR)Ch000216,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000217,
+  (GuiConst_PTR)Ch000218,
+  (GuiConst_PTR)Ch000219,
+  (GuiConst_PTR)Ch000220,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000221,
+  (GuiConst_PTR)Ch000222,
+  (GuiConst_PTR)Ch000223,
+  (GuiConst_PTR)Ch000224,
+  (GuiConst_PTR)Ch000225,
+  (GuiConst_PTR)Ch000226,
+  (GuiConst_PTR)Ch000227,
+  (GuiConst_PTR)Ch000228,
+  (GuiConst_PTR)Ch000229,
+  (GuiConst_PTR)Ch000230,
+  (GuiConst_PTR)Ch000231,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000232,
+  (GuiConst_PTR)Ch000233,
+  (GuiConst_PTR)Ch000234,
+  (GuiConst_PTR)Ch000235,
+  (GuiConst_PTR)Ch000236,
+  (GuiConst_PTR)Ch000237,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000238,
+  (GuiConst_PTR)Ch000239,
+  (GuiConst_PTR)Ch000240,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000241,
+  (GuiConst_PTR)Ch000242,
+  (GuiConst_PTR)Ch000243,
+  (GuiConst_PTR)Ch000244,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000245,
+  (GuiConst_PTR)Ch000246,
+  (GuiConst_PTR)Ch000247,
+  (GuiConst_PTR)Ch000248,
+  (GuiConst_PTR)Ch000249,
+  (GuiConst_PTR)Ch000250,
+  (GuiConst_PTR)Ch000251,
+  (GuiConst_PTR)Ch000252,
+  (GuiConst_PTR)Ch000253,
+  (GuiConst_PTR)Ch000254,
+  (GuiConst_PTR)Ch000255,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000256,
+  (GuiConst_PTR)Ch000257,
+  (GuiConst_PTR)Ch000258,
+  (GuiConst_PTR)Ch000259,
+  (GuiConst_PTR)Ch000260,
+  (GuiConst_PTR)Ch000261,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000262,
+  (GuiConst_PTR)Ch000263,
+  (GuiConst_PTR)Ch000264,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000265,
+  (GuiConst_PTR)Ch000266,
+  (GuiConst_PTR)Ch000267,
+  (GuiConst_PTR)Ch000268,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000269,
+  (GuiConst_PTR)Ch000270,
+  (GuiConst_PTR)Ch000271,
+  (GuiConst_PTR)Ch000272,
+  (GuiConst_PTR)Ch000273,
+  (GuiConst_PTR)Ch000274,
+  (GuiConst_PTR)Ch000275,
+  (GuiConst_PTR)Ch000276,
+  (GuiConst_PTR)Ch000277,
+  (GuiConst_PTR)Ch000278,
+  (GuiConst_PTR)Ch000279,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000280,
+  (GuiConst_PTR)Ch000281,
+  (GuiConst_PTR)Ch000282,
+  (GuiConst_PTR)Ch000283,
+  (GuiConst_PTR)Ch000284,
+  (GuiConst_PTR)Ch000285,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000286,
+  (GuiConst_PTR)Ch000287,
+  (GuiConst_PTR)Ch000288,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000289,
+  (GuiConst_PTR)Ch000290,
+  (GuiConst_PTR)Ch000291,
+  (GuiConst_PTR)Ch000292,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000293,
+  (GuiConst_PTR)Ch000294,
+  (GuiConst_PTR)Ch000295,
+  (GuiConst_PTR)Ch000296,
+  (GuiConst_PTR)Ch000297,
+  (GuiConst_PTR)Ch000298,
+  (GuiConst_PTR)Ch000299,
+  (GuiConst_PTR)Ch000300,
+  (GuiConst_PTR)Ch000301,
+  (GuiConst_PTR)Ch000302,
+  (GuiConst_PTR)Ch000303,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000304,
+  (GuiConst_PTR)Ch000305,
+  (GuiConst_PTR)Ch000306,
+  (GuiConst_PTR)Ch000307,
+  (GuiConst_PTR)Ch000308,
+  (GuiConst_PTR)Ch000309,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000310,
+  (GuiConst_PTR)Ch000311,
+  (GuiConst_PTR)Ch000312,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000313,
+  (GuiConst_PTR)Ch000314,
+  (GuiConst_PTR)Ch000315,
+  (GuiConst_PTR)Ch000316,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000317,
+  (GuiConst_PTR)Ch000318,
+  (GuiConst_PTR)Ch000319,
+  (GuiConst_PTR)Ch000320,
+  (GuiConst_PTR)Ch000321,
+  (GuiConst_PTR)Ch000322,
+  (GuiConst_PTR)Ch000323,
+  (GuiConst_PTR)Ch000324,
+  (GuiConst_PTR)Ch000325,
+  (GuiConst_PTR)Ch000326,
+  (GuiConst_PTR)Ch000327,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000328,
+  (GuiConst_PTR)Ch000329,
+  (GuiConst_PTR)Ch000330,
+  (GuiConst_PTR)Ch000331,
+  (GuiConst_PTR)Ch000332,
+  (GuiConst_PTR)Ch000333,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000334,
+  (GuiConst_PTR)Ch000335,
+  (GuiConst_PTR)Ch000336,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000337,
+  (GuiConst_PTR)Ch000338,
+  (GuiConst_PTR)Ch000339,
+  (GuiConst_PTR)Ch000340,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000341,
+  (GuiConst_PTR)Ch000342,
+  (GuiConst_PTR)Ch000343,
+  (GuiConst_PTR)Ch000344,
+  (GuiConst_PTR)Ch000345,
+  (GuiConst_PTR)Ch000346,
+  (GuiConst_PTR)Ch000347,
+  (GuiConst_PTR)Ch000348,
+  (GuiConst_PTR)Ch000349,
+  (GuiConst_PTR)Ch000350,
+  (GuiConst_PTR)Ch000351,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000352,
+  (GuiConst_PTR)Ch000353,
+  (GuiConst_PTR)Ch000354,
+  (GuiConst_PTR)Ch000355,
+  (GuiConst_PTR)Ch000356,
+  (GuiConst_PTR)Ch000357,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000358,
+  (GuiConst_PTR)Ch000359,
+  (GuiConst_PTR)Ch000360,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000361,
+  (GuiConst_PTR)Ch000362,
+  (GuiConst_PTR)Ch000363,
+  (GuiConst_PTR)Ch000364,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000365,
+  (GuiConst_PTR)Ch000366,
+  (GuiConst_PTR)Ch000367,
+  (GuiConst_PTR)Ch000368,
+  (GuiConst_PTR)Ch000369,
+  (GuiConst_PTR)Ch000370,
+  (GuiConst_PTR)Ch000371,
+  (GuiConst_PTR)Ch000372,
+  (GuiConst_PTR)Ch000373,
+  (GuiConst_PTR)Ch000374,
+  (GuiConst_PTR)Ch000375,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000376,
+  (GuiConst_PTR)Ch000377,
+  (GuiConst_PTR)Ch000378,
+  (GuiConst_PTR)Ch000379,
+  (GuiConst_PTR)Ch000380,
+  (GuiConst_PTR)Ch000381,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000382,
+  (GuiConst_PTR)Ch000383,
+  (GuiConst_PTR)Ch000384,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000385,
+  (GuiConst_PTR)Ch000386,
+  (GuiConst_PTR)Ch000387,
+  (GuiConst_PTR)Ch000388,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000389,
+  (GuiConst_PTR)Ch000390,
+  (GuiConst_PTR)Ch000391,
+  (GuiConst_PTR)Ch000392,
+  (GuiConst_PTR)Ch000393,
+  (GuiConst_PTR)Ch000394,
+  (GuiConst_PTR)Ch000395,
+  (GuiConst_PTR)Ch000396,
+  (GuiConst_PTR)Ch000397,
+  (GuiConst_PTR)Ch000398,
+  (GuiConst_PTR)Ch000399,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000400,
+  (GuiConst_PTR)Ch000401,
+  (GuiConst_PTR)Ch000402,
+  (GuiConst_PTR)Ch000403,
+  (GuiConst_PTR)Ch000404,
+  (GuiConst_PTR)Ch000405,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000407,
+  (GuiConst_PTR)Ch000406,
+  (GuiConst_PTR)Ch000407
+};
+const GuiLib_FontRec Font_ANSI7 =
+{
+  32,
+  104,
+  0,
+  73,
+  6,11,
+  1,
+  2,4,8,
+  9,10,
+  10,10,
+  5,
+  5,
+  1,
+  1
+};
+const GuiLib_FontRec Font_ANSI7Bold =
+{
+  32,
+  104,
+  74,
+  147,
+  7,11,
+  1,
+  2,4,8,
+  10,10,
+  9,9,
+  6,
+  6,
+  1,
+  1
+};
+const GuiLib_FontRec Font_ANSI7Condensed =
+{
+  32,
+  104,
+  148,
+  221,
+  5,11,
+  1,
+  2,4,8,
+  9,10,
+  10,10,
+  4,
+  4,
+  1,
+  1
+};
+const GuiLib_FontRec Font_ANSI9 =
+{
+  32,
+  104,
+  222,
+  295,
+  9,14,
+  1,
+  3,5,11,
+  14,14,
+  14,14,
+  6,
+  7,
+  2,
+  2
+};
+const GuiLib_FontRec Font_ANSI11 =
+{
+  32,
+  104,
+  296,
+  369,
+  9,17,
+  1,
+  3,6,13,
+  15,16,
+  15,15,
+  8,
+  7,
+  2,
+  2
+};
+const GuiLib_FontRec Font_ANSI11Condensed =
+{
+  32,
+  104,
+  370,
+  443,
+  8,17,
+  1,
+  3,6,13,
+  15,16,
+  15,15,
+  7,
+  7,
+  1,
+  1
+};
+const GuiLib_FontRec Font_ANSI11Light =
+{
+  32,
+  104,
+  444,
+  517,
+  6,17,
+  1,
+  3,7,13,
+  15,16,
+  15,15,
+  5,
+  5,
+  1,
+  1
+};
+const GuiLib_FontRec Font_ANSI11AA =
+{
+  32,
+  104,
+  518,
+  591,
+  18,20,
+  4,
+  5,8,15,
+  19,19,
+  17,17,
+  8,
+  5,
+  2,
+  9
+};
+const GuiLib_FontRec Font_ANSI13 =
+{
+  32,
+  104,
+  592,
+  665,
+  11,21,
+  1,
+  4,7,16,
+  18,20,
+  18,19,
+  9,
+  9,
+  2,
+  2
+};
+const GuiLib_FontRec Font_ANSI17AA =
+{
+  32,
+  104,
+  666,
+  739,
+  24,29,
+  4,
+  6,11,22,
+  28,28,
+  25,26,
+  10,
+  7,
+  3,
+  12
+};
+const GuiLib_FontRec Font_ANSI19 =
+{
+  32,
+  104,
+  740,
+  813,
+  17,31,
+  1,
+  5,10,23,
+  25,28,
+  25,26,
+  14,
+  14,
+  3,
+  3
+};
+const GuiLib_FontRec Font_ANSI23AA =
+{
+  32,
+  104,
+  814,
+  887,
+  28,37,
+  4,
+  7,13,29,
+  36,36,
+  32,33,
+  14,
+  11,
+  4,
+  14
+};
+const GuiLib_FontRec Font_ANSI24 =
+{
+  32,
+  104,
+  888,
+  961,
+  19,39,
+  1,
+  7,14,30,
+  32,36,
+  32,33,
+  16,
+  15,
+  3,
+  3
+};
+const GuiLib_FontRec Font_ANSI30 =
+{
+  32,
+  104,
+  962,
+  1035,
+  21,47,
+  1,
+  8,18,37,
+  40,44,
+  39,41,
+  18,
+  17,
+  4,
+  3
+};
+const GuiLib_FontRec Font_Unicode7_14Bold =
+{
+  32,
+  104,
+  1036,
+  1109,
+  15,16,
+  1,
+  5,7,11,
+  14,15,
+  14,15,
+  14,
+  6,
+  2,
+  2
+};
+const GuiLib_FontRec Font_Unicode9_15 =
+{
+  32,
+  104,
+  1110,
+  1183,
+  16,17,
+  1,
+  4,6,12,
+  15,16,
+  15,16,
+  15,
+  7,
+  2,
+  2
+};
+const GuiLib_FontRec Font_Unicode11_16 =
+{
+  32,
+  104,
+  1184,
+  1257,
+  17,18,
+  1,
+  3,6,13,
+  16,17,
+  15,16,
+  16,
+  7,
+  2,
+  3
+};
+const GuiLib_FontRecPtr GuiFont_FontList[GuiFont_FontCnt] = 
+{
+  (GuiLib_FontRecPtr)&Font_ANSI7,
+  (GuiLib_FontRecPtr)&Font_ANSI7,
+  (GuiLib_FontRecPtr)&Font_ANSI7Bold,
+  (GuiLib_FontRecPtr)&Font_ANSI7Condensed,
+  (GuiLib_FontRecPtr)&Font_ANSI9,
+  (GuiLib_FontRecPtr)&Font_ANSI11,
+  (GuiLib_FontRecPtr)&Font_ANSI11Condensed,
+  (GuiLib_FontRecPtr)&Font_ANSI11Light,
+  (GuiLib_FontRecPtr)&Font_ANSI11AA,
+  (GuiLib_FontRecPtr)&Font_ANSI13,
+  (GuiLib_FontRecPtr)&Font_ANSI17AA,
+  (GuiLib_FontRecPtr)&Font_ANSI19,
+  (GuiLib_FontRecPtr)&Font_ANSI23AA,
+  (GuiLib_FontRecPtr)&Font_ANSI24,
+  (GuiLib_FontRecPtr)&Font_ANSI30,
+  (GuiLib_FontRecPtr)&Font_Unicode7_14Bold,
+  (GuiLib_FontRecPtr)&Font_Unicode9_15,
+  (GuiLib_FontRecPtr)&Font_Unicode11_16
+};
+const GuiConst_INT8U GuiFont_LanguageActive[GuiConst_LANGUAGE_CNT] =
+{
+  1
+};
+const GuiConst_INT16U GuiFont_LanguageIndex[GuiConst_LANGUAGE_CNT] =
+{
+  0
+};
+const GuiConst_INT8U GuiFont_LanguageTextDir[GuiConst_LANGUAGE_CNT] =
+{
+  GuiLib_LANGUAGE_TEXTDIR_LEFTTORIGHT
+};
+const GuiConst_INT8U GuiFont_DecimalChar[GuiConst_LANGUAGE_CNT] =
+{
+  GuiLib_DECIMAL_PERIOD
+};
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiFont.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiFont.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,82 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// Ensure that this header file is only included once
+#ifndef __GUIFONT_H
+#define __GUIFONT_H
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+#define GuiFont_CharCnt  1258
+extern const GuiConst_PTR const GuiFont_ChPtrList[GuiFont_CharCnt];
+
+// Fonts
+// =====
+
+#define GuiFont_DEFAULT_TEXT_FONT      0
+
+#define GuiFont_ANSI7                  1
+#define GuiFont_ANSI7Bold              2
+#define GuiFont_ANSI7Condensed         3
+#define GuiFont_ANSI9                  4
+#define GuiFont_ANSI11                 5
+#define GuiFont_ANSI11Condensed        6
+#define GuiFont_ANSI11Light            7
+#define GuiFont_ANSI11AA               8
+#define GuiFont_ANSI13                 9
+#define GuiFont_ANSI17AA               10
+#define GuiFont_ANSI19                 11
+#define GuiFont_ANSI23AA               12
+#define GuiFont_ANSI24                 13
+#define GuiFont_ANSI30                 14
+#define GuiFont_Unicode7_14Bold        15
+#define GuiFont_Unicode9_15            16
+#define GuiFont_Unicode11_16           17
+
+#define GuiFont_FontCnt  18
+extern const GuiLib_FontRecPtr GuiFont_FontList[GuiFont_FontCnt];
+
+extern const GuiConst_INT8U GuiFont_LanguageActive[GuiConst_LANGUAGE_CNT];
+
+extern const GuiConst_INT16U GuiFont_LanguageIndex[GuiConst_LANGUAGE_CNT];
+
+extern const GuiConst_INT8U GuiFont_LanguageTextDir[GuiConst_LANGUAGE_CNT];
+
+extern const GuiConst_INT8U GuiFont_DecimalChar[GuiConst_LANGUAGE_CNT];
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+#endif
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiStruct.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiStruct.c	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,25848 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+const GuiConst_INT8U GuiStruct_00000[15] =
+{
+  1,10,80,12,0,0,0,0,0,207,2,223,1,0,0
+};
+const GuiConst_PTR const GuiStruct_StructPtrList[GuiStruct_StructCnt] =
+{
+  (GuiConst_PTR)GuiStruct_00000
+};
+const GuiConst_INT16U GuiStruct_StructNdxList[GuiStruct_StructCnt] =
+{
+  0
+};
+const GuiConst_PTR const GuiStruct_VarPtrList[GuiStruct_VarPtrCnt] =
+{
+  0
+};
+
+const GuiConst_INT8U GuiStruct_VarTypeList[GuiStruct_VarPtrCnt] =
+{
+  0
+};
+
+const GuiConst_INT8U GuiBitmap_0[515514] =
+{
+  208,2,224,1,222,3,135,171,82,203,90,203,82,203,82,171,82,203,82,203,
+  90,6,203,82,3,203,90,129,203,82,3,203,90,147,203,82,203,90,203,90,
+  203,82,235,82,203,82,203,90,203,82,203,82,203,90,235,90,203,90,204,90,
+  235,82,235,90,203,90,203,82,203,90,203,90,6,235,90,141,236,90,236,90,
+  203,90,235,90,235,82,235,90,203,90,235,90,236,90,235,90,203,90,235,90,
+  203,82,11,235,90,133,236,90,235,90,236,90,236,90,235,90,3,236,90,3,
+  235,90,148,236,82,236,82,236,90,235,90,235,90,203,90,236,82,236,90,236,
+  90,236,82,235,82,235,90,235,82,235,82,235,90,235,82,235,82,236,90,236,
+  82,235,82,4,236,82,135,203,82,236,82,236,82,203,82,235,82,204,82,236,
+  82,8,203,82,129,204,82,5,203,82,131,171,74,203,82,203,82,4,171,82,
+  131,171,74,171,82,171,82,4,171,74,133,170,74,139,74,171,74,138,74,139,
+  74,3,106,74,144,74,74,106,74,106,74,138,74,106,74,106,74,138,74,106,
+  74,106,74,138,74,73,66,200,49,103,33,229,16,132,0,100,0,4,101,0,
+  129,133,0,3,134,0,6,166,0,4,199,0,3,231,0,129,232,0,5,8,
+  1,130,8,9,8,9,4,40,9,132,40,17,40,17,40,9,72,9,6,40,
+  9,157,39,9,39,9,39,17,39,17,72,17,104,25,136,25,169,33,201,41,
+  234,49,10,58,42,58,107,66,139,66,172,74,204,82,237,82,13,91,13,91,
+  45,91,45,91,46,99,46,99,78,91,78,99,78,91,78,99,78,91,78,91,
+  14,78,99,129,110,99,5,78,99,130,78,91,78,91,4,78,99,129,110,99,
+  3,78,99,136,110,99,111,91,110,99,111,99,110,99,111,99,143,99,110,99,
+  5,111,99,132,143,99,111,99,143,99,111,99,9,143,99,129,143,107,10,143,
+  99,130,143,107,143,107,5,143,99,132,175,99,143,99,143,107,143,107,3,143,
+  99,146,175,99,175,107,175,107,143,107,175,99,176,107,176,99,175,107,175,107,
+  208,107,175,107,176,107,176,107,176,99,208,107,208,107,176,107,208,107,3,176,
+  107,12,208,107,129,240,107,4,208,107,131,241,107,208,107,241,107,4,240,107,
+  138,241,107,241,107,240,107,240,107,240,115,240,107,240,107,17,108,240,107,17,
+  116,6,17,108,3,17,116,130,17,108,17,108,12,17,116,130,49,116,49,116,
+  3,17,116,136,49,116,49,116,17,116,17,116,49,116,49,116,50,116,50,116,
+  4,49,116,129,50,116,4,49,116,129,17,116,3,49,116,132,50,116,50,116,
+  49,116,82,116,4,50,116,137,49,116,49,116,82,116,81,116,49,116,49,116,
+  81,116,50,116,50,116,3,82,116,129,50,116,11,82,116,137,114,116,82,116,
+  82,124,82,124,114,124,82,124,82,124,114,124,82,124,4,114,124,148,82,124,
+  82,124,114,124,82,116,50,116,17,108,209,99,176,83,144,75,111,75,14,67,
+  11,34,231,0,134,0,134,0,135,0,135,0,103,0,135,0,103,0,6,135,
+  0,129,103,0,4,136,0,135,135,0,135,0,134,0,133,0,100,0,68,0,
+  68,0,5,100,0,130,68,0,68,0,3,100,0,132,100,8,100,8,67,8,
+  67,8,8,66,8,140,67,8,99,0,67,8,99,8,67,8,99,0,99,0,
+  100,8,68,0,67,0,99,0,68,0,4,100,8,129,68,0,5,100,8,129,
+  99,8,4,100,0,131,100,8,100,0,100,0,6,100,8,132,100,0,100,8,
+  100,8,99,8,8,100,8,4,132,8,130,133,8,133,0,6,132,8,132,133,
+  8,132,8,132,8,165,8,3,133,8,129,132,8,3,133,8,130,132,8,133,
+  8,10,132,8,132,164,8,165,16,164,8,165,16,3,197,16,129,230,16,3,
+  230,24,129,6,25,3,7,25,3,39,33,130,40,33,40,33,4,72,33,134,
+  105,33,72,33,72,33,137,41,169,41,137,41,3,72,33,3,40,33,130,72,
+  33,73,33,6,72,33,129,73,33,4,72,33,129,104,33,3,72,33,3,105,
+  41,4,104,41,132,105,41,137,41,104,41,136,41,3,137,41,132,137,49,137,
+  41,137,41,137,49,4,137,41,5,104,41,152,105,41,137,49,169,49,201,57,
+  233,65,10,74,42,74,107,82,107,90,171,90,172,98,204,106,236,106,12,107,
+  45,115,45,115,77,115,78,123,110,123,110,123,142,123,142,123,142,131,142,131,
+  3,174,131,133,175,131,175,139,207,139,207,139,207,147,173,3,133,203,82,203,
+  90,203,82,171,82,203,90,6,203,82,132,203,90,203,90,203,82,203,90,3,
+  203,82,131,203,90,203,90,235,90,3,203,82,132,203,90,203,82,203,90,203,
+  90,3,203,82,136,203,90,235,90,203,82,203,90,235,90,203,90,236,90,203,
+  90,4,235,90,129,236,90,11,235,90,131,235,82,235,90,236,90,10,235,90,
+  133,236,90,236,90,235,90,236,90,235,90,3,236,90,129,235,90,3,236,90,
+  133,235,90,235,90,236,90,235,90,203,82,3,236,90,129,236,82,3,236,90,
+  137,236,82,235,90,236,90,235,82,235,82,236,82,203,82,235,82,236,90,3,
+  236,82,131,203,82,235,82,204,82,3,236,82,131,203,82,203,82,236,82,13,
+  203,82,131,171,82,203,82,203,82,3,171,82,129,203,82,4,171,82,3,171,
+  74,129,171,82,3,138,74,129,139,74,3,106,74,148,106,66,138,74,106,74,
+  138,74,138,74,106,74,138,74,106,74,138,74,106,74,74,66,232,49,103,33,
+  229,16,133,0,101,0,133,0,101,0,133,0,133,0,3,134,0,4,166,0,
+  131,167,0,199,0,199,0,3,231,0,130,8,1,8,1,3,8,9,133,40,
+  17,40,9,40,9,8,1,8,9,5,40,9,133,40,17,72,17,40,9,72,
+  9,72,9,5,72,17,143,104,25,136,25,169,33,233,41,10,50,43,50,75,
+  66,139,74,140,74,172,82,204,82,237,90,13,91,45,99,45,99,3,46,99,
+  132,46,91,46,99,78,99,78,91,10,78,99,129,78,91,5,78,99,129,110,
+  99,3,78,99,132,110,99,78,99,110,99,78,91,8,78,99,132,110,99,110,
+  99,79,99,111,99,3,110,99,141,111,99,111,99,110,99,111,99,143,99,110,
+  99,143,107,143,99,111,99,111,99,143,99,111,99,111,99,7,143,99,130,143,
+  107,143,107,3,143,99,4,143,107,4,143,99,129,143,107,4,143,99,141,175,
+  99,143,99,143,99,175,99,175,99,175,107,175,107,143,107,175,99,175,107,176,
+  107,175,107,175,107,3,175,99,136,176,107,175,99,175,107,175,99,176,99,176,
+  107,208,107,207,99,6,208,107,6,176,107,9,208,107,130,240,107,208,107,3,
+  241,107,145,208,107,241,107,240,107,240,107,241,115,208,107,240,107,241,115,241,
+  115,240,107,241,115,241,115,241,107,241,115,17,116,17,116,17,108,17,17,116,
+  137,49,116,49,116,17,116,17,116,49,116,49,116,17,116,49,116,17,116,12,
+  49,116,4,50,116,134,49,116,49,116,50,116,50,116,82,116,81,116,3,50,
+  116,130,82,116,82,116,3,50,116,16,82,116,5,82,124,134,82,116,82,116,
+  114,116,82,116,114,124,114,124,3,82,124,9,114,124,142,82,116,82,116,50,
+  116,49,108,241,99,208,91,143,83,112,83,14,67,43,34,232,0,134,0,134,
+  0,102,0,7,135,0,7,136,0,137,168,0,136,0,135,0,134,0,133,0,
+  101,0,100,0,100,0,68,0,5,100,0,130,68,0,68,0,3,100,0,133,
+  100,8,67,8,66,8,66,8,98,8,4,66,8,129,98,8,3,67,8,149,
+  99,8,67,8,67,8,99,8,100,0,100,8,99,0,99,0,100,8,68,0,
+  100,8,99,8,68,8,100,0,100,8,100,0,100,8,67,8,99,8,99,0,
+  99,8,3,100,8,129,100,0,13,100,8,134,132,8,100,8,100,8,132,8,
+  100,8,100,8,4,132,8,4,133,8,129,132,8,3,133,8,3,132,8,4,
+  133,8,11,132,8,131,164,8,165,16,165,16,3,197,16,129,230,16,4,6,
+  25,134,7,25,39,25,39,33,39,33,40,33,40,33,6,72,33,129,104,33,
+  4,72,33,130,104,33,72,33,3,73,33,132,40,33,137,41,170,41,137,41,
+  7,72,33,137,105,33,72,33,72,33,105,33,105,33,104,33,105,33,72,33,
+  105,33,5,105,41,4,137,41,129,105,41,6,137,41,129,137,49,3,137,41,
+  138,105,41,105,41,104,41,105,41,104,41,136,49,169,49,201,57,233,57,10,
+  74,3,42,74,137,107,82,107,90,171,98,204,98,236,106,13,115,45,115,45,
+  115,77,115,3,110,123,129,142,123,3,142,131,3,174,131,136,175,131,175,131,
+  207,131,207,139,239,139,207,139,239,147,240,147,6,16,148,235,3,134,203,82,
+  203,82,203,90,170,82,203,90,203,90,6,203,82,129,203,90,5,203,82,130,
+  203,90,203,82,3,203,90,143,203,82,203,90,203,90,235,90,203,82,235,90,
+  203,90,203,82,203,90,235,90,203,90,203,90,235,90,235,90,203,90,4,235,
+  90,129,203,82,5,235,90,129,203,90,8,235,90,130,236,90,203,90,3,236,
+  90,6,235,90,131,236,90,236,90,12,91,3,236,90,129,235,90,4,236,90,
+  130,235,90,203,90,4,236,90,161,235,90,236,90,236,90,235,82,236,82,236,
+  90,236,82,236,90,235,90,235,90,203,82,236,90,235,90,235,90,236,90,236,
+  90,204,82,236,82,203,82,235,82,236,82,236,82,203,82,236,90,236,90,203,
+  82,203,82,235,82,203,82,204,82,203,82,203,82,204,90,11,203,82,8,171,
+  82,131,171,74,171,82,171,82,3,171,74,150,138,74,171,82,138,74,106,74,
+  106,66,106,74,106,74,138,74,138,74,106,74,138,74,106,74,138,74,106,74,
+  107,74,139,74,41,66,168,49,71,33,197,8,133,0,101,0,3,133,0,129,
+  134,0,3,166,0,144,199,0,198,0,198,0,199,0,231,0,231,0,232,8,
+  8,1,8,9,8,1,40,1,40,9,8,9,40,9,40,9,8,9,6,40,
+  9,151,73,17,73,17,105,25,104,25,72,17,104,25,104,25,136,25,136,25,
+  169,33,201,41,233,41,10,50,42,58,107,66,139,66,171,74,204,82,237,90,
+  13,91,45,91,46,99,46,99,11,78,99,129,78,91,17,78,99,3,110,99,
+  137,78,99,110,99,78,99,110,99,110,99,78,99,78,99,110,99,111,99,4,
+  110,99,131,111,99,111,99,110,99,3,111,99,135,143,99,110,99,143,107,143,
+  107,143,99,143,107,143,107,16,143,99,137,143,107,143,107,143,99,143,99,143,
+  107,143,99,143,107,143,99,143,99,3,143,107,4,143,99,136,144,99,175,99,
+  143,107,175,107,175,99,176,107,175,107,175,107,3,176,107,131,175,99,175,99,
+  175,107,4,176,107,131,175,107,176,107,176,107,7,208,107,130,176,107,176,107,
+  9,208,107,135,240,107,208,107,208,107,241,107,240,107,240,107,241,115,3,240,
+  107,144,241,115,241,107,241,107,240,107,241,107,240,107,241,115,240,115,241,115,
+  241,115,241,107,17,108,17,108,241,115,17,116,17,108,8,17,116,136,18,116,
+  17,116,18,116,17,116,17,116,49,116,17,116,17,116,4,49,116,141,50,116,
+  49,116,49,116,50,116,17,116,49,116,50,116,50,116,49,116,49,116,50,116,
+  49,116,49,116,3,50,116,130,49,116,49,116,3,50,116,137,82,116,49,116,
+  50,116,82,116,49,116,50,116,82,116,50,116,82,116,6,50,116,133,82,116,
+  82,124,82,116,82,116,82,124,7,82,116,129,82,124,4,82,116,131,82,124,
+  82,116,82,124,4,82,116,131,82,124,82,116,114,116,8,114,124,129,115,124,
+  4,114,124,143,82,116,82,116,49,108,241,99,208,91,144,83,111,75,47,67,
+  44,42,232,0,134,0,134,0,102,0,135,0,103,0,5,135,0,7,136,0,
+  136,169,0,168,0,136,0,134,0,134,0,101,0,100,0,68,0,3,100,0,
+  130,100,8,100,0,3,68,0,3,100,0,130,100,8,67,8,6,66,8,154,
+  98,8,67,8,98,8,67,8,99,8,67,8,99,8,99,8,67,8,100,8,
+  100,8,68,8,100,8,99,0,100,0,67,8,67,8,99,8,99,8,67,8,
+  67,8,99,8,68,8,68,8,100,8,100,8,6,99,8,9,100,8,129,101,
+  8,11,132,8,137,133,8,132,8,133,8,165,8,133,8,133,8,132,8,132,
+  8,100,0,9,132,8,131,165,8,165,8,165,16,3,197,16,135,230,16,230,
+  24,230,24,7,25,6,25,7,25,39,25,4,39,33,5,72,33,132,40,33,
+  72,33,72,33,73,41,4,72,33,135,105,41,105,41,104,41,72,33,105,33,
+  105,33,73,33,6,72,33,131,105,33,105,33,72,25,3,72,33,138,73,33,
+  73,33,105,41,73,33,104,33,104,41,72,33,105,41,105,33,105,41,6,137,
+  41,3,137,49,129,169,49,6,137,41,3,137,49,142,169,49,169,49,169,57,
+  233,57,10,66,75,82,139,90,172,90,204,98,13,107,13,115,77,115,78,115,
+  77,115,3,45,115,143,77,123,109,123,110,123,110,123,142,131,142,123,142,131,
+  174,131,142,131,175,131,142,131,175,131,207,131,207,139,207,139,3,239,139,129,
+  240,139,5,16,148,131,48,148,48,148,16,148,4,48,148,1,16,140,245,3,
+  129,203,82,4,203,90,144,203,82,203,82,203,90,203,90,203,82,203,90,203,
+  90,203,82,203,90,203,82,235,90,203,82,203,82,203,90,203,90,203,82,3,
+  203,90,131,203,82,203,90,203,82,4,203,90,139,203,82,203,82,203,90,203,
+  90,235,90,203,90,236,90,203,90,203,90,235,90,203,90,3,235,90,131,203,
+  82,235,90,203,90,4,235,90,133,235,82,235,90,236,90,235,90,236,90,3,
+  235,90,129,236,90,3,235,90,134,203,90,235,90,236,90,235,90,235,90,236,
+  90,3,235,90,3,236,90,132,235,90,236,90,235,90,235,90,4,236,90,130,
+  235,90,235,90,3,236,90,129,235,90,3,236,90,140,235,82,236,90,235,90,
+  235,90,236,90,236,82,236,90,236,90,236,82,236,90,203,82,236,90,4,203,
+  82,132,236,90,203,82,204,82,235,82,3,203,82,129,235,82,12,203,82,132,
+  171,82,171,82,203,82,203,82,4,171,82,138,171,74,171,82,171,82,171,74,
+  171,82,138,74,171,74,139,74,139,74,138,74,5,106,74,140,138,74,106,74,
+  107,74,106,74,139,74,106,74,106,74,106,66,41,66,168,49,39,25,165,8,
+  4,133,0,3,166,0,135,198,0,199,0,231,8,230,0,7,1,7,1,7,
+  9,5,8,9,130,40,9,8,9,3,40,9,153,72,9,40,9,40,17,72,
+  9,72,17,72,17,104,17,104,25,169,33,169,33,201,33,234,41,10,50,42,
+  50,74,58,107,66,139,66,171,74,204,74,204,82,237,90,45,91,45,91,45,
+  99,77,99,29,78,99,129,110,99,3,78,99,130,79,99,78,99,5,110,99,
+  131,78,99,110,99,110,99,3,111,99,137,110,99,143,99,111,99,111,99,143,
+  99,142,99,110,99,143,99,143,107,4,143,99,3,143,107,4,143,99,130,143,
+  107,143,107,9,143,99,3,143,107,157,143,99,143,107,143,107,175,107,143,107,
+  143,99,143,99,143,107,143,107,143,99,143,107,175,107,175,99,175,99,143,107,
+  175,107,176,107,175,107,175,99,176,107,175,107,176,107,175,99,175,107,176,107,
+  175,107,176,107,176,99,208,107,4,176,107,130,208,107,176,107,10,208,107,129,
+  176,107,4,208,107,130,241,107,209,107,3,240,107,137,241,107,208,107,241,115,
+  241,115,209,107,240,115,241,107,241,115,240,107,3,241,107,134,17,108,241,107,
+  241,115,17,108,241,115,241,115,6,17,116,129,17,108,7,17,116,133,50,116,
+  18,116,18,116,50,116,50,116,5,49,116,135,50,116,49,116,50,116,49,116,
+  49,116,50,116,49,116,4,50,116,129,49,116,8,50,116,131,82,116,82,116,
+  50,116,17,82,116,129,82,124,7,82,116,134,82,124,82,116,82,116,82,124,
+  82,116,82,116,5,82,124,129,114,116,4,114,124,129,114,116,7,114,124,144,
+  115,124,115,124,146,124,114,124,114,124,82,124,82,124,82,116,49,116,241,99,
+  208,91,144,83,144,83,46,75,76,42,8,1,3,134,0,137,135,0,135,0,
+  103,0,103,0,135,0,135,0,136,0,135,0,103,0,4,136,0,139,168,0,
+  136,0,168,0,136,0,134,0,134,0,101,0,100,0,68,0,100,0,101,0,
+  4,100,0,4,68,0,134,101,0,100,0,67,0,66,0,66,8,98,8,3,
+  66,8,131,98,8,99,8,98,8,3,99,8,132,67,8,67,8,99,8,67,
+  8,4,99,8,129,100,8,7,99,8,132,100,8,99,8,99,8,100,8,5,
+  99,8,5,100,8,138,132,8,100,8,132,8,132,8,133,8,101,8,133,8,
+  133,8,165,8,133,8,6,132,8,129,100,8,4,132,8,129,132,0,4,132,
+  8,3,164,8,130,165,8,165,16,3,197,16,138,230,16,230,24,230,16,6,
+  25,6,25,7,25,39,25,39,25,39,33,71,33,7,72,33,132,104,33,72,
+  33,104,41,104,33,3,72,33,142,73,33,72,33,104,41,72,33,104,33,72,
+  33,105,33,104,33,104,33,72,33,72,33,105,33,73,33,40,33,6,72,33,
+  131,105,33,105,33,73,33,3,105,33,129,105,41,5,137,41,129,105,41,5,
+  137,41,133,169,49,169,49,137,41,137,41,169,49,5,137,41,143,169,49,169,
+  57,201,57,233,57,10,66,75,82,139,90,204,98,236,106,13,107,78,115,110,
+  123,142,123,142,131,142,131,6,175,131,136,174,131,142,131,142,131,142,123,174,
+  131,174,131,175,131,175,131,3,207,139,134,239,139,239,147,16,148,16,140,16,
+  148,16,148,5,48,148,129,49,148,3,48,148,137,49,148,48,148,48,148,16,
+  140,48,140,48,140,16,140,48,140,48,140,200,3,133,203,82,171,82,203,90,
+  203,90,203,82,3,203,90,4,203,82,129,203,90,3,203,82,133,203,90,203,
+  90,203,82,235,90,203,82,6,203,90,130,235,90,235,90,4,203,90,131,203,
+  82,203,90,203,90,8,235,90,129,236,90,12,235,90,129,236,90,3,235,90,
+  144,236,90,235,90,236,90,236,90,235,90,235,90,236,90,236,90,235,90,236,
+  90,236,90,235,90,236,90,236,90,235,90,235,90,3,236,90,137,235,90,236,
+  90,236,90,235,90,235,82,235,90,12,91,235,90,235,90,3,236,90,129,236,
+  82,3,236,90,146,236,82,236,82,203,82,236,90,203,82,235,82,203,90,236,
+  90,236,82,236,82,203,82,236,90,236,82,203,82,235,82,203,82,203,82,236,
+  90,3,203,82,129,204,90,13,203,82,7,171,82,129,171,74,3,171,82,129,
+  170,74,3,139,74,136,138,74,138,74,106,74,106,74,106,66,106,74,138,74,
+  139,74,3,138,74,145,106,74,138,74,106,74,106,74,9,58,136,41,6,25,
+  165,0,133,0,133,0,165,0,166,0,198,8,199,0,198,0,231,8,231,0,
+  3,7,1,5,8,9,152,40,9,40,9,72,17,73,17,104,17,105,25,72,
+  17,105,25,72,17,104,17,136,25,169,33,233,41,10,50,74,58,107,66,107,
+  66,139,66,171,74,204,82,204,82,237,82,13,91,45,91,18,78,99,129,78,
+  91,15,78,99,6,110,99,3,111,99,130,110,99,111,107,3,111,99,131,110,
+  99,110,99,111,99,8,143,99,138,143,107,143,99,143,99,143,107,143,99,143,
+  99,143,107,143,107,143,99,143,99,3,143,107,3,143,99,134,143,107,143,99,
+  143,99,175,99,143,99,143,99,3,143,107,136,175,107,143,107,175,99,176,99,
+  143,99,176,107,175,99,143,99,3,175,107,136,175,99,176,107,176,107,175,99,
+  175,107,175,107,176,107,175,107,3,176,107,129,175,107,3,176,107,136,175,107,
+  175,107,208,107,176,107,176,107,208,107,176,107,176,107,14,208,107,137,209,107,
+  208,107,208,107,241,107,241,107,209,107,208,107,241,107,241,115,3,241,107,139,
+  241,115,241,115,241,107,241,107,241,115,241,115,241,107,17,108,241,107,17,116,
+  241,115,3,17,116,129,241,115,8,17,116,138,49,116,17,116,18,116,49,116,
+  17,116,49,116,49,116,50,116,50,116,17,116,7,49,116,3,50,116,3,49,
+  116,5,50,116,136,81,116,50,116,50,116,82,116,82,116,50,116,82,124,50,
+  116,13,82,116,131,50,116,82,116,82,124,3,82,116,138,82,124,82,116,82,
+  116,82,124,82,124,82,116,82,124,82,124,82,116,82,116,4,82,124,134,114,
+  124,114,124,114,116,82,124,114,124,82,116,14,114,124,4,115,124,3,114,124,
+  141,82,116,50,116,17,100,208,91,176,83,144,83,47,75,108,50,40,1,134,
+  0,134,0,102,0,134,0,5,135,0,129,136,0,3,135,0,7,136,0,138,
+  134,0,134,0,101,0,100,0,68,0,100,0,101,0,101,0,100,0,100,8,
+  3,68,0,133,100,0,68,0,100,0,100,8,99,8,6,66,8,130,98,8,
+  98,8,12,99,8,137,100,8,99,8,99,8,100,8,99,8,99,8,100,8,
+  99,8,99,8,3,100,8,130,99,8,99,8,7,100,8,140,132,8,132,8,
+  100,8,132,8,132,8,133,8,132,8,100,8,132,8,132,8,100,8,132,8,
+  4,100,8,6,132,8,134,165,8,197,16,197,16,230,16,230,16,230,24,3,
+  6,25,136,38,25,39,33,39,33,38,33,39,33,71,33,39,33,71,33,5,
+  72,33,130,104,33,104,33,3,104,41,135,72,33,105,33,72,33,72,33,104,
+  33,72,33,104,33,4,72,33,136,104,41,104,41,104,33,104,33,105,33,72,
+  33,72,33,105,41,3,73,33,132,105,33,105,33,73,33,73,33,3,105,33,
+  132,137,41,137,41,137,33,105,41,12,137,41,132,137,49,137,41,137,49,137,
+  41,3,169,49,147,201,57,234,57,10,66,10,74,75,82,106,82,107,82,172,
+  90,172,98,204,98,13,107,45,115,77,115,142,123,175,131,207,131,207,131,207,
+  139,207,139,4,207,131,4,175,131,135,207,131,207,139,207,139,239,139,240,139,
+  240,139,16,140,3,16,148,3,48,148,130,49,148,49,148,3,81,148,3,48,
+  148,131,49,148,48,148,49,140,4,48,140,130,48,148,16,140,5,48,140,223,
+  3,137,203,82,203,82,203,90,203,90,203,82,203,82,203,90,203,82,203,90,
+  3,203,82,138,203,90,235,90,203,82,203,90,203,82,203,90,203,82,203,82,
+  203,90,235,90,4,203,90,132,203,82,235,90,203,82,203,82,3,203,90,131,
+  235,90,203,82,203,90,3,235,90,135,203,90,235,90,235,90,236,90,203,90,
+  236,90,236,90,4,235,90,130,236,90,236,90,4,235,90,133,236,90,236,90,
+  235,90,236,90,235,90,6,236,90,132,235,90,236,90,235,90,235,90,3,236,
+  90,157,12,91,236,90,236,90,235,90,236,90,235,90,235,90,236,90,235,90,
+  235,90,235,82,236,82,236,90,236,90,235,90,235,90,236,90,236,90,236,82,
+  236,90,235,90,236,90,236,82,235,90,235,90,236,90,236,90,236,82,236,90,
+  3,236,82,138,236,90,236,82,235,82,236,82,203,82,203,82,236,90,236,90,
+  236,82,236,90,5,203,82,135,204,82,203,82,203,82,204,82,203,82,203,82,
+  203,74,3,203,82,136,171,82,203,82,171,82,171,82,203,82,171,82,171,82,
+  171,74,3,171,82,171,171,74,170,74,138,74,139,74,138,82,138,74,138,74,
+  106,74,106,74,106,66,106,74,138,74,106,74,138,74,138,74,106,74,106,74,
+  138,74,106,74,74,66,232,57,103,33,6,17,165,8,165,0,197,0,198,0,
+  198,0,230,8,231,8,231,0,231,8,231,0,231,8,8,1,7,9,8,9,
+  72,9,73,17,104,17,105,25,105,25,137,25,3,136,25,142,169,33,201,41,
+  233,41,42,50,42,50,74,58,139,66,139,74,172,82,204,82,237,90,13,91,
+  46,91,45,99,7,78,99,129,110,99,20,78,99,129,110,99,8,78,99,7,
+  110,99,140,111,99,111,99,143,99,111,99,111,107,111,99,110,99,111,99,111,
+  99,143,99,143,107,143,107,12,143,99,164,175,107,175,99,143,99,175,99,175,
+  99,143,99,143,99,175,99,175,99,143,99,175,99,175,99,175,107,175,99,143,
+  107,175,107,143,107,175,107,176,107,175,107,175,107,176,107,175,99,175,107,176,
+  107,176,99,175,107,175,99,175,107,176,107,175,107,176,99,175,107,175,107,176,
+  107,175,107,3,176,107,133,175,107,176,107,176,107,208,107,175,107,4,176,107,
+  18,208,107,129,241,107,3,208,107,131,241,107,208,107,209,107,3,240,107,130,
+  241,115,241,107,6,241,115,137,241,107,17,116,241,115,241,107,17,108,17,108,
+  241,115,17,116,241,115,11,17,116,8,49,116,136,50,116,49,116,82,116,50,
+  116,49,116,49,116,50,116,82,116,3,50,116,136,49,116,50,116,50,116,81,
+  116,82,116,50,124,50,116,50,116,7,82,116,130,50,124,82,124,4,82,116,
+  132,82,124,82,116,82,124,82,124,3,82,116,131,82,124,82,124,82,116,7,
+  82,124,3,82,116,130,82,124,114,124,4,82,124,134,114,124,114,116,82,124,
+  82,124,82,116,114,116,11,114,124,129,146,124,3,114,124,129,115,124,3,114,
+  124,3,115,124,141,82,124,82,116,50,116,17,108,208,91,144,83,144,83,79,
+  75,109,50,41,9,135,0,134,0,102,0,8,135,0,132,103,0,103,0,135,
+  0,135,0,4,136,0,132,135,0,135,0,134,0,133,0,3,100,0,133,101,
+  0,101,0,133,0,100,0,100,0,3,68,0,133,100,0,100,0,100,8,100,
+  8,67,8,4,66,8,3,98,8,131,99,16,99,16,131,16,16,99,8,18,
+  100,8,10,132,8,133,164,8,164,8,132,8,164,16,164,16,3,197,16,131,
+  230,24,6,25,39,33,5,71,33,131,104,33,71,41,71,33,8,104,41,4,
+  104,33,132,72,33,104,33,105,41,105,41,4,72,33,133,73,33,105,33,105,
+  41,105,33,104,41,3,105,41,134,104,33,105,41,105,33,105,33,104,41,104,
+  41,4,105,33,129,105,41,3,137,41,129,105,41,3,105,33,132,105,41,137,
+  41,137,41,105,41,3,137,41,131,169,49,137,41,137,41,3,169,49,145,201,
+  57,201,49,201,57,9,66,10,74,75,74,107,82,139,90,171,90,172,90,204,
+  98,236,106,13,107,45,107,45,115,78,115,77,115,3,110,123,145,142,123,142,
+  131,142,131,175,131,175,131,207,131,207,131,175,131,207,131,207,131,207,139,207,
+  139,239,139,239,139,240,139,16,148,16,148,3,48,148,3,49,148,6,81,148,
+  134,49,148,49,148,16,140,240,131,239,131,239,131,3,16,140,130,48,140,48,
+  148,3,48,140,129,49,140,7,48,140,6,4,134,203,82,171,82,203,90,203,
+  82,203,90,203,82,3,203,90,132,203,82,203,90,203,82,203,82,4,203,90,
+  130,203,82,203,82,3,203,90,130,235,90,235,90,5,203,90,142,235,90,203,
+  90,203,82,203,82,235,90,235,90,203,82,235,90,203,90,235,90,203,90,235,
+  90,236,90,203,90,9,235,90,129,236,90,3,235,90,131,203,82,235,90,235,
+  90,3,236,90,7,235,90,130,236,90,235,90,12,236,90,133,235,90,236,90,
+  236,90,235,90,12,91,5,236,90,130,235,82,235,90,3,236,90,138,235,90,
+  235,90,236,82,236,82,236,90,235,82,235,90,235,82,236,90,236,90,3,236,
+  82,139,236,90,203,82,236,82,236,82,203,82,203,82,235,82,203,82,203,82,
+  235,82,204,82,7,203,82,134,171,74,203,82,203,82,171,82,203,82,203,82,
+  3,171,82,129,171,74,3,171,82,136,171,74,170,74,170,74,138,74,138,74,
+  171,74,138,74,138,74,3,106,74,6,138,74,140,106,74,138,74,106,74,74,
+  66,233,57,103,41,229,16,165,8,165,8,198,8,198,0,230,0,3,231,8,
+  152,7,9,7,9,40,9,71,9,104,17,137,17,104,25,136,25,169,33,169,
+  33,233,41,10,42,42,50,74,50,107,58,107,66,139,74,172,74,204,74,236,
+  82,13,91,45,91,45,99,45,99,15,78,99,129,110,99,4,78,99,129,78,
+  91,5,78,99,129,110,99,7,78,99,133,110,99,78,99,78,99,110,99,78,
+  99,3,110,99,139,111,99,110,99,110,99,111,99,143,99,111,99,111,99,143,
+  107,111,99,143,99,143,107,3,143,99,130,142,99,143,99,3,143,107,145,143,
+  99,175,99,143,99,143,99,143,107,143,99,175,99,175,99,143,107,143,99,143,
+  99,175,99,176,99,175,99,175,99,175,107,175,99,5,175,107,129,175,99,6,
+  175,107,3,176,107,130,208,107,207,107,3,176,107,129,175,107,4,176,107,131,
+  175,99,176,107,175,107,7,176,107,3,208,107,132,176,107,208,107,176,107,176,
+  107,10,208,107,149,209,107,241,107,208,107,241,107,241,107,240,107,241,107,208,
+  107,209,107,209,107,208,107,241,107,208,107,241,107,241,115,241,107,240,115,241,
+  107,241,115,241,107,17,108,3,241,115,135,241,107,241,115,17,116,241,115,241,
+  115,17,116,17,108,9,17,116,129,18,116,3,17,116,131,49,116,49,116,50,
+  116,3,49,116,144,50,116,49,116,49,116,50,116,50,116,49,116,82,116,49,
+  116,82,116,50,116,50,116,82,116,82,116,50,116,82,116,81,116,4,82,116,
+  132,50,124,50,124,82,124,82,124,4,82,116,131,82,124,82,116,82,116,3,
+  82,124,135,82,116,82,116,82,124,82,116,82,124,82,124,82,116,6,82,124,
+  129,82,116,4,82,124,133,114,124,82,124,114,124,82,116,82,116,5,114,124,
+  129,82,116,6,114,124,129,114,116,10,114,124,151,146,124,147,124,115,124,114,
+  124,114,124,146,124,146,124,114,124,146,124,114,124,114,124,82,116,82,116,18,
+  108,209,91,176,83,144,83,79,75,109,50,73,9,135,0,134,0,134,0,6,
+  135,0,129,136,0,3,135,0,138,103,0,136,0,135,0,135,0,136,0,136,
+  0,135,0,135,0,134,0,101,0,3,100,0,133,101,0,133,0,101,0,100,
+  0,100,0,3,68,0,136,100,0,100,0,100,8,100,8,67,8,67,8,99,
+  8,66,8,3,98,8,131,99,8,99,8,98,8,7,99,8,132,67,8,99,
+  8,99,8,67,8,4,99,8,129,100,8,3,99,8,13,100,8,3,132,8,
+  3,164,8,131,164,16,165,16,165,8,6,197,16,3,230,24,135,7,25,39,
+  25,39,33,39,33,71,33,71,33,104,41,3,103,41,135,136,41,136,49,136,
+  41,104,41,104,41,136,41,136,41,4,104,41,129,137,41,3,105,41,134,105,
+  33,105,33,73,33,73,33,72,33,72,33,5,105,33,133,105,41,104,41,105,
+  41,105,41,105,33,3,105,41,131,137,41,105,41,105,41,4,137,41,129,105,
+  41,5,137,41,129,105,41,6,137,41,146,169,49,169,49,201,49,234,57,10,
+  66,42,74,75,82,107,82,139,82,171,90,172,90,204,98,237,98,13,107,13,
+  107,45,115,78,115,77,115,4,110,123,3,142,131,131,142,123,174,131,142,131,
+  3,175,131,3,207,139,132,239,139,239,139,16,148,16,148,5,48,148,8,81,
+  148,157,49,140,48,140,16,140,239,131,207,131,174,123,174,123,142,123,142,115,
+  142,123,174,123,174,123,207,131,16,140,48,140,16,140,16,140,49,140,81,148,
+  49,148,16,140,48,140,16,140,16,132,16,132,16,140,16,140,16,132,16,140,
+  249,3,138,203,90,203,82,203,82,203,90,203,82,203,82,204,90,203,90,203,
+  90,203,82,3,203,90,129,235,90,3,203,90,132,235,90,203,90,203,90,203,
+  82,6,203,90,139,235,90,203,90,203,90,235,90,235,90,203,82,235,90,203,
+  82,203,90,203,82,203,90,4,235,90,129,236,90,4,235,90,144,236,90,236,
+  90,235,90,236,90,236,90,235,90,236,90,235,90,236,90,235,90,236,90,236,
+  90,235,90,236,90,235,90,236,90,4,235,90,5,236,90,129,235,90,5,236,
+  90,129,235,90,5,236,90,129,235,90,3,236,90,156,235,90,236,90,12,91,
+  235,90,236,90,235,90,236,90,235,82,235,82,236,90,236,90,235,82,235,82,
+  236,90,236,82,235,90,235,90,235,82,236,82,236,90,235,82,235,90,203,82,
+  236,82,203,82,236,90,203,82,236,90,3,203,82,129,203,90,6,203,82,129,
+  204,82,10,203,82,6,171,82,135,171,74,170,74,171,74,139,74,171,82,138,
+  74,138,74,4,106,74,132,138,74,138,74,139,74,106,74,3,138,74,160,106,
+  74,106,74,41,66,200,49,71,25,230,16,165,0,198,8,230,0,231,0,231,
+  8,7,9,39,9,40,17,72,17,72,17,104,17,137,25,201,41,233,41,42,
+  58,74,58,107,58,107,66,139,74,172,74,204,82,204,82,237,90,13,91,45,
+  99,45,99,3,78,99,129,110,99,6,78,99,133,110,99,78,99,110,99,78,
+  99,110,99,5,78,99,129,110,99,17,78,99,132,110,99,78,99,110,99,78,
+  99,5,110,99,135,111,99,143,99,143,99,111,99,143,99,143,99,111,99,9,
+  143,99,3,143,107,134,175,107,143,107,143,99,143,99,143,107,175,107,4,175,
+  99,133,175,107,175,107,175,99,176,107,176,107,5,175,107,131,176,107,175,107,
+  176,107,3,175,107,132,176,107,176,107,175,107,175,107,5,176,107,130,175,99,
+  207,107,3,176,107,129,175,107,4,208,107,129,207,99,18,208,107,138,240,107,
+  240,107,208,107,241,107,208,107,241,107,241,107,240,107,241,115,209,107,4,241,
+  107,130,209,107,209,107,5,241,107,138,241,115,241,115,241,107,241,107,17,116,
+  241,115,17,108,241,107,241,107,17,108,3,17,116,129,17,108,10,17,116,130,
+  49,116,50,116,3,49,116,140,50,116,50,116,49,116,49,116,50,116,50,116,
+  49,116,50,116,49,116,82,116,82,116,50,116,4,82,116,129,50,116,4,82,
+  116,129,82,124,4,82,116,133,82,124,82,116,82,116,82,124,82,116,3,82,
+  124,130,82,116,82,116,3,82,124,133,82,116,114,124,82,116,114,116,114,124,
+  3,82,124,138,114,124,82,124,114,124,114,124,82,116,82,116,114,124,82,116,
+  114,116,82,124,3,114,124,137,82,124,114,116,82,124,114,124,114,124,82,124,
+  114,124,114,124,82,124,13,114,124,6,115,124,3,146,124,145,147,124,114,124,
+  146,124,115,124,114,124,82,124,50,116,18,108,241,91,176,83,144,83,79,75,
+  173,50,105,17,167,0,135,0,134,0,6,135,0,130,136,0,136,0,4,135,
+  0,157,136,0,135,0,136,0,136,0,135,0,134,0,134,0,101,8,100,0,
+  68,0,100,0,101,0,101,0,133,0,101,0,100,0,68,0,100,0,68,0,
+  100,8,68,0,101,8,100,8,67,8,67,8,66,8,66,8,98,8,98,8,
+  6,99,8,132,98,8,99,8,67,8,67,8,13,99,8,3,100,8,5,132,
+  8,132,164,16,164,8,164,16,165,16,4,197,16,131,229,16,230,16,229,24,
+  3,230,24,134,6,25,231,24,7,25,7,25,230,24,38,33,3,39,33,3,
+  72,33,131,71,33,103,41,71,41,4,103,41,145,136,49,136,49,136,41,136,
+  49,136,41,137,49,136,41,137,41,105,41,137,41,105,41,137,41,105,41,104,
+  41,105,41,105,33,73,33,3,105,33,129,105,41,3,105,33,134,104,41,104,
+  41,105,41,105,41,137,41,105,33,4,137,41,129,105,41,11,137,41,147,137,
+  49,169,49,169,49,202,57,234,57,10,66,42,66,75,74,107,82,139,90,172,
+  90,204,98,236,106,13,107,45,107,45,107,77,115,77,115,78,115,3,110,123,
+  130,142,123,142,123,3,142,131,142,174,131,174,131,175,131,207,131,207,131,239,
+  139,240,139,239,139,16,148,16,140,16,140,16,148,48,148,49,148,12,81,148,
+  136,48,140,48,140,240,131,239,131,207,131,175,123,174,123,174,123,3,142,123,
+  4,174,123,137,207,131,239,139,16,140,16,140,48,140,48,140,16,140,239,131,
+  16,132,4,16,140,132,16,132,240,131,16,132,240,139,3,16,140,151,3,129,
+  203,82,4,203,90,129,203,82,3,203,90,133,203,82,203,90,203,90,203,82,
+  203,82,4,203,90,142,235,90,235,90,236,90,203,90,235,90,235,90,203,90,
+  203,90,235,90,235,90,203,90,235,90,203,90,203,90,3,235,90,129,203,90,
+  3,235,90,129,203,90,4,235,90,131,236,90,235,90,235,90,3,236,90,136,
+  235,90,236,90,235,90,235,90,236,90,235,90,236,90,235,90,4,236,90,134,
+  235,90,236,90,236,90,235,90,236,90,235,90,10,236,90,130,235,90,12,91,
+  4,236,90,129,235,82,8,236,90,3,235,90,6,236,90,154,235,82,235,82,
+  203,82,235,82,236,82,236,90,235,90,235,90,235,82,235,82,203,90,236,90,
+  236,90,203,82,236,90,203,82,203,82,203,90,203,90,203,82,203,82,236,82,
+  204,82,203,82,203,82,204,82,6,203,82,142,171,82,203,82,171,82,203,82,
+  171,82,203,82,171,82,171,74,171,82,171,74,171,74,138,74,139,74,139,82,
+  3,138,74,130,106,74,106,74,3,138,74,129,139,74,4,138,74,3,106,74,
+  152,9,58,103,33,38,25,198,8,230,8,7,9,7,17,7,17,39,17,71,
+  17,136,25,168,33,233,41,9,50,74,58,107,66,139,66,171,74,171,74,204,
+  82,237,90,13,91,45,91,46,99,11,78,99,130,110,99,110,99,3,78,99,
+  133,110,99,110,107,78,99,110,99,110,99,4,78,99,129,110,99,15,78,99,
+  8,110,99,133,111,99,143,99,111,107,143,99,143,99,3,143,107,4,143,99,
+  4,175,99,136,143,107,175,99,143,99,176,107,175,107,143,107,175,107,143,107,
+  3,175,99,144,143,99,176,99,176,107,175,107,176,107,175,107,175,107,175,99,
+  176,107,176,107,207,107,207,107,176,107,176,107,208,107,175,107,4,176,107,6,
+  208,107,130,176,107,176,107,4,208,107,130,176,107,176,107,9,208,107,129,208,
+  115,5,208,107,129,209,107,6,208,107,3,240,107,130,208,107,240,107,10,241,
+  107,5,241,115,132,241,107,241,107,240,107,241,107,3,241,115,135,241,107,241,
+  107,17,116,241,107,17,116,17,108,17,108,8,17,116,129,49,116,3,17,116,
+  130,50,116,18,116,5,49,116,5,50,116,131,49,116,50,116,49,116,6,82,
+  116,129,50,116,5,82,116,8,82,124,5,82,116,15,82,124,3,114,124,129,
+  82,124,23,114,124,132,115,124,115,124,114,124,115,124,3,114,124,137,146,124,
+  114,124,147,124,115,124,115,124,114,124,147,124,146,124,146,124,3,147,124,143,
+  115,124,115,124,82,116,82,116,18,108,209,91,176,83,176,83,111,75,173,58,
+  105,9,135,0,135,0,134,0,134,0,13,135,0,134,136,0,136,0,135,0,
+  134,0,134,0,133,0,3,100,0,5,101,0,129,100,0,3,68,0,3,100,
+  8,130,99,8,67,8,3,66,8,132,67,8,67,8,66,8,98,8,3,99,
+  8,129,98,8,13,99,8,129,100,8,3,132,8,138,164,8,164,8,165,16,
+  165,16,197,16,197,16,229,16,230,24,6,25,230,24,5,6,25,134,7,25,
+  7,33,6,25,6,25,39,25,7,25,3,39,33,129,7,33,5,39,33,142,
+  72,33,104,33,104,41,103,41,103,41,102,41,103,49,103,41,135,49,136,49,
+  136,49,168,49,136,49,136,41,3,137,49,132,137,41,104,41,104,41,137,41,
+  3,105,41,132,105,33,105,33,105,41,105,33,4,105,41,129,137,41,5,105,
+  41,130,137,41,105,41,8,137,41,149,137,49,169,49,169,49,202,49,234,57,
+  10,66,10,66,75,74,107,82,140,90,172,90,204,98,204,98,237,98,13,107,
+  13,107,45,107,77,115,78,115,110,115,110,123,6,142,123,131,174,123,175,131,
+  175,131,3,207,131,137,239,139,240,139,16,140,16,148,16,148,48,148,48,148,
+  49,148,49,148,6,81,148,130,113,148,113,148,4,81,148,137,49,140,48,140,
+  16,140,16,140,239,131,239,131,207,131,207,123,207,123,4,207,131,3,239,131,
+  130,239,139,240,139,3,16,140,6,48,140,132,16,140,239,131,207,131,16,132,
+  5,16,140,134,16,132,240,131,239,131,16,140,16,140,48,140,6,4,130,203,
+  90,203,90,3,203,82,144,203,90,203,90,203,82,235,90,203,90,203,90,203,
+  82,203,90,235,90,203,82,203,90,203,90,203,82,203,90,235,90,203,90,3,
+  235,90,143,203,90,235,90,235,90,203,90,235,90,236,90,203,90,235,90,235,
+  90,203,90,235,90,235,90,203,90,203,90,236,90,3,235,90,129,203,90,3,
+  235,90,138,203,82,236,90,235,90,235,90,236,90,12,91,236,90,235,90,236,
+  90,235,90,6,236,90,132,235,90,236,90,235,90,12,91,3,236,90,130,12,
+  91,12,91,12,236,90,129,12,91,9,236,90,131,12,91,236,90,235,90,3,
+  236,90,142,235,82,235,82,235,90,236,82,236,82,236,90,235,90,236,90,236,
+  82,236,90,236,90,203,82,235,90,235,90,3,236,90,131,203,82,204,82,235,
+  82,3,203,82,135,236,82,203,82,203,82,204,82,203,82,203,82,236,90,7,
+  203,82,138,171,82,203,82,171,82,171,82,203,82,171,74,171,74,171,82,171,
+  82,139,74,3,138,74,129,171,74,3,138,74,3,106,74,130,138,74,106,74,
+  3,138,74,151,106,74,106,74,138,74,41,66,167,41,70,25,6,17,6,17,
+  71,25,71,25,136,33,169,41,9,50,42,58,74,66,107,66,139,74,172,82,
+  204,82,236,82,13,91,45,99,46,99,10,78,99,138,110,99,78,99,110,99,
+  78,99,110,99,78,99,110,99,110,99,78,99,78,99,3,110,99,135,78,99,
+  110,99,78,99,78,99,110,99,78,99,110,99,8,78,99,133,110,99,78,91,
+  110,99,110,99,78,99,4,110,99,4,111,99,134,110,99,143,99,143,99,111,
+  99,143,99,143,99,3,143,107,144,143,99,143,107,143,107,175,107,143,99,175,
+  107,143,107,175,99,176,107,144,107,143,107,175,107,175,107,175,99,143,99,175,
+  107,4,175,99,141,175,107,175,107,175,99,176,107,175,107,176,107,208,107,208,
+  107,176,107,176,107,208,107,208,107,176,107,33,208,107,135,240,107,240,107,208,
+  107,240,107,208,107,241,107,241,107,5,240,107,4,241,107,135,241,115,241,107,
+  240,107,241,115,241,107,241,115,241,107,4,241,115,3,241,107,130,241,115,241,
+  107,4,17,116,130,17,108,17,108,13,17,116,136,50,116,49,116,49,116,50,
+  116,17,116,49,116,49,116,50,116,3,49,116,139,50,116,49,116,82,116,50,
+  116,49,116,82,116,50,116,50,116,82,116,82,116,82,124,4,82,116,135,82,
+  124,82,124,82,116,82,116,82,124,82,116,82,116,3,82,124,131,82,116,114,
+  124,82,124,3,82,116,129,82,124,3,114,124,129,114,116,8,114,124,3,82,
+  124,3,114,124,129,82,124,30,114,124,156,146,124,114,124,147,124,114,124,146,
+  124,146,124,147,124,146,124,146,124,147,124,114,124,147,124,147,124,115,124,147,
+  124,114,124,114,116,82,116,17,108,241,99,208,83,176,83,112,83,173,58,137,
+  17,167,0,135,0,134,0,8,135,0,129,134,0,3,135,0,4,136,0,132,
+  135,0,135,0,134,0,101,0,4,100,0,129,133,0,3,101,0,131,68,0,
+  68,0,100,0,4,100,8,138,99,8,67,8,66,8,66,8,98,8,67,8,
+  67,8,66,8,99,8,66,8,4,99,8,130,131,8,100,8,7,132,8,132,
+  132,16,164,16,164,16,165,16,4,197,16,136,229,16,230,24,230,24,6,25,
+  6,25,38,33,39,33,38,33,5,39,33,132,71,33,39,33,7,33,7,33,
+  3,39,33,131,40,33,40,33,39,33,5,71,33,129,39,33,3,71,41,143,
+  103,41,70,41,70,41,102,49,103,49,135,49,136,49,136,49,136,41,136,41,
+  137,41,137,41,137,49,137,49,104,41,3,137,41,130,105,41,137,41,4,105,
+  41,131,105,33,105,33,137,41,3,105,41,131,137,41,105,41,105,41,5,137,
+  41,150,169,49,170,49,202,57,201,57,234,65,10,66,75,74,75,74,139,82,
+  172,90,172,90,172,98,204,98,237,98,13,107,13,107,45,115,77,115,110,115,
+  109,115,110,115,110,123,5,142,123,141,174,123,174,123,174,131,207,131,207,131,
+  239,139,239,139,240,139,16,140,16,148,48,148,49,148,48,148,3,81,148,132,
+  81,156,113,148,81,148,113,156,3,113,148,130,113,156,113,148,3,81,148,142,
+  49,140,48,140,48,140,16,140,16,140,16,132,239,131,239,131,16,140,240,131,
+  239,131,239,131,240,131,240,131,4,16,140,139,48,148,49,140,48,140,49,140,
+  48,140,49,140,48,140,48,140,49,140,48,140,48,148,5,48,140,142,16,140,
+  207,131,240,131,48,140,16,140,48,140,16,140,16,140,239,131,207,131,239,131,
+  207,131,239,131,16,132,228,3,129,203,82,10,203,90,134,203,82,203,82,203,
+  90,203,90,235,90,235,90,7,203,90,5,235,90,130,203,90,203,90,4,235,
+  90,134,203,82,235,90,235,90,203,90,203,90,236,90,3,235,90,133,236,90,
+  235,90,236,90,235,90,236,90,4,235,90,130,236,90,235,90,4,236,90,129,
+  235,90,4,236,90,129,235,90,4,236,90,129,12,91,5,236,90,129,235,90,
+  4,236,90,135,235,90,236,90,236,90,235,90,236,90,236,90,235,90,12,236,
+  90,130,235,82,236,82,3,236,90,131,236,82,235,82,12,91,3,236,90,143,
+  203,90,236,90,203,82,203,82,236,82,203,82,203,82,204,82,236,82,203,82,
+  235,82,235,82,203,82,203,82,236,82,10,203,82,131,203,74,204,82,171,74,
+  3,171,82,139,203,82,171,82,171,74,171,74,138,74,171,74,138,74,170,74,
+  138,74,138,74,170,74,11,138,74,146,106,74,41,66,200,49,135,33,103,33,
+  168,41,201,49,10,58,74,66,106,66,139,74,172,74,204,82,237,90,13,91,
+  45,99,46,99,77,99,10,78,99,138,110,107,110,99,78,99,78,99,110,99,
+  110,99,78,99,78,99,110,99,110,99,17,78,99,136,110,99,78,99,110,99,
+  78,99,78,99,110,99,110,99,111,99,3,110,99,132,111,99,143,99,143,99,
+  111,99,4,143,99,141,143,107,143,107,143,99,175,107,143,99,143,107,143,99,
+  143,107,143,107,175,107,143,107,175,99,175,99,4,175,107,150,175,99,176,107,
+  175,99,175,107,175,99,175,107,175,107,175,99,176,99,176,107,175,107,175,99,
+  176,99,176,107,176,107,176,99,176,107,176,107,208,107,208,107,176,107,176,107,
+  5,208,107,129,240,107,7,208,107,129,240,107,12,208,107,133,240,107,208,107,
+  240,107,208,107,241,107,6,240,107,140,208,107,240,107,208,107,241,107,241,107,
+  240,107,241,107,241,107,241,115,240,107,240,115,241,115,3,241,107,142,241,115,
+  17,116,241,107,241,115,241,115,241,107,241,107,241,115,241,115,17,108,241,107,
+  241,115,17,116,241,107,4,17,116,131,17,108,17,108,241,115,9,17,116,132,
+  50,116,17,116,17,116,49,116,3,50,116,3,49,116,135,50,116,50,116,49,
+  116,50,116,50,116,82,116,50,116,6,82,116,130,82,124,82,124,4,82,116,
+  3,82,124,140,82,116,82,124,82,124,114,124,82,124,82,124,114,116,114,124,
+  82,124,82,124,114,124,82,124,5,114,124,129,82,116,3,114,124,129,82,124,
+  22,114,124,131,115,124,114,124,114,124,3,115,124,137,114,124,115,124,115,124,
+  114,124,114,124,146,124,114,124,114,124,146,124,3,114,124,129,147,124,4,146,
+  124,136,147,124,147,124,146,124,147,124,115,124,146,124,147,124,115,124,3,147,
+  124,139,114,124,82,116,82,116,17,108,241,99,208,83,176,83,112,75,205,58,
+  170,25,167,0,10,135,0,129,134,0,4,135,0,138,136,0,168,0,168,0,
+  136,0,134,0,102,0,101,0,100,8,100,0,100,0,5,101,0,132,68,0,
+  68,0,100,0,100,0,4,100,8,132,99,8,66,8,98,8,98,8,5,99,
+  8,136,131,16,99,8,132,8,132,8,164,8,164,16,164,16,196,16,7,197,
+  16,140,230,24,230,24,6,25,230,24,6,25,6,25,6,33,6,25,7,33,
+  39,33,39,33,71,33,8,39,33,129,40,33,4,39,33,133,40,33,72,33,
+  72,41,72,33,71,33,5,71,41,4,70,41,3,102,49,134,103,49,135,49,
+  136,49,136,49,136,41,136,49,3,136,41,131,137,41,105,41,137,41,6,105,
+  41,130,104,41,105,33,3,105,41,135,137,41,104,41,137,41,137,41,169,49,
+  202,57,10,66,4,75,74,137,107,82,139,82,172,90,172,90,204,98,237,98,
+  13,107,13,107,45,107,3,77,115,130,110,123,110,115,5,142,123,141,174,123,
+  174,123,175,131,175,131,207,131,207,131,239,131,239,139,240,139,16,140,16,140,
+  48,148,48,148,4,81,148,6,113,148,130,114,148,146,156,3,113,148,3,81,
+  148,130,81,140,49,148,3,48,140,129,16,140,3,48,140,156,16,140,48,140,
+  16,140,48,140,16,140,48,140,48,140,16,140,48,140,49,140,49,140,48,140,
+  49,140,48,140,49,140,49,140,81,148,49,140,49,140,48,140,49,148,48,140,
+  81,140,81,148,81,148,49,148,48,140,49,140,3,48,140,141,239,131,239,131,
+  48,140,16,140,16,140,48,140,16,140,16,140,239,131,240,131,240,131,16,140,
+  16,140,214,3,129,203,90,3,203,82,3,203,90,3,203,82,137,203,90,203,
+  90,203,82,235,90,203,90,203,90,235,90,203,90,203,90,5,235,90,130,236,
+  90,203,90,12,235,90,129,203,90,3,235,90,129,236,90,4,235,90,133,236,
+  90,235,90,236,90,236,90,235,90,3,236,90,136,235,90,236,90,235,90,235,
+  90,236,90,236,90,12,91,235,90,5,236,90,131,12,91,236,90,12,91,3,
+  236,90,135,12,91,236,90,12,91,236,90,12,91,236,90,12,91,9,236,90,
+  130,12,91,235,82,4,236,90,129,235,90,3,236,90,133,235,90,236,90,236,
+  90,236,82,236,82,5,236,90,130,204,90,235,90,3,236,90,129,204,82,4,
+  203,82,133,236,82,203,82,236,82,236,82,203,90,8,203,82,131,204,82,203,
+  82,171,82,4,203,82,140,171,82,171,74,171,74,171,82,170,74,139,74,138,
+  74,170,74,170,74,139,74,171,82,170,82,3,138,74,132,138,66,138,74,138,
+  74,170,74,4,138,74,146,106,74,73,66,9,58,8,58,9,66,74,66,106,
+  74,139,74,204,82,236,90,13,91,13,91,45,99,77,99,45,99,78,99,78,
+  99,46,99,10,78,99,129,110,99,4,78,99,130,110,99,110,99,9,78,99,
+  129,110,99,10,78,99,130,110,99,78,99,4,110,99,6,111,99,3,143,99,
+  129,143,107,3,143,99,141,143,107,143,99,143,107,175,99,175,99,143,99,175,
+  107,143,107,175,99,175,107,175,99,175,99,176,107,7,175,107,135,176,107,176,
+  107,175,107,175,107,176,107,176,99,175,107,15,208,107,131,240,107,208,107,208,
+  107,6,240,107,129,208,107,3,240,107,132,241,107,241,107,240,107,240,107,3,
+  241,107,135,240,107,240,107,241,107,240,107,241,107,241,107,241,115,3,241,107,
+  135,240,107,240,107,241,115,240,115,241,107,241,115,241,115,5,241,107,3,241,
+  115,131,17,116,241,107,241,115,4,17,116,134,241,115,17,116,17,108,241,115,
+  17,116,241,115,17,17,116,131,18,116,50,116,49,116,3,17,116,132,18,116,
+  49,116,50,116,50,116,4,49,116,132,50,116,50,116,82,116,50,116,4,82,
+  116,135,82,124,82,124,82,116,82,124,82,116,82,124,82,116,7,82,124,135,
+  82,116,82,124,114,124,82,124,82,124,114,124,114,116,9,114,124,129,114,116,
+  8,114,124,129,115,124,14,114,124,129,115,124,7,114,124,4,115,124,168,114,
+  124,114,124,146,124,114,124,115,124,146,124,147,124,114,124,146,124,146,124,147,
+  124,114,124,146,124,147,124,147,124,146,124,147,124,147,132,147,124,146,124,147,
+  124,147,124,146,124,147,124,147,124,146,124,114,124,114,124,82,116,50,108,241,
+  99,208,91,176,83,144,83,205,58,170,17,199,0,135,0,134,0,134,0,12,
+  135,0,135,136,0,168,0,168,0,136,0,134,0,134,0,133,0,4,100,0,
+  4,101,0,129,100,0,3,68,0,132,100,0,101,8,132,8,132,8,3,99,
+  8,130,99,16,131,8,4,132,8,139,164,8,165,16,165,16,197,16,197,16,
+  229,24,230,16,6,25,230,24,6,25,230,24,3,6,25,135,39,25,39,33,
+  39,33,7,33,7,25,39,33,6,33,6,39,33,129,71,33,6,39,33,136,
+  72,41,40,33,72,33,71,33,71,33,39,33,72,33,71,41,3,72,41,4,
+  71,41,148,70,41,70,41,38,41,69,41,70,41,70,41,103,49,102,49,135,
+  49,103,49,136,49,137,49,137,49,136,41,104,41,105,41,137,41,105,41,104,
+  41,105,41,3,105,33,143,105,41,104,41,105,41,137,49,137,41,137,41,202,
+  57,10,66,42,66,42,66,74,74,107,82,139,90,237,98,13,107,3,45,107,
+  136,13,107,13,107,45,107,77,115,78,115,77,115,110,115,110,115,5,142,123,
+  131,142,131,174,123,175,131,3,207,131,135,239,131,240,139,240,139,16,140,48,
+  140,49,148,49,148,3,81,148,4,113,148,133,113,156,113,148,114,148,114,148,
+  146,148,7,113,148,4,81,148,129,49,140,3,81,140,136,81,148,49,140,48,
+  140,48,140,49,140,48,140,81,140,49,140,3,81,140,143,48,140,48,140,81,
+  140,49,140,48,140,48,140,81,140,81,140,49,140,49,140,48,140,81,140,48,
+  140,48,140,81,148,3,48,140,135,81,140,113,148,113,148,81,148,16,140,16,
+  140,49,140,3,16,140,135,239,131,16,140,49,140,48,140,81,140,48,140,48,
+  148,5,48,140,194,3,3,203,82,4,203,90,153,235,90,203,82,203,82,235,
+  90,203,82,203,90,235,90,203,90,235,90,203,82,203,90,203,90,235,90,203,
+  90,235,90,203,90,235,90,235,90,203,82,203,90,235,90,203,90,235,90,235,
+  90,203,90,4,235,90,131,203,90,235,90,203,90,3,235,90,129,236,90,4,
+  235,90,138,236,90,235,90,236,90,236,90,235,90,236,90,235,90,236,90,236,
+  90,235,90,9,236,90,129,12,91,6,236,90,129,12,91,4,236,90,129,12,
+  91,18,236,90,129,236,82,3,236,90,134,236,82,236,90,236,90,236,82,236,
+  90,236,82,5,236,90,133,236,82,235,90,203,90,235,82,235,90,5,236,82,
+  137,203,82,203,82,203,90,204,90,236,90,236,82,203,82,203,82,236,82,9,
+  203,82,7,171,74,129,139,74,3,171,74,133,170,74,171,74,171,74,138,74,
+  106,74,8,138,74,3,106,74,134,171,82,203,82,204,90,237,90,13,91,13,
+  91,4,45,99,13,78,99,129,110,99,3,78,99,132,110,99,78,99,78,99,
+  110,99,4,78,99,129,110,99,8,78,99,130,110,99,78,99,3,110,99,129,
+  78,99,5,110,99,134,111,99,111,99,143,99,111,99,143,99,110,99,6,143,
+  99,129,175,99,3,143,99,136,175,107,143,107,175,99,175,107,175,107,175,99,
+  176,107,143,107,4,175,99,145,175,107,175,107,176,107,175,107,175,107,175,99,
+  176,107,176,107,176,99,176,107,175,99,176,99,176,107,176,107,208,107,208,107,
+  208,99,8,208,107,133,240,107,208,107,209,107,240,107,240,107,4,240,115,132,
+  240,107,240,107,240,115,240,115,4,240,107,135,241,107,240,107,241,107,241,107,
+  240,107,241,115,240,115,3,241,107,132,241,115,240,107,241,107,241,115,5,241,
+  107,130,240,107,241,115,4,241,107,139,241,115,241,115,240,107,241,115,17,116,
+  241,115,17,116,17,116,241,115,241,115,241,107,4,17,116,129,241,107,15,17,
+  116,133,17,108,49,116,17,116,17,116,50,116,3,17,116,132,18,116,50,116,
+  50,116,49,116,5,50,116,131,49,116,82,116,49,116,3,82,116,133,50,116,
+  50,116,82,116,82,124,82,116,4,82,124,129,114,124,11,82,124,133,114,124,
+  114,124,82,124,114,124,82,116,4,114,124,129,114,116,5,114,124,129,115,124,
+  4,114,124,130,115,124,115,124,18,114,124,153,115,124,114,124,146,124,146,124,
+  114,124,115,124,114,124,114,124,115,124,114,124,115,124,146,124,115,124,114,124,
+  115,124,147,124,114,124,146,124,146,124,114,124,146,124,114,124,115,124,146,124,
+  146,124,3,147,124,130,115,124,146,124,4,147,124,141,147,132,115,124,114,124,
+  82,124,82,116,50,108,241,99,209,91,176,83,112,75,205,58,170,17,199,0,
+  3,135,0,129,134,0,11,135,0,4,168,0,131,134,0,101,0,133,0,4,
+  100,0,133,101,0,101,0,133,0,101,0,100,0,3,68,0,158,100,0,100,
+  8,132,8,165,8,165,8,164,16,164,16,165,16,197,16,197,16,165,8,165,
+  16,197,16,197,16,230,16,6,25,6,25,38,25,7,25,39,25,6,25,6,
+  25,6,33,39,33,7,25,39,25,39,33,39,33,7,33,7,25,3,39,33,
+  129,38,33,8,39,33,5,71,33,133,72,33,71,33,71,33,72,33,39,33,
+  3,71,41,165,72,41,72,41,71,41,72,41,71,41,70,41,70,41,37,33,
+  69,41,37,41,69,41,38,41,70,41,102,41,103,49,104,41,136,41,104,41,
+  105,41,104,33,104,33,72,33,104,41,104,41,137,41,137,41,169,41,169,49,
+  233,57,10,66,42,74,75,74,75,74,74,74,107,82,139,82,172,90,3,236,
+  98,132,237,106,13,107,45,107,110,115,3,207,131,130,175,131,174,123,5,142,
+  123,139,174,123,174,123,175,123,207,131,207,131,239,131,240,139,240,139,16,140,
+  48,140,48,148,5,81,148,3,113,148,129,114,156,3,146,148,129,113,148,3,
+  146,148,3,113,148,129,114,148,12,113,148,5,81,148,129,81,140,3,49,140,
+  130,81,140,49,140,4,48,140,132,16,132,16,140,81,140,49,140,4,48,140,
+  132,49,140,48,140,48,140,49,140,5,48,140,135,16,140,81,140,113,148,81,
+  148,81,148,48,140,48,140,4,81,148,130,240,139,48,140,5,81,148,130,81,
+  140,49,140,3,48,140,186,3,130,203,82,235,90,3,203,90,133,203,82,203,
+  90,203,90,235,90,235,90,5,203,90,132,203,82,235,90,235,90,203,90,4,
+  235,90,130,236,90,203,90,4,235,90,129,236,90,4,235,90,131,236,90,235,
+  90,236,90,6,235,90,129,235,82,3,235,90,10,236,90,129,235,90,15,236,
+  90,129,12,91,3,236,90,131,12,91,236,90,12,91,5,236,90,131,235,90,
+  236,90,12,91,6,236,90,129,235,90,5,236,90,133,236,82,12,91,235,82,
+  235,90,236,82,3,236,90,153,236,82,236,90,235,90,236,90,236,90,235,82,
+  236,82,203,82,235,82,236,82,203,82,236,82,236,90,204,82,236,82,235,82,
+  235,82,236,82,203,82,203,82,235,82,203,82,203,82,204,82,236,82,5,203,
+  82,3,171,82,135,171,74,203,82,171,82,171,82,171,74,171,74,139,74,4,
+  171,74,130,171,82,171,74,6,138,74,129,171,82,4,138,74,130,171,82,203,
+  82,3,236,90,136,12,91,13,91,45,91,45,99,45,99,77,99,77,99,45,
+  99,10,78,99,129,110,99,4,78,99,130,110,99,78,99,3,110,99,7,78,
+  99,134,110,99,110,99,78,99,78,99,110,99,78,99,4,110,99,130,111,99,
+  111,107,3,110,99,133,111,99,143,99,111,99,143,99,111,99,3,143,99,133,
+  143,107,143,99,143,107,143,99,143,99,3,175,99,132,143,99,175,107,143,99,
+  175,107,3,175,99,129,143,99,4,175,107,140,175,99,207,99,176,107,176,107,
+  175,107,208,107,175,107,208,99,208,99,208,107,208,107,176,107,11,208,107,3,
+  240,107,129,241,107,5,240,107,140,240,115,241,107,241,107,241,115,240,107,241,
+  107,16,108,17,116,241,107,241,107,241,115,241,115,3,240,107,149,241,107,241,
+  107,241,115,17,116,241,115,241,115,17,116,17,116,17,108,241,115,241,107,241,
+  107,17,116,241,107,241,115,241,107,17,108,17,108,17,116,17,116,17,108,5,
+  17,116,129,241,107,21,17,116,139,18,116,17,116,17,116,50,116,18,116,50,
+  116,17,116,49,116,50,116,50,116,18,116,7,50,116,139,49,116,50,124,50,
+  116,81,116,50,116,82,116,50,124,50,116,82,116,50,116,82,124,4,82,116,
+  5,82,124,129,114,124,3,82,124,3,114,124,129,82,124,3,114,124,129,82,
+  124,15,114,124,130,115,124,114,124,3,115,124,4,114,124,134,115,124,114,124,
+  115,124,114,124,114,124,115,124,8,114,124,129,146,124,3,115,124,138,114,124,
+  114,124,146,124,146,124,114,124,147,124,146,124,115,124,115,124,114,124,3,115,
+  124,131,114,124,147,124,115,124,7,147,124,129,115,124,9,147,124,140,115,124,
+  114,124,82,116,50,116,241,107,208,91,176,83,144,83,238,58,202,17,199,0,
+  167,0,13,135,0,136,168,0,136,0,168,0,168,0,167,0,134,0,134,0,
+  133,0,4,100,0,129,133,0,3,101,0,136,100,0,100,0,68,0,100,0,
+  100,0,100,8,133,8,230,16,3,6,25,138,231,16,230,16,7,25,230,16,
+  230,16,230,24,6,25,6,25,39,33,39,25,4,39,33,129,7,33,12,39,
+  33,131,71,33,39,33,39,33,5,71,33,129,71,41,4,71,33,130,72,33,
+  71,41,4,71,33,6,71,41,131,39,41,38,41,38,41,4,37,41,155,38,
+  41,71,41,71,41,104,41,104,41,72,41,72,33,104,41,169,49,233,57,10,
+  66,42,66,75,74,139,82,172,90,204,90,204,98,236,98,13,107,45,107,13,
+  107,13,107,12,107,13,107,45,107,77,115,78,115,3,110,115,132,110,123,110,
+  123,175,123,240,131,3,16,140,133,240,139,239,139,207,131,207,131,239,131,3,
+  16,140,130,48,148,49,148,3,81,148,136,113,148,113,148,114,148,146,148,114,
+  148,146,148,146,156,146,156,7,146,148,133,114,148,114,148,113,148,145,148,114,
+  148,7,146,148,129,114,148,8,113,148,129,81,148,3,81,140,146,48,140,80,
+  140,48,140,48,140,49,140,81,140,49,140,81,148,81,140,81,140,81,148,81,
+  140,16,132,81,148,49,140,48,140,48,140,16,140,3,48,140,132,49,140,81,
+  148,81,148,48,140,4,81,148,7,113,148,135,81,148,113,148,81,148,240,139,
+  16,132,81,140,81,140,3,48,140,133,16,132,16,132,240,123,207,123,207,123,
+  178,3,3,203,90,129,171,82,3,203,90,140,203,82,203,82,203,90,203,90,
+  203,82,235,90,235,90,203,90,203,90,235,90,203,90,203,90,7,235,90,129,
+  203,90,4,235,90,129,236,90,4,235,90,133,236,90,235,90,235,90,236,90,
+  236,90,5,235,90,132,236,90,235,90,235,90,236,90,3,235,90,131,236,90,
+  236,90,235,90,6,236,90,136,12,91,236,90,236,90,12,91,236,90,12,91,
+  236,90,236,90,3,12,91,3,236,90,135,235,90,12,91,12,91,236,90,12,
+  91,236,90,12,91,7,236,90,132,235,90,12,91,236,90,12,91,4,236,90,
+  133,235,90,236,90,236,82,236,90,235,90,3,236,90,129,235,90,4,236,90,
+  3,236,82,142,236,90,236,90,235,82,236,90,236,90,203,82,236,82,236,82,
+  236,90,203,82,236,90,203,82,236,82,236,90,5,203,82,129,236,82,6,203,
+  82,3,171,82,131,203,82,171,74,171,82,3,171,74,135,171,82,171,74,171,
+  74,171,82,171,82,171,74,171,74,4,138,74,129,171,82,3,138,74,136,171,
+  82,171,82,203,90,204,90,236,90,236,90,13,91,13,99,3,45,99,13,78,
+  99,136,110,99,78,99,110,99,110,99,78,99,110,99,78,99,78,99,3,110,
+  99,133,78,99,110,99,110,99,78,99,110,107,4,110,99,129,78,99,8,110,
+  99,134,111,99,110,99,111,99,143,99,111,99,111,99,5,143,99,3,143,107,
+  148,143,99,143,99,175,99,143,107,143,99,175,99,144,107,175,107,175,99,175,
+  107,175,99,175,99,143,107,175,107,176,107,175,107,175,107,176,107,176,107,208,
+  107,4,176,107,10,208,107,3,240,107,131,208,107,241,107,241,107,5,240,107,
+  147,241,107,240,107,241,107,240,107,241,107,241,107,240,107,241,107,17,108,240,
+  107,241,107,241,115,17,116,17,108,241,107,241,107,17,108,241,107,17,116,3,
+  17,108,130,17,116,17,116,3,17,108,129,241,115,7,17,116,130,17,108,17,
+  108,5,17,116,129,17,108,15,17,116,129,18,116,3,17,116,135,50,116,17,
+  116,49,116,17,116,50,116,50,116,18,116,4,50,116,129,49,116,12,50,116,
+  132,82,116,50,116,50,116,82,116,4,50,116,8,82,116,131,114,124,82,124,
+  82,124,10,114,124,129,115,124,5,114,124,130,115,124,114,116,10,114,124,129,
+  115,124,7,114,124,4,115,124,131,114,124,146,124,115,124,3,114,124,137,115,
+  124,114,124,114,124,146,124,115,124,115,124,146,124,114,124,114,124,3,146,124,
+  143,115,124,115,124,114,124,115,124,146,124,114,124,115,124,115,124,146,124,147,
+  124,146,124,115,124,115,124,147,124,146,124,3,147,124,129,146,124,11,147,124,
+  142,114,116,82,116,50,108,17,100,208,91,176,83,144,83,238,66,235,25,200,
+  0,167,0,135,0,135,0,134,0,11,135,0,135,136,0,168,0,168,0,167,
+  0,134,0,134,0,101,0,4,100,0,133,101,0,133,0,133,0,100,8,100,
+  0,3,68,0,137,100,0,101,8,166,16,7,25,39,33,71,25,39,25,7,
+  25,39,25,6,7,25,133,39,25,39,25,39,33,39,33,39,25,13,39,33,
+  3,71,33,131,71,41,39,33,71,33,5,71,41,5,71,33,132,71,41,39,
+  33,71,33,71,33,4,39,33,152,71,33,39,33,38,41,38,41,37,41,5,
+  33,37,33,5,33,37,33,38,33,39,33,39,33,71,33,72,41,72,33,72,
+  41,169,49,107,74,236,98,13,107,13,107,45,115,78,115,110,115,5,142,123,
+  129,174,123,3,142,123,131,110,123,110,115,110,123,3,142,123,133,174,123,175,
+  131,239,131,16,140,49,148,4,81,148,129,49,140,3,81,148,131,113,148,146,
+  148,146,156,3,146,148,129,146,156,3,146,148,129,146,156,11,146,148,135,114,
+  148,146,148,146,148,114,148,146,148,114,148,114,148,9,113,148,132,81,140,81,
+  148,81,140,49,140,4,81,140,132,81,148,113,148,81,148,81,148,7,113,148,
+  133,114,148,113,148,48,140,81,140,81,148,3,48,140,129,49,140,3,81,148,
+  3,113,148,129,81,148,4,113,148,131,114,148,113,148,113,148,4,81,148,137,
+  48,140,48,132,207,123,142,115,208,123,16,132,240,123,240,123,16,124,3,16,
+  132,130,240,131,240,131,199,3,132,203,90,203,90,203,82,203,82,5,203,90,
+  129,235,90,3,203,90,129,235,90,3,203,90,137,235,90,203,90,235,90,203,
+  90,235,90,203,90,235,90,235,90,203,90,10,235,90,129,203,90,11,235,90,
+  3,236,90,135,235,90,235,90,12,91,235,90,12,91,236,90,12,91,9,236,
+  90,4,12,91,8,236,90,141,12,91,236,90,12,91,12,91,236,90,12,91,
+  12,91,236,90,12,91,236,90,236,90,12,91,12,91,3,236,90,129,235,90,
+  6,236,90,129,12,91,5,236,90,150,204,90,236,90,235,90,236,90,236,82,
+  235,90,235,82,236,82,236,82,236,90,236,82,236,82,236,90,236,90,204,82,
+  203,82,236,90,203,90,236,90,203,82,236,82,236,82,3,203,82,129,236,82,
+  7,203,82,129,171,82,3,171,74,4,171,82,136,171,74,171,74,171,82,171,
+  82,171,74,170,74,171,74,171,74,3,138,74,135,170,74,170,74,138,74,106,
+  74,138,74,171,82,203,82,3,236,90,132,13,99,45,91,45,91,45,99,4,
+  77,99,7,78,99,133,110,99,78,99,78,99,110,99,78,99,3,110,99,129,
+  78,99,4,110,99,129,78,99,7,110,99,134,110,107,110,99,78,99,110,99,
+  110,99,111,99,3,110,99,132,111,99,110,99,111,99,111,99,4,143,107,133,
+  143,99,143,99,143,107,143,99,143,107,3,143,99,147,175,99,175,99,176,99,
+  176,107,176,99,175,107,143,107,175,99,175,107,176,107,175,107,175,107,176,107,
+  175,107,175,107,176,107,176,107,208,107,176,107,14,208,107,4,240,107,3,241,
+  107,3,240,107,4,241,107,135,17,108,241,107,17,108,241,107,241,107,17,116,
+  17,116,7,17,108,130,17,116,17,108,7,17,116,129,17,108,3,17,116,129,
+  17,108,5,17,116,133,17,108,17,108,17,116,17,116,17,108,13,17,116,142,
+  18,116,17,116,18,116,18,116,49,116,50,116,49,116,49,116,50,116,17,116,
+  50,116,50,116,49,116,49,116,17,50,116,129,82,124,3,82,116,3,50,116,
+  3,82,116,137,82,124,82,116,82,124,82,124,114,124,82,124,114,124,114,124,
+  82,124,9,114,124,129,115,124,12,114,124,142,115,124,115,124,114,124,114,124,
+  115,124,115,124,114,124,115,124,115,124,114,124,115,124,114,124,114,124,115,124,
+  3,114,124,4,115,124,130,114,124,115,124,3,114,124,141,115,124,115,124,147,
+  124,115,124,114,124,146,124,114,124,115,124,146,124,114,124,114,124,147,124,147,
+  124,3,115,124,142,146,124,147,124,115,124,147,124,147,124,115,124,147,124,147,
+  124,115,124,147,124,146,124,146,124,147,124,146,124,4,147,124,129,146,124,7,
+  147,124,145,115,124,82,116,50,116,17,100,208,91,176,83,144,83,14,67,11,
+  34,232,0,168,0,135,0,135,0,134,0,135,0,135,0,167,0,7,135,0,
+  130,168,0,136,0,3,168,0,129,135,0,3,133,0,3,100,0,133,133,0,
+  101,0,133,0,100,0,100,0,3,68,0,145,100,0,101,0,166,16,7,25,
+  71,33,39,33,39,33,7,25,39,25,7,25,39,25,7,33,7,25,39,33,
+  6,25,39,33,7,33,10,39,33,130,7,33,6,33,6,39,33,136,71,41,
+  71,41,71,33,71,41,71,33,71,41,71,33,71,41,3,71,33,130,39,33,
+  71,41,5,39,33,160,7,33,39,33,39,33,71,33,39,33,39,33,38,33,
+  38,41,38,41,38,33,38,41,6,33,38,41,38,33,39,33,39,33,71,33,
+  72,33,104,33,72,33,169,49,204,90,110,115,143,123,175,123,174,123,175,123,
+  207,131,207,131,175,131,174,123,174,123,4,175,131,4,207,131,136,239,131,240,
+  131,16,140,16,140,49,148,81,148,113,148,146,148,3,113,148,129,114,148,4,
+  146,148,3,178,156,17,146,148,136,114,148,114,148,113,148,114,148,113,148,113,
+  140,113,148,81,148,7,81,140,138,49,140,48,140,49,140,48,140,81,140,81,
+  148,113,148,81,148,81,140,113,148,5,146,148,129,114,148,3,146,148,135,114,
+  148,113,148,114,148,114,148,113,148,48,140,48,140,4,81,148,131,81,140,113,
+  148,81,148,7,113,148,151,81,148,113,148,81,148,113,148,113,148,81,148,48,
+  140,16,132,49,132,49,132,16,132,207,123,142,115,208,123,17,132,48,140,48,
+  140,49,140,81,140,49,140,81,148,81,148,49,148,212,3,3,203,90,130,203,
+  82,203,82,3,203,90,143,203,82,203,82,203,90,203,90,235,90,235,90,203,
+  82,235,90,236,90,203,82,235,90,203,90,235,90,203,90,203,90,7,235,90,
+  135,236,90,236,90,235,90,236,90,235,90,235,90,236,90,3,235,90,147,236,
+  90,236,90,235,90,235,90,235,82,235,90,236,90,236,90,235,90,236,90,12,
+  91,236,90,235,90,235,90,236,90,235,90,235,90,236,90,12,91,3,236,90,
+  138,12,91,236,90,12,91,236,90,12,91,236,90,12,91,236,90,12,91,12,
+  91,7,236,90,132,12,91,12,91,236,90,12,91,3,236,90,129,12,91,10,
+  236,90,129,236,82,10,236,90,129,236,82,5,236,90,133,235,90,236,90,236,
+  90,236,82,236,90,4,236,82,131,204,82,204,90,235,82,3,203,82,133,235,
+  82,236,82,203,82,204,82,204,82,7,203,82,131,171,82,203,82,203,82,4,
+  171,82,131,171,74,171,82,171,74,4,171,82,144,171,74,171,82,139,74,171,
+  82,138,74,138,74,171,74,138,74,138,74,139,74,171,82,203,90,236,90,236,
+  90,13,91,13,91,3,45,99,130,77,99,77,99,13,78,99,135,110,99,78,
+  99,110,99,110,99,78,99,110,99,110,107,11,110,99,129,78,99,3,110,99,
+  137,143,99,110,99,110,99,111,99,111,99,143,99,143,99,143,107,143,107,4,
+  143,99,129,175,99,3,143,99,4,175,99,130,176,99,176,107,3,176,99,138,
+  175,107,175,99,175,107,175,107,176,107,176,99,176,107,208,107,208,107,176,107,
+  9,208,107,136,240,107,208,107,240,107,208,107,240,107,208,107,240,107,208,107,
+  5,240,107,138,241,107,241,107,240,107,17,116,240,107,241,107,241,107,241,115,
+  17,116,17,108,3,17,116,133,241,115,17,116,241,107,17,116,17,108,18,17,
+  116,131,17,108,17,116,49,116,3,17,116,130,50,116,17,108,3,17,116,3,
+  49,116,138,17,116,18,116,18,116,50,116,49,116,17,116,49,116,17,116,49,
+  116,49,116,3,17,116,3,50,116,131,49,116,49,116,17,116,9,50,116,129,
+  49,116,8,50,116,4,82,116,135,50,124,82,116,82,116,50,116,82,124,82,
+  124,82,116,3,82,124,3,82,116,133,82,124,82,116,114,116,114,124,82,124,
+  16,114,124,130,115,124,115,124,5,114,124,136,115,124,114,124,146,124,146,124,
+  114,124,114,124,115,124,114,124,3,115,124,132,146,124,115,124,115,124,147,124,
+  8,115,124,142,146,124,146,124,114,124,115,124,114,124,115,124,115,124,146,124,
+  147,124,115,124,146,124,115,124,147,124,146,124,5,115,124,3,147,124,131,146,
+  124,146,124,115,124,3,147,124,129,146,124,16,147,124,139,115,124,82,116,50,
+  116,18,108,209,91,176,83,176,83,14,67,43,34,232,0,168,0,13,135,0,
+  130,167,0,136,0,3,168,0,132,167,0,134,0,133,0,101,0,3,100,0,
+  152,101,0,133,0,133,0,101,0,100,0,68,0,68,0,100,0,68,0,101,
+  0,165,16,7,25,39,33,39,25,6,25,7,33,7,25,39,25,7,25,7,
+  33,39,33,38,33,39,33,38,33,12,39,33,129,6,33,4,39,33,130,71,
+  41,39,41,3,71,41,135,39,33,71,33,71,33,39,33,39,41,39,33,71,
+  33,3,39,33,129,7,33,8,39,33,5,71,41,146,70,33,38,41,38,33,
+  38,33,39,33,71,33,71,33,72,33,72,33,104,41,104,41,169,41,204,90,
+  142,123,175,123,175,123,175,131,175,123,3,207,131,146,239,131,207,131,239,131,
+  239,131,16,140,16,140,48,140,48,140,49,140,48,140,81,140,81,148,81,148,
+  113,148,81,148,114,148,146,148,146,156,8,146,148,130,178,148,178,156,3,146,
+  148,130,178,156,146,156,5,146,148,130,114,148,146,148,3,114,148,130,113,148,
+  113,148,3,81,148,3,81,140,148,49,140,49,140,48,140,16,132,48,140,240,
+  131,16,132,48,132,16,132,239,131,16,132,239,131,16,132,48,140,81,140,113,
+  148,146,148,146,148,113,148,114,148,8,146,148,130,113,148,146,148,3,114,148,
+  137,113,148,81,148,16,140,81,148,81,148,113,148,81,148,113,148,81,148,5,
+  113,148,130,81,148,81,148,3,113,148,149,81,148,81,148,113,148,113,148,81,
+  148,49,140,81,140,81,140,81,148,16,140,174,131,240,131,81,140,81,148,81,
+  148,113,148,81,148,81,148,49,148,81,148,81,148,7,4,130,203,82,203,82,
+  8,203,90,129,203,82,3,203,90,136,235,90,236,90,235,90,203,90,203,90,
+  235,90,235,90,203,90,4,235,90,129,203,82,5,235,90,135,236,90,235,90,
+  235,90,236,90,236,90,235,90,235,90,5,236,90,129,235,90,3,236,90,4,
+  235,90,130,236,90,12,91,4,236,90,132,235,90,236,90,12,91,12,91,3,
+  236,90,143,12,91,12,91,236,90,236,90,12,91,12,91,236,90,236,90,12,
+  91,236,90,12,91,236,90,12,91,12,91,236,90,5,12,91,138,236,90,12,
+  91,12,91,236,90,12,91,235,90,236,90,235,90,236,90,12,91,7,236,90,
+  129,235,90,5,236,90,129,235,90,4,236,90,131,236,82,235,90,235,90,3,
+  236,90,130,236,82,236,82,3,236,90,140,204,90,236,90,235,82,235,82,236,
+  82,203,82,236,82,235,82,203,82,203,82,204,82,204,82,6,203,82,161,171,
+  82,203,82,203,82,171,82,171,74,171,82,171,74,171,82,171,82,171,74,171,
+  82,171,82,171,74,171,82,171,74,171,82,138,74,139,74,171,74,138,74,106,
+  74,106,74,139,82,203,82,236,90,236,90,12,91,13,91,45,91,45,99,45,
+  91,77,99,45,99,3,78,99,129,110,99,5,78,99,4,110,99,129,78,99,
+  14,110,99,160,111,99,110,99,111,99,78,99,78,91,110,99,143,99,143,107,
+  143,107,110,99,110,99,142,99,143,99,111,99,143,99,111,99,143,107,143,107,
+  143,99,175,99,143,99,143,99,175,99,143,99,143,99,175,107,175,99,175,107,
+  175,99,176,107,176,99,176,99,4,176,107,133,208,107,176,107,176,107,208,107,
+  208,99,11,208,107,5,240,107,134,241,115,241,107,240,107,240,107,241,107,240,
+  107,5,241,107,132,17,108,17,108,241,107,241,107,17,17,116,133,17,108,49,
+  116,17,116,17,116,18,116,3,17,116,155,49,116,17,116,18,116,17,116,49,
+  116,50,116,17,116,49,116,17,116,49,116,17,116,18,116,17,116,49,116,49,
+  116,17,116,49,116,50,116,49,116,49,116,50,116,50,116,18,116,49,116,49,
+  116,50,116,18,116,6,50,116,129,49,116,16,50,116,3,82,116,129,50,116,
+  3,82,116,130,50,116,50,116,3,82,116,129,82,124,5,82,116,131,82,124,
+  82,116,82,124,3,114,124,129,82,124,10,114,124,129,115,124,3,114,124,3,
+  115,124,139,114,124,146,124,114,124,115,124,114,124,146,124,114,124,114,124,115,
+  124,115,124,146,124,4,115,124,133,146,124,147,124,115,124,114,124,146,124,3,
+  147,124,131,114,124,115,124,115,124,3,147,124,144,115,124,115,124,147,124,115,
+  124,147,124,146,124,114,124,147,124,115,124,115,124,146,124,147,124,115,124,147,
+  124,146,124,146,124,3,147,124,133,115,124,147,124,115,124,147,124,146,124,4,
+  147,124,131,115,124,146,124,146,124,10,147,124,129,147,132,5,147,124,144,146,
+  124,114,124,114,116,82,108,17,108,209,91,176,83,176,83,15,67,44,34,8,
+  1,167,0,167,0,135,0,134,0,134,0,10,135,0,4,168,0,132,167,0,
+  135,0,134,0,133,0,3,100,0,3,133,0,130,101,8,100,8,3,68,0,
+  140,100,0,101,0,133,8,230,24,7,25,6,33,6,33,6,25,6,33,6,
+  25,39,33,6,33,8,39,33,132,71,33,39,33,71,41,39,41,3,39,33,
+  142,38,33,39,33,6,33,6,33,39,33,39,33,71,33,39,33,71,41,71,
+  41,39,41,71,41,39,33,71,41,9,39,33,133,7,33,39,33,71,33,39,
+  33,71,33,4,71,41,137,103,41,104,41,72,41,71,33,72,33,71,33,72,
+  41,104,41,104,41,3,136,41,135,136,49,137,41,10,58,236,98,175,123,239,
+  131,239,131,3,240,131,131,16,140,48,140,48,140,3,16,140,132,48,140,48,
+  140,49,140,49,140,6,81,140,131,49,140,81,140,114,148,7,146,148,137,178,
+  156,178,156,178,148,178,156,179,156,146,148,178,156,146,156,146,156,3,146,148,
+  129,114,148,4,113,148,129,81,148,6,81,140,130,48,132,48,132,4,16,132,
+  133,15,132,15,132,239,123,16,132,48,140,3,16,132,156,239,131,239,123,16,
+  132,81,140,114,148,146,156,146,156,146,148,146,148,146,156,146,148,146,148,114,
+  148,145,148,81,140,81,140,113,148,114,148,114,148,146,148,114,148,113,148,114,
+  148,81,148,16,140,81,140,113,148,113,148,3,81,148,6,113,148,129,81,148,
+  4,113,148,148,114,148,113,148,114,148,113,148,81,148,114,148,113,148,114,156,
+  81,148,175,131,239,131,81,140,113,148,81,148,81,140,48,140,48,140,49,140,
+  16,132,16,132,231,3,131,203,90,203,90,203,82,3,203,90,129,235,90,6,
+  203,90,137,235,90,203,90,203,90,235,90,203,90,235,90,235,90,203,90,236,
+  90,3,235,90,129,203,90,6,235,90,129,236,90,5,235,90,143,236,90,235,
+  90,235,90,12,91,236,90,235,90,236,90,235,90,236,90,12,91,236,90,235,
+  90,12,91,12,91,235,90,4,236,90,133,12,91,12,91,236,90,236,90,12,
+  91,3,236,90,133,12,91,236,90,12,91,236,90,236,90,8,12,91,131,236,
+  90,12,91,236,90,3,12,91,3,236,90,130,12,91,236,90,3,12,91,143,
+  236,90,236,82,236,90,12,91,236,90,12,91,236,90,12,83,236,90,12,91,
+  12,91,236,90,12,91,235,90,12,91,13,236,90,136,236,82,236,82,235,82,
+  236,82,236,82,203,82,235,82,236,82,6,203,82,131,204,82,203,82,236,90,
+  4,203,82,132,204,82,203,82,203,82,171,74,3,171,82,131,171,74,171,82,
+  203,74,4,171,82,147,171,74,171,82,171,82,171,74,171,74,138,74,138,74,
+  106,74,106,74,139,82,203,82,203,90,236,90,12,91,13,91,45,91,46,91,
+  45,99,77,99,6,78,99,18,110,99,3,111,99,129,110,99,3,111,99,138,
+  110,99,78,91,78,91,142,99,208,107,208,107,175,107,142,99,143,99,142,91,
+  4,143,99,143,143,107,143,99,143,99,175,99,175,99,176,107,176,99,143,99,
+  175,99,176,107,175,99,208,107,176,107,176,99,208,107,4,176,107,13,208,107,
+  131,240,107,208,107,208,107,6,240,107,3,241,107,131,240,107,241,107,17,108,
+  3,241,107,130,17,108,17,108,17,17,116,148,49,116,17,116,17,116,49,116,
+  49,116,17,108,49,116,49,116,17,116,49,116,17,116,49,116,49,116,17,116,
+  18,116,50,116,49,116,50,116,50,116,17,116,3,49,116,3,50,116,129,49,
+  116,22,50,116,129,82,116,5,50,116,146,82,116,82,116,50,116,82,116,50,
+  116,82,116,82,116,50,116,50,116,82,116,82,116,50,116,82,116,82,116,82,
+  124,82,124,82,116,82,116,3,82,124,129,82,116,6,82,124,133,114,124,82,
+  124,114,124,114,124,82,124,7,114,124,139,115,124,114,124,115,124,115,124,114,
+  116,115,124,114,124,115,124,115,124,114,124,114,124,3,146,124,129,147,124,4,
+  115,124,163,147,124,147,124,115,124,115,124,146,124,146,124,147,124,146,124,147,
+  124,115,124,115,124,147,124,115,124,146,124,147,124,115,124,147,124,146,124,115,
+  124,115,124,147,124,147,124,114,124,115,124,147,124,146,124,146,124,147,124,147,
+  124,115,124,147,124,146,124,115,124,147,124,146,124,3,147,124,136,115,124,147,
+  124,147,124,146,124,147,124,115,124,147,124,115,124,3,147,124,129,146,124,4,
+  147,124,129,146,124,11,147,124,142,115,124,115,124,114,116,82,116,18,108,209,
+  91,176,83,176,83,47,75,76,34,8,1,168,0,167,0,135,0,4,134,0,
+  7,135,0,130,167,0,135,0,3,168,0,132,167,0,135,0,101,0,133,0,
+  3,100,0,3,133,0,138,100,0,100,0,68,0,100,8,100,8,100,0,100,
+  0,133,8,198,24,38,33,6,6,33,129,38,33,3,39,33,3,71,33,134,
+  39,33,71,41,71,33,71,33,71,41,39,41,9,39,33,3,38,33,131,39,
+  33,39,33,71,41,6,39,33,129,38,33,7,39,33,138,71,33,71,41,71,
+  41,104,41,103,41,104,41,136,41,136,49,136,49,136,41,3,104,41,129,136,
+  41,5,104,41,136,233,57,204,90,110,115,207,123,239,131,240,131,16,132,16,
+  132,3,16,140,137,16,132,16,132,48,140,16,132,16,140,48,140,81,140,49,
+  140,49,140,4,81,140,132,49,140,81,140,81,140,113,148,3,146,148,129,178,
+  148,3,146,148,129,178,148,8,146,148,129,114,148,3,113,148,142,81,140,81,
+  140,49,140,81,140,81,140,48,140,16,132,48,140,80,140,81,140,81,140,16,
+  132,48,132,48,132,4,48,140,139,16,132,16,132,239,131,16,132,81,140,48,
+  140,16,140,16,132,15,132,48,132,113,148,4,146,148,132,113,148,113,140,81,
+  140,80,140,3,48,140,139,239,123,48,132,113,148,146,148,146,156,146,148,146,
+  148,114,148,114,148,16,140,81,140,10,113,148,146,114,148,113,148,113,148,146,
+  148,114,148,146,156,146,156,113,148,146,148,113,148,113,156,113,148,113,148,81,
+  140,49,140,175,123,142,115,240,123,3,16,132,133,240,131,240,123,16,132,16,
+  132,240,123,240,3,3,203,90,3,203,82,135,235,90,203,90,203,90,235,90,
+  203,90,203,90,236,90,11,235,90,3,236,90,4,235,90,136,236,90,235,90,
+  235,90,236,90,236,90,235,90,236,90,235,90,7,236,90,136,235,90,236,90,
+  235,90,235,90,236,90,235,90,236,90,12,91,3,236,90,132,12,91,236,90,
+  236,90,12,91,3,236,90,7,12,91,147,236,90,12,91,236,90,12,91,12,
+  91,236,90,236,90,12,91,236,90,12,91,236,90,12,91,12,91,236,90,236,
+  90,12,91,236,90,12,91,12,91,3,236,90,134,12,91,236,90,12,91,236,
+  90,236,90,235,90,5,236,90,132,12,91,236,82,12,91,236,82,5,236,90,
+  129,236,82,5,236,90,129,235,82,3,236,82,129,236,90,3,236,82,139,236,
+  90,236,90,203,82,236,90,203,82,236,82,236,82,203,82,235,82,203,82,204,
+  82,7,203,82,3,171,82,129,203,82,6,171,82,147,171,74,171,82,171,74,
+  171,82,171,74,170,74,138,74,105,74,106,74,171,74,203,82,236,90,236,90,
+  13,99,13,99,45,99,45,91,46,99,77,99,4,78,99,129,78,107,6,110,
+  99,129,110,107,5,110,99,137,142,99,110,107,110,99,111,99,143,99,111,99,
+  111,107,143,107,143,99,5,143,107,137,78,99,45,91,77,91,175,99,240,115,
+  240,115,175,107,142,99,110,99,6,143,99,146,143,107,175,99,175,99,176,99,
+  176,99,176,107,176,107,175,99,175,99,175,107,176,107,176,107,208,99,176,107,
+  176,107,208,107,208,107,208,99,13,208,107,132,240,107,240,107,241,107,240,107,
+  4,241,107,137,241,115,240,107,17,108,241,107,17,108,17,108,17,116,17,116,
+  17,108,3,17,116,129,17,108,3,17,116,132,49,116,17,116,17,116,49,116,
+  3,17,116,140,18,116,17,116,49,116,17,116,17,116,49,116,17,116,50,116,
+  50,116,49,116,49,116,50,116,5,49,116,133,50,116,49,116,49,116,18,116,
+  18,116,4,50,116,136,49,116,49,116,50,116,49,116,49,116,50,116,49,116,
+  17,116,14,50,116,129,82,116,8,50,116,141,82,116,50,116,82,116,50,116,
+  82,116,82,116,50,116,82,116,50,116,82,116,50,116,82,116,50,116,5,82,
+  116,135,82,124,82,116,82,124,82,124,82,116,82,124,82,116,6,82,124,131,
+  114,124,82,124,82,124,9,114,124,131,115,124,115,124,114,124,7,115,124,142,
+  147,124,146,124,146,124,114,124,147,124,147,124,115,124,115,124,147,124,147,124,
+  115,124,115,124,147,124,114,124,7,147,124,131,115,124,147,124,146,124,3,147,
+  124,132,115,124,115,124,147,124,146,124,4,147,124,142,146,124,147,124,146,124,
+  115,124,147,124,147,124,146,124,147,124,147,124,146,124,147,124,147,124,115,124,
+  115,124,3,147,124,129,115,124,13,147,124,129,147,132,3,147,124,129,147,132,
+  6,147,124,144,115,116,115,116,82,116,18,108,241,99,176,83,176,83,47,75,
+  44,42,9,9,168,0,167,0,135,0,135,0,134,0,134,0,8,135,0,156,
+  168,0,167,0,168,0,168,0,200,0,167,0,134,0,133,0,133,8,100,0,
+  100,8,101,0,133,8,133,0,133,0,101,0,100,0,100,0,68,0,100,0,
+  100,0,69,0,133,8,198,24,6,33,39,33,38,33,38,41,3,6,33,129,
+  38,33,3,39,33,4,71,33,5,71,41,10,39,33,132,38,33,38,33,39,
+  33,38,33,3,39,33,129,71,33,5,39,33,136,71,33,72,41,40,33,72,
+  33,71,33,104,41,72,33,104,41,4,136,41,130,136,49,136,41,3,104,41,
+  141,71,41,103,41,103,41,136,41,168,49,200,57,233,57,74,74,13,99,142,
+  115,175,123,207,123,175,115,7,207,123,130,240,131,49,140,5,81,140,3,113,
+  140,4,113,148,132,146,148,146,156,178,148,146,156,5,146,148,155,113,148,113,
+  148,114,148,113,148,113,148,114,148,114,148,113,148,146,148,113,148,81,140,81,
+  140,48,140,48,132,16,132,48,140,48,140,81,140,81,140,48,140,81,140,81,
+  140,113,140,81,140,113,148,81,148,81,148,4,81,140,129,49,140,3,48,140,
+  136,81,140,49,140,48,140,16,132,48,132,48,140,113,140,113,148,10,81,140,
+  131,48,140,206,115,80,132,3,146,148,133,114,148,114,148,146,148,48,140,48,
+  140,6,113,148,133,81,148,113,148,113,148,81,148,81,148,9,113,148,144,81,
+  148,49,140,49,132,48,132,16,132,207,123,142,115,208,123,49,132,49,140,48,
+  140,49,140,48,140,49,140,48,140,49,140,40,4,4,203,90,141,203,82,203,
+  82,203,90,203,82,203,90,203,90,203,82,203,90,203,90,235,90,203,90,235,
+  90,203,90,5,235,90,129,203,90,4,235,90,6,236,90,130,235,90,235,90,
+  6,236,90,136,235,90,235,90,236,90,235,90,236,90,235,90,236,90,235,90,
+  4,236,90,132,12,91,236,90,236,90,12,91,3,236,90,131,12,91,12,91,
+  236,90,12,12,91,131,236,90,12,91,236,90,6,12,91,139,236,90,12,91,
+  236,90,12,91,236,90,12,91,12,91,236,90,12,91,236,90,12,91,3,236,
+  90,129,12,91,3,236,90,134,12,91,236,90,235,82,236,90,236,90,12,91,
+  10,236,90,148,236,82,236,82,236,90,236,82,236,90,203,82,236,82,203,82,
+  236,82,236,82,235,82,236,82,235,82,236,82,236,82,204,82,203,82,203,82,
+  236,82,204,82,7,203,82,135,171,82,203,82,171,82,171,82,171,74,171,82,
+  203,82,4,171,82,129,171,74,3,171,82,140,138,74,106,74,105,66,138,74,
+  171,82,236,90,236,82,12,91,12,91,13,99,45,99,77,99,6,78,99,131,
+  110,99,78,99,110,107,5,110,99,139,111,99,111,107,111,107,110,99,111,99,
+  143,107,111,107,110,99,143,107,111,99,143,99,4,143,107,3,143,99,137,110,
+  99,77,91,13,83,45,83,175,107,16,116,240,115,175,107,143,107,3,143,99,
+  134,143,107,143,99,143,107,143,107,175,107,175,99,5,176,107,130,176,99,207,
+  99,12,208,107,137,240,107,208,107,240,107,240,107,209,107,240,107,241,107,240,
+  107,240,107,6,241,107,137,241,115,17,116,241,107,241,107,17,116,241,107,241,
+  107,17,116,17,108,3,17,116,136,17,108,17,108,49,116,17,108,17,116,49,
+  116,49,116,17,116,3,49,116,137,17,116,49,116,17,116,50,116,50,116,49,
+  116,50,116,50,116,49,116,3,50,116,130,18,116,50,116,3,49,116,131,50,
+  116,49,116,82,116,10,50,116,133,82,116,50,116,50,116,49,116,82,116,12,
+  50,116,137,82,116,50,116,82,116,82,116,50,116,82,116,50,116,82,116,82,
+  116,3,50,116,136,50,124,82,116,82,116,82,124,82,124,82,116,82,124,82,
+  124,3,82,116,129,50,116,5,82,116,131,82,124,82,124,82,116,3,82,124,
+  130,82,116,114,124,3,82,116,133,82,124,114,124,82,124,82,124,82,116,6,
+  114,124,4,115,124,131,114,124,115,124,114,124,8,115,124,133,146,124,115,124,
+  147,124,147,124,115,124,4,147,124,135,114,124,146,124,146,124,147,124,115,124,
+  147,124,115,124,4,147,124,129,115,124,3,147,124,145,146,124,147,124,115,124,
+  147,124,146,124,147,124,146,124,147,124,147,124,146,124,147,124,146,124,147,124,
+  146,124,147,124,147,124,115,124,12,147,124,129,146,124,12,147,124,129,147,132,
+  7,147,124,144,147,132,147,124,147,124,115,124,114,116,82,116,18,108,209,99,
+  176,91,176,83,47,75,76,42,9,9,200,0,168,0,167,0,3,135,0,166,
+  134,0,135,0,135,0,168,0,135,0,167,0,135,0,135,0,167,0,167,0,
+  199,0,200,0,200,0,168,0,135,0,134,0,101,0,100,8,100,0,100,0,
+  133,0,133,0,133,8,133,8,101,0,100,0,100,8,100,0,100,0,101,0,
+  133,8,230,24,39,33,71,41,38,33,70,41,38,33,39,33,3,38,33,139,
+  70,33,70,41,39,33,71,33,39,33,39,33,71,33,71,41,71,41,103,41,
+  71,41,3,39,33,130,38,33,7,33,3,39,33,135,7,33,38,33,38,33,
+  39,33,38,33,39,33,39,33,4,71,41,139,104,41,72,41,72,41,104,41,
+  72,41,72,41,104,41,71,33,71,41,71,41,72,41,5,71,41,147,103,41,
+  136,49,168,49,232,57,41,66,106,82,204,90,45,107,110,115,174,115,239,131,
+  48,140,81,148,146,156,146,148,81,140,207,123,142,115,110,115,4,142,115,132,
+  174,123,174,123,239,123,48,132,4,81,140,132,113,140,113,148,113,140,81,140,
+  4,113,148,131,146,148,146,148,178,148,3,146,148,137,114,148,113,148,114,148,
+  114,148,113,148,114,148,114,148,146,148,114,148,3,113,148,8,81,140,132,113,
+  148,113,148,81,148,81,140,6,113,148,137,48,132,15,132,239,131,15,132,15,
+  132,239,123,15,132,239,123,15,124,3,15,132,130,47,132,80,140,4,113,140,
+  132,81,148,81,148,113,148,114,148,4,146,148,152,146,156,238,123,15,124,146,
+  148,146,148,114,148,146,148,114,148,146,148,81,148,16,140,81,140,81,140,48,
+  140,48,140,16,132,16,132,239,123,239,131,15,132,15,132,206,123,48,124,81,
+  140,3,113,148,134,81,148,113,148,113,148,114,148,113,148,81,148,3,81,140,
+  132,16,140,174,131,239,131,81,148,3,113,148,4,81,148,238,3,129,203,82,
+  6,203,90,129,203,82,3,235,90,134,203,90,235,90,203,90,235,90,235,90,
+  203,90,5,235,90,134,236,90,236,90,235,90,236,90,235,90,236,90,5,235,
+  90,7,236,90,129,235,90,4,236,90,129,12,91,5,236,90,136,12,91,236,
+  90,236,90,12,91,236,90,236,90,12,91,236,90,3,12,91,129,236,90,3,
+  12,91,129,236,90,6,12,91,129,236,90,3,12,91,145,236,90,236,90,12,
+  91,236,90,12,91,236,90,236,90,12,91,236,90,12,91,12,91,236,90,12,
+  91,12,91,236,90,12,91,12,91,4,236,90,137,12,91,236,90,12,91,236,
+  90,236,90,12,91,236,90,236,90,12,91,4,236,90,130,12,91,12,91,6,
+  236,90,134,236,82,236,90,12,91,236,90,236,82,236,90,3,236,82,3,236,
+  90,3,236,82,132,235,82,236,82,203,82,236,82,6,203,82,129,204,82,3,
+  171,82,129,204,82,3,171,82,132,203,82,171,82,171,82,171,74,4,171,82,
+  139,171,74,106,74,106,66,138,74,171,82,236,90,236,90,13,91,13,91,45,
+  99,77,99,5,78,99,144,110,107,110,99,110,99,110,107,110,107,111,107,143,
+  107,110,99,143,99,110,99,143,107,143,99,143,107,143,99,143,107,143,107,3,
+  143,99,6,143,107,3,143,99,138,110,99,45,91,13,83,77,83,208,107,241,
+  115,241,115,175,107,143,99,143,99,3,143,107,132,143,99,143,107,175,107,175,
+  99,4,176,107,132,208,107,208,107,176,107,176,99,11,208,107,130,209,107,208,
+  107,4,241,107,129,208,107,4,241,107,141,241,115,241,107,241,107,17,108,17,
+  116,241,107,17,108,241,107,17,116,241,115,17,116,17,116,17,108,10,17,116,
+  132,49,116,17,116,49,116,50,116,3,49,116,135,50,116,49,116,50,116,49,
+  116,81,116,50,116,49,116,9,50,116,130,49,116,49,116,9,50,116,131,82,
+  116,50,116,82,116,3,50,116,132,82,116,49,116,50,116,50,116,3,82,116,
+  129,50,116,4,82,116,133,50,116,82,116,50,116,82,116,82,124,6,82,116,
+  3,82,124,3,82,116,132,82,124,82,124,82,116,82,124,5,82,116,5,82,
+  124,143,82,116,82,116,82,124,82,124,82,116,82,116,114,116,82,116,114,124,
+  82,124,114,124,83,124,114,124,114,116,115,124,3,114,124,136,115,124,115,124,
+  114,124,114,124,115,124,115,124,114,124,115,124,3,114,124,4,115,124,130,147,
+  124,115,124,4,147,124,129,115,124,3,147,124,133,115,124,115,124,147,124,115,
+  124,115,124,9,147,124,130,146,124,115,124,10,147,124,129,146,124,5,147,124,
+  129,115,124,5,147,124,134,115,124,147,124,147,124,115,124,147,124,146,124,17,
+  147,124,130,147,132,147,132,6,147,124,140,114,124,114,116,82,116,18,108,241,
+  91,208,91,176,83,79,75,108,42,41,9,167,0,168,0,7,135,0,129,167,
+  0,3,135,0,130,167,0,168,0,5,167,0,134,135,0,134,0,101,0,100,
+  0,100,0,100,8,3,133,0,153,133,8,100,0,100,0,100,8,100,8,100,
+  0,68,0,133,8,230,24,39,33,71,41,71,41,103,41,71,41,70,41,38,
+  33,38,33,70,41,38,33,70,41,39,33,39,33,38,33,38,33,38,41,5,
+  71,41,129,39,41,6,39,33,132,71,33,39,33,71,33,72,41,3,104,41,
+  134,136,41,104,41,136,49,136,49,104,41,104,41,3,72,41,158,71,33,71,
+  41,71,33,38,33,71,41,103,41,168,49,233,57,74,74,139,82,203,90,45,
+  99,110,115,175,123,16,132,48,140,81,148,146,156,178,164,211,164,211,172,244,
+  172,52,181,84,189,117,197,52,181,211,156,16,132,175,123,110,115,3,142,115,
+  136,143,115,174,115,175,123,240,131,49,140,81,140,81,140,113,140,9,81,140,
+  129,113,148,9,146,148,6,113,148,135,81,140,113,140,145,148,113,148,113,140,
+  146,148,146,148,3,81,140,133,81,148,81,140,81,140,48,140,48,140,3,48,
+  132,132,48,140,81,140,48,132,15,132,3,48,132,133,80,140,48,132,80,140,
+  48,140,80,140,3,81,140,3,113,148,134,81,148,81,148,113,148,49,140,81,
+  148,146,148,3,146,156,153,146,148,146,156,15,132,239,123,113,148,145,148,113,
+  148,81,148,80,140,16,132,239,131,174,115,174,115,207,115,16,132,239,131,239,
+  123,239,131,16,132,16,132,16,140,80,140,206,123,206,115,81,140,6,113,148,
+  129,146,148,5,114,148,132,81,148,207,139,207,131,81,140,3,113,148,4,81,
+  148,29,4,5,203,90,129,235,90,3,203,90,133,235,90,235,90,203,82,203,
+  90,203,82,8,235,90,130,236,90,236,90,5,235,90,130,236,90,235,90,3,
+  236,90,130,235,90,235,90,4,236,90,133,12,91,235,90,236,90,236,90,235,
+  90,5,236,90,133,235,90,12,91,12,91,236,90,236,90,3,12,91,136,236,
+  90,12,91,12,91,236,90,236,90,12,91,12,91,236,90,4,12,91,134,236,
+  90,12,91,236,90,12,91,12,91,236,90,6,12,91,132,236,90,12,91,12,
+  91,236,90,3,12,91,133,236,90,236,90,12,91,236,90,235,90,4,236,90,
+  134,12,91,236,90,236,90,12,91,236,90,236,90,3,12,91,6,236,90,138,
+  236,82,236,90,236,90,12,91,236,90,236,82,236,90,236,90,236,82,236,82,
+  3,236,90,134,236,82,236,82,204,82,236,82,236,82,236,90,3,236,82,142,
+  203,82,236,82,203,82,203,82,204,82,204,82,203,82,203,82,204,82,203,82,
+  171,82,203,82,171,82,203,82,3,171,82,129,171,74,7,171,82,136,138,74,
+  106,74,138,74,138,74,203,82,236,90,236,90,13,91,3,45,99,145,78,99,
+  78,99,110,107,110,99,110,99,110,107,110,99,142,99,110,107,111,107,110,99,
+  142,99,143,107,143,99,111,99,111,107,143,99,3,143,107,131,143,99,143,99,
+  143,107,4,143,99,4,143,107,152,143,99,143,99,78,99,13,91,236,74,78,
+  83,208,107,17,124,241,115,176,107,143,99,175,107,175,107,143,107,175,107,143,
+  107,176,107,175,99,175,107,176,107,176,107,208,107,176,107,176,107,15,208,107,
+  129,240,107,13,241,107,130,17,116,17,108,13,17,116,3,49,116,131,50,116,
+  50,116,17,116,3,50,116,129,49,116,14,50,116,129,82,116,7,50,116,129,
+  82,116,3,50,116,3,82,116,129,50,116,4,82,116,142,50,116,82,116,50,
+  116,50,116,82,116,50,116,82,116,82,116,50,124,82,124,50,116,82,116,82,
+  116,82,124,6,82,116,133,82,124,82,124,82,116,82,124,82,124,5,82,116,
+  138,82,124,82,116,82,116,82,124,82,124,82,116,82,116,82,124,82,116,82,
+  116,4,82,124,136,114,124,82,124,82,124,82,116,82,116,82,124,115,124,82,
+  124,8,114,124,129,115,124,4,114,124,142,115,124,115,124,114,124,115,124,115,
+  124,147,124,115,124,147,124,115,124,146,124,115,124,147,124,115,124,115,124,3,
+  147,124,133,115,124,147,124,147,124,146,124,115,124,7,147,124,131,115,116,115,
+  124,146,124,5,147,124,131,146,124,147,124,146,124,9,147,124,129,146,124,4,
+  147,124,132,146,124,147,124,147,124,146,124,3,147,124,133,115,124,147,124,147,
+  124,146,124,146,124,11,147,124,129,147,132,6,147,124,3,147,132,3,147,124,
+  141,115,124,114,124,82,116,18,108,241,99,176,83,176,83,79,75,109,50,73,
+  9,168,0,168,0,167,0,5,135,0,133,167,0,135,0,167,0,135,0,135,
+  0,3,167,0,135,166,0,134,0,166,0,167,0,167,0,134,0,101,0,3,
+  100,0,132,101,0,133,8,133,0,133,8,3,100,0,146,100,8,100,0,100,
+  0,133,8,230,24,71,41,136,49,103,41,103,41,71,41,71,41,70,41,71,
+  41,39,41,71,41,70,41,71,41,39,33,3,39,41,132,71,41,71,41,103,
+  41,103,41,3,71,41,134,72,41,71,33,71,41,104,41,136,41,104,41,3,
+  136,41,129,136,49,3,104,41,129,103,41,3,71,41,161,103,41,103,41,136,
+  49,200,57,9,66,74,66,171,82,236,90,77,107,142,115,207,131,240,131,48,
+  140,113,148,113,156,178,164,210,164,243,172,20,173,51,181,84,181,117,189,117,
+  197,85,189,117,189,149,197,182,197,214,205,214,205,149,197,20,173,113,148,240,
+  131,3,142,115,149,174,115,175,123,207,123,16,132,49,140,113,148,114,148,114,
+  148,113,148,114,148,113,140,114,148,113,140,113,148,81,140,81,140,113,140,113,
+  148,114,148,146,148,146,156,5,178,156,135,113,148,113,140,113,140,113,148,113,
+  140,113,148,113,148,3,81,140,129,113,148,3,81,140,134,113,140,80,140,48,
+  132,80,140,48,140,80,140,3,81,140,130,113,140,113,140,6,81,140,5,81,
+  148,134,114,148,113,148,114,148,113,148,114,148,114,156,5,114,148,138,49,140,
+  17,140,81,148,113,148,113,148,81,140,48,140,48,140,15,132,174,115,3,48,
+  132,140,81,140,48,140,16,132,240,123,174,115,207,123,240,131,48,140,48,140,
+  239,131,48,140,81,148,3,113,148,147,48,148,173,115,48,132,113,148,113,148,
+  114,156,146,148,146,156,114,148,113,148,113,148,81,148,81,140,48,140,81,140,
+  113,148,239,139,207,131,49,140,3,113,148,4,81,148,207,3,3,203,90,3,
+  235,90,132,203,90,203,90,203,82,203,90,3,235,90,129,203,90,5,235,90,
+  129,203,90,5,235,90,129,236,90,4,235,90,134,236,90,236,90,235,90,236,
+  90,236,90,235,90,4,236,90,130,235,90,235,90,4,236,90,132,12,91,236,
+  90,235,90,12,91,3,236,90,136,12,91,12,91,236,90,236,90,12,91,236,
+  90,12,91,236,90,3,12,91,129,236,90,18,12,91,133,236,90,12,91,12,
+  91,236,90,236,90,3,12,91,129,236,90,3,12,91,130,236,90,12,91,3,
+  236,90,135,12,91,236,90,236,90,12,91,236,90,236,90,12,91,5,236,90,
+  129,12,91,7,236,90,129,236,82,6,236,90,3,236,82,138,236,90,236,82,
+  236,90,236,82,236,82,204,82,203,82,236,82,204,82,204,82,8,203,82,3,
+  171,82,133,203,82,171,82,171,82,203,82,203,74,3,171,82,129,171,74,3,
+  138,74,143,171,82,204,90,236,90,236,90,45,91,45,99,77,99,78,99,78,
+  99,110,99,110,99,111,107,110,99,110,107,111,99,4,143,107,131,143,99,143,
+  107,143,107,3,143,99,3,143,107,129,143,99,4,143,107,3,143,99,151,143,
+  107,143,99,143,107,143,107,143,99,78,99,45,91,13,83,110,91,240,115,17,
+  124,241,115,208,107,175,107,143,107,143,107,175,107,175,99,176,107,176,99,176,
+  99,176,107,176,107,10,208,107,135,209,107,208,107,241,107,209,107,241,107,208,
+  107,241,107,3,240,107,130,241,107,208,107,3,241,107,3,17,108,136,17,116,
+  17,116,241,107,17,116,17,108,17,116,17,116,17,108,6,17,116,138,49,116,
+  49,116,17,116,49,116,17,116,50,116,50,116,49,116,50,116,49,116,6,50,
+  116,135,82,116,50,116,82,116,82,116,50,116,82,116,50,116,3,82,116,129,
+  50,116,3,82,116,4,50,116,129,82,124,10,82,116,129,82,124,13,82,116,
+  132,82,124,82,124,82,116,82,116,3,82,124,129,82,116,3,82,124,132,82,
+  116,82,124,82,124,82,116,3,82,124,4,82,116,138,114,124,82,116,82,116,
+  82,124,82,124,114,124,82,124,82,116,82,124,82,124,3,114,124,136,82,124,
+  82,124,82,116,115,124,82,116,115,116,114,124,82,124,3,114,124,130,115,124,
+  114,124,4,115,124,129,114,124,4,115,124,130,147,124,147,124,3,115,124,131,
+  147,124,147,124,115,124,3,147,124,129,115,124,16,147,124,129,147,132,15,147,
+  124,129,146,124,7,147,124,131,146,124,147,124,147,132,4,147,124,129,115,124,
+  12,147,124,129,147,132,9,147,124,129,147,132,3,147,124,144,147,132,147,132,
+  147,124,147,124,115,116,82,116,50,108,241,99,177,91,177,83,112,75,141,50,
+  73,9,168,0,168,0,167,0,3,135,0,5,167,0,3,135,0,137,167,0,
+  167,0,166,0,166,0,166,8,167,0,134,0,134,0,133,0,3,100,0,135,
+  101,0,133,0,134,8,133,8,100,8,100,8,68,0,3,100,0,136,101,8,
+  230,24,71,41,168,49,136,49,103,49,103,49,102,41,3,71,41,129,70,41,
+  5,71,41,130,103,41,103,41,3,136,49,138,104,49,103,41,136,41,103,41,
+  104,41,71,41,104,41,71,41,71,41,104,41,4,103,41,157,136,49,200,57,
+  233,57,42,66,139,82,172,90,12,99,77,107,142,115,239,131,16,132,49,148,
+  114,148,146,156,178,164,211,164,211,172,20,173,52,181,52,189,84,189,117,189,
+  117,197,85,189,117,189,149,197,149,197,182,197,182,197,3,149,197,143,182,197,
+  214,205,214,205,182,197,52,181,146,148,48,132,175,123,143,123,175,123,175,123,
+  207,123,240,131,49,140,114,148,14,146,148,130,178,156,178,156,3,211,156,139,
+  178,156,178,148,113,140,81,140,81,140,113,140,113,140,113,148,113,140,113,148,
+  113,140,3,81,140,134,80,140,81,140,113,140,113,140,81,140,113,140,5,113,
+  148,129,81,148,3,113,148,3,114,148,130,146,148,146,148,6,114,148,5,146,
+  148,4,113,148,141,49,140,240,131,49,140,113,140,113,148,113,140,80,140,206,
+  123,15,132,174,115,15,124,206,123,15,132,3,113,148,136,81,148,16,140,48,
+  140,81,148,113,148,113,148,48,140,81,148,3,113,148,137,114,148,81,148,206,
+  131,16,132,113,148,114,148,113,148,113,148,81,148,8,48,140,131,238,131,174,
+  123,16,132,6,113,148,1,81,148,165,3,7,203,90,131,235,90,203,90,203,
+  90,15,235,90,131,236,90,236,90,235,90,5,236,90,129,235,90,3,236,90,
+  130,235,90,235,90,5,236,90,133,12,91,12,91,235,90,236,90,12,91,5,
+  236,90,133,12,91,236,90,236,90,12,91,236,90,10,12,91,129,236,90,4,
+  12,91,137,236,90,236,90,12,91,236,90,12,91,236,90,12,91,12,91,236,
+  90,3,12,91,129,236,90,5,12,91,129,236,90,5,12,91,131,236,90,12,
+  91,236,90,3,12,91,3,236,90,129,12,91,6,236,90,139,12,91,236,90,
+  236,82,236,90,236,90,236,82,236,90,236,82,236,90,236,82,236,82,3,236,
+  90,131,236,82,236,90,236,90,3,236,82,131,204,82,236,90,236,82,3,204,
+  82,132,203,82,203,82,204,82,204,82,6,203,82,152,171,82,203,82,203,82,
+  171,82,171,74,171,74,171,82,203,82,171,82,171,82,138,74,106,74,138,74,
+  171,82,236,90,236,90,12,91,45,99,77,99,78,99,110,99,110,99,111,99,
+  111,99,4,143,107,129,143,99,3,143,107,138,143,99,143,107,143,107,143,99,
+  143,107,143,107,175,107,143,107,143,99,143,99,3,143,107,133,175,99,143,99,
+  175,107,143,107,143,107,3,175,107,137,143,99,143,99,110,99,78,91,175,99,
+  17,116,49,124,17,124,208,107,4,175,107,133,175,99,176,107,208,107,176,107,
+  176,99,8,208,107,148,240,107,241,107,240,107,241,107,241,107,208,107,241,115,
+  241,115,241,107,240,107,241,107,208,107,240,107,209,107,241,107,240,107,241,107,
+  241,107,17,116,17,108,6,17,116,131,17,108,18,108,50,116,3,17,116,130,
+  49,116,17,116,3,49,116,131,50,116,49,116,49,116,9,50,116,131,82,116,
+  50,116,50,116,11,82,116,129,82,124,4,82,116,129,82,124,13,82,116,131,
+  82,124,82,116,82,124,3,82,116,5,82,124,6,82,116,131,82,124,82,124,
+  82,116,9,82,124,130,82,116,82,124,3,114,124,3,82,116,131,114,124,114,
+  124,114,116,3,114,124,3,82,124,136,114,124,115,124,82,124,115,124,82,124,
+  114,124,115,124,115,124,3,114,124,131,115,124,115,124,114,124,3,115,124,132,
+  114,124,115,124,114,124,114,124,5,115,124,132,146,124,147,124,147,124,115,124,
+  5,147,124,129,115,124,12,147,124,129,115,124,56,147,124,5,147,132,142,147,
+  124,147,132,147,124,115,124,83,116,50,108,241,99,209,91,177,83,112,75,173,
+  50,105,9,168,0,168,0,6,167,0,133,168,0,168,0,167,0,167,0,135,
+  0,4,167,0,143,166,0,166,0,167,0,135,0,134,0,133,0,101,0,100,
+  0,100,0,101,0,133,0,133,0,133,8,132,8,100,8,4,100,0,134,133,
+  8,230,24,103,41,168,57,168,57,136,49,5,103,49,4,136,49,131,135,49,
+  135,49,104,49,3,136,49,161,103,49,103,41,103,41,71,41,103,41,103,41,
+  71,41,135,49,168,49,200,57,9,66,74,74,171,82,236,90,45,107,142,115,
+  207,123,240,131,16,140,81,148,113,148,146,156,178,164,211,164,243,172,20,181,
+  52,181,84,189,84,189,85,189,117,189,117,197,117,197,4,150,197,130,149,197,
+  117,189,3,149,197,134,182,197,182,197,149,197,149,197,150,197,182,205,3,214,
+  205,132,117,181,211,156,81,140,207,123,3,175,123,133,207,123,16,132,113,140,
+  146,148,178,148,12,146,148,130,178,148,178,156,5,211,156,141,178,148,146,148,
+  113,140,113,140,113,148,81,140,48,132,80,132,81,140,113,140,113,148,113,148,
+  145,148,6,146,148,130,146,156,146,148,5,114,148,131,146,148,146,148,114,148,
+  9,146,148,129,114,148,3,113,148,137,81,140,80,140,81,140,113,140,113,148,
+  146,148,81,148,17,140,81,140,3,113,148,136,145,148,48,140,206,123,15,132,
+  15,132,238,123,15,132,113,148,3,146,148,149,113,148,81,140,113,148,146,148,
+  113,148,81,148,113,148,113,148,81,148,81,140,81,148,81,148,48,140,16,140,
+  81,148,81,148,80,140,80,140,48,140,48,140,80,140,3,81,148,135,113,148,
+  113,148,80,148,15,140,141,123,207,123,81,140,3,113,148,131,81,148,113,148,
+  81,148,220,3,131,203,90,203,90,235,90,3,203,90,136,203,82,235,90,204,
+  90,235,90,235,90,203,82,235,90,203,90,3,235,90,132,236,90,236,90,235,
+  90,236,90,3,235,90,144,236,90,236,90,235,90,236,90,235,90,236,90,236,
+  90,235,90,12,91,236,90,235,90,236,90,235,90,236,90,12,91,12,91,4,
+  236,90,138,12,91,236,90,12,91,236,90,12,91,12,91,236,90,12,91,12,
+  91,236,90,3,12,91,132,236,90,236,90,12,91,236,90,15,12,91,131,236,
+  90,12,91,236,90,5,12,91,129,236,90,11,12,91,130,236,90,236,90,3,
+  12,91,131,236,90,12,91,236,90,3,12,91,4,236,90,3,12,91,6,236,
+  90,138,236,82,236,82,236,90,236,90,236,82,236,90,236,90,236,82,236,90,
+  236,90,3,236,82,139,236,90,236,90,236,82,236,82,236,90,204,82,203,82,
+  236,82,204,82,203,82,204,82,11,203,82,147,171,74,203,82,171,82,203,82,
+  171,82,138,74,138,74,170,74,171,82,236,82,12,91,45,91,45,99,78,99,
+  78,99,110,99,110,99,111,99,143,99,9,143,107,129,143,99,3,143,107,4,
+  175,107,145,143,107,143,107,175,107,143,107,175,107,175,107,176,107,208,107,208,
+  107,176,107,208,115,176,107,207,107,175,107,143,107,143,99,240,107,3,49,124,
+  135,240,115,207,115,207,115,175,107,175,107,176,107,176,107,6,208,107,139,241,
+  107,240,107,208,107,208,107,240,107,240,115,208,107,241,107,241,115,241,107,241,
+  107,3,241,115,8,241,107,130,17,108,17,108,6,17,116,136,49,116,50,116,
+  18,116,50,116,17,116,17,116,49,116,17,116,4,50,116,129,49,116,7,50,
+  116,4,82,116,129,50,116,7,82,116,3,82,124,4,82,116,129,82,124,3,
+  82,116,134,82,124,82,116,82,124,82,116,82,116,82,124,9,82,116,4,82,
+  124,135,82,116,82,124,82,124,114,124,82,124,82,124,82,116,3,82,124,134,
+  82,116,114,124,82,116,114,124,114,116,114,124,3,82,124,141,82,116,82,124,
+  114,124,82,124,82,116,114,124,114,124,82,124,115,124,82,124,115,116,115,124,
+  114,116,3,114,124,129,82,116,4,114,124,131,115,124,114,124,114,124,4,115,
+  124,135,114,124,115,124,115,124,114,124,115,124,114,124,114,124,7,115,124,135,
+  147,124,115,124,115,124,147,124,115,124,147,124,115,124,38,147,124,131,115,124,
+  147,124,147,124,3,147,132,25,147,124,129,147,132,6,147,124,132,147,132,147,
+  124,147,132,179,124,3,147,124,144,179,124,147,124,147,124,115,124,82,116,50,
+  116,241,99,209,91,177,91,112,83,173,58,138,17,200,0,200,0,167,0,135,
+  0,3,167,0,3,168,0,135,167,0,135,0,135,0,168,0,167,0,135,0,
+  135,0,4,167,0,138,134,0,133,0,101,0,100,0,100,8,132,8,133,0,
+  134,0,133,0,100,0,4,100,8,140,101,8,101,8,230,24,136,49,233,57,
+  200,65,200,57,168,57,168,57,136,57,135,49,136,49,3,136,57,130,103,49,
+  135,49,4,103,49,153,135,49,135,49,168,57,232,57,41,66,106,74,203,90,
+  236,98,77,107,142,115,175,123,239,123,16,132,49,140,113,148,146,156,178,164,
+  211,164,243,172,243,172,20,173,52,181,84,181,117,189,117,189,7,149,197,129,
+  149,189,4,149,197,153,181,197,182,197,117,189,149,189,149,197,149,197,182,197,
+  182,197,150,197,150,197,149,197,182,197,182,205,214,205,214,205,117,189,243,164,
+  114,148,16,132,207,123,175,123,175,123,239,123,48,140,114,148,3,178,148,3,
+  146,148,129,114,148,4,146,148,133,114,148,146,148,146,148,178,156,178,156,6,
+  211,156,136,178,156,178,148,146,148,146,148,81,140,48,132,80,132,113,140,7,
+  146,148,139,146,156,146,156,146,148,114,148,17,140,49,140,114,148,146,148,146,
+  156,146,148,146,156,4,178,156,129,146,156,3,178,156,145,146,156,178,156,146,
+  156,81,140,81,140,113,148,145,148,113,148,81,140,113,148,145,148,146,148,178,
+  156,146,156,17,140,81,148,146,148,3,178,156,130,146,156,16,140,3,48,140,
+  142,16,132,113,148,146,156,146,148,146,148,113,148,48,140,113,148,146,148,146,
+  148,81,140,48,140,80,140,81,140,3,48,140,3,81,140,3,48,140,142,80,
+  140,48,148,81,140,114,148,146,156,146,156,146,148,146,156,146,156,113,156,238,
+  139,141,115,239,123,81,140,5,113,148,159,3,140,203,90,203,90,203,82,235,
+  90,203,90,235,90,203,82,235,90,203,90,235,90,235,90,203,90,4,235,90,
+  129,203,90,6,235,90,132,236,90,235,90,236,90,236,90,3,235,90,133,236,
+  90,235,90,235,90,236,90,11,91,5,236,90,3,12,91,3,236,90,130,12,
+  91,12,91,5,236,90,3,12,91,129,236,90,12,12,91,131,236,90,12,91,
+  236,90,11,12,91,129,236,90,7,12,91,129,236,90,7,12,91,132,236,90,
+  12,91,12,91,236,90,5,12,91,130,236,90,12,91,4,236,90,129,12,91,
+  14,236,90,131,204,90,236,90,204,82,3,236,82,140,204,82,204,82,203,82,
+  235,82,203,82,236,82,204,82,203,82,204,82,204,90,203,82,204,82,7,203,
+  82,148,204,82,171,82,203,82,203,82,171,82,171,74,138,74,138,74,171,82,
+  203,82,236,90,13,91,45,91,78,99,78,99,110,99,110,99,143,99,111,99,
+  111,107,9,143,107,143,175,107,175,107,143,107,176,107,143,107,143,107,175,107,
+  143,107,143,107,175,107,176,107,176,107,207,107,208,107,208,115,6,240,115,140,
+  208,115,208,107,208,107,17,116,49,124,49,124,17,124,240,115,208,115,207,115,
+  207,115,207,107,3,176,107,5,208,107,3,241,107,135,240,107,240,107,241,115,
+  241,107,241,107,241,115,241,115,3,241,107,129,241,115,5,241,107,129,240,107,
+  4,241,107,129,49,116,4,17,116,131,49,116,17,116,18,116,12,50,116,129,
+  82,116,4,50,116,8,82,116,133,82,124,82,124,82,116,82,116,82,124,4,
+  82,116,129,82,124,4,82,116,134,82,124,82,116,82,124,82,116,82,116,82,
+  124,7,82,116,129,82,124,3,82,116,3,82,124,141,114,124,82,124,82,116,
+  82,124,82,116,82,116,114,124,82,124,114,124,82,124,82,124,114,124,82,116,
+  4,114,124,131,82,124,82,116,114,116,3,114,124,136,82,124,114,124,115,124,
+  115,124,82,124,114,124,114,124,115,116,4,115,124,9,114,124,3,115,124,130,
+  114,124,114,124,5,115,124,129,114,124,9,115,124,133,114,124,115,124,147,124,
+  115,124,115,124,41,147,124,131,115,124,147,124,147,132,21,147,124,129,147,132,
+  13,147,124,3,147,132,144,147,124,147,132,147,124,147,124,114,116,82,116,50,
+  108,18,100,209,91,177,91,112,83,206,58,138,17,200,0,168,0,168,0,4,
+  167,0,137,168,0,168,0,200,0,167,0,167,0,168,0,167,0,168,0,135,
+  0,3,168,0,143,167,0,135,0,134,0,133,0,100,0,100,8,100,0,132,
+  8,133,8,134,0,133,8,132,8,100,8,99,0,100,8,3,100,0,172,230,
+  24,136,49,9,66,9,66,200,57,200,57,168,57,167,57,167,57,135,57,135,
+  57,167,57,135,49,167,49,200,57,232,65,41,74,138,82,203,90,12,99,77,
+  107,175,123,207,131,16,132,49,140,81,148,113,148,146,156,178,156,211,164,211,
+  164,243,172,20,173,52,181,85,181,84,189,84,189,85,189,84,189,85,189,149,
+  189,117,189,117,189,149,189,7,149,197,138,117,189,117,189,149,189,117,197,149,
+  197,150,197,150,197,182,197,149,197,150,197,3,182,197,139,149,197,182,197,149,
+  197,149,197,182,205,182,197,214,205,150,197,52,173,146,148,16,132,3,207,123,
+  133,240,131,81,140,146,148,178,148,178,148,3,146,148,129,114,148,8,146,148,
+  146,178,148,179,156,178,156,211,156,178,156,211,156,178,156,178,156,146,148,114,
+  148,113,140,113,148,81,140,16,132,48,132,146,148,146,148,146,156,3,178,156,
+  137,81,148,17,140,49,140,50,140,49,140,17,140,241,139,17,140,114,148,10,
+  178,156,135,146,156,178,156,178,156,146,148,146,156,48,140,48,132,3,146,148,
+  6,178,156,136,81,148,49,140,114,148,178,156,146,156,178,156,146,148,113,148,
+  3,81,148,131,81,140,113,148,113,148,3,146,148,136,48,148,81,148,146,148,
+  81,148,80,140,15,132,16,132,49,140,4,48,140,148,81,140,48,140,48,140,
+  81,148,81,140,113,148,113,148,81,148,81,148,113,148,81,148,113,148,146,156,
+  146,148,114,156,48,148,206,131,141,115,15,124,81,140,4,81,148,169,3,136,
+  203,90,203,90,235,90,203,82,235,90,203,90,235,90,203,90,3,235,90,133,
+  236,90,235,90,235,90,203,90,236,90,3,235,90,130,236,90,236,90,6,235,
+  90,135,236,90,235,90,236,90,235,90,236,90,236,90,11,91,3,235,90,136,
+  236,90,12,91,12,91,236,90,12,91,236,90,235,90,12,91,4,236,90,3,
+  12,91,129,236,90,3,12,91,134,236,90,12,91,236,90,12,91,12,91,236,
+  90,18,12,91,129,236,90,4,12,91,129,236,90,9,12,91,129,236,90,7,
+  12,91,6,236,90,132,12,91,236,90,12,91,12,91,5,236,90,132,12,91,
+  12,91,236,82,236,82,6,236,90,129,236,82,5,236,90,4,236,82,130,203,
+  82,203,82,4,204,82,132,171,82,203,82,204,82,204,82,6,203,82,129,171,
+  82,3,203,82,138,171,82,171,74,139,74,138,74,171,82,236,90,236,90,45,
+  91,46,91,78,99,3,110,99,129,143,99,4,143,107,139,143,99,175,107,175,
+  107,143,107,143,107,175,107,175,107,143,107,176,107,175,107,176,107,4,175,107,
+  131,175,99,207,107,208,115,3,240,115,147,17,124,17,124,16,124,17,124,17,
+  124,16,124,240,115,240,115,208,115,208,107,17,116,81,124,81,132,49,124,240,
+  123,240,123,240,115,207,107,175,107,6,208,107,129,208,115,10,241,107,131,241,
+  115,17,116,241,115,3,17,116,131,17,108,17,108,241,107,6,17,108,134,17,
+  116,49,116,50,116,17,116,49,116,49,116,14,50,116,132,82,116,50,116,82,
+  116,82,124,3,82,116,134,82,124,82,116,82,116,82,124,82,116,82,124,3,
+  82,116,133,82,124,82,124,82,116,82,124,114,124,5,82,116,4,82,124,134,
+  82,116,82,124,82,124,82,116,82,124,82,116,3,82,124,4,82,116,3,82,
+  124,132,114,124,82,116,114,124,82,124,3,114,124,135,82,124,114,124,114,124,
+  114,116,82,124,83,124,114,116,3,114,124,134,82,116,114,124,114,124,115,124,
+  114,116,82,124,3,114,124,135,115,124,82,124,114,124,114,124,115,124,114,124,
+  114,124,3,115,124,129,114,124,3,115,124,131,114,124,115,124,114,124,3,115,
+  124,133,114,124,115,124,115,124,114,124,114,124,4,115,124,129,114,124,8,115,
+  124,131,147,124,147,124,115,124,50,147,124,129,147,132,12,147,124,129,147,132,
+  15,147,124,150,147,132,147,124,147,124,147,132,147,132,179,124,147,124,147,132,
+  147,124,147,124,115,124,114,116,50,108,242,99,241,91,177,83,144,83,206,58,
+  170,17,200,0,168,0,168,0,3,167,0,5,168,0,129,167,0,6,168,0,
+  151,200,0,200,0,135,0,134,0,133,0,100,8,100,8,100,0,132,8,133,
+  8,133,0,133,8,132,8,100,8,100,0,100,0,100,8,100,8,101,0,231,
+  16,136,41,9,66,9,66,3,8,66,152,41,66,73,74,105,82,171,90,236,
+  98,45,107,109,115,142,115,174,123,207,131,16,140,81,148,114,148,146,156,178,
+  156,211,164,243,172,20,173,20,173,52,181,52,181,84,181,85,189,85,189,4,
+  117,189,133,149,197,117,189,85,181,117,189,85,189,4,117,189,136,149,197,149,
+  197,150,197,149,197,117,197,149,189,149,197,149,197,3,117,189,131,117,197,149,
+  197,149,197,4,182,197,130,181,197,181,197,3,149,197,141,181,197,182,197,182,
+  197,214,197,182,197,84,181,178,148,48,132,207,123,175,123,240,131,240,131,81,
+  140,7,146,148,132,113,148,113,140,113,140,113,148,5,146,148,130,178,148,178,
+  148,3,178,156,132,146,148,81,140,113,140,114,140,3,114,148,131,48,132,48,
+  132,146,148,3,178,156,139,179,156,178,156,114,148,17,140,17,140,18,148,18,
+  140,241,139,241,139,50,140,146,148,15,178,156,131,80,140,48,132,146,148,8,
+  178,156,138,114,148,17,140,114,148,178,156,178,156,146,148,146,148,113,148,113,
+  148,146,148,4,113,148,150,146,148,146,148,146,156,81,148,81,140,114,148,80,
+  140,80,140,16,140,48,140,81,140,49,140,81,148,81,148,48,140,48,140,16,
+  140,48,140,113,148,81,148,81,148,114,148,3,113,148,129,81,148,4,113,148,
+  133,48,148,207,131,206,131,206,123,16,132,4,81,148,219,3,130,203,90,203,
+  90,5,235,90,139,203,90,203,90,235,90,203,90,235,90,203,90,235,90,235,
+  82,235,90,235,90,203,90,3,235,90,132,236,90,235,90,235,90,236,90,4,
+  235,90,129,12,91,3,236,90,138,235,90,12,91,235,90,236,90,12,91,236,
+  90,235,90,236,90,12,91,235,90,3,12,91,135,236,90,12,91,12,91,236,
+  90,12,91,236,90,235,90,4,12,91,131,236,90,12,91,236,90,23,12,91,
+  129,236,90,18,12,91,129,236,90,6,12,91,136,236,82,12,91,236,90,12,
+  91,236,90,12,91,236,90,12,91,4,236,90,129,236,82,8,236,90,5,236,
+  82,130,236,90,204,82,3,236,82,131,203,82,204,82,204,82,3,203,82,130,
+  204,82,204,82,8,203,82,139,203,74,203,82,171,82,139,74,139,74,171,82,
+  171,82,236,90,12,91,45,91,78,99,3,110,99,3,143,107,133,143,99,143,
+  107,175,107,175,107,143,107,5,175,107,131,176,107,175,99,176,107,3,175,107,
+  132,176,107,175,107,208,107,240,115,3,16,124,130,48,124,49,124,4,16,124,
+  143,16,116,16,116,240,115,208,115,208,107,17,116,82,124,82,132,49,132,16,
+  124,240,123,240,123,207,115,207,115,176,107,4,208,107,9,241,107,132,17,116,
+  17,108,17,116,17,108,5,17,116,129,17,108,8,17,116,131,49,116,18,116,
+  50,116,4,49,116,3,50,116,130,82,116,82,116,3,50,116,131,82,116,82,
+  116,50,116,5,82,116,132,82,124,50,116,82,116,82,124,4,82,116,6,82,
+  124,163,82,116,114,124,82,124,82,116,82,116,82,124,82,124,114,124,82,124,
+  83,124,82,124,82,116,82,116,82,124,83,124,114,124,82,124,82,124,114,124,
+  114,124,114,116,114,124,82,116,82,124,115,124,114,116,82,124,115,124,82,124,
+  114,124,82,124,115,124,114,124,115,124,82,124,5,114,124,135,115,124,115,124,
+  115,116,115,124,114,124,114,124,115,124,3,114,124,129,114,116,5,114,124,130,
+  115,124,114,124,4,115,124,131,115,116,115,124,115,116,6,115,124,131,114,124,
+  115,124,114,124,3,115,124,129,114,116,17,115,124,131,147,124,147,124,115,124,
+  5,147,124,129,147,132,4,147,124,129,147,132,9,147,124,130,147,132,147,132,
+  5,147,124,132,147,132,147,124,147,124,147,132,4,147,124,129,147,132,8,147,
+  124,129,146,124,5,147,124,129,147,132,13,147,124,129,147,132,7,147,124,132,
+  147,132,147,124,147,132,147,132,3,147,124,155,179,132,147,132,179,132,147,124,
+  147,124,147,132,147,124,147,124,115,116,114,116,82,116,17,100,209,91,209,91,
+  144,83,238,58,202,17,200,0,200,0,168,0,167,0,168,0,135,0,168,0,
+  168,0,200,0,200,0,8,168,0,141,200,0,168,0,167,0,134,0,133,8,
+  133,0,100,8,100,8,133,8,134,0,133,0,133,8,132,8,4,100,8,161,
+  100,0,100,0,198,16,169,41,139,82,236,98,13,99,45,107,109,107,175,123,
+  207,131,48,140,48,140,81,148,146,156,114,148,114,148,146,156,178,156,211,172,
+  20,173,20,173,52,181,84,181,85,181,117,189,117,189,85,189,117,189,85,189,
+  85,189,117,189,85,189,6,117,189,130,85,189,117,181,5,117,189,3,149,197,
+  141,117,189,149,197,149,197,117,189,117,189,84,181,117,189,85,189,117,189,149,
+  197,150,197,149,197,181,197,5,182,197,143,149,197,149,197,182,197,181,197,182,
+  197,214,205,182,205,85,181,179,156,49,140,207,123,175,123,208,123,16,132,81,
+  140,3,146,148,4,114,148,135,81,140,16,132,239,131,81,140,81,140,114,148,
+  114,148,3,146,148,143,178,148,178,148,178,156,146,148,146,148,114,148,81,140,
+  113,148,114,148,114,148,146,148,81,140,48,132,114,148,179,156,3,211,156,138,
+  179,156,178,156,82,148,241,139,242,139,242,139,18,140,241,139,241,139,82,140,
+  4,146,148,132,114,148,114,148,146,148,146,148,7,178,156,131,113,148,48,132,
+  146,148,8,178,156,134,146,156,49,140,114,148,146,156,178,156,146,156,4,146,
+  148,158,146,156,146,156,146,148,146,148,146,156,146,148,146,148,113,148,49,140,
+  81,148,48,140,48,140,113,148,48,140,81,140,81,140,81,148,81,148,113,148,
+  81,148,81,148,113,148,114,148,113,148,113,148,81,148,114,148,113,156,113,148,
+  81,148,3,113,148,134,81,148,81,148,240,139,207,131,206,123,48,132,4,113,
+  148,122,3,6,203,90,130,235,90,203,90,7,235,90,131,236,90,235,90,236,
+  90,3,235,90,131,236,90,236,90,235,90,3,236,90,129,235,90,5,236,90,
+  132,12,91,236,90,236,90,12,91,4,236,90,5,12,91,129,236,90,5,12,
+  91,3,236,90,135,12,91,236,90,236,90,12,91,236,90,12,91,236,90,24,
+  12,91,129,236,90,8,12,91,129,236,90,8,12,91,129,236,90,7,12,91,
+  5,236,90,129,12,91,4,236,90,130,236,82,12,91,6,236,90,133,236,82,
+  236,82,236,90,236,82,236,90,3,236,82,3,236,90,4,204,82,130,203,82,
+  204,82,9,203,82,143,171,82,203,82,171,82,139,74,138,74,171,82,204,82,
+  236,90,13,99,45,99,78,99,110,99,110,107,110,99,111,99,4,143,107,135,
+  175,107,143,107,176,107,176,107,175,107,175,107,176,107,3,175,107,137,176,107,
+  208,107,176,107,175,107,176,107,208,107,208,115,240,115,17,124,3,49,124,132,
+  17,124,48,124,49,124,49,124,3,16,124,142,16,116,240,115,240,107,49,116,
+  82,124,82,132,49,132,16,124,240,123,240,123,208,115,208,115,208,107,208,115,
+  3,208,107,4,241,107,131,17,108,241,107,241,115,6,17,116,129,17,108,3,
+  17,116,132,49,116,17,116,17,116,49,108,3,49,116,129,17,116,10,50,116,
+  130,82,116,82,116,3,50,116,136,82,116,82,116,50,116,82,116,82,124,82,
+  116,82,124,82,124,3,82,116,129,82,124,4,82,116,3,82,124,130,82,116,
+  82,116,5,82,124,136,114,124,82,124,83,124,82,124,114,116,114,124,114,124,
+  115,124,3,114,124,155,82,116,114,124,114,124,115,124,115,124,114,124,114,124,
+  82,116,115,124,115,124,82,116,83,124,115,124,82,124,115,124,115,116,115,124,
+  115,124,114,124,115,124,115,116,115,124,115,124,82,124,115,124,114,124,114,124,
+  8,115,124,132,114,124,114,124,115,124,114,124,30,115,124,129,114,124,8,115,
+  124,131,147,124,115,124,115,124,3,147,124,129,115,124,10,147,124,129,147,132,
+  11,147,124,131,147,132,147,124,147,132,10,147,124,129,147,132,31,147,124,133,
+  147,132,147,124,147,132,147,124,147,124,3,147,132,3,147,124,129,179,132,3,
+  147,132,131,147,124,147,132,147,132,3,147,124,138,115,116,50,108,17,100,241,
+  91,177,83,144,83,238,66,203,25,200,0,200,0,7,168,0,129,200,0,10,
+  168,0,163,135,0,134,0,133,0,133,8,100,8,100,8,133,8,133,0,133,
+  8,133,8,133,0,100,0,100,8,100,8,132,8,100,8,101,0,198,16,11,
+  58,78,107,16,132,49,140,81,148,113,148,146,156,211,164,211,164,244,172,20,
+  173,20,181,52,181,20,173,52,173,20,173,52,181,3,84,181,136,85,181,117,
+  181,84,181,117,189,85,189,117,189,85,189,84,189,15,117,189,152,117,197,149,
+  197,149,197,117,197,117,189,149,197,149,189,117,189,84,189,84,181,84,181,85,
+  189,150,197,149,197,149,197,182,197,150,197,182,197,181,197,182,197,182,197,182,
+  205,182,197,182,197,3,182,205,148,214,205,117,189,211,156,81,140,239,123,175,
+  123,239,123,49,140,113,140,146,148,178,148,146,148,114,148,114,148,146,148,146,
+  148,114,148,81,140,16,132,81,140,4,114,148,136,146,148,146,148,178,148,178,
+  156,178,156,146,148,146,148,114,148,4,81,140,132,113,140,113,140,80,132,145,
+  148,5,211,156,132,146,156,49,140,17,140,50,148,3,82,148,130,17,140,50,
+  140,5,114,148,131,50,140,114,148,146,148,7,178,156,131,146,156,48,140,113,
+  140,9,178,156,131,49,148,81,148,146,148,3,178,156,129,146,156,10,146,148,
+  163,81,140,81,148,48,132,81,140,146,148,81,148,81,148,113,148,81,148,81,
+  148,113,148,113,148,81,148,113,148,114,148,113,148,113,148,81,148,113,148,146,
+  148,113,148,113,148,81,148,146,148,146,148,114,156,114,156,48,148,174,123,238,
+  123,81,140,146,148,114,148,113,148,113,148,88,3,133,235,90,203,90,235,90,
+  235,90,203,90,5,235,90,129,203,90,4,235,90,3,236,90,3,235,90,129,
+  236,90,4,235,90,134,236,90,12,91,235,90,12,91,235,90,12,91,9,236,
+  90,129,12,91,3,236,90,132,12,91,236,90,12,91,236,90,5,12,91,129,
+  236,90,3,12,91,129,236,90,14,12,91,129,12,99,11,12,91,129,236,90,
+  5,12,91,129,236,90,3,12,91,129,236,90,4,12,91,129,236,90,4,12,
+  91,129,236,90,5,12,91,132,236,90,12,91,236,90,12,91,3,236,90,133,
+  12,91,236,90,12,91,236,90,236,82,4,236,90,130,236,82,236,90,3,236,
+  82,131,236,90,236,90,236,82,3,236,90,138,236,82,203,82,236,82,236,82,
+  203,82,204,82,203,82,203,82,204,82,204,82,4,203,82,131,204,82,203,82,
+  171,82,3,203,82,141,171,82,171,74,171,74,171,82,204,82,236,90,13,99,
+  77,99,78,99,110,99,111,99,143,99,143,99,3,143,107,4,175,107,8,176,
+  107,130,208,107,176,107,3,208,107,131,240,115,17,124,17,124,6,49,124,142,
+  16,124,49,124,16,124,16,124,16,116,240,115,240,107,49,116,82,124,82,132,
+  49,124,16,124,240,123,240,123,3,208,115,3,208,107,4,241,107,133,17,108,
+  17,108,17,116,17,116,17,108,8,17,116,131,49,116,49,116,50,116,5,49,
+  116,10,50,116,130,82,116,82,116,5,50,116,131,82,116,82,116,82,124,3,
+  82,116,129,82,124,5,82,116,6,82,124,142,114,124,114,124,82,124,83,124,
+  115,124,114,124,82,124,82,124,115,124,115,124,82,124,114,124,115,124,82,116,
+  10,114,124,3,115,124,129,114,124,4,115,124,131,114,124,115,124,114,124,3,
+  115,124,135,115,116,115,124,115,124,114,124,115,124,114,124,114,124,10,115,124,
+  129,114,124,8,115,124,129,115,116,32,115,124,3,147,124,129,115,124,15,147,
+  124,129,147,132,20,147,124,129,147,132,24,147,124,132,147,132,147,124,147,124,
+  147,132,3,147,124,129,147,132,11,147,124,147,147,132,147,132,147,124,147,124,
+  179,132,147,132,147,132,147,124,147,124,115,116,114,116,82,108,18,100,209,91,
+  209,83,144,83,239,58,203,25,200,0,5,168,0,133,200,0,200,0,168,0,
+  200,0,200,0,5,168,0,129,200,0,3,168,0,156,167,0,134,0,133,0,
+  133,8,100,8,100,8,132,8,133,8,166,8,166,8,133,8,100,0,100,0,
+  100,8,100,8,132,8,133,8,166,8,108,66,240,123,178,156,211,164,211,164,
+  243,164,20,173,52,181,85,181,84,181,3,85,181,4,52,181,4,84,181,134,
+  85,181,84,181,84,189,84,181,85,181,85,181,12,117,189,129,149,197,4,117,
+  189,131,117,197,117,189,117,197,3,117,189,133,149,197,85,189,84,181,84,181,
+  117,189,3,149,197,149,150,197,150,197,181,197,181,197,150,197,182,197,181,197,
+  182,197,214,205,182,205,182,197,182,205,214,205,149,189,19,165,81,140,240,131,
+  207,123,240,131,49,140,113,140,3,146,148,130,113,140,114,148,3,146,148,130,
+  114,148,114,148,6,146,148,4,178,156,135,146,148,146,148,113,148,81,140,81,
+  140,113,140,113,140,4,146,148,142,179,156,179,156,211,156,179,156,211,156,146,
+  156,50,148,17,140,82,148,146,148,146,148,146,156,146,148,114,148,3,146,148,
+  132,146,156,147,156,50,148,82,148,9,178,156,130,48,140,81,140,9,178,156,
+  153,114,148,49,140,146,148,178,156,178,156,146,156,178,156,146,156,146,148,146,
+  156,146,156,178,156,146,156,146,156,146,148,146,148,146,156,81,148,81,148,48,
+  132,81,140,114,148,113,148,81,148,81,148,3,113,148,3,81,148,3,113,148,
+  131,81,148,81,148,113,148,7,146,156,136,48,148,206,123,239,123,113,148,114,
+  148,146,156,113,148,113,148,42,3,129,235,90,4,203,90,130,235,90,203,90,
+  4,235,90,129,203,90,4,235,90,135,236,90,236,90,235,90,235,90,236,90,
+  236,90,235,90,8,236,90,133,235,90,236,90,235,90,12,91,12,91,3,236,
+  90,4,12,91,129,236,90,7,12,91,129,236,90,28,12,91,129,13,91,19,
+  12,91,129,236,90,7,12,91,129,236,90,6,12,91,3,236,90,134,12,91,
+  12,91,236,90,12,91,236,82,12,91,3,236,90,130,236,82,12,91,9,236,
+  90,5,236,82,129,204,82,3,203,82,129,204,82,9,203,82,3,171,82,137,
+  139,74,203,82,204,90,13,91,13,91,46,99,110,99,111,99,143,99,3,143,
+  107,6,175,107,134,176,107,176,107,208,107,207,107,176,107,176,107,6,208,107,
+  135,208,115,17,116,17,124,49,132,49,124,49,124,49,132,5,49,124,143,17,
+  124,16,116,17,116,240,115,240,115,49,116,82,132,82,132,49,124,17,124,240,
+  123,240,115,207,115,208,115,208,115,3,208,107,134,241,107,241,107,17,108,17,
+  108,17,116,17,108,5,17,116,133,49,116,49,116,50,116,50,116,17,116,14,
+  50,116,133,82,116,82,116,50,116,82,116,50,116,8,82,116,129,82,124,7,
+  82,116,130,114,124,114,124,5,82,124,6,114,124,129,82,124,3,114,124,132,
+  115,124,114,124,115,124,115,124,3,114,124,131,115,124,115,124,114,124,50,115,
+  124,129,147,124,26,115,124,129,147,124,3,115,124,10,147,124,129,147,132,5,
+  147,124,129,147,132,6,147,124,132,147,132,147,132,147,124,147,132,9,147,124,
+  130,147,132,147,132,12,147,124,132,147,132,147,124,147,124,147,132,6,147,124,
+  129,147,132,4,147,124,129,147,132,3,147,124,132,147,132,147,124,147,132,147,
+  132,7,147,124,133,147,132,147,124,147,124,147,132,179,132,3,147,124,141,179,
+  132,147,124,147,124,147,116,114,116,82,116,18,108,209,91,177,83,144,83,239,
+  58,203,25,200,0,4,168,0,136,200,0,200,0,201,0,200,0,201,0,168,
+  0,200,0,200,0,5,168,0,151,200,0,168,0,167,0,134,0,133,0,133,
+  8,132,8,100,8,100,8,133,8,134,0,166,8,133,8,100,0,100,0,100,
+  8,132,8,133,8,133,8,198,8,75,66,16,132,211,156,3,20,173,139,52,
+  173,85,181,85,181,84,181,84,181,85,181,85,181,84,181,84,181,52,181,84,
+  181,4,85,181,4,84,181,129,85,181,3,85,189,4,117,189,131,85,189,117,
+  189,85,189,3,117,189,132,149,197,117,189,84,181,116,181,4,117,189,129,85,
+  189,3,117,189,136,85,189,84,181,84,181,117,189,150,197,149,197,149,197,181,
+  197,3,149,197,129,150,197,4,182,197,148,214,205,182,197,214,197,214,205,150,
+  197,20,173,114,148,16,132,207,123,16,132,49,140,81,140,114,148,146,148,146,
+  148,113,140,113,140,146,148,146,148,114,148,6,146,148,130,114,148,146,148,4,
+  178,156,3,146,148,135,114,148,81,140,113,148,113,148,114,148,146,148,146,148,
+  3,178,156,4,179,156,131,146,156,114,148,146,156,4,178,156,131,179,156,178,
+  156,178,156,3,179,156,131,114,148,82,148,146,156,8,178,156,131,81,140,80,
+  140,178,148,9,178,156,130,49,148,114,148,3,178,156,151,146,156,146,156,178,
+  156,146,156,146,156,178,156,178,156,146,156,146,148,146,148,146,156,81,148,81,
+  148,48,140,48,140,113,148,146,148,81,148,48,140,81,148,113,148,81,148,48,
+  148,3,48,140,133,81,140,113,148,114,148,113,148,113,148,6,146,156,137,81,
+  148,15,132,206,123,48,132,114,148,146,148,113,148,113,148,114,148,107,3,137,
+  203,90,235,90,235,90,203,90,235,90,236,90,203,90,236,90,203,90,7,235,
+  90,143,236,90,235,90,236,90,236,90,235,90,235,90,236,90,236,90,235,90,
+  236,90,235,90,236,90,236,90,235,90,12,91,8,236,90,134,12,91,12,91,
+  236,90,236,90,12,91,236,90,7,12,91,3,236,90,38,12,91,131,236,90,
+  12,91,236,90,14,12,91,130,236,90,236,90,7,12,91,139,236,90,12,91,
+  236,90,12,91,236,90,236,90,236,82,236,90,236,90,236,82,236,82,3,236,
+  90,139,236,82,236,90,236,90,236,82,236,82,204,82,236,90,236,90,204,82,
+  204,82,203,82,5,204,82,7,203,82,142,204,82,203,82,139,74,139,74,171,
+  82,203,82,236,90,13,91,45,99,78,99,110,99,111,99,143,107,143,107,5,
+  175,107,133,176,107,176,107,208,107,207,107,176,107,10,208,107,132,240,107,17,
+  124,49,124,49,132,3,49,124,153,49,132,49,132,49,124,49,124,17,124,49,
+  124,17,124,17,116,16,116,240,115,49,116,113,132,82,132,49,124,240,123,240,
+  123,239,115,207,115,208,115,175,115,175,107,176,107,208,107,240,107,17,108,7,
+  17,116,136,18,116,50,116,50,116,49,116,49,116,50,116,50,116,49,116,8,
+  50,116,134,82,116,50,116,50,116,82,116,82,116,50,116,6,82,116,129,82,
+  124,4,82,116,132,82,124,82,124,82,116,82,124,4,82,116,129,82,124,5,
+  114,124,3,115,124,144,114,124,115,124,82,124,115,124,115,124,114,124,114,124,
+  115,124,114,124,115,124,115,124,114,124,115,116,115,124,115,124,114,124,4,115,
+  124,129,114,124,15,115,124,129,147,124,9,115,124,129,115,116,22,115,124,129,
+  147,124,4,115,124,131,147,124,114,124,147,124,6,115,124,132,147,124,115,124,
+  115,124,147,124,5,115,124,3,147,124,130,115,124,115,124,3,147,124,129,115,
+  124,18,147,124,130,147,132,147,132,3,147,124,3,147,132,16,147,124,132,179,
+  124,147,124,147,124,147,132,19,147,124,129,147,132,3,147,124,129,179,132,12,
+  147,124,129,147,132,3,147,124,143,147,132,179,132,147,132,147,124,147,124,115,
+  116,82,116,18,100,241,91,208,83,144,83,238,58,235,25,200,8,200,8,4,
+  168,0,130,201,0,201,0,3,200,0,129,201,0,6,168,0,151,200,0,168,
+  0,167,0,134,0,133,0,133,8,132,8,100,8,133,8,133,8,134,8,134,
+  8,133,8,100,0,100,8,100,8,132,8,132,8,165,16,198,16,43,50,240,
+  123,211,156,3,20,173,135,52,173,52,181,52,181,84,181,84,181,85,181,85,
+  181,6,84,181,144,85,181,85,181,84,181,85,181,85,181,84,181,85,181,85,
+  181,85,189,85,181,85,189,117,189,85,189,117,189,85,189,84,189,6,117,189,
+  3,84,181,3,117,189,129,84,189,5,117,189,136,85,189,117,189,149,197,149,
+  197,182,197,181,197,149,197,150,197,5,182,197,147,182,205,214,205,182,205,182,
+  205,214,205,182,205,85,181,146,148,48,132,16,132,48,140,81,140,81,140,146,
+  148,178,148,146,148,146,148,113,140,114,148,4,146,148,130,178,148,178,148,4,
+  146,148,139,178,156,178,156,179,156,179,156,178,156,146,148,146,148,81,148,81,
+  140,113,148,114,148,3,146,148,3,178,156,137,179,156,178,156,179,156,179,156,
+  146,156,146,148,146,148,178,156,146,156,4,178,156,135,179,156,211,156,211,156,
+  179,156,146,148,81,140,114,148,7,178,156,132,179,156,113,148,48,132,146,148,
+  9,178,156,131,82,148,81,140,146,156,3,178,156,130,146,156,178,156,4,146,
+  156,143,178,156,146,156,146,156,146,148,113,148,49,140,113,148,48,140,80,140,
+  113,148,114,148,81,140,81,148,81,148,81,140,5,81,148,129,113,148,3,146,
+  156,143,178,156,146,156,114,148,81,140,81,140,48,132,48,140,48,140,239,131,
+  48,140,114,148,146,148,114,148,114,148,113,148,108,3,133,235,90,235,90,203,
+  90,235,90,203,90,5,235,90,129,236,90,4,235,90,129,236,90,5,235,90,
+  133,236,90,235,90,236,90,236,90,235,90,3,236,90,134,12,91,235,90,236,
+  90,236,90,12,91,236,90,9,12,91,129,236,90,17,12,91,129,12,99,19,
+  12,91,129,12,99,5,12,91,129,13,99,6,12,91,131,236,90,12,91,12,
+  99,8,12,91,142,236,90,12,91,12,91,13,91,12,91,236,90,12,91,12,
+  91,236,90,12,91,12,91,236,90,236,90,12,91,4,236,90,132,12,91,236,
+  82,236,90,12,91,6,236,90,3,236,82,141,236,90,236,90,236,82,236,90,
+  236,90,236,82,236,90,204,82,236,82,204,82,236,82,204,82,236,82,4,203,
+  82,3,204,82,141,203,82,171,74,171,74,139,74,204,82,236,90,13,91,45,
+  99,78,99,110,99,143,99,143,107,143,107,3,175,107,4,208,107,129,176,107,
+  7,208,107,130,208,115,240,107,3,208,107,135,240,115,16,124,49,132,49,132,
+  49,124,81,132,81,124,6,49,124,136,17,124,17,116,16,116,240,107,81,116,
+  82,132,82,132,49,124,3,240,115,135,207,115,208,115,175,107,143,107,176,107,
+  208,107,241,107,7,17,116,129,49,116,5,50,116,130,49,116,49,116,6,50,
+  116,138,82,116,82,116,50,116,82,116,82,116,50,116,82,116,82,124,82,116,
+  82,124,3,82,116,132,82,124,82,116,82,124,82,124,10,82,116,139,82,124,
+  83,124,114,124,82,124,115,124,114,124,114,124,115,124,115,124,114,124,114,124,
+  8,115,124,129,114,124,4,115,124,129,147,124,16,115,124,135,147,124,115,124,
+  147,124,147,124,115,124,115,124,147,124,8,115,124,129,147,124,14,115,124,129,
+  147,124,10,115,124,130,147,124,147,124,4,115,124,129,147,124,16,115,124,130,
+  147,124,115,124,4,147,124,132,115,124,147,124,147,124,115,124,16,147,124,129,
+  115,124,6,147,124,129,147,132,3,147,124,131,147,132,147,124,147,132,11,147,
+  124,3,147,132,5,147,124,129,147,132,22,147,124,129,147,132,3,147,124,3,
+  147,132,145,179,132,147,132,147,124,147,124,179,124,147,124,147,124,115,124,115,
+  116,82,116,18,108,241,91,209,83,144,83,238,58,12,34,232,0,5,168,0,
+  3,200,0,136,201,0,200,0,200,0,168,0,200,0,200,0,168,0,168,0,
+  3,200,0,149,167,0,134,0,133,8,133,8,132,8,100,8,132,8,133,8,
+  166,8,134,0,133,8,132,0,100,0,100,8,100,8,132,16,132,16,198,8,
+  11,50,208,123,211,156,3,20,173,129,52,181,6,84,181,134,85,181,84,181,
+  84,181,85,181,84,181,84,181,4,85,181,130,84,181,52,181,3,84,181,138,
+  85,189,85,189,117,189,84,189,84,181,85,189,84,189,85,189,117,189,85,189,
+  3,117,189,132,85,189,85,181,84,189,85,189,10,117,189,137,150,189,150,197,
+  149,197,150,197,149,197,149,197,150,197,182,197,182,205,3,182,197,140,214,205,
+  214,205,182,205,214,205,182,205,84,181,178,156,49,140,48,140,81,140,113,148,
+  113,148,3,146,148,137,114,148,113,140,114,148,146,148,114,148,113,140,49,140,
+  81,140,114,148,5,146,148,129,146,156,3,178,156,134,146,148,146,148,113,148,
+  81,140,146,148,146,148,3,178,156,3,211,156,130,179,156,211,156,3,178,156,
+  133,146,156,146,148,146,148,178,156,146,156,7,178,156,132,146,156,82,148,114,
+  148,179,156,7,178,156,131,146,148,48,132,113,140,3,178,156,129,211,156,5,
+  178,156,131,114,156,49,148,114,148,3,178,156,131,146,156,178,156,146,156,3,
+  178,156,4,146,156,136,146,148,81,140,113,148,146,148,80,140,80,140,81,140,
+  81,140,3,113,148,131,114,148,146,148,146,148,5,146,156,144,146,148,114,148,
+  49,140,240,123,175,115,239,123,80,140,80,148,145,156,81,156,16,140,113,148,
+  146,148,146,148,146,156,113,148,152,3,4,203,90,132,235,90,235,90,236,90,
+  203,90,5,235,90,137,236,90,235,90,236,90,235,90,235,90,236,90,236,90,
+  235,90,235,90,8,236,90,134,12,91,12,91,236,90,12,91,236,90,236,90,
+  3,12,91,135,236,90,12,91,236,90,236,90,12,91,12,91,236,90,10,12,
+  91,129,236,90,27,12,91,129,236,90,28,12,91,134,236,90,12,91,12,91,
+  236,90,12,91,236,90,3,12,91,133,236,90,236,90,12,91,236,82,12,91,
+  4,236,90,132,236,82,236,90,236,90,236,82,3,236,90,134,236,82,236,90,
+  236,82,236,90,236,82,236,82,3,204,82,129,236,82,5,204,82,144,203,82,
+  204,82,204,82,203,82,171,82,171,74,139,74,171,82,236,90,236,90,13,99,
+  78,99,110,99,111,99,143,107,143,107,4,175,107,10,208,107,129,240,107,5,
+  208,107,139,240,107,16,116,49,124,49,132,49,132,81,132,49,132,49,124,81,
+  124,49,124,81,124,4,49,124,152,49,116,17,116,240,107,81,124,114,132,82,
+  132,49,124,240,115,240,123,208,115,208,115,207,115,143,107,143,99,143,99,208,
+  107,241,107,17,108,49,116,18,116,50,116,18,116,50,116,17,116,6,50,116,
+  129,49,116,4,50,116,3,82,116,129,50,116,8,82,116,129,82,124,3,82,
+  116,149,82,124,82,124,114,124,114,124,82,124,82,116,114,124,82,116,82,124,
+  115,124,82,116,82,116,114,124,115,124,82,124,115,124,115,124,114,124,115,116,
+  115,124,114,124,18,115,124,129,147,124,9,115,124,129,147,124,3,115,124,130,
+  147,124,147,124,7,115,124,131,147,124,115,124,147,124,6,115,124,132,147,124,
+  115,124,115,124,147,124,9,115,124,137,147,124,115,124,147,124,115,124,115,124,
+  147,124,115,124,147,124,147,124,3,115,124,137,147,124,147,124,115,124,147,124,
+  115,124,115,124,147,124,115,124,147,124,10,115,124,132,147,124,115,124,147,124,
+  147,124,3,115,124,16,147,124,129,147,132,13,147,124,135,147,132,147,132,147,
+  124,147,132,147,132,147,124,147,132,10,147,124,129,147,132,4,147,124,133,147,
+  132,147,124,147,124,147,132,147,132,7,147,124,130,147,132,179,124,16,147,124,
+  134,179,132,147,124,147,124,147,132,147,124,147,124,3,147,132,149,147,124,147,
+  124,115,124,115,116,82,116,50,108,241,91,209,83,176,83,15,67,12,34,232,
+  0,168,0,200,8,168,0,168,0,200,0,200,0,201,0,201,0,200,8,3,
+  200,0,132,201,0,200,0,200,0,168,0,3,200,0,132,167,0,134,0,133,
+  8,133,8,3,132,8,133,133,8,166,8,166,8,133,0,132,8,3,100,8,
+  136,132,8,132,8,166,8,234,49,208,115,179,156,52,173,20,173,4,52,181,
+  130,85,181,84,181,3,85,181,130,84,181,85,181,4,84,181,4,85,181,148,
+  52,181,52,181,84,181,84,181,84,189,85,181,85,189,117,189,84,181,85,189,
+  84,181,117,189,85,189,85,189,84,189,117,189,117,189,84,181,85,181,85,189,
+  6,117,189,132,149,197,149,189,149,189,117,189,3,149,197,163,150,197,182,197,
+  117,197,117,189,117,197,149,197,182,197,181,197,181,197,182,197,182,205,214,205,
+  214,205,150,197,182,197,84,181,178,156,113,148,81,140,113,140,114,148,146,148,
+  146,148,178,148,146,148,146,148,113,140,113,148,113,148,114,148,81,140,48,140,
+  48,132,81,140,114,148,4,146,148,137,178,148,146,156,178,148,146,148,178,156,
+  146,148,146,148,114,148,178,156,9,211,156,132,178,156,178,156,146,148,146,156,
+  5,146,148,130,178,148,146,156,3,178,156,135,211,156,178,156,82,148,114,148,
+  211,156,179,156,211,156,6,178,156,130,48,140,113,140,9,178,156,132,146,156,
+  17,140,82,148,146,156,6,178,156,147,146,156,178,156,146,156,178,156,146,156,
+  146,156,178,156,81,148,113,148,178,148,146,156,113,148,81,140,80,140,81,140,
+  16,132,240,123,17,132,49,140,4,81,140,146,49,132,17,132,16,124,240,123,
+  240,123,240,131,16,132,81,148,113,148,146,156,146,156,113,156,16,140,81,148,
+  146,148,146,156,113,148,146,148,90,3,8,235,90,133,203,90,203,90,235,90,
+  236,90,236,90,5,235,90,130,236,90,235,90,4,236,90,133,235,90,236,90,
+  235,90,235,90,12,91,7,236,90,130,12,91,236,90,7,12,91,129,236,90,
+  31,12,91,129,12,99,26,12,91,129,236,90,14,12,91,136,236,90,236,90,
+  12,91,236,90,236,90,12,91,236,90,236,82,4,236,90,130,236,82,12,91,
+  3,236,82,134,236,90,236,90,236,82,236,82,236,90,203,82,4,236,82,130,
+  203,82,236,82,5,204,82,129,203,82,3,204,82,3,171,74,134,171,82,204,
+  90,237,90,45,99,78,99,110,99,3,143,107,136,175,107,176,107,176,107,207,
+  107,208,107,176,107,208,107,176,107,5,208,107,130,240,107,241,107,5,208,107,
+  131,240,107,17,116,49,124,5,81,132,129,81,124,5,49,124,148,49,116,17,
+  116,16,116,16,116,49,124,114,132,81,132,49,132,240,123,208,115,240,115,240,
+  123,175,115,143,107,143,99,143,107,208,107,241,107,17,116,17,116,9,50,116,
+  131,82,116,82,116,50,116,9,82,116,129,82,124,5,82,116,133,82,124,82,
+  124,114,124,82,116,114,124,3,82,116,139,114,124,82,124,82,116,114,116,114,
+  124,82,124,114,124,82,124,114,116,115,124,114,124,3,115,124,129,114,124,10,
+  115,124,129,147,124,6,115,124,140,147,124,115,124,147,124,147,124,115,124,147,
+  124,147,124,115,124,147,124,147,124,115,124,115,124,3,147,124,133,115,124,147,
+  124,115,124,115,124,147,124,3,115,124,3,147,124,3,115,124,129,147,124,4,
+  115,124,3,147,124,8,115,124,131,147,124,115,124,147,124,4,115,124,129,147,
+  124,6,115,124,3,147,124,130,115,124,115,124,4,147,124,3,115,124,138,147,
+  124,147,124,115,124,115,124,147,124,147,124,115,124,147,124,147,124,115,124,4,
+  147,124,131,115,124,147,124,115,124,15,147,124,129,147,132,16,147,124,129,147,
+  132,21,147,124,129,147,132,6,147,124,130,147,132,147,132,11,147,124,157,179,
+  132,147,132,147,124,179,132,147,124,147,124,147,132,147,132,147,124,179,124,147,
+  132,147,124,147,132,179,132,179,132,147,132,147,124,147,124,115,124,115,124,82,
+  116,18,100,241,91,209,91,176,83,15,67,44,34,232,8,167,0,3,168,0,
+  3,200,8,131,200,0,200,0,200,8,6,200,0,157,168,0,200,0,168,0,
+  167,0,134,0,133,8,133,8,132,8,100,8,132,8,133,8,166,8,166,0,
+  134,8,132,8,100,8,100,8,132,8,132,8,101,8,133,8,202,41,143,107,
+  179,156,20,173,52,173,52,181,52,181,85,181,7,84,181,133,85,181,84,181,
+  84,181,85,181,85,181,4,84,181,4,52,181,3,85,189,136,117,189,85,189,
+  85,181,85,181,85,189,85,189,117,189,117,189,4,84,189,129,85,189,11,117,
+  189,129,117,197,3,149,197,148,85,189,117,189,149,197,149,197,182,197,182,197,
+  149,197,181,197,182,205,182,205,214,205,182,205,150,197,85,181,211,156,146,148,
+  113,140,114,140,113,148,114,148,3,146,148,142,114,148,113,148,113,140,81,140,
+  113,148,113,148,49,140,48,140,81,140,114,148,146,148,114,148,146,148,114,148,
+  7,146,148,130,178,156,179,156,9,211,156,129,179,156,5,146,148,143,114,148,
+  146,148,146,156,146,148,146,148,146,156,178,156,178,156,179,156,179,156,82,148,
+  114,148,179,156,179,156,211,156,6,178,156,134,80,140,48,140,146,148,178,156,
+  178,156,211,156,4,178,156,133,210,156,178,156,49,148,17,140,146,148,11,178,
+  156,141,146,156,178,156,113,148,81,148,146,148,178,156,178,156,146,148,113,148,
+  81,140,81,140,240,123,207,123,6,240,123,145,16,124,16,132,48,132,81,140,
+  113,148,146,156,178,156,146,156,146,156,178,156,114,156,48,140,49,140,114,148,
+  146,148,114,148,114,148,149,3,133,203,90,203,90,235,90,235,90,203,90,3,
+  235,90,129,236,90,5,235,90,137,236,90,235,90,236,90,235,90,235,90,236,
+  90,236,90,235,90,235,90,5,236,90,134,12,91,236,90,12,91,236,90,12,
+  91,12,91,7,236,90,32,12,91,129,13,99,3,12,91,129,13,99,42,12,
+  91,140,236,90,236,90,12,91,236,90,236,90,236,82,236,90,236,90,236,82,
+  236,90,236,90,12,91,4,236,90,135,236,82,236,90,236,90,236,82,235,82,
+  236,90,236,82,3,204,82,155,236,90,203,82,204,82,204,82,203,82,204,82,
+  204,82,203,82,203,82,204,82,204,82,171,74,171,74,171,82,204,82,236,90,
+  13,91,45,99,78,99,111,99,143,107,143,107,175,107,176,107,176,107,175,107,
+  207,107,5,208,107,132,240,107,209,107,240,107,208,107,3,240,107,135,241,107,
+  240,107,208,107,208,107,240,115,17,124,49,124,6,81,132,3,81,124,4,49,
+  124,139,17,116,16,116,81,124,82,132,114,132,49,124,240,115,208,115,240,115,
+  207,115,175,115,3,143,107,134,208,107,240,107,17,116,50,116,50,116,49,116,
+  5,50,116,130,82,116,50,116,4,82,116,129,50,116,5,82,116,6,82,124,
+  130,114,116,82,116,3,82,124,133,114,116,114,124,114,124,83,124,82,116,3,
+  114,124,137,114,116,114,124,115,124,115,124,114,124,115,124,115,116,115,124,114,
+  124,19,115,124,3,147,124,130,115,124,147,132,8,147,124,129,115,124,4,147,
+  124,129,115,124,7,147,124,129,115,124,3,147,124,136,115,124,147,124,115,124,
+  147,124,115,124,115,124,147,124,147,124,3,115,124,129,147,124,5,115,124,131,
+  147,124,115,124,115,124,3,147,124,129,115,124,3,147,124,130,115,124,115,124,
+  3,147,124,133,115,124,147,124,115,124,147,124,115,124,3,147,124,3,115,124,
+  137,147,124,115,124,147,124,115,124,147,124,147,124,115,124,147,124,115,124,15,
+  147,124,129,147,132,18,147,124,132,147,132,147,124,147,124,147,132,16,147,124,
+  129,147,132,13,147,124,141,147,132,147,124,147,132,147,124,147,124,147,132,147,
+  124,147,132,147,124,147,132,147,124,147,124,147,132,6,147,124,135,147,132,179,
+  132,147,124,179,132,179,124,179,132,147,132,3,179,132,3,147,124,137,114,124,
+  82,116,50,108,241,99,209,91,177,83,15,67,43,34,8,9,3,167,0,137,
+  200,0,168,0,168,0,200,8,200,0,168,0,168,0,200,0,200,0,8,167,
+  0,156,134,0,133,8,133,8,132,8,100,8,132,0,133,8,134,0,166,8,
+  166,8,133,8,100,8,100,8,132,8,100,8,100,8,133,8,137,41,111,99,
+  178,148,20,173,52,173,52,173,52,181,84,181,52,181,84,181,52,181,3,84,
+  181,131,52,181,85,181,52,181,4,84,181,131,85,181,84,189,85,189,4,52,
+  181,143,117,189,85,181,85,181,117,189,117,189,85,189,84,181,84,189,84,181,
+  85,189,117,189,85,189,117,189,85,189,116,189,5,117,189,132,116,189,85,189,
+  117,189,85,189,5,117,189,138,149,197,149,189,117,189,117,189,116,189,149,197,
+  150,197,150,197,181,197,181,197,3,182,205,134,214,205,149,197,85,181,243,164,
+  178,148,113,148,3,114,148,133,146,148,146,148,113,148,113,140,113,140,3,81,
+  140,131,113,148,113,148,114,148,3,113,140,130,113,148,113,148,3,114,148,134,
+  146,148,178,148,178,156,179,156,178,156,178,156,7,211,156,129,179,156,5,178,
+  156,129,146,156,3,178,156,133,179,156,146,156,146,148,146,148,178,156,3,146,
+  156,136,179,156,114,148,82,148,178,156,179,156,178,156,178,156,211,156,4,178,
+  156,131,145,148,15,132,113,140,3,178,156,137,211,156,179,156,211,156,178,156,
+  178,156,179,156,82,148,241,139,114,148,10,178,156,151,146,156,178,156,178,156,
+  114,148,81,148,146,148,178,156,146,148,146,156,146,148,146,156,146,148,113,148,
+  81,148,81,140,81,140,49,140,81,140,81,148,81,148,113,148,146,148,146,156,
+  3,178,156,136,146,156,146,148,146,148,114,148,146,148,16,140,240,131,49,132,
+  3,81,140,136,3,130,235,90,203,90,3,235,90,138,236,90,203,90,235,90,
+  236,90,235,90,236,90,236,90,235,90,235,90,236,90,3,235,90,135,236,90,
+  236,90,235,90,12,91,236,90,235,90,12,91,5,236,90,130,12,91,12,91,
+  3,236,90,130,12,91,236,90,4,12,91,129,236,90,13,12,91,129,236,90,
+  51,12,91,130,236,90,236,90,9,12,91,142,236,90,12,91,12,91,236,90,
+  12,91,236,90,236,90,12,91,236,82,236,90,12,91,236,90,236,90,236,82,
+  3,236,90,130,236,82,236,82,3,236,90,135,236,82,204,82,236,82,204,82,
+  236,82,203,82,204,82,3,236,82,147,204,82,236,82,204,82,204,82,203,82,
+  204,82,203,82,171,74,171,82,171,82,204,90,236,90,13,91,78,99,110,99,
+  142,99,175,107,143,107,175,107,9,208,107,134,240,107,208,107,240,107,241,107,
+  241,107,240,107,4,208,107,138,208,99,240,107,49,124,81,132,81,132,113,132,
+  81,132,81,132,81,124,81,132,3,81,124,131,49,124,49,124,81,124,3,17,
+  116,146,49,116,114,132,82,132,49,124,16,116,208,115,240,115,207,115,175,115,
+  143,107,143,99,175,99,208,107,241,107,17,116,50,116,50,116,82,116,3,50,
+  116,130,82,116,50,116,15,82,116,132,82,124,114,124,114,124,82,116,3,114,
+  124,130,114,116,114,116,5,114,124,136,115,124,115,124,114,124,115,124,114,124,
+  115,124,115,124,114,124,12,115,124,134,147,124,115,124,115,124,147,124,115,124,
+  115,124,10,147,124,130,115,124,147,132,10,147,124,129,115,124,5,147,124,129,
+  115,124,4,147,124,130,115,124,115,124,5,147,124,4,115,124,3,147,124,129,
+  115,124,9,147,124,132,115,124,147,124,147,124,115,124,8,147,124,129,115,124,
+  5,147,124,138,115,124,147,124,115,124,147,124,115,124,147,124,147,124,115,124,
+  147,124,115,124,4,147,124,130,115,124,115,124,20,147,124,131,147,132,147,124,
+  147,132,7,147,124,3,147,132,130,147,124,147,124,3,147,132,6,147,124,130,
+  147,132,147,132,7,147,124,129,147,132,7,147,124,137,147,132,179,132,147,124,
+  147,132,147,132,147,124,147,124,147,132,147,132,4,147,124,130,147,132,147,132,
+  5,147,124,3,147,132,131,147,124,179,132,147,132,3,179,132,142,147,132,179,
+  132,147,132,147,124,147,124,115,124,82,116,50,108,241,99,177,91,177,83,47,
+  67,44,34,8,1,4,167,0,155,168,0,168,0,167,8,199,8,200,8,199,
+  0,167,0,199,8,167,8,166,0,167,0,166,0,166,8,167,8,167,0,134,
+  0,134,0,133,0,133,8,133,8,100,8,133,8,133,8,134,0,166,8,166,
+  8,133,8,3,100,8,137,132,8,100,8,133,8,104,33,78,99,146,148,20,
+  173,52,181,52,173,4,52,181,133,84,181,52,181,84,181,84,181,52,181,4,
+  84,181,129,85,181,4,84,181,132,52,181,84,181,52,181,52,181,3,85,181,
+  130,84,189,117,189,5,84,181,142,85,189,84,189,85,189,117,189,117,189,85,
+  189,117,189,117,189,84,189,117,189,85,189,85,189,117,189,84,189,4,117,189,
+  3,149,197,3,117,189,3,149,197,130,182,197,149,197,3,182,197,152,182,205,
+  182,205,117,189,20,165,178,148,114,148,114,148,113,140,114,148,146,148,146,148,
+  113,148,81,140,114,148,113,148,81,140,81,140,113,148,114,148,114,148,113,148,
+  114,148,113,148,113,140,4,146,148,130,178,148,178,156,10,211,156,130,179,156,
+  179,156,4,178,156,129,146,156,3,179,156,130,178,156,146,156,3,146,148,147,
+  211,156,211,156,179,156,114,148,146,156,114,148,50,148,146,148,211,156,211,156,
+  210,156,211,156,211,156,178,156,211,156,178,156,178,156,48,132,81,140,8,178,
+  156,132,179,156,146,156,17,140,82,148,13,178,156,144,146,156,81,148,114,148,
+  146,156,178,156,146,148,146,156,146,156,178,156,146,156,146,148,146,148,146,156,
+  146,148,146,156,146,156,5,146,148,130,114,148,113,148,5,81,140,131,49,140,
+  207,123,16,132,3,81,140,54,3,133,235,90,235,90,203,90,203,90,236,90,
+  6,235,90,130,236,90,236,90,4,235,90,131,236,90,236,90,235,90,6,236,
+  90,132,12,91,236,90,236,90,12,91,3,236,90,130,12,91,236,90,3,12,
+  91,133,236,90,12,91,236,90,12,91,236,90,6,12,91,129,12,99,13,12,
+  91,129,12,99,15,12,91,129,12,99,31,12,91,129,236,90,9,12,91,137,
+  236,90,236,82,12,91,12,91,236,90,12,91,236,90,236,90,12,91,9,236,
+  90,136,236,82,236,90,236,90,236,82,235,82,236,82,236,82,236,90,5,236,
+  82,132,203,82,236,82,236,82,204,82,4,171,82,134,235,90,236,90,45,99,
+  78,99,142,99,143,107,3,175,107,6,208,107,5,240,107,3,241,107,129,240,
+  107,3,208,107,143,175,99,208,99,240,107,49,124,81,132,81,132,113,132,81,
+  132,81,132,113,132,81,132,81,132,81,124,49,124,81,124,3,49,124,149,17,
+  116,17,116,82,116,82,132,114,132,49,124,240,115,208,115,240,115,208,115,175,
+  115,143,107,143,99,175,99,208,107,241,115,17,116,50,116,50,116,82,116,50,
+  116,5,82,116,132,82,124,82,116,82,124,82,124,3,82,116,131,82,124,82,
+  116,114,124,3,82,116,133,114,116,114,124,114,116,114,116,115,116,4,114,124,
+  129,83,124,3,114,124,130,115,124,114,124,5,115,124,129,115,116,13,115,124,
+  133,147,124,115,124,147,124,147,124,147,132,3,147,124,129,115,124,27,147,124,
+  130,115,124,115,124,8,147,124,129,115,124,3,147,124,132,115,124,115,124,147,
+  124,115,124,8,147,124,129,115,124,3,147,124,131,115,124,147,124,115,124,25,
+  147,124,129,115,124,15,147,124,129,147,132,10,147,124,129,147,132,6,147,124,
+  129,147,132,3,147,124,3,147,132,5,147,124,129,147,132,17,147,124,129,147,
+  132,9,147,124,129,179,124,4,147,132,7,147,124,131,147,132,179,132,147,132,
+  3,179,132,158,147,132,179,132,179,132,147,132,147,132,147,124,147,124,115,116,
+  83,116,50,108,241,91,209,91,177,83,47,75,76,42,40,9,167,0,167,0,
+  199,8,199,0,200,8,168,0,199,0,199,8,199,0,167,0,167,0,166,8,
+  166,8,134,0,3,166,8,152,166,0,167,0,166,0,133,8,133,0,133,8,
+  132,8,100,8,132,8,133,8,165,8,166,8,165,8,133,8,100,8,99,8,
+  132,8,100,8,100,8,101,8,72,33,14,91,114,148,20,173,6,52,181,4,
+  84,181,135,52,181,52,181,84,181,52,181,84,181,84,181,85,181,3,84,181,
+  135,53,181,52,181,84,181,84,181,84,189,85,181,84,181,3,84,189,133,84,
+  181,84,181,85,181,84,181,85,189,6,117,189,3,85,189,139,117,189,85,189,
+  117,189,85,189,117,189,116,189,116,189,117,197,117,197,149,197,117,197,3,117,
+  189,7,149,197,140,150,197,182,205,214,205,149,197,52,173,178,156,146,148,114,
+  148,113,140,114,148,114,148,178,148,3,146,148,132,114,148,114,148,146,148,113,
+  148,6,146,148,5,178,156,9,211,156,154,178,156,178,156,179,156,146,148,146,
+  148,146,156,178,156,178,156,146,156,146,156,178,156,178,156,146,148,178,156,178,
+  156,146,148,146,148,178,156,211,156,211,156,114,148,82,148,114,148,50,148,114,
+  148,179,156,3,211,156,135,178,156,211,156,178,156,179,156,178,156,48,140,80,
+  140,8,178,156,132,210,156,178,156,17,148,82,148,14,178,156,134,81,148,113,
+  148,146,148,178,156,146,156,146,148,3,146,156,130,114,148,113,140,3,81,140,
+  3,113,140,132,81,140,114,140,114,148,114,148,4,81,140,133,49,132,49,132,
+  16,132,208,123,240,123,3,81,140,238,2,131,203,90,235,90,236,90,4,235,
+  90,130,203,90,236,90,5,235,90,4,236,90,134,235,90,236,90,236,90,235,
+  90,236,90,12,91,4,236,90,135,12,91,236,90,12,91,236,90,12,91,236,
+  90,236,90,4,12,91,129,236,90,22,12,91,132,44,91,12,91,12,91,12,
+  99,54,12,91,129,236,90,4,12,91,130,236,82,12,91,4,236,90,129,236,
+  82,7,236,90,133,236,82,236,90,236,82,204,82,236,90,3,236,82,129,204,
+  82,4,236,82,145,203,82,236,82,203,82,204,82,171,82,139,74,171,82,171,
+  82,236,90,12,91,45,91,78,99,143,99,143,107,175,107,176,107,176,107,4,
+  208,107,4,240,107,4,240,115,142,240,107,241,107,240,107,208,107,208,107,175,
+  99,176,99,208,99,16,116,81,124,81,132,81,132,114,132,114,132,3,113,132,
+  3,81,132,3,81,124,136,49,124,49,116,17,116,49,124,114,132,114,132,81,
+  124,16,124,3,240,115,136,175,115,143,107,143,99,175,107,208,107,241,115,17,
+  116,50,116,7,82,116,5,82,124,3,82,116,136,82,124,82,124,114,124,115,
+  124,82,124,114,124,114,124,82,124,9,114,124,3,115,124,129,114,116,4,115,
+  124,129,114,124,9,115,124,134,147,124,147,124,115,124,147,132,147,124,115,124,
+  27,147,124,129,115,124,6,147,124,129,147,132,10,147,124,133,115,124,147,124,
+  115,124,115,124,147,132,17,147,124,129,147,132,42,147,124,129,115,124,4,147,
+  124,129,147,132,4,147,124,129,147,132,6,147,124,130,147,132,147,132,3,147,
+  124,132,147,132,147,124,147,124,147,132,3,147,124,129,147,132,3,147,124,129,
+  147,132,18,147,124,129,147,132,3,147,124,129,179,124,9,147,124,132,147,132,
+  147,124,147,124,179,132,3,147,124,129,179,124,4,179,132,4,147,124,144,115,
+  116,82,116,50,108,241,91,209,83,177,83,79,75,108,42,41,9,168,0,199,
+  0,200,8,199,0,200,8,168,0,199,8,3,167,0,149,166,0,166,8,134,
+  0,134,0,133,0,166,8,166,8,166,0,166,0,134,0,133,8,133,0,132,
+  8,132,8,100,8,132,8,133,8,133,8,165,8,165,8,132,8,5,100,8,
+  133,101,0,40,25,238,90,82,140,244,164,6,52,181,3,84,181,6,52,181,
+  9,84,181,130,84,189,84,189,3,84,181,130,84,189,85,189,4,84,181,130,
+  84,189,84,189,5,117,189,130,84,189,85,189,4,117,189,132,85,189,116,189,
+  116,189,117,197,3,149,197,132,117,189,149,197,149,197,149,189,6,149,197,139,
+  181,197,182,197,182,205,182,197,85,181,211,156,146,148,114,148,113,140,114,148,
+  146,148,3,178,148,3,146,148,131,178,148,146,148,178,148,4,178,156,130,179,
+  156,179,156,12,211,156,132,178,156,146,156,146,156,179,156,9,178,156,142,146,
+  156,146,148,178,156,178,156,146,156,146,148,146,148,178,156,146,148,50,140,82,
+  148,50,148,82,148,179,156,5,211,156,139,178,156,211,156,211,156,80,140,80,
+  132,178,156,211,156,211,156,178,156,178,156,211,156,3,178,156,131,211,156,81,
+  148,81,148,14,178,156,131,113,148,113,148,146,156,4,178,156,132,146,156,178,
+  156,146,148,114,148,3,81,140,132,113,140,81,140,82,140,82,140,6,81,140,
+  137,114,140,81,140,81,140,49,140,240,131,240,131,49,132,81,140,114,140,45,
+  3,4,235,90,138,203,90,235,90,235,90,203,90,236,90,235,90,235,90,236,
+  90,235,90,236,90,3,235,90,5,236,90,146,235,90,236,90,236,90,12,91,
+  236,90,236,90,12,91,12,91,236,90,236,90,12,91,236,90,12,91,12,91,
+  236,90,12,91,236,90,236,90,21,12,91,129,12,99,15,12,91,129,44,91,
+  3,12,91,129,12,99,4,12,91,129,12,99,34,12,91,130,236,90,12,91,
+  8,236,90,129,12,91,3,236,90,129,236,82,3,236,90,4,236,82,129,236,
+  90,4,236,82,130,235,82,203,82,3,236,82,142,204,82,203,82,236,82,203,
+  74,171,74,171,74,203,90,236,90,13,91,45,99,110,99,143,107,175,107,176,
+  107,4,208,107,154,208,115,240,115,240,115,240,107,241,107,240,107,241,115,240,
+  107,17,108,241,107,240,107,241,107,208,107,208,107,208,99,208,99,175,99,240,
+  107,17,116,81,132,114,132,113,132,114,132,81,132,114,132,114,132,3,81,132,
+  129,114,132,4,81,124,147,49,116,17,116,81,124,114,124,114,132,81,132,17,
+  124,240,115,240,115,207,115,175,107,143,107,143,99,176,107,208,107,241,115,17,
+  116,50,116,82,116,4,82,124,141,82,116,82,124,82,124,114,124,82,116,82,
+  116,114,124,114,116,82,116,82,124,114,124,82,116,82,124,3,114,124,129,114,
+  116,3,114,124,131,114,116,115,124,115,124,3,114,124,8,115,124,132,147,124,
+  115,124,115,124,147,124,4,115,124,4,147,124,129,115,124,66,147,124,129,147,
+  132,55,147,124,130,147,132,147,132,3,147,124,133,147,132,147,124,147,124,147,
+  132,147,132,3,147,124,130,179,132,147,132,9,147,124,129,147,132,10,147,124,
+  132,147,132,147,124,147,124,179,132,4,147,124,129,147,132,4,147,124,136,179,
+  124,147,132,147,124,179,124,147,124,179,124,147,124,147,132,3,147,124,140,179,
+  124,147,124,147,124,179,132,179,132,147,124,179,124,179,132,179,132,147,124,147,
+  124,147,132,3,147,124,141,115,116,82,116,50,108,241,99,209,91,177,91,79,
+  75,109,42,41,9,168,0,199,8,168,0,200,0,3,167,0,130,166,0,134,
+  0,3,166,8,158,165,8,133,8,165,8,166,8,165,8,166,8,166,8,165,
+  8,133,8,133,0,133,8,132,8,132,8,100,8,133,8,133,8,165,8,165,
+  8,133,8,100,8,99,8,100,8,132,8,132,8,101,8,39,25,205,82,114,
+  140,20,165,52,173,5,52,181,3,84,181,129,85,181,5,52,181,9,84,181,
+  131,85,189,85,189,84,189,3,84,181,132,85,189,85,189,84,181,85,181,3,
+  84,181,129,85,189,4,117,189,138,84,189,84,181,117,189,117,189,149,189,117,
+  197,84,181,84,189,117,189,117,189,3,149,189,129,117,189,9,149,197,147,181,
+  197,182,197,182,205,149,197,85,181,211,156,146,148,114,148,113,148,114,148,114,
+  148,178,148,178,148,146,148,178,148,178,148,146,148,178,148,178,148,3,178,156,
+  132,178,148,179,156,210,156,178,156,12,211,156,137,178,156,146,148,179,156,211,
+  156,211,156,178,156,146,156,146,148,146,148,4,178,156,142,146,148,178,156,178,
+  156,211,156,210,156,178,148,178,156,178,156,114,148,82,148,114,148,82,148,82,
+  148,178,156,5,211,156,134,178,156,211,156,211,164,81,148,48,132,146,148,5,
+  211,156,135,178,156,210,156,178,156,211,156,114,148,50,148,146,156,13,178,156,
+  131,146,148,81,148,146,148,3,178,156,132,146,156,178,156,178,156,114,148,5,
+  81,140,3,114,140,131,81,140,113,140,114,140,4,81,140,136,114,140,114,140,
+  82,140,17,132,208,123,17,124,17,124,208,115,37,3,130,203,90,236,90,7,
+  235,90,137,236,90,236,90,235,90,236,90,235,90,203,90,235,90,236,90,235,
+  90,6,236,90,129,12,91,4,236,90,142,12,91,12,91,236,90,236,90,12,
+  91,236,90,12,91,236,90,12,91,12,91,236,90,12,91,12,91,236,90,10,
+  12,91,129,236,90,9,12,91,129,44,99,3,12,91,129,12,99,5,12,91,
+  131,44,99,12,91,45,91,12,12,91,129,44,91,15,12,91,129,12,99,19,
+  12,91,133,236,90,236,90,12,91,236,90,12,91,9,236,90,130,236,82,236,
+  90,3,236,82,134,236,90,236,82,236,90,236,82,236,82,235,82,6,236,82,
+  130,203,82,171,74,3,171,82,136,236,90,45,91,78,99,110,99,143,107,175,
+  107,176,107,176,107,3,208,107,130,209,115,241,107,3,240,107,134,241,115,17,
+  116,17,116,241,115,241,107,240,115,3,240,107,137,208,107,208,107,207,99,16,
+  108,49,124,81,132,114,132,114,132,113,132,6,114,132,131,81,132,81,124,81,
+  124,3,49,124,161,17,116,81,116,114,124,114,132,82,132,16,124,240,123,207,
+  115,207,115,175,107,143,107,175,99,208,107,241,107,17,116,17,116,50,116,82,
+  124,82,116,82,124,82,116,82,124,82,116,82,124,114,124,114,124,82,124,82,
+  116,82,116,114,124,114,124,115,124,115,124,3,114,124,129,115,124,5,114,124,
+  3,115,124,130,114,124,114,124,4,115,124,129,115,116,3,115,124,8,147,124,
+  132,115,124,147,124,147,124,115,124,22,147,124,129,147,132,66,147,124,129,147,
+  132,7,147,124,129,147,132,19,147,124,129,147,132,13,147,124,3,147,132,4,
+  147,124,131,147,132,147,124,147,132,12,147,124,129,179,132,5,147,124,132,147,
+  132,147,124,147,124,179,124,5,147,124,135,179,132,147,132,147,124,179,124,147,
+  124,147,124,179,132,3,147,124,136,179,132,179,132,147,124,147,124,179,132,147,
+  132,147,132,179,132,3,147,132,6,179,132,3,147,124,140,115,116,83,116,50,
+  108,17,100,209,91,209,83,80,75,109,42,41,9,168,0,200,8,200,0,3,
+  167,0,133,166,0,166,8,133,8,133,8,166,8,4,165,8,3,166,8,132,
+  166,0,134,8,133,8,133,8,4,132,8,143,100,0,134,8,166,8,166,8,
+  133,8,100,8,99,8,132,8,132,8,100,8,100,8,7,25,173,82,81,140,
+  20,165,3,52,181,135,52,173,52,181,52,181,84,181,84,181,85,181,84,181,
+  5,52,181,3,84,181,129,52,181,4,84,181,132,84,189,84,181,85,189,85,
+  189,4,84,181,131,84,189,84,181,84,181,3,52,181,136,84,189,117,189,117,
+  189,85,189,117,189,84,189,84,189,85,189,4,117,189,132,85,189,85,189,117,
+  189,149,197,3,149,189,129,117,197,4,149,197,143,150,197,182,197,150,197,149,
+  197,182,197,182,197,182,205,149,197,52,173,243,156,146,148,146,148,113,148,114,
+  148,145,148,9,146,148,129,178,156,3,178,148,132,178,156,146,156,178,148,179,
+  156,9,211,156,134,179,156,114,148,146,148,179,156,211,164,179,156,4,178,156,
+  131,146,148,178,156,211,156,3,178,156,129,146,156,5,178,156,134,146,156,146,
+  148,146,156,114,148,50,148,146,148,8,211,156,131,146,148,48,140,113,148,5,
+  211,156,4,178,156,131,114,148,49,140,114,148,4,146,148,130,114,148,146,148,
+  7,178,156,131,146,156,81,148,146,148,4,178,156,133,146,148,178,156,146,148,
+  81,140,81,140,4,81,132,4,114,140,141,146,140,114,140,49,132,17,124,176,
+  107,111,99,13,91,204,74,9,50,167,41,70,33,38,25,228,16,22,3,134,
+  235,90,235,90,236,90,236,90,235,90,236,90,4,235,90,3,236,90,129,235,
+  90,7,236,90,130,235,90,12,91,3,236,90,139,12,91,12,91,236,90,236,
+  90,12,91,236,90,12,91,12,91,236,90,12,91,236,90,33,12,91,129,236,
+  90,22,12,91,132,44,91,12,91,12,91,13,91,3,12,91,129,44,91,24,
+  12,91,130,236,90,236,90,3,12,91,131,236,90,12,91,12,91,9,236,90,
+  133,236,82,236,90,236,90,236,82,204,82,8,236,82,139,203,82,171,82,171,
+  74,171,82,204,82,12,91,45,91,78,99,142,99,175,107,175,107,3,208,107,
+  130,240,107,241,107,4,241,115,136,241,107,17,116,17,108,17,116,17,116,17,
+  108,17,116,241,107,3,240,107,134,208,99,208,107,17,116,81,124,114,132,113,
+  132,8,114,132,151,81,124,49,124,240,115,16,116,49,124,49,116,49,116,81,
+  116,114,124,114,132,82,132,17,124,240,123,240,115,207,115,175,107,143,107,176,
+  107,208,107,240,115,17,108,18,116,50,116,4,82,124,133,82,116,82,124,114,
+  124,114,124,114,116,4,114,124,129,114,116,3,114,124,131,115,124,114,124,114,
+  116,14,115,124,131,147,124,115,124,115,124,3,147,124,129,115,124,14,147,124,
+  129,147,132,9,147,124,129,147,132,17,147,124,129,147,132,40,147,124,129,147,
+  132,7,147,124,129,147,132,10,147,124,129,147,132,12,147,124,129,147,132,14,
+  147,124,129,147,132,7,147,124,131,179,124,147,124,147,132,6,147,124,129,147,
+  132,14,147,124,134,147,132,147,132,147,124,147,132,147,124,179,124,4,147,124,
+  134,179,132,147,132,147,124,179,124,179,132,147,132,4,147,124,133,179,132,147,
+  124,179,132,179,132,179,124,3,147,124,135,179,132,147,132,147,124,179,132,179,
+  132,147,132,147,132,6,179,132,148,147,132,147,132,147,124,147,124,147,116,82,
+  116,50,108,17,100,209,91,177,83,80,75,141,50,41,9,199,0,200,8,167,
+  0,167,0,167,8,167,0,166,0,8,165,8,3,166,8,144,198,8,166,8,
+  133,0,133,8,133,8,132,8,132,8,100,0,133,8,133,8,166,8,166,8,
+  165,8,100,8,99,8,100,8,3,132,8,133,231,24,205,82,49,140,243,164,
+  52,173,4,52,181,134,52,173,52,181,84,181,52,181,52,181,84,181,6,52,
+  181,5,84,181,147,84,189,85,189,84,181,85,181,85,189,85,181,52,181,84,
+  181,52,181,84,181,85,189,84,181,20,173,52,181,52,181,84,181,117,189,117,
+  189,84,189,3,85,189,8,117,189,9,149,197,155,182,197,182,205,182,197,182,
+  197,181,197,150,197,149,197,150,197,84,181,211,156,178,148,146,148,114,148,113,
+  148,114,148,146,148,146,148,113,140,114,148,114,148,146,148,114,148,114,148,146,
+  148,146,148,178,148,178,148,3,146,148,131,178,148,178,156,179,156,9,211,156,
+  136,114,148,114,148,179,156,211,164,211,156,178,156,146,148,178,148,3,146,148,
+  133,178,156,146,148,146,148,179,156,146,156,3,146,148,129,146,156,4,179,156,
+  131,114,148,49,140,146,156,9,211,156,130,48,140,81,140,4,178,156,136,146,
+  156,146,148,146,148,146,156,146,148,114,148,49,140,81,148,4,146,148,131,114,
+  148,113,148,146,156,7,178,156,130,81,148,114,148,5,178,156,153,210,156,178,
+  156,146,148,146,140,114,140,114,140,81,140,16,124,240,123,175,115,45,91,172,
+  74,74,66,9,50,135,33,37,25,228,16,196,16,131,8,130,16,98,8,130,
+  16,98,16,130,16,98,16,75,3,129,236,90,5,235,90,138,236,90,235,90,
+  236,90,236,90,235,90,236,90,236,90,235,90,236,90,12,91,7,236,90,135,
+  12,91,12,91,236,90,12,91,12,91,236,90,12,91,3,236,90,3,12,91,
+  129,236,90,20,12,91,132,12,99,12,91,12,91,12,99,17,12,91,129,12,
+  99,4,12,91,132,44,91,12,91,12,91,44,91,12,12,91,129,45,99,18,
+  12,91,131,236,90,12,91,236,90,5,12,91,132,236,90,12,91,236,90,12,
+  91,7,236,90,136,236,82,236,90,236,90,236,82,236,82,236,90,236,90,236,
+  82,3,236,90,4,236,82,143,236,90,236,82,236,82,204,82,171,74,171,74,
+  171,82,204,90,13,91,45,91,110,99,143,99,175,107,176,107,208,107,3,240,
+  107,130,241,107,241,107,3,241,115,130,17,116,17,108,4,17,116,137,17,108,
+  241,107,241,107,240,107,240,107,208,99,240,107,17,116,81,132,10,114,132,133,
+  49,124,239,115,175,107,207,107,240,115,3,49,116,134,82,124,114,132,82,132,
+  17,124,240,115,239,123,3,175,107,145,208,107,241,107,17,116,17,116,49,116,
+  50,116,82,124,82,124,114,124,82,124,114,124,82,124,82,116,114,124,115,124,
+  114,124,114,116,3,114,124,135,115,124,114,124,115,124,114,124,115,124,115,124,
+  147,124,8,115,124,133,147,124,147,124,115,124,147,124,115,116,3,115,124,131,
+  147,124,115,124,115,124,23,147,124,129,147,132,5,147,124,129,147,132,53,147,
+  124,129,147,132,14,147,124,129,179,124,3,147,124,130,147,132,147,132,13,147,
+  124,129,179,132,14,147,124,130,147,132,147,132,6,147,124,129,147,132,6,147,
+  124,3,147,132,133,147,124,147,132,147,124,147,124,179,132,5,147,124,129,179,
+  124,3,147,124,131,147,132,147,124,179,124,3,147,124,130,179,132,147,132,6,
+  147,124,146,179,124,147,132,147,124,147,124,147,132,147,132,147,124,147,124,179,
+  132,147,124,147,124,179,132,179,132,179,124,147,132,147,132,179,132,147,124,3,
+  147,132,3,179,132,147,147,132,179,132,179,132,147,132,147,124,147,124,115,124,
+  114,116,50,108,17,100,209,91,177,83,80,75,141,50,73,9,167,0,167,0,
+  167,8,167,8,3,166,8,3,165,8,139,166,8,165,8,166,8,165,8,166,
+  8,166,8,198,8,198,8,166,0,166,8,134,8,3,133,8,131,132,8,132,
+  8,133,0,3,166,8,147,133,8,132,8,99,8,99,8,100,8,132,8,133,
+  8,230,16,172,74,49,140,243,164,52,173,52,173,84,181,20,173,52,181,52,
+  181,20,173,84,181,9,52,181,3,84,181,4,52,181,130,84,181,85,181,9,
+  84,181,3,52,181,137,117,189,117,189,85,189,84,189,85,189,85,189,84,181,
+  117,189,84,189,6,117,189,8,149,197,129,150,197,5,182,197,134,149,197,149,
+  189,84,181,211,156,178,148,146,148,3,114,148,140,146,148,146,148,113,148,114,
+  148,146,148,146,148,114,148,114,148,146,148,178,148,146,148,146,148,3,178,148,
+  133,178,156,146,148,178,156,146,156,178,156,7,211,156,137,146,156,114,148,179,
+  156,211,156,211,156,178,156,146,148,146,148,178,156,5,146,148,130,146,156,146,
+  148,3,114,148,139,146,148,179,156,179,156,211,156,178,156,114,148,50,140,146,
+  148,211,164,211,156,211,156,6,178,156,132,80,140,81,140,146,148,146,156,3,
+  178,156,142,146,156,146,148,146,148,114,148,113,148,81,148,113,148,146,148,113,
+  148,113,148,146,148,146,156,81,148,146,148,4,178,156,154,179,156,178,156,211,
+  156,146,148,146,148,211,156,178,156,178,156,114,148,81,140,16,132,207,123,77,
+  107,236,90,138,74,41,66,199,49,102,41,5,25,228,24,163,16,130,16,98,
+  16,98,8,130,16,98,16,9,130,16,43,3,3,235,90,129,236,90,3,235,
+  90,131,236,90,236,90,12,91,3,235,90,133,236,90,235,90,236,90,236,90,
+  12,91,3,236,90,129,12,91,4,236,90,6,12,91,129,236,90,12,12,91,
+  129,12,99,19,12,91,129,12,99,13,12,91,129,44,91,19,12,91,129,13,
+  91,27,12,91,130,12,83,12,91,5,236,90,133,236,82,236,90,236,90,236,
+  82,236,82,3,236,90,132,236,82,236,82,236,90,236,90,3,236,82,131,236,
+  90,236,82,203,82,3,236,82,143,171,82,171,74,171,74,171,82,236,90,12,
+  91,77,91,111,99,175,99,175,107,208,107,208,107,240,107,240,107,17,116,3,
+  241,115,10,17,116,3,240,107,132,208,99,16,108,49,124,82,132,5,114,132,
+  129,146,132,4,114,132,133,49,124,142,107,110,99,175,107,240,115,3,49,116,
+  145,114,124,114,132,114,132,49,124,240,123,208,115,175,107,175,107,176,107,208,
+  107,17,108,17,116,17,116,49,116,49,116,82,124,82,124,5,114,124,129,114,
+  116,3,114,124,6,115,124,130,114,124,114,124,5,115,124,132,147,124,146,124,
+  147,124,115,124,5,147,124,131,147,116,115,124,115,124,28,147,124,129,147,132,
+  29,147,124,132,179,124,147,132,147,124,147,124,3,147,132,25,147,124,132,147,
+  132,147,124,147,124,147,132,3,147,124,129,147,132,4,147,124,129,179,132,5,
+  147,124,129,147,132,5,147,124,134,179,132,147,124,147,132,147,124,147,124,147,
+  132,11,147,124,134,148,132,147,124,147,132,147,124,147,124,147,132,6,147,124,
+  3,147,132,6,147,124,129,147,132,4,147,124,133,147,132,147,132,147,124,147,
+  132,147,132,4,147,124,139,147,132,179,124,147,124,179,124,147,132,147,124,147,
+  124,179,124,179,124,147,124,179,132,5,147,124,142,179,132,179,132,147,132,147,
+  132,147,124,147,132,147,124,179,132,147,124,179,132,147,124,179,132,179,132,179,
+  124,9,179,132,129,147,132,4,179,132,149,147,124,147,124,115,124,114,116,50,
+  108,241,99,209,91,177,83,80,75,141,50,73,17,167,0,167,8,166,8,166,
+  0,166,8,166,8,165,8,166,8,165,8,165,8,5,166,8,129,198,8,4,
+  199,8,131,166,8,133,0,133,8,3,132,8,144,133,0,165,8,134,8,166,
+  8,132,8,132,8,99,8,99,8,100,8,132,8,133,8,198,16,139,74,49,
+  140,243,164,52,173,6,52,181,130,84,181,84,181,3,52,181,130,84,181,84,
+  181,4,52,181,134,84,181,84,181,52,173,52,173,52,181,52,181,10,84,181,
+  3,52,181,136,84,181,84,189,84,189,117,189,84,189,84,181,84,189,84,181,
+  5,117,189,132,149,189,117,189,117,197,117,189,4,149,197,150,117,189,117,189,
+  149,197,149,197,182,197,182,197,149,197,182,197,181,197,182,205,149,197,117,189,
+  20,165,178,148,146,148,146,148,114,148,146,148,146,148,114,148,113,148,114,148,
+  3,146,148,3,114,148,130,146,148,146,148,3,178,156,130,179,156,211,156,3,
+  178,156,6,211,156,135,243,164,179,156,114,148,147,156,179,156,211,156,178,156,
+  5,146,148,144,178,156,146,156,146,156,178,156,179,156,179,156,146,156,146,156,
+  178,156,179,156,211,156,178,156,178,156,114,148,17,140,82,148,6,178,156,3,
+  146,148,130,114,148,113,148,3,146,148,3,146,156,133,146,148,113,148,113,148,
+  81,140,49,140,3,81,148,150,81,140,113,148,178,156,113,148,146,148,211,156,
+  211,164,211,156,178,156,146,148,113,148,48,140,207,123,44,99,12,99,171,82,
+  73,74,8,58,134,41,69,33,4,25,195,24,4,130,16,129,98,16,17,130,
+  16,12,3,129,235,90,3,236,90,135,235,90,236,90,235,90,236,90,235,90,
+  235,90,236,90,4,235,90,135,12,91,236,90,235,90,236,90,235,90,12,91,
+  12,91,3,236,90,134,12,91,236,90,12,91,236,90,12,91,236,90,13,12,
+  91,130,12,99,12,99,6,12,91,129,12,99,15,12,91,129,44,99,7,12,
+  91,129,44,91,10,12,91,129,45,99,13,12,91,129,45,91,19,12,91,131,
+  12,83,236,90,236,90,3,12,91,4,236,90,134,236,82,236,90,236,82,12,
+  91,236,82,236,90,9,236,82,132,236,90,236,82,236,82,236,90,5,236,82,
+  137,203,82,171,74,171,82,203,90,236,90,13,91,78,99,110,99,175,107,3,
+  208,107,131,240,107,241,115,240,107,7,17,116,131,49,116,17,116,49,116,3,
+  17,116,134,17,108,17,108,241,107,208,99,17,108,81,124,5,114,132,129,146,
+  140,5,114,132,146,49,124,175,107,207,107,208,107,17,116,49,124,49,116,49,
+  116,114,124,114,132,114,132,49,124,240,123,240,115,207,107,175,107,176,107,240,
+  107,3,17,116,130,49,116,50,116,3,82,124,5,114,124,4,115,124,129,115,
+  116,4,115,124,131,147,124,147,124,115,124,10,147,124,129,115,124,5,147,124,
+  129,115,124,3,147,124,129,115,124,4,147,124,129,115,124,25,147,124,129,147,
+  132,25,147,124,129,179,124,7,147,124,129,179,124,6,147,124,129,147,132,12,
+  147,124,131,179,124,147,132,179,124,3,147,124,129,179,132,7,147,124,129,147,
+  132,8,147,124,129,147,132,16,147,124,133,179,124,147,124,147,124,179,132,147,
+  132,8,147,124,129,147,132,14,147,124,150,179,124,147,132,147,124,147,132,147,
+  124,147,132,147,132,179,132,147,124,147,124,179,124,147,132,147,124,179,132,147,
+  132,179,132,179,124,147,124,147,124,179,132,147,132,147,132,4,147,124,130,179,
+  132,147,124,3,147,132,138,179,132,179,124,179,132,147,124,147,124,179,132,147,
+  124,147,124,179,132,147,124,5,179,132,129,179,124,5,179,132,3,147,124,139,
+  115,124,82,116,50,108,18,100,209,91,177,83,80,75,174,50,73,17,199,0,
+  167,8,9,166,8,143,166,0,166,8,133,8,133,8,166,8,199,8,199,0,
+  200,8,199,8,167,0,166,0,133,8,132,8,132,8,100,8,3,133,8,141,
+  166,8,133,8,132,8,99,8,100,8,100,8,132,8,132,8,166,8,75,66,
+  240,131,211,164,52,173,6,52,181,129,85,181,5,52,181,131,85,181,52,181,
+  20,173,4,52,181,132,52,173,52,173,52,181,19,173,3,52,181,7,84,181,
+  139,84,189,52,181,84,181,84,181,84,189,84,189,85,189,84,189,84,181,85,
+  189,84,189,9,117,189,4,149,197,3,117,189,140,149,197,182,197,182,197,181,
+  197,149,197,181,197,182,197,182,205,117,189,52,173,211,156,146,148,4,114,148,
+  130,146,148,114,148,8,146,148,132,178,148,178,156,210,156,179,156,4,211,156,
+  129,178,156,7,211,156,138,211,164,179,156,146,148,179,156,179,156,146,156,146,
+  148,146,148,179,156,179,156,8,211,156,138,179,156,146,156,146,156,178,156,178,
+  156,146,156,146,148,82,148,82,148,146,148,4,178,156,130,146,156,146,148,8,
+  113,148,3,146,148,154,81,148,81,148,113,148,114,148,113,148,114,148,114,148,
+  81,148,49,140,49,140,240,131,142,115,142,115,45,99,236,90,106,74,8,66,
+  166,49,69,41,4,33,195,24,162,16,130,16,98,8,98,16,98,16,25,130,
+  16,131,3,129,236,90,3,235,90,130,236,90,235,90,5,236,90,144,235,90,
+  235,90,12,91,235,90,12,91,236,90,236,90,12,91,236,90,12,91,236,90,
+  12,91,236,90,236,90,12,91,236,90,4,12,91,134,12,99,12,91,12,91,
+  236,90,12,91,236,90,6,12,91,130,12,99,12,99,15,12,91,132,12,99,
+  12,99,44,91,44,91,4,12,91,132,44,99,12,91,12,91,13,91,12,12,
+  91,130,13,91,44,91,4,12,91,129,13,99,6,12,91,129,44,91,7,12,
+  91,129,44,91,20,12,91,137,236,82,12,91,236,90,12,91,236,90,12,91,
+  12,83,236,90,12,91,3,236,90,130,236,82,236,90,4,236,82,3,236,90,
+  4,236,82,129,236,90,3,236,82,143,171,74,171,74,171,82,203,82,236,90,
+  45,91,110,99,143,99,175,107,208,107,208,107,240,107,240,107,241,115,241,115,
+  5,17,116,129,49,116,4,17,116,137,49,116,49,116,17,116,17,116,17,108,
+  240,107,240,99,49,116,82,124,11,114,132,146,81,124,16,124,240,115,16,116,
+  81,124,49,124,49,124,17,116,81,124,114,132,114,132,49,124,16,124,207,115,
+  175,107,176,107,208,107,241,115,3,17,116,133,49,116,49,116,82,124,114,124,
+  115,124,3,114,124,133,114,116,114,124,115,124,114,124,114,124,7,115,124,132,
+  147,124,147,124,115,124,115,124,15,147,124,129,115,124,3,147,124,134,115,124,
+  147,124,147,124,115,124,147,124,115,124,14,147,124,129,147,132,22,147,124,129,
+  179,124,8,147,124,129,179,124,6,147,124,129,179,124,7,147,124,129,179,124,
+  15,147,124,131,179,124,147,124,179,124,3,147,124,133,147,132,147,124,147,132,
+  147,124,179,124,5,147,132,135,147,124,179,132,147,124,147,132,147,124,147,124,
+  147,132,6,147,124,129,179,124,3,147,124,145,147,132,147,132,147,124,147,132,
+  147,124,179,124,179,132,147,124,147,124,147,132,147,124,147,132,147,124,179,124,
+  147,124,147,132,147,132,5,147,124,130,147,132,147,124,3,147,132,4,147,124,
+  3,147,132,6,147,124,130,147,132,147,124,4,179,132,142,147,124,147,124,179,
+  132,147,124,179,132,147,124,147,124,179,132,147,132,179,132,179,132,147,124,179,
+  124,147,132,3,147,124,142,179,124,179,132,147,124,179,132,147,124,179,132,179,
+  132,147,124,147,124,179,132,179,132,147,124,179,124,179,124,8,179,132,129,147,
+  132,3,179,132,141,147,124,147,124,115,124,115,116,50,108,18,100,241,91,209,
+  91,112,75,141,50,73,17,199,8,199,8,5,166,8,163,167,8,167,8,166,
+  8,134,8,133,8,133,8,132,8,132,8,133,8,167,8,200,0,200,8,200,
+  0,199,8,166,0,133,8,133,8,132,8,132,8,133,8,165,8,166,8,166,
+  8,165,8,132,8,99,8,100,8,100,8,132,8,100,8,165,8,42,66,240,
+  123,243,164,52,173,3,52,181,135,84,181,52,181,52,181,84,181,52,181,52,
+  181,84,181,4,52,181,133,19,173,20,181,20,173,52,181,84,181,3,52,181,
+  132,19,173,52,173,20,173,52,181,12,84,181,134,85,189,85,189,84,189,84,
+  189,84,181,85,189,9,117,189,129,117,197,3,149,197,3,117,189,141,149,197,
+  149,197,181,197,181,197,182,197,182,197,182,205,214,205,150,197,52,173,211,156,
+  146,148,146,148,3,114,148,139,113,140,81,140,81,140,113,140,81,140,113,140,
+  113,140,114,148,146,148,178,148,178,156,7,211,156,130,178,148,178,148,4,178,
+  156,4,211,156,7,179,156,6,211,156,133,211,164,211,164,243,164,178,156,178,
+  156,5,146,148,139,114,148,82,148,114,148,146,148,114,148,146,148,146,148,178,
+  156,113,148,81,148,81,148,3,113,148,152,114,148,146,148,146,148,146,156,178,
+  156,146,148,81,148,240,131,207,131,174,115,110,107,12,99,203,90,105,74,8,
+  66,199,49,102,41,4,33,228,24,163,16,130,16,130,16,98,16,98,16,16,
+  130,16,129,162,24,9,130,16,132,162,24,130,16,130,16,162,16,3,130,16,
+  134,3,9,235,90,4,236,90,129,235,90,6,236,90,135,12,91,236,90,236,
+  90,12,91,12,91,236,90,12,91,3,236,90,131,12,91,12,91,236,90,13,
+  12,91,129,12,99,11,12,91,129,13,99,10,12,91,129,44,99,14,12,91,
+  129,12,99,42,12,91,136,236,90,12,91,12,91,236,90,236,82,236,82,236,
+  90,236,82,4,236,90,131,236,82,236,90,236,90,8,236,82,146,236,90,236,
+  82,236,82,12,91,203,82,171,74,171,74,171,82,204,90,12,91,45,99,111,
+  99,143,107,176,107,208,107,240,107,240,115,16,108,4,17,116,132,49,116,49,
+  116,17,116,17,116,3,49,116,137,50,116,49,116,49,108,17,116,17,108,17,
+  108,240,107,240,107,49,116,11,114,132,130,113,132,81,132,4,81,124,147,49,
+  116,49,116,17,116,81,124,114,132,114,132,81,132,240,123,207,115,175,107,175,
+  107,240,115,17,116,18,116,17,116,49,116,49,116,50,116,82,124,3,114,124,
+  131,115,124,114,124,114,124,3,115,124,130,147,124,115,124,3,147,124,135,115,
+  124,115,124,147,124,115,116,147,124,147,124,115,124,5,147,124,129,115,124,8,
+  147,124,129,115,124,6,147,124,129,115,124,19,147,124,131,147,132,147,124,147,
+  132,24,147,124,129,179,124,4,147,124,129,147,132,4,147,124,131,179,124,147,
+  124,148,124,4,147,124,132,179,124,147,124,147,124,179,124,3,147,124,135,147,
+  132,179,124,147,132,147,124,147,124,179,124,179,132,8,147,124,143,147,132,148,
+  132,147,132,147,124,147,132,147,124,179,124,147,124,147,132,147,124,147,124,179,
+  132,147,132,147,124,147,124,3,147,132,135,147,124,179,132,147,132,147,132,179,
+  124,147,124,147,132,3,147,124,150,147,132,147,124,147,124,147,132,147,124,147,
+  124,179,132,147,124,179,124,147,124,179,132,147,124,147,124,147,132,147,124,147,
+  124,147,132,147,132,179,132,147,124,147,124,179,124,3,147,124,134,147,132,147,
+  124,147,124,179,124,147,124,147,132,6,147,124,129,179,132,3,147,124,138,179,
+  132,179,132,179,124,147,124,179,132,147,124,147,124,179,132,147,124,147,124,3,
+  147,132,148,179,132,179,132,147,124,147,132,179,132,147,124,147,132,147,124,179,
+  132,147,132,147,124,179,132,179,124,179,124,179,132,147,132,147,124,179,132,179,
+  132,147,132,3,179,132,129,179,124,11,179,132,141,147,124,147,124,115,116,115,
+  116,50,108,17,100,209,91,209,91,112,75,173,50,105,9,167,0,167,8,3,
+  166,8,3,199,8,146,166,0,133,8,132,8,132,8,131,8,99,8,131,8,
+  132,8,165,8,199,8,200,0,200,8,199,8,166,8,134,8,133,8,132,8,
+  132,8,3,133,8,131,165,8,133,8,132,8,3,100,8,136,132,8,133,8,
+  133,8,10,58,208,123,211,164,52,181,52,173,14,52,181,141,52,173,20,181,
+  52,181,52,181,84,181,84,181,52,181,19,173,52,173,20,173,52,181,84,181,
+  52,181,5,84,181,129,85,189,5,84,181,133,85,189,84,181,52,181,84,181,
+  85,189,3,117,189,132,85,189,117,189,117,189,85,189,4,117,189,130,149,197,
+  149,197,3,117,189,139,149,197,149,197,182,197,150,197,150,197,182,197,182,197,
+  182,205,182,197,85,181,211,156,3,146,148,159,114,148,114,148,113,148,49,140,
+  49,140,81,140,113,140,81,140,113,140,113,140,146,148,178,148,179,156,179,156,
+  211,156,179,156,179,156,178,156,178,156,211,156,178,148,146,148,178,148,178,148,
+  211,156,178,156,211,156,211,156,243,164,211,156,243,164,7,211,156,130,179,156,
+  179,156,3,211,156,132,211,164,243,164,243,164,211,156,3,146,148,6,113,148,
+  131,114,148,146,148,146,148,3,178,156,146,113,148,81,148,113,148,81,132,48,
+  132,16,132,207,123,142,115,77,107,236,90,170,82,73,74,199,57,102,41,37,
+  33,228,24,195,24,162,16,9,130,16,129,130,24,6,130,16,130,162,16,162,
+  16,6,130,16,129,130,24,3,130,16,129,162,16,3,130,16,129,162,24,11,
+  130,16,134,3,133,236,90,235,90,235,90,236,90,235,90,3,236,90,137,235,
+  90,235,90,11,91,236,90,12,91,11,91,236,90,236,90,12,91,3,236,90,
+  133,12,91,12,91,236,90,12,91,236,90,3,12,91,130,236,90,236,90,16,
+  12,91,131,12,99,12,91,12,99,5,12,91,131,13,91,12,99,12,99,9,
+  12,91,134,12,99,12,99,12,91,12,91,13,91,12,99,4,12,91,129,13,
+  99,3,12,91,129,12,99,3,12,91,129,45,91,4,12,91,129,13,99,3,
+  12,91,129,44,91,5,12,91,130,45,91,13,91,23,12,91,133,236,90,12,
+  91,12,91,236,90,12,91,3,236,90,130,12,91,12,91,3,236,90,4,236,
+  82,4,236,90,130,236,82,236,82,3,236,90,4,236,82,129,203,82,3,171,
+  82,138,236,90,12,91,77,91,143,99,175,107,208,107,240,107,240,107,17,116,
+  241,115,3,17,116,133,49,116,49,116,17,116,49,116,50,116,4,49,116,143,
+  50,116,49,116,17,116,17,108,17,108,240,107,17,108,49,116,113,132,114,132,
+  114,132,81,132,49,124,49,124,81,132,5,114,132,137,113,132,114,132,81,132,
+  81,124,81,124,49,116,49,116,17,116,49,124,3,114,132,145,17,124,208,115,
+  175,107,208,107,241,107,17,116,50,116,50,116,49,116,50,116,50,116,114,116,
+  114,124,114,124,115,124,115,124,114,124,5,115,124,29,147,124,129,147,132,27,
+  147,124,129,179,124,15,147,124,129,179,124,4,147,124,130,179,124,179,124,8,
+  147,124,132,179,132,179,124,147,124,147,132,4,179,124,130,147,124,147,124,5,
+  179,124,5,147,124,129,179,124,4,147,124,157,179,124,179,124,147,124,147,124,
+  179,124,179,132,179,132,147,124,180,124,179,124,147,132,148,132,179,124,179,132,
+  179,124,147,124,147,132,147,132,147,124,179,124,179,124,147,132,179,124,147,124,
+  179,132,147,132,147,132,147,124,179,124,9,147,124,129,179,124,3,147,124,132,
+  179,124,147,124,147,124,179,124,3,147,132,149,147,124,147,132,147,124,147,132,
+  147,124,179,124,147,132,179,132,179,124,147,124,147,132,179,132,147,132,179,132,
+  147,124,179,132,147,124,147,132,179,132,147,124,179,132,3,147,124,153,179,124,
+  179,132,179,124,147,124,147,124,179,132,179,124,179,124,179,132,147,132,179,124,
+  179,132,147,124,147,132,147,124,179,132,147,124,179,132,179,132,147,132,147,132,
+  179,132,147,132,147,132,147,124,4,179,132,134,147,124,179,124,179,132,179,132,
+  147,132,147,132,15,179,132,171,147,124,147,116,114,116,82,108,18,100,209,91,
+  209,91,112,75,173,50,105,9,199,0,199,8,166,8,166,8,167,8,199,8,
+  199,8,166,8,133,8,132,8,132,8,131,8,131,8,131,16,131,8,132,8,
+  132,8,166,8,199,0,200,0,167,8,166,8,134,8,133,8,133,8,101,8,
+  133,8,165,8,166,8,165,8,165,16,132,8,100,8,4,132,8,133,133,8,
+  234,49,207,123,211,164,52,173,20,52,181,134,84,181,52,181,20,173,19,173,
+  19,173,52,181,7,84,181,4,84,189,131,84,181,84,181,84,189,4,84,181,
+  3,117,189,129,85,189,4,117,189,131,149,197,117,197,117,197,3,149,197,136,
+  117,197,117,189,149,197,150,197,150,197,182,197,149,197,150,197,3,182,197,136,
+  85,181,243,164,146,148,146,148,114,148,146,148,114,148,114,148,3,81,140,138,
+  81,148,114,148,113,140,114,148,114,148,178,148,178,156,179,156,178,156,178,156,
+  5,211,156,141,178,156,211,156,179,156,211,156,211,156,211,164,211,164,211,156,
+  243,164,211,156,179,156,178,156,179,156,7,178,156,131,179,156,211,156,211,164,
+  3,243,164,133,146,148,146,156,178,156,146,148,113,148,5,146,148,143,113,148,
+  81,140,48,140,240,131,207,123,77,107,171,90,138,82,73,66,8,58,166,49,
+  101,41,36,33,228,24,163,16,7,130,16,131,162,16,130,16,130,16,5,162,
+  16,3,130,16,131,130,24,130,16,162,16,7,130,16,131,130,24,130,16,162,
+  16,21,130,16,102,3,133,235,90,235,90,236,90,235,90,235,90,3,236,90,
+  130,235,90,235,90,8,236,90,136,12,91,236,90,12,91,12,91,236,90,12,
+  91,236,90,236,90,29,12,91,130,12,99,12,99,5,12,91,134,44,99,13,
+  99,12,99,12,91,12,91,12,99,15,12,91,129,12,99,7,12,91,131,45,
+  91,12,91,44,99,4,12,91,129,45,99,7,12,91,129,45,91,20,12,91,
+  130,236,90,12,91,8,236,90,4,236,82,4,236,90,132,236,82,236,82,236,
+  90,236,90,5,236,82,137,203,82,171,82,171,82,204,90,236,90,45,91,78,
+  99,143,99,208,107,3,240,107,4,17,116,4,49,116,130,50,116,50,116,3,
+  49,116,132,50,116,50,116,49,116,17,116,4,17,108,137,82,124,114,132,113,
+  132,16,124,174,107,77,99,175,107,16,124,81,124,4,114,132,130,113,132,114,
+  132,3,81,124,140,49,116,49,116,16,108,49,116,82,124,114,132,81,132,16,
+  124,207,115,175,107,208,107,241,107,3,50,116,137,49,116,49,116,82,124,82,
+  116,114,124,115,124,114,124,115,124,114,124,3,115,124,131,147,124,147,124,115,
+  124,59,147,124,129,147,132,7,147,124,129,179,124,4,147,124,131,179,124,147,
+  124,147,132,10,147,124,145,179,124,147,124,179,124,179,124,147,124,147,124,179,
+  124,179,124,147,124,179,132,179,124,147,124,179,124,179,124,147,124,147,124,179,
+  124,3,147,124,129,179,132,3,179,124,137,147,124,147,124,179,124,147,124,179,
+  124,179,124,179,132,147,132,179,132,3,147,132,131,179,132,180,132,179,132,3,
+  179,124,142,147,124,148,132,147,124,147,132,147,132,147,124,147,124,179,132,147,
+  124,179,124,147,124,147,132,147,124,147,132,4,147,124,130,179,124,147,132,3,
+  147,124,136,179,124,147,124,179,124,147,124,147,132,147,132,147,124,179,124,3,
+  147,132,133,147,124,147,132,147,132,147,124,147,124,3,179,132,151,147,124,147,
+  132,179,132,179,124,179,132,147,132,179,132,147,124,179,132,147,132,147,132,147,
+  124,147,124,147,132,179,132,179,132,179,124,179,132,179,132,147,124,179,124,179,
+  132,147,124,4,179,132,137,179,124,179,132,147,132,179,132,147,124,179,132,179,
+  132,147,132,179,132,3,179,124,130,147,124,179,124,3,147,124,129,179,132,3,
+  147,124,133,147,132,147,132,179,132,179,132,179,124,12,179,132,142,147,132,147,
+  124,147,124,115,116,50,108,18,100,209,91,209,83,112,75,173,50,137,9,200,
+  0,200,8,167,8,3,199,8,131,199,16,165,8,164,8,3,131,8,3,131,
+  16,138,131,8,132,16,165,8,199,8,199,0,199,8,134,8,166,8,165,8,
+  165,8,3,133,8,141,166,8,166,8,133,8,132,8,132,8,131,8,99,8,
+  132,8,132,8,133,8,201,49,175,123,179,164,6,52,181,135,19,173,20,173,
+  20,173,20,181,52,181,52,181,20,181,7,52,181,137,84,181,84,181,52,173,
+  52,173,20,173,19,173,84,181,84,181,52,181,9,84,181,131,84,189,85,189,
+  84,189,3,84,181,129,84,189,4,117,189,130,84,189,85,189,4,117,189,146,
+  117,197,117,189,149,189,149,197,149,197,117,197,149,197,149,197,182,197,182,197,
+  181,197,150,197,150,197,182,197,182,205,85,189,243,164,178,148,9,146,148,129,
+  178,156,3,178,148,3,178,156,130,210,156,178,156,7,211,156,131,243,164,243,
+  164,244,164,4,243,164,130,211,156,178,156,3,146,148,130,178,156,146,148,5,
+  178,156,3,211,156,130,211,164,211,156,3,146,148,142,81,140,207,131,207,123,
+  174,123,109,107,44,107,235,98,138,82,40,66,199,49,134,41,36,33,4,25,
+  163,24,8,130,16,132,162,16,162,24,162,16,130,16,6,162,16,3,130,16,
+  132,162,16,130,16,130,16,162,16,5,130,16,129,162,16,3,130,16,129,130,
+  24,8,130,16,131,162,16,130,16,130,24,14,130,16,144,3,142,235,90,235,
+  90,236,90,235,90,235,90,236,90,236,90,235,90,236,90,236,90,235,90,236,
+  90,236,90,235,90,4,236,90,138,12,91,12,91,236,90,12,91,12,91,236,
+  90,236,90,12,91,12,91,236,90,27,12,91,131,12,99,12,91,12,99,8,
+  12,91,129,44,91,7,12,91,129,44,99,8,12,91,130,44,99,45,91,7,
+  12,91,129,13,91,8,12,91,131,44,91,12,91,44,99,26,12,91,131,12,
+  83,236,82,12,91,4,236,90,133,236,82,236,90,236,82,236,90,236,90,4,
+  236,82,131,12,91,236,82,236,90,5,236,82,139,171,74,171,74,171,82,204,
+  90,236,90,45,91,110,99,175,107,208,107,240,107,240,107,3,17,116,130,49,
+  116,17,116,4,49,116,134,50,116,50,116,49,116,50,124,50,116,50,116,3,
+  49,116,3,17,108,138,49,116,81,124,114,132,49,132,174,107,45,91,236,74,
+  142,99,240,115,81,132,3,114,132,131,81,132,49,124,49,124,3,81,124,155,
+  49,124,17,116,240,115,17,116,82,124,114,132,113,132,16,124,207,115,175,107,
+  208,99,17,116,50,116,82,124,50,116,49,116,50,116,82,124,82,124,114,124,
+  115,124,114,124,115,124,115,124,147,124,147,124,115,124,4,147,124,129,115,124,
+  51,147,124,129,147,132,17,147,124,129,147,132,3,147,124,129,179,124,5,147,
+  124,134,179,124,179,124,147,124,147,132,147,124,179,124,3,147,124,140,179,124,
+  147,124,179,124,147,124,147,124,179,124,147,124,147,124,148,124,147,124,147,132,
+  147,132,3,147,124,138,179,124,147,124,147,124,179,124,147,124,147,124,179,124,
+  179,124,179,132,147,124,4,179,132,129,147,124,3,179,132,142,147,124,179,124,
+  179,132,147,124,179,132,179,132,148,132,147,124,147,124,179,124,179,124,147,132,
+  147,124,179,124,3,147,124,134,147,132,147,124,147,132,147,132,147,124,179,132,
+  3,147,132,132,147,124,179,124,147,124,147,124,4,179,132,137,179,124,179,124,
+  147,132,179,132,147,124,147,124,147,132,147,124,179,124,3,147,124,133,179,132,
+  147,124,147,132,179,132,147,124,4,179,132,129,147,132,5,147,124,133,147,132,
+  147,124,147,132,179,132,147,124,8,179,132,131,147,132,179,132,147,124,3,179,
+  132,141,179,124,179,132,179,132,147,132,179,132,179,124,147,124,179,132,179,132,
+  179,124,179,132,179,132,179,124,3,179,132,132,180,132,147,124,179,132,147,124,
+  10,179,132,152,180,132,179,132,147,124,147,116,114,116,82,116,18,100,241,91,
+  177,91,112,75,206,50,138,17,200,0,200,8,200,8,199,8,199,8,198,8,
+  166,16,164,16,132,16,131,8,99,8,131,8,3,131,16,132,131,8,132,8,
+  165,8,198,8,3,166,8,133,133,8,165,16,132,16,132,8,133,8,3,166,
+  8,142,165,8,132,8,99,8,99,8,132,8,132,8,133,8,101,0,136,41,
+  110,115,178,156,20,173,52,181,84,181,3,52,181,130,20,173,19,173,13,52,
+  181,134,84,181,52,181,52,181,20,181,52,181,52,181,6,84,181,129,52,181,
+  4,84,181,131,84,189,85,181,85,181,3,84,181,131,84,189,116,189,85,189,
+  3,117,189,133,85,189,85,189,117,189,117,189,117,197,5,149,197,131,117,197,
+  149,197,149,189,3,149,197,140,181,197,149,197,181,197,182,205,117,189,20,173,
+  178,148,114,148,146,148,114,148,146,148,178,148,8,146,148,130,114,148,146,148,
+  4,178,156,4,211,156,131,243,164,211,164,211,164,7,243,164,129,178,156,3,
+  146,148,130,178,156,178,156,3,211,156,145,178,156,146,148,81,148,49,140,240,
+  131,175,123,109,115,12,99,170,82,170,82,73,74,199,57,101,41,69,33,4,
+  33,195,24,162,16,6,130,16,132,162,16,130,24,130,24,130,16,3,162,16,
+  132,130,16,162,16,130,16,162,24,3,162,16,130,130,16,162,24,5,130,16,
+  132,162,16,130,16,130,16,162,16,5,130,16,132,162,16,162,24,162,24,162,
+  16,3,130,16,131,162,16,130,16,162,16,3,130,16,129,162,24,12,130,16,
+  129,162,24,4,130,16,208,3,150,235,90,236,90,236,90,235,90,236,90,236,
+  90,12,91,236,90,236,90,12,91,236,90,235,90,236,90,12,91,236,90,236,
+  90,12,91,236,90,12,91,236,90,12,91,236,90,7,12,91,131,236,90,12,
+  91,236,90,17,12,91,129,44,91,4,12,91,137,12,99,12,91,12,99,12,
+  91,12,91,12,99,12,91,12,91,12,99,11,12,91,131,12,99,12,91,44,
+  91,3,12,91,130,45,99,44,91,6,12,91,134,45,91,12,91,45,91,12,
+  91,45,91,13,91,12,12,91,129,13,91,18,12,91,135,236,90,236,90,12,
+  91,236,90,12,91,12,91,12,83,3,236,90,135,236,82,236,90,12,83,236,
+  82,236,90,235,90,236,90,4,236,82,147,236,90,236,90,12,91,236,82,236,
+  82,12,83,236,82,236,82,171,82,171,82,203,82,236,90,12,91,78,99,142,
+  99,176,107,208,107,240,107,241,107,3,17,116,5,49,116,135,82,116,50,116,
+  49,116,82,116,82,116,50,116,82,116,3,49,116,3,17,108,137,49,116,114,
+  132,114,140,49,132,207,115,110,99,78,91,175,107,16,124,3,114,132,159,113,
+  132,16,124,207,115,239,107,16,116,49,124,81,124,49,116,17,116,240,107,16,
+  116,81,124,114,132,114,132,17,124,208,107,175,107,240,107,49,116,82,116,82,
+  124,82,116,82,116,50,116,82,124,82,124,114,124,147,124,114,124,115,124,115,
+  124,68,147,124,129,179,124,5,147,124,129,147,132,6,147,124,130,179,132,180,
+  132,4,147,124,130,179,124,147,124,3,179,124,145,147,124,179,124,147,124,147,
+  124,179,124,180,132,147,124,147,132,179,124,147,124,147,132,180,132,179,124,147,
+  124,147,124,179,124,147,124,7,179,124,184,179,132,179,132,147,132,179,124,147,
+  132,180,132,147,124,147,132,179,132,147,132,180,132,147,132,179,132,147,132,180,
+  132,147,124,179,132,147,132,147,124,179,124,180,124,147,124,179,124,179,124,147,
+  124,179,124,180,124,147,132,147,132,147,124,147,124,147,132,147,124,147,124,179,
+  124,179,124,147,124,147,132,179,132,179,132,147,124,179,132,147,132,179,132,147,
+  124,147,124,179,132,147,124,147,124,179,132,147,132,147,132,147,124,147,132,179,
+  132,147,124,3,179,124,155,147,124,179,132,147,124,147,124,179,124,179,132,147,
+  124,179,132,179,124,179,132,147,124,147,124,147,132,180,132,147,132,179,132,179,
+  124,179,132,179,124,179,124,179,132,179,132,114,124,49,132,77,99,212,132,179,
+  124,6,179,132,142,147,132,179,132,179,132,147,132,147,132,179,124,147,124,147,
+  124,179,124,179,124,179,132,147,132,179,124,179,124,5,179,132,129,179,124,4,
+  179,132,129,147,124,7,179,132,147,147,132,147,124,147,116,114,116,82,108,18,
+  100,241,91,209,91,112,75,174,50,138,17,200,0,200,0,199,0,199,8,166,
+  8,165,16,165,16,164,16,4,131,8,4,131,16,131,164,16,165,8,165,8,
+  4,166,8,132,197,24,164,16,132,8,100,0,3,166,8,142,165,8,132,8,
+  99,8,100,8,132,8,132,8,100,8,101,8,104,33,77,107,146,156,20,173,
+  19,173,52,173,4,52,181,130,20,173,20,181,5,52,181,130,20,173,52,173,
+  6,52,181,129,84,181,5,52,181,5,84,181,130,52,181,52,181,3,84,181,
+  147,85,189,85,189,84,181,84,181,85,189,85,189,84,189,117,189,84,189,117,
+  189,85,189,117,189,85,189,85,189,117,189,117,189,117,197,149,197,149,189,4,
+  149,197,130,117,197,117,189,4,149,197,140,181,197,149,197,181,197,117,197,20,
+  173,178,156,146,148,146,148,114,148,146,148,178,148,178,156,5,146,148,135,178,
+  148,178,148,146,148,146,148,178,156,211,156,178,156,3,211,156,129,211,164,8,
+  243,164,149,20,165,244,164,244,164,211,156,146,148,113,148,81,140,48,140,16,
+  132,207,123,142,115,77,107,236,98,138,74,41,66,231,57,134,41,69,33,228,
+  32,195,24,163,16,7,130,16,134,162,16,130,16,162,24,162,24,162,16,130,
+  16,4,162,16,130,130,16,130,16,4,162,16,5,162,24,130,130,16,130,16,
+  4,162,16,131,162,24,130,24,162,24,6,130,16,135,162,16,162,24,162,16,
+  162,16,130,16,162,24,162,24,4,130,16,129,162,16,7,130,16,131,162,16,
+  130,16,130,16,3,162,24,135,195,24,163,24,195,24,195,32,195,32,227,32,
+  227,32,2,4,129,236,90,3,235,90,133,236,90,235,90,236,90,236,90,235,
+  90,5,236,90,141,12,91,236,90,236,90,12,91,12,99,236,90,236,90,12,
+  91,12,91,236,90,12,91,12,91,236,90,7,12,91,129,236,90,19,12,91,
+  132,12,99,12,91,12,91,44,99,4,12,91,134,12,99,13,99,12,91,12,
+  91,13,99,45,99,6,12,91,130,44,99,45,99,3,12,91,129,13,91,3,
+  12,91,135,44,99,13,99,45,91,12,91,44,99,44,99,12,99,3,12,91,
+  135,13,91,12,91,44,91,12,91,12,91,45,91,45,91,4,12,91,129,12,
+  99,18,12,91,129,236,82,3,12,91,133,236,82,12,91,12,91,236,90,12,
+  91,5,236,90,155,12,83,236,82,236,82,236,90,12,91,236,82,236,82,236,
+  90,236,82,236,90,236,90,236,82,236,82,12,91,236,90,236,90,236,82,171,
+  74,171,74,203,82,236,90,12,91,78,99,143,99,208,107,240,115,240,107,3,
+  17,116,4,49,116,134,50,116,82,116,50,116,50,116,82,116,82,124,3,82,
+  116,3,49,116,164,17,116,17,108,49,116,81,124,114,132,114,140,81,132,48,
+  124,240,115,240,115,49,124,81,132,113,132,81,132,81,132,48,124,207,115,110,
+  99,175,107,240,115,49,124,81,124,49,116,17,116,240,107,240,107,81,124,114,
+  132,114,132,49,124,208,115,208,107,241,107,49,116,82,116,82,116,3,50,116,
+  133,82,124,114,124,114,124,146,124,114,124,4,115,124,5,147,124,3,115,124,
+  49,147,124,129,147,132,6,147,124,129,179,132,4,147,124,133,147,132,179,124,
+  147,124,147,124,179,124,4,147,124,197,179,124,179,124,147,124,147,124,179,124,
+  147,124,179,124,147,124,179,124,179,124,147,124,147,124,179,124,147,124,179,132,
+  179,124,147,124,180,132,147,124,179,132,179,124,147,124,180,132,147,124,179,132,
+  147,124,147,132,179,124,147,124,147,124,179,132,148,132,147,124,179,124,147,124,
+  147,124,179,132,147,132,179,132,179,124,180,132,147,124,179,124,179,124,179,132,
+  147,132,148,132,179,132,179,124,147,124,179,132,179,132,180,132,147,124,179,124,
+  179,132,147,124,147,132,179,132,147,124,179,132,179,132,179,124,179,132,147,124,
+  147,132,147,124,179,132,179,132,5,179,124,129,147,132,4,179,124,143,147,124,
+  147,124,179,132,147,124,179,132,147,132,147,132,179,132,147,124,179,132,179,132,
+  147,132,147,124,179,124,179,124,3,179,132,137,147,124,179,124,147,124,179,132,
+  179,124,147,132,147,124,179,132,179,124,3,179,132,129,147,132,6,179,132,133,
+  147,124,49,124,77,107,45,99,114,132,5,179,132,129,147,132,5,179,132,129,
+  179,124,4,179,132,139,179,124,179,132,179,132,179,124,179,132,179,132,179,124,
+  179,132,179,132,179,124,179,124,12,179,132,144,147,132,147,124,115,124,115,116,
+  82,108,18,100,241,91,177,83,144,83,206,50,138,17,200,0,200,8,200,8,
+  198,8,165,16,3,164,16,139,131,8,131,16,131,16,131,8,132,8,132,16,
+  131,16,132,16,164,16,165,8,133,8,3,166,8,151,198,16,197,24,196,24,
+  164,16,132,8,133,8,166,8,165,8,165,8,132,8,132,8,100,8,100,8,
+  132,8,132,8,133,8,72,33,13,99,146,148,20,173,243,172,20,173,52,173,
+  3,52,181,130,52,173,20,173,5,52,181,136,20,173,20,173,52,181,52,181,
+  19,173,20,173,20,173,19,181,7,52,181,3,84,181,139,52,181,84,181,52,
+  181,52,181,84,181,84,181,84,189,85,189,84,181,84,189,84,181,3,84,189,
+  138,117,189,84,189,85,189,117,189,117,189,84,189,84,189,85,189,117,189,117,
+  189,8,149,197,137,182,197,182,197,149,197,149,197,181,197,182,197,149,197,52,
+  173,211,156,5,146,148,134,179,156,178,148,146,148,178,148,146,148,178,148,3,
+  178,156,130,178,148,179,156,4,211,156,7,243,164,145,178,156,178,156,146,148,
+  81,140,16,140,207,123,77,107,203,90,138,82,41,74,231,57,199,57,101,41,
+  4,33,227,24,195,24,162,16,11,130,16,137,162,16,162,16,130,16,131,24,
+  162,16,162,24,130,16,130,24,162,24,3,162,16,148,130,16,162,16,162,24,
+  162,16,162,16,130,16,130,16,162,24,162,24,130,16,130,16,162,16,162,16,
+  130,16,162,16,162,16,130,16,162,16,130,24,162,16,3,162,24,134,130,16,
+  130,16,162,16,130,16,162,24,162,24,12,130,16,137,130,24,162,24,162,24,
+  163,24,163,24,195,32,195,24,227,32,227,32,3,228,32,134,227,32,228,32,
+  227,32,227,32,195,32,195,24,51,4,132,235,90,236,90,235,90,235,90,3,
+  236,90,137,12,91,235,90,236,90,235,90,12,91,236,90,12,91,236,90,236,
+  90,3,12,91,140,236,90,12,91,12,91,236,90,12,91,236,90,12,91,12,
+  91,236,90,12,91,12,91,12,99,18,12,91,129,44,91,5,12,91,132,12,
+  99,12,91,12,91,12,99,3,12,91,3,12,99,131,12,91,12,91,13,99,
+  7,12,91,131,45,91,12,91,45,99,5,12,91,132,44,99,12,91,44,91,
+  44,99,5,12,91,129,45,91,3,12,91,133,45,91,12,91,44,91,12,91,
+  44,99,4,12,91,129,44,91,3,12,91,131,45,91,12,91,12,99,15,12,
+  91,132,236,90,12,91,12,91,236,90,4,12,91,140,236,90,236,90,236,82,
+  236,82,236,90,236,82,236,90,236,90,236,82,236,90,12,83,236,82,3,12,
+  91,3,236,90,139,203,82,203,82,171,82,203,82,236,90,45,91,78,99,143,
+  99,208,107,240,115,241,107,3,17,116,135,49,116,49,116,50,124,50,116,82,
+  116,50,116,50,116,3,82,116,176,82,124,82,124,82,116,82,116,49,116,50,
+  116,49,116,17,108,49,116,81,124,82,132,114,140,49,132,16,124,240,123,239,
+  123,207,115,174,115,142,107,109,107,142,107,110,107,12,99,77,99,174,107,240,
+  115,49,124,81,124,49,116,241,115,240,107,208,107,49,116,114,132,114,132,49,
+  124,208,115,208,107,17,116,50,116,82,124,114,124,50,116,50,116,82,116,82,
+  124,114,124,114,124,6,115,124,11,147,124,129,147,132,32,147,124,129,147,116,
+  11,147,124,129,179,124,3,147,124,129,179,132,3,147,124,134,179,124,179,124,
+  147,124,179,124,147,124,147,132,4,147,124,137,179,124,179,124,147,124,179,124,
+  179,124,147,124,179,124,147,124,147,124,3,179,124,152,147,124,147,124,179,124,
+  147,132,179,124,179,124,147,124,147,132,179,124,147,124,179,132,179,132,147,132,
+  147,124,179,124,147,124,179,124,179,132,147,124,147,124,179,124,179,124,147,124,
+  179,132,3,179,124,142,147,132,147,132,179,132,179,124,180,132,147,124,179,124,
+  179,124,179,132,179,124,179,132,147,132,147,124,179,124,3,179,132,134,180,132,
+  179,124,179,124,147,124,148,132,147,132,3,179,132,3,147,124,149,179,132,179,
+  132,147,124,147,124,179,132,147,124,179,124,179,124,147,124,147,124,147,132,179,
+  124,179,124,179,132,179,124,147,132,147,124,147,124,179,132,179,132,147,124,3,
+  179,132,133,147,124,147,124,179,132,147,132,147,124,3,179,124,4,179,132,153,
+  179,124,179,132,179,132,147,132,147,132,179,132,148,132,179,132,179,124,179,132,
+  179,132,147,132,179,124,179,132,179,132,180,132,147,124,17,116,45,99,45,107,
+  240,115,212,132,179,124,179,132,179,124,4,179,132,131,147,124,179,132,179,124,
+  5,179,132,129,147,132,3,179,132,131,147,132,179,132,179,124,4,179,132,129,
+  179,124,11,179,132,147,147,132,147,124,147,124,115,116,82,108,18,100,209,91,
+  177,83,144,83,206,58,170,17,199,0,200,8,199,8,198,8,165,16,132,8,
+  164,16,164,16,3,163,16,158,131,16,131,16,163,16,163,16,164,16,164,8,
+  165,8,133,8,134,8,166,8,166,16,198,16,197,24,165,16,132,16,132,8,
+  133,8,166,8,166,8,165,8,133,8,132,8,99,8,132,8,100,8,132,8,
+  101,8,39,25,13,99,113,148,3,20,173,133,20,181,52,181,52,181,52,173,
+  20,173,6,52,181,129,19,173,3,52,181,137,19,173,243,172,19,173,19,173,
+  52,181,84,181,84,181,52,181,84,181,3,52,181,132,84,181,84,181,52,181,
+  52,181,3,84,181,131,84,189,85,189,85,181,5,84,189,131,52,181,84,189,
+  84,189,3,117,189,3,85,189,129,117,189,3,117,197,132,149,197,117,189,149,
+  189,149,189,3,149,197,129,150,197,3,149,197,138,182,205,182,197,52,181,211,
+  156,146,148,146,148,114,148,146,148,146,148,211,156,3,178,156,129,179,156,4,
+  211,156,130,211,164,243,164,3,211,156,145,178,156,146,148,113,148,81,140,16,
+  132,207,123,142,115,45,107,235,98,170,82,73,74,231,57,134,49,69,41,4,
+  33,195,24,162,16,5,130,16,136,130,24,130,24,130,16,162,16,162,16,130,
+  16,162,16,130,24,4,162,16,131,162,24,130,24,162,24,3,130,16,139,162,
+  16,162,16,162,24,130,24,162,24,162,16,162,16,130,16,162,16,162,16,162,
+  24,3,162,16,5,162,24,133,162,16,130,16,162,16,162,16,162,24,4,162,
+  16,131,130,16,130,16,162,24,3,130,16,129,163,16,4,130,16,3,162,16,
+  133,162,24,163,24,163,24,195,24,195,24,4,227,32,129,228,32,4,227,32,
+  139,195,24,195,24,163,24,162,16,130,16,130,16,98,16,65,8,65,8,33,
+  8,32,8,242,3,136,235,90,236,90,12,91,236,90,236,90,235,90,236,90,
+  12,91,3,236,90,139,12,91,12,91,236,90,12,91,236,90,12,91,236,90,
+  236,90,12,91,236,90,236,90,3,12,91,129,236,90,3,12,91,129,236,90,
+  10,12,91,129,12,99,5,12,91,129,13,91,6,12,91,134,44,99,12,91,
+  12,99,44,99,12,99,44,99,3,12,91,136,13,99,12,91,12,91,12,99,
+  12,99,12,91,12,91,44,99,6,12,91,130,45,91,45,91,6,12,91,146,
+  45,91,13,91,12,91,44,99,12,91,44,99,12,91,45,91,12,91,45,91,
+  45,99,12,91,12,91,45,91,12,91,12,91,44,99,45,99,16,12,91,129,
+  44,91,7,12,91,131,236,90,236,90,12,91,3,236,90,133,12,91,236,90,
+  236,82,12,83,12,83,4,236,90,133,12,91,236,82,12,91,236,90,236,90,
+  3,236,82,142,12,91,236,90,12,91,236,90,203,82,171,74,171,82,203,82,
+  236,90,45,91,110,99,175,107,240,107,240,107,3,17,116,132,49,116,49,116,
+  50,124,50,116,3,82,116,3,82,124,131,82,116,82,124,82,124,3,82,116,
+  164,49,116,16,108,240,107,207,107,207,115,174,115,142,107,109,107,77,99,12,
+  91,235,90,171,82,138,74,73,66,73,66,73,58,138,74,171,82,77,99,207,
+  115,16,124,81,124,81,124,49,124,240,115,208,107,208,107,17,116,114,132,114,
+  132,81,132,240,115,240,115,49,116,82,124,114,124,4,82,116,134,82,124,114,
+  124,115,124,115,124,147,124,115,124,42,147,124,129,179,124,22,147,124,129,179,
+  124,3,147,124,131,179,124,147,124,147,124,4,179,124,132,147,124,179,124,179,
+  124,180,124,3,147,124,132,179,124,180,132,147,124,179,132,6,179,124,147,147,
+  124,179,124,147,124,179,124,180,132,179,124,147,124,179,132,179,124,147,124,179,
+  124,147,124,179,124,179,132,147,124,179,124,147,124,179,124,147,124,4,179,124,
+  129,147,132,5,179,124,130,147,132,148,132,3,179,132,132,180,132,179,132,179,
+  124,180,132,3,179,132,129,179,124,4,179,132,129,180,132,4,179,132,142,147,
+  124,147,124,179,132,179,124,179,132,147,124,179,132,180,132,147,124,179,124,179,
+  132,179,132,179,124,147,124,5,179,132,132,147,132,148,132,147,124,147,124,3,
+  179,132,131,179,124,147,124,147,132,3,179,132,134,147,124,147,132,179,124,179,
+  124,179,132,179,124,3,179,132,131,179,124,179,132,179,124,7,179,132,136,179,
+  124,180,132,115,124,82,124,45,99,77,107,77,107,211,132,13,179,132,139,147,
+  124,179,124,179,132,179,132,147,132,179,132,179,124,179,124,179,132,179,124,179,
+  124,3,179,132,129,179,124,10,179,132,144,147,132,147,124,147,124,115,116,82,
+  116,18,100,241,91,177,83,144,83,238,58,202,25,199,0,199,8,199,8,198,
+  8,165,16,3,164,16,142,163,16,131,16,131,16,99,8,98,8,98,8,99,
+  16,100,8,132,8,230,24,72,33,234,49,174,74,43,66,3,197,16,149,164,
+  16,132,8,133,8,166,8,166,8,165,8,132,8,100,8,99,8,132,8,132,
+  8,133,8,133,8,231,24,237,98,81,148,20,173,20,173,52,181,52,173,52,
+  181,3,20,173,5,52,181,138,20,173,52,181,20,173,52,181,20,173,20,173,
+  19,173,19,173,20,173,84,181,6,52,181,131,84,181,52,181,84,181,3,52,
+  181,129,84,189,3,84,181,129,85,189,3,84,181,129,84,189,4,84,181,129,
+  85,189,3,117,189,134,85,189,117,189,117,189,117,197,117,197,117,189,6,149,
+  197,137,150,197,149,197,117,189,150,197,149,197,182,205,182,197,85,181,243,156,
+  5,146,148,6,211,156,146,178,156,146,148,113,148,81,140,16,132,207,123,142,
+  115,77,107,236,98,170,82,73,74,8,66,166,49,69,41,4,33,227,24,163,
+  16,162,16,7,130,16,131,162,16,130,16,162,16,3,162,24,130,162,16,130,
+  16,5,162,16,141,130,16,162,16,130,16,162,16,162,16,162,24,162,24,130,
+  16,163,16,163,16,162,16,162,24,162,24,4,162,16,130,162,24,162,24,3,
+  162,16,131,162,24,162,24,162,16,4,162,24,134,163,24,163,16,162,16,130,
+  16,162,16,162,24,3,162,16,130,162,24,162,24,3,162,16,131,162,24,162,
+  24,163,24,4,195,24,3,227,32,3,228,32,139,227,32,195,32,195,24,194,
+  24,163,24,162,24,130,16,98,16,97,16,65,8,65,8,3,33,8,135,32,
+  8,32,16,32,8,33,16,32,16,32,16,65,24,252,3,3,235,90,3,236,
+  90,135,235,90,236,90,236,90,12,91,235,90,236,90,235,90,3,236,90,130,
+  12,91,235,90,4,12,91,131,236,90,12,91,236,90,20,12,91,129,12,99,
+  7,12,91,136,44,99,12,99,12,91,12,91,12,99,12,91,12,91,44,99,
+  3,12,91,134,44,99,12,91,12,91,13,99,44,99,44,99,8,12,91,129,
+  44,99,4,12,91,144,44,91,12,91,44,91,45,91,45,91,12,91,12,91,
+  13,91,12,99,12,91,44,91,12,91,44,99,13,99,12,91,44,99,7,12,
+  91,129,45,91,25,12,91,130,236,82,236,90,3,236,82,135,12,91,236,90,
+  12,91,236,90,236,90,12,91,236,82,4,236,90,143,12,83,236,82,12,91,
+  12,91,236,82,203,82,171,82,171,82,236,90,12,91,78,99,143,99,207,107,
+  240,107,241,107,3,17,116,181,49,116,49,116,50,116,82,116,82,124,82,116,
+  82,116,82,124,82,116,114,124,82,124,82,124,114,124,82,116,82,116,240,107,
+  143,99,78,91,236,82,235,82,203,82,170,82,138,74,8,58,231,49,134,41,
+  101,33,4,25,227,16,195,16,163,8,195,8,69,33,73,66,13,91,207,115,
+  81,132,81,132,49,124,49,124,240,107,208,107,175,99,16,116,81,132,114,140,
+  81,132,16,116,17,116,50,116,82,124,114,124,82,124,4,82,116,130,114,124,
+  114,124,3,115,124,130,147,124,115,124,42,147,124,129,147,132,10,147,124,135,
+  179,124,147,124,179,124,147,124,179,132,147,124,179,124,4,147,124,147,179,124,
+  147,124,147,124,179,124,179,124,147,124,179,124,147,132,179,124,147,124,147,124,
+  179,124,147,124,147,124,179,132,179,124,147,124,179,124,147,124,6,179,124,129,
+  180,124,3,147,124,145,179,124,179,132,147,132,179,124,179,124,179,132,179,124,
+  147,124,179,124,179,124,179,132,179,132,147,124,147,124,179,124,147,124,179,124,
+  9,179,132,141,179,124,180,124,179,132,179,132,147,124,180,124,180,132,147,132,
+  179,124,179,132,179,132,180,132,179,124,7,179,132,130,147,132,179,124,7,179,
+  132,133,147,132,179,132,179,132,180,132,179,132,3,179,124,132,147,132,179,132,
+  179,132,179,124,3,179,132,131,147,124,179,132,179,124,4,179,132,3,179,124,
+  133,147,124,179,124,179,132,179,132,179,124,4,179,132,149,179,124,179,124,179,
+  132,147,124,179,132,179,124,180,124,179,132,147,132,179,132,179,124,179,124,179,
+  132,147,132,17,116,110,107,77,107,171,90,179,132,179,124,147,124,7,179,132,
+  129,179,124,8,179,132,134,179,124,179,124,179,132,179,132,147,124,179,124,4,
+  179,132,129,179,124,10,179,132,165,147,124,147,124,115,116,82,116,50,108,209,
+  91,208,83,144,83,238,58,202,17,199,0,166,8,199,8,166,8,132,8,100,
+  8,100,8,100,16,132,16,197,24,39,41,9,58,172,74,79,99,241,115,212,
+  140,86,149,183,165,248,173,24,174,56,182,212,140,165,16,197,16,197,16,164,
+  16,132,8,4,166,8,131,132,8,132,8,100,8,3,132,8,140,133,8,230,
+  16,172,90,81,148,20,173,20,173,52,181,52,181,52,173,20,173,52,173,20,
+  181,5,20,173,131,20,181,52,181,20,181,5,20,173,133,20,181,84,181,52,
+  181,52,181,84,181,3,52,181,134,84,181,52,181,84,181,84,181,52,181,52,
+  181,3,84,181,131,52,181,52,181,84,181,3,84,189,3,84,181,133,84,189,
+  85,189,84,189,117,189,85,189,4,117,189,130,149,197,117,189,6,149,197,157,
+  182,197,182,205,149,197,149,197,181,197,182,205,214,205,117,189,20,165,178,156,
+  146,148,114,148,113,148,81,140,81,140,48,140,16,132,207,123,142,115,77,107,
+  236,98,170,82,105,74,8,58,198,49,101,41,36,33,227,24,195,16,7,130,
+  16,132,162,16,130,16,162,16,162,24,4,162,16,129,130,16,3,162,16,137,
+  130,16,162,24,162,24,130,16,162,16,130,16,162,24,162,16,163,16,3,162,
+  16,132,130,16,162,16,162,16,162,24,3,162,16,3,162,24,129,130,16,3,
+  162,24,135,130,16,162,24,162,24,162,16,162,16,130,16,130,16,4,162,24,
+  133,130,16,130,16,162,16,130,16,162,24,4,162,16,135,163,16,163,24,163,
+  24,195,24,195,32,227,32,195,32,4,227,32,158,228,32,227,32,227,32,195,
+  24,194,24,162,24,162,24,130,16,98,16,98,16,65,8,65,8,64,8,33,
+  8,33,8,32,8,32,16,32,8,32,16,32,16,64,24,65,24,65,24,96,
+  32,97,40,129,40,130,40,130,40,162,48,162,48,247,3,129,236,90,3,235,
+  90,3,236,90,129,235,90,3,236,90,138,235,90,12,91,12,91,236,90,12,
+  91,236,90,12,91,12,91,236,90,236,90,15,12,91,129,12,99,11,12,91,
+  129,12,99,5,12,91,134,12,99,12,91,12,91,12,99,12,91,45,99,3,
+  12,91,134,45,99,12,91,44,91,12,91,44,99,44,99,5,12,91,137,45,
+  99,12,91,44,91,12,91,44,99,44,99,12,91,45,99,13,91,3,12,91,
+  131,44,91,13,91,44,91,3,12,91,143,45,99,45,91,12,91,44,99,13,
+  99,12,91,44,91,45,91,12,91,12,91,45,91,45,99,12,91,13,91,12,
+  99,8,12,91,131,45,91,12,91,13,91,9,12,91,138,236,90,12,91,236,
+  90,12,91,236,82,12,91,236,90,236,90,236,82,236,82,7,236,90,130,236,
+  82,236,82,6,12,91,146,236,82,203,82,171,82,203,82,236,90,13,91,78,
+  99,143,107,208,107,240,115,17,108,17,116,49,116,49,116,49,124,50,124,50,
+  116,82,116,3,82,124,131,114,124,82,116,114,124,3,82,124,139,50,116,175,
+  107,45,91,171,66,73,58,199,41,166,41,69,33,4,25,227,16,163,16,5,
+  130,8,138,98,8,130,8,130,8,195,16,167,41,236,82,142,107,239,115,239,
+  115,207,107,3,175,107,138,175,99,240,115,81,124,114,132,82,132,17,124,17,
+  116,50,116,114,124,114,124,4,82,116,131,82,124,114,124,114,124,3,115,124,
+  54,147,124,158,179,124,147,132,147,124,147,124,179,124,147,124,179,124,147,132,
+  147,124,147,124,179,124,147,132,147,124,179,124,179,124,147,124,147,124,179,124,
+  179,132,147,132,179,124,147,124,179,124,179,124,147,124,179,124,179,124,147,124,
+  179,124,147,124,4,179,124,135,147,124,179,124,179,124,179,132,179,124,179,124,
+  179,132,4,179,124,130,147,124,179,132,4,179,124,129,147,132,3,179,124,3,
+  179,132,138,180,132,179,132,179,124,179,124,179,132,179,132,147,132,179,132,179,
+  124,179,124,3,179,132,130,180,132,180,132,6,179,132,132,180,132,180,124,179,
+  132,179,132,3,179,124,134,179,132,147,132,179,124,179,124,179,132,179,132,6,
+  179,124,138,179,132,179,124,180,132,179,132,180,124,179,124,179,132,179,132,179,
+  124,180,124,3,179,132,130,147,124,179,124,4,179,132,136,147,124,179,124,179,
+  132,179,124,179,124,179,132,179,132,180,132,4,179,132,135,180,132,179,132,179,
+  124,179,124,179,132,179,132,179,124,7,179,132,139,147,132,175,107,236,90,109,
+  107,44,107,49,124,179,132,179,124,179,132,179,132,147,124,4,179,132,132,179,
+  124,179,132,179,124,179,124,9,179,132,129,179,124,16,179,132,172,147,124,147,
+  124,115,116,82,116,18,100,241,91,209,83,144,83,14,67,235,33,198,0,134,
+  0,101,0,40,33,108,66,47,91,18,116,181,140,86,157,216,165,248,173,24,
+  174,56,174,24,174,24,174,182,173,215,165,150,165,150,165,85,157,117,165,20,
+  149,165,16,197,16,197,24,165,16,132,8,133,8,166,8,166,8,165,8,165,
+  8,100,8,100,8,3,132,8,143,133,8,198,8,139,82,49,148,244,172,20,
+  173,20,173,52,173,52,181,20,173,20,173,52,181,20,173,52,181,52,173,6,
+  20,173,129,19,173,3,20,173,8,52,181,131,84,181,84,181,52,181,4,84,
+  181,142,52,181,84,181,84,181,52,181,84,189,85,181,84,181,84,189,84,189,
+  84,181,84,181,84,189,117,189,85,189,4,117,189,133,149,189,117,189,117,189,
+  149,189,117,197,4,149,197,132,150,197,182,197,182,205,182,205,3,149,197,144,
+  117,197,19,173,81,148,207,123,110,115,44,107,203,90,138,82,105,74,40,66,
+  199,57,134,49,37,41,4,33,195,24,162,24,7,130,16,130,162,16,130,16,
+  3,162,16,129,163,16,4,162,16,3,162,24,4,162,16,150,162,24,130,16,
+  162,24,162,16,162,24,162,16,162,24,162,16,162,16,162,24,130,16,162,16,
+  130,16,162,16,162,16,130,16,162,16,162,24,162,16,162,24,162,24,162,16,
+  5,162,24,129,130,16,3,162,24,136,162,16,162,16,162,24,162,24,162,16,
+  162,16,162,24,162,24,3,163,24,3,195,24,130,227,32,195,24,3,227,32,
+  146,228,32,228,32,227,32,227,32,195,24,163,24,162,24,162,24,130,16,97,
+  16,97,16,97,8,65,8,64,8,65,8,33,8,32,8,32,8,3,32,16,
+  137,64,24,64,24,97,32,97,32,129,40,129,40,161,48,162,56,162,56,4,
+  194,56,129,226,56,4,194,56,254,3,3,235,90,4,236,90,142,12,91,236,
+  90,236,90,12,91,236,90,236,90,12,91,236,90,12,91,12,91,236,90,12,
+  91,236,90,236,90,13,12,91,130,12,99,12,99,9,12,91,129,44,99,5,
+  12,91,136,12,99,12,91,12,99,12,99,12,91,12,91,12,99,44,99,3,
+  12,91,129,45,99,3,12,91,129,44,99,9,12,91,129,12,99,4,12,91,
+  139,44,91,12,91,12,91,44,99,44,99,44,91,12,91,45,99,12,91,12,
+  91,44,99,4,12,91,137,44,91,12,91,45,99,13,91,45,91,45,91,12,
+  91,12,91,45,91,3,12,91,129,44,99,16,12,91,129,236,90,4,12,91,
+  144,236,90,12,83,12,91,236,82,12,91,236,82,12,91,236,90,236,90,236,
+  82,12,91,12,91,236,82,236,90,12,91,236,82,3,12,91,144,236,82,12,
+  91,236,82,204,82,171,82,171,82,203,82,236,90,13,91,110,99,175,107,208,
+  107,17,116,17,116,49,116,49,116,3,50,116,4,82,116,144,82,124,114,124,
+  114,124,82,124,82,124,114,124,82,116,175,107,12,83,41,58,69,25,195,16,
+  163,16,131,16,130,8,130,8,3,130,16,130,130,8,130,8,3,130,16,157,
+  130,8,130,8,163,16,4,25,8,58,106,74,235,90,236,90,235,90,12,83,
+  45,91,143,99,143,99,208,107,49,124,114,132,81,132,49,124,49,116,82,116,
+  115,124,115,116,114,124,82,124,50,116,82,116,82,124,114,124,114,124,3,115,
+  124,41,147,124,132,147,132,147,124,147,124,179,124,7,147,124,136,147,132,147,
+  132,147,124,179,124,179,132,179,132,147,124,179,124,3,147,124,152,148,132,147,
+  132,179,124,179,124,180,124,179,124,179,124,147,124,147,124,179,132,179,132,179,
+  124,147,124,147,124,179,124,179,124,147,124,179,124,179,132,147,132,147,124,179,
+  124,179,124,147,124,12,179,124,134,147,124,179,132,179,124,179,124,147,124,180,
+  124,4,179,124,130,179,132,179,132,4,179,124,130,180,124,180,124,5,179,132,
+  171,180,132,147,124,148,132,179,132,179,132,180,132,179,132,180,132,179,132,179,
+  132,179,124,179,132,179,124,179,124,180,132,180,132,179,124,179,124,179,132,179,
+  124,179,124,179,132,179,132,179,124,179,132,179,132,179,124,179,124,180,132,180,
+  132,179,124,179,124,179,132,179,132,180,132,180,124,179,132,179,132,179,124,179,
+  132,179,132,179,124,179,124,5,179,132,142,179,124,179,132,179,132,179,124,179,
+  132,179,124,179,132,180,132,180,124,179,132,179,132,147,124,179,132,148,132,9,
+  179,132,129,179,124,3,179,132,135,146,124,49,116,50,124,77,107,44,107,175,
+  115,212,132,4,179,132,133,180,132,179,124,179,132,179,132,180,132,8,179,132,
+  129,180,132,10,179,132,129,180,132,4,179,132,129,180,132,4,179,132,149,147,
+  132,147,132,147,124,82,116,50,108,241,91,177,83,177,75,15,59,11,34,102,
+  0,170,41,212,140,248,173,24,174,24,174,247,173,182,165,247,173,150,165,118,
+  165,3,150,165,136,243,148,85,157,244,148,178,140,48,124,174,115,77,99,106,
+  74,3,197,16,131,165,16,133,8,133,8,3,166,8,131,165,8,132,8,99,
+  8,4,132,8,132,165,8,107,82,16,140,243,164,3,19,173,143,52,181,20,
+  181,20,173,20,173,52,173,52,181,52,173,19,173,52,173,20,181,20,173,19,
+  173,20,173,19,173,20,173,7,52,181,134,20,181,52,181,19,173,52,181,84,
+  181,84,181,3,52,181,131,84,181,84,181,52,181,3,84,181,166,84,189,84,
+  181,84,189,85,189,84,181,85,189,117,189,117,189,85,189,117,189,85,189,85,
+  189,117,189,149,189,149,189,149,197,149,197,117,197,149,197,117,197,117,197,84,
+  189,52,189,19,181,242,172,177,164,80,156,16,140,206,131,141,115,11,107,72,
+  74,166,49,69,33,4,33,227,24,162,16,162,16,7,130,16,132,162,24,130,
+  16,130,24,162,24,10,162,16,132,163,24,162,24,162,16,162,16,5,162,24,
+  129,130,16,5,162,24,131,130,16,162,24,162,24,5,162,16,140,162,24,162,
+  24,162,16,162,16,130,16,162,24,162,16,162,24,162,16,162,24,130,16,130,
+  16,4,162,16,3,162,24,3,163,24,129,195,24,3,195,32,131,227,32,227,
+  32,228,32,3,227,32,3,195,24,137,162,24,162,16,130,16,98,16,98,16,
+  97,8,65,8,65,8,33,8,3,32,8,140,32,16,32,16,64,16,64,24,
+  65,24,97,32,97,32,129,40,129,40,161,48,162,48,162,48,3,194,56,130,
+  194,64,226,56,7,226,64,5,194,56,9,4,129,235,90,3,236,90,129,12,
+  91,4,236,90,130,12,91,12,91,3,236,90,131,12,91,236,90,236,90,5,
+  12,91,129,236,90,22,12,91,133,12,99,12,91,12,91,12,99,12,99,4,
+  12,91,136,44,99,44,99,12,91,12,91,12,99,12,91,45,99,13,99,3,
+  12,91,131,45,99,12,99,45,99,3,12,91,135,44,91,12,91,44,91,44,
+  99,12,91,12,91,44,91,4,12,91,129,13,99,4,12,91,136,45,91,44,
+  91,44,99,44,91,44,99,44,91,12,99,44,91,4,12,91,139,44,99,12,
+  91,12,91,44,91,13,91,12,91,45,99,44,91,13,91,12,91,44,91,6,
+  12,91,129,44,91,3,12,91,129,12,99,4,12,91,129,236,90,3,12,91,
+  138,236,90,236,90,236,82,236,90,12,83,12,91,236,82,236,82,12,83,236,
+  90,3,236,82,130,12,91,236,90,3,12,91,130,12,83,236,82,3,12,91,
+  141,203,82,203,82,171,82,204,82,12,91,45,91,110,99,175,107,240,115,17,
+  116,17,116,49,116,50,124,3,50,116,3,82,116,129,82,124,6,114,124,137,
+  240,107,45,91,41,58,228,16,130,16,163,16,163,16,130,16,162,16,3,130,
+  16,133,162,16,162,16,130,16,163,16,163,16,3,130,16,145,162,16,162,16,
+  228,24,101,33,134,41,134,41,102,33,231,49,171,74,45,91,143,99,207,107,
+  49,124,114,132,114,132,81,124,82,116,3,114,124,140,82,124,82,124,82,116,
+  82,116,82,124,114,124,115,124,147,124,147,124,115,124,147,124,115,124,10,147,
+  124,129,147,132,23,147,124,129,147,132,4,147,124,129,147,132,7,147,124,129,
+  179,124,3,147,124,136,179,132,147,132,179,124,179,132,179,132,179,124,147,124,
+  179,124,3,147,124,151,179,124,179,124,147,124,147,124,179,124,179,124,147,124,
+  179,124,147,124,147,124,179,124,179,124,147,124,147,124,179,132,179,132,179,124,
+  179,132,179,124,147,124,179,132,179,124,147,124,6,179,124,131,179,132,179,132,
+  147,124,3,179,124,138,147,124,179,124,179,132,179,124,179,124,147,132,179,132,
+  179,124,180,124,180,124,5,179,124,129,180,124,8,179,124,134,180,124,180,124,
+  179,132,179,132,180,132,179,124,3,179,132,129,180,132,3,179,132,134,180,132,
+  179,132,179,124,179,132,179,124,179,124,3,179,132,131,179,124,179,132,180,132,
+  3,179,132,140,179,124,179,124,179,132,179,124,179,124,179,132,179,124,180,132,
+  179,132,180,132,179,132,179,132,3,179,124,132,179,132,179,124,179,132,180,132,
+  5,179,132,130,180,132,180,132,3,179,132,129,180,132,12,179,132,135,147,132,
+  179,132,179,132,180,132,146,124,49,124,82,132,3,77,107,129,212,132,5,179,
+  132,129,180,132,6,179,132,134,179,124,179,132,179,124,179,132,180,132,147,132,
+  10,179,132,129,179,124,9,179,132,155,147,132,147,124,115,116,82,116,50,108,
+  241,91,209,83,177,83,47,67,170,25,48,91,24,174,85,157,52,157,150,165,
+  117,157,85,157,20,149,52,149,81,132,81,132,207,115,109,107,12,91,138,74,
+  137,74,105,66,3,73,66,136,105,66,41,58,165,8,198,16,197,16,165,16,
+  132,8,133,8,3,166,8,131,133,8,132,8,100,8,3,132,8,147,101,8,
+  165,8,74,74,16,140,211,164,20,173,20,173,19,173,52,181,52,181,20,181,
+  20,173,20,173,20,181,52,181,20,173,20,173,52,181,20,173,3,19,173,129,
+  19,181,7,52,181,134,243,172,20,173,19,173,52,181,84,181,84,181,3,52,
+  181,130,84,181,85,189,3,84,181,135,84,189,117,189,85,189,117,189,117,189,
+  85,189,85,189,6,117,189,147,149,197,117,189,84,189,51,181,210,172,177,164,
+  112,156,47,148,238,131,141,123,44,107,235,98,137,82,40,66,166,49,69,41,
+  227,32,194,16,162,16,6,130,16,131,162,16,162,16,162,24,7,162,16,129,
+  162,24,5,162,16,129,130,16,4,162,16,3,162,24,132,162,16,162,16,130,
+  16,162,16,6,162,24,133,162,16,162,24,162,16,162,24,162,24,6,162,16,
+  130,130,16,162,24,5,162,16,134,162,24,130,16,162,24,162,24,162,16,163,
+  24,5,195,24,129,195,32,5,227,32,157,195,32,195,24,162,24,162,24,130,
+  24,130,16,98,16,98,8,97,16,65,8,64,8,32,8,32,8,33,8,32,
+  8,32,16,32,16,64,16,65,16,96,24,97,32,97,32,129,32,161,40,162,
+  48,162,56,162,56,194,56,194,56,7,226,64,132,226,56,226,64,226,64,194,
+  64,3,226,64,137,226,56,226,64,2,65,35,73,35,73,100,81,132,81,165,
+  89,198,89,224,3,131,236,90,236,90,235,90,6,236,90,133,12,91,236,90,
+  12,91,236,90,236,90,20,12,91,129,12,99,6,12,91,131,12,99,12,91,
+  12,99,5,12,91,132,44,99,13,99,12,91,44,99,4,12,91,131,44,99,
+  12,91,44,99,4,12,91,131,44,99,12,91,45,99,3,12,91,141,44,91,
+  44,91,12,91,45,99,45,99,12,91,12,91,13,91,12,91,12,91,45,99,
+  44,91,45,99,3,12,91,134,45,91,12,91,44,91,12,91,12,91,44,91,
+  3,12,91,136,45,91,12,91,12,91,45,99,12,91,45,91,12,91,44,91,
+  4,12,91,132,44,91,12,91,12,91,44,91,20,12,91,135,236,90,12,91,
+  12,91,236,90,12,91,236,82,12,91,4,236,82,3,236,90,130,12,91,236,
+  82,3,12,91,145,12,83,236,82,203,82,171,82,171,82,236,90,12,91,77,
+  91,143,107,208,107,241,115,17,116,17,116,49,116,50,124,82,116,82,116,3,
+  82,124,7,114,124,146,82,116,143,99,171,74,36,25,162,16,195,16,163,16,
+  163,16,162,16,162,16,130,16,130,16,162,16,163,16,163,16,130,16,163,16,
+  163,16,3,130,16,130,130,8,98,8,3,130,8,144,130,16,130,8,228,24,
+  199,49,138,74,236,90,77,99,239,115,81,132,114,132,82,132,82,124,114,124,
+  115,124,115,124,82,124,4,82,116,134,114,124,114,124,115,124,147,124,115,124,
+  115,124,4,147,124,129,147,116,33,147,124,135,147,132,147,124,179,124,147,124,
+  179,124,147,124,179,124,5,147,124,139,179,124,147,124,179,132,147,132,147,132,
+  147,124,179,132,179,124,179,132,179,132,179,124,4,147,124,139,179,124,179,124,
+  147,124,179,124,179,124,147,124,179,124,179,124,180,124,179,124,179,132,3,179,
+  124,130,147,124,147,124,5,179,124,144,180,132,179,132,179,124,180,124,179,124,
+  179,132,179,124,179,132,179,132,179,124,179,132,179,124,179,132,179,124,179,132,
+  179,132,4,179,124,129,180,124,3,179,124,129,180,124,6,179,124,141,180,132,
+  180,124,179,124,179,124,179,132,180,132,179,124,179,124,179,132,179,124,179,132,
+  180,132,179,124,7,179,132,135,180,132,179,132,179,132,180,132,179,132,179,132,
+  179,124,3,179,132,132,179,124,180,132,179,132,179,132,3,179,124,3,179,132,
+  129,180,132,3,179,132,133,180,124,179,132,147,132,180,132,179,124,8,179,132,
+  129,180,132,3,179,132,133,180,132,179,132,180,132,179,132,180,132,7,179,132,
+  129,179,124,4,179,132,137,180,132,147,124,81,124,207,115,109,107,109,107,12,
+  99,179,132,179,124,3,179,132,129,180,132,3,179,132,130,179,124,179,124,6,
+  179,132,129,147,132,20,179,132,147,147,132,147,132,147,124,115,116,82,116,50,
+  100,241,91,209,91,177,83,238,66,112,83,248,173,85,149,146,132,77,99,44,
+  99,235,90,170,82,137,74,6,73,66,6,105,66,136,106,66,74,66,198,16,
+  197,16,197,16,165,16,132,8,133,8,3,166,8,131,165,8,132,8,99,8,
+  4,132,8,135,133,8,10,58,240,131,179,164,20,173,20,173,19,173,3,20,
+  173,139,52,173,52,181,20,181,19,173,19,173,20,173,20,173,52,181,20,173,
+  19,173,19,173,4,52,181,136,20,173,52,181,52,181,84,181,19,173,20,173,
+  20,173,52,181,3,84,181,132,52,181,84,181,84,181,84,189,3,84,181,3,
+  84,189,130,85,189,84,189,3,85,189,144,117,189,117,189,116,189,117,189,117,
+  189,19,181,113,156,239,139,76,115,202,90,72,74,231,57,133,49,36,33,227,
+  24,162,24,7,130,16,9,162,16,3,162,24,3,162,16,130,162,24,162,24,
+  10,162,16,133,130,16,162,24,162,24,162,16,130,16,4,162,16,130,162,24,
+  162,16,3,162,24,132,162,16,130,16,162,24,162,24,4,162,16,129,162,24,
+  4,162,16,3,163,24,151,195,24,163,24,195,24,195,24,227,32,227,24,195,
+  32,227,32,195,32,195,24,195,32,195,24,195,24,163,24,162,24,130,16,130,
+  16,98,16,97,16,97,16,65,8,65,8,33,8,4,32,8,138,32,16,64,
+  24,64,24,96,24,97,32,98,32,129,32,129,40,129,40,161,48,3,162,48,
+  134,194,48,226,56,194,56,226,56,227,56,227,64,4,226,64,129,194,64,3,
+  226,64,141,226,56,3,65,2,65,35,73,68,73,100,81,165,89,229,89,6,
+  98,39,106,104,106,72,106,136,106,3,201,114,1,201,122,206,3,135,236,90,
+  235,90,236,90,235,90,12,91,11,91,12,91,7,236,90,131,12,91,12,91,
+  236,90,17,12,91,129,12,99,6,12,91,129,12,99,5,12,91,129,44,99,
+  3,12,91,129,44,99,5,12,91,137,44,99,44,99,12,91,44,99,12,99,
+  12,91,12,99,12,91,13,91,6,12,91,129,45,99,6,12,91,142,45,99,
+  45,91,12,91,44,99,12,91,12,91,45,91,12,91,44,91,12,91,12,91,
+  44,91,12,91,12,91,3,44,99,130,12,91,45,91,3,12,91,129,44,91,
+  3,12,91,131,44,91,44,91,45,91,4,12,91,129,13,91,19,12,91,137,
+  236,90,12,91,12,91,236,82,236,82,12,83,12,91,12,91,236,90,3,12,
+  91,155,236,90,12,91,236,90,12,91,236,82,12,91,12,91,236,82,203,82,
+  171,82,171,82,236,90,13,91,110,99,174,99,240,107,17,108,17,116,50,116,
+  49,116,50,116,49,116,50,116,82,124,82,116,114,124,82,116,6,114,124,140,
+  49,116,77,91,41,50,195,16,163,16,195,16,163,16,163,16,162,16,163,16,
+  162,16,162,16,3,163,16,3,162,16,130,130,16,130,16,5,98,8,141,130,
+  16,130,8,130,16,130,8,4,25,166,41,40,58,138,66,45,99,239,115,49,
+  132,81,132,82,124,4,114,124,4,82,116,131,114,124,114,124,147,124,3,115,
+  124,41,147,124,166,179,124,147,124,147,124,179,124,147,124,179,124,179,124,147,
+  124,179,124,179,124,147,124,147,124,147,132,179,132,179,132,179,124,147,124,147,
+  124,179,124,147,132,179,132,147,124,147,124,179,132,179,132,147,124,179,124,147,
+  124,179,124,179,124,147,124,180,124,179,124,180,124,179,124,179,124,147,124,147,
+  124,3,179,124,129,147,132,3,179,124,137,180,132,179,124,179,124,180,132,180,
+  132,179,132,180,132,179,132,179,132,10,179,124,133,180,124,179,124,180,132,179,
+  124,179,132,5,179,124,136,179,132,179,124,180,132,179,124,179,132,179,124,180,
+  132,180,124,4,180,132,129,179,132,5,180,132,133,179,132,179,132,180,132,179,
+  132,180,132,5,179,132,129,179,124,4,179,132,132,179,124,179,132,179,124,179,
+  124,4,180,132,138,179,124,180,132,179,124,180,132,179,132,179,124,179,132,179,
+  132,179,124,147,132,5,179,132,130,179,124,180,132,4,179,132,130,180,132,179,
+  124,7,179,132,129,179,124,9,179,132,136,147,124,114,132,240,123,109,107,77,
+  107,45,107,17,116,180,132,4,179,132,129,179,124,4,179,132,129,179,124,14,
+  179,132,132,179,124,180,132,179,132,180,132,6,179,132,145,180,132,179,132,147,
+  124,179,124,147,124,114,124,82,116,50,108,241,99,209,91,177,83,238,66,183,
+  165,20,149,20,149,8,66,231,57,3,73,66,163,105,66,105,74,105,66,73,
+  66,105,74,106,74,105,66,138,74,105,66,105,66,106,66,106,66,105,74,138,
+  74,106,66,198,16,198,16,197,16,165,16,132,8,133,8,166,8,166,8,198,
+  8,165,8,132,8,99,8,131,8,132,8,132,8,133,8,133,8,201,57,208,
+  131,211,164,3,20,173,135,52,173,52,181,20,173,52,181,52,181,20,173,19,
+  173,3,20,173,13,52,181,131,52,173,52,181,52,181,10,84,181,134,85,189,
+  85,189,84,189,85,189,85,189,84,189,5,117,189,134,84,189,113,164,141,123,
+  72,74,69,41,195,24,7,130,16,134,162,16,162,16,130,16,130,16,162,16,
+  130,16,4,162,16,144,130,16,162,16,162,24,162,16,130,16,162,16,130,16,
+  162,16,162,16,162,24,162,16,162,16,162,24,162,24,162,16,130,16,6,162,
+  16,129,162,24,4,162,16,136,162,24,162,16,162,24,162,16,130,24,162,16,
+  162,16,130,16,6,162,16,129,162,24,3,163,24,130,162,24,162,24,7,195,
+  24,131,195,32,195,24,195,24,3,163,24,135,162,24,130,16,98,16,98,16,
+  97,16,97,8,65,8,3,64,8,141,32,8,32,16,33,16,64,16,64,16,
+  65,24,65,24,97,32,97,32,97,40,129,40,161,48,161,48,3,162,48,132,
+  194,48,194,56,194,56,194,48,3,194,56,4,194,48,145,225,56,226,56,226,
+  64,226,64,2,65,35,73,68,73,99,73,165,81,165,89,230,97,38,98,71,
+  106,136,114,169,114,201,114,201,122,3,233,122,136,10,123,10,123,168,114,103,
+  98,234,114,201,114,233,114,201,114,10,4,130,235,90,235,90,3,236,90,129,
+  12,91,4,236,90,130,12,91,236,90,7,12,91,129,236,90,15,12,91,129,
+  12,99,3,12,91,137,12,99,12,91,12,91,12,99,44,91,12,91,13,91,
+  12,91,12,99,3,12,91,138,44,99,12,91,12,91,44,99,44,99,12,91,
+  12,91,44,99,12,91,44,99,3,12,91,142,45,91,12,91,12,91,44,99,
+  44,99,44,91,12,91,45,91,12,91,12,91,44,99,13,99,12,91,44,91,
+  4,12,91,150,12,99,13,99,12,91,12,91,45,91,12,91,44,99,45,99,
+  12,91,45,91,12,99,44,99,44,99,12,91,45,91,44,91,44,91,13,91,
+  12,91,44,99,44,91,45,91,4,12,91,131,13,91,12,91,13,91,7,12,
+  91,129,44,91,8,12,91,129,236,90,6,12,91,130,236,90,12,91,3,12,
+  83,131,236,82,12,91,236,90,3,12,91,152,12,83,12,83,12,91,12,83,
+  12,91,12,91,204,82,203,82,203,82,203,90,236,90,45,91,110,99,175,99,
+  240,107,17,116,49,116,50,116,49,116,82,116,82,116,82,124,82,116,82,124,
+  8,114,124,132,240,107,236,82,167,41,130,16,5,163,16,3,130,16,136,162,
+  16,163,16,162,16,163,16,162,16,163,16,162,16,130,16,3,97,8,130,98,
+  16,97,8,4,98,8,147,130,8,163,16,228,24,101,33,73,58,12,91,142,
+  107,240,115,82,124,114,124,146,124,114,124,114,124,82,116,50,116,82,116,82,
+  124,114,124,114,124,3,115,124,34,147,124,130,179,124,179,124,3,147,124,153,
+  147,132,147,124,147,124,179,124,147,132,179,132,147,124,147,124,179,124,179,132,
+  179,124,179,132,179,132,147,124,179,124,179,132,179,132,179,124,179,132,179,132,
+  179,124,179,124,179,132,179,124,147,132,14,179,124,133,147,124,179,124,179,124,
+  179,132,179,132,3,179,124,129,147,124,3,179,124,129,180,132,9,179,124,132,
+  179,132,179,124,179,124,180,124,7,179,124,137,179,132,179,132,180,132,180,132,
+  180,124,180,132,179,132,179,124,179,124,3,179,132,138,180,132,180,132,180,124,
+  180,124,180,132,179,132,179,124,180,124,180,132,179,132,3,180,132,148,179,132,
+  179,124,180,132,179,132,180,132,179,132,179,132,180,132,180,132,179,124,179,132,
+  179,124,179,132,179,132,180,132,179,132,180,132,179,132,180,132,179,124,3,179,
+  132,130,180,132,180,132,3,179,132,140,179,124,147,124,179,132,179,132,179,124,
+  180,124,180,132,180,132,179,132,180,132,179,132,179,124,6,179,132,129,179,124,
+  4,179,132,131,179,124,179,132,180,132,3,179,132,129,180,132,3,179,132,136,
+  147,124,208,107,208,115,109,107,77,107,77,107,207,115,212,132,23,179,132,129,
+  180,132,4,179,132,131,180,132,179,132,180,132,6,179,132,149,147,124,147,124,
+  147,116,82,116,50,108,241,91,209,83,176,83,144,91,215,173,52,149,244,140,
+  199,49,167,49,231,57,41,66,41,66,73,66,106,74,73,66,105,74,7,105,
+  66,129,73,66,3,106,66,138,198,16,166,16,197,16,165,16,132,8,133,8,
+  166,8,166,8,198,8,165,8,4,132,8,134,133,8,133,8,133,0,169,49,
+  175,123,211,164,3,20,173,133,52,173,52,181,52,181,20,173,52,181,3,20,
+  173,133,19,173,20,173,52,181,52,181,20,181,9,52,181,129,84,181,4,52,
+  181,4,84,181,147,85,181,84,181,84,181,84,189,84,189,84,181,84,189,84,
+  181,84,181,85,189,84,189,85,189,85,189,117,189,117,189,84,189,113,156,235,
+  98,36,33,3,130,16,130,162,16,162,16,3,130,16,140,162,24,130,16,130,
+  24,162,16,130,16,162,16,130,16,162,16,130,16,162,24,162,16,130,16,7,
+  162,16,130,162,24,162,24,3,162,16,131,163,16,162,16,162,24,4,162,16,
+  132,130,16,162,16,130,16,162,24,5,162,16,140,130,16,162,16,162,24,162,
+  16,162,24,162,16,163,24,162,16,162,24,162,24,163,24,163,24,7,195,24,
+  133,194,24,195,24,163,24,163,24,162,24,3,130,16,133,97,16,97,16,65,
+  8,65,8,64,16,3,64,8,3,64,16,140,64,24,96,32,97,32,97,32,
+  129,32,161,40,161,48,193,48,193,56,193,56,194,56,194,48,3,194,56,157,
+  193,56,194,56,194,56,194,48,194,56,194,48,193,48,194,56,194,56,194,48,
+  194,56,226,56,3,65,35,65,67,73,100,73,165,81,230,89,6,98,39,106,
+  104,106,169,114,169,114,201,122,233,122,234,122,10,123,10,123,234,122,3,10,
+  123,137,9,123,234,122,10,123,10,123,233,114,234,122,233,114,39,98,234,106,
+  3,233,114,241,3,131,235,90,235,90,12,99,8,236,90,133,12,91,12,91,
+  236,90,12,91,236,90,3,12,91,129,12,99,10,12,91,133,12,99,12,91,
+  12,91,12,99,44,99,4,12,91,130,12,99,12,99,10,12,91,175,12,99,
+  12,91,12,91,44,99,12,91,44,99,12,91,12,99,44,99,44,91,44,99,
+  44,99,12,99,12,99,12,91,12,91,44,91,45,99,12,91,44,91,45,99,
+  44,91,12,91,44,91,45,99,45,99,13,91,45,91,12,91,12,99,44,99,
+  12,91,44,99,12,91,44,99,45,99,44,91,44,91,12,91,12,99,44,99,
+  45,91,45,99,12,91,45,91,45,91,44,91,3,12,91,138,44,91,44,91,
+  45,91,12,91,13,91,44,91,12,91,44,91,12,91,45,91,17,12,91,129,
+  12,83,7,12,91,152,12,83,12,91,236,90,236,90,12,91,236,90,12,91,
+  236,90,12,91,236,82,12,83,12,91,12,91,13,91,12,91,203,82,204,82,
+  171,82,235,90,12,91,45,91,110,99,208,107,17,108,3,49,116,132,82,116,
+  82,116,82,124,82,124,10,114,124,132,175,99,171,74,69,25,162,16,3,163,
+  16,146,162,16,163,16,130,16,162,16,130,16,162,16,162,16,163,16,162,16,
+  163,16,163,16,130,16,130,16,98,8,97,8,65,8,97,8,97,8,4,98,
+  8,148,163,16,228,16,227,16,195,16,4,25,232,49,171,82,77,99,240,107,
+  82,124,147,124,115,124,82,124,82,124,50,116,82,116,82,124,114,124,146,124,
+  115,124,35,147,124,131,179,132,147,124,179,124,5,147,124,129,179,132,4,147,
+  124,140,179,124,179,132,147,132,179,124,179,124,179,132,179,124,179,124,147,124,
+  179,132,179,124,179,132,3,179,124,131,147,132,147,124,147,124,4,179,124,129,
+  147,124,13,179,124,133,179,132,180,132,179,124,179,132,179,132,6,179,124,129,
+  180,124,4,179,124,130,180,132,180,132,3,179,124,130,180,124,180,124,4,179,
+  124,138,180,132,179,124,180,132,180,132,179,132,179,132,179,124,179,124,179,132,
+  179,132,3,180,132,132,179,132,179,132,179,124,179,132,5,180,132,134,179,132,
+  180,132,180,124,180,132,180,132,179,132,3,180,132,136,179,132,180,132,179,132,
+  180,132,179,124,180,132,180,132,179,124,4,179,132,132,179,124,180,132,179,132,
+  179,132,4,180,132,140,180,124,180,132,179,132,179,124,179,132,179,132,179,124,
+  179,124,179,132,179,124,147,124,180,132,3,179,132,129,180,132,3,179,132,131,
+  179,124,180,124,180,132,3,179,132,133,179,124,179,132,179,132,180,132,180,132,
+  6,179,132,142,180,132,179,124,49,116,49,124,109,107,109,107,77,107,240,123,
+  212,132,179,132,179,132,180,132,180,132,179,124,4,179,132,129,180,132,3,179,
+  132,129,180,132,3,179,132,129,180,132,7,179,132,129,180,132,5,179,132,129,
+  180,132,5,179,132,146,147,132,147,132,115,124,114,116,50,108,241,99,209,83,
+  176,75,177,99,215,165,52,149,85,157,199,57,167,49,199,49,231,57,8,58,
+  40,66,4,73,66,7,105,66,154,106,66,105,66,138,66,231,16,166,8,166,
+  16,165,16,132,8,133,8,133,8,166,8,166,8,133,8,132,8,132,8,100,
+  8,132,8,132,8,133,8,133,8,136,41,142,115,146,156,20,181,52,173,19,
+  173,3,52,181,135,52,173,52,173,52,181,20,173,20,173,19,173,19,173,12,
+  52,181,129,84,181,4,52,181,7,84,181,3,84,189,4,84,181,3,84,189,
+  138,85,189,117,189,211,172,76,107,227,24,130,16,162,16,162,16,130,16,162,
+  24,3,162,16,130,130,16,162,16,3,130,16,129,162,16,3,130,16,134,162,
+  16,130,16,162,24,130,16,162,24,130,16,4,162,16,141,162,24,162,24,162,
+  16,162,16,162,24,162,16,162,24,162,16,130,16,130,16,162,24,162,24,130,
+  24,3,162,24,137,162,16,162,16,130,16,162,16,163,24,162,16,162,24,163,
+  24,163,24,9,195,24,136,163,24,163,24,162,24,130,24,130,16,130,16,98,
+  16,97,8,3,65,8,4,64,8,151,64,16,65,16,64,16,65,24,65,24,
+  97,32,97,32,129,32,129,40,161,48,194,56,226,64,2,65,2,73,35,73,
+  35,73,67,73,99,81,131,89,131,89,66,81,226,64,226,56,6,194,56,143,
+  226,56,3,65,35,65,100,73,133,73,197,89,230,89,6,98,71,98,136,106,
+  169,114,169,114,202,122,234,122,234,122,14,10,123,3,234,122,134,233,122,233,
+  122,234,122,10,123,71,106,169,98,3,233,114,201,3,4,236,90,129,12,91,
+  5,236,90,131,12,91,12,91,236,90,5,12,91,129,236,90,4,12,91,129,
+  236,90,8,12,91,131,12,99,12,91,12,99,6,12,91,129,12,99,3,12,
+  91,131,44,99,12,91,12,99,3,12,91,135,44,99,12,99,12,91,44,99,
+  12,91,45,99,44,99,6,12,91,133,44,91,44,99,12,99,12,99,44,99,
+  3,12,91,160,44,91,12,91,45,99,44,99,12,91,12,99,45,91,12,91,
+  12,91,44,99,12,91,12,91,44,99,45,91,12,91,12,91,44,91,44,99,
+  12,91,12,91,45,91,12,91,44,91,13,91,44,91,45,91,12,91,12,91,
+  44,99,12,91,13,91,45,91,7,12,91,129,45,91,21,12,91,137,236,90,
+  12,91,12,91,12,83,12,91,12,91,236,90,12,91,12,83,5,12,91,3,
+  12,83,143,12,91,203,82,171,74,203,82,236,90,12,91,77,99,143,107,208,
+  107,17,116,17,116,49,116,49,116,82,116,82,116,3,82,124,5,114,124,135,
+  146,124,114,124,114,124,82,124,110,99,105,66,228,16,4,163,16,130,130,16,
+  162,16,3,130,16,7,162,16,130,130,16,98,16,4,65,8,3,98,8,152,
+  162,8,102,33,200,49,8,50,167,41,4,25,195,16,102,33,106,66,77,91,
+  240,107,82,124,115,124,114,124,82,116,50,116,50,116,82,116,82,124,115,124,
+  115,124,147,124,147,124,115,124,34,147,124,132,179,124,147,124,147,124,179,132,
+  3,147,124,136,179,124,179,124,179,132,179,132,179,124,147,124,147,124,179,124,
+  3,179,132,4,179,124,138,179,132,179,132,179,124,179,132,147,124,179,132,179,
+  132,147,124,180,132,179,132,6,179,124,129,180,124,5,179,124,130,179,132,179,
+  132,3,179,124,129,179,132,5,179,124,138,180,132,179,124,179,124,180,132,180,
+  132,179,132,179,132,180,124,180,132,179,132,5,179,124,133,180,124,179,132,179,
+  124,180,124,180,124,4,180,132,129,179,132,7,180,132,134,179,132,180,132,180,
+  124,180,132,179,132,180,124,6,180,132,134,179,132,180,132,180,132,179,132,180,
+  132,180,132,3,179,132,139,180,132,180,124,180,132,179,132,179,132,180,132,180,
+  132,179,132,180,132,179,132,179,132,3,180,132,144,179,132,180,132,180,132,179,
+  124,180,132,179,132,180,132,180,132,179,124,179,132,179,132,180,132,180,132,179,
+  124,179,132,179,132,4,180,132,134,179,132,180,132,179,124,180,124,179,132,179,
+  132,3,180,132,10,179,132,147,180,132,147,124,118,157,175,115,109,107,110,107,
+  77,107,109,107,212,132,179,132,179,132,180,132,180,132,179,124,179,132,179,132,
+  180,132,179,132,180,132,28,179,132,148,147,124,147,124,83,116,50,108,241,91,
+  209,91,177,75,177,99,215,165,52,149,85,157,231,57,166,49,199,49,231,57,
+  232,57,8,58,40,58,40,58,41,66,5,73,66,3,105,66,138,73,66,105,
+  66,137,66,7,17,166,8,198,16,165,16,132,8,132,8,133,8,3,165,8,
+  5,132,8,147,133,8,133,0,104,33,110,115,146,156,20,173,19,173,20,173,
+  52,181,20,173,52,181,52,173,52,173,52,181,20,173,20,173,52,181,20,173,
+  52,173,17,52,181,7,84,181,130,85,189,84,189,3,84,181,137,84,189,85,
+  189,84,189,85,189,84,189,84,189,113,148,199,57,130,16,4,162,16,144,130,
+  16,162,24,130,16,162,16,130,24,162,16,130,16,162,16,162,16,130,16,162,
+  16,162,16,130,16,162,16,162,16,130,16,3,162,24,3,162,16,132,130,16,
+  162,16,162,16,130,16,9,162,16,3,162,24,148,195,24,163,24,163,24,195,
+  24,195,24,163,24,195,24,163,24,163,24,195,24,195,24,163,24,162,24,162,
+  24,130,24,130,16,130,16,98,16,98,16,97,8,3,65,8,140,64,8,64,
+  8,65,8,65,16,65,16,96,24,128,32,129,32,129,40,161,40,162,48,194,
+  48,3,194,56,135,193,56,193,56,194,56,194,56,226,64,34,73,131,89,3,
+  163,89,146,164,97,196,97,163,89,163,81,164,81,228,89,163,89,34,73,35,
+  73,67,73,100,81,165,81,230,89,6,98,71,106,104,114,136,114,168,114,3,
+  169,114,133,10,123,10,131,169,114,234,114,43,123,18,10,123,140,234,114,234,
+  122,234,122,233,122,233,114,233,114,234,122,136,114,103,98,234,114,233,114,201,
+  114,11,4,131,236,90,236,90,12,91,5,236,90,4,12,91,132,236,90,236,
+  90,12,91,236,90,16,12,91,129,12,99,3,12,91,129,12,99,5,12,91,
+  129,12,99,3,12,91,176,12,99,12,91,44,91,12,91,12,99,12,91,12,
+  91,45,99,12,91,12,91,44,99,44,99,12,91,12,91,44,99,12,91,12,
+  91,44,99,44,91,44,91,13,99,45,91,44,91,12,91,44,91,44,99,12,
+  91,12,99,12,91,12,99,44,99,44,99,12,91,12,91,12,99,12,91,44,
+  91,44,91,12,91,12,91,45,99,44,99,44,91,45,91,12,91,44,99,12,
+  99,12,91,3,44,91,134,45,91,44,91,44,91,12,91,12,91,45,91,4,
+  12,91,131,44,91,12,91,44,91,4,12,91,130,44,91,45,91,12,12,91,
+  129,12,83,9,12,91,132,236,90,12,91,236,82,12,83,7,12,91,142,13,
+  91,236,82,204,82,203,82,203,82,236,90,45,91,78,99,143,107,240,107,17,
+  108,49,116,50,116,82,116,3,82,124,130,114,124,82,124,5,114,124,137,146,
+  124,115,124,147,124,49,116,45,91,232,49,163,8,162,16,163,16,3,162,16,
+  4,130,16,5,162,16,3,130,16,130,98,8,97,8,3,65,8,154,97,8,
+  130,8,195,16,134,33,106,58,171,74,236,90,171,74,41,58,69,33,195,16,
+  37,25,73,66,45,83,208,107,49,116,82,124,82,116,50,116,50,116,82,124,
+  114,124,115,124,115,124,147,124,146,124,19,147,124,129,179,124,5,147,124,129,
+  179,132,5,147,124,130,179,124,179,124,4,147,124,3,179,124,142,147,124,147,
+  124,179,124,179,124,147,124,147,124,179,132,147,124,179,124,179,124,179,132,147,
+  132,179,132,147,124,4,179,124,134,179,132,179,132,179,124,179,124,179,132,147,
+  124,6,179,124,133,180,132,179,124,180,124,180,124,179,124,3,179,132,3,179,
+  124,129,179,132,13,179,124,131,179,132,179,132,180,124,6,179,124,134,179,132,
+  179,124,179,124,180,132,180,132,179,124,4,180,132,135,179,124,180,124,180,124,
+  180,132,180,132,179,132,180,132,3,179,132,131,180,132,180,124,179,124,4,180,
+  132,148,179,132,179,124,180,132,179,132,180,132,180,132,180,124,180,132,180,132,
+  179,124,180,132,180,132,179,124,180,132,180,132,179,132,179,132,180,132,180,132,
+  179,132,4,180,132,129,179,132,7,180,132,132,179,132,180,132,179,132,179,132,
+  4,180,124,3,179,132,133,180,132,179,124,180,132,179,132,180,132,3,179,132,
+  132,180,132,179,132,180,132,179,132,4,180,132,5,179,132,139,179,124,180,132,
+  147,124,211,132,13,91,110,115,142,115,77,107,45,107,147,132,212,132,26,179,
+  132,131,180,132,179,132,180,132,7,179,132,155,147,132,147,124,114,124,115,116,
+  50,108,242,99,209,91,177,83,177,91,215,165,20,149,53,157,8,58,134,41,
+  199,49,199,49,232,57,232,57,8,58,8,58,40,58,40,66,41,66,73,66,
+  41,66,73,66,106,66,4,105,66,136,138,66,8,17,167,8,198,16,165,16,
+  132,8,132,8,133,8,3,166,8,131,133,8,132,8,100,8,3,132,8,139,
+  133,0,39,33,13,107,114,148,20,173,19,173,20,173,20,173,52,173,20,173,
+  52,173,3,20,173,138,19,173,52,181,20,181,52,181,52,181,52,173,20,181,
+  52,181,52,173,19,173,12,52,181,3,84,181,155,52,181,84,181,84,181,85,
+  189,84,189,84,189,84,181,84,181,84,189,85,189,84,181,84,189,84,181,52,
+  181,16,140,4,33,162,16,130,16,162,16,162,24,130,16,162,16,162,16,130,
+  16,162,16,130,24,162,16,4,130,16,140,162,16,130,16,162,16,162,16,130,
+  16,162,16,162,16,162,24,130,16,130,24,162,24,162,24,7,162,16,5,163,
+  24,132,195,24,163,24,195,24,195,24,4,163,24,130,162,24,130,24,3,130,
+  16,197,98,16,98,16,97,8,65,8,65,8,65,16,65,8,65,8,65,16,
+  64,16,65,16,97,24,97,24,129,32,162,40,193,40,194,48,226,56,3,65,
+  3,65,35,73,67,73,35,73,35,73,35,65,3,57,3,57,35,73,3,73,
+  226,64,193,56,194,56,194,56,226,64,35,73,196,89,228,97,164,89,196,89,
+  5,98,70,106,70,106,38,98,70,98,136,106,168,114,136,114,168,114,168,114,
+  169,122,169,122,168,122,168,122,135,122,102,114,38,106,5,106,196,97,164,89,
+  99,73,136,98,42,123,201,114,136,98,11,123,10,123,42,123,10,123,42,123,
+  5,10,123,129,11,123,7,10,123,141,234,122,234,122,10,123,10,123,234,122,
+  234,122,233,122,234,122,233,122,39,98,234,106,234,114,234,114,40,4,133,236,
+  90,236,90,12,91,236,90,236,90,3,12,91,130,236,90,236,90,14,12,91,
+  129,12,99,7,12,91,129,12,99,8,12,91,135,12,99,12,91,12,91,44,
+  99,12,91,12,91,44,99,3,12,91,139,45,99,12,91,12,99,44,99,44,
+  99,12,91,45,99,12,91,12,99,12,91,44,99,3,12,91,162,44,91,45,
+  99,12,91,44,99,12,91,44,99,44,91,44,91,45,91,44,91,44,99,44,
+  91,12,91,45,91,12,91,45,91,12,91,12,91,45,91,44,91,44,99,12,
+  99,13,91,44,91,44,91,12,91,12,91,44,91,44,91,12,91,44,91,12,
+  91,12,91,44,91,3,44,99,141,45,91,12,91,45,91,44,91,44,91,12,
+  91,45,91,12,91,45,91,12,91,12,91,45,91,45,91,12,12,91,129,12,
+  83,3,12,91,139,236,90,236,90,236,82,12,91,12,91,12,83,12,83,12,
+  91,12,91,12,83,12,83,6,12,91,144,13,91,12,91,236,82,203,82,171,
+  82,203,82,236,90,45,91,110,99,175,99,240,107,17,116,49,116,50,116,82,
+  116,82,124,4,114,124,129,115,124,3,114,124,136,146,124,114,124,147,124,146,
+  124,208,107,236,82,134,33,131,16,5,162,16,5,130,16,130,162,16,162,16,
+  5,130,16,129,98,8,4,97,8,150,130,8,69,33,232,49,171,66,45,83,
+  110,99,143,107,78,99,203,82,8,58,36,25,163,16,37,25,73,50,45,83,
+  176,107,49,116,81,116,50,116,82,116,82,116,114,124,3,115,124,130,147,124,
+  146,124,24,147,124,129,179,124,3,147,124,131,179,132,147,124,147,124,3,179,
+  124,135,147,124,179,124,179,132,147,124,179,124,147,124,147,124,4,179,124,136,
+  179,132,179,124,147,124,179,132,179,124,179,124,179,132,179,124,3,179,132,134,
+  179,124,179,124,179,132,179,124,147,124,147,132,9,179,124,131,180,124,180,124,
+  179,124,3,179,132,149,179,124,180,132,179,124,180,132,179,124,180,124,180,124,
+  179,132,179,124,180,132,180,132,180,124,179,124,179,124,180,124,180,124,179,132,
+  180,132,179,132,180,124,180,124,3,180,132,133,179,124,180,132,180,132,179,124,
+  179,132,3,179,124,3,180,132,131,180,124,179,132,180,124,6,180,132,129,179,
+  132,8,180,132,129,179,132,4,180,132,130,179,132,180,124,4,180,132,140,180,
+  124,180,132,180,132,179,132,180,124,180,132,180,132,179,132,179,132,180,132,180,
+  124,180,124,4,180,132,130,180,124,179,132,6,180,132,130,179,124,180,132,3,
+  179,132,129,179,124,6,179,132,133,180,132,180,132,179,132,179,132,179,124,4,
+  180,132,131,179,132,179,132,179,124,3,180,132,141,179,132,180,132,179,132,179,
+  124,147,124,179,140,110,107,110,115,109,107,77,107,77,107,16,124,212,132,11,
+  179,132,131,180,132,179,132,180,132,13,179,132,131,180,132,179,132,180,132,7,
+  179,132,147,147,124,147,124,114,116,50,108,18,100,209,91,177,83,144,91,215,
+  165,20,149,19,149,40,58,134,41,199,49,199,49,231,49,199,49,231,57,232,
+  57,3,8,58,130,40,58,41,66,5,73,66,143,105,66,106,66,40,25,199,
+  8,198,16,197,16,132,8,132,8,165,8,166,8,198,8,166,8,133,8,132,
+  8,100,8,3,132,8,146,133,0,7,25,204,90,81,148,243,172,19,173,20,
+  173,20,173,19,173,20,173,19,173,52,173,20,173,19,173,52,181,52,173,20,
+  173,20,181,5,52,181,130,52,173,20,173,6,52,181,129,84,181,5,52,181,
+  137,84,181,52,181,84,181,52,181,84,181,84,181,85,189,84,189,84,189,3,
+  85,189,146,84,189,84,181,84,189,85,189,16,140,228,24,162,16,162,24,162,
+  16,162,16,162,24,130,16,130,16,162,16,162,16,130,16,130,16,162,16,4,
+  130,16,133,162,16,162,16,130,16,130,16,162,16,4,162,24,3,163,24,141,
+  195,24,195,24,163,24,195,24,163,24,163,24,195,24,163,24,162,24,194,24,
+  162,24,162,24,130,24,3,130,16,131,98,16,97,16,97,16,4,65,8,143,
+  64,8,65,16,64,16,64,16,97,24,97,24,129,32,129,40,161,40,194,48,
+  226,56,227,56,2,65,34,65,67,65,4,67,73,175,99,73,67,73,100,73,
+  132,81,100,73,100,65,68,73,35,65,35,65,35,73,2,73,3,65,35,65,
+  67,65,100,73,165,89,230,89,71,106,136,106,103,106,168,114,201,122,9,123,
+  233,122,233,122,168,114,135,106,103,106,70,106,70,114,5,106,4,114,228,113,
+  195,113,163,113,130,113,98,105,66,97,34,89,33,89,2,73,225,64,132,73,
+  10,115,10,123,104,98,11,123,5,10,123,129,42,123,11,10,123,129,234,122,
+  4,10,123,136,234,122,234,122,234,114,9,123,71,106,169,98,234,114,233,114,
+  7,4,130,236,90,12,91,3,236,90,133,12,91,236,90,12,91,12,91,236,
+  90,6,12,91,131,236,90,12,91,12,99,6,12,91,130,236,90,12,99,11,
+  12,91,130,44,99,12,99,5,12,91,195,44,99,44,91,44,99,44,99,12,
+  99,12,91,12,99,12,99,12,91,44,91,12,91,44,99,45,99,12,91,12,
+  99,12,91,13,99,44,99,12,91,45,99,12,91,12,91,44,99,12,91,44,
+  99,44,99,12,91,44,99,44,91,45,99,44,99,12,91,44,99,45,91,12,
+  91,45,99,44,99,45,91,45,91,44,99,44,99,44,91,45,99,45,91,44,
+  91,45,91,45,91,44,91,44,91,45,91,45,91,44,91,44,91,44,99,12,
+  91,12,99,44,91,12,91,45,91,12,91,45,91,45,91,12,91,44,91,44,
+  91,12,91,45,91,10,12,91,129,45,91,4,12,91,129,12,83,9,12,91,
+  154,236,82,12,91,236,82,12,83,12,91,12,91,12,83,12,83,12,91,13,
+  91,12,91,13,91,12,91,236,82,203,82,171,82,204,90,236,90,45,91,142,
+  99,208,107,17,108,49,116,49,116,82,116,82,116,6,114,124,6,146,124,136,
+  114,124,175,107,171,74,36,25,130,16,130,16,162,16,162,16,14,130,16,160,
+  98,8,98,16,98,16,98,8,98,8,4,25,9,50,171,74,46,91,110,99,
+  175,107,207,107,175,107,77,99,139,74,167,41,4,25,195,16,5,17,41,50,
+  45,83,175,99,17,116,49,116,50,116,82,116,114,124,114,124,115,124,147,124,
+  147,124,115,124,23,147,124,129,147,132,4,147,124,129,179,132,4,147,124,131,
+  179,124,179,124,147,124,3,179,124,129,147,132,3,179,132,136,179,124,147,124,
+  179,132,179,124,179,124,179,132,179,132,147,124,3,179,124,129,179,132,3,179,
+  124,132,179,132,179,124,179,124,179,132,8,179,124,3,180,124,3,179,124,137,
+  180,132,180,132,180,124,179,124,179,124,180,132,179,124,180,124,180,124,5,179,
+  124,130,179,132,179,124,3,180,132,149,179,124,179,124,180,124,180,132,180,124,
+  179,124,179,124,180,132,180,132,180,124,179,132,180,124,180,132,179,124,180,132,
+  179,124,179,124,180,124,180,132,179,132,179,132,14,180,132,129,179,132,13,180,
+  132,129,179,132,7,180,132,129,180,124,11,180,132,129,179,132,5,180,132,129,
+  179,124,7,180,132,132,180,124,180,132,180,132,179,132,3,180,132,3,179,132,
+  5,180,132,142,179,132,179,132,180,132,180,132,78,91,175,107,77,107,109,107,
+  77,107,109,107,207,115,212,132,180,132,180,132,3,179,132,132,180,132,179,132,
+  179,132,180,132,3,179,132,135,180,132,179,124,180,132,179,132,179,132,180,132,
+  179,124,6,179,132,135,180,132,180,132,179,132,179,132,180,132,179,132,180,132,
+  5,179,132,154,147,124,147,124,115,116,82,108,17,92,209,91,209,83,112,83,
+  183,165,53,149,243,148,105,66,102,41,199,49,199,49,231,49,199,49,231,49,
+  231,57,232,57,232,49,8,58,8,58,40,58,40,58,41,66,4,73,66,140,
+  105,66,72,25,199,8,198,16,198,16,165,8,133,8,165,8,166,8,198,8,
+  166,8,133,8,5,132,8,133,133,0,231,24,204,90,49,148,243,172,3,20,
+  173,131,19,173,19,173,52,173,4,20,173,141,52,181,52,173,52,181,19,173,
+  20,181,52,181,19,173,52,181,52,181,20,181,52,181,52,181,52,173,9,52,
+  181,6,84,181,141,85,189,85,189,84,189,85,189,117,189,85,189,117,189,85,
+  181,85,181,117,189,81,148,69,41,130,16,5,162,16,130,130,16,162,16,5,
+  130,16,138,162,16,162,16,162,24,163,24,162,16,195,24,163,24,163,24,195,
+  24,163,24,3,195,24,3,163,24,139,162,24,162,24,163,24,162,24,130,16,
+  130,16,98,16,129,16,97,16,65,8,97,8,3,65,8,3,65,16,135,97,
+  16,97,24,129,24,129,32,129,32,193,40,194,48,3,226,56,192,227,64,3,
+  65,68,73,67,73,36,65,35,65,132,73,132,81,100,73,67,65,100,73,100,
+  73,99,73,99,65,99,73,99,65,100,65,164,73,165,81,165,81,197,89,230,
+  89,6,98,39,98,71,106,104,106,136,106,137,114,169,114,136,114,169,114,10,
+  123,10,123,169,114,233,114,43,131,42,131,43,131,168,122,163,89,99,81,98,
+  81,66,89,130,97,130,105,130,105,130,113,130,113,195,121,163,113,130,113,163,
+  113,196,113,66,97,34,81,2,73,34,65,201,98,42,123,104,106,234,114,43,
+  123,10,123,42,123,4,10,123,130,42,123,42,123,14,10,123,135,233,122,10,
+  123,10,123,136,114,104,98,233,114,233,122,33,4,132,12,91,236,90,236,90,
+  12,91,3,236,90,8,12,91,132,12,99,12,91,236,90,12,99,15,12,91,
+  138,44,99,12,91,12,91,44,99,12,91,12,91,44,99,12,99,44,99,44,
+  99,4,12,91,137,12,99,12,91,44,99,12,91,12,91,44,99,44,91,12,
+  91,45,91,4,44,99,155,12,99,45,99,44,99,45,99,12,91,44,91,44,
+  99,44,99,12,91,12,91,44,99,45,99,12,91,45,99,44,99,12,91,13,
+  91,12,91,44,99,12,91,44,99,45,99,12,99,45,99,45,91,44,91,12,
+  91,3,44,91,145,12,91,44,99,12,91,44,91,44,91,12,91,12,91,44,
+  91,44,91,12,91,45,91,45,91,12,91,12,91,44,91,12,91,45,91,6,
+  12,91,131,45,91,13,91,45,91,16,12,91,134,236,82,236,90,12,91,12,
+  91,236,90,236,90,3,12,91,148,12,83,12,91,13,91,12,83,13,83,12,
+  83,13,91,12,91,203,82,203,82,171,82,236,90,12,91,78,99,175,99,208,
+  107,17,116,49,116,82,116,82,124,7,114,124,141,115,124,146,124,146,124,147,
+  132,147,124,147,124,82,124,142,99,73,66,227,16,130,16,163,16,162,16,10,
+  130,16,129,130,8,5,130,16,135,130,8,130,16,130,16,163,16,102,33,106,
+  66,45,91,5,175,107,147,142,99,236,82,41,58,102,33,5,25,195,16,37,
+  25,73,58,13,83,175,99,17,116,49,116,82,116,114,124,115,124,147,124,115,
+  124,147,124,115,124,26,147,124,129,179,124,3,147,124,131,179,124,179,124,147,
+  124,4,179,124,3,147,132,6,179,132,141,179,124,179,124,179,132,179,132,179,
+  124,179,132,179,124,179,124,179,132,179,132,179,124,179,132,179,124,3,179,132,
+  136,179,124,179,132,179,132,179,124,147,124,179,124,179,124,180,124,3,179,124,
+  149,180,132,179,124,179,124,179,132,180,132,180,124,179,124,179,124,179,132,180,
+  132,179,124,180,132,180,132,179,132,180,124,179,124,179,124,179,132,180,132,179,
+  124,179,132,3,179,124,129,180,124,3,180,132,136,179,132,179,132,180,124,180,
+  132,179,132,179,132,179,124,180,124,4,180,132,129,179,124,6,180,132,129,179,
+  124,4,180,132,129,179,132,21,180,132,131,180,124,180,132,179,124,12,180,132,
+  129,180,124,6,180,132,158,179,124,179,132,180,132,180,132,179,132,179,124,180,
+  132,179,132,179,132,180,124,179,124,180,132,179,132,180,124,180,124,179,132,179,
+  124,179,124,179,132,179,132,180,132,179,132,179,132,180,132,180,132,179,132,180,
+  132,180,132,175,99,114,132,3,77,107,131,109,107,77,107,212,140,5,180,132,
+  133,180,124,180,132,180,132,179,132,180,132,3,179,132,129,180,132,3,179,132,
+  133,180,132,179,124,180,132,179,132,180,132,8,179,132,149,180,132,179,132,179,
+  132,180,132,180,132,179,132,179,132,147,124,147,124,114,124,82,108,18,100,209,
+  91,177,83,112,83,182,165,85,157,52,149,171,82,101,41,167,49,3,199,49,
+  132,199,57,199,49,231,57,232,57,3,8,58,141,40,58,40,66,40,58,41,
+  66,73,66,41,66,105,66,104,25,199,8,198,16,198,16,165,8,133,0,3,
+  166,8,130,198,8,133,8,4,132,8,136,133,8,133,8,198,16,172,90,48,
+  140,243,164,20,173,19,173,3,20,173,147,52,181,20,173,20,173,52,173,19,
+  173,20,173,20,173,52,181,19,173,20,173,20,173,52,181,19,173,20,173,20,
+  173,52,173,19,173,52,181,51,181,8,52,181,7,84,181,131,84,189,85,189,
+  84,189,4,85,189,139,84,181,117,189,146,156,166,57,130,16,162,16,162,16,
+  130,16,162,16,162,16,130,16,5,162,16,141,130,16,195,24,228,32,195,32,
+  163,24,163,24,162,24,162,24,163,24,163,24,162,24,130,16,130,24,3,130,
+  16,3,97,16,5,65,8,141,64,16,65,16,97,16,129,24,129,32,161,32,
+  194,40,194,48,226,48,227,56,2,57,2,57,3,57,3,35,65,193,100,73,
+  68,73,100,73,132,73,132,73,164,73,229,89,6,98,132,73,100,73,100,73,
+  132,81,100,81,132,81,132,81,197,81,229,89,6,90,39,98,71,98,136,106,
+  136,106,168,106,168,114,136,114,168,122,168,122,135,122,136,114,103,114,38,106,
+  6,106,229,89,164,89,132,81,136,98,43,123,169,114,169,106,43,123,43,123,
+  43,131,201,122,66,81,1,73,34,81,99,89,37,106,37,114,38,122,4,122,
+  37,122,69,122,69,122,37,122,5,114,37,114,164,105,2,81,1,73,226,64,
+  71,90,43,123,169,114,169,106,4,42,123,133,10,123,10,123,42,123,10,123,
+  42,123,10,10,123,139,233,122,10,123,10,123,233,114,233,114,234,114,136,106,
+  168,106,39,98,234,114,234,114,19,4,131,236,90,12,91,236,90,5,12,91,
+  129,236,90,13,12,91,129,12,99,4,12,91,3,12,99,7,12,91,159,44,
+  99,12,91,12,91,44,99,12,99,12,91,12,99,12,91,12,91,44,99,44,
+  99,12,91,12,91,12,99,12,91,44,99,12,91,44,99,44,99,12,99,44,
+  99,12,91,12,99,12,91,45,99,13,99,44,91,45,99,12,91,44,91,44,
+  91,3,12,91,146,45,99,45,99,44,91,12,91,44,99,45,99,12,91,45,
+  99,12,91,44,99,45,99,13,91,45,91,13,91,44,99,44,91,45,99,13,
+  91,3,44,91,3,12,91,147,45,91,12,91,44,91,44,99,44,91,45,91,
+  44,99,44,91,45,91,44,91,44,91,13,91,12,91,45,91,12,91,45,91,
+  12,91,12,91,45,91,14,12,91,129,12,83,4,12,91,129,12,83,4,12,
+  91,129,12,83,5,12,91,129,13,91,4,12,91,129,236,82,3,203,82,138,
+  236,90,13,91,78,91,176,107,240,107,17,116,49,116,82,124,114,124,82,124,
+  5,114,124,145,146,124,114,124,146,124,146,124,147,124,147,124,146,124,82,124,
+  78,91,41,50,163,8,130,16,162,16,163,16,162,16,130,16,130,8,3,130,
+  16,130,98,8,98,8,8,130,16,159,162,16,163,16,163,16,195,16,135,41,
+  139,66,45,91,143,107,175,107,175,107,176,107,175,107,142,99,45,91,203,74,
+  41,58,167,33,69,25,228,16,37,25,106,58,45,83,208,107,50,116,82,116,
+  114,124,115,124,147,124,146,124,147,124,115,124,21,147,124,129,179,124,6,147,
+  124,142,179,124,147,124,147,124,179,124,179,132,147,124,179,124,179,124,147,132,
+  179,132,179,132,147,124,147,132,180,132,6,179,124,129,179,132,4,179,124,129,
+  179,132,6,179,124,130,179,132,179,132,8,179,124,4,179,132,131,180,124,179,
+  124,179,132,5,179,124,141,179,132,179,124,180,124,179,124,180,124,179,124,180,
+  124,179,124,180,132,180,124,180,124,180,132,179,124,4,180,132,132,179,124,180,
+  124,179,124,179,132,4,180,132,130,180,124,180,124,9,180,132,129,179,132,4,
+  180,132,129,179,124,10,180,132,129,180,124,32,180,132,129,180,124,8,180,132,
+  133,179,132,180,124,179,132,180,132,179,132,3,180,132,149,179,132,179,132,179,
+  124,179,124,147,124,147,132,179,132,180,132,179,132,179,132,180,132,180,132,179,
+  132,115,132,146,140,45,107,109,115,109,107,110,115,77,107,179,132,3,180,132,
+  144,179,132,179,132,180,132,179,132,180,132,179,132,179,132,180,132,179,132,180,
+  132,180,132,179,132,180,132,179,132,179,132,180,132,3,179,132,130,180,132,180,
+  132,6,179,132,162,180,132,179,132,179,132,180,132,179,132,179,132,179,124,147,
+  124,147,124,115,116,82,108,18,100,241,91,210,83,79,75,150,157,53,149,20,
+  149,12,91,69,41,167,49,232,49,232,49,199,49,199,49,232,57,232,57,199,
+  49,231,57,8,58,232,57,8,58,8,58,40,58,3,41,66,136,73,66,104,
+  25,167,0,199,16,198,16,165,8,133,0,134,8,3,166,8,139,133,8,132,
+  8,99,8,132,16,132,8,132,8,133,8,198,8,139,82,16,140,243,172,3,
+  20,173,150,52,173,20,173,52,173,52,173,20,173,20,173,52,181,19,173,52,
+  181,52,181,52,173,52,173,20,173,20,173,52,181,52,181,52,173,20,173,20,
+  181,52,181,52,173,20,173,8,52,181,6,84,181,140,52,181,84,181,84,189,
+  85,189,84,189,84,189,85,189,84,189,116,189,211,164,41,66,130,16,9,162,
+  16,136,130,16,162,16,162,16,163,24,228,32,227,32,130,16,130,16,4,98,
+  16,129,97,8,6,65,8,218,97,16,97,16,129,24,129,32,162,32,194,40,
+  226,48,2,57,2,57,35,65,67,73,68,73,68,73,100,73,132,81,197,89,
+  165,81,132,81,100,73,68,73,67,73,100,73,35,65,99,73,132,73,197,81,
+  39,90,71,98,39,98,104,98,136,106,71,106,71,98,39,98,71,106,72,106,
+  104,106,169,114,169,114,201,114,201,122,136,114,103,106,103,106,71,106,38,106,
+  37,106,228,113,229,121,196,113,164,113,131,113,130,105,98,97,66,89,66,89,
+  34,81,225,64,164,73,42,115,233,122,136,98,43,123,43,123,42,123,42,131,
+  164,97,1,73,34,81,34,81,5,106,37,114,229,105,228,105,4,114,195,113,
+  163,105,163,105,131,97,130,89,66,89,1,73,2,73,193,56,197,73,43,115,
+  233,122,104,98,43,115,43,123,7,42,123,3,10,123,146,234,122,10,123,201,
+  114,201,114,234,114,234,114,234,122,201,114,201,114,169,114,201,114,201,114,169,
+  106,169,106,201,114,71,98,201,106,10,123,60,4,135,235,90,12,91,236,90,
+  236,90,12,91,236,90,236,90,5,12,91,129,236,90,9,12,91,130,12,99,
+  12,99,5,12,91,131,12,99,12,91,44,91,5,12,91,137,12,99,12,91,
+  12,91,12,99,12,91,44,99,12,99,12,91,44,99,4,12,91,189,44,99,
+  44,99,12,91,12,91,44,99,12,99,44,99,12,99,44,99,45,99,12,91,
+  45,91,12,91,44,99,44,91,44,91,12,99,44,99,44,99,12,91,45,99,
+  45,99,12,99,44,91,45,91,13,91,44,99,12,91,45,99,12,91,12,99,
+  13,91,45,91,12,99,44,91,45,99,45,99,45,91,45,99,44,99,12,99,
+  12,91,12,91,44,99,44,99,12,91,45,91,13,91,45,91,12,91,45,99,
+  12,91,12,91,44,91,44,91,45,91,45,91,12,91,45,91,12,91,13,91,
+  3,12,91,129,45,91,16,12,91,129,12,83,7,12,91,129,236,82,4,12,
+  91,129,12,83,4,12,91,129,236,82,3,203,82,138,236,90,45,91,110,99,
+  175,107,241,107,49,116,82,116,82,116,82,124,82,124,4,114,124,142,115,124,
+  114,124,147,124,146,124,146,124,147,124,147,124,147,132,17,116,45,91,231,41,
+  162,8,130,16,162,16,6,130,16,131,98,8,130,16,98,8,7,130,16,4,
+  163,16,155,228,16,135,41,106,66,45,91,110,99,175,107,207,107,175,107,175,
+  107,143,99,110,99,77,91,236,82,106,58,200,41,102,33,4,17,102,33,171,
+  66,110,91,17,108,82,116,114,124,114,124,115,124,147,124,146,124,7,147,124,
+  129,179,124,3,147,124,129,147,132,16,147,124,130,179,132,147,124,3,179,124,
+  129,147,124,3,179,124,3,179,132,130,179,124,179,132,3,179,124,3,179,132,
+  3,179,124,132,179,132,179,124,179,124,179,132,9,179,124,130,180,124,180,124,
+  6,179,124,3,179,132,131,179,124,179,132,179,132,3,180,132,144,179,124,179,
+  132,179,132,179,124,179,124,180,132,180,124,179,124,180,132,180,132,179,124,180,
+  132,179,132,180,132,180,132,180,124,4,180,132,132,180,124,180,132,180,132,180,
+  124,4,180,132,131,180,124,180,132,180,124,3,180,132,130,179,132,212,132,5,
+  180,132,3,211,132,5,180,132,130,212,132,212,132,7,180,132,129,179,132,11,
+  180,132,130,179,132,179,132,6,180,132,129,179,132,9,180,132,132,180,124,180,
+  132,180,132,179,132,3,180,132,132,179,132,179,132,179,124,179,124,4,180,132,
+  131,179,124,179,124,180,132,6,179,132,129,147,132,4,179,132,152,50,124,179,
+  140,45,107,142,115,109,115,77,107,77,107,207,107,212,132,179,124,179,132,179,
+  132,180,132,179,132,179,132,211,132,179,132,180,132,179,132,180,132,179,124,180,
+  132,179,132,180,132,3,179,132,3,180,132,129,179,132,3,180,132,129,179,132,
+  3,180,132,7,179,132,142,147,124,147,124,115,124,82,108,18,100,241,91,209,
+  83,80,75,118,157,85,157,52,149,44,91,69,33,167,49,4,199,49,134,232,
+  57,232,57,199,49,231,57,232,57,232,57,3,8,58,153,40,58,40,58,41,
+  66,73,66,136,33,167,8,198,16,198,16,165,16,133,8,133,8,166,8,166,
+  8,198,16,165,8,132,8,99,8,131,8,132,8,132,8,133,8,166,8,107,
+  74,240,139,211,164,5,20,173,146,19,173,52,181,20,181,20,173,20,173,52,
+  181,20,173,20,173,52,181,20,173,52,173,20,173,52,181,51,173,20,173,52,
+  181,51,181,52,181,3,20,173,8,52,181,135,84,181,52,181,84,189,84,181,
+  84,181,52,181,52,181,3,84,189,141,85,181,85,181,85,189,117,189,20,173,
+  203,90,130,16,162,24,162,16,162,16,130,16,162,16,162,24,4,162,16,133,
+  130,16,162,16,162,16,162,24,130,16,4,65,8,146,65,16,97,16,97,16,
+  129,24,129,32,162,32,194,40,226,40,2,49,35,57,35,65,68,65,68,73,
+  68,73,67,73,132,73,196,89,197,89,3,165,89,143,133,81,165,81,6,90,
+  72,98,39,98,230,89,132,81,100,73,132,73,165,81,197,81,229,89,39,90,
+  103,98,169,106,4,201,114,174,169,114,168,114,234,122,10,123,201,114,201,114,
+  43,131,42,131,75,131,233,122,229,89,99,81,131,89,98,89,98,89,130,97,
+  98,105,131,113,163,113,195,113,195,113,163,105,195,105,196,105,229,105,98,89,
+  1,73,67,65,233,114,42,123,104,98,10,115,43,123,42,123,75,131,6,106,
+  225,72,2,73,2,73,67,81,98,89,66,89,98,89,65,89,65,89,34,89,
+  3,34,81,155,67,81,99,81,131,81,164,81,71,98,10,123,42,131,104,98,
+  10,115,42,123,42,123,43,131,10,123,10,123,233,122,233,114,201,114,234,114,
+  234,114,201,114,201,114,201,106,168,106,169,106,202,114,201,114,234,114,3,201,
+  114,3,169,106,133,136,98,104,98,39,90,71,90,104,90,84,4,4,236,90,
+  132,12,99,236,90,236,90,12,99,3,12,91,129,12,99,10,12,91,138,12,
+  99,12,91,44,99,12,99,12,91,12,99,12,99,12,91,12,91,44,99,3,
+  12,91,146,44,99,12,91,12,91,44,99,12,99,12,91,44,99,12,99,12,
+  91,45,91,12,91,44,99,12,91,44,99,12,99,44,99,44,99,12,91,4,
+  44,99,155,12,91,44,99,44,99,45,99,13,99,45,99,45,99,44,99,44,
+  99,12,99,45,99,12,91,44,99,45,99,12,91,12,91,44,91,45,99,13,
+  91,44,91,12,91,44,99,44,91,12,91,12,91,45,91,44,99,3,12,91,
+  143,44,91,12,91,44,99,12,91,44,91,45,91,12,91,44,91,13,91,45,
+  91,12,91,44,91,45,91,12,91,45,99,4,12,91,130,45,91,44,91,3,
+  12,91,131,13,91,12,91,45,91,20,12,91,129,236,90,3,12,91,130,12,
+  83,12,83,5,12,91,133,13,91,12,83,12,91,12,91,236,82,3,203,82,
+  136,236,90,45,91,142,99,208,107,17,116,81,116,82,116,82,116,6,114,124,
+  139,115,124,147,124,146,124,146,124,147,124,147,124,146,124,147,124,16,116,12,
+  83,166,41,6,130,16,3,98,8,133,98,16,98,8,98,8,130,16,98,8,
+  5,130,16,155,163,16,163,24,163,16,195,16,4,25,167,33,139,66,45,83,
+  110,99,143,107,175,99,175,107,175,99,175,107,175,99,143,99,78,91,13,83,
+  171,66,41,58,135,41,228,16,199,41,236,74,176,99,49,116,114,124,3,115,
+  124,130,147,124,146,124,4,147,124,129,147,132,3,147,124,129,179,124,8,147,
+  124,136,179,124,147,124,147,132,147,124,147,124,179,124,147,124,179,124,3,147,
+  124,5,179,124,129,147,132,6,179,124,136,179,132,179,132,179,124,179,124,179,
+  132,179,132,179,124,179,132,8,179,124,130,180,132,180,132,4,179,124,129,147,
+  124,4,179,124,142,180,132,180,132,179,132,179,132,180,132,179,132,179,132,179,
+  124,180,132,179,132,180,124,180,124,180,132,211,132,4,180,132,148,179,124,179,
+  132,179,124,179,124,180,132,180,132,180,124,180,132,179,132,179,132,179,124,211,
+  132,180,132,180,132,179,124,179,132,180,132,180,132,180,124,180,124,3,180,132,
+  135,180,124,180,124,212,124,180,132,212,132,180,132,211,132,6,180,132,131,211,
+  132,212,132,211,132,5,212,132,132,180,132,180,132,212,132,212,132,4,180,132,
+  132,212,132,180,132,180,132,212,132,17,180,132,131,179,132,180,132,212,132,10,
+  180,132,130,179,132,179,132,5,180,132,129,179,132,4,180,132,134,179,132,180,
+  132,179,124,180,132,179,132,180,132,6,179,132,140,180,132,147,132,179,140,81,
+  132,110,107,110,115,109,115,77,107,109,107,208,115,211,132,180,124,7,179,132,
+  3,180,132,130,179,132,180,132,7,179,132,132,180,132,179,132,180,132,180,132,
+  3,179,132,130,180,132,180,132,7,179,132,142,147,124,147,124,115,116,82,116,
+  18,100,209,91,209,83,112,75,85,149,85,157,52,149,77,91,37,33,167,49,
+  3,199,49,129,231,49,3,199,49,133,231,57,232,57,232,57,8,58,232,57,
+  4,8,58,142,40,66,168,41,167,0,231,16,230,16,197,16,133,8,165,8,
+  165,8,166,8,166,8,165,8,132,8,100,8,3,132,8,139,133,8,166,8,
+  42,66,207,131,211,164,20,173,20,173,19,173,20,173,52,173,19,173,4,20,
+  173,142,19,173,20,173,52,173,20,173,52,173,20,173,19,173,19,173,51,173,
+  19,173,52,173,52,181,52,181,20,173,8,52,181,131,84,181,52,181,52,181,
+  3,84,181,129,52,181,3,84,181,3,85,189,136,85,181,84,189,85,189,52,
+  181,77,107,130,16,162,16,163,24,7,162,16,129,162,24,3,162,16,180,130,
+  16,97,16,97,24,129,24,161,32,225,40,226,48,3,49,35,57,35,57,67,
+  65,100,65,68,65,100,73,132,73,100,73,132,73,132,73,165,81,165,81,100,
+  73,164,73,6,98,6,106,197,97,197,97,197,89,230,97,230,97,72,106,169,
+  114,169,114,136,106,104,106,104,106,136,106,135,106,136,114,136,114,136,122,135,
+  122,134,122,102,114,70,114,6,106,229,97,196,89,164,81,71,98,10,123,233,
+  114,168,106,3,42,123,206,233,122,99,81,1,73,66,81,229,105,5,106,37,
+  114,5,114,4,114,69,122,69,122,37,122,36,122,36,114,4,106,228,105,131,
+  97,1,73,2,65,136,98,42,123,168,106,233,106,43,123,42,123,75,131,168,
+  114,2,73,225,64,34,73,34,73,67,73,99,81,132,89,164,97,229,97,6,
+  106,70,106,103,106,136,114,169,114,201,122,233,122,10,123,42,123,43,131,43,
+  131,168,114,201,106,42,123,43,123,43,131,234,122,201,114,233,114,201,114,169,
+  114,234,114,234,114,202,114,234,114,201,114,201,114,169,106,169,106,136,98,104,
+  98,71,90,39,90,7,82,6,82,230,81,230,81,229,73,197,81,198,81,229,
+  81,230,81,58,4,136,12,91,236,90,12,91,12,91,236,90,12,91,12,91,
+  12,99,4,12,91,130,12,99,236,90,3,12,91,133,12,99,12,91,12,91,
+  12,99,12,99,3,12,91,129,12,99,7,12,91,129,12,99,4,12,91,145,
+  12,99,12,99,44,99,12,99,12,91,44,99,12,91,44,99,12,99,44,99,
+  12,91,44,99,45,99,12,91,12,91,44,99,45,99,5,12,91,142,44,91,
+  44,99,13,91,44,99,12,91,44,99,45,99,45,99,44,99,12,91,44,91,
+  44,99,12,91,44,99,5,45,99,150,44,91,44,91,45,91,45,91,13,91,
+  45,91,45,91,44,91,12,99,44,99,12,99,12,91,44,99,12,99,44,91,
+  44,91,44,99,45,91,44,91,12,91,44,91,12,91,3,45,91,130,12,91,
+  44,91,3,12,91,131,44,91,12,91,44,91,9,12,91,129,44,91,7,12,
+  91,129,12,83,9,12,91,129,12,83,3,12,91,144,13,91,12,83,12,91,
+  12,91,13,91,13,91,203,82,203,82,171,82,236,90,236,90,77,99,143,99,
+  240,107,49,116,81,116,3,82,124,132,114,124,114,116,114,124,146,124,3,114,
+  124,4,146,124,133,147,124,146,124,17,116,13,83,167,41,4,130,16,5,98,
+  8,132,98,16,98,16,98,8,98,8,4,130,16,166,98,8,130,16,130,16,
+  163,16,195,16,195,16,37,25,232,49,204,74,45,83,110,91,143,99,175,99,
+  175,99,143,99,175,99,208,99,240,107,175,99,142,91,78,91,204,74,74,66,
+  134,33,4,25,106,58,78,83,240,107,114,124,114,124,115,124,115,124,147,124,
+  147,124,147,132,147,124,147,124,179,124,11,147,124,129,147,132,5,147,124,136,
+  179,124,147,132,147,124,179,124,147,124,179,124,147,124,147,124,11,179,124,129,
+  179,132,4,179,124,129,179,132,4,179,124,134,179,132,180,124,180,132,180,132,
+  179,124,179,132,4,179,124,133,179,132,179,124,180,132,179,124,180,132,3,180,
+  124,138,180,132,179,124,180,132,180,132,179,124,180,132,179,124,180,132,180,132,
+  179,124,4,180,132,132,179,132,180,132,180,132,179,124,3,179,132,134,180,132,
+  180,132,180,124,180,132,180,132,179,132,4,180,132,131,179,132,180,132,179,124,
+  6,180,132,129,180,124,5,180,132,140,212,132,212,132,180,132,212,132,212,132,
+  212,124,212,132,211,132,211,132,179,132,212,132,212,124,4,212,132,129,180,132,
+  3,212,132,3,180,132,130,212,132,212,132,11,180,132,129,212,132,15,180,132,
+  129,212,132,6,180,132,129,212,132,7,180,132,129,212,132,4,180,132,129,180,
+  124,3,179,132,130,180,132,180,132,5,179,132,138,240,115,82,132,77,107,110,
+  115,109,115,77,107,109,107,142,115,212,140,180,132,5,179,132,130,180,132,179,
+  132,3,180,132,130,179,132,180,132,4,179,132,132,180,132,180,132,179,132,179,
+  132,4,180,132,11,179,132,3,147,124,151,82,116,18,100,241,91,209,83,112,
+  75,53,149,85,157,52,149,207,107,37,33,166,49,167,49,199,49,199,49,232,
+  57,199,49,199,49,231,57,231,57,232,57,232,57,231,49,232,57,3,8,58,
+  135,40,58,41,66,200,49,167,8,231,16,230,16,197,16,3,133,8,133,166,
+  8,198,8,166,8,132,8,99,8,3,132,8,133,133,8,133,8,233,57,175,
+  123,178,164,3,20,173,131,19,173,19,173,20,173,3,19,173,139,51,173,19,
+  173,52,181,52,181,20,173,52,173,20,173,19,173,243,172,19,173,20,173,12,
+  52,181,131,84,181,52,181,52,181,3,84,181,144,52,181,52,181,84,181,85,
+  189,84,181,85,181,85,181,85,189,84,189,85,189,84,181,207,123,195,24,162,
+  24,163,24,163,24,10,162,16,141,130,16,130,24,226,48,35,57,67,65,132,
+  73,165,81,133,65,132,73,165,65,230,73,6,82,197,81,4,132,73,205,165,
+  81,197,81,197,81,229,81,6,90,71,98,136,114,71,106,71,106,104,106,136,
+  114,169,114,201,114,234,122,168,114,103,106,71,106,71,106,70,106,37,106,37,
+  114,4,114,228,113,196,113,163,113,162,105,130,105,98,89,33,81,2,81,1,
+  73,100,73,234,114,10,123,136,106,10,115,43,131,42,131,10,131,197,97,1,
+  73,66,73,5,106,37,106,37,106,228,105,228,113,195,105,195,105,163,105,163,
+  97,130,97,98,89,66,81,34,81,226,72,226,56,7,82,43,123,201,114,169,
+  106,75,123,43,123,42,123,74,131,71,106,38,98,71,106,136,106,168,114,169,
+  114,202,122,234,122,10,123,10,123,43,131,42,131,4,75,131,153,74,131,75,
+  131,43,123,75,123,233,122,136,98,43,123,43,131,43,131,10,123,201,114,201,
+  106,169,106,136,106,136,98,104,98,72,90,39,82,39,82,6,82,230,81,229,
+  81,230,81,197,81,230,81,3,229,89,135,229,97,230,97,5,98,5,106,5,
+  98,5,98,5,106,100,4,132,235,90,12,91,12,91,236,90,7,12,91,129,
+  236,90,3,12,91,129,12,99,7,12,91,201,12,99,12,99,12,91,12,99,
+  12,91,12,91,44,99,12,99,12,99,12,91,44,91,12,91,44,99,44,99,
+  12,91,12,91,44,99,12,91,44,91,13,91,45,91,44,91,45,99,12,99,
+  44,99,12,91,44,99,45,99,12,91,45,99,12,91,12,91,12,99,45,99,
+  12,99,44,99,44,91,44,99,45,99,44,99,44,99,44,91,44,91,13,99,
+  44,99,44,91,45,91,44,91,44,91,45,91,12,91,45,91,44,99,45,99,
+  12,91,45,99,45,99,13,91,45,99,45,91,45,99,12,91,45,91,44,91,
+  44,99,12,91,45,99,45,91,12,91,44,91,12,91,45,99,45,91,3,44,
+  91,3,45,91,144,13,91,12,91,12,91,45,91,45,91,44,91,45,99,44,
+  91,12,91,44,91,12,91,44,91,44,91,12,91,12,91,45,91,15,12,91,
+  132,236,90,12,91,12,91,236,90,4,12,91,133,12,83,12,91,13,91,12,
+  91,13,91,3,12,91,3,203,82,137,236,90,12,91,78,99,175,107,240,107,
+  49,116,82,116,82,116,82,124,6,114,124,144,146,124,114,124,114,124,146,124,
+  114,124,115,124,146,124,114,124,17,116,110,91,41,50,228,16,130,16,130,8,
+  98,16,98,16,3,98,8,137,97,8,97,8,98,8,98,16,98,8,130,16,
+  98,16,98,8,98,16,3,130,16,136,163,16,163,16,195,24,135,41,73,66,
+  236,82,78,91,110,91,4,143,99,144,176,99,208,107,17,116,16,108,175,99,
+  208,99,111,91,237,82,74,58,4,25,134,33,236,74,175,99,82,116,115,124,
+  115,124,18,147,124,129,179,124,3,147,124,139,179,124,147,124,179,132,147,124,
+  147,124,179,124,179,124,147,124,179,124,147,124,180,132,12,179,124,131,180,132,
+  179,132,179,132,3,180,132,129,212,132,3,179,132,135,179,124,179,132,180,132,
+  180,132,179,124,180,132,180,124,3,179,124,3,180,132,143,180,124,180,132,179,
+  124,179,132,180,124,179,124,179,132,179,132,180,124,180,132,180,132,180,124,180,
+  124,180,132,180,124,4,180,132,129,179,132,3,180,132,130,180,124,179,124,12,
+  180,132,135,212,132,180,132,180,124,180,132,180,132,180,124,180,124,4,180,132,
+  129,211,132,3,180,132,3,212,132,129,180,132,7,212,132,135,180,132,212,132,
+  212,132,180,132,180,132,212,132,180,132,5,212,132,129,180,132,4,212,132,133,
+  211,132,180,132,180,132,212,132,212,132,4,180,132,133,212,132,179,124,180,132,
+  180,132,212,132,3,180,132,133,212,132,180,132,212,132,212,132,179,132,4,180,
+  132,132,212,132,180,132,180,132,212,132,3,180,132,129,211,132,9,180,132,131,
+  179,124,180,132,179,132,5,180,132,151,179,132,146,132,113,132,110,115,110,115,
+  77,107,109,115,77,107,77,107,179,132,180,132,180,132,179,132,180,132,179,132,
+  179,132,180,132,179,124,179,132,180,132,180,132,180,124,180,132,4,179,132,132,
+  180,132,179,132,180,132,211,132,6,180,132,129,212,132,6,179,132,145,180,132,
+  179,132,147,124,147,124,115,116,82,108,50,100,241,91,209,83,112,75,21,141,
+  150,157,244,148,207,107,37,33,166,49,167,49,5,199,49,135,231,49,199,49,
+  231,49,232,57,231,57,232,57,231,57,3,8,58,152,40,58,168,41,199,8,
+  231,16,230,24,198,16,133,8,133,8,165,8,166,8,198,8,166,8,132,8,
+  99,8,132,8,132,16,133,8,133,8,165,8,201,49,175,123,178,164,20,173,
+  20,173,7,19,173,135,51,173,20,173,20,173,52,173,20,173,52,173,20,173,
+  3,243,172,129,19,173,12,52,181,147,84,181,52,181,52,181,84,181,84,181,
+  84,189,84,181,52,181,84,181,84,181,85,189,84,189,85,189,85,189,84,181,
+  117,189,85,189,48,140,36,33,4,162,16,199,163,24,162,16,163,24,163,24,
+  162,16,163,24,163,24,162,24,162,24,130,16,130,16,3,49,67,73,132,73,
+  230,81,71,90,71,82,39,82,39,82,71,82,103,98,39,90,230,89,6,90,
+  38,98,39,98,72,98,103,106,103,106,104,106,104,106,103,106,136,106,202,114,
+  201,114,168,106,234,114,11,123,10,123,10,123,70,106,131,81,131,81,99,81,
+  131,89,163,97,99,105,130,105,130,105,163,113,196,113,4,122,196,113,196,105,
+  163,97,34,81,2,73,34,65,136,106,43,123,136,106,234,114,43,123,43,131,
+  42,131,38,106,1,73,2,73,67,81,99,89,98,89,4,66,89,3,34,81,
+  145,66,81,67,81,100,81,164,81,165,81,136,98,75,123,10,123,136,98,43,
+  123,43,131,43,123,75,131,42,131,42,131,43,131,43,131,5,75,131,146,43,
+  131,43,131,75,131,75,131,42,123,42,123,10,123,10,115,10,115,233,114,233,
+  106,169,106,71,90,234,106,201,114,168,106,104,98,38,90,3,6,82,133,230,
+  81,230,81,229,81,229,89,5,90,4,5,98,130,6,106,38,106,6,37,106,
+  132,38,106,37,106,69,114,37,106,100,4,131,236,90,12,91,235,90,5,12,
+  91,129,12,99,11,12,91,131,12,99,12,91,12,99,3,12,91,134,12,99,
+  44,99,12,91,44,99,12,91,44,99,6,12,91,130,44,99,12,99,3,12,
+  91,3,44,99,135,12,91,12,99,12,99,44,91,44,99,44,99,13,99,3,
+  44,99,137,12,91,44,99,44,99,44,91,44,99,45,99,45,99,12,99,12,
+  91,4,44,91,142,45,91,45,99,45,91,45,91,45,99,12,91,44,99,44,
+  91,44,91,45,91,44,91,44,91,45,99,45,91,4,45,99,131,44,99,45,
+  99,44,99,4,45,91,130,12,91,12,91,4,44,91,3,12,91,134,45,91,
+  45,91,13,91,44,91,12,91,44,91,12,12,91,129,44,91,10,12,91,130,
+  12,83,236,90,13,12,91,143,44,91,236,90,203,82,203,82,204,82,236,90,
+  13,91,78,99,208,107,17,108,49,116,82,116,82,116,114,124,82,124,3,114,
+  124,144,115,124,114,124,114,124,146,124,114,124,147,124,114,124,114,124,114,116,
+  114,124,82,116,175,99,236,74,199,41,228,16,162,16,3,130,16,131,98,8,
+  98,8,98,16,4,98,8,162,130,16,98,16,98,8,98,8,130,16,130,16,
+  130,8,162,16,163,16,228,16,232,49,171,74,77,91,110,99,110,91,143,91,
+  143,99,111,99,111,91,176,99,240,107,49,116,49,124,208,107,240,107,240,107,
+  111,99,236,82,199,41,4,17,73,58,110,91,17,116,114,124,6,147,124,151,
+  179,124,179,124,147,124,147,124,179,124,147,124,147,124,179,132,147,124,179,124,
+  179,124,147,124,179,124,147,124,179,124,147,124,179,124,147,124,179,124,147,124,
+  179,124,179,124,147,124,3,179,124,129,179,132,14,179,124,3,179,132,131,146,
+  132,175,107,143,107,3,180,132,146,179,132,179,132,180,132,179,132,180,132,180,
+  132,179,124,180,124,179,124,180,124,179,132,180,124,179,132,179,124,180,124,180,
+  124,180,132,180,124,4,180,132,139,179,132,180,132,180,124,180,132,179,132,180,
+  132,180,132,212,132,212,124,180,132,212,132,3,180,132,129,180,124,4,180,132,
+  145,212,132,180,124,179,124,180,124,180,124,212,124,180,132,180,124,180,132,212,
+  132,212,132,180,132,212,132,180,132,180,132,212,132,180,132,8,212,132,129,212,
+  124,10,212,132,129,211,132,3,212,132,132,180,132,212,132,212,132,180,132,4,
+  212,132,129,180,132,4,212,132,129,180,132,3,212,132,141,180,132,180,132,212,
+  132,180,132,212,132,180,132,212,132,212,132,212,124,212,132,212,132,180,132,180,
+  132,3,212,132,4,180,132,132,212,132,180,132,212,132,180,132,4,212,132,5,
+  180,132,135,212,132,180,132,212,132,180,132,179,132,180,132,212,132,3,180,132,
+  142,179,132,180,132,212,132,147,124,211,140,146,140,77,107,110,115,110,115,77,
+  107,77,107,109,115,81,132,212,132,8,180,132,130,179,132,212,132,3,180,132,
+  5,179,132,131,180,132,180,132,179,132,3,180,132,131,179,132,179,132,180,132,
+  6,179,132,143,180,132,179,132,179,132,147,124,147,116,114,116,18,100,241,91,
+  209,83,112,75,212,140,150,165,211,140,49,124,36,33,3,167,49,3,199,49,
+  134,232,57,199,49,231,57,231,49,231,57,231,57,5,232,57,142,8,58,200,
+  49,199,8,230,16,230,24,197,16,132,8,133,8,165,8,166,8,198,8,166,
+  8,132,8,131,8,3,132,8,133,133,8,133,8,169,49,143,123,178,156,3,
+  20,173,3,19,173,144,52,173,19,173,20,173,19,173,20,173,20,173,19,173,
+  52,181,52,173,243,172,243,164,243,164,243,172,20,173,52,181,20,173,6,52,
+  181,129,20,173,5,52,181,4,84,181,133,84,189,85,189,84,181,84,181,84,
+  189,3,85,189,134,84,181,84,181,117,189,146,156,134,41,130,16,3,163,24,
+  150,162,16,162,16,163,24,162,16,162,16,163,24,163,24,162,24,162,24,130,
+  16,130,16,3,41,133,73,165,81,229,81,104,98,137,98,137,98,169,106,169,
+  106,168,106,136,106,3,103,106,193,71,114,70,106,38,106,6,106,229,97,229,
+  97,132,81,197,81,169,106,10,123,136,106,201,106,10,123,43,123,10,123,38,
+  98,2,73,33,73,66,81,164,97,228,105,195,105,228,113,4,114,4,122,36,
+  122,37,114,5,114,37,114,5,106,66,81,1,73,225,64,71,98,43,123,169,
+  106,201,106,43,123,42,123,43,123,168,114,34,73,1,65,34,73,34,73,99,
+  81,131,81,132,89,196,97,229,97,6,98,71,106,103,106,136,106,168,114,201,
+  114,234,122,10,123,43,123,43,123,75,131,136,98,10,115,43,123,43,131,3,
+  75,131,164,43,131,75,131,43,123,43,123,42,123,10,123,10,123,234,114,201,
+  114,201,114,169,106,168,98,136,98,103,98,103,90,71,90,39,90,6,82,6,
+  82,230,81,38,90,38,90,6,90,6,98,5,90,5,90,37,98,5,98,6,
+  98,38,98,70,106,38,106,38,106,37,106,69,106,69,106,3,70,114,130,69,
+  114,70,114,5,102,114,131,102,122,70,114,102,122,86,4,129,236,90,4,12,
+  91,129,236,90,13,12,91,130,12,99,12,99,3,12,91,130,12,99,12,99,
+  4,12,91,135,45,99,12,99,12,91,12,91,12,99,44,99,45,99,4,12,
+  91,129,44,99,3,12,91,139,44,99,12,91,45,99,45,99,12,91,12,91,
+  44,91,45,99,44,99,44,99,12,91,3,44,99,129,44,91,5,44,99,136,
+  45,99,44,99,12,91,44,91,12,91,45,91,44,91,44,99,5,44,91,129,
+  45,99,3,44,91,145,45,99,44,91,45,91,44,91,44,99,45,99,44,91,
+  44,99,12,91,45,91,45,91,44,91,45,91,12,91,44,91,44,91,45,99,
+  3,12,91,145,44,91,45,91,12,91,44,91,44,99,12,91,45,91,45,91,
+  12,91,12,91,45,91,44,91,12,91,13,91,12,91,12,91,44,91,22,12,
+  91,129,13,91,6,12,91,144,236,82,203,82,203,82,204,90,236,90,45,99,
+  110,99,208,107,17,116,82,116,82,116,82,124,114,124,114,124,114,116,114,116,
+  3,114,124,129,146,124,5,114,124,147,114,116,114,116,82,116,17,108,110,91,
+  171,66,199,41,4,17,163,16,162,16,162,16,130,16,130,8,130,16,130,16,
+  130,8,98,16,98,8,98,8,3,130,16,3,130,8,158,130,16,130,16,36,
+  25,73,66,45,91,142,99,110,99,110,91,110,91,143,99,110,91,111,91,176,
+  99,241,107,49,116,82,124,17,116,240,115,17,108,240,107,78,99,106,66,4,
+  25,102,33,236,74,208,107,82,124,146,124,147,124,115,124,4,147,124,130,179,
+  124,179,124,8,147,124,130,147,132,179,124,6,147,124,131,179,124,147,124,147,
+  124,3,179,124,132,147,124,179,124,179,124,147,124,7,179,124,4,179,132,157,
+  179,124,179,132,82,124,240,115,77,99,12,99,12,99,241,115,212,132,180,132,
+  179,132,179,124,180,132,179,132,179,132,180,132,180,132,179,132,180,124,180,124,
+  180,132,179,124,180,132,180,132,180,124,180,132,180,132,179,124,180,124,3,180,
+  132,132,179,124,180,132,180,132,179,132,3,180,132,130,212,124,212,132,3,180,
+  132,129,179,132,6,180,132,136,180,124,212,132,180,132,212,124,212,132,212,124,
+  212,132,212,132,3,180,132,134,212,132,212,132,180,132,212,132,212,132,180,132,
+  23,212,132,130,180,132,180,132,6,212,132,129,180,132,8,212,132,129,180,132,
+  3,212,132,135,180,132,212,132,211,132,212,132,212,132,180,132,179,132,8,212,
+  132,134,180,132,180,132,212,132,180,132,212,132,212,132,3,180,132,130,212,132,
+  180,132,3,212,132,131,180,132,180,132,212,132,3,180,132,3,212,132,130,179,
+  132,211,132,3,180,132,139,146,132,48,132,77,107,110,107,77,107,211,148,77,
+  107,109,115,207,115,212,132,179,132,3,180,132,129,179,132,3,180,132,136,179,
+  132,180,132,180,132,179,132,179,132,180,132,179,132,179,132,4,180,132,132,211,
+  132,180,132,179,124,179,132,4,180,132,150,179,132,180,132,180,132,179,132,179,
+  132,180,132,179,132,147,124,147,124,115,116,114,116,50,108,241,91,209,83,144,
+  75,180,132,150,157,20,149,113,132,37,33,134,49,167,49,4,199,49,134,231,
+  57,199,49,231,57,199,49,231,57,199,49,3,231,57,143,232,57,232,57,8,
+  58,232,49,199,8,231,16,7,25,230,24,133,8,165,8,165,8,166,8,166,
+  8,198,8,165,8,4,132,8,158,133,8,133,8,104,41,110,115,146,156,20,
+  173,20,173,19,173,20,173,19,173,19,173,52,173,20,173,20,173,52,173,20,
+  173,19,173,52,181,52,173,20,173,19,173,243,172,19,173,243,172,52,181,52,
+  181,19,173,20,173,52,181,20,181,6,52,181,129,52,173,3,52,181,9,84,
+  181,4,85,189,140,117,189,211,164,40,66,130,16,195,24,163,24,162,16,163,
+  24,163,24,162,16,162,16,163,24,5,162,16,155,130,16,68,49,39,90,104,
+  98,136,106,137,106,71,106,39,98,38,98,5,98,5,98,5,106,4,106,196,
+  113,196,105,164,113,131,105,99,97,99,97,66,81,66,81,1,73,2,65,39,
+  90,10,123,169,106,169,106,3,42,123,190,104,106,34,73,2,73,34,73,164,
+  89,229,105,196,105,196,105,228,113,195,105,163,105,131,105,131,97,131,97,131,
+  89,33,73,1,73,225,56,230,81,42,123,233,114,168,98,43,123,42,123,43,
+  123,10,123,71,98,6,98,71,106,104,106,136,106,169,114,201,122,233,122,234,
+  122,10,123,42,131,42,123,42,131,43,131,74,131,75,131,75,131,43,131,43,
+  131,75,131,169,114,234,106,75,131,42,123,10,123,234,114,10,115,234,106,201,
+  106,169,106,168,98,103,98,104,98,71,82,71,82,38,82,6,6,90,140,38,
+  98,38,98,6,106,38,98,38,106,38,106,38,98,38,106,70,106,69,106,70,
+  106,102,114,4,70,114,146,102,114,102,114,70,114,102,114,134,122,102,114,135,
+  122,134,122,135,122,135,114,135,114,102,114,70,106,37,98,5,90,229,89,196,
+  81,132,65,255,3,132,236,90,12,91,12,91,236,90,14,12,91,129,12,99,
+  3,12,91,129,12,99,7,12,91,132,44,99,44,99,12,91,12,99,3,44,
+  99,138,45,99,12,91,44,91,44,99,12,91,44,99,44,99,44,91,12,91,
+  45,99,3,12,91,132,44,99,12,91,12,91,45,91,3,44,99,136,12,91,
+  44,99,44,99,12,99,44,99,12,91,44,99,44,91,3,45,91,143,12,91,
+  44,99,44,91,44,99,44,99,45,99,44,91,44,99,44,91,45,91,45,91,
+  44,91,45,91,12,91,45,99,3,44,91,133,45,99,45,91,44,91,44,99,
+  45,91,4,44,91,132,45,91,44,99,12,99,44,91,4,12,91,135,44,91,
+  44,91,12,91,44,91,12,91,45,91,13,91,7,12,91,134,44,99,12,91,
+  13,91,12,91,12,91,13,91,7,12,91,130,236,82,12,83,3,12,91,129,
+  236,90,4,12,91,130,13,91,12,83,3,12,91,144,12,83,45,91,12,91,
+  204,82,203,82,203,82,236,82,12,91,77,91,143,107,240,107,49,116,82,116,
+  82,116,114,124,82,124,4,114,124,135,146,124,114,124,114,124,146,124,146,124,
+  115,124,115,124,3,114,116,137,82,116,50,116,208,99,110,83,172,58,232,41,
+  4,25,195,16,162,16,12,130,16,158,130,8,130,8,130,16,130,8,134,41,
+  171,74,109,99,175,107,143,99,110,99,111,91,110,99,110,91,110,91,176,99,
+  17,116,49,116,114,124,49,124,16,116,17,116,17,116,175,107,236,82,167,41,
+  4,17,73,58,110,91,17,116,115,124,7,147,124,133,179,124,179,124,147,124,
+  179,124,147,124,3,179,124,3,147,124,129,179,124,4,147,124,129,179,132,5,
+  147,124,12,179,124,4,179,132,139,180,132,147,124,114,132,77,99,236,90,12,
+  99,236,90,13,99,147,132,211,132,179,124,3,179,132,136,179,124,180,124,180,
+  132,179,132,179,124,180,124,179,132,179,124,13,180,132,133,180,124,180,132,179,
+  124,180,132,212,132,4,180,132,131,211,132,211,132,212,132,3,180,132,129,212,
+  124,3,212,132,131,180,132,212,124,212,124,3,212,132,133,180,132,212,132,212,
+  124,212,132,180,132,44,212,132,132,180,132,212,132,180,132,180,132,4,212,132,
+  129,211,132,17,212,132,131,180,132,212,132,180,132,3,212,132,135,180,132,180,
+  132,212,132,212,132,180,132,212,132,180,132,7,212,132,147,17,116,110,107,142,
+  115,142,115,77,107,215,181,236,90,77,107,142,107,244,132,211,132,179,132,180,
+  132,180,132,179,132,180,132,179,132,180,132,212,132,4,180,132,4,179,132,131,
+  179,124,180,132,179,132,4,180,124,130,179,124,179,132,3,180,132,7,179,132,
+  142,147,124,147,124,82,116,50,108,241,91,209,83,144,75,147,124,182,165,244,
+  148,81,124,37,33,134,41,167,49,5,199,49,152,231,49,199,49,232,57,199,
+  49,199,49,199,57,232,57,231,57,231,49,8,58,8,58,8,50,167,0,231,
+  16,7,25,230,24,133,8,133,8,165,8,165,8,198,8,198,8,165,8,131,
+  8,3,132,8,133,133,8,133,8,71,33,77,107,146,156,7,20,173,136,19,
+  173,52,181,19,173,19,173,52,173,20,173,20,173,52,181,4,20,173,133,52,
+  181,52,181,20,173,51,173,52,173,11,52,181,145,84,181,84,181,52,181,84,
+  181,52,181,52,181,84,181,84,181,52,181,85,189,84,181,85,189,117,189,117,
+  189,20,181,170,90,130,16,4,163,24,152,162,16,162,16,130,16,163,24,163,
+  24,162,16,163,24,162,16,130,16,130,16,100,49,169,106,201,114,201,114,169,
+  106,230,89,67,73,99,73,99,81,99,89,98,89,98,97,130,105,131,105,4,
+  163,105,145,196,105,164,97,34,81,1,65,197,81,10,123,201,114,168,98,10,
+  115,10,123,42,123,201,114,67,73,2,65,34,73,34,81,99,89,4,66,89,
+  3,66,81,141,99,81,132,81,132,81,164,81,197,81,103,98,42,123,10,123,
+  136,106,11,123,43,123,42,123,43,131,3,10,123,152,43,123,43,123,43,131,
+  42,131,43,123,43,131,43,123,42,123,43,131,43,131,42,123,42,123,10,123,
+  10,123,233,114,233,114,201,106,136,98,136,98,233,106,168,106,71,90,72,90,
+  38,82,3,6,82,137,6,90,6,90,38,90,6,90,6,90,38,98,37,106,
+  70,106,38,106,4,70,106,133,70,114,102,114,102,106,102,114,70,114,3,102,
+  114,131,135,122,135,122,134,122,5,135,122,145,134,122,103,114,70,114,69,106,
+  38,98,5,90,228,81,196,73,132,65,99,57,99,57,67,49,34,41,2,33,
+  2,33,226,32,226,32,59,4,134,236,90,12,99,12,99,12,91,12,99,12,
+  99,4,12,91,130,12,99,12,99,3,12,91,129,12,99,5,12,91,129,44,
+  99,5,12,91,130,12,99,12,99,3,12,91,153,44,99,44,99,12,91,12,
+  91,12,99,12,91,12,91,44,99,12,91,44,99,44,99,12,91,44,99,12,
+  91,44,99,12,91,45,99,12,91,12,91,44,99,12,91,44,91,12,91,12,
+  91,44,91,5,44,99,141,12,91,44,91,45,91,45,99,45,99,45,91,44,
+  91,45,99,44,99,44,91,12,91,12,91,45,91,3,44,91,137,45,91,44,
+  91,45,91,45,91,44,91,45,91,45,91,44,91,44,91,3,45,91,129,12,
+  91,3,44,91,153,12,91,45,91,45,99,12,91,12,91,45,91,12,91,44,
+  99,44,91,44,91,44,99,12,91,44,91,45,91,45,91,12,91,13,91,12,
+  91,44,91,45,91,13,91,44,91,12,91,44,91,44,91,3,12,91,129,13,
+  91,3,12,91,129,12,83,18,12,91,143,12,83,44,91,12,91,203,82,203,
+  74,203,82,236,90,12,91,78,99,175,99,16,108,49,116,82,116,82,124,82,
+  124,8,114,124,145,146,124,114,124,115,124,114,124,114,116,82,116,82,116,82,
+  108,50,108,17,100,176,91,78,83,139,66,199,41,228,24,163,16,162,16,4,
+  130,16,129,162,16,7,130,16,157,98,8,98,8,195,16,73,66,45,99,175,
+  115,207,115,175,107,143,99,142,91,110,91,78,91,110,91,208,99,17,108,50,
+  116,114,124,82,124,17,116,17,116,50,116,17,116,78,99,73,66,4,25,135,
+  33,13,75,240,107,114,124,8,147,124,130,179,124,179,124,4,147,124,131,179,
+  124,147,124,147,124,3,179,124,137,147,124,179,124,147,124,179,124,147,124,179,
+  124,179,124,147,124,147,124,4,179,124,3,179,132,5,179,124,130,179,132,179,
+  124,3,180,132,139,146,124,81,124,110,107,12,99,13,99,12,99,12,99,110,
+  107,212,132,211,124,179,132,3,180,132,129,179,124,3,180,132,129,179,132,3,
+  180,132,130,179,124,180,124,9,180,132,129,212,132,4,180,132,132,211,132,179,
+  132,180,132,212,132,5,180,132,135,212,132,212,132,212,124,180,132,212,132,212,
+  132,180,132,4,212,132,129,180,132,50,212,132,129,180,132,6,212,132,129,211,
+  132,11,212,132,129,180,132,5,212,132,134,180,132,212,132,180,132,212,132,212,
+  132,212,124,4,212,132,129,180,132,5,212,132,145,180,132,212,132,212,132,180,
+  132,179,132,49,116,110,115,77,107,110,107,118,173,12,99,77,107,109,107,179,
+  132,179,132,211,132,212,132,3,180,132,142,211,132,180,132,212,132,180,132,212,
+  132,211,132,180,132,180,132,211,132,180,132,179,132,180,132,180,124,180,132,4,
+  180,124,154,179,124,180,132,179,124,180,132,180,132,179,132,180,132,179,132,212,
+  132,180,132,180,132,179,132,147,124,115,124,115,116,50,108,242,91,209,83,144,
+  75,114,116,150,165,244,148,20,141,69,33,102,41,167,49,4,199,49,135,231,
+  49,199,57,199,49,199,57,232,57,232,49,199,49,3,231,57,142,232,57,231,
+  57,232,49,199,8,232,16,7,25,6,25,132,8,132,8,165,8,165,8,166,
+  8,198,8,165,8,4,132,8,138,133,8,133,8,39,33,13,99,113,156,20,
+  173,20,173,19,173,20,173,52,173,9,20,173,129,52,173,4,20,173,144,52,
+  173,52,181,51,173,52,181,52,173,52,181,52,181,20,173,52,181,52,181,20,
+  173,52,181,52,181,52,173,52,181,84,181,4,52,181,131,84,181,84,181,52,
+  181,4,84,181,134,117,189,84,181,117,189,52,181,77,107,162,16,5,163,24,
+  207,162,16,162,24,162,16,163,24,163,24,163,16,163,24,162,16,130,16,36,
+  41,136,98,233,114,201,114,201,114,165,89,1,65,66,73,131,89,131,97,163,
+  97,196,105,228,105,4,114,5,114,228,113,4,114,228,105,196,97,196,97,66,
+  81,225,64,132,73,201,106,233,114,136,98,10,115,42,123,42,123,233,122,164,
+  81,1,57,34,73,66,73,99,81,132,81,132,81,228,89,6,98,5,98,39,
+  98,104,106,136,106,168,114,201,114,201,114,233,114,10,123,43,123,10,123,136,
+  106,233,114,42,123,43,123,43,131,43,131,75,131,43,131,42,123,42,123,11,
+  123,10,123,10,115,10,115,233,114,234,114,169,106,168,106,136,98,104,98,3,
+  71,90,136,39,90,38,90,6,82,6,90,38,90,38,90,39,90,6,90,3,
+  38,98,129,38,106,3,70,106,133,70,114,70,106,102,114,70,114,70,114,4,
+  102,114,151,135,114,103,122,135,122,134,122,134,122,167,122,135,122,135,122,135,
+  114,135,114,102,114,70,106,70,106,5,90,5,82,196,81,164,73,131,65,99,
+  57,67,49,34,49,2,41,2,41,3,226,32,136,2,33,225,32,226,32,226,
+  32,2,33,34,41,35,49,34,41,231,3,4,12,91,129,12,99,3,12,91,
+  129,12,99,3,12,91,129,236,90,5,12,91,129,12,99,3,12,91,132,12,
+  99,12,91,44,99,12,91,3,12,99,130,44,99,44,99,4,12,91,137,44,
+  99,44,99,44,91,44,99,12,99,12,99,44,99,44,99,12,91,8,44,99,
+  139,44,91,44,91,44,99,44,99,12,91,12,99,44,99,44,91,44,99,44,
+  99,12,91,4,44,91,142,44,99,44,99,12,91,44,91,44,91,45,99,45,
+  99,45,91,13,91,45,91,45,99,45,99,44,91,45,91,4,45,99,150,44,
+  99,44,91,12,91,45,91,44,91,44,91,12,91,44,91,45,91,13,91,45,
+  91,45,91,44,91,12,91,12,91,45,91,44,91,12,91,45,91,45,91,44,
+  91,44,91,4,12,91,129,45,91,3,12,91,129,44,91,19,12,91,129,12,
+  83,6,12,91,134,12,83,12,91,12,91,13,91,12,91,12,91,3,203,82,
+  136,236,90,45,91,110,99,175,99,17,108,49,116,82,116,82,116,7,114,124,
+  129,114,116,3,114,124,130,114,116,114,116,3,82,116,141,50,108,17,108,17,
+  100,241,99,175,91,13,75,74,58,69,33,163,16,98,8,130,16,130,16,98,
+  8,8,130,16,148,98,8,98,16,130,8,134,41,203,82,142,107,239,123,207,
+  115,175,107,143,99,142,99,78,91,78,91,111,91,176,99,50,116,49,116,114,
+  124,114,132,49,124,3,49,116,135,175,107,171,74,134,41,4,25,139,66,175,
+  99,82,116,5,147,124,130,179,124,179,124,4,147,124,131,179,124,179,124,179,
+  132,3,147,124,134,179,124,147,124,179,124,147,124,179,124,179,124,5,147,124,
+  6,179,124,154,179,132,179,124,179,124,179,132,179,124,179,132,211,132,179,124,
+  179,124,180,132,179,132,211,132,114,124,81,132,13,99,12,99,13,99,12,99,
+  236,98,171,82,17,116,212,132,179,132,180,132,180,132,212,132,7,180,132,130,
+  211,132,179,132,10,180,132,140,212,132,179,132,180,132,180,132,179,132,180,132,
+  212,132,180,132,212,132,180,132,212,132,212,124,3,212,132,129,180,132,8,212,
+  132,129,212,124,79,212,132,129,180,132,16,212,132,145,179,132,212,140,77,107,
+  77,107,240,123,211,148,12,107,77,115,77,107,114,124,212,132,212,132,179,132,
+  212,132,180,132,212,132,212,132,3,180,132,140,212,132,180,132,212,132,211,132,
+  180,132,212,132,211,132,179,124,212,124,180,132,180,124,212,124,4,180,124,130,
+  179,124,180,132,3,179,132,3,180,132,144,179,132,179,132,147,124,147,124,114,
+  116,50,108,242,91,209,83,144,83,115,124,214,165,20,149,179,140,102,49,101,
+  41,167,49,3,199,49,130,231,57,199,57,3,199,49,157,231,57,231,49,199,
+  49,231,57,232,57,231,57,232,57,231,57,232,49,199,8,231,16,6,33,6,
+  25,164,8,132,8,165,8,165,8,198,8,198,16,165,8,132,8,131,8,132,
+  8,132,8,133,8,133,8,6,25,236,98,81,148,11,20,173,134,19,173,19,
+  173,20,181,20,173,20,173,19,173,3,20,173,139,52,173,19,173,20,173,52,
+  181,52,181,20,173,19,173,20,173,19,173,52,181,52,173,9,52,181,130,84,
+  181,52,181,3,84,181,135,84,189,85,189,85,189,117,189,85,181,207,131,227,
+  24,5,163,24,129,163,16,5,162,16,144,162,24,162,16,130,16,228,24,104,
+  90,233,114,201,114,201,114,229,89,2,65,34,73,164,89,196,97,163,105,196,
+  105,195,105,3,163,105,153,130,97,98,89,66,81,66,81,2,73,226,56,67,
+  65,201,106,10,123,136,98,10,115,42,123,10,123,10,123,168,114,38,90,39,
+  98,103,106,136,106,168,114,201,114,201,114,234,114,10,123,10,123,3,42,123,
+  174,75,131,43,131,42,123,43,131,43,123,75,123,168,106,201,106,75,131,10,
+  123,234,122,233,114,233,106,201,106,169,106,169,106,136,98,104,98,71,90,39,
+  90,71,90,7,90,6,82,7,90,38,90,6,90,38,90,6,90,5,90,6,
+  98,38,98,38,98,38,106,70,106,70,106,38,106,70,106,70,106,70,114,102,
+  114,102,114,134,114,134,114,102,114,103,114,134,122,4,135,122,3,167,122,162,
+  135,114,135,114,102,106,70,106,37,98,37,90,229,81,196,73,164,65,99,65,
+  99,57,67,49,34,49,2,41,2,41,2,33,226,32,2,33,226,32,226,32,
+  2,33,35,41,67,49,67,49,34,41,35,41,100,49,99,57,99,57,67,57,
+  99,57,67,49,164,65,99,57,251,3,130,236,90,236,90,17,12,91,141,44,
+  99,12,91,44,99,12,99,12,99,12,91,12,91,12,99,12,99,12,91,44,
+  99,12,91,12,91,3,44,99,168,44,91,12,91,12,91,44,91,12,91,44,
+  91,12,91,12,91,44,99,12,99,44,91,44,91,12,91,44,99,44,91,44,
+  91,44,99,12,99,44,99,45,91,45,91,45,99,12,99,44,99,12,99,44,
+  99,44,99,12,99,44,99,44,99,12,91,44,91,45,99,45,99,44,99,44,
+  99,44,91,45,91,12,91,45,91,3,44,91,146,12,99,45,91,45,91,44,
+  99,12,91,44,99,45,91,45,91,44,99,45,91,45,91,44,99,44,99,44,
+  91,12,91,44,99,44,91,44,91,3,45,91,138,44,91,12,91,12,91,44,
+  91,12,91,44,99,12,91,44,91,12,91,13,91,4,45,91,136,44,91,12,
+  91,12,91,44,91,13,91,45,91,12,91,45,91,6,12,91,131,236,82,12,
+  91,12,83,10,12,91,129,12,83,3,12,91,142,13,91,13,91,12,91,236,
+  82,204,82,203,82,236,82,236,90,45,91,111,99,208,107,17,116,49,116,82,
+  116,6,114,124,4,114,116,146,114,124,114,124,114,116,114,116,82,116,82,116,
+  50,108,49,108,17,100,17,100,241,99,208,99,110,91,171,66,199,41,4,25,
+  195,16,162,16,3,163,16,167,195,16,163,16,130,16,130,16,98,16,130,16,
+  130,16,162,16,195,16,102,41,138,74,77,99,239,123,16,124,240,115,175,107,
+  143,107,110,99,78,91,45,83,79,83,176,99,18,108,50,116,114,124,114,132,
+  82,124,49,116,49,116,50,116,240,107,13,83,8,50,228,24,232,41,78,83,
+  17,116,115,124,115,124,3,147,124,6,179,124,131,147,124,147,124,179,124,3,
+  147,124,143,179,124,179,124,147,124,179,124,147,124,180,124,147,124,179,132,147,
+  132,179,124,147,132,179,132,179,124,179,124,180,124,3,179,124,141,179,132,180,
+  132,179,124,179,124,179,132,180,124,180,124,179,124,180,124,179,132,212,132,114,
+  124,49,132,3,12,99,133,236,90,12,99,12,99,45,91,179,132,3,180,132,
+  135,180,124,180,132,179,132,180,124,180,132,180,132,180,124,10,180,132,138,212,
+  132,212,124,180,132,211,132,179,132,180,132,180,132,212,132,180,132,212,124,3,
+  212,132,138,212,124,180,132,180,132,212,132,212,132,180,132,212,132,180,132,212,
+  132,180,132,8,212,132,131,180,132,212,132,212,124,90,212,132,139,49,116,179,
+  140,77,107,12,107,146,140,113,140,44,107,109,115,109,115,240,123,212,140,3,
+  212,132,130,211,132,212,132,5,180,132,130,179,132,212,132,4,180,132,4,180,
+  124,4,212,124,3,180,124,151,179,124,180,132,179,132,180,132,180,132,212,132,
+  179,132,179,132,147,124,147,124,115,116,50,108,242,91,209,83,177,83,18,108,
+  183,165,20,149,179,140,166,49,102,41,167,49,167,49,7,199,49,148,231,57,
+  231,57,199,49,199,57,199,49,231,57,231,57,232,57,232,49,232,8,231,16,
+  39,33,6,25,164,16,132,8,165,16,166,8,198,8,198,16,165,8,4,132,
+  8,134,133,8,133,8,230,24,204,90,81,148,243,164,3,20,173,129,19,173,
+  8,20,173,133,19,173,20,173,243,172,20,173,52,173,3,20,173,136,52,173,
+  52,181,20,173,52,181,19,173,19,173,52,173,19,173,11,52,181,141,84,181,
+  85,189,52,181,84,181,84,181,85,189,85,181,85,189,117,189,85,189,48,140,
+  36,33,162,16,6,163,24,137,162,24,163,24,163,24,162,16,163,24,162,16,
+  162,16,163,24,39,82,3,233,114,154,38,98,2,65,225,64,66,73,66,81,
+  66,81,66,89,98,89,65,89,34,81,66,89,66,81,66,81,99,81,131,81,
+  164,81,197,81,38,90,234,114,42,123,137,98,202,106,43,123,42,123,42,123,
+  43,131,3,10,123,3,42,123,136,43,131,43,131,42,131,42,123,75,123,42,
+  123,10,123,10,123,3,234,114,139,201,106,201,106,136,98,104,98,201,106,104,
+  98,71,90,39,90,39,90,6,90,6,82,6,6,90,3,38,98,129,70,98,
+  3,70,106,132,102,106,102,114,70,106,70,114,3,102,114,133,103,122,103,122,
+  134,122,135,122,135,122,3,167,122,148,135,122,135,122,134,114,102,114,70,106,
+  70,106,5,90,229,89,228,73,196,65,164,65,131,57,67,57,66,49,34,41,
+  34,41,3,41,2,33,2,41,1,33,5,226,32,4,2,41,143,34,41,67,
+  49,67,41,99,57,99,49,131,57,196,65,132,65,132,57,164,65,132,65,99,
+  57,67,49,67,49,34,41,223,3,9,12,91,129,12,99,6,12,91,129,12,
+  99,6,12,91,132,12,99,12,91,12,99,12,91,3,12,99,142,45,99,12,
+  91,44,99,12,91,12,99,12,99,12,91,44,99,44,99,44,91,44,99,12,
+  99,44,99,12,99,3,44,91,3,44,99,169,44,91,45,99,45,91,45,99,
+  44,91,44,99,45,99,44,99,44,99,45,91,44,91,44,91,44,99,45,91,
+  44,99,45,99,12,99,45,91,45,91,44,99,44,99,44,91,44,91,45,91,
+  45,91,44,99,44,91,44,99,44,91,45,99,44,91,12,91,44,99,44,91,
+  45,99,13,91,45,91,45,99,12,91,44,91,44,99,5,44,91,139,45,91,
+  44,99,12,91,45,91,12,91,45,91,45,99,44,91,44,91,12,91,13,91,
+  4,12,91,131,44,91,44,91,45,91,15,12,91,129,12,83,4,12,91,130,
+  236,82,12,83,5,12,91,143,44,91,12,91,13,91,13,91,12,83,12,91,
+  236,82,204,82,204,82,236,82,12,91,45,91,143,107,208,107,49,116,3,82,
+  116,4,114,124,129,114,116,3,114,124,3,114,116,185,82,116,82,116,82,108,
+  82,108,50,116,50,108,17,100,241,99,241,99,208,99,143,91,236,74,73,58,
+  134,41,69,33,37,33,36,33,36,25,37,33,36,33,4,25,4,33,4,25,
+  4,25,37,33,69,33,134,41,232,57,138,74,45,99,207,115,48,132,16,124,
+  240,115,207,107,143,107,111,99,77,91,46,83,111,83,176,99,17,108,49,116,
+  114,124,114,132,82,124,82,124,49,116,50,116,17,116,110,91,106,66,69,25,
+  69,33,236,74,208,107,114,124,6,147,124,130,179,124,179,124,3,147,124,132,
+  179,124,147,124,147,124,179,132,6,179,124,129,147,124,7,179,124,130,180,124,
+  179,132,4,179,124,144,180,132,180,124,179,132,179,124,180,132,179,124,179,132,
+  180,124,179,132,212,124,81,124,240,123,45,99,12,91,12,91,12,99,3,13,
+  99,130,208,107,212,132,3,180,132,129,179,132,5,180,132,129,180,124,4,180,
+  132,133,212,132,212,132,180,132,212,132,180,124,6,180,132,130,212,132,180,132,
+  91,212,132,130,212,140,212,140,22,212,132,156,211,132,176,99,81,132,12,99,
+  171,90,118,165,207,115,77,107,77,107,110,115,142,107,212,140,212,132,212,132,
+  180,132,212,132,180,132,212,132,211,132,211,132,180,132,179,132,212,132,212,132,
+  180,132,180,132,179,132,211,132,4,180,124,4,212,124,153,180,124,212,124,180,
+  124,212,124,180,132,179,132,180,132,212,132,180,132,179,132,179,124,147,124,147,
+  124,114,116,50,108,241,91,210,83,177,83,241,99,215,165,243,140,20,149,199,
+  49,69,33,166,41,7,199,49,132,199,57,231,57,231,57,199,49,3,231,57,
+  144,232,57,231,49,232,49,232,8,232,16,7,25,6,33,164,16,132,8,165,
+  8,166,8,198,8,166,8,165,8,132,8,99,8,3,132,8,133,133,8,198,
+  16,171,82,48,140,243,172,3,20,173,129,19,173,7,20,173,132,19,173,19,
+  173,20,173,243,172,3,20,173,138,52,173,20,173,20,173,52,173,52,173,20,
+  173,52,181,19,173,20,173,52,173,3,52,181,129,20,181,6,52,181,7,84,
+  181,138,117,189,85,189,84,189,85,189,146,156,134,41,163,24,195,24,195,24,
+  163,24,3,162,16,5,163,24,164,162,16,130,24,130,16,230,65,233,114,233,
+  114,234,114,104,106,67,73,1,65,34,65,67,73,99,81,132,81,196,89,229,
+  89,6,98,38,98,71,106,104,106,136,106,168,114,169,114,233,114,234,114,43,
+  123,42,123,169,106,169,106,42,123,43,131,43,123,43,123,42,123,43,123,43,
+  123,4,10,123,143,234,114,234,114,201,106,201,106,168,98,136,98,103,98,103,
+  98,71,90,39,90,39,90,39,82,6,82,38,82,39,90,3,6,90,129,6,
+  98,4,38,98,5,70,106,193,102,114,70,114,102,106,102,114,102,122,134,114,
+  135,114,134,122,135,122,167,122,167,122,135,122,167,122,135,122,135,122,102,114,
+  102,106,70,106,37,98,5,90,229,81,196,73,164,65,131,57,99,57,67,49,
+  67,49,34,41,34,41,2,33,226,32,225,32,225,32,2,41,226,32,226,32,
+  2,33,226,40,2,33,2,41,34,41,67,49,67,49,68,49,100,57,100,57,
+  132,57,132,65,164,65,34,49,67,49,164,65,34,49,131,49,99,49,66,49,
+  67,49,35,49,2,41,2,41,34,41,2,41,2,41,2,33,226,32,246,3,
+  134,236,90,12,91,12,91,236,90,12,91,12,99,16,12,91,136,44,99,12,
+  91,12,91,12,99,12,91,13,99,12,99,12,99,3,12,91,139,12,99,12,
+  99,45,99,44,91,12,91,45,99,12,91,12,91,44,99,12,91,12,91,4,
+  44,99,136,44,91,45,99,44,99,44,91,44,91,45,99,12,91,44,99,4,
+  12,91,130,44,91,44,91,3,44,99,142,44,91,45,99,45,99,44,99,45,
+  99,44,99,44,91,44,91,45,91,44,91,44,91,45,91,44,91,45,99,3,
+  44,91,147,44,99,45,99,44,91,45,91,45,91,44,91,45,91,45,91,12,
+  91,44,91,44,91,44,99,44,99,45,91,45,99,44,91,44,99,44,91,12,
+  91,3,45,91,145,44,91,45,91,45,91,12,91,12,91,44,91,45,91,44,
+  91,44,91,13,91,44,91,44,91,12,91,12,91,44,91,12,91,45,91,19,
+  12,91,135,13,91,12,91,13,91,12,83,12,91,45,91,12,91,3,203,82,
+  136,236,90,12,91,77,91,174,99,240,107,49,116,82,116,82,116,10,114,124,
+  177,114,116,114,116,82,116,114,116,82,116,82,108,50,108,18,108,17,100,241,
+  99,241,99,240,99,143,91,45,91,171,74,41,58,232,57,232,57,231,57,199,
+  49,231,57,232,57,231,57,231,57,232,57,232,57,40,66,105,74,170,82,235,
+  90,77,99,207,115,48,132,48,132,16,124,240,115,207,107,175,107,110,107,45,
+  91,45,83,78,83,176,91,241,107,17,108,114,116,114,132,114,132,82,124,3,
+  49,116,135,175,99,203,74,167,41,4,17,106,58,143,99,82,116,6,147,124,
+  136,179,132,179,124,179,124,147,124,179,124,147,124,147,124,179,124,4,147,124,
+  10,179,124,129,180,124,4,179,124,131,179,132,179,124,179,132,3,180,132,146,
+  179,124,179,132,179,124,179,124,212,124,212,132,240,115,175,115,12,91,236,90,
+  236,90,12,99,236,90,45,99,45,99,12,91,147,132,212,132,3,180,132,129,
+  179,132,7,180,132,142,212,132,212,132,180,132,212,132,212,132,180,132,212,132,
+  179,132,180,132,212,132,180,132,212,132,212,132,180,132,106,212,132,150,212,140,
+  212,132,212,132,180,132,180,132,179,132,147,124,179,124,147,124,180,124,82,116,
+  17,108,179,140,45,99,138,82,247,181,45,107,77,107,109,107,109,115,77,107,
+  146,132,3,212,132,129,180,132,3,212,132,134,211,132,212,132,211,132,211,132,
+  212,132,211,132,4,180,132,3,180,124,158,212,124,212,124,180,124,212,132,212,
+  124,212,124,180,124,180,132,179,132,211,132,179,124,211,132,180,132,180,132,180,
+  124,147,124,147,124,115,116,50,108,242,91,210,83,177,83,209,99,215,165,85,
+  149,53,149,232,57,69,33,166,49,166,49,4,199,49,134,199,57,199,49,232,
+  57,199,49,231,57,232,57,3,231,57,154,199,49,231,57,8,58,232,8,231,
+  16,7,33,6,33,196,16,132,8,165,8,166,8,198,8,198,8,165,16,132,
+  8,100,8,132,16,132,8,132,8,133,8,166,16,106,74,16,140,243,164,20,
+  173,19,173,4,20,173,3,19,173,131,20,173,20,173,19,173,3,243,172,139,
+  19,173,20,173,19,173,20,181,19,173,19,173,52,173,20,173,19,173,52,173,
+  20,173,4,52,181,131,52,173,19,173,20,181,3,52,181,8,84,181,138,85,
+  189,84,181,84,181,85,189,117,189,178,164,8,66,162,16,163,24,195,24,10,
+  163,24,173,162,16,130,16,166,57,201,106,234,114,234,114,233,114,71,98,38,
+  90,71,98,103,106,136,106,136,106,201,114,233,114,233,122,234,122,10,123,10,
+  123,43,123,42,123,75,131,43,123,43,123,42,123,43,131,201,114,168,106,43,
+  123,10,123,233,114,202,114,201,106,201,106,169,106,136,106,136,98,104,90,71,
+  90,71,90,39,90,39,90,38,90,6,82,38,90,3,6,90,182,5,90,6,
+  98,38,98,37,98,38,98,38,98,38,106,70,106,70,106,70,114,70,114,102,
+  114,102,114,103,114,102,114,102,114,134,114,135,114,102,114,135,122,167,122,167,
+  114,135,122,135,122,167,122,102,114,102,106,70,106,37,98,5,98,228,89,196,
+  73,164,73,131,65,99,57,67,49,67,49,34,41,34,41,2,33,2,33,226,
+  32,226,32,2,33,226,32,2,33,226,32,2,33,2,41,34,41,34,41,67,
+  49,67,49,68,57,3,100,57,3,132,57,3,100,57,137,67,57,67,49,67,
+  49,34,41,100,49,100,57,35,49,132,57,1,41,3,2,41,134,226,32,2,
+  41,226,40,2,41,2,41,2,33,3,2,41,182,3,3,12,91,129,236,90,
+  8,12,91,129,12,99,4,12,91,136,12,99,12,99,12,91,12,99,12,91,
+  12,99,12,99,44,99,8,12,91,3,44,99,139,44,91,44,91,45,91,45,
+  91,44,91,45,99,12,91,44,99,12,99,45,99,44,99,3,45,99,143,12,
+  91,44,99,44,91,44,91,44,99,44,99,45,99,44,99,44,99,45,99,44,
+  99,45,91,44,99,44,99,12,91,3,44,99,138,45,99,45,99,12,99,45,
+  91,44,91,45,91,13,91,45,91,12,91,44,91,3,45,91,129,45,99,4,
+  44,91,130,45,91,44,91,3,45,91,144,44,91,45,91,44,99,44,91,45,
+  91,45,99,44,91,45,91,12,91,12,91,44,91,13,91,44,91,44,91,12,
+  91,13,91,3,12,91,133,45,91,13,91,12,91,45,99,45,91,9,12,91,
+  129,13,91,16,12,91,147,44,91,12,91,13,91,12,83,13,91,12,91,203,
+  82,203,74,204,82,236,90,13,91,78,99,207,107,17,116,49,116,82,116,82,
+  124,114,124,114,116,8,114,124,148,114,116,82,116,82,116,82,108,82,108,50,
+  108,50,108,17,100,17,100,241,99,241,91,240,99,207,99,110,99,45,91,203,
+  82,171,82,170,82,138,74,170,82,3,171,82,154,203,82,203,90,235,90,12,
+  99,45,99,77,99,142,107,207,115,16,124,81,132,81,132,17,124,240,115,207,
+  107,175,107,110,99,45,91,13,75,78,83,143,91,208,99,241,107,81,116,146,
+  132,114,132,82,124,3,49,116,135,208,107,13,83,8,50,4,17,232,41,78,
+  83,17,116,6,147,124,3,179,132,130,179,124,180,124,11,179,124,129,147,124,
+  12,179,124,4,180,132,147,179,124,211,132,179,132,179,132,180,132,180,132,114,
+  132,175,115,12,91,236,90,236,90,12,99,12,99,45,99,45,99,13,99,175,
+  107,212,132,212,132,3,180,132,129,212,132,6,180,132,130,212,132,212,132,3,
+  180,132,3,212,132,129,212,124,8,212,132,129,180,132,94,212,132,129,180,132,
+  3,179,132,155,179,124,147,124,147,124,148,124,180,124,245,132,55,141,120,149,
+  250,165,91,174,221,190,61,199,94,215,94,215,219,198,81,116,17,124,77,99,
+  41,66,247,189,44,107,77,107,45,107,109,107,109,107,17,116,244,132,7,212,
+  132,133,211,132,180,132,212,132,180,132,211,132,3,180,132,4,180,124,4,212,
+  124,135,212,132,212,132,211,132,180,132,180,132,212,132,212,132,3,180,132,143,
+  180,124,179,124,147,124,115,116,50,108,242,91,209,83,177,83,177,99,215,165,
+  53,157,85,157,73,66,69,41,166,49,5,199,49,136,199,57,199,49,199,49,
+  231,57,199,57,231,57,199,49,232,57,3,231,57,150,231,49,8,17,231,16,
+  7,33,6,33,196,16,132,8,165,16,165,8,166,8,166,8,165,8,132,16,
+  99,8,132,16,132,16,132,8,133,8,165,16,42,66,240,131,211,164,6,20,
+  173,129,243,164,3,243,172,133,20,173,19,173,243,172,19,173,243,172,4,19,
+  173,5,20,173,129,52,173,5,52,181,134,20,181,19,173,19,173,20,173,52,
+  181,52,181,4,84,181,129,52,181,4,84,181,138,85,181,84,181,84,181,117,
+  189,243,172,138,82,162,16,163,24,195,24,195,24,9,163,24,138,162,16,130,
+  16,101,41,169,106,234,114,234,114,10,123,234,122,233,122,234,122,3,10,123,
+  133,42,123,42,123,43,131,42,123,42,123,3,10,123,143,234,114,233,114,233,
+  114,201,106,201,106,169,106,103,98,201,106,169,106,104,98,104,90,71,90,70,
+  90,38,90,38,90,5,6,90,3,38,98,136,38,106,38,106,70,106,71,106,
+  70,106,102,106,102,106,70,106,3,102,114,3,134,114,5,135,122,142,134,114,
+  135,114,102,114,70,106,38,106,5,98,5,90,196,81,164,73,163,65,131,57,
+  99,57,67,57,67,49,3,34,41,3,2,33,4,226,32,152,2,33,3,33,
+  34,41,35,41,67,49,67,49,100,57,100,57,132,57,132,65,132,57,132,57,
+  100,57,100,57,68,57,68,49,67,49,67,49,35,49,67,41,34,41,2,41,
+  2,33,2,41,4,2,33,145,35,33,164,57,2,41,165,57,34,49,2,41,
+  2,33,2,41,2,33,2,41,2,33,2,33,226,40,226,32,2,33,165,57,
+  71,90,19,4,130,12,91,11,91,6,12,91,129,12,99,4,12,91,129,12,
+  99,7,12,91,138,12,99,12,91,12,91,12,99,12,99,12,91,12,99,44,
+  91,12,91,45,99,3,12,91,141,44,99,44,91,44,91,12,91,12,99,45,
+  99,12,91,45,99,45,99,44,99,12,99,44,99,12,91,5,44,99,130,12,
+  91,12,91,3,44,99,140,12,91,12,91,44,99,44,91,45,99,45,99,44,
+  99,45,99,44,91,44,99,44,99,45,91,3,44,99,130,44,91,44,91,3,
+  45,91,145,45,99,45,91,45,91,44,91,44,91,45,91,44,91,44,99,44,
+  91,45,91,44,99,45,91,45,91,44,91,44,91,45,91,44,91,3,45,91,
+  137,44,99,44,91,13,91,12,91,45,91,13,91,12,91,44,91,45,91,5,
+  12,91,3,44,91,132,12,91,44,91,12,91,13,91,12,12,91,129,13,91,
+  9,12,91,135,12,83,12,83,13,91,12,91,12,91,45,91,236,82,3,203,
+  82,136,12,91,13,91,110,99,208,107,17,116,81,116,82,116,82,116,6,114,
+  124,133,114,116,115,124,114,124,114,116,114,124,4,82,116,140,50,108,49,108,
+  17,100,17,100,241,99,241,99,17,108,240,107,175,115,109,107,77,99,45,99,
+  3,44,99,168,45,99,45,99,77,99,77,107,109,107,142,107,142,107,174,115,
+  207,115,239,123,16,124,81,132,113,140,81,132,16,124,240,115,207,115,175,107,
+  110,99,45,83,13,75,78,83,111,91,176,99,208,99,49,116,114,124,114,132,
+  82,124,49,116,17,116,49,116,17,116,78,91,106,66,37,25,102,33,13,75,
+  240,107,114,124,7,147,124,7,179,124,133,147,124,147,124,179,124,179,124,147,
+  124,13,179,124,131,179,132,179,124,179,132,3,180,132,148,179,124,180,132,180,
+  132,179,132,180,132,179,132,16,124,13,99,12,99,12,91,13,99,13,99,45,
+  99,45,99,45,107,45,99,13,99,114,124,212,132,212,132,5,180,132,129,212,
+  132,5,180,132,132,212,132,180,132,212,132,180,132,5,212,132,129,180,132,6,
+  212,132,129,180,132,38,212,132,129,244,132,3,212,132,129,244,132,41,212,132,
+  129,180,132,3,179,132,164,147,124,147,124,148,124,180,124,245,132,87,141,185,
+  149,59,174,188,182,30,199,127,215,191,231,158,223,93,215,219,198,23,190,116,
+  173,178,148,206,123,203,90,40,74,134,49,167,49,167,49,175,115,146,140,13,
+  99,41,66,85,173,12,107,45,107,45,107,109,115,109,115,207,115,244,132,6,
+  212,132,129,180,132,4,212,132,132,180,132,180,132,212,132,180,132,3,180,124,
+  4,212,124,5,212,132,157,180,132,179,124,180,132,212,132,180,132,180,132,179,
+  124,147,124,147,124,115,116,50,108,242,91,209,83,209,83,144,91,247,173,52,
+  149,85,149,138,74,37,33,166,49,167,49,199,49,199,49,231,57,199,57,199,
+  49,199,49,231,57,3,199,49,169,231,57,231,49,231,57,231,57,199,57,8,
+  58,40,17,199,8,7,25,38,33,197,16,132,8,133,8,165,8,198,8,198,
+  8,165,16,132,16,131,8,132,16,132,8,132,8,133,8,133,8,10,66,207,
+  131,210,164,20,173,19,173,19,173,20,173,19,173,19,173,243,172,243,172,19,
+  173,243,172,19,173,20,173,19,173,19,173,3,20,173,130,19,173,19,173,3,
+  20,173,131,19,173,52,173,20,173,5,52,181,138,20,173,51,173,19,173,19,
+  173,52,181,84,181,52,181,52,181,84,181,52,181,5,84,181,135,85,181,85,
+  181,84,181,84,189,20,181,44,107,162,16,3,163,24,132,195,24,163,24,163,
+  16,195,24,3,163,24,136,195,24,163,24,163,24,130,16,36,33,137,98,234,
+  122,234,122,4,10,123,133,9,123,9,123,10,123,233,114,233,114,3,201,114,
+  148,168,106,168,106,136,98,104,98,104,98,71,98,103,98,71,90,71,98,38,
+  98,103,98,71,98,39,98,71,98,70,98,38,98,38,98,5,98,70,106,38,
+  106,6,70,106,3,102,114,152,135,114,102,114,103,122,135,114,135,122,167,122,
+  135,122,135,114,135,114,102,114,70,114,38,106,37,98,5,90,229,89,196,73,
+  164,73,132,65,99,57,67,49,66,49,34,49,2,41,2,41,3,2,33,138,
+  225,32,2,41,226,32,225,32,2,41,2,41,35,41,35,41,67,41,67,49,
+  3,100,57,140,132,57,133,57,132,57,132,57,100,57,99,57,99,49,68,49,
+  67,49,35,49,35,41,35,41,3,2,41,4,2,33,134,2,41,2,41,2,
+  33,2,41,2,41,2,33,3,2,41,145,2,33,164,57,34,49,132,49,67,
+  49,2,41,2,41,35,41,132,57,34,49,99,49,99,57,164,65,99,57,225,
+  40,166,57,108,123,227,3,6,12,91,3,12,99,131,12,91,12,91,12,99,
+  3,12,91,132,12,99,12,99,12,91,12,99,6,12,91,137,44,99,12,91,
+  12,99,44,99,12,91,44,91,44,99,12,91,12,99,8,44,99,136,12,91,
+  44,99,44,99,45,99,13,99,45,99,12,91,12,91,8,44,99,133,44,91,
+  44,99,45,99,45,99,45,91,3,44,99,3,45,99,3,44,99,3,45,91,
+  165,45,99,44,91,45,91,44,91,45,99,44,91,44,91,45,91,12,99,12,
+  91,45,91,45,91,44,91,45,91,45,91,44,99,44,91,45,91,45,91,44,
+  91,45,99,44,91,45,91,45,91,12,91,45,91,12,91,12,91,44,99,12,
+  91,44,91,45,91,44,91,12,91,44,99,44,91,45,91,4,12,91,131,13,
+  91,12,91,44,91,19,12,91,145,13,91,44,91,44,91,12,83,12,91,13,
+  91,45,91,12,91,236,82,203,82,203,82,236,82,12,91,45,91,142,99,208,
+  107,49,116,3,82,116,8,114,124,4,114,116,3,82,116,146,50,108,18,108,
+  17,108,17,100,241,91,17,100,49,116,49,124,16,124,207,115,174,115,174,107,
+  142,107,174,115,142,107,174,115,174,115,175,115,3,207,115,162,239,123,240,123,
+  16,124,81,132,113,132,146,140,146,140,81,132,16,124,240,115,207,107,175,107,
+  110,99,45,83,45,83,46,83,111,91,143,99,176,99,17,116,114,124,114,132,
+  82,124,49,116,17,116,49,116,17,116,111,99,171,74,134,41,4,17,139,66,
+  175,99,82,116,4,147,124,138,147,132,147,124,179,124,147,124,147,124,179,124,
+  179,124,147,124,179,124,147,124,4,179,124,129,179,132,10,179,124,158,180,124,
+  179,124,179,132,179,132,179,124,180,132,179,124,180,132,179,124,211,124,180,124,
+  179,132,179,132,212,132,179,132,16,124,236,90,12,91,13,99,12,99,12,99,
+  45,99,12,99,45,99,12,99,12,99,175,115,212,132,212,132,180,132,4,212,
+  132,3,180,132,3,212,132,129,180,132,7,212,132,129,180,132,58,212,132,129,
+  244,132,9,212,132,129,244,132,15,212,132,176,180,132,179,124,147,124,147,124,
+  148,124,180,124,213,132,54,141,184,149,27,166,156,182,30,199,127,215,223,223,
+  255,231,158,223,27,215,55,190,117,173,145,148,174,115,170,90,40,66,101,49,
+  4,33,228,32,228,24,228,16,228,24,228,24,5,17,37,25,38,25,70,25,
+  103,33,5,9,143,107,16,124,78,107,203,82,146,148,235,98,45,107,109,115,
+  77,107,109,107,45,99,244,140,10,212,132,135,211,132,212,132,211,132,180,132,
+  180,132,180,124,180,124,3,212,124,130,212,132,180,124,5,212,132,150,180,132,
+  180,132,211,132,212,132,180,132,180,132,179,132,179,124,147,124,115,116,50,100,
+  242,91,241,91,210,83,177,91,215,165,52,149,52,149,170,82,69,41,166,41,
+  167,49,3,199,49,129,200,49,4,199,49,151,231,49,199,57,199,57,231,57,
+  231,57,232,57,231,57,232,57,72,17,199,8,7,33,6,33,197,16,132,8,
+  133,8,165,16,198,16,198,16,165,16,164,16,131,8,132,8,132,8,3,133,
+  8,134,201,57,175,123,178,164,20,173,19,173,243,172,3,20,173,129,19,173,
+  3,243,172,3,20,173,140,19,173,243,172,19,173,19,173,20,173,19,173,19,
+  173,243,172,19,173,52,173,19,173,52,173,6,52,181,130,20,173,52,173,8,
+  52,181,4,84,181,4,85,181,131,84,181,174,123,195,16,3,195,24,133,162,
+  24,195,24,163,24,163,24,163,16,5,163,24,133,130,16,227,24,104,98,233,
+  122,201,114,3,169,106,150,168,106,168,106,136,98,136,98,104,98,103,98,103,
+  98,71,98,71,90,71,98,71,98,70,98,38,98,38,98,70,98,70,98,38,
+  98,38,98,6,98,37,98,37,98,6,98,5,229,89,132,102,106,103,114,102,
+  114,102,114,3,135,114,152,135,122,102,122,135,122,135,114,103,114,70,106,70,
+  106,37,98,5,98,229,89,196,81,164,73,163,65,131,65,99,57,67,49,67,
+  49,34,41,34,41,2,41,2,33,2,33,1,33,225,32,3,2,33,146,2,
+  41,3,41,35,41,35,41,67,49,99,49,100,57,132,57,132,57,100,57,132,
+  57,100,57,99,57,99,57,100,57,100,49,67,49,67,49,3,35,41,6,2,
+  41,129,2,33,17,2,41,133,226,32,100,49,99,57,67,49,132,57,3,2,
+  41,137,99,49,99,49,164,57,164,65,132,65,99,57,1,41,35,33,43,107,
+  4,4,129,236,90,6,12,91,131,12,99,236,90,12,99,3,12,91,133,12,
+  99,12,91,12,99,12,91,12,99,3,12,91,133,12,99,44,99,12,99,12,
+  91,44,99,4,12,91,137,44,99,44,99,12,99,44,99,12,99,12,91,44,
+  99,44,99,12,99,6,44,99,129,45,99,3,44,99,132,12,91,44,99,45,
+  99,12,91,7,44,99,136,45,99,44,91,44,91,45,99,44,91,44,99,12,
+  91,44,91,3,44,99,169,44,91,44,91,44,99,44,91,44,91,45,99,45,
+  91,44,91,44,91,45,99,45,91,45,91,44,91,45,91,44,91,45,99,44,
+  91,45,91,45,99,12,99,12,91,45,91,45,91,45,99,44,91,45,91,12,
+  91,13,91,44,91,45,91,12,91,44,91,44,99,44,91,44,91,45,91,13,
+  91,12,91,12,91,44,91,44,91,6,12,91,130,44,91,44,91,19,12,91,
+  148,44,91,12,91,12,91,45,91,12,91,12,83,12,91,236,82,203,82,203,
+  74,236,82,12,91,77,99,175,107,240,107,49,116,82,124,82,124,114,116,114,
+  116,4,114,124,132,115,124,114,124,114,116,114,124,3,114,116,142,82,116,50,
+  116,82,108,50,108,17,108,17,108,241,99,17,100,17,108,81,124,81,132,81,
+  132,48,132,16,124,3,239,123,129,240,123,6,16,124,151,48,132,49,132,113,
+  140,114,140,178,140,178,140,146,140,81,132,16,124,240,115,208,115,175,107,78,
+  99,45,91,46,83,78,83,111,91,111,91,176,99,240,107,114,124,114,132,82,
+  124,3,17,116,136,240,115,175,107,236,82,232,49,4,25,9,50,110,83,49,
+  116,4,147,124,136,147,132,147,132,147,124,147,124,179,124,179,124,180,124,179,
+  132,18,179,124,132,180,124,179,132,179,132,180,132,5,179,124,4,180,132,153,
+  147,132,16,116,45,99,12,99,13,99,12,91,45,99,13,99,12,99,13,99,
+  77,107,236,98,236,90,49,124,212,132,212,124,212,132,180,132,212,132,180,132,
+  212,132,180,132,212,132,212,132,180,132,50,212,132,130,244,132,244,132,3,212,
+  132,131,244,132,212,132,244,132,3,212,132,137,244,132,212,132,244,132,212,132,
+  244,132,212,132,244,132,212,132,244,132,3,212,132,129,244,132,10,212,132,131,
+  180,132,180,132,179,124,3,147,124,161,180,124,213,124,119,141,249,157,91,166,
+  253,190,94,207,191,223,255,231,191,231,60,223,121,198,214,189,242,156,15,132,
+  44,99,73,74,166,57,36,33,228,24,196,24,228,24,229,24,5,25,5,17,
+  37,25,37,25,70,25,70,25,70,33,102,33,70,33,69,25,5,70,25,142,
+  41,50,9,42,114,124,175,107,77,107,17,124,12,99,236,98,45,107,109,115,
+  109,115,110,115,45,99,179,140,11,212,132,132,211,132,211,132,180,132,180,132,
+  5,212,124,6,212,132,132,211,132,180,132,180,132,211,132,3,180,132,144,179,
+  124,179,132,147,124,115,116,50,108,242,91,209,91,210,83,144,83,183,165,20,
+  149,20,149,236,90,69,41,134,41,166,49,5,199,49,151,199,57,199,57,232,
+  49,199,49,231,57,199,49,231,57,232,57,232,57,231,57,231,49,71,25,199,
+  8,7,33,39,33,197,16,132,8,165,16,165,8,166,8,197,16,165,16,164,
+  16,4,132,8,136,133,8,133,8,168,49,142,123,178,156,19,173,19,173,243,
+  172,4,19,173,129,243,172,3,19,173,132,20,173,20,173,19,173,19,173,3,
+  20,173,134,19,173,243,172,243,172,19,173,52,181,20,173,13,52,181,3,84,
+  181,3,52,181,140,84,181,85,181,84,181,85,181,85,189,117,189,85,181,16,
+  140,4,33,163,24,195,24,195,24,3,163,24,132,195,24,163,24,163,24,195,
+  24,3,163,24,133,130,16,163,16,230,65,168,106,103,98,3,71,90,133,39,
+  90,70,90,71,90,39,90,38,90,5,38,98,135,37,98,69,106,37,106,6,
+  98,5,98,229,89,228,89,3,5,98,4,229,89,161,5,98,6,106,38,106,
+  102,114,135,114,103,114,102,114,70,106,37,98,37,98,5,90,228,89,196,81,
+  164,73,163,65,131,57,99,57,67,49,35,41,34,41,34,41,2,33,2,33,
+  226,32,2,33,225,32,2,33,225,32,2,33,34,41,35,41,35,41,67,49,
+  3,99,49,130,132,57,132,57,4,100,57,130,99,57,99,49,3,67,49,131,
+  35,41,35,41,34,41,5,2,41,132,2,33,2,41,2,41,2,33,8,2,
+  41,129,2,33,8,2,41,129,2,33,3,2,41,136,2,33,2,41,2,41,
+  35,41,164,65,2,49,196,65,2,49,4,2,41,135,34,41,34,41,2,41,
+  2,41,2,33,3,33,39,74,18,4,13,12,91,3,12,99,132,12,91,12,
+  91,44,99,12,91,4,12,99,136,12,91,12,91,44,99,44,99,12,91,12,
+  91,44,99,12,91,3,44,99,129,45,99,6,44,99,139,45,99,12,91,44,
+  99,12,91,44,99,45,91,44,99,44,99,12,91,44,91,45,99,3,44,99,
+  134,45,99,44,91,44,99,45,99,44,91,44,91,5,44,99,138,45,99,44,
+  91,44,99,44,91,44,91,45,91,44,91,45,91,45,99,45,99,4,45,91,
+  147,45,99,12,91,45,99,13,91,45,91,45,99,45,99,44,99,44,91,44,
+  91,45,99,12,91,45,91,45,91,44,91,45,91,44,91,44,91,45,91,3,
+  44,91,132,44,99,12,91,45,99,45,91,3,12,91,137,44,91,45,91,13,
+  91,12,91,44,91,12,91,12,91,44,91,44,91,10,12,91,131,45,91,12,
+  91,12,83,7,12,91,148,12,83,12,91,13,91,13,91,45,91,13,91,12,
+  91,236,82,203,82,203,74,236,90,44,91,78,99,175,107,17,116,49,116,82,
+  116,82,124,114,116,114,116,4,114,124,131,115,124,114,116,114,124,3,114,116,
+  141,82,116,114,116,82,116,82,108,50,108,49,108,241,99,17,100,241,99,49,
+  108,82,124,114,132,113,140,3,81,132,129,49,132,6,81,132,165,48,132,240,
+  123,48,124,113,132,146,140,178,140,179,148,211,148,146,140,81,132,16,116,239,
+  115,207,107,143,107,110,99,78,91,78,83,110,91,111,91,111,91,175,91,16,
+  108,82,124,114,132,81,132,49,124,17,116,241,115,241,115,208,107,45,91,41,
+  58,4,25,135,33,13,75,241,107,115,124,6,147,124,132,179,124,179,124,147,
+  124,179,132,4,179,124,129,179,132,11,179,124,140,179,132,180,132,179,132,180,
+  132,180,132,179,124,180,132,179,132,179,132,180,132,180,132,179,124,3,180,132,
+  132,212,132,147,132,81,132,13,99,3,45,99,141,13,99,12,99,12,99,45,
+  99,12,99,45,99,45,99,77,99,179,132,212,132,180,132,180,132,211,132,11,
+  212,132,129,180,132,33,212,132,132,244,132,212,132,212,132,244,132,10,212,132,
+  141,244,132,212,132,244,132,212,132,244,132,212,132,212,132,244,132,212,132,212,
+  132,244,132,244,132,212,140,3,244,132,133,212,132,212,132,244,132,244,140,244,
+  132,3,212,132,150,179,132,180,124,147,124,147,124,180,124,246,124,87,141,217,
+  157,91,166,221,190,94,199,159,215,191,223,125,223,186,198,23,190,52,165,81,
+  132,109,107,137,82,231,57,69,41,4,228,24,133,5,25,5,25,37,17,37,
+  25,38,25,8,70,25,131,38,25,70,25,69,25,4,70,25,147,70,33,37,
+  25,70,25,102,25,70,25,70,25,175,99,49,116,179,140,110,107,150,173,72,
+  74,12,99,12,107,77,107,110,115,110,115,77,107,114,132,11,212,132,129,211,
+  132,3,212,132,3,212,124,4,212,132,132,180,132,212,132,211,132,179,132,3,
+  212,132,129,179,132,4,180,132,145,147,124,147,124,115,116,50,108,18,92,241,
+  91,209,83,144,83,183,165,85,149,52,149,12,91,69,41,134,41,167,41,199,
+  49,167,49,4,199,49,135,231,57,199,57,199,49,231,57,231,57,199,49,231,
+  49,3,231,57,160,72,33,200,8,7,25,6,33,229,24,132,8,133,8,165,
+  16,165,8,133,8,132,8,164,16,131,16,132,16,132,8,132,8,133,8,133,
+  8,103,41,110,115,146,156,243,172,19,173,19,173,243,172,243,172,19,173,20,
+  173,243,172,243,164,19,173,20,173,6,19,173,133,20,173,19,173,19,173,243,
+  172,243,172,3,20,173,130,52,173,52,173,5,52,181,129,52,173,8,52,181,
+  5,84,181,135,85,189,84,181,85,181,117,189,114,148,101,41,163,24,5,195,
+  24,129,163,24,5,195,24,145,163,24,130,16,130,16,68,41,6,82,37,90,
+  37,90,38,90,38,90,37,90,5,90,5,90,38,98,37,98,229,89,229,89,
+  228,89,3,229,89,134,5,98,38,106,229,89,5,90,5,90,37,98,4,70,
+  106,149,38,106,38,106,5,98,5,98,229,89,197,89,196,89,164,73,164,65,
+  132,65,99,57,99,49,67,49,34,41,34,41,2,41,2,33,226,32,225,32,
+  2,33,226,32,3,2,33,136,34,41,35,41,35,49,67,49,99,49,100,49,
+  100,57,99,57,3,100,57,145,99,57,99,49,68,49,67,49,67,49,67,41,
+  35,41,35,41,2,41,35,41,2,41,2,41,2,33,2,33,2,41,2,41,
+  2,33,6,2,41,130,2,33,2,33,10,2,41,129,2,33,6,2,41,129,
+  2,33,6,2,41,135,2,33,2,41,2,41,165,57,2,41,164,57,66,49,
+  8,2,41,131,2,33,2,33,2,41,34,4,129,236,90,5,12,91,129,12,
+  99,4,12,91,130,12,99,12,91,3,12,99,130,12,91,12,91,3,12,99,
+  146,12,91,12,99,44,99,44,99,12,99,44,99,12,99,12,91,44,99,12,
+  91,44,99,44,99,12,91,12,99,44,99,44,91,44,99,12,99,3,44,99,
+  130,45,91,45,99,6,44,99,3,44,91,6,44,99,129,45,99,3,44,91,
+  133,44,99,44,99,45,99,44,99,44,99,3,45,99,136,44,91,45,91,45,
+  99,45,99,44,99,44,99,45,91,45,91,3,45,99,140,44,99,44,91,45,
+  91,45,91,45,99,45,91,45,91,45,99,44,91,12,91,45,91,45,99,3,
+  45,91,131,44,99,44,91,44,91,4,45,91,143,12,91,45,91,12,91,12,
+  91,44,91,12,91,12,91,45,91,12,91,44,91,13,91,13,91,12,91,45,
+  91,45,91,6,12,91,129,45,91,4,12,91,132,12,83,12,91,12,91,12,
+  83,4,12,91,148,13,91,13,91,12,91,13,91,45,91,13,91,13,91,12,
+  83,203,82,203,74,204,82,236,82,13,91,110,99,207,107,17,108,49,116,82,
+  124,114,124,114,116,5,114,124,130,115,124,114,116,4,114,124,139,114,116,82,
+  116,82,116,50,108,50,108,49,100,17,100,241,99,17,100,81,116,114,132,3,
+  146,140,132,113,132,146,140,114,140,114,140,4,146,140,147,113,140,16,124,207,
+  115,16,116,81,132,178,140,179,140,211,148,178,148,114,140,49,132,16,116,240,
+  115,207,115,142,107,110,99,78,91,79,91,111,91,3,143,91,146,240,107,82,
+  124,114,132,114,132,49,116,17,108,17,116,240,115,240,107,78,99,138,74,102,
+  33,37,17,203,66,207,99,114,124,147,124,179,124,5,147,124,130,179,124,179,
+  132,5,179,124,129,179,132,10,179,124,4,180,132,132,179,124,180,132,211,132,
+  179,132,3,180,132,141,179,132,180,132,212,132,180,132,180,132,212,132,49,116,
+  142,107,13,99,45,99,12,99,45,99,12,99,4,45,99,133,77,107,45,99,
+  13,99,175,107,244,140,4,212,132,129,212,124,38,212,132,129,244,132,4,212,
+  132,140,244,132,212,132,244,132,244,132,212,132,212,132,244,132,244,132,212,132,
+  212,132,244,132,212,132,5,244,132,129,212,132,3,244,132,134,212,132,245,132,
+  244,132,212,132,244,132,244,132,3,212,132,164,180,132,179,124,147,124,180,124,
+  213,124,22,133,152,141,58,166,220,182,94,207,223,223,191,223,158,223,251,206,
+  56,190,19,157,48,132,76,99,138,74,199,57,69,33,228,24,228,24,4,17,
+  5,25,5,25,37,25,37,25,70,25,69,25,70,25,102,25,102,25,70,25,
+  70,25,102,25,11,70,25,129,38,25,3,70,25,133,69,25,70,25,70,25,
+  69,25,69,25,4,70,25,142,102,33,114,124,244,148,77,107,105,82,199,65,
+  44,107,44,107,77,107,110,115,110,115,77,107,49,124,244,132,6,212,132,129,
+  211,132,6,212,132,131,180,132,212,124,212,124,4,212,132,134,180,132,180,132,
+  212,132,211,132,211,132,180,132,3,212,132,147,179,132,180,132,180,132,179,132,
+  179,124,147,124,115,116,50,108,18,100,241,91,210,83,112,83,151,157,117,157,
+  243,140,45,91,101,41,102,41,167,41,7,199,49,181,232,57,199,49,231,57,
+  199,49,231,57,232,57,232,57,199,57,231,57,71,33,134,0,198,16,197,24,
+  132,16,68,0,165,16,72,33,202,41,173,66,172,74,132,8,131,16,131,16,
+  132,16,132,8,133,8,133,8,72,33,77,107,114,156,243,172,19,173,243,172,
+  243,172,243,164,243,172,244,172,19,173,243,164,243,172,19,173,20,173,243,172,
+  19,173,243,164,243,172,19,173,20,173,243,172,243,172,20,173,19,173,52,173,
+  5,20,173,133,52,173,20,181,52,181,52,181,52,173,9,52,181,6,84,181,
+  133,117,189,85,181,178,156,199,57,162,16,5,195,24,130,163,24,195,24,5,
+  163,24,150,162,16,130,16,227,24,197,73,5,90,69,90,102,98,70,98,5,
+  98,196,81,228,81,5,98,70,106,5,90,229,89,5,90,5,90,38,98,38,
+  98,38,106,70,106,37,106,3,5,98,139,229,89,197,89,196,81,164,73,164,
+  73,99,65,99,57,66,49,66,49,34,41,2,41,4,2,33,129,226,32,3,
+  2,33,134,34,41,35,41,67,41,67,49,99,49,100,49,7,100,57,129,99,
+  57,3,67,49,131,35,49,34,41,35,41,3,2,41,139,2,33,2,33,2,
+  41,2,33,2,33,2,41,2,33,2,41,2,33,2,41,2,41,3,2,33,
+  12,2,41,131,2,33,2,41,2,41,5,2,33,133,2,41,2,41,34,41,
+  2,41,2,33,9,2,41,133,2,33,132,57,99,57,100,49,131,57,8,2,
+  41,131,2,33,2,33,2,41,38,4,5,12,91,129,12,99,9,12,91,130,
+  12,99,12,99,4,12,91,144,12,99,12,91,12,91,12,99,12,99,12,91,
+  44,91,44,99,45,99,45,99,44,99,12,99,12,99,44,99,12,91,12,99,
+  4,44,99,131,45,99,45,99,12,99,5,44,99,3,44,91,151,44,99,45,
+  91,44,99,44,91,44,91,45,99,12,91,44,99,44,99,44,91,44,91,44,
+  99,44,91,45,99,44,99,44,99,45,99,44,99,44,99,44,91,44,91,45,
+  91,45,99,3,45,91,132,44,91,44,99,44,99,44,91,3,45,99,141,44,
+  91,44,91,45,99,45,99,44,99,44,91,44,91,44,99,44,99,44,91,44,
+  91,44,99,45,99,5,44,91,136,12,91,45,99,45,91,13,91,12,91,13,
+  91,12,91,44,91,4,12,91,130,44,91,45,91,16,12,91,130,13,91,13,
+  91,3,12,91,135,13,91,13,91,12,91,13,91,12,91,45,91,13,91,3,
+  236,82,137,204,82,12,91,45,91,110,99,240,107,49,116,82,116,82,124,82,
+  124,6,114,124,147,114,116,114,124,114,124,115,124,114,124,114,116,82,116,82,
+  116,82,108,82,116,50,108,49,108,17,100,17,100,17,108,82,116,114,132,178,
+  140,178,140,6,146,140,174,178,140,178,140,179,140,113,140,239,123,207,107,16,
+  116,113,132,179,148,211,140,211,148,178,148,114,140,49,132,16,116,240,115,207,
+  115,143,107,110,99,78,91,111,91,143,91,176,91,176,91,175,91,16,108,82,
+  124,146,132,114,132,81,124,17,116,17,116,240,115,240,115,143,107,203,82,199,
+  49,228,24,73,50,143,91,50,116,147,124,147,124,179,124,147,124,179,124,3,
+  147,124,5,179,124,136,180,124,179,132,179,132,179,124,179,124,179,132,179,124,
+  179,132,6,179,124,3,180,132,129,179,132,10,180,132,133,212,132,49,116,49,
+  124,236,90,12,99,4,45,99,138,77,107,45,99,77,107,77,107,45,99,13,
+  99,12,91,114,124,212,132,211,132,42,212,132,130,244,132,244,132,4,212,132,
+  5,244,132,134,212,132,244,132,244,132,212,132,244,132,244,140,6,244,132,4,
+  212,132,153,179,132,179,124,180,124,212,124,22,133,152,141,58,158,188,182,62,
+  207,223,223,223,231,125,223,186,206,214,181,19,157,174,123,203,90,8,66,69,
+  41,4,33,228,24,4,17,229,24,5,25,69,25,3,70,25,134,102,33,102,
+  33,70,33,70,33,70,25,70,33,7,70,25,132,69,25,70,33,70,25,70,
+  25,3,37,25,144,38,25,38,25,70,25,69,25,37,25,69,25,37,25,69,
+  25,37,25,69,25,70,25,70,25,69,25,69,25,37,25,38,25,3,70,25,
+  142,37,17,175,107,179,140,109,107,199,57,198,57,235,98,77,107,77,107,109,
+  107,109,115,77,107,77,107,244,140,9,212,132,135,180,132,212,124,212,132,180,
+  132,212,132,180,124,212,124,5,212,132,132,211,132,211,132,180,132,180,132,4,
+  212,132,4,180,132,145,147,124,147,124,115,116,82,108,18,100,241,91,210,83,
+  113,83,150,157,85,157,53,149,110,99,134,49,101,41,167,49,199,49,167,49,
+  9,199,49,145,231,57,199,49,232,57,231,49,231,49,74,58,112,83,241,107,
+  147,132,86,157,215,165,24,174,89,182,89,182,56,182,85,149,67,0,3,132,
+  16,141,132,8,133,8,133,8,71,33,45,99,113,148,243,172,19,173,243,172,
+  243,172,243,164,243,172,243,172,3,243,164,142,211,172,19,173,243,172,243,164,
+  243,164,243,172,19,173,20,173,20,173,19,173,19,173,20,173,20,173,52,173,
+  3,20,173,132,19,173,20,173,52,181,20,173,5,52,181,129,52,173,4,52,
+  181,7,84,181,133,85,181,117,189,243,172,138,74,130,16,5,195,24,150,163,
+  24,195,24,163,24,195,24,195,24,163,24,195,24,162,16,130,16,195,24,165,
+  65,38,98,38,98,103,98,103,106,70,106,38,98,5,98,37,106,102,114,37,
+  106,5,98,3,229,89,135,196,81,164,73,163,73,131,65,99,57,99,57,66,
+  49,3,34,41,130,2,41,2,33,3,2,41,135,2,33,2,41,34,41,35,
+  41,67,41,67,41,67,49,3,100,49,134,99,49,99,49,100,57,100,49,100,
+  57,67,57,4,67,49,132,35,41,34,41,34,41,2,41,4,2,33,139,2,
+  41,35,41,35,41,34,41,67,49,67,49,100,49,34,41,2,41,2,41,2,
+  33,3,2,41,6,2,33,3,2,41,3,2,33,144,226,32,2,33,226,32,
+  226,32,2,33,2,33,34,41,35,49,67,49,132,57,165,73,229,81,38,90,
+  104,106,38,98,34,57,8,2,41,148,2,33,2,41,2,41,34,41,2,41,
+  68,41,132,57,34,41,196,65,2,49,2,41,2,41,2,33,2,41,99,49,
+  131,57,66,49,99,49,99,57,131,57,29,4,130,12,91,236,90,10,12,91,
+  132,12,99,12,91,12,91,12,99,3,12,91,143,44,99,12,91,12,99,44,
+  99,12,91,45,99,12,99,12,91,44,91,12,99,44,99,44,99,12,99,44,
+  99,12,99,3,44,99,132,12,91,44,99,45,99,45,99,9,44,99,139,45,
+  99,45,99,44,99,44,99,44,91,45,99,44,91,44,99,44,99,45,99,45,
+  91,5,44,91,136,12,91,44,99,45,91,44,99,44,99,44,91,45,99,44,
+  91,3,45,91,131,45,99,45,91,45,99,3,44,99,138,44,91,45,99,45,
+  91,44,91,45,99,45,91,44,91,45,91,45,99,45,99,5,44,99,3,44,
+  91,135,44,99,44,91,45,91,45,91,44,91,44,91,12,91,3,44,91,137,
+  12,91,44,91,12,91,44,91,12,91,44,91,12,91,12,91,45,91,14,12,
+  91,153,12,83,12,91,13,91,13,91,12,91,13,91,13,91,44,91,45,91,
+  44,91,45,91,204,82,203,82,203,82,236,90,12,91,45,91,143,99,240,107,
+  49,116,82,124,114,116,114,124,114,124,114,116,7,114,124,143,114,116,114,124,
+  114,124,114,116,82,116,82,116,82,108,50,108,49,108,17,100,17,100,50,108,
+  114,124,146,132,146,140,6,178,140,129,179,140,3,178,140,171,114,140,48,124,
+  48,116,81,124,146,132,210,148,211,148,211,148,178,148,113,140,49,124,240,115,
+  240,115,207,107,143,107,110,91,111,91,143,91,176,99,208,91,176,91,208,91,
+  240,107,114,124,146,132,114,132,81,124,17,116,17,116,241,115,241,115,175,107,
+  13,91,232,49,4,25,200,41,78,83,17,116,146,124,147,124,147,124,179,124,
+  179,124,4,147,124,133,179,132,179,132,179,124,179,124,180,124,7,179,124,136,
+  180,124,179,124,179,132,179,124,179,124,180,124,179,124,179,124,8,180,132,129,
+  212,132,3,180,132,133,212,132,49,116,142,107,12,91,12,99,5,45,99,130,
+  13,99,13,99,4,45,99,129,110,99,34,212,132,129,244,132,3,212,132,3,
+  244,132,130,212,132,212,132,4,244,132,129,212,132,11,244,132,129,244,140,3,
+  212,132,156,180,124,179,124,179,124,180,124,245,132,151,133,26,158,188,182,62,
+  199,159,215,223,231,158,223,186,198,214,181,178,148,239,115,170,82,231,57,69,
+  33,228,24,4,25,4,25,5,25,38,25,70,33,70,25,102,33,70,25,4,
+  102,33,144,102,25,102,25,102,33,70,33,69,25,70,33,69,25,69,33,70,
+  33,69,25,70,33,70,25,38,25,70,25,69,25,69,25,4,70,25,129,69,
+  25,4,37,25,153,69,25,37,25,69,25,37,25,69,25,37,25,69,25,70,
+  25,69,25,37,25,69,25,70,25,38,25,69,25,37,25,69,25,69,25,70,
+  25,5,17,17,116,20,149,77,107,138,82,134,49,138,82,4,77,107,131,109,
+  115,45,107,179,132,9,212,132,131,180,124,212,132,212,132,3,212,124,13,212,
+  132,148,180,132,180,132,211,132,180,132,179,124,179,124,147,124,115,116,82,108,
+  18,100,209,91,242,83,113,83,118,157,118,157,244,148,207,107,134,41,69,41,
+  167,49,9,199,49,131,231,57,199,49,199,49,3,231,57,142,166,49,174,115,
+  88,190,247,173,215,173,182,173,117,165,118,165,85,165,85,157,150,173,114,132,
+  67,0,132,8,3,132,16,140,133,8,133,8,39,33,12,99,81,148,243,172,
+  19,173,19,173,243,172,243,172,19,173,243,172,4,243,164,4,243,172,4,19,
+  173,131,20,173,20,173,19,173,3,20,173,129,52,173,3,20,173,134,52,173,
+  52,181,20,181,52,181,52,181,52,173,6,52,181,132,84,181,85,181,85,181,
+  52,181,3,84,181,133,85,181,85,189,52,173,12,99,162,16,7,195,24,150,
+  163,24,163,24,195,24,163,24,163,24,162,16,130,16,162,16,165,65,38,98,
+  37,98,5,90,5,90,228,89,196,89,164,81,164,73,132,73,131,65,99,57,
+  67,49,67,49,3,34,41,132,2,41,34,41,35,41,35,41,3,34,41,132,
+  66,41,99,57,67,49,67,49,4,99,49,129,100,49,3,100,57,5,67,49,
+  131,67,41,35,41,34,41,3,2,41,130,2,33,2,33,3,2,41,147,34,
+  41,35,41,67,49,67,49,99,49,99,57,99,49,99,49,132,57,132,57,164,
+  65,196,73,164,65,67,49,2,41,2,41,2,33,2,33,2,41,5,2,33,
+  129,226,32,4,2,33,150,34,41,34,41,67,49,131,57,164,65,229,73,6,
+  90,103,98,168,106,201,114,9,123,10,131,43,139,107,147,139,147,140,147,140,
+  155,75,147,98,81,2,41,2,33,34,41,11,2,41,142,197,57,34,41,164,
+  57,67,49,2,41,2,41,100,49,132,65,131,57,229,73,131,65,229,73,163,
+  65,131,57,123,4,9,12,91,130,12,99,12,99,5,12,91,137,44,99,44,
+  99,12,91,12,91,45,99,12,91,12,99,44,99,12,99,5,44,99,129,12,
+  91,6,44,99,136,45,99,12,91,44,99,44,91,44,91,12,99,44,99,45,
+  99,4,44,99,138,45,99,45,99,44,91,12,91,45,99,12,99,44,99,44,
+  91,45,99,45,91,3,44,99,131,45,99,45,99,45,91,6,44,99,151,45,
+  99,45,91,45,99,45,99,45,91,45,91,45,99,44,91,12,91,45,99,44,
+  99,45,99,45,91,45,99,44,91,45,99,45,99,45,91,45,99,13,91,44,
+  91,45,99,45,91,3,44,99,4,44,91,147,45,91,45,99,12,91,45,91,
+  44,91,45,91,45,91,12,91,44,91,45,91,12,91,45,91,44,91,44,91,
+  45,91,12,91,12,91,13,91,45,91,3,12,91,144,45,91,12,91,12,91,
+  44,91,12,91,12,91,45,91,12,91,12,91,13,91,12,91,12,91,13,91,
+  13,91,12,91,13,91,3,12,91,143,45,91,45,91,12,91,235,82,203,82,
+  171,82,236,90,12,91,78,99,175,107,240,107,49,116,82,116,82,124,114,116,
+  5,114,124,131,146,124,114,124,114,124,6,114,116,137,82,116,82,108,82,108,
+  50,108,50,108,17,108,82,116,114,124,146,140,3,178,140,129,179,140,8,178,
+  140,132,114,132,81,132,146,132,178,140,3,211,148,138,178,140,113,132,48,124,
+  240,115,240,115,207,107,143,99,111,91,111,91,176,99,4,208,99,154,241,99,
+  114,124,146,132,114,132,81,124,49,116,17,116,17,108,240,115,240,115,45,91,
+  73,58,36,25,102,33,13,75,240,107,114,124,147,124,179,132,147,124,147,124,
+  179,124,179,124,147,124,179,124,179,132,3,179,124,131,180,124,180,132,179,132,
+  5,179,124,136,179,132,179,124,179,132,179,132,179,124,180,132,180,124,180,132,
+  3,179,132,135,211,132,179,132,212,124,180,132,212,132,212,132,180,132,3,212,
+  132,146,114,124,175,115,13,99,45,99,12,99,45,99,45,99,13,99,45,99,
+  12,99,77,99,77,107,45,99,45,99,77,107,12,99,82,124,244,140,21,212,
+  132,129,244,132,4,212,132,129,244,132,5,212,132,131,244,132,212,132,244,132,
+  4,212,132,131,244,132,244,132,212,132,5,244,132,132,212,132,244,132,244,140,
+  244,132,3,212,132,151,180,124,147,124,179,124,213,124,55,133,249,149,123,166,
+  29,199,159,215,223,223,190,223,251,206,23,190,243,156,239,123,235,98,8,66,
+  101,41,5,33,228,24,5,25,37,25,69,25,3,102,33,133,70,25,134,33,
+  102,33,103,33,103,33,3,102,33,152,102,25,69,33,102,33,70,25,70,25,
+  102,33,102,25,70,33,70,25,69,25,38,25,38,25,70,33,70,25,70,25,
+  38,25,69,25,70,25,70,25,69,25,70,25,70,33,70,25,70,25,3,69,
+  25,3,37,25,135,70,25,37,25,37,25,70,25,69,25,70,25,37,25,3,
+  69,25,5,70,25,140,69,17,70,25,70,25,5,17,16,116,179,148,110,107,
+  236,90,101,49,40,74,44,107,109,107,4,77,107,130,49,124,244,132,4,212,
+  132,129,212,124,3,212,132,3,212,124,130,212,132,212,124,3,212,132,129,180,
+  132,12,212,132,3,180,132,188,179,132,147,124,115,124,82,108,18,100,242,91,
+  210,83,113,83,53,149,118,157,211,140,207,115,134,49,69,41,166,49,199,49,
+  199,49,167,49,199,49,231,49,199,49,199,49,199,57,199,57,199,49,231,57,
+  199,57,231,57,231,49,231,57,167,49,44,99,146,148,178,148,211,148,178,140,
+  239,123,142,107,12,91,203,82,73,66,199,49,164,16,132,16,132,8,132,8,
+  132,16,133,16,133,8,7,17,204,90,49,140,243,164,20,173,19,173,19,173,
+  243,164,243,172,19,173,243,172,3,243,164,129,19,173,3,243,172,130,243,164,
+  19,173,4,20,173,131,19,173,19,173,52,173,4,20,173,130,52,173,20,173,
+  9,52,181,143,84,181,52,181,84,181,52,181,84,181,52,181,52,181,84,181,
+  84,181,85,181,85,189,52,181,142,115,163,16,163,24,4,195,24,165,163,24,
+  163,24,195,24,163,24,195,24,163,24,163,24,162,16,130,16,130,16,68,49,
+  164,73,99,65,67,57,67,49,66,49,34,41,34,41,1,33,2,33,34,41,
+  34,41,2,33,2,33,2,41,34,41,67,49,66,41,35,41,67,49,67,49,
+  99,49,99,57,99,57,99,49,132,57,99,57,3,99,49,135,66,49,35,41,
+  67,49,35,41,35,41,34,41,34,41,3,2,41,6,2,33,148,2,41,67,
+  49,99,49,99,49,131,57,132,57,131,49,132,57,132,57,164,65,164,65,99,
+  57,99,49,34,41,67,49,67,41,67,49,67,49,34,41,2,41,4,2,33,
+  147,2,41,2,33,35,41,34,41,99,49,100,57,164,65,229,73,6,82,71,
+  98,135,106,200,114,201,122,10,131,74,139,107,139,107,147,108,155,140,147,3,
+  172,147,7,172,155,129,228,105,3,2,41,131,2,33,2,41,34,41,8,2,
+  41,142,165,57,66,49,132,49,100,57,2,41,2,41,132,49,132,57,34,41,
+  99,49,34,41,34,49,34,41,2,41,255,3,10,12,91,5,12,99,130,12,
+  91,12,99,3,12,91,148,44,99,12,91,12,99,12,91,44,99,12,91,45,
+  99,12,99,44,99,44,99,12,99,44,99,44,99,12,91,12,99,44,99,45,
+  99,45,99,44,99,45,99,9,44,99,140,45,99,45,99,44,91,45,99,45,
+  99,44,99,44,99,45,99,45,91,45,99,45,91,44,99,3,45,99,189,44,
+  99,44,91,45,99,44,91,44,99,12,91,44,99,44,99,45,91,45,99,44,
+  91,44,99,45,99,45,91,44,91,44,91,45,91,44,91,45,99,45,99,44,
+  91,45,99,44,99,45,99,45,91,45,91,44,91,45,99,45,91,45,99,44,
+  91,45,99,45,99,45,91,45,91,45,99,44,91,45,91,44,91,45,91,12,
+  91,45,91,44,91,12,91,44,91,45,91,45,91,12,91,12,91,44,91,44,
+  91,12,91,45,91,12,91,12,91,45,91,12,91,13,91,12,91,12,91,13,
+  91,4,12,91,129,44,91,6,12,91,137,13,91,45,91,13,91,12,91,45,
+  91,44,91,45,83,44,91,236,82,3,203,82,136,236,90,45,91,110,99,175,
+  107,17,116,49,116,114,124,82,116,8,114,124,129,146,124,4,114,124,3,114,
+  116,130,82,116,82,108,3,50,108,133,82,116,146,132,178,140,178,140,179,140,
+  8,178,140,130,210,140,179,140,3,178,140,143,211,148,179,148,211,148,211,148,
+  146,140,81,132,49,124,16,124,240,115,207,115,142,99,111,91,143,91,240,99,
+  241,107,3,241,99,134,17,108,114,124,146,140,146,140,82,124,49,116,3,17,
+  116,136,240,115,110,99,138,74,69,33,37,17,171,66,176,99,82,124,3,147,
+  124,131,179,124,147,124,147,124,8,179,124,129,180,132,3,179,132,129,180,132,
+  3,179,124,139,179,132,180,132,179,124,180,132,180,124,180,132,180,132,179,132,
+  179,124,179,132,179,132,3,180,132,4,212,132,137,147,124,146,140,110,107,13,
+  99,77,99,12,99,12,99,77,107,13,99,6,45,99,131,77,107,77,107,110,
+  107,32,212,132,3,244,132,130,212,132,244,140,6,244,132,130,245,132,244,132,
+  3,212,132,151,179,124,147,124,179,116,245,124,119,141,250,157,188,174,94,199,
+  191,215,223,231,190,231,186,206,149,173,145,148,77,107,72,74,134,49,4,33,
+  228,24,5,25,5,25,37,25,70,33,6,102,33,132,134,33,102,33,102,33,
+  70,33,9,102,33,129,69,25,3,70,25,3,70,33,133,102,25,70,25,70,
+  25,37,25,70,33,5,70,25,129,69,25,10,70,25,129,69,25,7,70,25,
+  3,102,25,155,102,33,70,25,70,25,102,25,70,25,37,25,70,25,70,25,
+  5,17,207,107,211,148,77,107,142,115,69,41,231,65,235,98,142,115,77,107,
+  109,107,109,115,77,107,207,115,245,140,212,132,212,124,212,132,212,124,3,212,
+  132,3,212,124,10,212,132,132,211,132,212,132,212,132,180,132,3,212,132,129,
+  211,132,3,180,132,145,179,132,179,124,147,124,115,116,83,108,18,100,209,91,
+  209,83,145,83,21,141,150,165,20,149,16,116,134,49,69,41,167,49,167,49,
+  9,199,49,141,232,57,199,49,231,49,231,57,231,57,231,49,232,57,231,57,
+  199,57,134,49,134,49,166,41,167,49,4,199,49,155,164,16,132,8,132,8,
+  132,16,164,8,165,16,133,8,230,16,172,82,16,140,243,164,20,173,19,173,
+  244,172,243,172,19,173,243,172,19,173,243,172,243,164,243,172,243,172,19,173,
+  243,172,243,164,19,173,19,173,5,20,173,129,52,173,4,20,173,13,52,181,
+  131,84,181,52,181,52,181,5,84,181,3,85,181,130,240,131,227,24,6,195,
+  24,129,163,16,3,163,24,145,195,24,163,24,162,16,130,16,130,16,36,41,
+  100,57,225,32,225,32,226,32,34,41,67,41,66,49,67,49,67,49,100,57,
+  132,57,4,99,49,138,132,57,99,49,67,41,99,49,67,49,99,49,67,49,
+  67,49,34,41,35,41,4,34,41,129,2,41,14,2,33,132,2,41,2,41,
+  67,41,99,57,3,99,49,3,67,49,3,34,41,4,2,33,158,2,41,2,
+  41,34,41,67,49,132,57,164,65,198,73,6,82,71,98,135,98,168,106,201,
+  114,234,122,42,131,75,139,108,139,108,147,108,147,140,147,140,155,172,147,172,
+  155,172,147,172,155,172,147,172,155,172,147,172,155,172,147,172,147,6,172,155,
+  132,205,155,167,130,33,57,2,41,3,34,41,134,2,41,34,41,2,41,34,
+  41,2,41,34,41,3,2,41,137,100,49,131,57,34,49,197,65,2,41,2,
+  41,67,41,164,65,1,49,4,2,41,1,2,33,51,4,8,12,91,130,12,
+  99,12,91,4,12,99,129,44,99,3,12,91,131,44,99,12,91,12,91,3,
+  44,99,133,12,91,44,99,12,99,44,99,12,91,4,44,99,131,12,99,44,
+  99,12,99,5,44,99,132,44,91,44,99,45,99,13,99,3,44,99,147,45,
+  99,45,99,44,99,12,91,44,99,45,99,44,99,45,99,13,99,45,99,44,
+  91,45,99,45,99,44,99,45,99,44,91,12,91,45,99,45,99,3,44,99,
+  139,45,99,44,99,44,99,45,91,45,99,45,91,44,99,44,99,45,91,45,
+  99,45,99,4,44,99,133,45,99,44,99,45,99,45,91,45,99,3,44,91,
+  129,45,99,4,45,91,130,44,99,12,91,6,45,91,141,44,91,45,91,44,
+  91,45,91,45,91,13,91,12,91,44,91,12,91,44,91,45,91,12,91,45,
+  91,3,12,91,130,44,91,45,91,3,12,91,131,45,91,12,91,13,91,6,
+  12,91,132,13,91,45,91,45,91,44,91,4,45,91,139,12,83,235,82,203,
+  82,203,82,236,90,45,91,110,99,208,107,49,116,82,116,82,116,4,114,124,
+  143,146,124,114,124,114,124,147,124,115,124,114,124,146,124,115,124,114,124,114,
+  124,114,116,115,116,114,116,115,116,114,116,3,82,108,137,114,124,146,132,178,
+  140,178,140,146,140,113,132,81,132,81,132,146,140,6,178,140,132,179,140,179,
+  140,211,148,179,148,3,211,148,147,146,140,81,132,16,124,16,116,240,115,207,
+  107,143,99,143,91,176,99,241,107,17,108,18,108,18,108,17,108,17,108,114,
+  124,146,140,146,140,82,124,4,49,116,137,17,116,143,107,171,74,134,41,228,
+  16,74,58,111,91,49,116,146,124,3,147,124,131,179,124,179,124,147,124,5,
+  179,124,135,180,132,179,132,180,124,179,132,179,132,180,132,179,132,3,179,124,
+  133,180,132,179,124,179,132,180,124,180,124,3,180,132,129,179,124,3,180,132,
+  131,212,132,180,132,180,132,3,212,132,134,179,132,207,115,204,90,45,99,45,
+  99,12,99,4,45,99,138,13,99,45,99,45,99,77,107,77,107,45,99,45,
+  99,13,99,240,115,244,140,19,212,132,135,212,140,212,132,212,132,244,132,212,
+  132,212,132,212,140,8,244,132,157,212,140,212,140,212,132,212,132,180,132,179,
+  124,180,124,180,116,245,124,120,133,26,158,188,182,94,199,191,223,255,231,125,
+  223,88,198,84,165,15,132,235,90,231,57,69,41,228,24,228,24,5,25,37,
+  33,37,25,69,33,70,33,3,102,33,130,70,33,102,41,8,102,33,135,135,
+  33,103,33,102,33,102,33,69,33,102,33,102,33,3,70,33,134,102,33,70,
+  33,69,25,69,25,70,33,70,25,3,70,33,132,70,25,102,25,69,25,69,
+  25,13,70,25,130,102,25,70,25,14,102,25,3,102,33,146,102,25,102,33,
+  102,33,102,25,37,17,114,132,178,140,77,107,142,115,167,57,199,65,170,90,
+  142,115,109,107,77,107,110,115,77,107,142,115,3,244,132,6,212,132,130,212,
+  124,212,124,4,212,132,130,180,132,180,132,11,212,132,149,180,132,212,132,212,
+  132,180,132,180,132,180,124,147,124,147,124,83,108,18,100,242,91,242,83,176,
+  75,21,141,150,165,211,140,81,132,134,49,101,41,167,41,167,49,10,199,49,
+  133,231,57,199,57,199,57,231,57,232,57,3,199,49,152,231,49,199,49,232,
+  57,231,57,232,57,232,57,231,57,232,57,164,16,164,16,100,8,132,8,132,
+  8,133,8,133,8,198,16,139,82,17,140,211,164,244,172,243,172,19,173,19,
+  173,243,172,3,19,173,135,243,172,243,172,19,173,243,172,243,172,19,173,19,
+  173,6,20,173,129,19,173,5,20,173,129,52,173,14,52,181,132,84,181,52,
+  181,52,181,84,181,4,85,181,131,81,148,69,41,163,16,3,195,24,129,163,
+  24,3,195,24,130,163,24,195,24,3,163,24,142,162,16,98,16,3,33,100,
+  57,2,41,35,41,35,41,67,49,99,49,99,57,132,57,132,57,99,49,99,
+  57,5,67,49,137,35,41,2,33,34,41,34,41,2,41,34,41,2,41,2,
+  33,2,41,7,2,33,137,2,41,2,33,2,33,2,41,2,33,2,41,2,
+  41,2,33,2,41,5,2,33,129,2,41,5,2,33,158,2,41,2,41,34,
+  41,67,49,99,49,164,65,229,73,6,82,39,90,103,98,168,106,201,114,233,
+  122,42,131,42,139,75,139,108,147,140,147,140,147,172,147,140,147,172,155,172,
+  155,140,155,172,147,172,155,172,147,173,155,172,147,172,147,3,172,155,134,173,
+  155,173,155,172,155,172,155,204,155,204,155,3,173,155,142,172,155,140,147,140,
+  147,107,139,232,122,34,57,2,41,34,41,2,41,34,41,2,41,2,41,34,
+  41,34,41,5,2,41,137,35,41,197,65,2,41,197,57,34,49,2,41,2,
+  33,197,65,34,49,5,2,41,126,4,130,12,99,12,99,9,12,91,129,12,
+  99,3,12,91,129,12,99,3,12,91,135,12,99,12,99,44,99,12,91,44,
+  99,44,99,12,99,3,44,99,3,12,99,137,44,99,45,99,44,91,45,99,
+  44,99,45,99,12,91,44,99,45,99,3,44,99,129,45,99,3,44,99,158,
+  45,99,12,99,44,99,44,99,45,99,12,91,45,99,45,99,45,91,45,91,
+  45,99,12,99,45,91,44,91,45,99,45,99,44,99,44,99,45,91,44,91,
+  45,99,44,91,44,91,45,91,45,99,45,99,44,99,45,99,45,99,44,99,
+  3,45,99,133,44,99,45,99,44,91,44,91,45,99,4,45,91,129,44,91,
+  3,45,91,129,44,91,4,45,91,134,45,99,45,91,45,91,44,91,45,99,
+  44,91,4,45,91,135,12,91,12,91,44,91,44,91,12,91,44,91,13,91,
+  7,12,91,131,44,91,12,91,45,91,4,12,91,133,13,91,12,91,13,91,
+  12,91,44,91,3,12,91,129,45,91,3,12,91,140,45,91,45,91,236,82,
+  203,82,203,82,236,82,12,91,45,91,143,99,240,107,17,116,82,116,4,114,
+  124,134,146,124,114,124,146,124,114,124,147,124,115,124,3,146,124,148,147,124,
+  147,124,115,116,147,116,115,116,115,116,114,116,82,116,82,108,82,116,114,124,
+  146,132,178,140,114,140,16,124,142,107,109,99,240,115,81,132,146,140,4,178,
+  140,175,179,140,179,140,178,140,179,140,179,140,211,148,211,148,179,148,146,140,
+  81,132,16,124,16,124,240,115,208,107,143,99,175,99,208,99,17,108,50,108,
+  50,116,50,108,49,108,49,108,114,124,146,132,146,140,81,124,49,116,17,108,
+  49,116,17,116,17,116,208,107,236,82,199,49,228,16,232,41,78,91,241,107,
+  114,124,115,124,147,124,179,132,147,124,179,124,179,124,147,124,5,179,124,142,
+  180,132,179,132,179,132,179,124,180,124,179,124,180,132,179,124,180,124,179,124,
+  179,132,179,132,179,124,180,124,3,180,132,133,212,132,179,132,212,124,180,132,
+  180,132,3,212,132,136,180,132,212,132,147,124,240,115,12,91,45,99,45,99,
+  12,99,3,45,99,139,13,99,45,99,45,99,77,99,77,107,77,107,45,99,
+  77,99,13,99,45,99,114,132,18,212,132,129,244,132,5,212,132,133,244,132,
+  244,132,212,132,244,140,244,140,3,212,132,150,179,124,180,124,180,124,213,124,
+  87,133,250,157,188,182,127,207,223,223,223,231,157,231,88,198,51,157,239,123,
+  202,82,198,57,69,41,4,33,4,25,4,25,5,25,37,25,3,69,33,4,
+  102,33,129,70,33,4,102,33,129,70,33,3,102,33,129,70,33,8,102,33,
+  129,70,33,4,102,33,137,70,33,102,25,70,33,70,33,70,25,69,33,69,
+  25,69,33,70,25,4,70,33,133,69,25,69,25,70,25,70,25,70,33,4,
+  70,25,130,102,25,70,25,3,102,33,140,102,25,103,33,102,25,102,25,102,
+  33,102,33,70,25,102,25,102,25,70,25,70,25,70,33,3,102,25,3,70,
+  25,129,102,33,3,70,25,141,102,25,102,25,37,17,147,140,17,124,110,107,
+  174,115,138,82,166,57,203,98,142,115,77,107,109,107,3,77,107,139,212,132,
+  245,132,245,132,244,132,244,132,245,132,245,132,244,132,212,124,212,132,212,124,
+  4,212,132,129,180,132,11,212,132,150,180,132,180,132,212,132,180,132,180,132,
+  179,124,180,132,147,124,147,124,82,116,18,108,242,91,242,83,145,83,212,132,
+  150,157,53,157,179,140,134,49,101,41,166,49,167,49,8,199,49,147,200,49,
+  199,49,199,49,231,49,232,57,199,49,231,57,199,57,231,57,199,49,232,57,
+  232,57,231,49,231,57,232,57,199,49,231,57,232,49,164,16,3,132,16,142,
+  132,8,133,8,133,8,198,8,107,74,240,131,211,164,244,172,243,164,243,164,
+  20,173,19,173,19,173,20,173,3,19,173,129,243,164,3,243,172,8,20,173,
+  134,19,173,20,173,19,173,19,173,20,173,20,173,5,52,181,130,52,173,52,
+  173,5,52,181,134,84,181,52,181,52,181,84,181,52,181,84,181,4,85,181,
+  131,146,156,199,49,162,16,4,195,24,132,162,16,195,16,195,24,195,24,4,
+  163,24,143,162,16,130,16,227,32,100,57,35,41,67,49,99,49,34,41,67,
+  49,66,41,34,41,67,49,34,41,34,41,2,41,3,2,33,129,2,41,8,
+  2,33,129,2,41,5,2,33,3,2,41,131,226,32,2,33,2,41,3,2,
+  33,129,226,32,5,2,33,150,35,41,67,41,99,49,164,57,197,73,6,82,
+  39,90,71,98,136,106,169,114,201,114,10,123,233,122,169,114,202,122,43,131,
+  108,139,140,147,172,147,172,147,172,155,140,155,4,172,147,158,172,155,140,147,
+  172,147,172,155,172,155,140,147,172,147,172,155,172,155,172,147,205,155,173,155,
+  172,155,172,155,172,147,140,147,108,147,108,139,43,131,10,123,233,114,168,106,
+  136,98,71,90,38,82,229,73,164,65,132,57,2,41,34,41,4,2,41,129,
+  35,41,5,2,41,144,2,33,2,41,2,33,197,57,34,49,132,57,99,57,
+  1,41,2,41,164,49,99,57,2,41,2,41,34,41,99,49,66,49,65,4,
+  3,12,91,129,12,99,3,12,91,4,12,99,135,12,91,12,99,12,91,44,
+  99,12,99,12,99,45,99,3,12,91,130,44,99,44,91,4,12,99,130,44,
+  99,12,99,7,44,99,131,45,99,45,99,12,91,3,44,99,142,45,99,45,
+  99,12,91,45,99,44,99,45,99,12,99,45,99,13,99,45,99,44,91,44,
+  99,45,91,45,99,3,44,99,148,45,99,45,99,45,91,44,99,45,99,45,
+  91,44,91,44,91,45,91,44,91,44,91,45,91,44,91,44,91,45,99,44,
+  99,45,99,45,99,44,91,45,99,3,44,99,130,45,91,45,99,4,45,91,
+  129,44,91,10,45,91,133,44,91,45,91,45,91,44,99,44,91,5,45,91,
+  131,12,91,44,91,44,91,5,45,91,132,44,91,12,91,12,91,45,91,9,
+  12,91,136,13,91,44,91,12,91,13,91,12,91,44,91,12,91,12,91,5,
+  45,91,139,13,91,204,82,204,82,203,82,236,90,13,91,78,99,143,107,16,
+  116,49,116,82,124,4,114,124,134,146,124,147,124,146,124,114,124,147,124,115,
+  124,7,147,124,129,115,116,3,114,116,144,82,116,114,124,114,124,146,140,178,
+  140,48,124,174,107,12,83,45,75,239,107,81,124,146,140,179,140,179,148,179,
+  140,179,140,3,178,140,167,211,148,211,140,211,140,211,148,178,140,114,132,49,
+  124,16,124,16,124,240,115,175,107,143,99,176,99,241,107,18,108,50,108,50,
+  108,50,100,18,100,17,100,147,116,244,140,53,149,118,157,183,157,118,149,147,
+  124,240,107,17,116,240,115,45,91,8,58,228,24,167,33,45,83,208,107,114,
+  124,114,124,147,124,3,179,124,130,179,132,147,124,4,179,124,132,180,132,179,
+  124,179,132,180,132,6,179,132,133,180,124,180,132,180,124,180,132,179,132,4,
+  180,132,130,212,132,180,132,3,212,132,153,180,132,180,132,212,132,212,132,114,
+  124,175,115,110,107,45,99,45,99,13,99,45,99,13,99,45,99,77,107,77,
+  107,45,99,77,107,45,99,77,107,45,99,77,107,77,99,45,99,143,107,244,
+  140,20,212,132,129,244,132,3,212,132,145,180,124,147,124,179,116,213,116,87,
+  133,250,149,155,174,62,199,191,215,191,223,92,215,121,198,84,165,15,124,235,
+  90,231,57,101,33,3,5,25,131,37,33,69,33,69,33,4,102,33,142,102,
+  41,102,41,102,33,69,33,69,33,102,33,69,33,70,33,102,33,102,33,69,
+  33,102,33,70,33,70,33,5,102,33,129,70,33,6,102,33,131,70,33,102,
+  33,102,33,3,70,33,3,102,33,3,70,25,139,70,33,70,33,102,33,102,
+  25,70,25,102,33,70,25,70,33,102,33,70,25,102,25,4,70,25,129,102,
+  25,4,102,33,132,102,25,134,33,102,25,102,25,3,70,25,133,69,25,70,
+  25,37,25,37,25,69,25,4,37,25,153,4,17,4,17,5,17,5,25,5,
+  17,4,25,5,25,5,17,5,25,196,8,240,115,82,132,77,107,110,115,236,
+  98,101,49,236,98,110,115,77,107,77,107,109,107,109,115,45,107,114,124,245,
+  132,4,244,132,26,212,132,147,180,132,179,132,147,124,147,124,83,116,50,108,
+  242,91,242,83,145,83,180,124,182,165,243,148,146,132,166,49,101,41,134,41,
+  134,49,167,49,167,49,7,199,49,171,232,49,199,49,199,49,232,57,199,49,
+  231,57,200,57,231,57,200,57,232,57,232,57,232,49,231,49,231,57,231,57,
+  199,49,231,49,196,16,164,16,132,8,132,16,132,16,132,8,133,8,166,8,
+  74,74,239,131,179,156,19,173,19,173,20,173,19,173,20,173,20,173,19,173,
+  20,173,19,173,19,173,243,164,243,164,243,172,243,172,19,173,8,20,173,134,
+  19,173,19,173,20,173,20,173,52,181,52,173,3,52,181,132,52,173,20,173,
+  20,173,52,173,5,52,181,6,84,181,134,85,181,84,181,85,181,179,156,41,
+  66,162,16,3,195,24,133,163,24,195,24,195,24,195,16,163,24,4,195,24,
+  137,162,16,130,16,195,24,100,57,35,49,67,49,100,49,2,33,2,41,18,
+  2,33,129,2,41,6,2,33,159,226,32,225,32,2,33,2,41,2,41,35,
+  41,67,41,99,49,164,57,197,65,230,81,38,90,104,90,135,98,168,106,233,
+  122,234,130,10,131,75,139,234,130,169,114,169,106,201,114,169,114,136,106,75,
+  131,43,139,39,90,201,106,42,123,140,147,3,172,147,163,140,147,173,147,172,
+  147,172,147,172,155,173,147,172,155,172,155,204,155,172,155,173,155,140,147,140,
+  147,139,147,75,139,75,131,10,123,233,114,169,106,136,98,71,90,38,82,229,
+  73,196,65,132,57,99,49,66,41,34,41,2,41,2,33,225,32,2,33,34,
+  41,67,49,66,57,7,2,41,130,34,41,34,41,3,2,41,143,2,33,2,
+  41,132,49,99,57,67,49,164,65,1,49,2,41,68,49,164,65,2,41,34,
+  41,34,41,164,57,131,57,152,4,133,12,91,12,91,12,99,12,91,12,99,
+  4,12,91,134,12,99,12,91,12,91,12,99,12,91,12,91,3,12,99,132,
+  13,99,12,91,44,99,12,91,3,12,99,133,44,99,45,99,12,99,45,99,
+  45,99,3,44,99,129,45,99,3,44,99,131,45,99,44,99,12,91,4,44,
+  99,129,45,99,3,44,99,143,45,99,45,99,45,91,45,99,45,99,44,99,
+  45,99,45,99,44,99,45,99,45,91,45,91,44,91,45,91,45,99,3,44,
+  99,144,44,91,45,99,44,99,45,99,44,99,44,91,44,99,44,91,45,99,
+  44,91,45,91,44,99,45,99,45,91,44,99,44,99,3,45,99,129,45,91,
+  3,44,91,132,45,91,45,91,45,99,44,91,3,45,91,129,45,99,5,45,
+  91,132,45,99,44,91,45,91,45,91,3,44,91,131,45,91,45,91,44,91,
+  3,45,91,129,12,91,4,45,91,135,12,91,12,91,45,91,12,91,45,91,
+  12,91,45,91,3,12,91,137,13,91,12,91,12,91,45,91,12,91,12,91,
+  45,91,45,91,44,91,4,45,91,129,12,83,3,204,82,134,12,91,12,91,
+  110,99,175,107,17,108,50,116,4,114,124,3,115,124,132,146,124,147,124,146,
+  124,146,124,7,147,124,196,115,124,114,124,114,124,82,116,82,116,114,124,146,
+  132,146,140,146,140,80,132,239,115,142,91,142,99,16,116,114,132,179,140,178,
+  140,179,140,178,140,146,140,113,132,113,132,146,140,178,140,211,140,211,140,211,
+  148,178,140,113,132,49,124,16,124,16,124,240,115,175,107,143,99,143,91,50,
+  108,148,116,21,141,86,149,183,149,57,174,89,182,89,182,57,182,248,173,183,
+  165,183,165,24,174,24,174,215,165,17,108,241,115,78,99,73,58,4,25,102,
+  33,236,74,176,107,49,116,114,124,147,124,147,124,147,132,179,132,179,132,147,
+  132,147,124,3,179,124,131,180,132,180,124,179,124,4,179,132,141,180,132,180,
+  132,179,124,179,124,180,124,180,124,180,132,212,132,180,132,180,132,212,132,180,
+  132,180,132,8,212,132,145,82,116,110,99,45,99,13,99,45,99,12,91,12,
+  91,45,99,45,99,13,99,77,107,12,99,77,99,77,107,77,107,12,99,77,
+  107,3,45,99,130,114,124,244,132,5,212,132,129,244,132,6,212,132,158,244,
+  132,212,132,212,132,180,132,179,132,179,124,147,124,180,116,54,125,217,149,123,
+  174,61,199,223,223,255,231,158,231,186,206,149,173,80,132,12,91,40,66,101,
+  41,36,33,4,25,5,25,38,33,70,33,102,33,134,41,103,41,134,41,6,
+  102,33,133,102,41,102,33,69,33,70,33,102,33,3,69,33,129,102,33,3,
+  70,33,3,69,33,4,70,33,3,102,33,130,70,33,102,33,3,70,33,5,
+  102,33,129,70,33,3,102,33,133,70,33,70,33,102,33,102,33,103,33,3,
+  102,33,131,70,25,102,33,102,25,4,70,25,129,70,33,3,102,25,139,102,
+  33,135,33,102,25,70,25,69,25,37,25,69,25,37,25,37,25,5,25,5,
+  25,3,5,17,138,5,25,4,25,4,25,5,17,228,16,228,16,4,25,4,
+  25,4,17,4,17,6,5,25,144,196,8,143,99,86,157,110,107,77,107,110,
+  107,134,49,142,115,77,107,110,107,109,107,142,115,109,115,77,107,17,116,21,
+  133,4,244,132,129,245,132,3,212,132,129,212,124,12,212,132,130,180,132,180,
+  132,7,212,132,148,180,132,179,132,147,132,147,124,115,116,50,108,18,100,241,
+  83,177,83,147,124,183,165,244,140,243,140,199,49,101,41,134,41,166,49,199,
+  49,167,49,167,49,5,199,49,142,199,57,199,49,231,57,200,57,232,57,199,
+  49,231,57,199,49,232,57,200,57,232,57,199,49,232,57,199,49,3,231,57,
+  143,232,49,196,16,132,16,131,8,132,16,164,16,132,8,133,8,166,8,10,
+  66,208,123,178,156,243,172,20,173,19,173,6,20,173,129,19,173,4,243,164,
+  133,243,172,19,173,20,173,20,173,52,173,5,20,173,129,19,173,3,20,173,
+  135,52,173,20,173,52,181,52,181,20,173,52,173,20,173,4,52,173,130,52,
+  181,52,181,6,85,181,3,84,181,131,243,164,170,82,162,16,6,195,24,130,
+  163,24,163,24,3,195,24,141,163,24,162,16,130,16,162,16,68,49,67,57,
+  66,41,99,49,2,33,1,33,2,41,2,33,226,32,7,2,33,129,2,41,
+  5,2,33,130,226,32,226,32,3,2,33,186,35,41,67,41,67,49,131,57,
+  197,65,229,73,38,82,71,90,136,98,169,106,201,114,234,122,10,131,43,131,
+  75,139,75,139,107,147,140,147,140,155,140,155,172,147,140,147,172,147,75,139,
+  230,81,198,65,201,106,71,90,197,65,136,90,43,131,230,81,169,98,10,123,
+  140,139,172,147,172,147,172,155,173,155,172,147,140,147,140,147,107,147,107,139,
+  74,131,10,123,233,114,168,106,136,98,71,90,38,82,229,73,196,65,132,57,
+  132,57,67,49,2,41,2,41,3,2,33,141,2,41,35,49,100,57,132,65,
+  197,73,230,81,71,90,135,106,168,114,233,122,41,131,168,122,34,65,3,2,
+  41,4,34,41,147,2,41,34,41,34,41,2,41,34,41,2,41,67,41,197,
+  65,2,49,229,73,34,49,2,41,35,41,197,65,34,49,2,41,2,41,67,
+  49,67,49,160,4,3,12,91,131,12,99,12,91,12,99,3,12,91,157,12,
+  99,12,91,12,99,12,99,12,91,12,99,44,99,44,99,12,99,44,99,44,
+  99,12,99,44,99,44,91,44,99,44,99,12,91,44,99,44,99,12,99,44,
+  99,44,99,45,99,13,99,44,99,45,99,44,99,45,99,45,99,5,44,99,
+  129,45,99,4,44,99,3,45,99,3,44,99,134,45,99,45,99,44,99,44,
+  99,45,99,45,99,8,44,99,153,45,99,45,91,44,99,45,91,45,99,45,
+  99,44,99,45,99,45,99,44,91,45,91,45,99,44,91,45,99,45,99,44,
+  91,45,99,45,91,45,99,45,99,45,91,45,91,44,91,45,99,44,99,3,
+  45,91,130,44,91,44,99,6,45,91,131,44,91,45,99,44,91,3,45,91,
+  129,44,91,6,45,91,130,13,91,44,91,3,45,91,133,12,91,13,91,45,
+  91,12,91,45,91,3,12,91,129,45,91,3,13,91,133,44,91,44,91,45,
+  91,12,91,44,91,4,45,91,139,12,91,204,82,203,74,203,82,12,91,45,
+  91,110,99,208,107,17,116,82,116,82,124,3,114,124,135,115,124,147,124,146,
+  124,146,124,115,124,146,124,146,124,6,147,124,211,146,116,146,124,114,124,114,
+  116,82,116,114,116,114,124,146,132,178,140,146,140,114,140,49,124,16,116,49,
+  124,114,132,178,140,179,140,178,140,179,140,178,140,81,132,239,115,49,124,114,
+  132,179,140,211,140,211,148,211,148,146,140,114,132,49,124,16,124,16,124,240,
+  115,175,107,240,107,215,165,57,182,89,182,215,173,247,173,150,165,117,165,85,
+  157,243,148,118,157,52,157,81,132,174,107,81,124,150,157,122,190,179,132,17,
+  116,110,99,138,74,69,25,36,25,171,66,143,99,49,116,82,124,114,124,147,
+  124,147,124,179,132,179,124,179,132,179,132,179,124,179,132,179,124,179,124,180,
+  124,180,132,179,124,180,132,179,132,180,132,179,124,180,132,179,124,179,132,4,
+  180,132,132,212,132,180,132,180,132,212,124,4,212,132,129,211,132,4,212,132,
+  149,82,116,45,91,45,99,45,99,13,99,13,99,45,99,236,90,45,99,45,
+  107,13,99,12,91,45,99,77,107,45,99,77,99,77,107,45,99,45,99,13,
+  99,110,99,10,212,132,155,179,124,179,124,147,116,180,116,21,125,184,149,91,
+  166,29,191,159,215,255,231,255,239,27,215,246,181,178,148,109,107,73,74,134,
+  41,4,33,4,25,4,25,38,33,70,33,102,33,102,33,135,33,134,41,102,
+  41,3,102,33,133,134,41,102,41,102,33,102,33,102,41,4,102,33,136,70,
+  33,69,33,102,41,69,33,70,33,102,33,69,33,69,33,3,70,33,3,69,
+  33,6,70,33,132,69,33,102,33,70,33,70,33,4,102,33,132,135,41,134,
+  33,102,33,134,33,3,102,33,129,102,25,3,102,33,133,135,33,135,33,102,
+  33,102,33,70,33,3,70,25,131,69,25,69,25,70,25,3,69,25,6,37,
+  25,171,5,17,5,17,5,25,37,25,4,17,4,25,5,25,4,17,4,17,
+  4,25,5,25,5,17,5,17,37,17,37,25,37,25,37,17,37,25,37,17,
+  37,17,70,25,37,25,37,25,70,25,38,25,102,25,5,17,208,107,20,149,
+  240,123,110,107,77,107,45,99,109,107,110,115,77,107,77,107,109,115,45,107,
+  77,107,110,107,21,133,245,132,3,244,132,130,245,132,244,132,14,212,132,3,
+  180,132,7,212,132,147,180,132,180,132,147,132,147,124,115,116,82,108,18,100,
+  242,91,177,83,115,116,248,173,52,149,20,149,199,57,134,49,102,41,134,41,
+  199,49,167,49,8,199,49,145,232,49,231,49,231,49,231,57,199,49,232,57,
+  200,57,232,57,199,49,199,49,232,57,231,57,199,57,231,57,231,57,232,57,
+  196,24,4,132,16,138,132,8,133,8,166,8,201,57,175,123,179,156,243,172,
+  244,172,243,172,243,172,4,20,173,137,20,165,20,173,19,173,243,164,243,164,
+  243,172,243,164,19,173,19,173,8,20,173,129,19,173,4,20,173,142,52,173,
+  20,173,20,173,52,173,20,173,52,173,52,173,52,181,52,173,52,181,52,181,
+  84,181,85,181,52,181,3,84,181,134,52,181,84,181,84,181,20,173,77,107,
+  163,16,3,195,24,133,163,24,195,24,195,24,163,24,195,24,4,163,24,136,
+  162,24,130,16,130,16,68,49,100,57,34,41,99,49,2,41,10,2,33,148,
+  226,32,2,33,2,41,34,41,67,41,99,49,132,49,197,57,229,73,6,82,
+  71,90,104,98,137,106,201,114,234,122,10,123,42,131,75,139,107,139,107,147,
+  3,140,147,131,172,147,172,155,172,155,6,172,147,177,140,147,172,147,173,147,
+  140,147,136,106,39,90,202,114,234,122,10,123,234,122,76,131,10,131,43,123,
+  11,131,75,131,43,131,10,123,233,114,169,106,136,98,71,90,38,82,6,74,
+  197,65,164,57,132,49,99,49,66,41,34,41,2,41,2,41,2,33,2,33,
+  2,41,2,33,99,41,197,65,6,74,71,90,135,106,168,106,233,114,42,131,
+  42,139,75,139,108,147,140,147,172,155,172,155,3,205,155,152,107,155,98,81,
+  34,41,34,41,2,41,34,41,2,41,34,41,2,41,2,41,34,41,34,41,
+  2,41,34,41,2,41,2,41,197,65,34,49,164,65,99,57,2,41,2,33,
+  197,57,67,57,4,2,41,107,4,129,12,99,6,12,91,3,12,99,147,12,
+  91,12,99,12,91,12,99,12,99,12,91,12,99,12,91,12,91,44,99,44,
+  99,12,91,12,91,44,99,12,99,44,99,44,99,45,99,12,99,4,45,99,
+  131,44,99,44,99,45,99,7,44,99,3,45,99,9,44,99,129,45,99,3,
+  44,99,143,45,99,44,91,44,99,44,99,44,91,44,99,44,99,45,91,44,
+  99,44,99,45,99,77,99,45,91,44,99,45,99,4,45,91,3,45,99,132,
+  44,99,44,99,45,91,44,91,4,45,99,139,44,91,45,99,44,91,45,99,
+  45,99,45,91,45,91,45,99,44,99,45,99,45,99,3,45,91,129,44,91,
+  6,45,91,129,44,91,5,45,91,129,12,91,3,45,91,164,12,91,45,91,
+  45,91,44,91,12,91,12,91,44,91,44,91,12,91,13,91,44,91,12,91,
+  45,91,45,91,13,91,44,91,44,91,45,91,12,91,12,91,44,91,45,91,
+  45,91,12,83,203,82,203,82,204,82,12,91,45,91,142,99,240,107,49,116,
+  82,116,82,124,114,124,114,124,3,146,124,12,147,124,130,146,116,146,116,3,
+  114,116,130,114,124,146,132,3,178,140,129,146,140,3,178,140,188,179,140,179,
+  140,178,140,179,140,146,140,16,124,174,107,16,116,81,132,178,140,211,140,211,
+  148,211,148,146,140,81,132,49,124,16,124,16,124,240,115,175,99,211,132,178,
+  140,52,157,211,148,20,149,113,132,48,124,142,107,12,91,105,66,40,58,199,
+  41,167,41,135,33,9,50,53,149,57,174,113,132,175,107,176,107,204,74,134,
+  41,228,16,106,58,110,91,17,108,82,116,114,124,146,124,147,124,179,132,179,
+  132,179,124,179,132,179,124,147,124,179,124,180,124,180,124,179,132,5,180,132,
+  130,179,132,179,132,3,180,132,131,179,132,212,132,180,132,11,212,132,132,244,
+  140,17,116,110,99,13,99,3,45,99,180,13,99,45,99,45,99,13,99,45,
+  99,45,99,77,107,45,99,45,99,77,107,78,107,45,99,45,99,13,99,13,
+  99,17,116,244,140,212,132,180,132,179,124,179,124,147,116,245,124,119,133,58,
+  158,220,182,159,207,255,223,255,239,60,223,88,198,19,157,207,123,170,82,199,
+  49,37,33,4,25,4,25,37,25,69,33,70,33,102,33,102,41,102,41,102,
+  33,103,41,102,41,134,41,102,33,102,33,134,33,134,41,9,102,33,129,69,
+  33,3,102,33,130,69,33,70,41,8,69,33,146,102,33,70,33,69,33,70,
+  33,69,33,69,33,102,33,70,33,102,33,70,33,70,33,102,33,102,33,134,
+  33,135,33,103,33,102,33,135,41,3,102,33,136,70,33,70,33,102,33,135,
+  33,102,33,102,33,103,33,102,33,3,70,33,129,69,25,9,37,25,133,5,
+  25,4,25,4,17,5,17,37,17,3,37,25,137,5,25,5,17,5,17,5,
+  25,5,25,5,17,37,25,37,25,69,25,6,70,25,134,102,25,70,25,102,
+  25,70,25,70,25,102,25,3,103,25,132,37,9,81,124,243,148,175,115,3,
+  77,107,3,109,107,137,77,107,109,115,109,115,77,107,77,107,244,140,245,132,
+  244,132,244,124,3,244,132,13,212,132,134,180,132,180,132,179,132,179,124,179,
+  132,180,132,5,212,132,149,180,132,179,132,179,124,147,124,115,116,82,108,18,
+  100,242,91,177,83,51,116,183,165,20,149,85,149,8,58,134,49,102,41,166,
+  49,167,49,199,49,199,49,167,49,6,199,49,146,199,57,231,49,231,57,199,
+  49,199,49,231,57,232,57,199,57,231,57,200,49,232,49,232,49,199,57,231,
+  57,231,57,232,57,197,24,164,16,3,132,8,146,165,8,133,8,133,8,168,
+  49,142,115,146,156,243,164,244,172,19,173,20,165,19,165,20,173,20,173,19,
+  165,20,173,20,173,19,173,243,172,3,243,164,129,243,172,3,19,173,3,20,
+  173,129,19,173,3,20,173,137,19,173,20,173,20,173,19,173,52,173,52,173,
+  20,173,52,181,52,173,6,52,181,129,84,181,3,52,181,136,84,181,85,181,
+  84,181,52,181,84,181,52,181,207,123,227,24,8,195,24,129,163,24,4,195,
+  24,135,130,16,130,16,36,41,100,57,34,41,100,49,34,41,8,2,33,141,
+  2,41,100,49,230,65,38,82,103,90,136,98,169,106,233,114,233,122,42,131,
+  74,139,107,139,108,147,3,140,147,132,172,147,172,147,172,155,172,155,3,172,
+  147,137,172,155,172,155,172,147,172,155,172,147,140,147,172,147,172,155,173,155,
+  3,172,155,151,172,147,140,147,140,147,43,131,10,131,234,122,233,122,234,122,
+  168,106,104,106,71,98,39,90,230,81,197,73,164,57,132,57,99,41,67,41,
+  34,41,34,41,2,33,2,41,2,41,3,2,33,3,34,41,135,67,49,66,
+  41,67,49,99,57,2,41,133,49,42,115,3,140,147,132,173,155,205,155,204,
+  155,204,155,8,205,155,139,204,155,5,98,2,41,35,41,35,41,2,41,34,
+  41,2,41,34,41,2,41,34,41,3,2,41,139,34,41,2,41,165,57,99,
+  57,100,49,164,65,2,49,2,41,100,49,164,65,2,49,3,2,41,129,4,
+  129,12,99,4,12,91,156,12,99,12,91,12,91,12,99,12,91,12,99,44,
+  91,12,99,12,91,12,91,44,99,44,99,44,91,12,99,44,99,44,99,44,
+  91,44,99,12,91,44,99,12,99,44,99,45,99,44,99,44,99,45,99,44,
+  99,45,99,7,44,99,4,45,99,142,44,99,45,99,45,99,44,99,45,99,
+  44,99,45,99,45,91,44,99,45,99,44,99,44,99,45,99,44,91,6,44,
+  99,140,44,91,45,99,44,99,44,99,45,99,44,91,45,99,45,99,44,91,
+  45,91,45,99,45,99,3,45,91,144,44,91,45,99,45,91,44,99,44,99,
+  45,99,45,99,45,91,45,99,45,91,45,99,44,99,44,91,45,99,44,91,
+  44,91,5,45,91,129,45,99,3,45,91,3,44,91,129,45,91,3,44,91,
+  135,45,91,13,91,44,91,12,91,45,91,45,91,12,91,3,45,91,135,13,
+  91,13,91,45,91,45,91,44,91,13,91,45,91,3,12,91,132,45,91,12,
+  91,13,91,13,91,3,44,91,130,45,91,12,91,3,45,91,138,236,82,203,
+  82,203,82,236,90,13,91,78,99,175,107,240,107,49,116,82,124,3,114,124,
+  129,115,124,14,147,124,3,114,124,200,82,116,114,116,114,124,146,140,178,140,
+  178,140,179,140,178,140,178,140,179,140,178,140,178,140,179,140,178,148,179,140,
+  114,140,16,124,240,115,48,116,114,132,211,140,211,140,211,148,179,148,146,140,
+  81,132,49,124,49,124,16,116,240,115,208,107,77,91,235,82,105,66,8,50,
+  199,49,167,41,167,41,199,41,199,41,232,41,200,41,232,49,232,49,200,41,
+  106,50,20,141,24,174,16,124,106,74,175,107,236,82,167,41,228,16,41,50,
+  78,91,241,107,82,124,82,124,115,124,147,124,179,124,179,124,179,132,179,124,
+  147,124,179,124,180,132,179,124,180,132,179,132,179,132,7,180,132,129,212,132,
+  3,180,132,12,212,132,143,244,140,17,116,78,99,236,90,77,99,45,99,12,
+  99,13,99,45,99,45,99,44,99,13,99,13,99,77,107,45,99,3,45,107,
+  151,44,107,236,98,139,74,171,74,14,75,245,124,217,149,155,174,62,199,191,
+  223,255,231,157,231,153,206,149,173,48,132,12,99,8,66,69,41,37,33,4,
+  33,69,33,70,33,70,33,3,134,33,133,102,33,134,41,102,41,103,33,135,
+  41,3,102,41,136,135,41,70,41,102,41,102,41,102,33,103,41,134,41,134,
+  33,8,102,33,155,70,33,70,33,102,33,102,33,70,33,69,33,70,33,37,
+  33,69,33,69,25,69,33,37,33,69,33,69,33,102,33,102,33,70,33,69,
+  33,69,33,70,33,102,33,102,33,70,33,102,33,103,33,103,33,134,33,3,
+  135,33,129,134,33,3,102,33,130,70,33,70,33,5,102,33,132,70,33,69,
+  25,70,33,69,25,6,37,25,138,5,25,37,25,5,17,5,25,37,17,37,
+  25,37,25,70,25,37,17,37,17,3,37,25,130,69,25,70,25,3,38,25,
+  138,70,25,70,25,102,25,102,25,102,33,102,25,103,25,103,25,102,25,103,
+  25,4,102,25,142,103,33,103,25,70,25,70,25,38,25,38,17,211,140,52,
+  157,142,107,109,107,77,107,77,107,109,107,110,115,5,77,107,133,45,99,146,
+  132,21,133,245,132,244,132,15,212,132,131,180,132,180,124,179,124,3,147,124,
+  130,179,132,180,132,4,212,132,147,180,132,180,132,179,124,147,124,115,116,50,
+  108,18,100,242,91,209,83,50,108,215,165,52,149,20,149,8,66,166,49,101,
+  41,166,49,167,49,167,49,8,199,49,130,231,57,199,49,3,231,57,141,199,
+  49,232,57,231,49,199,57,199,57,232,57,232,57,231,49,199,49,199,49,232,
+  57,229,24,132,16,4,132,8,138,165,8,133,8,136,41,78,115,114,148,243,
+  164,243,164,243,172,244,172,243,172,4,19,173,131,243,172,244,164,243,172,4,
+  243,164,132,243,172,243,172,19,173,243,172,6,20,173,129,19,173,4,20,173,
+  150,52,181,52,173,20,173,52,173,52,181,52,173,52,181,52,173,52,181,52,
+  181,52,173,52,181,84,181,52,181,52,181,84,181,85,181,52,181,84,181,84,
+  181,48,140,4,33,13,195,24,135,162,16,130,16,3,33,132,65,34,41,100,
+  49,67,49,7,2,33,140,2,41,2,33,197,57,10,115,108,139,108,139,140,
+  147,140,147,172,147,172,147,172,155,172,155,3,172,147,129,173,147,5,172,147,
+  131,172,155,172,155,172,147,4,172,155,157,172,147,140,147,107,147,75,139,43,
+  139,10,131,233,122,201,114,136,106,103,98,71,90,6,82,196,73,196,65,132,
+  57,99,49,34,41,35,41,2,33,34,41,2,41,2,33,2,33,34,41,34,
+  41,2,41,2,41,34,41,34,41,3,99,49,141,164,57,99,57,132,57,164,
+  65,164,65,196,65,132,57,164,57,164,65,34,49,67,41,43,107,205,147,6,
+  205,155,139,172,147,140,147,108,139,75,131,42,131,233,114,201,106,136,98,103,
+  90,196,73,2,41,3,34,41,130,35,41,2,41,3,34,41,145,35,41,2,
+  41,34,41,34,41,2,41,68,41,164,65,34,49,197,65,34,49,34,41,35,
+  41,197,65,34,49,2,41,2,41,34,41,63,4,4,12,91,144,12,99,12,
+  91,12,91,12,99,12,99,12,91,12,99,12,91,12,99,45,99,12,91,44,
+  99,12,91,44,99,12,91,44,91,8,44,99,136,12,91,45,99,12,91,44,
+  99,12,99,45,99,44,99,45,99,4,44,99,130,45,99,44,91,7,44,99,
+  140,45,99,44,99,45,99,44,99,45,99,44,99,44,99,45,99,45,99,44,
+  99,45,99,44,91,3,45,99,155,44,91,45,99,44,91,45,99,44,99,45,
+  99,45,91,45,99,45,99,44,91,44,91,45,91,45,91,44,99,44,99,45,
+  99,45,91,45,91,45,99,45,99,44,99,44,99,44,91,44,91,45,99,44,
+  91,44,91,3,45,91,132,44,99,45,99,45,99,44,91,10,45,91,4,44,
+  91,132,45,91,45,99,44,91,44,91,5,45,91,143,12,91,45,91,45,91,
+  13,91,12,91,45,91,12,91,12,91,45,91,45,91,13,91,45,91,44,91,
+  13,91,12,91,3,44,91,3,45,91,139,12,91,204,82,204,82,203,82,236,
+  90,12,91,78,99,175,107,17,116,50,124,82,124,3,114,124,131,147,124,115,
+  124,146,124,12,147,124,135,146,124,146,124,114,116,82,116,114,124,146,132,146,
+  140,4,179,140,154,178,140,178,148,179,140,178,140,179,148,178,140,179,140,146,
+  140,113,132,81,124,114,132,146,140,211,148,211,140,211,148,178,140,114,140,49,
+  124,49,124,17,124,16,124,208,115,208,107,142,91,168,41,200,41,5,232,41,
+  130,232,49,232,49,3,232,41,148,167,33,236,66,53,149,57,182,110,107,138,
+  74,171,82,13,91,232,49,195,16,232,41,78,83,240,107,49,124,82,124,114,
+  124,146,124,147,124,179,132,179,132,4,179,124,144,180,132,179,124,212,124,179,
+  132,179,132,180,132,179,132,179,132,180,132,179,132,211,132,179,132,180,132,212,
+  124,212,132,180,132,3,212,132,129,180,132,7,212,132,161,244,140,49,116,13,
+  91,13,99,45,99,13,99,45,99,45,99,13,99,45,107,13,99,12,99,12,
+  99,203,82,236,82,237,82,112,83,115,108,87,141,26,158,62,199,223,223,223,
+  231,27,215,182,181,178,148,109,107,73,74,166,49,101,41,70,41,102,41,102,
+  41,9,134,41,133,135,41,134,33,102,41,102,41,134,41,5,102,33,133,102,
+  41,70,41,102,33,102,41,102,41,7,102,33,138,102,41,102,41,102,33,70,
+  33,70,41,102,33,70,33,70,33,69,33,102,33,6,69,33,144,70,33,102,
+  33,70,33,102,33,70,33,70,33,102,33,102,33,70,33,102,33,102,33,134,
+  33,135,33,167,33,167,33,135,33,3,102,33,132,70,25,70,33,102,33,102,
+  33,3,70,33,16,37,25,131,70,33,37,25,69,25,8,70,25,131,102,25,
+  70,25,70,25,12,102,25,130,70,25,102,25,6,70,25,146,229,16,114,132,
+  52,157,207,115,45,107,45,107,77,107,77,107,110,107,77,107,109,107,77,107,
+  110,115,77,107,45,107,240,115,21,141,244,132,15,212,132,130,180,124,180,124,
+  3,147,124,131,148,124,179,124,180,124,6,212,132,146,179,132,147,124,147,124,
+  115,124,82,108,18,100,242,91,210,83,241,99,215,165,20,149,85,157,73,66,
+  167,49,69,33,134,41,167,49,167,49,11,199,49,135,231,57,231,57,199,49,
+  199,57,199,57,232,57,200,57,3,199,49,132,232,57,231,57,231,57,229,16,
+  4,132,16,134,132,8,133,8,133,8,104,33,78,107,114,148,5,243,164,138,
+  20,173,19,173,19,173,243,172,19,173,243,172,243,164,19,173,243,164,243,172,
+  3,243,164,133,19,173,20,173,19,173,20,173,243,172,8,20,173,150,52,173,
+  52,173,20,173,52,181,52,173,52,173,52,181,52,173,52,181,84,181,52,181,
+  52,173,84,181,52,181,84,181,84,181,85,181,84,181,84,181,85,189,113,148,
+  134,49,13,195,24,135,163,16,130,16,227,32,132,57,67,49,100,49,67,49,
+  7,2,33,141,2,41,2,33,132,49,43,123,173,147,172,147,172,147,173,155,
+  172,155,204,147,172,147,172,147,172,155,4,173,155,170,172,155,172,147,172,147,
+  140,147,139,147,107,139,75,139,42,131,233,122,200,114,168,106,135,98,71,90,
+  38,82,229,73,197,65,132,57,100,49,67,41,67,41,34,41,2,41,34,41,
+  34,41,67,49,132,57,164,65,197,65,6,82,71,90,71,90,99,57,2,41,
+  2,41,67,41,197,65,132,65,132,57,164,65,99,57,131,57,196,65,3,164,
+  65,132,100,57,132,57,99,57,99,49,3,67,49,154,35,41,2,41,136,90,
+  107,131,43,131,10,123,233,114,169,106,136,98,71,90,38,82,229,73,197,65,
+  132,57,132,49,131,57,131,57,66,49,99,57,164,65,67,49,34,41,34,41,
+  2,41,34,41,2,41,6,34,41,142,2,41,2,41,35,41,229,73,34,49,
+  197,65,67,57,34,41,2,41,197,65,66,57,34,41,2,41,34,41,83,4,
+  129,12,99,7,12,91,3,12,99,140,12,91,44,99,12,99,45,99,44,99,
+  12,99,12,99,44,99,12,99,45,99,44,99,12,99,3,44,99,133,12,91,
+  12,99,44,99,44,99,44,91,3,44,99,129,45,99,6,44,99,130,45,99,
+  44,91,3,45,99,153,44,99,45,91,45,99,45,99,44,99,44,99,45,99,
+  44,99,45,99,45,99,44,99,45,99,45,91,44,91,45,99,45,91,45,99,
+  45,91,44,99,45,91,45,91,45,99,44,99,45,99,44,99,4,45,99,147,
+  44,99,44,91,44,99,45,99,44,99,45,91,45,91,45,99,45,99,44,91,
+  45,99,45,99,44,91,45,99,45,91,45,91,45,99,45,99,45,91,3,44,
+  91,130,45,99,44,91,3,45,99,3,45,91,137,44,91,45,91,45,91,44,
+  91,45,99,45,91,44,91,44,99,44,91,3,45,91,134,44,91,44,91,45,
+  91,45,99,12,91,12,91,4,45,91,133,13,91,45,91,13,91,45,91,12,
+  91,5,45,91,129,44,91,4,45,91,139,12,83,236,82,203,82,203,82,236,
+  90,45,91,110,99,208,107,17,116,82,116,82,124,3,114,124,130,146,124,146,
+  124,5,147,124,132,147,132,147,124,147,124,179,124,4,147,124,137,146,124,114,
+  124,114,116,114,116,114,124,146,132,178,140,178,140,179,140,5,178,140,142,179,
+  140,179,140,178,140,210,148,179,140,146,140,146,140,178,140,179,140,211,140,211,
+  148,211,148,178,140,113,132,3,49,124,137,16,124,208,107,208,99,17,108,143,
+  99,167,33,232,49,232,41,8,50,4,232,41,151,232,49,232,41,232,41,167,
+  33,208,99,150,165,56,182,235,90,171,82,138,82,203,82,8,58,195,16,200,
+  41,45,83,208,107,50,124,82,116,114,124,114,124,147,124,147,124,179,132,5,
+  179,124,3,180,132,130,180,124,179,132,3,180,132,131,179,124,179,132,211,124,
+  8,212,132,129,212,124,6,212,132,159,244,140,208,107,12,91,45,107,12,99,
+  236,98,236,98,171,82,204,74,14,83,209,99,245,124,249,149,253,190,191,215,
+  255,223,125,223,88,198,19,157,207,115,203,82,199,57,69,41,37,33,69,33,
+  70,33,102,41,135,41,167,49,200,49,200,49,6,167,49,131,135,41,134,41,
+  135,49,4,134,41,130,102,41,102,41,3,102,33,133,135,41,102,33,102,33,
+  102,41,102,41,3,102,33,129,134,41,4,102,33,4,102,41,4,102,33,136,
+  69,33,70,33,69,33,102,33,102,33,102,41,69,33,69,33,8,102,33,132,
+  70,33,70,33,102,33,134,33,4,135,33,139,102,33,102,33,70,33,70,25,
+  70,25,70,33,70,25,37,25,37,25,69,25,69,33,7,37,25,131,37,17,
+  37,25,37,25,4,69,25,16,70,25,131,102,25,70,25,102,25,4,70,25,
+  129,102,25,5,70,25,133,38,25,70,25,38,25,37,25,70,25,3,37,25,
+  136,196,8,49,124,49,124,12,99,77,107,77,107,109,107,109,107,7,77,107,
+  130,175,115,244,140,15,212,132,137,179,132,179,124,147,124,147,116,148,124,180,
+  124,180,124,212,132,212,124,5,212,132,146,180,132,179,132,179,124,147,124,115,
+  116,83,108,18,100,242,91,209,83,209,99,215,165,85,149,20,149,106,66,166,
+  49,101,41,166,49,167,49,6,199,49,132,200,49,199,49,199,49,231,49,3,
+  199,49,151,231,49,199,49,231,57,232,57,199,49,232,57,199,49,232,57,231,
+  57,232,57,199,49,8,58,5,25,164,16,132,8,132,16,132,16,132,8,133,
+  8,166,8,72,33,13,99,81,148,5,243,164,144,19,173,243,172,19,173,19,
+  173,20,173,19,165,20,165,19,165,243,164,243,172,243,164,243,164,243,172,243,
+  164,243,172,19,173,9,20,173,134,52,181,20,173,52,173,52,181,52,173,20,
+  173,3,52,173,131,52,181,52,181,84,181,5,52,181,135,84,181,52,181,84,
+  181,84,181,178,156,232,57,163,24,12,195,24,135,163,24,130,16,163,24,132,
+  57,67,49,67,49,99,57,3,2,33,129,2,41,5,2,33,154,67,41,233,
+  106,205,147,173,147,205,155,173,155,173,155,172,147,172,155,140,155,140,147,107,
+  147,75,139,42,131,10,123,201,114,168,114,135,106,71,90,38,82,5,74,197,
+  65,164,57,131,57,67,49,67,41,4,34,41,157,67,41,99,49,164,57,197,
+  73,6,82,71,90,103,98,168,106,201,114,234,122,42,131,43,139,75,139,139,
+  147,140,147,140,147,6,98,2,41,2,41,34,41,131,57,131,57,99,49,132,
+  57,67,49,34,41,67,49,67,49,35,41,3,34,41,129,2,41,5,34,41,
+  148,35,49,132,57,197,65,132,57,132,57,131,49,99,49,67,49,34,41,99,
+  49,99,49,132,57,131,57,197,65,196,73,5,74,196,73,66,49,196,65,99,
+  57,5,34,41,148,2,41,34,41,2,41,34,41,34,41,2,41,34,41,34,
+  41,2,41,197,57,66,57,131,49,164,65,33,41,2,41,132,57,132,65,2,
+  41,34,41,67,49,30,4,5,12,91,129,44,99,3,12,99,133,45,99,12,
+  99,12,99,12,91,45,99,3,12,99,131,44,99,44,99,45,99,6,44,99,
+  131,12,91,44,99,12,99,7,44,99,129,44,91,8,44,99,3,45,99,3,
+  44,99,142,44,91,44,91,45,99,44,99,45,99,45,91,45,99,45,99,44,
+  91,44,99,44,99,45,99,45,99,44,99,3,45,99,129,44,99,4,45,99,
+  134,45,91,45,99,45,99,44,99,44,91,44,91,3,45,99,131,45,91,45,
+  99,44,91,3,45,99,136,44,91,45,99,44,91,45,91,45,99,45,91,45,
+  91,44,99,3,45,91,131,45,99,45,91,45,99,4,45,91,5,44,91,133,
+  45,91,12,91,45,99,44,99,44,91,8,45,91,130,12,91,12,91,4,45,
+  91,132,44,91,45,91,12,91,12,91,8,45,91,142,236,82,203,82,204,82,
+  236,82,12,91,45,91,142,99,240,107,49,116,82,116,82,124,114,124,114,124,
+  146,124,9,147,124,131,179,124,147,124,179,124,3,147,124,129,146,116,3,114,
+  116,131,114,124,146,132,179,140,5,178,140,129,179,140,3,178,140,135,211,140,
+  178,148,179,140,179,140,179,148,211,140,211,140,3,211,148,130,146,140,113,132,
+  3,49,124,137,16,116,207,107,208,99,241,107,115,124,78,91,167,33,200,41,
+  232,49,7,232,41,168,167,33,81,108,117,157,247,181,106,74,170,82,171,82,
+  171,82,73,74,195,16,167,33,45,83,208,107,50,116,82,116,82,116,114,124,
+  147,124,147,124,179,124,179,124,180,124,180,124,179,124,179,124,179,132,180,132,
+  180,124,180,124,212,124,212,124,180,132,212,132,179,132,180,132,212,132,212,132,
+  180,132,212,132,211,132,12,212,132,159,78,83,139,66,46,83,18,100,22,125,
+  26,158,62,191,223,223,190,223,218,214,149,173,48,132,235,90,231,57,69,33,
+  228,24,4,25,5,33,37,33,69,33,102,41,134,41,167,49,167,41,135,41,
+  167,49,167,49,200,49,232,57,232,57,199,49,4,167,49,3,134,41,129,135,
+  41,3,134,41,4,102,41,146,134,41,134,41,102,41,134,41,102,33,102,41,
+  102,41,102,33,102,33,70,33,102,33,102,41,102,41,102,33,134,41,102,41,
+  102,33,102,41,4,102,33,131,69,33,102,33,70,33,6,102,33,130,134,33,
+  134,33,6,102,33,129,70,33,4,102,33,132,70,33,69,33,70,33,70,33,
+  10,37,25,139,69,25,69,25,69,33,70,25,70,25,70,33,70,33,70,25,
+  70,33,70,25,69,25,4,70,25,129,102,33,6,70,25,134,38,25,70,25,
+  37,17,70,25,70,25,38,25,3,70,25,132,37,25,38,25,38,25,70,25,
+  3,37,25,150,38,25,37,25,37,25,37,17,37,25,37,25,5,17,5,25,
+  37,25,5,25,5,17,5,17,5,25,196,8,175,107,49,124,110,107,77,99,
+  45,107,77,107,109,107,109,107,5,77,107,130,45,107,77,107,14,212,132,130,
+  180,132,180,124,4,147,124,132,180,124,212,132,212,132,244,132,7,212,132,145,
+  180,132,180,124,148,124,115,116,83,108,18,100,18,92,242,91,209,99,183,165,
+  52,149,53,149,170,74,166,49,69,33,166,49,166,49,8,199,49,148,231,49,
+  231,57,199,49,231,57,199,49,199,49,231,57,231,57,231,49,231,57,199,49,
+  199,49,199,57,199,49,231,49,231,49,232,57,5,25,164,16,132,8,3,132,
+  16,134,133,8,133,8,40,33,204,90,49,140,211,164,5,243,164,138,244,172,
+  243,164,243,172,243,164,20,173,243,164,244,164,19,173,243,172,243,164,3,243,
+  172,129,19,173,11,20,173,139,19,173,20,173,52,173,20,173,20,173,19,173,
+  19,173,20,173,20,173,52,181,20,173,8,52,181,132,84,181,243,164,138,74,
+  162,16,7,195,24,129,163,16,4,195,24,136,163,24,130,16,162,16,100,57,
+  99,57,67,49,99,57,2,41,8,2,33,146,34,33,136,90,107,139,107,139,
+  42,131,10,131,233,122,168,114,136,106,103,98,70,90,6,82,229,73,196,65,
+  132,57,100,49,99,49,66,41,3,34,41,150,67,49,132,57,164,57,197,65,
+  229,73,71,90,103,98,168,106,169,114,233,114,169,114,169,106,234,122,42,131,
+  10,123,234,122,107,139,172,147,172,147,172,155,204,155,204,155,3,205,155,130,
+  168,114,2,49,3,2,41,132,34,41,34,41,3,41,2,33,6,2,41,5,
+  34,41,150,2,33,35,41,164,57,131,57,131,57,197,65,164,65,164,65,163,
+  65,196,73,132,65,164,65,132,65,164,65,132,57,196,65,164,65,99,57,99,
+  49,34,41,66,41,66,41,6,34,41,129,2,41,7,34,41,139,100,49,164,
+  65,67,49,229,65,34,49,34,41,67,41,197,65,34,49,34,41,34,41,89,
+  4,130,12,91,12,99,4,12,91,143,12,99,12,99,12,91,12,99,44,99,
+  12,99,12,91,12,99,12,91,12,91,45,99,45,99,44,99,44,99,12,99,
+  7,44,99,129,45,99,3,44,99,140,12,91,45,99,45,99,12,91,45,99,
+  12,91,45,99,45,99,44,99,44,99,45,99,45,99,3,44,99,140,45,99,
+  44,99,44,99,45,99,45,99,44,91,44,99,45,99,44,99,44,99,45,99,
+  45,99,3,44,91,130,77,99,45,91,3,45,99,130,44,99,45,99,3,44,
+  99,137,45,99,44,99,45,99,45,91,45,91,45,99,45,91,44,91,44,99,
+  3,45,99,140,45,91,45,99,45,99,44,91,45,91,45,99,44,91,44,91,
+  45,91,45,99,44,91,45,99,5,45,91,3,44,91,133,45,91,45,91,45,
+  99,45,91,44,99,3,45,91,131,44,91,45,91,44,91,6,45,91,135,44,
+  91,45,91,45,91,44,91,44,91,45,91,13,91,13,45,91,139,12,91,236,
+  82,204,82,203,82,236,90,12,91,45,99,143,99,240,107,49,116,82,124,3,
+  114,124,5,147,124,3,147,132,3,147,124,129,179,124,5,147,124,134,115,124,
+  114,116,114,124,146,132,178,140,178,140,3,179,140,135,178,140,178,140,179,140,
+  178,140,178,148,211,140,178,140,5,211,140,134,179,140,211,140,211,148,211,140,
+  146,140,81,132,3,49,124,136,240,115,208,107,208,99,17,108,82,116,212,132,
+  236,74,167,33,7,232,41,161,232,49,167,33,179,132,85,149,150,165,105,74,
+  138,82,170,82,203,90,203,82,166,41,102,25,13,75,208,107,82,116,82,116,
+  82,124,114,124,147,124,147,124,179,124,179,124,180,124,179,124,180,132,180,132,
+  179,132,179,132,212,132,211,132,180,132,180,132,212,132,3,180,132,16,212,132,
+  142,147,116,25,158,191,215,158,223,153,206,84,165,207,123,138,82,166,49,37,
+  33,4,25,4,33,37,33,69,33,7,102,41,134,134,41,135,49,134,49,134,
+  49,167,49,167,49,4,199,49,137,200,49,199,49,200,49,199,49,167,49,167,
+  49,135,41,134,41,102,41,5,134,41,3,102,41,133,134,41,102,41,102,33,
+  102,33,102,41,3,102,33,139,70,33,102,33,102,41,134,41,102,41,102,33,
+  102,33,103,41,134,33,134,41,102,41,8,102,33,132,135,33,134,41,135,41,
+  134,33,3,102,33,142,70,33,70,33,102,33,70,33,102,33,102,33,70,33,
+  69,33,37,25,37,25,37,33,37,25,37,33,37,33,5,37,25,132,37,33,
+  69,25,69,33,69,25,4,102,33,139,70,33,102,33,102,33,70,33,70,25,
+  70,33,70,25,70,25,102,25,70,25,70,33,8,70,25,130,37,17,37,17,
+  6,37,25,131,37,17,37,25,5,25,3,5,17,131,5,25,5,25,4,25,
+  4,5,25,131,5,17,5,25,4,25,3,228,16,141,4,17,164,8,175,107,
+  78,99,109,107,45,107,45,107,77,107,109,107,109,107,77,107,77,107,109,107,
+  3,77,107,131,45,99,146,124,244,132,11,212,132,135,180,132,179,124,147,116,
+  147,116,179,124,147,124,180,124,4,212,132,131,180,132,180,124,180,132,4,212,
+  132,147,180,132,180,124,148,124,115,124,82,116,50,100,242,91,242,91,177,91,
+  183,165,85,157,85,149,203,82,167,49,69,41,134,41,134,41,167,49,167,49,
+  4,199,49,138,231,57,199,49,200,49,199,49,199,49,199,57,199,57,199,49,
+  199,57,231,49,4,199,49,135,231,57,231,57,232,57,231,49,232,57,6,25,
+  164,8,3,132,16,143,132,8,133,8,133,8,7,25,172,90,49,140,211,164,
+  243,164,243,164,19,173,243,164,243,172,20,173,20,165,20,165,3,243,172,135,
+  20,173,243,172,20,173,243,172,19,173,243,172,243,172,5,19,173,129,243,172,
+  5,19,173,134,20,173,19,173,20,173,20,173,19,173,19,173,3,20,173,134,
+  19,173,20,173,20,173,52,173,52,181,52,173,5,52,181,132,84,181,20,173,
+  12,99,162,16,12,195,24,136,163,24,162,16,130,16,68,49,132,65,34,41,
+  132,57,34,41,3,2,33,130,2,41,2,41,3,2,33,139,35,33,132,49,
+  6,74,229,73,229,65,164,57,99,49,99,49,66,41,66,41,2,41,5,2,
+  33,171,132,49,71,82,103,90,136,106,202,114,234,122,10,123,75,131,10,131,
+  169,114,202,122,234,122,234,122,233,122,10,123,234,122,104,98,169,106,234,114,
+  233,114,201,114,75,131,205,147,173,147,172,147,140,147,107,147,75,139,42,131,
+  10,123,103,106,34,49,2,41,2,33,34,41,2,41,2,41,35,41,34,41,
+  2,33,2,41,2,41,34,41,5,2,41,141,2,33,34,41,2,41,2,41,
+  131,57,99,49,131,57,196,65,164,57,99,49,67,49,99,49,66,49,4,34,
+  41,130,2,41,2,33,3,2,41,130,34,41,66,49,8,34,41,145,35,41,
+  34,41,34,41,2,41,34,41,34,41,35,41,229,73,34,49,229,65,67,57,
+  2,41,3,41,230,65,67,57,34,41,34,41,98,4,133,12,91,12,91,12,
+  99,12,91,12,99,3,12,91,136,12,99,44,99,12,99,12,99,45,99,44,
+  99,44,99,12,99,6,44,99,131,45,99,45,99,12,91,3,44,99,129,45,
+  99,5,44,99,129,45,99,4,44,99,135,45,99,44,99,45,99,44,99,44,
+  99,45,99,45,99,4,44,99,134,45,91,45,99,44,99,45,99,45,99,44,
+  99,5,45,99,129,44,99,4,45,99,130,45,91,44,99,4,45,99,132,44,
+  99,44,99,77,99,44,91,3,45,99,146,44,91,45,99,45,91,44,91,45,
+  91,45,99,44,91,44,99,45,91,45,91,45,99,44,91,45,99,45,99,45,
+  91,45,99,45,91,77,99,4,45,91,135,44,91,45,91,45,99,44,91,45,
+  91,44,91,44,91,7,45,91,130,44,91,44,91,4,45,91,136,44,91,44,
+  91,45,91,45,91,13,91,13,91,45,91,13,91,4,45,91,133,13,91,45,
+  91,12,91,45,91,12,91,3,45,91,138,13,91,236,82,204,82,203,82,236,
+  90,13,91,78,99,175,99,17,108,49,116,3,114,124,3,146,124,130,147,124,
+  147,132,3,147,124,132,147,132,147,124,147,124,179,124,6,147,124,168,114,116,
+  114,116,114,124,146,132,178,140,178,140,179,140,179,140,178,140,178,140,179,140,
+  178,140,178,140,210,140,179,148,179,140,211,140,211,148,179,140,179,140,211,148,
+  179,140,211,140,211,148,179,148,146,140,81,132,49,124,49,124,16,124,240,115,
+  208,107,208,107,50,108,115,116,147,124,212,132,139,58,167,33,232,49,5,232,
+  41,134,200,41,232,33,118,149,215,165,243,148,105,74,3,170,82,141,171,82,
+  203,82,232,41,237,74,208,107,50,116,82,124,82,124,114,124,115,124,147,124,
+  179,124,179,124,3,179,132,139,180,132,179,124,180,132,180,132,179,132,211,132,
+  180,124,212,124,180,132,212,132,180,132,16,212,132,137,147,124,236,82,167,57,
+  69,33,4,25,37,33,37,33,70,41,70,33,8,102,41,130,102,33,102,33,
+  3,102,41,143,135,49,134,41,134,49,167,49,167,49,200,49,167,49,199,49,
+  200,57,199,49,200,49,167,49,199,49,167,49,167,49,3,135,41,155,134,41,
+  102,41,135,41,102,41,134,41,102,33,102,41,70,33,134,41,102,33,102,33,
+  134,41,134,41,102,33,102,41,102,33,102,41,134,41,134,41,102,33,134,41,
+  102,41,134,41,135,41,134,41,134,41,102,41,3,102,33,132,102,41,102,41,
+  102,33,102,33,3,135,41,3,102,33,4,70,33,137,69,33,69,33,70,33,
+  37,33,69,33,69,33,37,33,69,33,37,33,3,37,25,133,70,25,37,25,
+  69,25,70,25,70,33,3,102,33,132,102,25,102,33,102,33,103,33,4,102,
+  33,130,103,33,102,33,7,70,25,138,38,25,38,25,70,25,38,25,37,25,
+  37,17,37,25,37,17,37,25,37,25,3,5,25,130,5,17,5,17,3,5,
+  25,132,4,25,5,17,5,17,5,25,3,4,17,3,228,16,130,228,24,4,
+  25,5,228,16,136,163,8,208,115,49,124,77,107,45,107,45,107,44,99,109,
+  107,7,77,107,134,45,107,17,124,245,140,244,132,212,132,244,132,8,212,132,
+  136,180,132,179,124,179,124,180,124,180,124,179,124,179,124,180,132,3,212,132,
+  153,211,132,179,132,179,124,180,132,212,132,212,132,212,124,180,124,180,124,179,
+  124,115,116,82,108,18,100,242,99,210,91,145,91,183,165,85,157,244,140,236,
+  82,167,49,101,41,134,41,167,49,167,49,8,199,49,3,231,57,137,232,57,
+  199,49,231,57,199,57,199,49,199,57,231,57,231,57,200,49,3,199,49,141,
+  232,57,6,25,164,16,132,16,132,16,165,16,133,8,133,8,134,8,7,25,
+  172,82,16,140,211,156,4,243,164,130,243,172,243,172,3,243,164,131,243,172,
+  243,172,243,164,3,243,172,129,243,164,4,243,172,129,243,164,7,243,172,130,
+  19,173,243,172,6,19,173,3,20,173,131,52,173,20,173,20,173,7,52,181,
+  131,84,181,52,181,142,115,14,195,24,140,162,16,130,16,35,41,132,65,66,
+  41,132,57,35,49,2,33,2,41,2,41,2,33,2,33,3,2,41,177,2,
+  33,34,41,34,41,2,41,2,33,2,33,34,41,67,49,34,41,34,41,35,
+  41,99,49,99,57,35,41,2,41,2,33,230,65,75,131,140,147,140,147,173,
+  147,173,155,173,147,205,155,172,155,201,122,169,106,233,114,234,122,201,114,234,
+  114,10,131,201,114,233,122,201,122,201,114,168,106,168,106,169,106,136,98,71,
+  90,70,90,5,82,229,73,164,65,164,65,131,57,66,41,35,49,5,34,41,
+  130,35,41,34,41,3,2,41,3,34,41,134,2,41,34,41,2,41,34,41,
+  2,41,2,41,4,34,41,129,2,41,3,2,33,141,34,41,34,41,67,49,
+  99,49,132,57,196,73,5,82,70,90,103,98,168,106,233,122,200,122,99,81,
+  7,34,41,130,2,41,35,41,4,34,41,139,2,41,229,65,66,57,164,57,
+  131,57,34,49,2,41,164,49,131,57,2,41,34,41,31,4,144,12,91,12,
+  91,12,99,12,91,12,99,12,91,44,99,12,99,12,99,44,99,44,99,12,
+  99,12,99,44,99,44,99,12,99,3,44,99,138,12,99,44,99,44,99,45,
+  91,44,99,44,99,45,99,44,99,44,99,45,99,3,44,99,129,45,99,5,
+  44,99,4,45,99,129,44,99,3,45,99,137,44,99,45,99,44,99,44,99,
+  45,99,45,99,44,99,45,99,44,99,3,45,99,3,44,99,131,45,99,45,
+  99,44,99,4,45,99,137,44,99,44,99,45,99,44,99,45,99,77,99,44,
+  91,45,99,45,91,4,45,99,134,45,91,45,99,45,99,44,99,44,91,45,
+  91,3,45,99,140,44,91,45,91,45,99,45,91,45,99,45,99,45,91,45,
+  91,45,99,45,91,45,91,44,91,4,45,91,130,44,91,45,91,3,44,91,
+  15,45,91,129,44,91,4,45,91,133,44,91,12,91,45,91,45,91,45,99,
+  5,45,91,138,12,83,236,82,203,82,203,82,236,90,13,91,110,99,207,107,
+  17,116,82,116,3,114,124,132,146,124,147,124,147,124,146,124,8,147,124,129,
+  179,124,4,147,124,134,115,124,114,116,114,116,114,124,146,132,146,140,7,179,
+  140,129,178,140,3,179,140,139,178,140,211,148,211,140,211,148,211,140,211,140,
+  211,148,211,148,179,148,114,140,81,124,3,49,124,138,240,115,208,107,240,107,
+  50,108,147,124,179,124,180,124,179,124,9,50,199,41,5,232,41,134,199,41,
+  106,50,85,149,215,165,16,132,105,74,3,170,82,133,171,82,171,82,236,82,
+  13,75,208,107,3,82,124,133,114,124,115,124,147,124,179,124,179,124,3,179,
+  132,6,180,132,130,211,132,211,132,6,212,132,129,180,132,12,212,132,134,179,
+  132,45,91,200,57,102,41,134,41,134,41,9,102,41,134,70,41,70,41,102,
+  41,102,41,134,41,102,41,3,134,41,3,167,49,3,199,49,136,232,57,199,
+  49,199,49,199,57,199,49,167,49,167,49,135,49,4,134,41,131,102,41,102,
+  33,134,41,3,102,41,136,102,33,102,33,135,41,102,41,102,33,102,33,102,
+  41,134,41,5,135,41,133,167,41,135,41,135,41,134,41,102,41,6,102,33,
+  130,135,33,135,33,3,102,33,134,70,33,102,33,69,33,102,33,69,33,69,
+  33,3,37,33,133,37,25,37,33,37,33,69,25,69,33,5,70,33,145,70,
+  25,102,25,102,33,102,33,134,33,134,33,102,33,134,33,134,33,103,33,102,
+  33,102,33,103,33,102,25,102,33,102,33,102,25,4,70,25,135,38,25,70,
+  25,38,25,38,25,37,25,37,25,5,25,3,37,25,132,5,25,37,25,5,
+  25,5,17,3,5,25,133,4,17,228,16,228,24,228,16,228,24,17,228,16,
+  136,164,8,49,116,49,124,110,107,45,107,77,107,45,107,109,107,8,77,107,
+  134,143,115,244,140,212,132,244,140,244,132,244,132,4,212,132,131,212,140,212,
+  140,244,140,5,212,132,130,211,132,212,132,3,212,140,155,211,140,211,140,179,
+  132,179,132,180,132,212,132,212,132,212,124,212,124,180,124,148,124,147,116,83,
+  108,18,100,242,91,242,91,144,83,182,157,85,149,118,157,109,99,167,49,102,
+  41,102,41,167,41,167,49,167,49,9,199,49,137,231,49,232,57,231,49,199,
+  57,232,57,199,49,199,57,199,57,200,57,3,199,49,142,232,57,232,49,38,
+  33,165,8,164,16,132,16,132,8,133,8,133,8,166,8,231,16,139,82,240,
+  131,211,156,3,243,164,132,243,172,243,164,243,164,243,172,6,243,164,3,243,
+  172,5,243,164,4,243,172,3,243,164,3,243,172,131,20,173,20,173,19,173,
+  3,20,173,4,52,173,3,52,181,129,84,181,4,52,181,132,84,181,85,181,
+  16,132,4,25,11,195,24,137,163,24,195,24,162,16,130,16,4,33,164,65,
+  34,49,132,57,67,49,6,2,41,3,2,33,173,34,41,99,49,99,49,131,
+  57,99,49,67,41,132,57,164,57,164,65,131,57,164,65,197,65,67,49,2,
+  33,2,33,165,57,140,131,205,147,205,155,205,155,173,155,172,147,140,147,140,
+  147,10,131,201,114,168,106,168,106,104,98,71,90,71,90,6,90,5,74,197,
+  73,196,65,196,65,164,57,132,57,131,49,131,57,67,49,132,57,132,57,164,
+  65,196,73,3,164,65,135,34,41,3,41,34,33,2,41,34,41,34,41,2,
+  41,4,34,41,158,2,41,35,41,34,41,2,41,34,41,2,41,34,41,34,
+  41,2,41,2,41,67,41,164,57,197,65,6,82,71,90,136,98,200,114,233,
+  122,10,131,75,139,107,147,140,147,172,155,173,155,205,155,205,155,205,163,237,
+  163,228,105,34,49,13,34,41,138,164,57,131,65,99,49,196,65,34,49,2,
+  41,68,49,228,73,34,49,34,41,227,3,8,12,91,129,12,99,5,12,91,
+  142,12,99,12,99,44,99,44,99,12,91,12,91,44,99,44,99,45,99,12,
+  99,45,99,45,99,44,99,45,99,3,44,99,131,45,99,45,99,44,99,3,
+  45,99,132,12,91,44,99,44,99,45,99,3,44,99,130,45,99,44,99,5,
+  45,99,130,44,99,44,99,4,45,99,131,44,99,44,99,12,91,3,44,99,
+  141,45,99,44,99,45,99,45,99,44,99,44,91,45,99,45,99,44,91,44,
+  99,44,91,45,91,44,99,9,45,99,129,44,99,5,45,99,129,45,91,6,
+  45,99,131,45,91,45,99,44,99,9,45,91,129,44,91,19,45,91,131,12,
+  91,45,91,12,91,8,45,91,138,12,83,203,82,203,82,204,90,236,90,45,
+  91,110,99,208,107,49,116,82,124,4,114,124,129,146,124,8,147,124,129,179,
+  132,6,147,124,133,114,124,114,116,114,116,114,124,146,132,3,178,140,136,179,
+  140,178,140,178,140,179,140,178,140,210,140,178,140,179,140,3,211,140,129,211,
+  148,4,211,140,131,211,148,178,140,113,132,3,49,124,141,16,124,240,115,208,
+  107,241,107,82,116,147,116,179,124,180,124,212,124,82,116,200,41,200,41,232,
+  49,3,232,41,152,200,41,13,75,52,149,24,174,109,107,138,74,138,74,170,
+  82,170,82,171,82,203,90,171,82,77,91,240,107,82,124,82,124,82,116,82,
+  124,114,124,147,124,179,124,179,132,179,132,180,132,4,179,124,134,180,132,212,
+  132,180,132,211,132,211,132,180,132,17,212,132,132,244,132,146,124,110,107,167,
+  49,6,102,41,129,102,33,10,102,41,134,134,41,102,41,135,41,134,41,167,
+  49,167,41,4,167,49,142,199,49,199,49,232,57,199,49,199,57,199,49,167,
+  49,135,49,135,49,102,41,134,41,102,41,134,41,134,41,5,102,41,142,134,
+  41,134,41,102,33,102,33,134,41,134,41,167,49,135,41,167,41,167,41,135,
+  41,167,41,134,41,102,41,12,102,33,136,70,33,102,33,69,33,69,33,70,
+  33,69,33,37,25,69,25,3,37,33,3,69,33,132,70,33,69,25,102,33,
+  70,33,3,102,33,132,103,33,103,33,102,33,135,33,4,103,33,129,134,33,
+  3,102,33,130,70,25,102,25,5,70,25,6,37,25,136,5,25,5,25,5,
+  17,4,25,5,17,5,25,228,16,5,25,8,228,16,129,228,24,17,228,16,
+  147,196,16,131,8,142,107,146,132,142,107,77,107,77,107,45,99,77,107,110,
+  107,45,107,77,107,77,107,45,107,77,107,45,107,77,107,45,99,211,140,6,
+  244,140,133,212,148,244,140,244,148,244,148,244,140,4,244,148,133,212,140,212,
+  140,211,140,211,148,212,148,3,211,148,130,211,140,179,132,3,212,132,149,212,
+  124,212,124,180,124,180,124,147,116,83,116,50,100,242,91,242,91,144,91,118,
+  157,118,157,85,149,109,99,167,49,134,41,102,41,166,49,199,49,167,49,167,
+  49,6,199,49,159,199,57,231,57,199,49,199,49,231,49,232,57,232,57,199,
+  49,232,57,200,57,199,49,232,57,231,57,199,49,199,49,231,57,38,33,164,
+  16,164,8,132,16,132,16,165,16,133,8,166,8,199,16,107,74,240,131,178,
+  156,243,164,243,164,211,164,10,243,164,129,211,164,7,243,164,5,243,172,131,
+  19,173,243,172,19,173,4,20,173,135,52,173,20,173,52,173,20,173,52,173,
+  52,181,52,173,4,52,181,137,84,181,85,181,52,181,85,181,85,181,84,181,
+  117,181,113,148,101,41,13,195,24,140,162,16,130,16,227,24,164,65,67,49,
+  100,49,100,57,2,41,2,41,34,41,2,41,2,41,3,2,33,181,2,41,
+  66,41,164,57,164,65,163,65,131,57,67,49,99,49,99,49,132,57,98,49,
+  99,49,99,49,34,41,2,41,34,41,99,49,201,106,10,123,233,114,201,114,
+  135,98,103,98,70,82,6,74,229,73,164,65,132,57,131,57,99,49,67,41,
+  34,41,34,41,2,41,2,41,67,41,164,65,164,65,197,73,196,65,197,73,
+  67,49,132,57,131,57,99,49,164,65,99,57,99,49,67,49,34,41,2,41,
+  2,33,2,41,3,2,33,133,2,41,34,41,2,41,34,41,2,41,3,34,
+  41,129,2,41,4,34,41,137,2,41,100,49,10,107,140,139,172,147,172,155,
+  205,155,205,155,205,163,3,237,163,129,237,155,6,237,163,130,200,130,1,57,
+  13,34,41,138,67,41,228,65,33,49,229,73,34,49,2,41,34,41,229,65,
+  34,57,34,41,224,3,129,12,91,3,12,99,140,12,91,44,99,12,91,12,
+  91,44,99,12,91,44,99,12,99,12,99,12,91,44,99,12,91,6,44,99,
+  134,45,99,45,99,44,99,45,99,45,99,12,99,7,44,99,134,44,91,44,
+  91,45,91,45,99,44,99,44,99,4,45,99,129,44,99,3,45,99,3,44,
+  99,135,45,99,45,99,44,91,45,99,45,99,44,99,44,99,3,45,99,134,
+  44,99,45,99,44,91,45,99,45,99,44,99,5,45,99,131,44,99,45,91,
+  45,91,4,45,99,129,45,91,7,45,99,129,45,91,3,45,99,133,45,91,
+  45,99,44,99,45,99,45,99,4,45,91,139,45,99,45,91,45,91,45,99,
+  45,91,45,91,44,91,45,99,45,91,45,91,44,91,9,45,91,132,12,91,
+  45,91,45,91,12,91,6,45,91,129,12,91,9,45,91,137,236,82,203,82,
+  203,82,236,90,13,91,45,91,142,99,240,107,49,116,3,114,124,3,146,124,
+  131,147,124,147,124,146,124,11,147,124,134,146,124,115,124,114,116,114,116,114,
+  124,146,132,5,178,140,132,179,140,178,140,179,148,179,148,3,179,140,3,211,
+  140,130,211,148,211,140,3,211,148,130,146,140,113,132,3,49,124,134,16,124,
+  208,115,208,107,17,108,82,116,147,124,3,179,124,131,180,124,208,99,167,33,
+  4,232,41,136,200,41,143,91,117,149,56,182,170,82,138,74,138,74,138,82,
+  3,170,82,138,203,90,171,82,208,107,114,124,114,124,82,124,114,124,114,124,
+  115,124,147,124,3,179,132,137,180,124,179,124,179,124,180,132,180,132,212,132,
+  212,132,211,132,211,132,18,212,132,133,244,140,241,115,109,107,199,49,102,33,
+  17,102,41,3,134,41,4,167,49,132,199,49,199,57,200,57,200,49,3,199,
+  49,134,167,49,199,49,167,49,134,49,134,41,135,49,4,134,41,130,135,41,
+  135,41,3,134,41,133,102,41,135,41,102,33,135,41,135,41,3,167,41,147,
+  135,41,134,41,102,41,135,41,102,41,102,41,70,33,69,33,70,33,69,33,
+  102,33,70,33,70,33,102,33,69,33,69,33,70,33,70,33,69,33,9,70,
+  33,137,102,33,70,33,102,33,70,33,102,33,70,33,102,33,135,33,102,33,
+  3,103,33,133,102,33,102,33,103,33,103,33,102,33,3,70,33,4,70,25,
+  130,38,33,70,25,3,37,25,138,5,25,37,25,37,25,5,25,5,25,4,
+  25,4,17,4,25,228,16,4,25,3,228,16,129,4,25,4,228,16,129,228,
+  24,5,228,16,129,196,16,5,228,16,135,196,16,228,24,228,16,196,16,228,
+  16,228,16,196,16,4,228,16,147,131,8,175,107,207,107,114,132,45,99,44,
+  99,45,107,45,107,110,107,77,107,77,107,45,107,77,107,45,107,77,107,45,
+  99,45,99,146,140,20,149,7,244,148,137,244,156,244,148,244,148,244,156,244,
+  156,244,148,244,156,244,148,212,148,4,211,148,3,212,148,130,179,140,212,132,
+  4,212,124,144,180,124,180,124,147,116,115,116,50,100,242,91,242,83,145,83,
+  150,157,118,157,211,140,142,107,166,49,134,49,101,41,134,49,3,167,49,7,
+  199,49,136,199,57,199,49,231,57,232,57,199,49,199,49,232,57,199,49,4,
+  231,57,143,199,49,231,49,231,57,70,33,164,8,164,16,131,16,132,16,164,
+  16,165,16,166,8,198,16,107,74,207,123,178,156,6,211,164,15,243,164,132,
+  243,172,19,173,20,173,19,173,9,20,173,133,52,173,52,181,52,181,52,173,
+  52,173,4,52,181,130,84,181,84,181,5,85,181,131,117,189,178,156,199,57,
+  13,195,24,152,163,24,130,16,163,24,132,65,99,57,99,49,132,57,2,41,
+  2,33,2,41,34,41,2,41,2,33,2,33,35,41,2,41,34,41,132,57,
+  164,65,164,65,132,57,164,65,164,65,99,49,8,34,41,133,132,57,164,65,
+  131,57,99,49,67,49,3,34,41,134,2,33,2,41,34,41,2,41,2,41,
+  2,33,3,2,41,135,34,41,34,41,99,49,99,49,100,57,98,49,99,49,
+  3,34,41,142,2,41,2,33,2,33,2,41,34,41,34,41,67,49,99,49,
+  132,57,197,65,229,73,38,82,103,98,196,81,12,34,41,130,35,41,43,107,
+  3,237,155,143,237,163,238,163,237,155,205,155,205,155,172,147,172,147,139,147,
+  75,139,42,131,10,123,168,106,168,98,6,90,34,49,14,34,41,137,229,73,
+  66,49,197,65,131,65,34,49,2,41,197,57,99,65,34,41,236,3,136,12,
+  99,12,99,12,91,12,99,12,91,12,99,12,91,12,91,3,12,99,139,44,
+  99,44,99,12,99,12,99,12,91,44,99,45,99,12,99,12,99,45,99,45,
+  99,3,44,99,129,45,99,3,44,99,129,45,99,3,44,99,3,45,99,135,
+  44,99,45,99,45,99,44,99,45,99,44,99,44,99,3,45,99,129,44,99,
+  3,45,99,135,44,99,45,99,45,99,44,99,44,99,45,99,45,91,4,45,
+  99,135,44,91,45,99,77,99,45,91,45,99,45,91,45,91,3,45,99,129,
+  45,91,4,45,99,130,45,91,44,91,12,45,99,138,45,91,45,99,45,99,
+  44,91,45,91,45,99,45,91,45,91,44,91,45,99,3,45,91,135,45,99,
+  45,91,44,91,44,99,45,99,45,91,44,91,12,45,91,130,44,91,44,91,
+  17,45,91,140,236,82,203,82,203,82,236,90,13,91,77,91,143,107,16,108,
+  82,116,114,116,114,124,114,124,3,146,124,8,147,124,130,147,132,179,132,5,
+  147,124,132,115,124,114,116,114,116,146,132,6,178,140,6,179,140,139,211,140,
+  179,140,178,140,179,140,211,148,211,140,211,148,211,148,179,148,146,140,81,132,
+  3,49,124,133,17,124,208,115,208,107,49,108,82,116,3,179,124,133,148,124,
+  148,124,180,124,110,83,167,33,3,232,41,136,167,33,114,116,118,149,247,173,
+  105,74,138,74,138,82,138,82,4,170,82,138,203,90,203,82,82,124,114,124,
+  82,116,82,124,114,124,115,124,147,124,179,132,3,180,132,136,179,132,179,132,
+  179,124,180,132,180,132,212,132,211,132,211,132,14,212,132,142,244,132,244,132,
+  212,132,244,132,244,140,111,99,203,82,232,57,134,41,167,41,70,33,102,41,
+  102,41,102,33,8,102,41,129,101,33,3,102,41,149,134,41,134,41,135,49,
+  134,41,167,49,167,49,199,49,200,49,232,49,200,57,200,57,232,57,200,57,
+  167,49,167,49,134,49,135,49,135,49,134,41,135,49,135,49,6,134,41,130,
+  102,41,102,41,3,134,41,134,135,41,167,41,135,41,135,41,134,41,135,41,
+  3,102,41,139,70,41,102,33,102,33,70,33,102,33,102,33,70,33,102,33,
+  70,33,70,33,102,33,3,70,33,139,102,33,102,41,102,33,102,33,102,41,
+  102,33,102,41,102,33,102,33,70,33,70,33,3,102,33,145,70,33,102,33,
+  102,33,103,33,103,33,102,33,102,33,103,33,102,33,102,33,70,25,70,25,
+  70,33,70,33,38,33,70,25,69,25,7,37,25,138,5,25,4,25,5,25,
+  4,25,5,17,5,25,228,24,4,25,228,16,228,24,11,228,16,4,196,16,
+  129,228,16,7,196,16,157,228,16,196,16,228,16,196,16,228,16,228,16,196,
+  16,228,16,228,16,163,8,45,91,243,148,81,132,45,107,45,99,45,99,77,
+  107,77,107,45,107,77,107,45,99,77,107,45,107,77,107,45,107,45,107,81,
+  140,20,157,20,157,11,244,156,129,243,156,3,244,156,129,243,156,6,211,148,
+  130,212,140,212,132,4,212,124,145,180,124,180,124,148,116,83,108,50,100,242,
+  91,242,91,145,83,118,157,85,157,243,140,240,115,166,49,166,49,69,41,135,
+  41,199,49,3,167,49,9,199,49,129,231,57,5,199,49,149,199,57,199,49,
+  231,57,199,49,199,49,232,57,70,33,165,8,164,16,131,8,132,16,132,16,
+  165,16,166,8,231,16,42,66,175,123,146,156,211,164,211,164,243,164,4,211,
+  164,9,243,164,3,243,172,4,19,173,6,20,173,133,52,173,20,173,52,173,
+  20,173,52,173,7,52,181,131,85,181,84,181,85,173,6,85,181,132,117,181,
+  243,164,73,66,163,16,12,195,24,136,163,24,130,16,162,16,100,49,132,57,
+  67,41,132,57,34,41,3,2,41,141,34,41,2,41,2,33,2,33,34,41,
+  34,41,132,57,196,65,164,65,164,65,196,65,229,73,99,57,3,34,41,137,
+  2,33,2,41,2,41,34,41,34,41,2,33,34,41,2,41,2,33,3,2,
+  41,3,34,41,3,2,41,130,34,41,34,41,3,2,41,152,2,33,2,33,
+  34,41,2,41,34,41,66,41,67,49,100,57,164,57,197,65,229,73,38,82,
+  71,90,136,98,201,106,10,123,42,131,75,139,107,139,140,147,172,155,204,155,
+  232,130,33,57,12,34,41,143,104,82,140,139,107,139,75,131,10,123,233,114,
+  168,106,135,98,71,90,6,74,229,73,164,65,132,57,99,49,67,49,18,34,
+  41,137,165,57,131,65,100,49,196,73,34,49,2,41,99,49,197,73,1,49,
+  11,4,3,12,91,4,12,99,132,44,99,12,99,44,99,12,91,3,12,99,
+  133,44,99,12,99,12,91,12,91,45,99,3,44,99,137,12,99,12,99,45,
+  99,44,99,45,99,44,99,44,99,45,99,45,99,4,44,99,4,45,99,139,
+  44,99,44,99,45,99,45,99,44,99,45,99,45,99,44,99,45,99,45,99,
+  44,99,3,45,99,152,44,99,45,99,45,99,77,99,45,99,45,99,44,99,
+  77,91,44,91,77,99,77,99,45,91,45,99,45,99,45,91,45,99,44,99,
+  45,99,45,91,45,99,44,99,45,99,45,99,44,91,4,45,99,130,44,99,
+  44,99,3,45,99,136,45,91,45,91,45,99,44,99,45,91,45,99,45,99,
+  44,99,4,45,99,138,44,91,77,99,45,91,45,99,45,99,45,91,44,91,
+  45,91,44,91,45,91,3,45,99,11,45,91,129,44,91,9,45,91,131,12,
+  91,13,91,12,83,5,45,91,142,44,91,236,82,204,82,203,82,236,90,45,
+  99,78,99,207,107,17,116,82,116,114,116,114,124,114,124,115,124,9,147,124,
+  140,179,124,179,132,179,132,179,124,147,124,147,124,115,124,147,124,115,116,114,
+  116,114,124,146,132,6,178,140,130,179,140,178,140,4,179,140,133,178,140,146,
+  140,146,132,178,140,179,140,3,211,148,131,179,140,146,140,81,132,3,49,124,
+  153,16,116,208,107,240,107,50,116,115,116,179,124,180,124,179,124,179,124,180,
+  124,147,116,180,124,236,66,200,33,232,41,232,41,135,25,53,141,150,157,150,
+  165,41,66,138,74,138,74,138,82,138,74,3,170,82,137,203,90,203,82,236,
+  82,146,132,114,124,82,116,82,116,146,124,147,124,3,179,132,129,180,132,3,
+  179,124,130,180,132,212,124,17,212,132,138,244,132,244,132,212,132,244,132,179,
+  132,175,107,106,66,232,57,167,41,102,33,3,69,33,6,102,41,129,70,41,
+  7,102,41,138,134,41,134,41,135,41,135,49,167,49,199,49,200,49,200,49,
+  199,49,200,49,3,199,49,4,167,49,133,134,41,167,49,134,49,134,41,134,
+  41,5,102,41,133,134,41,102,41,134,41,135,41,135,41,3,134,41,136,102,
+  41,102,33,102,41,102,33,102,41,102,41,70,33,102,33,3,70,33,4,102,
+  33,142,102,41,102,33,103,33,103,33,134,33,134,33,102,33,103,41,103,33,
+  135,33,134,41,102,41,103,33,135,33,11,102,33,132,70,33,70,33,69,25,
+  70,33,9,37,25,131,5,25,4,25,5,25,3,4,25,135,228,16,229,24,
+  228,24,229,24,4,25,228,16,228,16,3,228,24,6,228,16,141,196,16,196,
+  16,228,24,196,24,196,16,228,16,228,16,196,16,195,16,196,16,196,16,228,
+  16,228,16,11,196,16,139,163,8,171,74,178,140,49,132,45,99,44,99,45,
+  107,77,107,45,99,77,107,45,107,3,77,107,133,13,99,45,107,45,107,239,
+  123,20,157,4,244,156,132,243,156,244,156,244,156,243,156,3,244,156,133,243,
+  156,243,156,243,148,244,156,244,156,3,243,148,133,211,148,244,148,211,148,212,
+  148,212,140,3,212,132,147,212,124,212,124,180,124,180,124,147,116,115,108,50,
+  100,18,92,242,91,144,83,86,149,150,165,244,148,16,116,166,49,199,49,101,
+  41,166,41,166,49,3,167,49,11,199,49,131,231,57,199,49,199,49,3,199,
+  57,144,231,57,231,57,199,57,232,57,70,33,165,16,164,16,132,16,132,16,
+  164,16,165,8,165,8,198,16,233,57,143,115,146,148,8,243,164,140,244,172,
+  243,164,244,164,243,172,243,164,20,173,243,172,20,173,243,172,19,165,20,173,
+  19,173,11,20,173,133,52,173,52,181,52,173,52,181,52,181,3,84,181,132,
+  85,181,84,181,85,181,84,181,6,85,181,133,117,181,117,181,20,173,203,90,
+  163,16,13,195,24,135,162,16,130,16,68,41,164,65,66,41,164,57,34,41,
+  6,2,41,132,2,33,2,33,34,41,67,49,3,99,49,130,67,49,67,49,
+  3,34,41,132,34,33,34,41,3,41,2,41,3,34,41,133,2,41,34,41,
+  34,41,2,41,2,41,4,34,41,3,2,41,158,34,41,67,41,67,49,132,
+  57,164,65,197,73,5,74,71,82,136,98,169,106,201,114,201,122,10,131,10,
+  123,234,122,201,122,42,131,233,122,43,131,172,147,205,155,237,155,237,155,237,
+  163,205,155,237,163,237,163,139,155,98,73,2,41,7,34,41,139,2,41,34,
+  41,34,41,2,41,100,49,229,65,164,65,132,57,99,49,67,49,66,41,5,
+  34,41,129,2,41,6,34,41,129,35,41,12,34,41,138,2,41,100,49,196,
+  73,34,49,229,73,34,57,34,41,34,41,6,74,164,65,242,3,3,12,91,
+  130,12,99,12,91,3,12,99,143,44,99,44,99,12,91,44,99,12,99,12,
+  99,12,91,44,99,44,99,12,91,12,99,12,99,44,99,44,99,45,99,4,
+  44,99,132,12,91,45,99,45,99,45,91,3,44,99,6,45,99,131,44,99,
+  45,99,44,99,8,45,99,129,44,99,5,45,99,133,44,99,44,99,45,99,
+  45,91,45,91,3,45,99,129,45,91,3,45,99,136,44,91,45,99,45,99,
+  44,99,45,99,44,99,44,91,44,99,3,45,99,136,45,91,77,99,45,99,
+  77,99,45,99,45,99,45,91,45,91,6,45,99,133,44,91,44,91,45,91,
+  45,91,45,99,4,45,91,129,44,99,3,45,91,3,45,99,131,45,91,45,
+  91,45,99,27,45,91,138,12,83,236,82,203,82,236,82,12,91,45,91,110,
+  99,208,107,49,116,82,116,3,114,124,130,147,124,146,124,9,147,124,131,179,
+  132,147,124,179,124,3,147,124,156,115,124,115,116,114,116,114,124,146,132,178,
+  140,179,140,178,140,179,140,178,140,178,140,179,140,179,140,178,140,178,140,179,
+  140,179,140,114,140,48,124,49,124,146,132,178,140,211,148,211,148,211,140,178,
+  140,114,132,81,124,3,49,124,134,240,115,208,107,241,107,82,116,115,124,179,
+  124,3,180,124,129,147,124,3,147,116,143,106,58,168,41,232,49,232,41,183,
+  157,118,157,243,148,41,66,106,74,138,74,138,82,138,74,138,74,138,82,170,
+  82,3,171,82,137,77,99,146,124,114,124,82,116,114,124,147,124,147,124,179,
+  132,179,132,5,180,132,132,212,132,212,132,180,132,212,124,17,212,132,139,244,
+  132,179,124,175,107,8,58,232,57,200,49,134,41,4,33,69,33,70,33,70,
+  33,4,102,41,133,70,41,102,41,70,41,102,41,70,33,4,102,41,150,134,
+  41,135,41,135,41,135,49,167,49,167,49,199,49,167,49,200,49,199,49,199,
+  57,199,49,200,57,232,57,167,49,167,49,135,49,167,49,135,49,134,41,135,
+  41,102,33,3,102,41,135,102,33,102,41,134,41,135,41,135,41,102,33,135,
+  41,3,134,41,3,102,41,130,134,41,102,41,3,102,33,130,102,41,103,33,
+  3,135,41,129,102,41,7,135,41,129,134,41,3,135,41,130,135,33,102,41,
+  8,102,33,138,70,33,70,33,102,33,69,33,69,33,70,33,69,33,37,33,
+  37,33,38,33,3,37,25,130,5,25,5,25,3,37,25,5,4,25,130,228,
+  24,228,24,3,228,16,140,228,24,228,24,228,16,228,24,228,24,196,16,228,
+  24,228,16,196,16,228,16,196,16,228,16,3,196,16,134,195,16,228,16,196,
+  16,195,16,196,16,228,16,4,196,16,130,196,24,195,16,6,196,16,3,228,
+  16,151,163,8,45,91,114,132,240,123,45,107,12,99,45,107,44,99,45,107,
+  45,107,77,107,45,107,45,107,77,107,44,99,45,99,45,107,110,107,20,165,
+  20,157,244,156,243,156,243,156,3,244,156,131,243,156,244,156,244,156,5,243,
+  156,137,243,148,244,148,243,156,243,156,243,148,243,148,212,148,212,148,212,140,
+  3,212,132,129,212,124,3,180,124,150,147,116,115,116,50,108,18,100,242,91,
+  145,83,86,149,150,157,243,140,49,124,166,49,166,49,101,41,134,41,166,49,
+  167,49,199,49,167,49,199,49,167,49,199,49,231,49,4,199,49,143,199,57,
+  199,49,199,49,231,57,199,49,231,57,199,49,199,49,199,57,199,57,199,49,
+  199,49,232,57,103,33,165,16,5,164,16,133,165,8,198,16,169,49,110,107,
+  114,148,5,243,164,130,243,172,20,165,3,19,173,132,243,164,19,173,243,164,
+  243,164,4,20,173,129,19,173,10,20,173,6,52,173,133,52,181,84,181,84,
+  181,52,181,52,181,11,85,181,131,52,173,77,107,163,16,12,195,24,136,163,
+  24,162,16,130,16,36,41,165,65,35,49,164,57,67,49,3,2,41,132,34,
+  41,34,41,35,41,2,33,6,34,41,140,2,41,34,41,34,41,2,41,34,
+  41,2,33,2,33,2,41,2,41,2,33,34,41,2,33,3,34,41,131,2,
+  41,35,41,2,41,3,34,41,160,165,57,103,82,135,98,201,106,233,114,10,
+  123,42,131,75,139,10,131,42,131,10,123,43,131,75,131,43,131,234,122,75,
+  131,107,139,107,139,233,114,107,131,107,139,108,139,237,155,205,155,237,155,205,
+  155,173,155,172,147,140,147,108,139,42,139,164,73,10,34,41,129,2,41,3,
+  34,41,129,2,41,31,34,41,136,5,66,34,49,229,65,99,65,34,49,34,
+  41,132,49,132,57,244,3,131,12,91,12,91,44,99,3,12,99,138,12,91,
+  12,99,44,99,12,99,44,99,12,99,12,99,44,99,44,99,12,91,8,44,
+  99,4,45,99,130,44,99,45,99,4,44,99,11,45,99,129,44,99,4,45,
+  99,135,44,99,45,99,44,91,45,99,45,91,44,99,44,99,3,45,99,129,
+  44,99,6,45,99,136,44,99,44,91,45,99,45,99,44,99,45,99,45,99,
+  44,99,3,45,99,137,45,91,77,99,44,91,45,99,45,99,77,99,45,99,
+  45,91,45,91,4,45,99,129,45,91,3,45,99,3,45,91,131,45,99,45,
+  91,45,99,5,45,91,135,45,99,45,91,44,91,45,91,45,91,45,99,45,
+  99,17,45,91,129,13,91,9,45,91,142,236,82,203,82,203,82,235,82,12,
+  91,45,91,143,99,240,107,49,116,82,116,114,124,114,124,146,124,146,124,4,
+  147,124,3,147,132,133,147,124,179,124,179,132,179,124,179,124,4,147,124,138,
+  147,116,114,116,114,116,114,124,146,132,178,140,179,140,179,140,178,140,178,140,
+  3,179,140,137,178,140,210,140,211,140,178,140,49,132,207,115,16,116,81,124,
+  179,140,3,211,148,131,178,140,114,132,49,132,3,49,124,138,240,115,240,107,
+  17,108,82,116,148,124,180,124,180,124,179,124,180,124,179,124,3,147,116,137,
+  114,116,41,50,199,41,138,58,117,149,215,165,48,124,73,74,106,74,3,138,
+  74,129,138,82,3,170,82,3,171,82,138,207,107,114,124,82,116,114,124,115,
+  124,147,124,179,124,180,132,180,132,180,124,4,180,132,19,212,132,132,244,132,
+  245,132,147,124,110,99,3,232,57,138,167,49,69,33,4,25,102,33,102,41,
+  102,33,102,33,102,41,102,33,102,33,3,102,41,129,70,33,5,102,41,133,
+  134,41,135,49,135,41,167,49,167,49,5,199,49,159,167,49,199,49,199,49,
+  167,49,167,49,135,49,102,41,134,41,102,41,102,41,102,33,102,41,102,41,
+  134,41,102,41,102,41,134,41,135,41,102,41,102,41,102,33,134,41,134,41,
+  135,41,135,41,134,41,102,41,102,41,135,41,135,41,102,41,6,135,41,132,
+  167,41,135,41,135,41,167,41,5,135,41,3,134,41,130,103,33,102,41,4,
+  102,33,132,70,33,102,33,70,33,102,33,3,70,33,130,69,33,69,33,3,
+  37,33,132,5,33,37,33,37,25,37,25,4,5,25,131,228,24,4,25,4,
+  25,3,228,24,4,228,16,132,228,24,228,16,228,24,228,24,4,228,16,3,
+  196,16,138,228,16,196,16,228,16,196,16,195,16,228,16,195,16,196,16,196,
+  16,195,16,7,196,16,130,195,16,195,16,3,196,16,153,228,16,196,16,196,
+  16,228,16,228,16,163,8,171,66,211,140,49,124,12,99,45,99,12,99,77,
+  107,44,99,77,107,45,99,45,107,45,99,45,99,12,99,45,107,45,99,45,
+  99,146,148,20,157,3,243,156,133,244,156,244,156,243,156,243,156,244,156,4,
+  243,156,139,244,156,243,156,243,148,211,148,243,148,243,156,244,148,243,156,244,
+  156,212,148,212,140,3,212,132,129,212,124,3,180,124,147,147,116,115,116,50,
+  108,18,100,242,91,145,83,21,149,150,157,20,149,146,132,166,49,199,57,101,
+  41,134,41,167,49,167,49,166,49,199,49,167,49,9,199,49,134,232,49,199,
+  49,199,49,199,57,199,49,231,57,3,199,49,134,199,57,231,57,103,33,165,
+  8,164,16,132,16,3,164,16,134,165,16,165,8,103,41,77,107,114,148,211,
+  164,5,243,164,139,20,165,19,165,20,173,19,173,20,165,20,165,20,173,20,
+  165,20,165,20,173,19,165,12,20,173,3,52,173,130,20,173,20,173,11,52,
+  173,130,53,173,53,173,4,52,173,130,20,165,175,115,14,195,24,136,162,16,
+  130,16,3,33,165,73,67,49,164,57,99,57,2,41,9,34,41,3,2,33,
+  181,34,33,34,41,2,41,35,41,34,41,99,49,131,57,163,57,196,65,228,
+  73,5,82,37,82,101,98,196,73,34,41,34,41,2,41,34,41,35,41,34,
+  41,34,33,6,74,140,139,204,147,205,155,205,155,237,155,237,155,237,163,140,
+  147,75,139,43,131,10,123,75,131,43,131,10,123,75,131,140,139,107,139,75,
+  131,75,139,75,139,10,131,10,123,233,114,168,106,136,98,71,90,38,82,6,
+  74,197,65,164,65,67,49,7,34,41,129,2,41,3,34,41,3,2,41,3,
+  34,41,131,67,49,67,49,35,41,8,34,41,130,35,41,35,41,16,34,41,
+  136,229,65,99,57,132,57,196,65,34,49,34,41,2,41,2,41,21,4,4,
+  12,91,129,12,99,3,12,91,132,12,99,44,99,12,91,44,99,4,12,99,
+  129,12,91,5,44,99,130,44,91,44,99,3,45,99,133,44,99,45,99,45,
+  99,44,99,44,99,3,45,99,130,44,99,44,99,3,45,99,132,44,99,45,
+  99,45,99,44,99,3,45,99,130,44,99,44,99,4,45,99,130,44,99,44,
+  91,3,44,99,129,44,91,4,45,99,129,44,91,5,45,99,136,45,91,45,
+  91,45,99,45,91,45,91,45,99,45,91,44,99,7,45,99,134,45,91,44,
+  99,45,99,45,91,77,99,44,91,3,45,91,4,45,99,133,45,91,44,91,
+  45,99,44,91,45,99,17,45,91,129,44,91,18,45,91,143,44,91,13,91,
+  236,82,203,82,203,82,236,90,12,91,78,91,143,99,240,107,82,116,114,116,
+  114,124,114,124,146,124,6,147,124,135,179,132,147,124,179,132,179,124,179,132,
+  179,124,179,124,4,147,124,137,115,116,114,116,114,116,146,124,146,132,179,140,
+  178,140,179,140,210,140,6,179,140,140,211,140,146,140,16,124,207,107,16,116,
+  81,132,179,140,211,140,211,148,211,148,146,140,114,132,3,49,124,134,17,124,
+  240,115,240,107,17,108,114,116,147,124,3,180,124,143,179,124,179,124,147,116,
+  115,116,115,116,147,124,81,116,199,33,13,67,85,149,24,174,77,107,73,74,
+  106,74,106,74,3,138,74,148,138,82,138,82,170,82,171,82,171,82,203,90,
+  171,82,17,116,114,116,114,124,146,124,147,124,179,132,180,132,180,124,179,124,
+  179,124,180,132,180,124,180,132,13,212,132,129,244,132,5,212,132,142,244,132,
+  245,140,114,124,110,99,233,57,8,58,200,57,167,49,103,41,37,33,37,33,
+  102,41,70,41,102,33,4,70,33,3,102,41,129,70,33,4,102,41,130,134,
+  41,135,49,4,167,49,130,199,49,199,49,3,200,49,133,167,49,199,49,167,
+  49,167,49,134,41,5,102,41,133,102,33,134,41,134,41,135,41,134,41,3,
+  135,41,131,167,41,135,41,134,41,3,135,41,133,134,41,102,41,134,41,135,
+  41,167,41,3,135,41,130,167,41,135,41,3,167,41,131,135,41,167,41,167,
+  41,5,135,41,131,134,41,134,41,134,33,3,102,33,131,70,33,102,33,69,
+  33,3,70,33,129,37,33,3,69,33,129,37,33,3,37,25,139,5,25,37,
+  33,4,25,5,25,5,25,4,25,5,25,4,25,228,24,4,25,4,25,4,
+  228,24,139,228,16,228,16,196,16,228,24,228,24,196,16,228,24,228,16,228,
+  16,196,16,228,16,6,196,16,135,195,16,196,16,196,16,195,16,196,16,196,
+  16,195,16,4,196,16,129,195,16,7,196,16,141,195,16,196,16,196,16,195,
+  16,195,16,196,16,163,8,110,99,114,132,175,115,236,98,45,107,44,99,6,
+  45,99,135,45,107,12,99,45,99,45,107,13,99,48,132,20,157,6,243,156,
+  136,243,148,243,156,211,148,211,148,211,156,211,148,211,148,243,148,3,211,148,
+  134,243,156,243,156,244,148,244,156,212,148,212,140,5,212,132,144,180,124,180,
+  124,147,124,115,116,50,100,18,100,242,91,177,83,245,140,182,165,20,149,178,
+  140,134,49,199,49,101,41,134,41,4,167,49,130,199,49,167,49,3,199,49,
+  129,232,49,6,199,49,132,199,57,199,49,232,57,232,49,4,199,49,134,231,
+  49,103,33,165,8,197,16,164,16,132,16,3,164,16,139,165,16,71,33,13,
+  99,113,148,211,164,211,156,179,156,211,156,178,156,211,156,211,156,8,243,164,
+  129,244,164,4,243,164,137,20,165,243,164,243,164,19,165,19,165,20,165,20,
+  165,19,165,20,173,7,20,165,137,52,165,52,165,52,173,20,165,20,165,52,
+  165,20,165,52,173,52,173,6,52,165,131,20,165,207,123,4,25,13,195,24,
+  142,163,24,130,16,227,24,165,65,67,49,131,49,132,57,2,41,2,41,34,
+  41,34,41,35,41,2,33,2,41,3,34,41,146,99,49,164,57,196,65,229,
+  65,5,82,37,82,102,90,133,98,166,106,166,106,198,114,230,114,230,122,230,
+  122,6,123,70,131,165,114,66,49,5,34,41,131,2,33,197,57,172,139,3,
+  237,155,3,205,155,145,172,147,75,139,75,139,234,122,233,122,201,114,168,106,
+  136,106,136,98,70,90,37,82,229,73,196,65,132,57,99,57,99,49,66,41,
+  3,34,41,130,2,41,2,41,3,34,41,147,2,41,34,41,34,41,2,41,
+  34,41,34,41,67,41,67,49,131,57,164,57,196,65,4,82,37,82,101,90,
+  134,98,166,106,167,114,166,114,99,65,5,34,41,132,35,41,34,41,34,41,
+  35,41,17,34,41,136,132,57,196,65,67,49,6,74,131,65,132,57,164,65,
+  196,65,224,3,131,12,91,12,91,12,99,4,12,91,144,12,99,12,91,12,
+  91,44,99,12,99,44,99,12,99,44,99,12,99,12,99,44,99,12,99,44,
+  99,45,99,44,99,12,91,3,45,99,133,44,99,44,99,45,99,45,99,44,
+  99,3,45,99,130,44,99,44,99,7,45,99,132,44,99,45,99,45,99,45,
+  91,4,45,99,134,44,99,44,91,45,99,44,91,45,99,44,99,7,45,99,
+  129,45,91,4,45,99,140,44,99,45,99,44,99,44,91,45,91,45,99,77,
+  99,45,91,45,99,45,99,45,91,44,99,7,45,99,131,77,91,45,99,45,
+  99,6,45,91,129,44,99,3,45,91,129,45,99,17,45,91,129,44,91,18,
+  45,91,142,12,83,12,83,236,82,204,82,203,82,236,90,13,91,78,99,175,
+  107,17,116,82,116,114,116,114,124,114,124,3,147,124,139,179,132,147,124,179,
+  132,147,132,147,124,147,124,147,132,179,124,179,132,179,132,179,124,3,147,124,
+  138,115,116,147,116,114,116,114,124,146,132,146,132,211,140,179,140,179,140,178,
+  140,4,179,140,142,211,140,179,140,179,140,178,140,81,132,81,124,81,124,146,
+  132,211,140,211,148,211,148,179,140,146,140,81,132,3,49,124,133,16,124,240,
+  115,240,107,49,116,115,124,4,180,124,140,179,124,179,124,147,116,147,116,115,
+  116,114,116,211,132,175,107,142,83,53,149,89,182,171,82,3,106,74,147,138,
+  74,138,82,138,74,138,74,170,82,138,74,170,82,171,82,171,82,171,90,236,
+  82,82,124,114,124,114,124,147,132,179,132,179,132,180,132,179,132,3,180,132,
+  12,212,132,130,244,132,244,132,4,212,132,3,244,132,140,245,132,16,116,204,
+  82,9,66,8,58,232,57,199,49,167,49,102,41,37,25,102,33,102,41,3,
+  70,33,133,102,33,102,33,102,41,69,33,70,41,5,102,41,131,134,41,134,
+  41,135,41,4,167,49,136,199,49,200,49,200,57,199,57,199,49,167,49,135,
+  49,134,41,5,102,41,132,134,41,135,41,167,49,167,41,6,167,49,129,167,
+  41,4,135,41,129,102,41,5,135,41,129,134,41,4,135,41,139,167,41,134,
+  41,135,41,134,41,134,41,135,41,102,41,134,41,135,33,135,41,102,41,3,
+  102,33,132,70,33,102,33,70,33,102,41,4,69,33,132,37,33,69,33,37,
+  33,37,25,3,37,33,131,4,25,4,25,4,33,4,4,25,133,228,24,4,
+  25,228,24,4,25,4,25,5,228,24,134,228,16,228,16,228,24,196,16,196,
+  16,228,24,4,196,16,129,196,24,6,196,16,129,195,16,4,196,16,134,195,
+  16,196,16,195,16,196,16,196,16,195,16,13,196,16,148,163,8,139,74,146,
+  132,207,115,12,99,45,99,45,107,44,99,45,107,12,99,12,99,13,99,45,
+  99,45,107,45,107,12,99,45,99,44,99,175,115,20,157,4,243,156,129,243,
+  148,7,211,148,131,211,156,211,148,179,148,3,211,148,134,244,156,243,156,244,
+  148,212,148,212,148,212,140,3,212,132,149,180,132,180,124,148,124,147,124,115,
+  116,50,108,18,100,18,92,177,83,212,132,183,165,244,140,178,140,199,49,167,
+  49,101,41,134,41,166,49,166,49,167,49,167,49,3,199,49,129,232,57,7,
+  199,49,133,231,57,199,49,199,57,199,49,231,49,4,199,49,132,231,57,103,
+  41,197,16,196,16,5,164,16,134,164,8,38,33,13,99,81,148,211,156,211,
+  156,5,146,148,131,178,148,178,148,211,148,5,211,156,132,243,156,211,156,243,
+  156,211,156,5,243,156,135,243,164,244,164,244,164,243,164,20,165,20,165,19,
+  165,18,20,165,3,52,165,130,48,132,69,41,13,195,24,138,163,24,130,16,
+  163,24,133,65,99,57,99,49,164,57,34,41,34,41,2,41,5,34,41,148,
+  2,33,99,49,102,90,198,114,230,114,231,122,230,122,231,122,6,123,6,123,
+  230,114,6,123,6,123,197,114,164,106,164,98,5,115,70,131,229,122,131,65,
+  6,34,41,144,132,49,234,114,75,139,42,123,10,123,201,114,169,106,103,98,
+  71,90,5,82,229,73,197,65,164,57,132,57,99,49,67,41,3,34,41,131,
+  2,41,34,41,2,33,4,34,41,129,2,41,6,34,41,147,99,49,196,65,
+  4,74,37,82,101,90,134,98,167,106,199,114,231,114,231,122,7,123,7,131,
+  39,131,6,123,71,131,70,131,70,131,71,139,195,89,26,34,41,136,35,41,
+  5,74,33,57,164,57,164,65,164,65,132,65,132,57,246,3,136,12,91,44,
+  99,12,91,44,99,12,91,12,99,12,99,44,99,4,12,99,129,44,99,3,
+  12,99,130,44,99,45,99,6,44,99,135,45,99,44,99,45,99,45,99,44,
+  99,45,99,12,99,3,45,99,130,44,99,44,99,4,45,99,129,77,99,3,
+  45,99,140,44,99,44,99,45,91,45,91,44,99,44,99,45,99,44,99,45,
+  99,44,99,45,99,45,91,5,45,99,129,45,91,3,45,99,130,44,99,44,
+  99,7,45,99,129,77,99,3,45,99,129,45,91,6,45,99,129,44,99,3,
+  45,99,131,45,91,45,91,45,99,4,45,91,129,77,99,3,45,91,129,44,
+  91,4,45,91,131,44,91,45,99,45,99,10,45,91,129,44,91,20,45,91,
+  142,12,83,203,82,203,74,204,82,236,90,45,91,110,99,208,99,49,116,82,
+  124,114,124,115,124,114,124,146,124,4,147,124,130,147,132,147,124,3,179,124,
+  131,147,132,147,124,179,124,4,147,124,134,146,124,115,124,114,116,114,116,146,
+  132,178,140,11,179,140,139,178,140,146,140,146,132,178,132,179,140,211,140,211,
+  140,211,148,179,148,146,140,81,132,3,49,124,153,17,116,240,115,16,108,50,
+  116,115,124,180,124,180,124,212,124,180,124,179,124,179,124,147,116,147,116,115,
+  116,114,124,179,132,179,140,114,124,53,149,24,182,73,74,138,74,105,74,106,
+  74,106,74,3,138,74,3,138,82,140,170,82,170,82,203,90,171,90,13,91,
+  114,124,114,124,147,124,179,132,179,124,211,124,180,124,3,180,132,15,212,132,
+  3,244,132,147,212,132,244,132,244,132,244,140,175,107,172,82,9,66,8,58,
+  8,66,232,57,167,49,103,41,70,33,37,25,102,33,102,41,70,33,70,33,
+  102,33,3,102,41,129,70,41,5,102,41,130,134,49,134,41,3,167,49,130,
+  200,49,199,49,3,200,49,132,199,49,167,49,135,49,134,41,3,102,41,131,
+  134,41,134,41,135,49,6,167,49,134,199,49,200,49,167,49,199,49,200,49,
+  167,41,3,135,41,130,102,33,102,41,5,135,41,133,103,41,135,41,103,41,
+  135,41,135,41,4,134,41,4,102,41,135,134,41,102,33,102,41,70,41,102,
+  41,70,33,70,41,3,69,33,8,37,33,134,37,25,5,33,5,33,4,25,
+  4,25,4,33,3,4,25,133,228,24,228,24,4,25,228,16,228,16,6,228,
+  24,132,196,16,196,16,228,16,228,16,3,196,16,140,195,24,195,16,195,16,
+  196,16,196,16,195,16,196,16,196,16,195,16,195,16,196,16,196,16,6,195,
+  16,153,196,16,196,16,195,16,196,16,195,16,196,16,195,16,195,16,196,16,
+  196,16,195,16,196,16,195,16,196,16,196,16,131,8,13,83,114,132,207,115,
+  45,99,13,99,45,107,12,99,12,99,45,99,3,44,99,147,45,99,45,107,
+  13,99,45,99,45,99,109,107,244,156,244,156,243,156,243,156,243,148,243,148,
+  211,148,211,156,211,148,211,148,178,148,211,148,211,148,4,179,148,136,211,148,
+  243,156,243,156,244,156,244,156,244,148,212,148,212,140,3,212,132,150,180,132,
+  180,124,148,124,147,124,115,116,50,108,18,100,18,100,177,91,180,132,182,165,
+  20,141,52,149,199,57,199,57,102,41,134,41,134,49,167,49,166,49,167,49,
+  167,49,9,199,49,129,199,57,7,199,49,136,199,57,199,57,232,57,135,41,
+  197,16,196,16,164,16,132,16,4,164,16,142,38,33,204,90,49,140,179,156,
+  178,148,114,148,113,140,113,140,114,148,146,148,146,148,178,148,179,148,179,148,
+  7,211,148,4,211,156,9,243,156,136,20,165,244,156,244,156,20,165,244,156,
+  20,157,20,157,19,157,10,20,165,3,52,165,131,113,140,231,49,163,16,12,
+  195,24,135,163,24,130,16,162,16,133,57,132,65,99,49,164,57,3,34,41,
+  154,35,41,34,41,34,41,2,41,34,41,34,41,67,41,199,98,103,123,38,
+  131,229,114,165,106,164,106,197,106,164,106,165,106,229,114,5,115,164,106,164,
+  106,165,98,229,114,70,131,38,131,195,73,2,41,6,34,41,137,164,57,196,
+  65,164,57,100,49,99,49,67,41,67,41,34,41,34,41,3,2,41,3,2,
+  33,135,2,41,2,41,34,41,35,41,67,41,99,49,66,49,10,34,41,143,
+  164,57,8,115,39,123,71,131,71,131,39,131,39,123,197,122,229,114,229,114,
+  164,106,164,106,196,106,164,106,37,123,3,70,131,130,36,106,34,49,14,34,
+  41,129,34,49,6,34,41,129,35,41,4,34,41,135,229,73,66,57,67,49,
+  99,57,132,65,164,65,164,65,5,4,130,12,99,12,99,4,12,91,140,44,
+  99,12,91,12,91,44,99,12,91,44,91,44,99,12,99,12,91,44,99,44,
+  99,12,99,3,44,99,134,12,91,45,99,44,99,45,99,45,99,12,99,3,
+  44,99,140,45,99,44,99,45,99,45,99,44,99,44,99,45,99,45,99,77,
+  99,45,99,45,99,44,99,6,45,99,130,44,99,44,99,3,45,99,135,77,
+  99,45,99,45,99,77,99,45,99,44,99,44,99,3,45,99,130,44,99,44,
+  99,8,45,99,142,77,91,45,91,45,99,45,99,45,91,45,91,44,91,45,
+  99,45,99,77,99,45,99,44,99,45,91,45,99,9,45,91,138,45,99,45,
+  91,45,91,44,91,77,99,45,99,45,99,45,91,45,99,45,99,33,45,91,
+  153,236,82,203,74,203,82,236,82,13,91,45,91,142,99,240,107,49,116,82,
+  124,114,124,114,124,146,124,146,124,147,124,147,124,179,124,147,124,179,132,147,
+  124,147,124,179,124,147,124,147,124,179,132,4,147,124,142,146,124,146,124,114,
+  124,114,116,114,124,146,132,179,140,178,140,179,140,178,140,146,140,146,140,178,
+  140,178,140,3,179,140,140,211,140,211,140,179,140,179,140,211,140,211,148,211,
+  140,211,148,211,148,179,148,114,140,81,132,3,49,124,175,240,115,240,115,17,
+  108,82,116,147,124,180,124,180,124,212,124,180,124,179,124,179,124,147,116,147,
+  116,115,116,146,124,147,132,146,132,20,141,118,157,150,165,41,66,106,74,106,
+  74,105,74,138,74,138,74,106,74,138,74,138,74,138,82,170,82,138,82,170,
+  82,171,82,203,90,171,82,142,99,147,124,147,124,147,132,211,132,179,132,180,
+  132,212,132,180,132,180,124,179,132,11,212,132,129,244,132,4,212,132,148,244,
+  132,212,132,244,132,244,132,20,141,143,99,139,74,232,57,8,58,8,58,232,
+  57,200,49,135,41,134,41,69,33,37,33,102,41,102,41,102,33,70,33,4,
+  102,41,136,70,41,102,41,134,41,102,41,134,41,102,41,134,41,135,49,3,
+  167,49,134,199,49,200,49,199,49,167,49,167,49,134,41,3,102,41,130,134,
+  41,134,41,4,167,49,131,200,49,200,49,199,49,5,200,49,134,199,49,167,
+  49,135,41,134,41,135,41,135,41,5,102,41,129,135,41,4,102,41,131,134,
+  41,102,41,134,41,10,102,41,135,102,33,69,33,69,33,70,33,70,33,69,
+  33,36,33,5,37,33,132,4,33,4,33,4,25,4,33,4,4,25,131,4,
+  33,4,25,4,25,8,228,24,132,228,16,195,16,228,16,196,16,3,228,16,
+  135,196,16,195,16,196,16,196,16,195,16,195,16,196,16,3,195,16,131,196,
+  16,195,16,163,16,3,195,16,129,196,16,6,195,16,129,196,16,3,195,16,
+  129,196,16,3,195,16,131,196,16,196,16,195,16,3,196,16,133,163,8,106,
+  66,82,124,143,107,13,99,6,12,99,146,44,99,13,99,45,99,13,99,12,
+  99,45,99,12,99,45,99,211,148,244,156,243,156,243,156,243,148,243,148,211,
+  148,211,148,179,148,179,148,4,211,148,131,179,148,211,148,211,148,3,243,156,
+  133,244,156,244,156,244,148,212,148,212,140,4,212,132,144,180,132,179,124,147,
+  124,115,116,82,108,18,100,18,100,209,91,147,124,183,165,53,149,85,149,231,
+  57,199,49,134,41,134,41,5,167,49,3,199,49,132,199,57,199,49,199,49,
+  199,57,5,199,49,139,231,49,200,49,232,57,199,49,231,57,199,49,199,49,
+  231,57,135,41,197,16,197,16,6,164,16,137,5,25,171,82,16,132,179,156,
+  178,148,113,140,81,140,114,140,114,140,3,146,148,130,179,148,179,148,5,211,
+  148,130,211,156,211,148,4,211,156,131,243,156,243,156,211,156,5,243,156,3,
+  244,156,133,20,165,244,156,244,164,20,165,244,164,13,20,165,132,52,165,179,
+  156,105,74,163,16,3,195,24,129,163,24,9,195,24,135,130,16,130,16,68,
+  49,164,65,67,49,164,65,67,49,9,34,41,141,134,90,103,131,69,131,5,
+  115,197,106,164,106,229,114,229,114,230,114,6,123,38,123,197,114,197,114,3,
+  165,106,130,132,98,195,65,8,34,41,133,2,41,2,33,34,41,2,33,2,
+  33,4,34,41,140,67,49,99,49,131,57,164,65,228,73,5,74,37,82,102,
+  98,102,98,166,106,166,106,195,81,10,34,41,148,99,49,40,107,70,131,69,
+  131,70,131,5,123,100,98,67,90,99,98,132,106,132,106,164,106,197,114,229,
+  114,38,123,70,131,70,131,102,131,197,122,66,57,19,34,41,129,67,49,6,
+  34,41,135,164,57,164,65,67,49,6,74,164,73,164,57,132,57,3,4,143,
+  12,91,12,99,12,91,44,99,12,91,44,99,12,91,44,99,12,99,12,91,
+  12,99,12,91,44,99,44,99,12,91,4,44,99,130,12,91,12,91,10,44,
+  99,3,45,99,132,13,99,45,99,45,99,44,99,4,45,99,138,44,99,45,
+  99,45,99,77,99,45,99,45,99,44,99,45,99,44,99,44,99,5,45,99,
+  129,44,99,5,45,99,139,77,99,45,99,45,99,44,99,77,99,45,99,45,
+  99,77,99,45,99,45,99,45,91,6,45,99,134,77,99,77,99,45,99,45,
+  99,44,91,45,91,3,45,99,3,45,91,129,45,99,5,45,91,130,45,99,
+  44,99,7,45,91,133,45,99,45,91,77,91,45,91,45,99,27,45,91,139,
+  236,82,203,74,203,82,236,90,12,91,45,91,175,107,240,107,50,116,82,124,
+  114,124,3,146,124,4,147,124,134,179,132,147,124,179,124,147,124,179,124,179,
+  124,3,147,124,159,115,124,115,124,147,124,115,124,114,116,114,116,146,124,146,
+  132,179,148,146,140,113,132,81,132,16,124,48,124,114,132,178,140,178,140,211,
+  140,178,140,179,140,211,140,211,140,211,148,211,148,211,140,211,140,211,148,211,
+  148,178,140,114,132,81,124,3,49,124,152,16,116,240,107,17,108,114,116,147,
+  124,180,124,212,132,212,124,212,124,179,124,179,124,180,124,147,116,115,116,146,
+  116,179,132,146,132,20,149,150,157,210,148,41,66,105,74,106,74,106,74,3,
+  138,74,129,106,74,3,138,74,143,139,82,138,82,170,82,170,82,203,90,171,
+  82,240,107,147,124,179,132,179,132,180,132,180,132,212,132,180,132,180,132,14,
+  212,132,132,244,132,244,132,212,132,212,132,3,244,132,142,244,140,175,107,106,
+  74,232,57,232,57,8,58,8,58,232,49,167,49,134,41,134,41,70,41,5,
+  33,37,33,3,70,33,130,102,41,70,41,4,102,41,133,134,41,135,41,102,
+  41,134,41,135,41,4,167,49,142,200,49,167,49,167,49,135,49,134,41,102,
+  41,102,41,135,41,135,49,167,49,168,49,199,49,199,49,200,57,4,232,57,
+  136,200,57,199,49,168,49,200,49,167,49,135,41,134,41,134,41,5,102,41,
+  138,70,33,102,41,102,33,102,41,102,41,70,33,102,33,70,41,102,41,70,
+  41,4,102,41,134,70,41,102,41,70,41,70,41,102,41,102,41,3,69,33,
+  130,37,33,69,33,6,37,33,131,5,33,4,33,4,33,8,4,25,130,228,
+  24,4,25,8,228,24,137,228,16,196,16,196,16,196,24,196,24,196,16,196,
+  24,196,16,196,16,9,195,16,142,163,16,195,16,163,16,195,16,164,16,195,
+  16,195,16,163,16,163,16,195,16,163,16,195,16,195,16,196,16,7,195,16,
+  4,196,16,141,163,8,171,74,114,124,16,116,45,99,12,99,236,90,12,99,
+  236,90,12,99,12,91,12,99,236,90,3,12,99,133,45,99,45,99,13,99,
+  81,132,20,157,3,243,156,132,243,148,211,148,210,148,178,148,7,211,148,131,
+  243,148,243,156,243,156,3,244,156,131,244,148,212,148,212,140,3,212,132,146,
+  180,132,180,124,180,124,147,124,115,116,50,108,18,100,18,100,209,91,115,124,
+  215,165,244,140,243,148,8,66,167,49,134,49,102,41,166,49,4,167,49,130,
+  199,49,167,49,6,199,49,129,199,57,10,199,49,134,232,57,135,41,197,16,
+  165,16,164,16,132,16,4,164,16,154,229,24,106,74,16,132,179,156,178,156,
+  114,140,81,140,113,140,114,148,146,140,146,148,178,148,178,148,179,148,211,148,
+  211,148,211,156,211,148,211,148,211,156,211,148,211,156,211,156,211,148,243,156,
+  211,156,8,243,156,134,244,156,20,165,244,156,20,165,20,157,20,157,14,20,
+  165,132,52,165,211,156,204,82,163,16,3,195,24,129,163,24,9,195,24,135,
+  162,16,130,16,36,41,197,73,66,49,164,57,99,49,6,34,41,149,35,41,
+  34,41,2,33,37,82,39,123,6,123,197,114,197,106,165,106,132,98,133,98,
+  68,90,36,82,4,74,227,73,228,65,163,65,131,57,98,49,98,49,66,41,
+  6,34,41,152,2,41,2,41,34,41,34,41,35,41,164,57,228,65,5,74,
+  37,82,101,90,134,98,166,106,198,114,230,114,7,123,231,122,7,123,39,131,
+  39,131,71,131,71,131,70,131,100,106,34,49,10,34,41,147,168,90,71,131,
+  70,131,102,131,70,131,229,114,197,114,229,114,6,123,229,114,6,123,230,114,
+  197,114,165,106,165,106,101,90,68,90,4,82,67,57,8,34,41,132,35,41,
+  34,41,34,41,66,41,14,34,41,135,99,49,5,74,34,49,6,74,66,49,
+  34,41,34,41,191,3,136,12,91,12,99,12,91,44,99,12,91,44,99,44,
+  99,12,99,3,44,99,131,12,99,12,99,12,91,8,44,99,129,45,99,5,
+  44,99,134,45,99,45,99,44,99,44,99,45,99,44,99,4,45,99,137,44,
+  99,77,99,45,99,45,99,44,99,45,99,44,99,44,99,12,91,6,45,99,
+  130,44,99,44,99,6,45,99,131,44,99,45,99,44,91,6,45,99,129,45,
+  91,9,45,99,132,45,91,45,99,45,99,45,91,3,45,99,131,45,91,45,
+  99,77,99,3,45,91,130,45,99,45,99,3,45,91,138,44,91,45,99,45,
+  91,45,91,45,99,45,91,45,91,45,99,44,91,44,91,8,45,91,131,45,
+  99,45,91,45,99,20,45,91,139,236,82,236,82,204,82,236,90,13,91,77,
+  99,175,107,17,108,82,116,114,124,114,124,8,147,124,129,179,124,8,147,124,
+  143,115,124,147,124,115,116,114,116,114,116,146,124,146,132,178,140,113,132,239,
+  115,77,99,12,83,207,107,49,124,146,140,4,179,140,3,211,140,130,211,148,
+  211,140,3,211,148,130,146,140,113,132,4,49,124,155,240,115,240,107,49,108,
+  115,116,179,124,212,124,212,132,212,124,212,124,180,124,147,124,147,124,147,116,
+  115,116,147,124,179,132,179,140,20,149,215,165,48,124,73,66,138,74,106,74,
+  106,74,105,74,106,74,106,74,5,138,74,143,138,82,170,82,170,82,171,82,
+  203,90,171,82,82,116,179,132,179,132,180,132,180,132,212,132,212,132,180,132,
+  180,124,12,212,132,130,244,132,212,132,6,244,132,146,211,132,143,99,41,66,
+  9,66,9,58,9,58,232,57,232,57,199,49,135,41,134,41,134,41,196,24,
+  131,16,37,33,69,33,70,33,70,41,6,102,41,132,134,41,134,41,135,49,
+  135,49,6,167,49,137,134,49,134,41,134,41,102,41,135,41,167,49,199,49,
+  199,49,200,49,3,200,57,3,232,57,135,200,57,199,49,200,49,199,49,167,
+  49,134,41,134,41,6,102,41,136,70,33,102,41,69,33,102,41,102,41,70,
+  41,69,33,70,33,3,102,41,130,70,41,102,41,3,69,41,131,70,41,102,
+  41,69,41,4,69,33,6,37,33,3,4,33,131,5,33,5,33,4,33,4,
+  4,25,131,228,24,4,25,4,25,4,228,24,129,228,16,3,228,24,131,228,
+  16,196,16,228,24,5,196,16,3,195,16,129,163,16,7,195,16,131,163,16,
+  163,16,195,16,3,163,16,132,195,16,163,16,195,16,195,16,4,163,16,132,
+  195,16,163,16,195,16,164,16,6,195,16,135,196,16,195,16,196,16,131,8,
+  45,91,114,124,207,115,3,236,90,129,12,99,3,236,90,8,12,99,131,207,
+  123,20,157,244,156,4,243,156,9,211,148,129,211,156,3,243,156,3,244,156,
+  129,212,140,4,212,132,150,180,132,180,132,179,124,147,124,115,116,83,108,50,
+  100,18,100,209,91,50,116,215,165,85,149,52,149,73,66,166,49,166,49,69,
+  33,134,49,167,49,167,49,166,49,167,49,3,199,49,129,167,49,11,199,49,
+  148,231,49,231,57,199,49,199,49,231,57,135,41,197,16,197,16,164,16,164,
+  16,132,16,164,16,164,16,132,16,196,24,73,74,207,123,146,156,178,156,114,
+  148,3,114,140,133,146,140,146,148,146,148,179,148,179,148,4,211,148,135,211,
+  156,211,148,211,148,211,156,211,148,211,156,211,156,9,243,156,129,19,157,3,
+  20,165,130,20,157,20,157,15,20,165,131,243,156,110,107,195,16,13,195,24,
+  138,163,24,130,16,3,33,197,73,99,49,164,57,132,57,34,41,34,41,35,
+  41,6,34,41,146,131,49,4,74,228,73,195,65,163,57,131,57,99,49,99,
+  49,66,41,66,41,34,41,34,41,33,33,34,33,34,41,34,41,66,41,66,
+  49,4,34,41,129,35,41,6,34,41,147,70,82,7,123,39,131,38,131,71,
+  131,38,131,6,115,6,123,229,114,229,114,197,114,165,106,197,114,38,123,70,
+  131,70,131,102,131,196,114,66,57,8,34,41,147,35,41,2,41,37,74,7,
+  115,229,114,197,114,132,106,133,98,100,90,36,82,4,82,227,73,196,65,164,
+  57,131,49,98,49,98,49,66,41,66,41,5,34,41,129,35,41,3,34,41,
+  129,66,41,17,34,41,136,34,49,34,41,6,74,66,49,197,65,131,65,34,
+  49,34,41,225,3,4,12,91,134,12,99,44,99,44,99,12,91,45,91,12,
+  91,4,44,99,129,12,99,5,44,99,138,45,99,45,99,44,99,45,99,45,
+  99,44,99,44,99,45,99,44,99,12,91,3,45,99,129,44,99,4,45,99,
+  130,77,99,44,99,8,45,99,137,45,91,45,99,45,99,44,99,44,99,77,
+  99,12,99,77,99,44,99,5,45,99,135,44,91,77,99,44,91,45,99,45,
+  91,45,99,44,99,6,45,99,129,77,99,5,45,99,130,77,99,77,99,3,
+  45,99,136,45,91,45,91,45,99,45,99,45,91,45,99,77,99,45,99,3,
+  45,91,129,44,99,3,45,99,131,45,91,45,91,45,99,5,45,91,129,45,
+  99,7,45,91,130,45,99,45,99,4,45,91,129,12,91,5,45,91,129,77,
+  91,8,45,91,142,13,91,236,82,236,82,204,82,236,90,45,91,110,99,207,
+  107,49,116,82,124,114,124,114,124,146,124,146,124,3,147,124,133,179,124,147,
+  124,179,124,147,124,179,124,3,147,124,147,147,132,147,124,147,124,146,124,147,
+  124,147,124,115,124,114,116,114,124,146,132,178,140,178,140,48,132,142,107,12,
+  83,12,75,207,99,49,124,146,140,4,179,140,131,178,140,178,140,179,140,3,
+  211,148,133,243,148,211,148,146,140,81,132,81,124,3,49,124,156,240,115,240,
+  107,50,116,147,124,180,124,212,132,212,132,212,124,180,124,180,124,179,124,147,
+  116,147,116,115,116,147,124,179,132,211,140,53,149,57,182,77,99,73,74,106,
+  74,106,74,105,74,106,74,138,74,138,74,106,74,4,138,74,130,138,82,138,
+  82,3,170,82,131,203,90,12,91,147,124,4,180,132,131,212,132,212,132,212,
+  124,9,212,132,132,244,140,212,132,244,132,212,132,4,244,132,148,244,140,244,
+  140,21,141,114,124,110,99,41,66,9,58,232,57,9,58,9,58,232,57,200,
+  49,167,49,135,41,70,33,37,33,131,16,195,16,70,41,70,41,6,102,41,
+  3,134,41,131,167,41,102,41,134,41,4,135,49,145,134,41,134,41,134,49,
+  134,41,134,41,167,49,199,49,200,49,200,57,200,57,199,49,200,49,232,49,
+  232,57,199,49,200,49,200,49,3,167,49,136,135,41,134,41,134,41,102,41,
+  70,41,70,33,70,33,70,41,3,69,33,130,70,41,70,33,3,69,33,129,
+  69,41,4,69,33,130,70,41,70,41,3,69,33,131,69,41,69,41,69,33,
+  7,37,33,136,5,25,36,33,4,25,4,33,4,25,4,25,4,33,4,33,
+  3,4,25,12,228,24,131,196,16,196,24,195,16,4,196,16,139,195,16,196,
+  16,195,16,163,16,195,16,163,16,163,16,195,16,163,16,163,16,195,16,6,
+  163,16,131,195,16,195,16,163,16,4,195,16,4,163,16,132,195,16,163,16,
+  195,16,196,16,5,195,16,137,195,8,195,16,131,8,78,99,208,115,142,107,
+  12,99,236,90,12,99,3,236,90,132,13,99,12,99,236,90,13,99,4,12,
+  99,135,13,99,142,107,243,156,243,156,211,156,243,156,211,156,11,211,148,3,
+  243,156,3,244,156,129,244,148,6,212,132,145,180,132,147,124,115,116,82,108,
+  18,100,18,100,242,91,18,108,248,173,53,149,85,149,73,66,167,49,166,49,
+  101,41,134,41,166,49,4,167,49,132,199,49,167,49,199,49,167,49,12,199,
+  49,134,231,57,199,49,199,49,167,41,197,16,197,16,5,164,16,143,131,16,
+  196,24,9,66,175,123,146,148,179,156,114,148,81,140,114,140,114,140,146,148,
+  146,148,178,148,179,148,179,148,3,211,148,136,211,156,211,156,211,148,211,148,
+  243,156,211,156,243,156,211,156,9,243,156,129,20,157,8,20,165,132,244,156,
+  20,165,20,165,20,157,3,20,165,129,20,157,5,20,165,130,207,115,4,25,
+  13,195,24,135,163,24,130,16,227,24,197,65,99,57,132,57,164,65,12,34,
+  41,144,34,33,34,33,34,41,66,41,67,49,99,49,131,57,196,65,228,73,
+  5,74,37,82,101,90,134,98,166,106,134,98,131,57,9,34,41,131,2,33,
+  70,74,104,139,4,70,131,136,196,106,229,106,196,106,197,114,164,106,164,106,
+  5,115,70,123,3,102,131,130,6,123,130,65,10,34,41,135,67,41,196,65,
+  163,57,130,49,99,49,67,41,66,41,15,34,41,129,35,41,11,34,41,146,
+  66,49,67,49,99,49,132,57,132,57,164,65,196,65,196,73,229,73,99,57,
+  34,49,34,41,229,65,131,65,131,57,229,73,34,49,34,41,183,3,141,12,
+  91,12,99,12,91,12,91,12,99,12,91,44,99,12,91,45,99,12,99,44,
+  99,12,99,12,91,3,44,99,130,45,99,12,99,5,44,99,129,45,99,3,
+  44,99,6,45,99,129,44,99,8,45,99,142,44,99,45,99,45,99,44,99,
+  44,91,45,99,45,99,44,99,44,99,45,99,44,99,44,99,45,99,44,91,
+  3,45,99,135,45,91,77,99,44,99,77,99,44,91,45,99,45,91,3,45,
+  99,129,77,99,3,45,99,130,77,99,77,99,9,45,99,133,77,99,45,99,
+  45,91,45,91,44,91,5,45,99,7,45,91,131,77,91,45,91,45,99,6,
+  45,91,129,45,99,3,45,91,130,44,91,45,99,22,45,91,141,12,91,236,
+  82,203,82,204,82,12,91,45,91,110,99,240,107,49,116,82,124,114,124,115,
+  124,146,124,4,147,124,135,147,132,147,124,179,132,147,124,179,132,147,124,179,
+  124,3,147,124,144,146,124,147,124,115,124,115,124,115,116,114,116,114,124,146,
+  132,178,140,178,140,81,132,240,115,174,107,174,99,16,116,114,132,3,179,140,
+  140,178,140,178,140,113,132,113,132,146,132,179,140,211,140,211,148,243,148,179,
+  148,146,140,81,132,3,49,124,137,16,116,240,115,241,107,82,116,147,124,212,
+  124,212,124,212,132,212,124,3,180,124,138,147,124,147,116,147,116,147,124,179,
+  132,211,140,244,140,89,182,170,82,105,74,5,106,74,136,138,74,138,74,106,
+  74,106,74,138,74,138,82,138,74,138,82,3,170,82,131,203,82,171,90,78,
+  99,3,180,132,130,212,132,180,132,12,212,132,8,244,132,148,245,132,21,133,
+  114,132,45,91,41,66,41,66,232,57,8,58,9,66,232,57,200,49,199,49,
+  135,41,102,41,70,33,4,25,98,8,228,24,69,33,69,41,5,102,41,149,
+  134,41,134,41,135,41,167,49,135,49,135,49,167,49,167,49,135,49,167,49,
+  134,41,134,41,102,41,135,41,167,49,199,49,200,49,200,57,200,49,200,49,
+  199,57,4,199,49,3,167,49,129,134,49,4,102,41,135,70,41,69,33,70,
+  41,70,33,69,33,70,41,69,41,7,69,33,131,37,33,69,33,69,41,6,
+  69,33,131,37,33,69,33,69,33,6,37,33,133,5,33,37,33,4,33,4,
+  25,4,33,5,4,25,3,228,24,129,4,25,8,228,24,130,196,16,196,16,
+  4,196,24,134,196,16,195,16,195,16,196,16,196,16,195,16,9,163,16,129,
+  195,16,5,163,16,132,195,16,195,16,163,16,163,8,8,163,16,159,164,16,
+  163,16,195,16,195,16,164,16,163,16,195,16,195,16,195,8,131,8,41,58,
+  179,140,13,91,12,99,236,90,236,90,12,99,203,82,236,90,12,99,236,90,
+  12,99,12,99,236,90,236,90,12,99,45,99,13,99,45,99,146,148,243,148,
+  3,211,156,12,211,148,137,211,156,243,156,243,156,244,156,244,156,212,140,212,
+  140,212,132,212,140,3,212,132,147,180,132,147,124,115,116,83,108,50,100,18,
+  100,242,91,209,99,247,165,53,149,85,149,138,74,166,49,199,49,69,41,134,
+  41,166,49,167,49,167,41,4,167,49,11,199,49,129,199,57,5,199,49,134,
+  167,49,197,16,197,16,164,16,132,16,132,16,4,164,16,136,200,57,175,123,
+  146,148,178,156,114,148,81,140,113,140,114,140,3,146,148,135,178,148,179,148,
+  211,148,211,148,211,156,211,148,211,148,4,211,156,8,243,156,131,244,156,243,
+  156,19,157,14,20,165,130,20,157,20,157,6,20,165,130,48,132,69,33,14,
+  195,24,138,130,16,162,24,165,65,132,65,99,49,164,65,34,41,34,41,35,
+  41,35,41,6,34,41,146,164,57,228,73,37,74,69,82,102,90,134,98,166,
+  106,198,106,231,114,6,115,7,123,6,123,39,131,71,131,71,131,103,131,71,
+  131,227,73,9,34,41,131,34,33,229,65,71,131,3,70,131,142,102,131,5,
+  123,6,115,6,123,38,123,229,114,197,114,230,114,198,114,165,106,132,98,100,
+  90,68,82,131,57,23,34,41,129,34,49,10,34,41,137,67,49,67,49,100,
+  49,100,57,132,57,164,57,197,65,197,73,228,73,4,229,73,143,197,73,197,
+  73,196,65,164,65,132,57,196,65,228,73,34,49,34,41,132,49,228,73,34,
+  49,6,74,66,57,34,41,179,3,135,12,99,12,91,12,91,44,99,12,91,
+  44,99,12,99,4,44,99,129,12,99,4,44,99,129,45,99,3,44,99,130,
+  44,91,44,99,8,45,99,129,44,99,13,45,99,132,44,99,45,99,45,99,
+  77,99,5,45,99,129,44,99,24,45,99,129,44,99,5,45,99,138,45,91,
+  77,99,45,99,45,99,44,91,45,99,45,99,45,91,45,91,77,99,3,45,
+  91,132,45,99,44,91,45,91,45,99,5,45,91,130,45,99,45,99,4,45,
+  91,130,45,99,44,91,21,45,91,143,77,91,45,91,45,91,236,82,236,82,
+  203,82,204,82,13,91,77,91,143,99,240,107,49,116,114,124,114,124,146,124,
+  6,147,124,136,179,132,147,124,147,124,179,132,179,124,179,124,179,132,179,124,
+  5,147,124,139,114,116,114,116,146,124,146,132,179,140,179,140,146,140,113,132,
+  81,124,81,124,114,132,4,179,140,151,178,140,113,132,16,124,16,124,113,132,
+  178,140,211,140,211,148,211,148,178,140,146,140,81,132,49,124,81,124,49,124,
+  240,115,240,115,17,116,82,116,147,124,180,132,212,132,212,132,4,180,124,138,
+  147,124,147,116,115,116,147,124,179,140,244,140,85,149,24,182,73,74,105,74,
+  6,106,74,3,138,74,139,106,74,138,74,138,74,170,82,138,82,170,82,138,
+  82,171,82,203,82,171,82,175,107,3,212,132,131,180,132,180,132,212,124,5,
+  212,132,129,244,132,3,212,132,130,244,132,212,132,8,244,132,150,20,141,17,
+  116,204,82,8,58,41,66,232,57,9,58,9,58,232,57,200,49,200,49,167,
+  49,134,41,70,33,69,33,196,16,98,8,5,33,69,33,69,33,70,33,70,
+  41,4,102,41,130,134,41,135,41,3,167,49,142,135,49,167,49,134,41,134,
+  41,102,41,134,41,134,41,167,49,167,49,199,49,167,49,200,49,199,49,199,
+  49,3,167,49,132,135,49,134,49,134,41,134,41,6,102,41,131,70,41,69,
+  33,69,41,7,69,33,130,37,33,37,33,3,69,33,130,37,33,69,33,5,
+  37,33,129,69,33,4,37,33,137,5,33,37,33,5,33,5,33,5,25,5,
+  25,4,25,228,24,4,33,3,4,25,13,228,24,139,196,24,196,24,228,24,
+  196,24,196,24,196,16,195,16,196,16,196,16,195,16,196,16,3,195,16,3,
+  163,16,129,195,16,14,163,16,129,195,16,4,163,16,129,195,16,3,163,16,
+  129,163,8,3,163,16,142,195,16,163,8,196,16,196,8,131,0,41,58,49,
+  124,110,107,236,90,203,90,236,90,236,90,203,82,204,90,3,236,90,137,12,
+  99,236,90,236,90,12,99,13,99,12,99,12,99,81,132,243,148,15,211,148,
+  134,243,156,244,156,243,156,244,156,244,156,244,148,3,212,140,148,212,132,212,
+  132,180,124,180,124,147,124,115,116,82,108,50,100,18,100,242,91,209,99,247,
+  173,52,149,20,149,171,82,166,49,199,49,69,41,134,41,166,49,3,167,49,
+  3,199,49,129,167,49,12,199,49,129,232,57,3,199,49,131,167,41,197,16,
+  197,16,5,164,16,145,163,16,163,16,167,49,142,115,146,148,179,156,146,148,
+  81,140,114,140,114,148,114,148,146,148,146,148,179,148,179,148,211,148,211,148,
+  4,211,156,133,211,148,211,156,211,156,243,156,211,156,7,243,156,131,20,165,
+  243,156,243,156,9,20,165,133,20,157,20,157,20,165,20,165,20,157,6,20,
+  165,133,52,165,113,140,167,41,195,24,227,24,12,195,24,135,130,16,130,16,
+  133,57,164,73,67,49,197,65,66,49,8,34,41,148,66,41,102,90,7,123,
+  39,131,39,131,71,131,71,131,38,123,6,123,38,123,5,115,197,106,6,115,
+  102,131,102,139,102,131,102,131,102,139,68,90,66,41,9,34,41,146,132,49,
+  232,106,6,123,229,114,197,106,133,106,133,98,68,90,68,82,4,74,228,73,
+  196,65,163,65,131,57,131,49,98,49,98,49,66,41,24,34,41,138,66,41,
+  67,49,67,49,99,49,131,57,132,57,164,57,196,65,196,65,197,73,3,229,
+  73,154,197,73,197,73,197,65,197,65,164,65,132,65,132,57,100,57,99,57,
+  99,49,67,49,66,49,34,49,34,49,34,41,34,41,67,41,6,74,66,49,
+  34,41,35,41,6,74,34,57,5,66,98,65,34,49,151,3,130,12,99,44,
+  99,3,12,99,4,44,99,129,12,99,8,44,99,130,45,99,45,99,6,44,
+  99,3,45,99,130,44,99,44,99,8,45,99,131,44,99,45,99,77,99,3,
+  45,99,131,77,99,45,99,44,99,3,45,99,3,44,99,5,45,99,131,44,
+  91,45,99,44,99,3,45,99,132,44,91,45,99,45,99,44,99,7,45,99,
+  130,77,99,45,99,3,77,99,4,45,99,129,45,91,4,45,99,131,77,99,
+  45,99,44,99,3,45,99,130,77,99,45,99,3,45,91,131,44,91,45,91,
+  45,99,34,45,91,137,236,82,236,82,203,82,236,90,13,91,78,99,175,107,
+  16,108,82,116,3,114,124,5,147,124,129,179,124,3,179,132,129,179,124,3,
+  179,132,160,147,124,147,124,179,124,147,124,147,124,146,124,114,116,114,124,146,
+  124,146,132,179,140,179,140,178,140,178,140,179,140,211,140,211,140,179,140,179,
+  140,211,140,211,140,178,140,48,124,174,107,240,115,81,124,178,140,211,140,211,
+  148,211,148,146,140,114,132,4,49,124,133,16,116,240,107,49,116,114,124,147,
+  124,3,212,132,132,212,124,212,124,180,124,180,124,3,147,116,138,179,124,179,
+  140,211,140,118,157,150,165,41,66,106,74,105,74,105,74,138,74,4,106,74,
+  3,138,74,141,138,82,138,74,138,74,138,82,138,74,170,82,170,82,171,82,
+  203,90,171,82,49,116,212,132,180,132,9,212,132,130,244,132,212,132,9,244,
+  132,152,244,140,244,140,21,141,240,107,106,66,41,66,232,57,9,58,232,57,
+  8,58,232,57,232,57,199,49,199,49,135,41,102,33,69,33,5,25,163,16,
+  98,8,228,24,69,33,69,33,70,33,4,102,41,146,134,41,135,41,167,49,
+  167,49,135,49,135,49,134,41,134,41,102,41,102,41,134,41,135,49,167,49,
+  199,49,167,49,199,49,200,57,199,49,3,167,49,130,135,49,134,49,3,134,
+  41,133,102,41,70,41,102,41,70,41,101,33,3,69,41,3,69,33,130,37,
+  33,37,33,3,69,33,130,37,33,69,33,14,37,33,133,5,33,5,33,4,
+  25,5,33,5,33,3,4,25,134,228,24,4,25,4,25,228,24,4,25,4,
+  25,11,228,24,136,228,16,196,16,196,16,196,24,195,16,195,16,196,16,195,
+  24,8,195,16,131,163,16,163,16,195,16,4,163,16,129,195,16,11,163,16,
+  129,195,16,5,163,16,6,163,8,135,195,0,228,8,5,25,5,25,233,49,
+  81,124,16,124,4,236,90,130,204,90,203,82,6,236,90,135,12,99,12,99,
+  13,99,236,90,16,124,243,156,211,156,4,211,148,129,243,148,3,211,148,129,
+  243,148,3,211,148,137,243,148,243,156,244,156,244,156,243,156,244,156,244,156,
+  244,148,212,140,4,212,132,147,180,132,180,124,179,124,147,116,82,108,50,100,
+  18,100,242,91,209,99,248,173,85,149,244,148,236,82,166,49,199,57,69,41,
+  134,41,134,41,134,49,4,167,49,13,199,49,129,232,57,4,199,49,146,167,
+  49,197,16,197,16,164,16,132,16,132,16,164,16,164,16,132,16,131,16,102,
+  41,109,107,114,148,211,156,146,148,81,140,114,140,114,140,3,146,148,132,179,
+  148,179,148,211,148,211,148,6,211,156,131,243,156,243,156,211,156,9,243,156,
+  129,244,156,15,20,165,129,20,157,5,20,165,132,178,148,41,66,195,24,227,
+  24,12,195,24,135,130,16,130,16,100,49,197,73,67,41,196,65,99,49,5,
+  34,41,129,67,41,3,34,41,140,135,90,136,139,103,139,103,131,135,139,102,
+  131,229,114,164,106,165,106,197,106,164,106,197,106,3,102,131,132,134,131,102,
+  131,133,106,66,49,10,34,41,136,196,65,196,65,164,57,130,57,98,49,99,
+  49,66,49,66,41,25,34,41,137,67,49,99,49,99,49,131,57,132,57,164,
+  65,196,65,196,65,197,73,3,229,73,137,197,73,197,73,197,65,164,65,164,
+  65,132,57,132,57,99,57,99,49,3,67,49,132,34,41,34,41,35,49,66,
+  41,5,34,41,142,66,49,34,41,67,49,34,41,34,41,5,66,98,65,34,
+  49,34,41,230,65,98,65,164,57,196,73,34,49,187,3,3,12,91,133,12,
+  99,12,99,44,99,44,99,12,99,3,44,99,129,44,91,3,44,99,129,12,
+  91,6,44,99,133,12,99,45,99,45,99,44,99,44,99,5,45,99,130,44,
+  99,44,99,9,45,99,129,44,99,15,45,99,131,44,91,45,99,77,99,5,
+  45,99,129,77,99,3,45,99,140,45,91,45,99,77,99,77,99,45,99,77,
+  99,45,99,77,99,45,99,45,91,45,99,44,91,5,45,99,129,77,99,3,
+  45,99,131,77,91,45,99,45,91,3,45,99,129,77,99,4,45,91,130,45,
+  99,44,91,33,45,91,141,236,82,203,82,204,82,236,90,45,91,110,99,175,
+  107,17,116,82,124,114,116,146,124,146,124,115,124,4,147,124,132,179,124,179,
+  124,179,132,179,132,4,179,124,5,147,124,133,115,124,114,116,114,116,146,132,
+  146,140,5,179,140,145,211,140,179,140,211,140,179,140,211,140,211,140,146,140,
+  48,132,240,115,49,116,113,132,179,148,211,140,211,140,179,140,146,140,113,132,
+  4,49,124,134,240,115,240,107,50,116,115,124,180,124,212,132,4,212,124,130,
+  180,124,179,124,3,147,116,148,147,132,179,140,21,149,183,165,211,148,41,66,
+  106,74,105,74,105,74,106,74,138,74,106,74,105,74,105,74,106,74,106,74,
+  105,74,106,74,138,82,138,82,3,138,74,134,170,82,170,82,171,82,203,90,
+  203,82,147,124,3,212,132,129,180,132,6,212,132,6,244,132,129,212,132,3,
+  244,132,153,245,132,244,140,244,132,21,141,142,99,74,74,8,58,9,58,8,
+  58,9,58,8,58,200,57,232,57,199,49,200,49,167,41,134,41,70,33,37,
+  33,196,16,130,8,98,8,4,25,37,33,70,41,3,102,41,136,134,41,102,
+  41,134,41,134,41,135,41,134,41,135,41,134,41,3,102,41,147,134,41,135,
+  49,167,49,167,49,199,57,199,49,199,57,167,49,199,49,167,49,167,49,134,
+  49,134,49,134,41,102,41,102,41,101,41,102,41,69,41,3,69,33,131,37,
+  41,69,41,69,33,7,37,33,129,36,33,5,37,33,132,5,33,37,33,37,
+  33,4,33,3,37,33,136,36,33,37,33,4,33,4,25,4,33,4,25,4,
+  33,4,33,4,4,25,11,228,24,133,196,24,228,16,228,24,228,24,196,24,
+  3,196,16,139,196,24,196,24,195,16,196,16,195,16,195,16,196,16,195,16,
+  163,16,195,16,195,16,4,163,16,129,163,8,14,163,16,129,131,8,3,163,
+  8,153,196,16,228,24,228,16,37,17,102,17,168,25,9,34,139,50,236,58,
+  78,75,13,75,233,41,6,25,230,24,234,49,240,115,110,107,236,90,12,91,
+  236,90,236,90,203,82,203,82,236,90,235,90,5,236,90,135,12,99,12,99,
+  45,99,109,107,211,148,243,156,211,148,3,243,156,130,211,148,211,148,5,243,
+  156,131,244,156,243,148,243,156,5,244,156,130,244,148,212,140,5,212,132,147,
+  180,124,179,124,147,116,82,108,50,100,18,100,18,100,176,91,215,165,85,149,
+  52,149,44,91,134,49,167,49,101,41,134,41,134,41,167,49,166,49,4,167,
+  49,9,199,49,129,232,57,6,199,49,147,231,49,199,49,230,16,197,16,164,
+  16,164,16,131,16,132,16,164,16,132,16,131,16,70,41,77,107,113,148,179,
+  156,146,148,81,140,81,140,114,140,3,146,148,140,179,148,179,148,211,148,211,
+  148,211,156,211,148,211,148,211,156,211,156,243,156,243,156,211,156,8,243,156,
+  130,20,157,243,156,21,20,165,133,52,165,211,156,171,74,163,16,227,24,12,
+  195,24,135,163,24,130,16,36,41,229,73,67,49,196,65,131,57,3,34,41,
+  129,66,41,4,34,41,139,2,33,37,74,104,131,103,139,102,139,102,139,134,
+  139,38,131,6,123,6,123,6,115,4,229,114,133,197,106,133,106,133,98,36,
+  82,67,49,30,34,41,142,35,41,34,41,66,41,67,49,67,49,99,49,131,
+  57,132,57,164,57,164,57,197,65,197,65,229,73,229,73,3,197,73,131,197,
+  65,164,65,164,65,3,132,57,130,99,49,99,49,3,66,49,5,34,41,129,
+  66,41,3,34,41,129,66,41,4,34,41,146,66,41,34,41,34,41,66,41,
+  34,41,34,41,35,49,34,41,34,41,197,57,196,73,34,49,34,41,164,57,
+  196,73,66,49,5,74,33,49,227,3,138,12,99,12,91,12,91,12,99,44,
+  99,12,91,12,99,12,99,44,99,12,99,5,44,99,133,12,99,44,99,45,
+  99,44,99,12,99,3,44,99,135,45,99,45,99,44,99,45,99,44,99,45,
+  99,44,99,4,45,99,129,44,99,11,45,99,132,44,99,45,99,45,99,44,
+  99,8,45,99,129,44,99,6,45,99,139,45,91,45,99,45,99,45,91,45,
+  99,45,99,45,91,77,99,44,91,45,99,77,99,3,45,99,129,77,99,4,
+  45,99,142,45,91,77,99,44,99,45,91,45,99,77,99,45,99,45,99,45,
+  91,45,99,45,99,45,91,45,99,45,99,13,45,91,129,45,99,25,45,91,
+  137,12,83,236,82,236,82,204,82,12,91,45,91,110,99,208,107,49,116,3,
+  114,124,4,147,124,136,147,132,179,132,179,124,179,124,179,132,147,124,179,124,
+  179,132,3,179,124,4,147,124,149,115,124,114,116,114,124,146,132,178,140,178,
+  140,179,140,211,140,179,140,211,140,179,140,211,140,179,140,211,140,211,140,179,
+  140,178,140,113,140,81,132,114,132,146,140,3,211,140,131,178,140,146,132,81,
+  132,4,49,124,135,240,115,16,108,82,116,115,124,180,124,212,132,212,132,3,
+  212,124,130,180,124,179,124,3,147,116,136,179,132,179,140,85,149,247,165,16,
+  124,73,66,105,74,105,74,6,106,74,130,105,74,106,74,6,138,74,135,138,
+  82,138,74,138,82,170,82,171,82,171,90,13,91,11,212,132,8,244,132,156,
+  245,140,244,132,244,132,21,133,212,132,45,91,41,66,9,58,9,58,8,58,
+  9,58,9,58,233,57,232,57,232,57,167,49,167,49,134,41,102,33,37,25,
+  5,25,163,16,98,8,130,8,37,33,37,33,69,33,70,33,3,102,41,3,
+  134,41,129,103,41,4,102,41,141,70,41,134,41,135,41,167,49,200,57,199,
+  57,200,57,199,49,199,49,167,49,167,49,134,41,134,49,4,102,41,131,101,
+  41,69,41,69,41,5,69,33,12,37,33,134,5,33,37,33,4,33,37,33,
+  37,33,5,33,4,4,33,134,36,33,5,33,4,25,4,25,4,33,4,33,
+  3,4,25,12,228,24,131,196,24,227,24,228,16,4,196,24,137,195,16,196,
+  24,196,24,196,16,196,16,196,24,195,16,195,16,163,16,3,195,16,9,163,
+  16,131,131,16,163,16,163,16,4,163,8,152,164,8,228,24,37,33,70,33,
+  103,41,103,41,103,33,103,41,103,33,38,33,169,41,79,91,17,108,209,99,
+  143,91,13,83,107,58,201,41,39,25,6,25,6,25,230,24,201,41,176,107,
+  5,236,90,135,171,82,204,90,204,90,203,90,236,90,236,90,204,90,3,236,
+  90,133,12,99,12,99,45,99,178,148,244,156,3,243,156,141,244,156,243,156,
+  244,156,243,156,244,156,243,156,243,156,244,156,244,156,243,156,244,156,243,156,
+  243,156,3,244,156,131,212,148,244,140,212,140,3,212,132,148,180,132,180,132,
+  147,124,147,116,82,108,50,100,18,100,18,100,144,91,215,165,150,157,20,141,
+  77,91,166,49,199,49,101,41,134,41,134,41,167,49,166,49,3,167,49,130,
+  199,49,167,49,10,199,49,129,199,57,4,199,49,132,231,49,199,49,198,8,
+  197,16,5,164,16,139,131,16,132,16,70,33,45,107,81,148,178,156,146,148,
+  81,140,81,140,114,148,114,148,3,146,148,134,179,148,211,148,211,148,211,156,
+  211,156,211,148,3,211,156,10,243,156,131,20,165,20,165,244,156,12,20,165,
+  129,20,157,3,20,165,138,20,157,20,157,20,165,20,165,52,165,243,156,45,
+  99,195,16,227,24,227,24,9,195,24,137,227,24,195,24,162,24,130,16,4,
+  33,229,73,99,49,196,57,164,57,6,34,41,149,66,41,34,41,34,41,196,
+  57,7,115,38,123,229,114,197,114,197,106,133,106,100,98,100,90,36,82,4,
+  82,228,73,195,65,163,57,131,57,131,49,67,41,99,49,9,34,41,129,66,
+  41,14,34,41,137,67,41,67,49,99,49,131,57,132,57,164,57,164,65,197,
+  65,197,65,5,197,73,140,196,73,196,65,164,57,164,65,132,57,132,57,99,
+  57,99,57,99,49,66,49,35,49,66,49,7,34,41,162,35,41,34,41,34,
+  41,66,49,66,49,34,41,35,49,66,49,34,41,66,41,66,41,34,41,34,
+  41,66,41,67,41,99,49,66,49,67,49,99,49,99,49,67,49,66,41,34,
+  41,66,41,34,41,100,49,6,74,34,57,34,41,67,41,5,74,34,49,6,
+  74,66,57,11,4,129,12,91,3,12,99,129,44,99,3,12,99,3,44,99,
+  131,12,99,44,99,12,91,4,44,99,4,45,99,130,44,99,44,99,3,45,
+  99,130,44,99,44,99,12,45,99,137,44,99,45,99,45,99,44,99,45,99,
+  45,99,44,99,45,99,45,99,3,44,99,4,45,99,130,44,99,44,99,11,
+  45,99,131,77,99,45,91,45,91,4,45,99,143,77,99,45,91,45,91,77,
+  99,77,99,45,99,77,99,45,99,45,99,77,99,77,99,45,99,44,99,77,
+  99,45,91,3,45,99,130,44,99,45,99,3,45,91,134,77,91,45,99,77,
+  99,45,91,77,91,45,91,3,45,99,3,45,91,131,45,99,45,91,44,91,
+  22,45,91,140,12,83,236,82,203,82,236,90,12,91,77,91,142,99,240,107,
+  49,116,114,116,114,124,114,124,4,147,124,3,179,124,129,147,124,3,179,124,
+  133,179,132,179,124,179,124,147,124,179,132,3,147,124,139,114,116,114,116,146,
+  124,146,132,178,140,179,140,178,140,179,140,179,140,178,140,211,140,3,179,140,
+  141,211,140,211,140,178,140,178,140,146,140,178,140,211,140,211,148,211,148,211,
+  140,178,140,114,132,81,132,3,49,124,134,17,124,240,115,17,108,82,116,147,
+  124,180,132,3,212,132,154,212,124,180,124,180,124,179,124,179,116,147,116,147,
+  116,179,132,211,140,244,140,56,174,109,107,73,74,105,74,106,74,105,74,105,
+  74,106,74,105,74,138,74,105,74,106,74,106,74,138,74,138,74,106,74,3,
+  138,74,132,138,82,138,74,138,82,138,82,3,171,82,130,142,99,244,132,6,
+  212,132,4,244,132,3,212,132,4,244,132,159,245,132,244,132,245,132,21,141,
+  147,132,237,82,73,66,9,58,233,57,9,58,8,58,232,57,8,58,8,58,
+  232,57,200,57,167,49,134,41,102,41,70,33,37,33,4,25,163,16,66,8,
+  228,24,37,33,37,33,69,33,70,33,102,41,69,41,4,102,41,145,70,41,
+  70,41,69,33,69,33,102,41,134,49,199,49,199,49,199,57,200,57,199,49,
+  199,57,199,57,199,49,167,49,134,41,134,49,3,102,41,3,69,41,130,69,
+  33,69,33,6,37,33,139,5,33,37,33,37,33,5,33,36,33,37,33,5,
+  33,37,33,36,33,5,33,5,33,8,4,33,137,4,25,5,33,4,25,4,
+  33,4,25,4,25,4,33,4,25,4,25,10,228,24,129,196,24,3,228,24,
+  143,196,24,196,24,228,24,228,24,196,24,195,24,195,16,196,24,195,16,195,
+  16,196,16,195,16,195,16,163,16,195,16,3,163,16,130,163,8,163,8,4,
+  163,16,144,163,8,195,8,196,8,228,8,5,9,70,17,200,25,74,42,204,
+  58,46,75,42,50,6,25,71,41,39,33,6,25,7,25,4,230,24,132,6,
+  25,230,24,230,16,229,16,4,230,24,153,6,25,7,25,39,33,6,25,169,
+  41,49,124,78,99,203,90,203,90,236,90,203,90,203,90,203,82,171,82,203,
+  90,203,90,236,90,204,90,204,90,236,90,236,90,12,91,12,99,45,99,81,
+  140,5,243,156,130,244,156,244,156,3,243,156,135,244,156,244,156,243,156,243,
+  156,244,156,243,156,243,156,3,244,156,130,244,148,212,140,5,212,132,142,180,
+  132,179,124,147,116,115,108,50,100,18,100,18,100,177,91,183,165,183,165,53,
+  149,110,99,167,49,199,49,3,134,41,3,167,49,129,166,49,3,167,49,17,
+  199,49,130,198,16,197,16,7,164,16,140,38,33,12,99,81,148,179,156,146,
+  148,81,140,113,140,113,140,114,148,146,148,179,148,178,148,4,211,148,130,211,
+  156,211,148,5,211,156,8,243,156,131,244,156,19,157,19,157,15,20,165,129,
+  20,157,6,20,165,133,142,107,228,24,195,24,227,24,227,24,10,195,24,135,
+  163,24,130,16,195,24,197,73,131,65,164,57,196,65,6,34,41,143,66,41,
+  34,41,34,41,67,41,228,65,228,73,195,65,163,57,131,57,130,49,98,49,
+  66,49,67,41,66,41,67,41,15,34,41,148,66,41,67,41,34,41,34,41,
+  66,41,34,41,67,49,99,49,99,49,131,57,132,57,164,65,164,65,196,65,
+  197,65,196,65,197,73,196,73,197,73,196,73,3,164,65,138,132,57,132,57,
+  99,57,100,57,67,49,67,49,66,49,66,49,34,41,66,41,8,34,41,132,
+  66,41,34,41,34,41,35,41,4,34,41,161,35,41,34,41,34,41,66,41,
+  35,41,67,41,34,49,66,49,66,41,131,49,196,65,131,57,163,57,228,73,
+  37,82,37,82,102,90,37,82,4,82,99,57,34,41,66,49,66,49,34,41,
+  34,41,38,74,99,57,34,49,34,41,38,74,66,57,197,65,163,73,36,4,
+  138,12,91,12,91,12,99,12,99,12,91,12,99,12,99,44,99,44,99,12,
+  91,11,44,99,134,45,99,45,99,44,99,45,99,44,99,44,99,3,45,99,
+  129,44,99,7,45,99,131,44,99,44,99,45,91,3,45,99,131,44,99,45,
+  99,44,99,4,45,99,131,44,91,45,99,44,99,4,45,99,133,44,99,45,
+  99,45,99,77,99,44,99,9,45,99,129,77,99,7,45,99,134,77,99,44,
+  91,45,99,77,99,45,99,44,99,3,45,99,129,44,99,5,45,99,140,77,
+  99,45,99,45,91,77,99,45,91,45,91,77,91,44,99,45,91,45,91,45,
+  99,45,99,9,45,91,129,45,99,20,45,91,140,236,82,236,82,203,82,236,
+  90,45,91,77,91,175,99,241,115,82,116,114,124,114,116,146,124,4,147,124,
+  130,179,124,179,124,6,179,132,131,179,124,179,124,179,132,3,147,124,135,114,
+  116,146,116,114,116,146,124,146,132,179,140,179,148,4,179,140,131,211,140,179,
+  140,211,140,5,179,140,130,211,140,211,140,3,211,148,132,179,140,146,140,113,
+  124,81,124,3,49,124,133,17,116,240,115,17,108,82,116,179,124,3,212,132,
+  131,212,124,212,124,212,132,3,179,124,135,147,116,147,116,179,132,212,140,53,
+  149,89,182,170,82,3,105,74,130,106,74,106,74,3,138,74,133,106,74,138,
+  74,106,74,105,74,138,74,3,106,74,3,138,74,136,138,82,138,74,170,82,
+  139,82,203,82,171,74,240,107,244,140,3,212,132,5,244,132,130,212,132,212,
+  132,4,244,132,157,245,132,244,132,245,140,245,132,245,132,21,141,49,124,78,
+  91,106,74,200,49,232,57,9,58,8,58,9,58,232,49,8,58,232,57,200,
+  49,199,49,134,41,134,41,102,41,37,33,37,33,228,24,130,8,131,16,37,
+  33,37,33,4,69,33,151,70,41,70,41,69,41,70,41,69,33,37,33,37,
+  33,69,33,134,41,134,41,167,49,199,49,199,49,200,57,200,57,199,49,199,
+  57,167,57,167,49,134,49,134,49,102,41,102,41,4,69,41,132,37,33,37,
+  33,36,33,4,33,3,37,33,139,5,33,5,33,4,33,4,33,36,33,4,
+  33,5,33,5,33,4,33,4,33,4,25,3,4,33,3,4,25,3,4,33,
+  134,4,25,4,25,4,33,4,33,4,25,4,25,10,228,24,129,196,24,3,
+  228,24,132,196,24,228,24,196,24,228,24,4,196,24,133,228,16,195,16,195,
+  16,195,24,196,16,3,195,16,151,196,16,163,8,163,16,196,16,229,16,37,
+  25,70,33,103,41,103,41,103,33,136,41,103,33,104,41,78,91,49,108,114,
+  116,50,108,50,116,111,99,140,74,136,41,6,25,198,16,6,230,24,131,6,
+  25,6,25,6,33,5,6,25,129,230,24,5,6,25,142,201,49,212,140,45,
+  99,236,90,203,82,236,90,203,82,171,82,203,82,171,82,203,90,204,90,203,
+  90,203,82,3,236,90,133,12,91,12,99,12,99,239,123,211,148,3,179,148,
+  134,211,148,211,148,243,156,244,156,244,156,243,156,3,244,156,131,243,156,244,
+  156,20,157,4,244,156,130,212,148,212,140,5,212,132,147,179,124,147,124,147,
+  124,83,108,50,100,18,100,18,100,144,91,183,165,118,157,243,140,174,107,167,
+  49,199,49,134,41,102,41,134,41,166,49,167,41,4,167,49,15,199,49,135,
+  199,57,199,49,200,49,230,16,197,16,164,16,132,16,5,164,16,138,5,33,
+  236,98,81,140,179,156,146,148,81,140,81,140,114,140,146,148,178,148,4,211,
+  156,138,211,148,211,156,211,148,211,156,211,148,211,156,211,156,243,156,243,156,
+  211,156,7,243,156,131,244,156,20,157,20,157,12,20,165,3,20,157,7,20,
+  165,138,240,123,36,33,195,24,195,24,227,24,195,24,228,24,195,24,195,24,
+  227,24,5,195,24,140,163,24,130,16,163,24,197,65,164,73,131,49,229,73,
+  66,41,66,41,34,41,34,41,66,41,3,34,41,132,66,41,34,41,35,41,
+  66,41,6,34,41,132,66,41,34,41,34,41,66,41,4,34,41,149,66,41,
+  67,49,99,49,99,49,164,57,66,49,99,49,132,57,164,57,196,65,164,65,
+  196,65,131,57,164,57,196,65,197,73,196,65,196,65,197,73,197,73,196,65,
+  3,164,65,136,164,57,132,57,131,57,99,49,99,49,67,49,67,49,66,49,
+  11,34,41,149,66,41,34,41,66,41,34,41,34,41,67,49,67,49,34,41,
+  34,41,66,49,66,49,34,49,67,49,131,57,99,57,131,57,67,49,34,41,
+  66,49,66,49,67,41,3,66,49,142,34,49,131,49,37,82,228,73,4,74,
+  4,82,228,73,196,65,228,65,196,65,164,65,67,49,66,49,66,49,3,34,
+  41,136,229,65,164,73,34,49,34,41,197,57,164,65,99,49,5,74,8,4,
+  132,44,99,12,91,44,99,12,91,3,44,99,130,12,99,12,91,3,44,99,
+  130,45,99,45,99,4,44,99,130,45,99,44,99,3,45,99,130,44,99,44,
+  99,3,45,99,3,44,99,132,45,99,44,99,45,99,77,99,9,45,99,129,
+  44,99,20,45,99,129,45,91,3,45,99,129,77,99,3,45,99,129,77,99,
+  5,45,99,129,77,99,4,45,99,147,77,99,45,99,77,99,45,91,45,99,
+  45,99,77,99,77,99,45,99,45,99,44,99,45,99,45,99,45,91,77,99,
+  45,99,45,91,45,91,45,99,3,45,91,3,45,99,9,45,91,129,77,99,
+  8,45,91,129,77,91,9,45,91,146,236,82,204,82,204,82,12,91,45,91,
+  78,99,175,107,17,116,82,116,114,124,114,124,146,124,147,124,147,124,179,124,
+  179,132,179,132,179,124,3,179,132,3,179,124,129,179,132,3,179,124,139,147,
+  124,147,124,147,116,114,116,114,116,146,124,146,132,179,148,179,140,178,140,179,
+  140,6,211,140,141,179,140,179,140,211,140,211,148,211,140,211,148,211,140,211,
+  148,211,148,179,140,146,140,113,132,81,124,3,49,124,134,17,116,241,107,17,
+  108,114,116,179,124,212,132,3,212,124,130,212,132,212,124,3,179,124,138,147,
+  116,147,116,211,132,211,140,53,149,24,182,73,74,106,74,106,74,105,74,6,
+  106,74,131,138,74,106,74,138,74,3,106,74,5,138,74,136,170,82,138,74,
+  138,74,171,82,171,82,171,74,82,124,244,132,4,212,132,129,244,140,4,244,
+  132,147,245,140,244,132,245,132,245,140,244,140,244,132,245,140,245,132,245,132,
+  21,141,49,116,46,91,41,66,232,57,9,58,233,57,8,58,200,49,8,58,
+  3,232,57,138,199,49,167,49,135,49,102,41,102,41,69,33,37,33,228,24,
+  98,8,196,16,3,37,33,5,69,33,4,37,33,131,102,41,134,41,167,49,
+  3,199,49,141,200,57,199,49,199,57,199,49,167,49,135,49,134,41,102,41,
+  70,41,102,41,69,41,69,33,69,41,4,37,33,131,4,33,4,33,5,33,
+  11,4,33,3,4,25,141,228,24,228,24,4,25,228,24,4,33,4,33,228,
+  24,4,25,228,24,4,33,4,25,4,33,4,33,3,228,24,130,4,25,4,
+  25,6,228,24,131,196,16,196,16,228,24,5,196,24,129,196,16,3,195,16,
+  163,196,16,196,16,228,16,229,16,5,17,70,17,102,25,232,33,171,58,139,
+  58,103,33,71,33,39,33,39,33,7,25,7,33,230,24,7,33,7,25,230,
+  24,230,24,7,25,6,25,230,24,197,16,197,16,198,24,230,24,230,24,198,
+  16,198,16,231,24,198,24,230,24,230,24,8,6,25,3,230,24,3,6,25,
+  144,230,24,10,58,82,124,236,90,204,90,236,90,203,82,203,82,171,82,171,
+  82,138,74,171,82,171,82,204,82,203,82,204,90,3,236,90,132,12,99,13,
+  99,110,107,178,148,3,146,148,133,179,148,211,148,244,156,244,156,243,156,9,
+  244,156,134,20,157,244,156,212,148,212,140,212,132,212,140,3,212,132,148,180,
+  132,180,124,147,124,114,108,82,108,18,100,18,100,144,91,150,157,117,157,53,
+  149,16,116,166,49,199,49,134,49,102,41,134,41,167,49,167,49,166,49,4,
+  167,49,130,199,49,167,49,8,199,49,129,200,49,5,199,49,133,231,57,230,
+  16,198,16,165,16,131,16,5,164,16,141,5,33,236,90,49,140,179,156,146,
+  148,81,140,81,140,114,148,146,148,178,156,211,164,243,164,243,156,4,211,156,
+  134,211,148,243,156,211,156,243,156,211,156,211,156,7,243,156,130,244,156,20,
+  157,24,20,165,131,49,132,102,41,195,24,3,227,24,4,195,24,141,227,24,
+  195,24,227,24,195,24,227,24,195,24,162,16,162,16,165,57,196,73,99,49,
+  229,73,66,49,6,34,41,131,66,41,66,41,34,41,3,66,41,156,34,41,
+  66,49,131,57,131,57,66,49,66,41,98,49,99,49,99,49,131,57,99,49,
+  131,57,196,65,196,65,164,57,229,65,5,74,37,74,196,65,164,65,228,73,
+  196,65,38,82,196,73,5,74,164,65,131,57,164,65,3,131,57,132,99,49,
+  67,49,99,49,67,41,11,34,41,129,66,41,6,34,41,130,66,41,34,41,
+  3,66,41,153,34,41,66,41,34,41,99,49,197,65,164,65,229,65,229,73,
+  37,82,5,82,228,73,4,74,5,82,5,82,98,57,66,41,67,49,67,49,
+  66,41,66,49,67,49,67,49,34,41,66,49,99,49,3,67,49,129,67,41,
+  5,34,41,141,34,49,66,49,66,49,99,49,67,49,132,57,5,74,66,49,
+  34,41,100,49,5,82,34,49,5,74,73,4,134,44,99,44,99,12,91,12,
+  99,44,99,12,99,5,44,99,129,12,91,4,44,99,140,45,99,44,99,44,
+  99,45,99,44,99,44,99,45,99,44,99,44,99,45,99,45,99,44,99,13,
+  45,99,3,44,99,3,45,99,134,44,99,45,99,44,91,45,99,45,99,44,
+  99,10,45,99,130,45,91,44,99,7,45,99,149,44,99,45,99,45,99,77,
+  99,77,99,45,91,77,99,45,99,45,99,77,99,77,99,45,99,45,99,77,
+  99,45,99,45,99,77,91,77,99,45,91,45,99,45,99,3,45,91,143,45,
+  99,77,99,45,91,45,91,45,99,45,91,45,91,77,91,45,91,45,91,45,
+  99,45,99,45,91,45,91,45,99,3,45,91,129,12,91,11,45,91,129,44,
+  91,3,45,91,129,77,91,5,45,91,140,12,83,204,82,204,82,203,82,12,
+  91,45,91,110,99,208,107,49,116,114,124,114,124,146,124,4,147,124,131,179,
+  132,179,124,179,124,4,179,132,133,179,124,179,124,179,132,179,124,179,124,3,
+  147,124,137,147,116,114,116,114,124,146,124,178,140,178,140,179,140,179,140,211,
+  140,3,179,140,131,211,140,179,140,179,140,3,211,140,146,179,140,211,148,211,
+  140,211,148,211,140,211,148,179,140,146,132,81,132,49,124,49,124,81,124,49,
+  124,16,116,17,108,50,116,115,124,180,124,5,212,124,143,180,124,180,124,179,
+  124,179,124,115,116,147,124,179,132,20,149,85,149,150,165,41,66,106,74,138,
+  74,106,74,105,74,4,106,74,130,105,74,138,74,4,106,74,129,105,74,3,
+  106,74,6,138,74,132,170,82,171,82,236,82,179,132,3,212,132,150,244,132,
+  212,132,244,132,244,132,244,140,245,132,244,132,244,140,245,140,244,132,245,140,
+  245,132,244,132,245,140,244,132,21,141,17,116,13,91,41,58,41,58,232,57,
+  9,58,3,232,57,142,200,57,9,58,232,57,200,57,167,49,135,41,134,41,
+  102,41,69,33,37,33,37,33,196,16,130,8,228,24,4,37,33,129,69,33,
+  3,37,33,134,5,33,5,33,37,33,70,41,134,49,167,49,3,199,49,130,
+  199,57,232,57,4,167,49,133,134,41,102,41,70,41,69,41,69,33,3,37,
+  33,131,36,33,36,33,5,33,3,4,33,139,4,25,4,33,4,33,4,25,
+  228,32,4,33,4,33,228,32,4,33,4,33,4,25,10,228,24,132,4,25,
+  4,33,4,25,4,25,11,228,24,131,196,24,196,24,228,24,3,196,24,160,
+  228,24,4,25,37,25,70,33,135,41,135,41,167,49,168,49,103,41,42,58,
+  46,83,78,91,143,91,241,99,175,91,111,91,139,66,39,33,198,16,198,24,
+  230,24,231,24,199,24,231,24,230,24,7,25,230,24,198,24,230,24,230,16,
+  230,24,198,24,3,230,24,133,6,25,230,24,230,24,198,16,198,24,4,230,
+  24,130,6,25,6,25,4,230,24,129,6,25,3,230,24,3,6,25,138,198,
+  16,10,58,208,115,49,132,203,82,236,90,203,90,171,82,171,82,138,74,5,
+  171,82,135,204,82,204,90,236,90,236,90,12,99,13,99,77,99,3,178,148,
+  131,179,148,179,148,211,148,3,244,156,129,243,156,3,244,156,129,243,156,6,
+  244,156,129,244,148,4,212,140,156,212,132,212,132,180,132,148,124,147,124,115,
+  116,50,108,50,100,18,100,145,83,118,157,150,157,244,148,49,124,167,49,167,
+  49,166,49,102,41,134,41,167,49,166,41,166,49,167,49,167,49,199,49,167,
+  49,199,49,167,49,14,199,49,134,232,49,230,16,230,16,164,16,131,16,131,
+  16,4,164,16,138,5,25,171,90,16,140,179,156,146,148,81,140,113,140,81,
+  140,146,148,178,156,3,243,164,12,211,156,130,243,156,211,156,3,243,156,129,
+  244,156,16,20,165,133,19,157,19,157,20,157,243,156,211,156,4,243,156,134,
+  81,140,199,49,195,24,227,24,227,24,195,24,3,227,24,3,195,24,129,227,
+  24,3,195,24,135,162,16,130,16,101,49,229,81,98,49,228,65,131,57,3,
+  34,41,164,66,41,67,49,99,49,99,49,66,41,66,41,99,49,99,49,131,
+  49,99,49,66,41,196,65,228,73,196,65,228,73,196,65,228,65,196,65,228,
+  65,229,73,228,73,37,82,4,74,196,65,197,73,38,82,196,65,163,57,164,
+  65,196,65,99,49,164,57,131,57,99,49,99,57,66,41,9,34,41,129,66,
+  49,7,34,41,189,66,41,34,41,66,41,66,41,66,49,66,41,35,41,34,
+  41,34,41,66,41,34,49,66,41,34,41,66,41,34,41,66,41,34,41,67,
+  41,229,65,196,73,5,74,5,74,196,73,5,74,163,65,131,57,164,57,132,
+  57,66,49,66,41,34,41,34,41,66,41,66,49,67,41,34,41,67,49,34,
+  41,34,41,66,49,66,49,99,49,131,57,164,65,196,65,5,82,102,90,135,
+  98,201,114,233,122,42,131,139,147,199,130,65,65,70,82,66,57,34,41,35,
+  41,38,74,66,57,229,65,62,4,6,44,99,134,12,91,44,99,12,99,44,
+  99,44,99,12,91,7,44,99,130,45,99,44,99,5,45,99,129,44,99,5,
+  45,99,129,44,99,7,45,99,131,44,99,77,99,77,99,7,45,99,131,44,
+  99,45,99,77,99,6,45,99,129,45,91,5,45,99,139,44,99,45,99,77,
+  99,77,99,45,99,45,99,77,99,44,99,77,99,45,99,77,99,3,45,99,
+  133,77,99,44,99,45,99,44,99,45,99,3,77,99,130,45,99,77,99,3,
+  45,99,137,77,99,45,99,45,91,45,99,45,91,77,99,45,99,77,91,45,
+  99,6,45,91,133,45,99,45,91,45,99,45,91,44,91,19,45,91,129,45,
+  99,4,45,91,140,12,83,235,82,203,82,236,82,13,91,45,91,143,99,240,
+  107,49,116,114,124,114,124,146,124,4,147,124,129,179,124,3,179,132,136,179,
+  124,179,132,179,124,179,132,179,124,179,132,179,124,179,124,3,147,124,135,147,
+  116,114,124,114,124,147,132,178,140,178,140,179,148,4,179,140,132,179,148,179,
+  140,179,140,211,140,3,179,140,3,211,140,134,211,148,211,140,211,140,179,140,
+  146,140,81,124,4,49,124,133,240,115,17,108,82,116,147,124,180,124,3,212,
+  132,3,212,124,142,180,124,179,124,147,124,147,116,147,124,211,132,52,149,118,
+  157,211,148,41,66,105,74,138,74,105,74,105,74,7,106,74,137,105,74,106,
+  74,106,74,138,74,106,74,138,74,106,74,106,74,138,82,5,138,74,131,170,
+  82,170,82,77,91,3,212,132,7,244,132,130,245,132,244,132,3,245,132,150,
+  244,132,244,140,245,140,21,141,240,115,171,82,9,58,9,58,233,57,232,57,
+  232,57,8,58,9,58,9,58,232,57,8,58,199,49,167,49,135,41,135,41,
+  102,41,70,33,3,37,33,131,163,16,163,16,4,25,6,37,33,134,5,33,
+  4,25,37,33,37,33,102,41,134,41,3,167,49,137,199,49,199,57,199,49,
+  199,49,167,49,167,49,134,41,134,49,102,41,3,69,41,3,37,33,132,36,
+  33,4,33,4,33,4,25,3,4,33,130,228,32,4,33,6,228,24,130,228,
+  32,228,32,10,228,24,130,228,32,4,33,5,228,24,169,196,24,195,16,195,
+  16,196,24,196,24,228,24,4,25,4,25,37,25,5,25,37,25,102,33,233,
+  49,103,33,135,41,136,41,104,41,71,33,39,33,7,33,39,33,7,25,7,
+  25,39,33,72,33,104,33,71,33,38,25,230,24,230,24,198,16,230,24,231,
+  24,199,24,231,24,230,24,199,24,231,24,231,24,198,24,198,24,4,230,24,
+  161,198,24,198,24,230,24,198,24,230,24,230,24,198,16,230,24,198,24,230,
+  24,198,16,230,16,230,24,230,24,6,25,230,24,230,24,230,16,230,24,6,
+  25,6,25,230,24,6,25,230,24,230,24,6,25,197,16,10,58,81,124,16,
+  116,171,82,171,82,203,82,6,171,82,144,203,82,171,82,204,82,171,82,204,
+  90,236,90,236,90,12,91,45,99,146,140,244,156,211,148,211,148,211,156,244,
+  156,243,156,13,244,156,131,244,148,212,140,212,140,4,212,132,154,180,124,179,
+  124,147,124,115,116,50,108,18,100,18,100,145,83,54,149,150,157,20,149,113,
+  124,166,49,199,57,166,49,101,41,134,41,134,41,166,41,166,49,167,49,167,
+  41,166,49,199,49,199,49,167,49,14,199,49,148,231,57,230,16,230,16,165,
+  16,132,16,132,16,164,16,131,16,164,16,164,16,229,24,171,82,240,131,178,
+  156,146,148,81,140,81,140,113,140,114,148,178,148,6,211,156,129,243,156,4,
+  211,156,138,211,148,178,148,178,148,211,148,243,156,243,156,211,156,211,156,243,
+  156,211,156,16,20,165,129,19,157,3,243,156,137,211,156,211,156,243,156,211,
+  156,243,156,146,148,9,58,195,16,227,24,3,195,24,129,227,24,4,195,24,
+  129,227,24,3,195,24,171,162,16,130,16,68,41,5,82,66,49,228,65,164,
+  65,34,41,66,41,66,41,67,49,131,57,164,65,196,65,196,65,195,57,5,
+  74,5,74,228,73,196,65,99,57,131,57,196,65,196,65,37,82,228,73,196,
+  65,164,65,228,73,228,73,163,57,163,57,163,65,99,49,99,49,132,57,99,
+  49,66,49,67,49,66,49,66,49,66,41,66,41,7,34,41,135,66,41,34,
+  41,66,41,34,41,35,41,34,41,34,41,3,99,49,142,132,57,164,65,131,
+  57,196,65,228,65,228,65,99,49,34,41,66,49,34,41,66,41,66,41,34,
+  41,34,41,3,66,41,138,67,49,66,41,66,41,67,41,99,49,99,57,67,
+  49,67,49,34,41,66,41,5,34,41,129,66,41,3,66,49,156,34,41,66,
+  49,66,41,132,49,103,82,168,106,8,115,42,131,107,139,140,147,172,155,205,
+  155,237,163,172,155,140,147,14,156,14,164,107,147,75,139,172,147,98,73,38,
+  74,131,73,34,49,34,41,6,66,131,73,132,57,70,4,130,12,91,12,91,
+  3,44,99,130,12,99,44,99,3,12,99,129,12,91,4,44,99,129,13,99,
+  3,44,99,132,45,99,44,99,45,99,44,99,3,45,99,130,44,99,45,99,
+  3,44,99,3,45,99,129,77,99,3,45,99,143,44,99,44,99,77,99,77,
+  99,44,99,45,99,45,99,45,91,45,99,44,99,45,99,44,99,45,99,45,
+  99,45,91,5,45,99,129,77,99,6,45,99,130,77,99,44,99,3,77,99,
+  131,45,99,45,91,44,99,5,45,99,135,77,99,45,99,77,99,44,99,77,
+  99,45,99,77,99,4,45,99,138,77,99,45,99,77,99,45,99,45,91,45,
+  91,45,99,45,91,45,99,45,99,9,45,91,134,45,99,45,99,45,91,45,
+  91,45,99,45,99,22,45,91,140,236,90,236,82,203,82,236,90,13,91,45,
+  91,143,99,240,107,82,116,114,124,147,124,146,124,3,147,124,130,179,132,147,
+  132,3,179,132,135,147,124,179,124,179,124,179,132,179,132,179,124,179,124,4,
+  147,124,136,147,116,114,116,146,124,146,132,178,140,179,140,179,140,178,140,3,
+  179,140,129,211,140,3,179,140,130,211,140,179,140,3,211,140,143,211,148,211,
+  140,211,140,211,148,179,140,146,132,81,132,49,124,49,124,81,124,17,124,16,
+  116,17,108,82,116,147,124,5,212,132,129,212,124,3,180,124,136,147,124,147,
+  124,179,132,179,140,211,140,248,165,15,124,73,66,3,105,74,4,106,74,129,
+  105,74,4,106,74,136,138,74,105,74,106,74,105,74,106,74,106,74,138,74,
+  106,74,6,138,74,132,171,82,138,74,175,99,245,140,5,244,132,145,245,132,
+  244,132,244,140,244,132,244,132,245,132,245,132,245,140,20,133,245,132,245,132,
+  21,141,240,107,139,74,9,58,233,57,8,58,4,232,57,156,233,57,232,57,
+  232,57,199,49,200,49,167,49,134,41,102,41,70,33,70,33,37,33,5,25,
+  228,24,131,16,163,16,228,24,4,33,37,33,37,33,5,33,4,33,4,25,
+  228,24,4,25,69,33,102,41,134,41,135,49,4,167,49,129,199,49,3,167,
+  49,133,134,41,102,41,102,41,69,41,69,41,4,37,33,137,4,33,4,33,
+  4,25,4,25,228,32,228,32,228,24,228,24,4,33,9,228,24,131,228,32,
+  228,24,228,32,4,228,24,129,4,25,6,228,24,178,5,33,70,33,135,41,
+  168,49,200,49,232,57,136,41,233,49,171,66,171,66,236,74,237,74,45,83,
+  237,74,75,58,6,25,230,24,231,24,230,24,7,33,7,25,7,25,7,33,
+  7,25,7,33,7,33,6,25,230,24,6,25,230,24,230,24,231,24,231,24,
+  230,24,198,24,230,24,230,24,199,24,231,24,231,24,230,24,198,24,198,24,
+  230,24,198,24,230,24,198,24,230,24,198,16,198,24,5,198,16,132,230,24,
+  230,24,198,16,198,16,7,230,24,129,6,25,6,230,24,132,198,16,201,49,
+  143,99,110,107,4,171,82,132,138,82,171,82,139,82,139,82,4,171,82,136,
+  203,82,171,90,204,90,236,90,12,91,12,91,16,132,20,157,12,244,156,129,
+  243,156,5,244,156,129,244,148,4,212,140,149,212,132,212,132,180,132,180,124,
+  147,124,115,116,82,100,18,100,18,100,144,83,21,149,150,165,20,149,114,124,
+  166,49,167,49,167,49,69,41,134,41,134,41,166,41,3,167,49,129,199,49,
+  3,167,49,4,199,49,129,167,49,10,199,49,133,230,16,231,16,197,16,164,
+  16,131,16,4,164,16,145,229,24,106,74,239,131,146,148,146,148,82,140,81,
+  140,113,140,114,148,146,148,146,148,178,148,179,148,211,148,211,156,211,156,243,
+  156,4,211,156,132,178,148,146,140,146,140,178,148,3,211,156,132,178,148,179,
+  148,211,148,243,156,15,20,165,129,19,157,3,243,156,129,211,156,3,243,156,
+  134,20,165,211,156,203,82,195,24,228,24,227,24,5,195,24,129,227,24,6,
+  195,24,160,130,16,4,33,5,82,131,57,196,57,196,65,34,41,66,41,164,
+  57,196,65,164,65,228,73,196,65,196,73,195,65,228,73,5,74,195,65,131,
+  57,131,57,66,49,98,49,98,49,131,57,99,57,67,49,66,41,99,49,131,
+  57,66,49,66,41,66,49,4,34,41,138,66,41,34,41,66,41,34,41,67,
+  41,34,41,66,41,99,49,67,49,66,41,3,99,49,141,34,41,34,41,66,
+  49,34,41,67,41,34,41,66,41,99,49,229,73,228,73,37,82,70,90,229,
+  73,3,228,73,131,131,57,67,49,34,41,4,66,41,133,34,41,66,41,66,
+  49,66,41,67,49,5,34,41,150,67,49,99,49,132,57,164,65,229,73,6,
+  82,71,90,136,98,201,106,10,115,9,123,130,73,66,49,67,49,66,49,34,
+  41,99,49,173,115,14,156,46,164,46,164,47,172,4,46,172,143,9,139,233,
+  114,75,123,46,156,168,114,201,122,140,123,228,105,164,73,196,73,34,49,34,
+  41,164,49,228,81,67,57,57,4,3,12,99,131,44,99,44,99,12,91,5,
+  44,99,136,12,99,44,99,44,99,12,99,45,99,44,99,44,99,45,99,3,
+  44,99,3,45,99,135,44,99,44,99,45,99,77,99,44,99,45,99,44,99,
+  6,45,99,129,44,91,5,45,99,134,77,99,45,99,45,99,44,99,44,99,
+  45,91,3,45,99,129,77,99,5,45,99,137,44,99,45,99,45,99,77,99,
+  45,91,77,99,45,99,45,99,77,99,3,45,99,147,77,99,45,99,77,99,
+  45,99,77,99,44,99,45,91,77,99,45,99,45,99,45,91,45,91,45,99,
+  45,99,77,99,45,99,77,99,45,99,45,99,7,45,91,134,77,99,45,91,
+  45,99,45,99,45,91,45,99,15,45,91,129,45,99,17,45,91,139,236,82,
+  236,82,203,82,236,90,12,91,77,91,143,99,240,107,82,116,114,124,146,124,
+  5,147,124,131,179,132,179,124,179,124,3,179,132,129,179,124,3,179,132,5,
+  147,124,132,115,116,114,116,146,132,178,132,7,179,140,129,211,140,4,179,140,
+  6,211,140,133,211,148,211,148,178,140,146,140,81,124,3,49,124,134,16,124,
+  16,116,17,116,114,116,179,124,212,124,4,212,132,139,212,124,180,124,180,124,
+  179,124,147,124,147,116,179,124,211,140,53,149,248,173,109,107,3,105,74,133,
+  106,74,106,74,138,74,106,74,138,74,12,106,74,130,138,74,106,74,3,138,
+  74,136,106,74,138,74,138,74,171,82,139,74,49,116,244,132,212,132,8,244,
+  132,172,245,132,245,132,21,141,245,132,245,140,21,141,21,141,175,107,41,66,
+  41,66,9,58,9,66,9,58,232,49,232,57,8,58,233,57,232,57,232,57,
+  200,49,167,49,135,41,167,49,102,41,102,41,70,33,37,33,37,33,4,25,
+  196,16,163,16,163,16,228,24,4,33,4,25,5,33,228,24,228,24,196,24,
+  5,33,70,33,102,41,134,49,135,49,4,167,49,136,199,49,167,49,167,49,
+  135,49,135,41,102,41,70,41,69,41,3,37,33,131,5,33,4,33,4,33,
+  13,228,24,129,196,24,3,228,24,170,196,24,196,24,228,24,228,24,4,33,
+  37,33,69,33,69,41,102,33,134,33,167,41,103,41,201,57,233,57,201,49,
+  136,41,136,41,104,41,71,33,39,33,39,33,103,41,168,41,201,49,168,41,
+  136,41,71,33,39,25,6,25,6,25,7,25,7,33,7,25,7,25,7,33,
+  7,25,7,25,7,33,7,25,7,25,230,24,7,25,3,230,24,139,231,24,
+  231,24,230,24,231,24,231,24,230,24,230,24,231,24,198,24,198,24,230,24,
+  3,198,16,3,198,24,142,198,16,198,24,166,16,198,16,198,16,198,24,198,
+  24,198,16,198,24,198,16,197,16,198,16,198,24,198,24,12,230,24,131,169,
+  49,208,107,78,99,3,203,82,134,171,82,139,74,139,82,171,82,170,74,138,
+  74,4,171,82,136,203,82,203,82,204,90,12,91,13,91,175,115,244,156,244,
+  156,3,243,156,3,244,156,135,20,157,243,156,243,156,244,156,244,156,243,156,
+  20,157,4,244,156,131,211,148,212,140,212,140,4,212,132,149,180,132,180,124,
+  147,124,115,116,50,108,50,100,18,100,145,83,21,149,183,165,85,149,179,132,
+  199,57,167,49,167,49,101,41,134,41,134,41,166,49,134,49,166,49,3,167,
+  49,130,199,49,167,49,14,199,49,133,232,57,230,16,230,16,198,16,164,16,
+  3,132,16,139,164,16,196,16,196,24,74,66,175,123,146,148,146,148,81,140,
+  81,140,113,140,113,148,3,146,148,134,178,148,179,148,211,148,211,156,243,156,
+  243,156,3,211,156,132,178,148,146,140,114,140,178,148,3,211,156,132,178,148,
+  178,148,211,148,211,156,11,20,165,129,20,157,6,20,165,140,244,156,244,156,
+  20,165,20,165,52,165,52,165,20,165,109,99,195,16,195,24,227,24,228,24,
+  8,195,24,151,196,24,195,24,195,24,130,16,195,24,229,73,163,65,164,57,
+  228,73,66,49,34,41,197,65,229,73,99,49,131,57,131,57,99,49,99,57,
+  98,49,131,49,67,49,66,49,66,49,3,66,41,135,34,41,34,41,66,41,
+  34,41,34,41,66,41,66,49,3,66,41,131,67,41,131,49,67,49,3,99,
+  49,3,131,57,137,99,49,197,65,196,65,164,57,229,73,38,82,228,73,131,
+  57,66,49,4,66,41,139,67,41,66,49,132,57,131,57,164,65,164,65,99,
+  49,99,49,67,49,67,49,66,41,5,34,41,142,66,41,66,41,34,49,34,
+  41,66,41,67,41,229,65,71,82,136,90,169,106,233,114,42,123,75,131,107,
+  139,3,140,147,135,205,155,14,164,172,155,108,139,13,156,228,97,34,49,3,
+  66,41,131,67,41,11,99,79,156,3,46,164,3,46,172,144,78,172,107,155,
+  10,131,42,131,14,156,139,147,107,147,237,155,199,138,66,65,38,82,66,57,
+  66,49,66,41,70,82,66,57,58,4,135,12,99,12,99,12,91,44,99,12,
+  99,44,99,12,99,7,44,99,133,12,99,44,99,45,99,45,99,44,99,6,
+  45,99,129,44,99,6,45,99,129,44,99,6,45,99,129,44,91,3,45,99,
+  129,77,99,4,45,99,129,44,91,13,45,99,132,77,99,45,99,45,99,77,
+  99,4,45,99,3,77,99,132,45,99,45,99,77,99,77,99,3,45,99,129,
+  77,99,3,45,99,132,77,99,45,99,77,99,44,99,3,45,99,129,77,99,
+  3,45,91,129,77,91,3,45,91,133,45,99,45,91,77,91,45,99,44,91,
+  19,45,91,129,44,91,12,45,91,3,236,82,137,12,91,13,91,77,99,175,
+  99,17,108,82,116,114,124,147,124,146,124,3,147,124,132,179,132,179,132,179,
+  124,179,124,6,179,132,138,179,124,179,124,147,124,147,132,147,124,147,124,115,
+  116,114,116,146,132,178,140,3,179,140,130,178,140,179,140,3,211,140,132,179,
+  140,211,140,179,140,179,140,3,211,140,135,211,148,211,140,211,140,211,148,211,
+  148,178,140,114,132,4,49,124,133,17,124,241,115,49,116,115,124,179,124,4,
+  212,132,143,212,124,212,124,180,124,179,124,179,124,147,116,147,116,211,132,211,
+  140,20,141,57,182,170,82,105,74,106,74,105,74,4,106,74,131,105,74,106,
+  74,138,74,3,106,74,130,138,74,138,74,3,106,74,129,105,74,7,138,74,
+  183,106,74,106,74,138,74,170,82,203,74,146,124,245,140,244,132,244,132,245,
+  132,245,132,244,140,245,140,244,132,244,132,245,132,21,133,245,132,244,132,21,
+  141,245,140,53,141,143,99,41,58,9,58,41,66,9,66,232,49,200,49,9,
+  58,232,57,232,57,8,58,232,57,232,57,200,49,200,49,167,49,135,49,102,
+  41,70,33,69,33,38,33,5,25,228,24,196,16,195,16,195,24,228,24,4,
+  25,228,24,196,24,195,16,228,24,37,33,3,102,41,132,134,41,134,49,167,
+  49,135,49,4,167,49,129,135,49,3,102,41,143,69,41,69,41,69,33,37,
+  33,4,33,5,33,4,33,228,24,228,32,228,24,227,24,228,24,227,24,195,
+  24,228,24,4,196,24,148,195,24,228,24,228,24,37,33,70,33,103,41,135,
+  41,103,41,200,49,41,58,74,66,139,66,107,66,139,74,107,66,233,49,38,
+  33,6,25,39,33,7,33,7,39,33,151,7,33,39,33,7,33,39,33,7,
+  33,7,25,7,25,39,33,7,33,7,25,6,25,7,25,7,25,231,24,7,
+  25,7,25,230,24,230,24,6,25,7,25,230,24,230,24,231,24,3,230,24,
+  141,199,24,231,24,230,24,230,24,198,24,198,24,198,16,198,16,198,24,198,
+  16,198,16,198,24,198,24,8,198,16,138,197,16,198,16,198,24,230,24,198,
+  16,198,24,230,24,198,24,230,24,229,16,3,230,24,129,6,25,3,230,24,
+  133,6,25,230,16,136,41,114,132,13,91,4,171,82,133,138,74,106,74,138,
+  74,138,74,139,74,5,171,82,137,203,82,236,90,236,90,13,99,77,107,243,
+  156,244,156,243,156,243,156,3,244,156,130,19,157,243,156,3,244,156,132,243,
+  156,243,156,20,157,243,156,3,244,156,129,244,148,3,212,140,3,212,132,140,
+  180,124,180,124,147,124,115,116,82,108,50,100,18,100,145,83,212,140,215,165,
+  244,148,179,140,3,199,57,137,101,41,134,41,134,41,166,41,166,41,166,49,
+  166,49,167,49,167,49,11,199,49,129,167,49,4,199,49,133,200,57,7,25,
+  231,16,198,16,165,8,4,164,16,144,197,24,229,24,41,66,175,123,146,148,
+  146,148,81,140,81,140,113,140,114,148,114,148,146,148,178,148,179,148,179,148,
+  211,148,3,211,156,142,243,156,211,156,211,156,178,148,178,148,146,148,211,156,
+  211,156,243,156,211,156,211,148,211,156,211,156,243,156,21,20,165,3,52,165,
+  133,52,173,207,115,228,24,195,24,227,24,6,195,24,147,227,24,195,24,227,
+  24,227,24,195,24,163,24,130,16,163,24,197,65,196,73,163,57,229,73,66,
+  49,34,41,196,57,229,73,66,49,66,49,98,49,11,66,41,154,35,41,66,
+  41,66,49,66,41,66,41,34,41,66,49,66,41,66,41,99,49,196,65,196,
+  65,5,74,5,74,4,74,4,74,4,82,4,74,163,65,196,65,196,65,164,
+  57,196,65,229,73,163,57,99,49,5,66,41,7,34,41,138,67,41,99,49,
+  132,49,164,57,197,65,6,74,71,82,136,98,201,106,229,81,3,66,49,156,
+  66,41,34,41,168,90,238,147,14,156,46,164,13,164,107,147,14,156,173,155,
+  75,139,107,139,42,131,10,123,79,164,9,131,233,122,74,123,135,114,34,57,
+  66,49,66,49,66,41,34,41,72,74,47,156,46,164,78,164,4,46,172,132,
+  47,172,78,172,14,164,46,164,3,46,172,137,46,164,106,155,65,73,39,74,
+  98,65,66,49,34,41,38,74,99,65,98,4,137,44,99,12,99,12,99,44,
+  99,12,99,12,91,44,99,44,99,45,99,5,44,99,130,45,99,44,99,3,
+  45,99,138,44,99,44,99,45,99,45,99,44,99,44,99,45,99,45,99,77,
+  99,44,99,4,45,99,129,44,99,8,45,99,130,44,99,45,91,3,45,99,
+  129,45,91,4,45,99,129,77,99,6,45,99,130,77,99,77,99,3,45,99,
+  137,77,99,45,91,77,99,45,99,77,99,45,99,45,99,77,99,77,99,3,
+  45,99,130,77,99,77,99,3,45,99,3,77,99,131,45,91,77,99,77,99,
+  3,45,99,138,45,91,45,99,45,91,45,91,77,91,77,99,45,91,45,99,
+  45,91,45,99,3,45,91,130,45,99,45,99,4,45,91,129,45,99,17,45,
+  91,129,77,91,7,45,91,129,12,83,3,236,82,135,12,91,45,91,110,99,
+  208,107,49,116,82,124,114,124,4,147,124,129,179,124,3,179,132,132,179,124,
+  179,124,179,132,179,124,3,179,132,130,179,124,179,124,3,147,124,132,146,124,
+  114,116,146,124,147,132,8,179,140,137,178,140,211,140,211,140,179,140,179,140,
+  146,140,146,140,179,140,211,140,4,211,148,131,146,140,113,132,81,132,3,49,
+  124,133,240,115,241,107,82,116,147,124,180,124,3,212,132,130,212,124,212,124,
+  3,180,124,139,179,124,147,116,147,124,179,132,211,140,20,149,24,182,73,74,
+  106,74,106,74,105,74,3,106,74,134,138,74,106,74,105,74,106,74,106,74,
+  138,74,8,106,74,133,138,74,138,74,106,74,138,74,138,74,3,106,74,134,
+  138,74,138,74,138,82,13,83,212,132,245,140,3,244,132,130,245,132,245,132,
+  3,245,140,139,21,141,245,140,20,133,245,140,245,140,244,140,78,99,41,58,
+  41,66,232,57,9,58,3,233,57,144,232,57,232,57,200,57,232,57,200,57,
+  200,49,199,49,167,49,135,41,134,41,70,41,69,33,69,33,37,33,5,25,
+  5,33,4,228,24,134,196,24,195,16,195,24,4,25,37,33,70,41,3,102,
+  41,175,134,41,135,49,135,49,167,49,167,49,135,49,135,49,134,49,102,41,
+  102,41,70,41,69,33,37,33,36,33,5,33,4,33,4,33,228,32,228,24,
+  228,24,227,24,228,24,228,24,4,25,5,33,5,33,70,33,102,41,70,33,
+  103,33,201,49,201,49,169,49,168,49,136,41,104,41,39,33,39,33,103,41,
+  168,49,168,49,168,41,136,41,71,33,39,25,6,25,7,25,3,39,33,131,
+  39,25,39,33,7,25,4,39,33,129,6,25,3,39,33,131,7,33,39,33,
+  39,33,3,7,25,130,7,33,7,25,4,231,24,144,230,24,230,24,6,25,
+  6,25,231,24,231,24,230,24,230,24,198,24,230,24,231,24,230,24,230,24,
+  198,16,198,24,198,24,4,198,16,141,198,24,198,24,198,16,198,24,198,16,
+  198,24,198,16,198,24,198,16,230,24,197,16,198,16,197,16,4,198,24,130,
+  197,16,197,16,11,230,24,131,136,41,17,116,203,82,4,171,82,130,139,74,
+  106,74,3,138,74,129,171,74,4,171,82,135,203,82,236,90,236,90,13,99,
+  12,99,146,148,20,157,3,244,156,138,19,157,244,156,244,156,243,156,244,156,
+  20,157,244,156,244,156,243,156,19,157,4,244,156,129,244,148,3,212,140,3,
+  212,132,144,180,132,179,124,147,116,115,116,82,108,50,100,18,100,177,91,212,
+  140,248,165,20,149,211,140,232,57,167,57,167,49,101,41,3,134,41,139,167,
+  41,166,49,167,49,167,49,199,49,199,49,167,49,167,49,166,49,199,49,167,
+  49,10,199,49,152,199,57,7,25,231,16,198,16,165,8,132,16,164,16,164,
+  16,165,16,165,16,197,16,233,57,142,115,114,148,146,148,81,140,81,140,113,
+  148,114,148,114,148,146,148,178,148,179,148,211,148,6,211,156,131,243,156,211,
+  156,211,148,3,211,156,5,243,156,23,20,165,3,52,165,130,49,132,37,33,
+  4,195,24,130,227,24,227,24,5,195,24,145,227,24,227,24,195,24,162,16,
+  162,16,197,65,229,73,131,57,229,73,98,57,34,41,164,57,5,74,66,49,
+  66,49,66,41,34,41,3,66,41,129,67,41,4,66,41,136,67,41,67,41,
+  66,41,67,41,66,41,66,49,66,41,66,49,3,66,41,141,67,49,196,65,
+  195,65,228,73,228,73,195,65,163,65,163,57,131,57,98,49,99,49,99,49,
+  34,41,3,66,41,129,34,41,3,66,41,198,67,41,67,41,99,49,197,65,
+  6,74,70,82,103,98,168,106,233,114,10,123,43,131,108,139,108,147,173,147,
+  237,155,205,155,172,155,173,155,9,139,65,57,66,49,66,49,67,49,34,41,
+  39,74,47,156,78,164,46,172,78,172,10,139,140,131,140,147,43,131,140,139,
+  42,131,201,106,14,156,172,147,75,139,140,139,74,147,66,65,66,49,67,49,
+  67,49,34,41,197,57,14,140,78,164,46,164,46,164,13,164,237,163,237,155,
+  204,147,140,139,74,139,42,131,233,114,168,106,135,98,70,82,229,73,34,49,
+  229,65,196,73,66,49,34,41,197,57,196,73,89,4,130,12,99,12,99,14,
+  44,99,129,45,99,6,44,99,129,45,99,3,44,99,131,45,99,44,99,44,
+  99,8,45,99,129,44,99,3,45,99,129,44,99,4,45,99,129,77,99,4,
+  45,99,129,44,99,4,45,99,134,44,99,45,99,77,99,45,99,77,99,77,
+  99,5,45,99,132,77,99,45,99,77,99,45,91,3,77,99,3,45,99,150,
+  45,91,77,99,45,99,45,99,77,91,45,99,45,99,77,99,45,91,77,99,
+  77,99,45,91,45,91,77,99,45,99,45,99,45,91,45,99,45,99,45,91,
+  77,91,45,99,3,45,91,129,45,99,3,45,91,131,45,99,45,91,45,99,
+  7,45,91,129,45,99,4,45,91,130,45,83,13,91,4,45,91,129,45,99,
+  6,45,91,139,12,83,236,82,204,82,236,90,12,91,45,91,142,99,240,107,
+  50,116,114,116,146,124,4,147,124,131,179,124,179,132,179,124,4,179,132,129,
+  179,124,3,179,132,130,179,124,179,124,3,147,124,135,147,116,114,116,146,124,
+  146,132,179,140,179,140,211,140,4,179,140,4,211,140,155,179,140,146,140,81,
+  132,81,132,114,132,179,140,211,148,243,148,211,148,179,148,146,140,81,132,49,
+  124,49,124,81,124,49,124,240,115,17,116,82,116,147,124,180,124,212,124,244,
+  132,212,132,212,132,212,124,212,132,3,180,124,140,147,124,147,116,211,132,244,
+  140,20,141,182,165,41,66,105,74,105,74,106,74,106,74,138,74,5,106,74,
+  130,138,74,138,74,5,106,74,132,105,74,106,74,138,74,138,74,4,106,74,
+  130,106,66,106,66,3,106,74,134,139,74,138,74,143,99,244,140,245,132,244,
+  132,5,245,132,129,244,140,4,245,140,168,21,141,147,132,77,99,200,49,9,
+  58,232,57,9,58,232,49,9,58,232,49,232,57,232,57,200,57,232,57,200,
+  49,232,57,199,49,135,49,135,49,134,41,102,41,69,33,70,33,70,33,37,
+  33,37,33,4,25,228,24,37,33,196,24,163,16,163,16,195,16,37,33,37,
+  33,69,33,70,41,70,41,102,41,134,41,3,135,49,137,134,49,134,49,134,
+  41,134,41,102,41,102,41,69,41,37,33,37,33,4,4,33,145,37,33,69,
+  33,69,33,102,41,200,49,232,49,233,49,9,58,74,58,106,66,42,58,104,
+  33,39,33,40,33,40,33,39,33,39,33,3,40,33,130,39,33,39,33,4,
+  7,25,131,39,33,39,33,7,33,3,39,33,129,7,33,6,39,33,129,7,
+  33,3,39,33,130,7,33,7,33,5,7,25,129,7,33,4,7,25,132,231,
+  24,230,24,230,24,231,24,3,230,24,135,231,24,230,24,230,24,198,24,198,
+  24,198,16,198,16,4,198,24,130,198,16,198,24,4,198,16,131,198,24,230,
+  24,198,24,3,198,16,137,198,24,198,24,198,16,198,24,198,16,198,16,197,
+  16,230,24,198,24,5,230,24,129,6,25,6,230,24,141,234,57,49,124,143,
+  99,171,82,171,82,139,74,139,82,139,82,139,74,139,74,106,74,138,74,139,
+  74,4,171,82,135,203,82,204,90,236,90,13,99,236,90,48,132,20,157,3,
+  244,156,129,243,156,13,244,156,129,212,148,4,212,140,161,212,132,212,132,180,
+  132,180,124,147,124,115,116,83,108,50,100,18,100,177,91,180,132,247,165,85,
+  149,211,140,8,66,199,57,167,49,102,41,134,41,134,41,166,41,166,41,167,
+  49,166,49,167,49,166,49,199,49,167,49,199,49,167,49,167,49,199,49,167,
+  49,9,199,49,155,231,57,7,25,231,16,230,16,165,16,165,16,164,16,132,
+  16,165,16,165,8,165,16,200,49,110,115,113,148,146,148,113,140,113,140,113,
+  148,114,148,146,148,146,148,178,148,179,148,211,148,211,148,211,156,211,148,5,
+  211,156,7,243,156,130,244,156,244,156,22,20,165,3,52,165,132,84,165,114,
+  140,167,41,195,24,3,227,24,135,195,24,195,24,227,24,195,24,195,24,227,
+  24,227,24,3,195,24,149,163,24,130,16,132,49,6,82,99,49,229,73,131,
+  65,34,41,99,49,5,74,99,49,66,41,66,41,67,41,66,41,66,49,66,
+  41,67,41,66,41,67,41,66,49,3,66,41,129,34,41,4,66,41,213,67,
+  49,66,41,67,41,34,41,66,41,99,49,67,49,66,49,66,49,66,41,34,
+  41,34,41,67,49,67,49,99,57,131,57,196,57,229,65,6,74,71,82,103,
+  90,130,57,66,41,66,49,67,41,34,41,132,49,43,115,205,147,205,155,14,
+  164,13,164,46,164,237,163,140,147,173,147,172,147,140,139,79,164,78,164,172,
+  155,75,131,139,147,130,73,66,49,66,49,67,41,66,49,164,57,238,139,79,
+  164,46,164,78,172,237,163,172,147,13,164,172,147,46,164,14,164,237,163,78,
+  172,78,172,14,164,47,172,236,163,131,81,66,49,66,49,67,49,34,49,99,
+  49,233,98,233,114,200,106,135,98,70,90,37,74,4,74,196,65,132,57,99,
+  49,66,49,66,41,34,41,33,41,3,34,41,134,132,57,37,82,34,57,66,
+  49,99,49,6,74,82,4,4,12,99,133,12,91,45,99,45,99,44,99,12,
+  91,4,44,99,134,45,99,45,99,12,99,44,99,45,99,45,99,4,44,99,
+  5,45,99,129,44,99,8,45,99,132,45,91,45,99,44,91,77,99,3,45,
+  99,140,44,99,44,91,44,91,45,99,45,99,44,99,77,99,44,99,45,99,
+  45,99,44,99,77,99,13,45,99,130,77,99,45,99,3,77,99,132,45,99,
+  45,99,77,99,77,99,3,45,99,130,77,91,44,91,4,45,99,129,77,99,
+  4,45,99,139,44,91,45,99,45,91,45,99,45,99,45,91,45,91,45,99,
+  45,91,45,91,45,99,3,45,91,3,45,99,130,45,91,45,99,8,45,91,
+  129,13,91,3,45,91,129,13,91,9,45,91,130,77,91,45,91,3,236,82,
+  136,236,90,45,91,78,99,175,99,16,116,82,116,114,124,115,124,3,147,124,
+  137,147,132,147,124,179,124,179,124,179,132,179,132,180,132,179,124,179,124,4,
+  179,132,129,179,124,3,147,124,132,115,124,114,116,146,124,147,132,4,179,140,
+  141,178,140,179,140,179,140,211,140,179,140,179,140,211,140,178,140,113,132,239,
+  123,16,116,81,124,178,140,3,211,148,131,179,140,114,132,81,132,4,49,124,
+  135,240,115,17,116,82,116,147,124,212,132,212,132,212,124,3,212,132,150,212,
+  124,180,124,179,124,180,124,147,116,147,124,211,132,52,149,150,157,243,148,41,
+  66,138,74,138,74,106,74,105,74,138,74,138,74,106,74,106,74,105,74,106,
+  74,138,74,4,106,74,131,105,74,105,74,138,74,7,106,74,129,105,66,5,
+  106,74,167,171,82,138,74,240,107,21,141,245,140,244,132,245,132,245,140,245,
+  132,245,132,245,140,245,132,21,133,245,140,245,132,21,141,49,124,74,66,9,
+  58,41,58,8,58,9,66,232,57,232,57,8,58,232,57,232,57,167,49,200,
+  57,200,57,199,49,168,49,167,49,167,41,135,41,102,41,70,33,70,41,70,
+  33,3,69,33,138,5,33,167,49,134,41,163,16,163,16,228,24,37,33,37,
+  33,69,33,70,41,3,102,41,4,134,41,150,167,49,167,49,135,49,167,49,
+  134,41,134,41,70,41,103,41,167,49,135,49,168,49,136,49,168,49,168,49,
+  136,41,168,49,233,49,233,49,233,57,168,41,136,41,71,33,3,39,33,132,
+  72,33,39,33,39,33,71,33,4,39,33,133,40,33,39,33,39,33,7,25,
+  7,25,5,7,33,132,39,33,7,33,7,33,7,25,3,39,33,134,7,25,
+  231,24,7,25,7,33,39,33,39,33,6,7,25,147,231,24,7,25,7,25,
+  230,24,231,24,230,24,7,25,230,24,230,24,231,24,231,24,198,16,230,24,
+  230,24,198,24,230,24,198,24,198,24,230,16,3,198,24,131,198,16,198,16,
+  198,24,5,198,16,133,230,24,198,16,230,24,198,16,198,24,3,198,16,134,
+  197,16,198,16,198,16,230,24,230,16,197,16,7,230,24,136,6,25,6,25,
+  230,24,6,25,230,24,201,49,179,140,114,132,3,171,82,146,139,74,171,82,
+  106,74,138,74,106,74,138,74,106,74,171,74,139,74,171,82,138,82,171,82,
+  204,82,236,90,12,91,12,91,207,115,20,157,17,244,156,132,211,148,212,140,
+  212,140,244,140,3,212,132,151,180,132,180,124,148,124,115,116,82,108,50,100,
+  18,92,209,83,148,124,247,165,20,149,20,149,8,58,167,49,199,49,102,41,
+  102,41,134,41,167,41,134,41,167,41,167,49,166,41,3,167,49,130,199,49,
+  167,49,5,199,49,129,167,49,6,199,49,134,231,57,39,25,231,16,198,16,
+  165,16,164,16,4,165,16,135,165,8,136,41,78,107,81,140,146,148,113,148,
+  81,140,3,114,148,136,146,148,178,148,178,148,211,148,211,156,211,148,211,156,
+  243,156,5,211,156,6,243,156,131,244,156,20,165,19,157,21,20,165,135,52,
+  165,52,165,20,165,52,165,178,148,8,58,195,24,4,227,24,131,228,24,228,
+  24,227,24,5,195,24,150,227,24,163,16,130,16,68,41,6,82,98,57,228,
+  65,164,65,34,41,99,49,5,74,131,57,66,41,66,49,66,49,66,41,67,
+  49,66,41,67,41,67,41,66,41,67,49,9,66,41,151,67,41,34,41,66,
+  41,66,41,99,49,164,57,196,65,6,74,70,82,103,90,168,98,201,106,10,
+  123,74,131,42,131,140,139,173,147,140,147,140,147,205,147,70,98,66,49,67,
+  49,3,66,41,131,75,115,78,164,79,172,3,78,172,140,46,172,75,139,107,
+  139,237,155,233,122,46,156,46,164,237,163,108,139,14,164,228,89,34,49,3,
+  66,49,155,67,49,140,115,79,164,79,164,78,164,46,172,46,164,14,164,237,
+  155,237,155,205,147,172,147,107,131,42,123,10,123,200,106,167,98,131,57,66,
+  49,66,49,67,49,67,49,67,41,99,49,67,41,34,41,2,41,4,34,41,
+  143,99,49,131,57,164,65,228,73,38,82,70,90,135,98,232,114,135,114,66,
+  65,70,82,66,57,66,49,34,41,38,74,89,4,134,12,99,44,99,12,99,
+  44,99,44,99,12,91,5,44,99,129,45,99,3,44,99,3,45,99,132,44,
+  99,45,99,44,99,44,99,7,45,99,129,44,99,3,45,99,133,77,99,44,
+  99,45,99,45,99,77,99,4,45,99,137,77,99,45,99,77,99,44,99,45,
+  99,45,99,45,91,45,99,44,91,5,45,99,138,77,99,45,99,45,99,77,
+  99,45,99,45,91,45,99,77,99,77,99,44,99,4,45,99,132,77,99,77,
+  99,45,99,45,99,5,77,99,137,45,99,77,99,45,99,45,91,45,99,45,
+  91,44,91,45,99,77,99,3,45,99,134,45,91,45,91,45,99,45,99,77,
+  99,77,99,4,45,91,132,77,99,45,91,45,91,45,99,7,45,91,129,44,
+  91,15,45,91,129,45,99,3,45,91,141,77,91,45,91,45,91,236,82,236,
+  82,204,82,12,91,45,99,78,99,175,107,17,116,82,116,114,124,3,147,124,
+  133,147,132,179,132,179,132,179,124,179,124,3,179,132,129,180,132,4,179,132,
+  3,179,124,134,147,124,147,124,115,116,114,116,146,132,146,132,9,179,140,142,
+  211,140,211,140,178,140,48,132,142,107,239,115,81,124,179,140,211,140,211,140,
+  211,148,178,140,114,132,82,132,3,49,124,133,16,116,240,107,17,108,114,116,
+  147,124,6,212,132,144,212,124,180,124,180,124,179,124,147,116,147,124,179,132,
+  179,132,215,165,81,132,73,66,106,74,138,74,106,74,138,74,138,74,3,106,
+  74,129,105,74,3,106,74,132,105,74,106,74,106,74,105,74,10,106,74,163,
+  73,66,106,74,106,66,106,74,106,74,138,74,171,82,138,74,114,124,21,141,
+  245,140,245,140,245,132,245,132,21,133,245,132,20,133,245,140,244,132,245,140,
+  21,141,175,107,106,66,41,66,41,58,232,57,9,58,9,66,9,58,9,58,
+  232,57,233,57,200,57,232,57,232,57,4,167,49,131,135,41,103,41,102,41,
+  3,70,33,137,69,33,69,33,37,33,167,49,171,82,4,25,130,8,4,33,
+  5,33,3,37,33,152,70,41,102,41,134,41,135,41,134,49,135,49,199,49,
+  232,49,232,57,233,57,9,66,41,66,233,57,169,41,169,49,168,49,168,49,
+  136,41,136,41,104,41,104,41,136,41,104,41,71,41,7,71,33,130,39,33,
+  40,33,5,39,33,145,40,33,39,33,39,25,7,33,39,33,7,25,7,33,
+  7,25,7,33,7,33,39,33,7,33,39,33,7,33,7,33,39,33,39,33,
+  3,7,33,131,231,24,7,33,7,25,3,7,33,7,7,25,129,231,24,3,
+  230,24,139,231,24,230,24,230,24,231,24,230,24,230,24,198,24,230,24,198,
+  24,198,24,198,16,3,198,24,130,198,16,198,24,3,198,16,129,198,24,3,
+  198,16,135,230,24,198,16,230,24,198,24,197,16,230,24,198,16,3,197,16,
+  3,166,16,130,198,16,198,24,5,230,24,132,197,16,230,24,6,25,6,25,
+  3,230,24,136,136,41,240,115,78,99,171,82,171,82,139,74,138,74,138,74,
+  5,106,74,134,138,74,139,74,138,74,139,82,171,82,204,90,3,236,90,130,
+  77,107,243,156,4,244,156,135,243,156,244,156,244,156,243,156,244,156,244,156,
+  243,156,4,244,156,133,243,156,244,156,244,148,211,140,212,140,4,212,132,151,
+  180,132,180,124,148,124,115,116,82,108,50,100,18,100,209,83,82,116,248,173,
+  52,149,20,149,73,66,167,49,167,49,134,41,102,41,134,41,134,41,167,49,
+  166,49,134,41,166,49,5,167,49,9,199,49,129,167,49,3,199,49,131,38,
+  25,230,16,198,16,5,165,16,143,133,8,133,8,71,41,77,107,49,140,146,
+  148,113,140,81,140,81,140,114,148,146,148,146,148,178,148,178,148,179,148,8,
+  211,156,8,243,156,129,244,156,21,20,165,160,52,165,20,165,20,165,52,165,
+  52,165,211,156,138,74,195,24,227,24,227,24,195,24,227,24,195,24,195,24,
+  227,24,195,24,195,32,195,24,227,24,227,24,195,24,163,24,130,16,3,33,
+  38,82,131,65,228,65,196,65,66,41,66,41,229,73,164,65,4,66,49,132,
+  66,41,66,49,66,41,67,41,5,66,41,155,66,49,66,41,66,41,66,49,
+  66,49,66,41,66,41,67,41,66,41,66,41,196,57,74,115,172,147,205,147,
+  237,155,14,156,46,164,205,155,140,147,173,147,173,147,140,139,79,164,205,155,
+  10,131,139,131,200,114,4,66,49,133,34,41,201,90,46,164,79,164,78,164,
+  3,78,172,188,172,147,205,147,79,172,205,155,78,164,78,172,78,172,46,164,
+  79,172,135,114,33,49,67,49,67,49,66,41,67,41,168,90,107,131,74,123,
+  9,115,200,106,168,98,103,90,70,82,5,74,196,65,164,57,99,57,98,49,
+  66,49,66,41,33,41,66,41,67,49,66,49,66,49,67,49,66,41,99,49,
+  229,65,38,74,103,90,168,98,233,114,233,122,74,139,107,147,139,147,205,155,
+  204,163,172,155,13,164,172,155,172,147,237,163,97,81,38,74,131,73,66,49,
+  66,41,229,65,84,4,129,12,99,7,44,99,129,45,99,7,44,99,139,45,
+  99,12,91,45,99,44,99,45,99,44,99,45,99,44,99,45,99,45,99,44,
+  99,6,45,99,129,77,99,4,45,99,129,44,99,3,45,99,129,44,99,5,
+  45,99,130,77,99,77,99,3,45,99,129,77,99,3,45,99,129,77,99,6,
+  45,99,130,77,99,77,99,3,45,99,135,77,99,77,99,45,99,45,99,77,
+  99,45,99,45,99,5,77,99,3,45,99,141,45,91,45,91,77,99,45,99,
+  45,99,45,91,45,99,45,91,45,91,45,99,45,99,45,91,77,99,5,45,
+  91,134,45,99,45,91,45,91,77,91,45,91,77,99,3,45,91,129,45,99,
+  6,45,91,129,44,91,16,45,91,139,236,82,236,82,236,90,12,91,45,91,
+  110,99,208,107,49,116,114,116,114,124,146,124,3,147,124,3,179,132,132,179,
+  124,179,124,179,132,180,132,6,179,132,135,179,124,147,124,147,124,147,116,114,
+  116,114,124,146,132,5,179,140,147,211,140,179,148,179,140,179,148,211,148,179,
+  140,211,140,178,140,81,132,240,115,48,116,114,132,179,140,211,140,211,148,211,
+  148,178,140,113,132,81,132,3,49,124,133,17,116,241,115,18,116,114,124,179,
+  124,3,212,132,3,212,124,152,180,124,180,124,179,124,179,116,147,116,147,124,
+  211,140,211,140,24,174,142,107,105,74,138,74,138,74,106,74,138,74,105,74,
+  138,74,138,74,105,74,106,74,138,74,138,74,106,74,138,74,6,106,74,129,
+  138,74,4,106,74,129,105,66,3,106,74,155,106,66,74,66,106,74,106,74,
+  138,74,138,74,204,74,179,132,245,140,245,140,245,132,245,132,245,140,245,140,
+  244,132,245,132,245,140,245,140,244,140,175,107,233,49,9,58,41,66,9,66,
+  9,58,9,66,8,58,5,232,57,167,199,49,200,57,168,49,167,49,167,49,
+  135,41,102,41,102,33,102,41,70,33,70,33,69,33,102,41,37,33,232,57,
+  106,74,236,90,102,33,5,25,37,33,70,33,103,41,135,41,168,49,168,49,
+  200,57,233,57,233,57,200,49,9,58,9,58,10,58,9,58,233,57,233,49,
+  201,49,169,49,168,49,168,41,4,136,41,3,104,41,136,71,41,104,41,104,
+  41,71,33,71,33,72,33,71,33,71,33,12,39,33,140,7,33,7,33,8,
+  33,7,33,7,25,7,33,7,25,7,25,7,33,7,33,7,25,7,25,3,
+  231,24,135,7,25,7,25,7,33,7,25,7,25,6,25,6,25,3,7,25,
+  3,231,24,6,230,24,135,198,24,198,24,230,24,198,24,230,24,230,24,198,
+  16,3,198,24,141,230,24,198,24,198,16,198,24,198,16,198,16,198,24,198,
+  16,230,16,198,24,198,24,198,16,198,24,4,198,16,130,230,24,230,24,3,
+  198,16,132,197,16,165,16,198,16,198,16,6,230,24,129,198,24,5,230,24,
+  131,104,41,114,132,78,99,3,171,82,130,106,74,138,74,3,106,74,142,74,
+  74,106,74,106,74,171,82,138,74,139,82,171,82,171,82,236,90,12,91,12,
+  91,12,99,178,148,20,157,4,244,156,129,243,156,5,244,156,129,20,157,3,
+  244,156,133,20,157,244,156,244,156,212,148,212,140,5,212,132,144,180,124,148,
+  124,115,116,82,108,50,108,18,100,210,83,50,116,248,165,52,149,20,149,106,
+  74,167,49,166,49,134,41,101,41,3,134,41,138,167,41,166,49,167,49,166,
+  49,166,49,167,49,167,49,199,49,167,49,167,49,11,199,49,132,38,25,230,
+  16,198,16,165,8,3,165,16,144,197,16,165,16,133,8,71,33,13,99,49,
+  140,146,148,81,148,81,140,113,140,114,140,114,148,146,148,146,148,179,148,179,
+  148,4,211,156,133,243,156,211,156,211,156,243,156,211,156,6,243,156,131,244,
+  156,244,164,19,165,22,20,165,134,52,165,20,165,52,165,20,165,12,91,195,
+  16,5,227,24,4,195,24,156,228,32,195,24,227,24,195,24,163,24,130,16,
+  227,24,6,74,164,65,164,65,229,73,66,41,66,41,228,65,196,73,66,49,
+  66,49,66,41,66,41,67,49,66,49,67,49,67,41,67,41,66,41,66,49,
+  66,41,66,41,4,66,49,152,66,41,67,49,66,41,67,49,66,49,34,41,
+  132,49,172,131,111,164,79,172,110,172,111,172,111,172,13,164,75,139,172,139,
+  139,139,107,131,46,164,205,155,74,131,74,123,74,131,98,57,3,66,41,156,
+  34,41,71,74,47,156,79,172,111,172,79,172,78,172,46,172,14,164,14,164,
+  13,164,237,163,204,155,172,147,139,139,74,131,42,123,37,90,66,49,67,49,
+  67,49,66,41,66,41,131,49,131,57,99,49,66,41,66,41,4,34,41,164,
+  66,49,131,49,163,57,196,65,229,73,38,82,135,98,102,98,66,65,66,49,
+  67,49,66,49,66,41,132,49,141,123,13,156,46,164,46,164,46,172,46,172,
+  79,172,78,172,140,155,172,139,171,155,42,131,10,123,201,114,10,115,140,131,
+  5,106,164,65,228,73,65,49,66,49,132,57,69,4,3,44,99,129,12,99,
+  7,44,99,132,45,99,44,99,44,99,45,99,5,44,99,131,45,99,45,99,
+  44,99,3,45,99,130,44,99,44,99,4,45,99,129,77,99,4,45,99,129,
+  44,99,5,45,99,129,45,91,3,45,99,135,44,99,45,99,77,99,45,99,
+  45,99,44,99,44,99,6,45,99,129,77,99,4,45,99,3,77,99,141,45,
+  99,77,99,45,99,77,99,77,99,45,91,45,99,77,99,77,99,45,99,77,
+  99,45,99,77,99,3,45,99,136,45,91,45,91,45,99,77,99,45,99,45,
+  99,45,91,77,91,3,45,99,131,45,91,45,99,77,99,4,45,91,129,77,
+  99,31,45,91,129,12,83,3,236,82,136,12,91,45,91,142,99,240,107,49,
+  116,114,124,114,124,146,124,3,147,124,130,179,132,179,132,5,179,124,130,179,
+  132,180,132,4,179,132,129,179,124,3,147,124,134,114,116,114,124,146,132,179,
+  132,179,140,211,140,8,179,140,134,211,148,178,140,114,140,113,132,114,132,146,
+  140,4,211,148,143,146,140,113,132,49,124,49,124,81,124,49,124,16,116,241,
+  107,50,116,147,124,180,124,212,132,244,132,212,132,212,132,3,212,124,149,180,
+  124,180,124,147,116,147,116,179,124,179,132,244,140,89,182,203,90,105,74,105,
+  74,106,74,106,74,138,74,106,74,138,74,138,74,106,74,105,74,105,74,138,
+  74,5,106,74,161,105,74,138,74,106,74,106,74,138,74,106,74,106,74,106,
+  66,73,66,73,66,105,66,106,74,74,66,106,66,74,66,106,74,106,74,106,
+  66,106,66,45,91,245,140,21,141,245,140,245,132,245,132,21,133,21,141,245,
+  140,244,140,21,141,212,132,110,99,233,49,3,41,66,132,232,57,233,57,8,
+  58,9,58,3,232,57,133,200,57,200,49,200,49,199,49,135,41,3,167,49,
+  5,102,41,144,102,33,135,49,8,58,73,66,45,99,138,74,37,33,38,33,
+  103,33,136,41,136,41,168,49,200,49,200,49,201,57,201,49,3,233,57,129,
+  233,49,4,201,49,4,169,49,131,136,49,136,41,136,41,3,104,41,130,71,
+  41,71,41,5,71,33,129,72,33,7,39,33,130,7,33,7,33,4,39,33,
+  130,7,33,7,33,4,7,25,129,231,24,3,7,25,135,231,24,231,24,7,
+  25,231,24,7,25,7,25,7,33,3,7,25,131,6,25,7,25,7,25,3,
+  6,25,129,7,25,6,230,24,132,198,24,230,24,198,24,230,24,6,198,24,
+  132,230,24,198,24,230,24,230,24,5,198,16,138,197,16,198,24,230,24,230,
+  24,198,16,198,24,198,24,197,16,197,16,198,16,4,197,16,132,197,24,198,
+  16,230,24,197,16,3,230,24,133,198,16,197,16,230,24,198,24,197,16,3,
+  230,24,144,136,41,114,132,49,124,139,74,171,82,138,74,139,74,138,74,139,
+  74,74,74,74,74,73,66,138,74,106,74,138,74,139,74,3,171,82,135,236,
+  90,12,91,12,91,236,90,48,132,20,165,243,156,3,244,156,129,243,156,11,
+  244,156,132,211,148,212,140,212,132,212,140,3,212,132,156,180,132,180,124,147,
+  124,115,116,82,108,50,108,18,100,210,91,18,108,248,173,53,149,52,149,106,
+  74,199,57,166,49,166,49,101,41,102,41,135,41,167,49,134,41,134,41,167,
+  49,166,49,166,49,167,49,167,49,166,49,3,199,49,131,167,49,199,49,166,
+  49,4,199,49,134,167,49,199,49,199,49,38,33,198,16,198,16,5,165,16,
+  147,165,8,133,8,7,25,13,99,17,132,146,148,114,148,81,140,81,140,113,
+  148,114,148,146,148,179,148,178,148,179,148,211,148,211,156,211,156,243,156,3,
+  211,156,8,243,156,131,244,156,243,156,244,164,16,20,165,129,52,165,4,20,
+  165,4,52,165,140,20,165,142,107,195,24,228,24,228,24,227,32,227,24,227,
+  24,195,24,227,24,195,24,195,24,4,227,24,140,195,24,130,16,163,16,230,
+  73,228,73,131,57,5,74,98,49,34,41,196,57,229,73,66,49,3,66,41,
+  131,66,49,66,41,66,49,3,99,49,129,98,41,3,99,49,134,66,49,67,
+  49,66,41,66,41,66,49,67,49,3,66,49,132,67,49,75,115,111,172,79,
+  172,3,111,172,191,46,172,172,147,237,147,237,155,237,155,79,172,78,172,14,
+  164,13,164,237,163,195,73,66,41,99,49,67,49,66,41,196,57,107,123,172,
+  139,107,139,107,139,10,123,233,114,200,106,135,98,69,82,5,82,229,73,196,
+  65,163,57,99,49,66,49,66,49,66,41,67,49,99,49,66,49,66,49,67,
+  49,164,57,197,65,5,74,71,82,135,98,168,106,233,114,42,131,75,131,140,
+  139,172,147,173,147,237,155,173,155,173,155,237,163,164,89,66,49,66,49,67,
+  49,66,41,67,41,108,115,111,164,78,164,4,78,172,143,79,172,237,163,169,
+  114,205,147,233,122,201,114,10,123,43,131,140,139,232,146,66,65,70,82,66,
+  57,66,49,99,49,57,4,4,44,99,135,12,99,12,99,44,99,44,99,44,
+  91,44,99,44,99,3,45,99,132,44,99,44,99,45,99,44,99,4,45,99,
+  132,44,99,45,99,44,99,44,99,10,45,99,129,44,99,7,45,99,133,44,
+  99,45,99,77,99,45,99,44,99,5,45,99,129,44,99,7,45,99,130,77,
+  99,77,99,5,45,99,130,77,99,77,99,4,45,99,133,77,99,77,99,45,
+  99,45,99,77,99,5,45,99,136,77,99,45,91,45,91,77,99,45,99,45,
+  99,45,91,45,99,3,45,91,134,45,99,45,91,45,99,45,91,45,91,45,
+  99,4,45,91,129,77,91,3,45,91,129,45,99,4,45,91,129,45,99,12,
+  45,91,129,77,91,5,45,91,139,236,82,236,82,203,82,236,90,13,91,45,
+  91,175,99,17,108,82,116,114,124,146,124,3,147,124,133,147,132,179,132,179,
+  124,179,132,179,124,5,179,132,133,179,124,179,132,179,132,147,124,179,124,3,
+  147,124,137,114,116,146,124,146,132,178,140,211,140,179,140,211,140,179,140,179,
+  148,4,179,140,135,211,140,211,140,179,148,178,140,146,140,179,140,179,140,4,
+  211,148,138,146,140,81,132,49,124,49,124,81,124,49,124,240,115,17,116,82,
+  116,147,124,7,212,132,3,180,124,146,147,124,147,116,147,124,179,132,52,141,
+  24,174,105,74,106,74,138,74,138,74,106,74,106,74,138,74,138,74,106,74,
+  106,74,138,74,138,74,5,106,74,134,105,74,105,74,106,74,105,74,106,74,
+  105,74,3,106,74,158,74,66,106,74,73,66,73,66,106,66,74,66,106,74,
+  106,66,106,66,74,66,138,74,106,66,175,99,21,141,21,133,245,132,21,133,
+  21,141,245,140,245,140,21,133,21,141,212,132,143,99,74,66,41,66,41,66,
+  41,58,9,58,9,58,4,232,57,137,8,58,232,49,200,49,200,57,200,49,
+  167,49,167,49,135,41,135,41,4,102,41,4,70,33,140,102,41,171,82,102,
+  41,5,25,70,33,103,33,135,41,135,41,168,49,200,49,233,57,201,57,7,
+  233,57,133,201,49,201,49,169,49,201,49,169,49,4,136,41,134,104,41,104,
+  41,71,33,104,41,71,41,71,41,4,71,33,3,39,33,131,71,33,39,33,
+  71,33,9,39,33,129,7,33,3,7,25,129,231,24,3,7,25,145,231,24,
+  231,24,7,25,7,25,231,24,7,25,231,24,7,25,231,24,7,25,6,25,
+  7,25,230,24,6,25,7,25,230,24,6,25,7,230,24,133,198,24,198,24,
+  230,24,198,24,230,24,5,198,24,129,230,24,3,198,24,131,198,16,166,16,
+  198,24,4,198,16,147,230,24,198,16,198,24,198,24,197,16,230,24,198,16,
+  197,16,197,16,198,24,198,16,197,16,197,16,197,24,197,16,230,24,229,24,
+  229,16,229,24,4,230,24,129,229,24,3,230,24,144,10,58,82,124,49,124,
+  138,74,171,82,139,74,106,74,138,74,138,74,74,74,74,74,73,74,106,74,
+  106,74,138,74,138,74,3,171,82,4,236,90,130,207,123,20,165,4,243,156,
+  8,244,156,129,20,157,3,244,156,131,211,148,212,140,212,140,5,212,132,151,
+  180,124,180,124,115,116,82,108,50,100,18,100,210,91,17,108,24,174,53,149,
+  211,140,170,74,199,57,167,49,166,49,101,33,134,41,134,41,167,49,166,41,
+  167,49,167,49,166,49,6,167,49,130,199,49,167,49,3,199,49,129,167,49,
+  5,199,49,132,38,25,230,16,230,16,197,16,4,165,16,147,165,8,133,8,
+  6,25,204,90,16,140,146,148,82,140,81,140,81,140,113,140,114,148,146,148,
+  146,148,179,148,178,148,211,156,211,148,211,156,243,156,4,211,156,7,243,156,
+  129,19,157,25,20,165,3,52,165,135,240,123,4,25,227,24,228,24,228,24,
+  227,24,228,24,4,195,24,130,227,24,227,24,3,195,24,156,162,16,162,16,
+  166,57,229,81,99,49,5,74,131,57,34,41,164,57,5,82,98,49,66,49,
+  66,49,66,41,66,41,131,57,196,65,164,57,228,65,228,73,195,57,228,65,
+  5,74,5,74,164,65,67,49,66,41,67,41,4,66,49,132,66,41,34,41,
+  233,98,79,172,3,111,172,192,110,172,78,172,13,164,46,164,13,164,13,164,
+  237,155,205,155,172,147,140,139,74,131,196,73,66,41,66,41,67,49,66,49,
+  66,49,229,65,196,65,164,65,131,57,99,41,67,41,66,41,34,41,34,41,
+  67,49,99,49,132,57,164,57,229,65,38,82,70,90,131,65,66,49,67,49,
+  66,41,66,49,99,49,10,107,237,147,14,156,13,156,46,164,46,172,79,172,
+  79,172,205,163,140,147,14,164,108,147,107,139,42,131,10,123,172,139,70,106,
+  33,49,66,49,67,49,67,49,35,49,169,90,79,156,78,164,6,78,172,141,
+  172,155,78,164,237,163,237,163,79,172,46,172,78,172,171,163,97,81,70,82,
+  131,65,66,49,66,41,31,4,129,12,99,3,44,99,129,12,99,8,44,99,
+  129,45,99,3,44,99,4,45,99,3,44,99,15,45,99,129,77,99,4,45,
+  99,129,44,99,5,45,99,129,44,99,10,45,99,134,77,99,77,99,45,99,
+  45,99,77,99,77,99,4,45,99,136,77,99,45,99,45,99,77,91,77,99,
+  45,99,77,99,77,99,4,45,99,131,77,99,45,91,45,99,3,77,91,129,
+  45,99,3,45,91,131,45,99,44,91,45,91,3,45,99,132,77,99,45,91,
+  45,99,45,99,7,45,91,133,45,99,45,99,45,91,45,99,45,99,19,45,
+  91,139,236,82,204,82,235,82,236,90,13,91,77,99,175,107,17,116,82,124,
+  146,124,146,124,5,147,124,5,179,132,160,180,132,179,132,179,132,180,132,179,
+  132,179,132,179,124,179,124,147,124,147,124,115,124,115,116,146,124,146,132,179,
+  140,178,140,146,140,114,140,113,132,114,132,146,140,178,140,178,140,179,140,211,
+  140,211,140,211,148,211,140,211,140,211,148,211,140,211,140,3,211,148,138,146,
+  140,81,124,49,124,81,124,81,124,49,116,16,116,17,116,82,116,147,124,5,
+  212,132,143,212,124,212,132,180,124,180,124,179,124,179,116,147,124,146,124,244,
+  140,53,149,182,173,73,66,138,74,138,74,106,74,3,138,74,131,106,74,138,
+  74,105,74,3,106,74,3,138,74,134,106,74,105,74,105,74,138,74,105,74,
+  138,74,3,106,74,165,74,66,106,74,106,74,73,66,74,66,106,66,106,74,
+  106,66,74,66,73,66,74,66,106,66,106,74,138,66,49,116,21,141,21,133,
+  245,132,21,141,21,133,245,132,21,133,21,133,212,132,236,82,9,58,9,58,
+  42,66,73,66,41,66,9,58,232,57,232,57,200,57,232,57,232,57,200,57,
+  3,199,49,133,167,49,135,41,167,49,135,41,102,41,3,102,33,144,70,33,
+  38,33,37,33,70,33,38,33,9,66,167,49,37,33,70,33,103,41,135,41,
+  135,49,168,49,200,49,232,57,200,57,6,233,57,145,234,57,201,57,201,57,
+  201,49,201,49,169,49,168,41,169,41,136,41,104,41,136,41,104,41,104,41,
+  71,33,71,41,71,33,71,41,3,71,33,16,39,33,5,7,25,137,7,33,
+  231,24,230,24,7,25,7,25,231,24,7,25,7,25,231,32,18,230,24,134,
+  198,24,198,24,230,24,198,24,198,24,230,24,3,198,24,129,198,16,4,198,
+  24,131,198,16,198,24,198,24,3,198,16,4,198,24,130,197,24,198,24,3,
+  197,16,137,198,16,198,16,197,16,197,16,197,24,197,16,230,24,230,24,229,
+  24,3,230,24,129,6,25,4,230,24,132,197,16,233,49,146,132,146,132,3,
+  139,74,129,139,82,3,106,74,134,106,66,41,66,74,74,106,74,106,74,138,
+  74,3,171,82,135,203,82,236,90,12,91,12,91,110,107,243,156,244,156,4,
+  243,156,129,19,157,3,244,156,130,243,156,243,156,5,244,156,131,211,148,212,
+  140,212,140,4,212,132,145,180,132,180,132,148,124,147,116,82,108,50,100,18,
+  100,242,91,209,99,24,174,118,157,243,140,203,82,199,57,199,49,134,49,69,
+  41,5,134,41,130,134,49,166,49,7,167,49,5,199,49,129,167,49,4,199,
+  49,132,71,33,198,16,197,16,197,16,5,165,16,143,165,8,230,16,172,82,
+  240,131,146,148,114,148,81,140,113,140,113,148,114,148,114,148,146,148,178,148,
+  179,148,211,148,6,211,156,9,243,156,131,20,157,244,164,244,156,16,20,165,
+  129,20,157,4,20,165,137,52,165,20,165,52,165,52,165,49,132,69,33,195,
+  24,228,24,228,32,3,227,24,129,195,24,3,227,24,160,195,24,227,24,227,
+  24,195,24,162,16,130,16,133,57,5,90,98,49,5,74,163,57,66,41,131,
+  49,5,82,131,57,66,49,67,49,66,49,99,49,5,82,37,82,5,74,228,
+  65,228,73,228,73,4,74,4,74,4,82,196,73,99,49,66,49,66,41,5,
+  66,49,217,66,41,71,82,205,147,237,155,172,147,171,147,106,139,42,131,10,
+  123,233,106,168,106,135,90,70,82,5,74,228,65,196,57,131,57,66,49,67,
+  49,66,49,66,41,66,49,66,49,99,49,132,57,164,65,197,65,38,74,103,
+  82,168,98,201,106,9,115,42,123,107,139,107,139,172,147,172,147,173,147,237,
+  155,102,106,65,49,67,49,67,49,66,49,66,41,233,98,111,164,79,172,79,
+  172,110,172,78,172,79,172,78,172,46,172,201,114,15,148,107,147,233,122,10,
+  123,42,123,107,131,9,139,65,57,67,49,66,49,66,49,34,49,7,66,46,
+  140,111,164,78,172,111,172,78,172,79,172,78,172,78,172,46,164,14,164,237,
+  155,205,147,171,139,107,139,42,123,200,114,98,65,229,65,196,73,66,57,66,
+  49,89,4,131,44,99,44,99,12,91,6,44,99,129,45,99,6,44,99,130,
+  45,99,45,99,3,44,99,8,45,99,129,44,99,6,45,99,132,44,99,44,
+  99,77,99,44,99,3,45,99,134,44,99,44,99,45,99,44,99,45,99,44,
+  99,7,45,99,134,77,99,44,99,45,99,44,99,45,99,77,99,3,45,99,
+  129,45,91,3,77,99,129,45,99,5,77,99,154,45,99,77,99,45,99,77,
+  99,45,91,45,99,45,99,77,99,45,99,77,99,45,99,45,99,77,99,45,
+  91,45,99,77,91,45,91,45,99,45,99,45,91,45,99,77,99,45,99,45,
+  91,45,99,77,99,8,45,91,129,45,99,21,45,91,141,77,99,45,91,12,
+  83,236,82,204,82,236,82,13,91,45,91,110,99,208,107,17,116,82,124,146,
+  124,3,147,124,130,147,132,179,124,5,179,132,137,179,124,179,124,180,132,179,
+  132,180,132,179,132,179,132,179,124,179,124,3,147,124,154,146,124,147,132,146,
+  140,178,140,114,140,49,132,207,115,143,107,16,116,113,132,146,140,179,140,178,
+  140,179,140,211,140,179,140,211,140,211,140,211,148,211,140,211,140,211,148,243,
+  148,179,140,146,140,81,132,3,49,124,134,17,116,16,116,49,116,82,124,179,
+  124,212,124,5,212,132,129,212,124,3,180,124,138,148,116,147,116,147,124,118,
+  149,183,165,20,149,73,74,138,74,138,74,106,74,3,138,74,3,106,74,5,
+  138,74,130,106,74,105,74,3,106,74,138,105,74,138,74,106,74,106,74,105,
+  66,106,66,73,66,106,66,73,66,74,66,3,73,66,155,106,66,74,66,74,
+  66,73,66,106,66,138,74,171,74,147,124,21,141,245,132,21,141,21,133,21,
+  141,21,133,21,141,179,132,139,74,232,49,9,66,41,66,41,66,9,58,9,
+  58,233,57,232,57,232,57,9,58,3,232,57,137,167,49,199,49,167,49,199,
+  49,167,41,135,41,103,41,102,33,102,41,3,70,33,143,38,33,70,33,38,
+  33,135,41,200,49,38,33,70,33,103,41,135,41,168,49,200,49,200,49,200,
+  57,232,57,201,57,3,233,57,130,10,58,201,57,3,201,49,4,169,49,131,
+  136,41,169,41,136,41,4,104,41,131,104,33,71,33,103,41,4,71,33,4,
+  39,33,131,71,33,39,33,71,33,7,39,33,136,7,25,7,33,7,33,7,
+  25,7,25,231,24,7,25,6,25,4,7,25,131,231,24,230,24,231,24,11,
+  230,24,129,198,24,4,230,24,137,198,24,230,24,230,24,230,16,230,24,198,
+  24,198,24,230,24,230,24,3,198,24,130,198,16,198,24,3,198,16,130,230,
+  24,230,24,4,198,24,141,230,16,198,24,197,16,197,24,197,24,230,24,198,
+  24,230,24,198,16,198,16,230,24,197,16,198,24,3,230,24,131,6,25,6,
+  25,230,24,6,6,25,136,197,16,74,66,114,124,16,124,139,82,139,74,139,
+  82,138,74,3,106,74,146,74,66,73,66,73,66,74,66,106,74,138,74,138,
+  74,171,82,171,82,204,90,236,90,236,90,12,91,13,99,178,148,244,156,243,
+  156,243,156,4,244,156,129,243,156,6,244,156,133,243,156,244,156,244,148,212,
+  148,180,132,4,212,132,145,180,132,180,124,148,124,115,116,83,108,50,100,18,
+  100,242,91,209,99,24,174,53,149,244,140,12,91,199,49,199,49,166,49,69,
+  41,4,134,41,130,167,49,167,41,3,167,49,129,166,49,3,167,49,135,199,
+  49,167,49,167,49,199,49,199,49,167,49,167,49,4,199,49,132,70,25,198,
+  16,230,16,197,16,5,165,16,144,166,8,230,16,171,82,240,131,146,148,114,
+  148,81,140,81,140,113,140,114,148,146,148,146,148,178,148,178,148,211,148,211,
+  148,5,211,156,7,243,156,132,244,156,19,157,20,157,244,156,22,20,165,137,
+  52,165,52,165,20,165,52,165,146,140,199,41,195,24,228,24,228,32,3,227,
+  24,162,195,24,195,24,227,24,195,24,195,24,227,24,227,24,195,24,163,24,
+  130,16,68,41,38,90,99,49,229,73,196,65,66,41,98,49,5,74,163,65,
+  66,41,66,49,67,49,98,49,196,65,228,65,195,65,131,57,131,57,130,57,
+  163,57,99,49,98,49,131,57,99,49,5,66,49,177,67,49,66,41,98,41,
+  132,57,70,82,37,82,4,74,196,65,163,57,131,49,66,49,67,49,66,49,
+  67,49,98,49,131,49,164,57,196,65,5,74,196,73,66,41,67,49,67,49,
+  66,49,66,41,6,74,140,131,172,147,237,155,237,155,14,156,46,164,46,172,
+  79,172,79,172,78,172,205,155,139,139,205,155,108,139,205,147,9,131,65,57,
+  67,49,66,49,66,49,34,41,71,74,47,156,3,78,172,167,79,172,79,172,
+  78,172,111,180,172,147,46,156,13,164,237,155,46,164,14,164,79,172,204,163,
+  130,73,66,49,67,49,66,49,66,49,132,49,172,123,204,147,139,139,74,139,
+  41,123,233,114,200,106,135,98,70,90,5,74,228,65,196,65,131,57,99,49,
+  98,49,66,49,66,49,132,49,37,82,66,57,66,49,109,4,129,12,99,5,
+  44,99,129,45,99,4,44,99,129,45,99,5,44,99,3,45,99,131,44,99,
+  44,99,45,91,4,45,99,129,44,99,6,45,99,129,44,99,3,45,99,129,
+  44,99,6,45,99,129,44,99,7,45,99,131,44,99,45,99,44,99,8,45,
+  99,140,77,99,45,91,45,99,77,99,45,99,77,99,45,91,77,99,45,99,
+  45,91,45,99,77,99,3,45,99,133,77,99,45,91,77,99,45,91,77,99,
+  3,45,99,141,45,91,45,99,45,99,77,99,45,91,45,99,45,99,45,91,
+  45,99,45,91,45,91,45,99,45,99,6,45,91,133,45,99,45,91,45,91,
+  45,99,45,99,4,45,91,132,44,91,45,91,45,91,44,91,6,45,91,131,
+  77,91,45,91,77,91,5,45,91,143,12,83,236,82,204,82,236,90,12,91,
+  45,91,110,99,208,107,49,116,114,124,146,124,146,124,147,124,179,124,147,124,
+  6,179,132,152,179,124,179,132,179,132,179,124,180,132,179,132,179,132,147,124,
+  179,124,147,124,147,124,114,124,146,124,146,132,178,140,178,140,81,132,142,107,
+  235,82,203,74,175,99,49,124,146,132,178,140,3,179,140,131,179,148,211,148,
+  211,140,5,211,148,130,179,140,146,132,3,81,124,134,49,124,17,116,241,115,
+  17,116,114,116,180,124,6,212,132,129,212,124,3,180,124,136,148,116,147,116,
+  147,124,20,141,215,165,113,140,73,74,106,74,6,138,74,136,106,74,106,74,
+  138,74,106,74,138,74,138,74,106,74,105,74,4,106,74,136,138,74,106,74,
+  138,74,106,74,106,74,73,66,73,66,106,66,5,73,66,168,74,66,74,66,
+  73,58,73,66,74,66,106,74,106,74,13,83,212,132,21,141,245,132,245,140,
+  21,141,21,133,21,141,114,124,73,66,41,58,41,66,8,58,41,66,41,58,
+  9,58,9,66,9,58,8,58,232,57,200,49,200,49,200,57,200,49,167,49,
+  168,49,199,49,167,49,135,41,135,41,103,41,102,41,102,33,4,70,33,153,
+  37,33,37,33,134,41,70,33,102,33,103,41,135,41,167,41,168,49,168,49,
+  200,57,200,57,233,57,233,57,201,57,233,57,233,57,201,49,233,49,201,57,
+  201,49,169,49,201,49,169,49,168,49,3,136,41,4,104,41,130,71,41,71,
+  41,5,71,33,5,39,33,129,71,33,8,39,33,135,7,33,7,25,6,25,
+  6,33,7,33,6,25,39,33,3,7,25,130,230,24,7,33,4,230,24,130,
+  6,25,6,25,8,230,24,134,198,24,198,24,230,24,198,24,230,24,230,24,
+  5,198,24,135,230,24,198,24,230,24,230,24,198,24,230,24,198,24,3,230,
+  24,148,197,16,230,16,198,24,198,24,230,24,198,24,198,24,230,24,198,24,
+  197,16,230,24,230,24,198,16,198,16,230,16,198,24,230,24,230,24,198,16,
+  230,16,3,230,24,3,6,25,131,39,33,6,25,7,25,4,6,25,172,169,
+  49,49,124,16,116,139,74,171,74,139,74,138,74,106,74,74,74,106,74,73,
+  66,73,66,74,66,74,66,106,74,138,74,138,74,171,82,171,82,236,90,236,
+  90,12,91,236,90,236,90,81,140,20,157,243,156,244,156,243,156,244,156,244,
+  156,243,156,243,156,20,157,244,156,244,156,243,148,243,156,244,156,243,156,244,
+  156,211,148,179,140,180,132,4,212,132,145,180,132,180,124,148,124,115,116,83,
+  108,50,100,50,100,18,92,144,91,215,165,20,141,53,149,110,99,166,49,199,
+  49,167,49,69,41,5,134,41,134,135,41,167,49,166,49,167,49,134,41,166,
+  49,4,167,49,131,199,49,167,49,199,49,4,167,49,136,199,49,199,57,71,
+  33,198,16,198,16,197,16,165,16,165,8,3,165,16,144,165,8,198,16,107,
+  74,207,123,114,148,113,148,81,140,81,140,113,140,113,148,114,148,146,148,146,
+  148,178,148,211,148,211,148,5,211,156,8,243,156,132,244,156,20,165,20,157,
+  19,157,10,20,165,130,20,157,20,157,12,20,165,159,52,165,179,148,41,58,
+  195,16,227,24,227,24,228,32,227,24,227,24,195,24,227,24,227,24,195,24,
+  227,24,195,24,227,24,195,24,195,24,130,16,4,33,38,82,132,57,196,65,
+  5,74,66,41,67,49,5,74,228,65,66,41,66,49,66,49,5,98,49,132,
+  66,49,66,49,98,49,66,41,3,66,49,3,67,49,157,66,41,67,49,66,
+  41,66,49,66,49,67,49,99,49,131,49,132,57,164,57,229,65,38,74,103,
+  90,168,98,233,114,10,115,42,123,140,131,139,139,108,139,173,147,107,147,130,
+  65,66,41,67,49,66,49,66,49,5,66,46,148,4,111,172,146,111,180,111,
+  172,111,172,79,172,111,180,172,155,75,131,205,147,107,139,173,139,140,147,98,
+  73,66,49,66,49,98,49,66,41,197,57,14,148,4,111,172,140,111,180,111,
+  172,79,172,79,172,78,172,14,164,13,164,237,155,172,155,139,147,74,139,163,
+  73,4,66,49,143,67,49,196,65,196,65,163,57,131,57,98,49,98,49,66,
+  49,34,41,66,49,66,41,66,41,66,49,34,49,66,41,3,66,49,132,34,
+  41,70,82,98,65,66,49,19,4,5,44,99,132,12,99,45,99,44,99,12,
+  99,3,45,99,3,44,99,132,45,99,77,99,44,99,44,99,4,45,99,129,
+  45,91,5,45,99,129,44,99,14,45,99,130,44,99,77,99,8,45,99,129,
+  77,99,3,45,99,131,44,99,45,99,77,99,4,45,99,137,77,99,45,99,
+  77,99,77,99,45,99,77,99,45,99,77,99,77,99,4,45,99,132,45,91,
+  77,99,45,99,77,99,6,45,99,140,77,99,77,99,45,99,45,91,45,99,
+  45,99,45,91,45,99,77,99,45,91,45,91,45,99,7,45,91,131,77,99,
+  45,91,45,99,14,45,91,129,44,91,8,45,91,138,236,82,204,82,203,82,
+  236,90,45,91,77,91,143,99,240,107,82,116,114,124,4,147,124,7,179,132,
+  129,211,132,6,179,132,148,147,132,179,124,179,124,147,116,115,124,146,124,147,
+  132,179,140,146,140,16,124,142,107,12,83,45,75,207,99,49,124,178,140,178,
+  140,179,140,178,140,178,140,3,146,140,129,211,140,4,211,148,141,178,140,114,
+  132,81,124,49,124,81,124,49,124,17,116,17,108,50,116,115,124,180,124,212,
+  132,244,132,3,212,132,130,212,124,212,124,3,180,124,141,147,116,147,116,179,
+  132,179,132,215,165,174,115,105,74,106,74,138,74,106,74,138,74,106,74,106,
+  74,4,138,74,139,106,74,138,74,138,74,106,74,138,74,138,74,106,74,138,
+  74,106,74,106,74,138,74,4,106,74,129,105,66,8,73,66,150,41,58,41,
+  58,74,66,73,66,106,74,106,66,110,91,21,141,21,133,21,141,21,133,21,
+  133,53,141,175,99,232,49,41,66,9,66,41,58,41,66,41,66,9,58,41,
+  58,3,232,57,131,233,57,200,57,168,49,3,200,49,133,167,49,167,49,134,
+  41,102,41,134,41,3,102,33,142,70,33,70,33,102,33,37,33,4,25,70,
+  33,70,33,102,33,135,41,135,41,168,49,168,49,200,49,200,49,8,233,57,
+  4,201,49,3,169,49,3,136,41,136,104,41,104,41,103,41,71,33,71,33,
+  39,33,71,33,71,33,7,39,33,129,71,33,6,39,33,148,38,33,39,33,
+  39,33,6,25,6,33,7,33,6,33,7,25,231,24,7,33,230,24,7,25,
+  231,24,231,24,6,25,230,24,6,25,6,25,230,24,6,25,11,230,24,129,
+  198,24,3,230,24,129,198,24,13,230,24,130,198,24,198,24,11,230,24,155,
+  198,16,230,24,229,24,6,25,230,24,230,24,6,25,230,24,6,25,230,24,
+  6,25,6,25,39,25,39,33,38,33,38,33,39,33,71,33,38,25,6,25,
+  42,58,82,124,49,124,138,74,171,82,138,74,138,74,3,106,74,144,106,66,
+  73,66,74,66,73,66,74,74,138,74,106,74,171,82,171,82,204,90,236,90,
+  12,91,12,91,236,90,239,123,20,165,4,243,156,131,244,156,243,156,243,156,
+  4,244,156,129,243,156,3,244,156,130,243,148,212,140,5,212,132,150,180,132,
+  180,124,179,124,115,116,83,116,50,100,18,100,242,91,144,91,248,173,85,149,
+  20,149,110,99,167,57,199,57,166,49,101,41,102,41,134,41,134,41,167,49,
+  134,41,4,166,49,134,167,49,166,49,166,49,167,49,167,49,199,49,5,167,
+  49,136,199,49,199,49,167,49,199,49,71,33,198,16,230,16,197,16,5,165,
+  16,134,166,8,166,16,74,66,207,123,114,148,114,148,3,81,140,134,114,148,
+  114,148,146,148,146,148,179,148,179,148,4,211,156,131,243,156,243,156,211,156,
+  7,243,156,132,20,157,244,156,243,156,244,156,21,20,165,137,52,165,20,165,
+  20,165,52,165,243,156,171,82,195,16,227,24,228,24,10,227,24,158,195,24,
+  195,24,130,16,227,24,6,82,196,73,196,65,5,74,98,49,66,41,229,65,
+  229,73,66,49,66,49,98,49,99,49,66,49,66,49,67,49,66,49,66,49,
+  67,49,66,49,98,49,98,49,66,49,67,49,66,49,67,49,67,49,5,66,
+  49,152,66,41,135,82,107,131,172,139,205,147,172,147,204,147,237,163,172,155,
+  204,155,205,155,172,147,14,156,78,172,172,147,108,139,204,155,228,81,66,49,
+  67,49,66,49,66,49,132,49,205,139,3,111,172,130,111,180,79,172,3,111,
+  172,165,111,180,14,164,205,147,46,164,237,155,79,164,45,172,195,81,66,49,
+  67,49,66,49,66,49,132,49,108,115,13,156,205,155,204,147,139,139,74,131,
+  42,123,233,114,200,106,135,98,70,82,37,74,229,73,196,65,164,57,131,57,
+  66,49,66,49,67,49,67,49,66,49,66,49,34,41,66,41,3,66,49,133,
+  66,41,67,49,66,41,66,49,66,41,3,66,49,136,99,49,99,49,131,57,
+  164,65,164,65,103,90,163,73,66,49,46,4,134,12,99,12,91,44,99,44,
+  99,12,99,45,99,7,44,99,137,45,99,44,99,45,99,44,91,45,99,45,
+  99,12,99,44,99,44,99,3,45,99,131,44,99,45,99,44,99,5,45,99,
+  132,44,99,45,99,45,99,77,99,3,45,99,129,44,91,7,45,99,131,44,
+  99,45,99,44,99,7,45,99,129,77,99,5,45,99,133,44,91,45,99,77,
+  99,45,99,44,99,6,45,99,4,77,99,6,45,99,131,77,99,45,91,45,
+  91,3,45,99,140,45,91,77,99,45,91,45,99,77,91,45,91,45,91,45,
+  99,45,99,45,91,45,99,77,91,6,45,91,129,77,99,7,45,91,129,44,
+  91,3,45,91,129,77,91,8,45,91,141,77,91,77,91,45,91,236,82,204,
+  82,236,82,236,90,13,99,78,99,175,107,17,108,82,124,146,124,4,147,124,
+  129,179,124,7,179,132,131,180,132,180,132,179,124,3,179,132,152,179,124,179,
+  124,147,124,147,124,114,116,146,124,147,132,178,140,178,140,113,132,16,116,207,
+  107,207,107,49,124,146,132,178,140,179,140,178,140,178,140,114,140,49,132,49,
+  124,114,132,178,140,4,211,148,141,146,140,114,132,49,124,49,132,81,132,49,
+  124,17,116,17,116,82,116,147,124,180,124,212,132,244,132,3,212,132,129,212,
+  124,4,180,124,134,179,124,147,116,211,132,53,149,24,182,235,90,6,138,74,
+  4,106,74,5,138,74,141,106,74,138,74,106,74,105,74,106,74,106,74,138,
+  74,106,74,138,74,105,74,106,66,73,66,74,66,6,73,66,159,73,58,73,
+  58,73,66,73,58,74,66,74,66,106,66,106,66,240,99,21,141,21,133,21,
+  141,21,141,53,149,77,91,9,58,41,66,233,57,73,66,41,66,73,66,41,
+  66,233,57,9,58,232,57,200,57,232,57,200,49,200,49,168,49,200,49,3,
+  167,49,129,135,41,3,102,41,130,70,33,102,33,3,70,33,140,37,33,228,
+  24,70,33,102,41,102,41,135,41,167,49,167,49,200,49,200,57,200,57,232,
+  57,5,233,57,131,201,49,201,49,201,57,3,201,49,139,169,49,169,49,136,
+  49,136,41,104,41,136,41,104,41,104,41,103,41,71,33,71,33,8,39,33,
+  129,7,33,9,39,33,138,7,25,39,33,7,33,39,33,7,33,7,25,39,
+  33,7,25,7,33,7,33,3,6,25,136,7,25,6,25,6,25,6,33,6,
+  25,6,33,6,33,6,25,25,230,24,131,6,25,230,24,198,24,6,230,24,
+  131,6,25,6,25,198,24,3,230,24,129,6,25,3,230,24,8,6,25,156,
+  39,33,39,33,71,33,38,25,71,33,71,33,39,33,38,33,136,41,241,115,
+  179,140,138,74,171,74,138,74,139,82,139,74,106,66,106,66,73,66,73,66,
+  74,66,74,66,74,74,106,74,106,74,171,82,171,82,203,90,3,236,90,130,
+  12,91,142,107,3,243,156,131,244,156,244,156,19,157,8,244,156,133,243,156,
+  244,156,211,148,211,140,180,132,4,212,132,162,180,132,180,124,179,124,147,116,
+  83,108,50,100,18,100,18,100,144,91,215,165,86,157,53,149,174,107,167,57,
+  199,49,166,49,101,41,102,41,102,41,134,41,134,41,135,49,166,41,167,49,
+  167,49,166,49,167,49,167,49,167,41,167,49,167,49,199,49,167,49,167,49,
+  3,199,49,136,167,49,199,49,199,49,199,57,71,33,230,16,230,16,197,16,
+  5,165,16,143,133,8,166,8,10,66,175,123,114,148,146,148,81,140,113,140,
+  81,140,113,148,114,148,146,148,146,148,179,148,179,148,5,211,156,130,243,156,
+  211,156,5,243,156,133,244,156,243,156,243,156,244,156,243,156,11,20,165,133,
+  20,157,19,165,20,165,20,165,20,157,8,20,165,133,52,165,52,165,244,164,
+  45,99,195,16,3,228,24,131,227,24,227,24,195,24,5,227,24,157,195,24,
+  227,24,195,24,130,16,195,24,6,74,228,73,163,57,37,82,99,49,66,49,
+  196,65,37,82,98,49,66,49,67,49,67,49,98,49,66,49,67,49,67,49,
+  66,49,67,49,67,49,66,41,66,49,66,41,66,49,66,49,3,98,49,3,
+  66,49,153,67,49,66,41,201,98,79,164,111,172,111,180,79,172,139,139,237,
+  155,140,139,75,131,42,123,10,123,140,123,79,172,74,139,42,123,172,139,102,
+  98,66,49,67,49,67,49,66,49,99,49,75,115,3,111,172,4,111,180,139,
+  111,172,111,172,46,172,46,172,14,164,237,163,237,155,204,147,37,90,34,49,
+  67,49,3,66,49,137,5,66,38,82,5,74,196,65,164,57,131,57,99,49,
+  98,49,66,49,6,66,41,131,67,49,66,49,66,49,4,66,41,149,67,49,
+  67,49,98,49,99,49,132,57,164,57,164,65,196,65,229,73,5,74,6,82,
+  38,82,38,82,70,90,38,90,38,82,5,82,229,73,5,74,130,65,66,49,
+  59,4,6,44,99,130,45,99,45,99,4,44,99,131,45,99,44,99,44,99,
+  3,45,99,129,44,99,4,45,99,131,44,99,45,99,44,99,9,45,99,129,
+  77,99,4,45,99,132,45,91,45,99,44,99,44,99,5,45,99,134,77,99,
+  77,99,45,99,77,99,45,99,45,91,4,45,99,133,45,91,77,99,45,99,
+  45,99,77,99,3,45,99,146,77,99,77,99,45,99,45,99,77,99,77,99,
+  45,99,77,99,45,99,77,99,77,99,45,91,77,99,77,99,45,99,77,99,
+  45,99,45,99,3,45,91,131,77,99,44,99,77,99,4,45,91,131,45,99,
+  45,91,77,91,8,45,91,132,77,91,45,91,45,91,77,91,18,45,91,130,
+  77,91,77,91,3,45,91,3,236,82,138,13,91,45,91,110,91,208,107,17,
+  116,82,116,146,124,146,124,147,124,147,132,6,179,132,135,180,132,179,132,180,
+  132,180,132,179,132,211,132,179,132,3,179,124,157,147,124,147,124,147,116,114,
+  116,146,124,147,132,179,140,179,140,146,132,146,132,114,132,114,132,146,140,179,
+  140,178,140,179,140,178,140,178,140,81,132,207,115,240,115,81,124,146,140,211,
+  148,211,148,243,148,211,148,146,140,81,132,3,81,124,134,49,124,17,116,17,
+  108,82,116,147,124,212,124,3,212,132,4,212,124,3,180,124,136,147,116,115,
+  116,179,132,211,132,24,182,105,74,138,74,138,82,5,138,74,131,106,74,138,
+  74,106,74,3,138,74,135,106,74,106,74,138,74,105,74,106,74,106,74,105,
+  74,3,106,74,132,138,74,106,74,106,66,74,66,5,73,66,157,73,58,73,
+  66,41,58,73,58,41,58,73,58,41,58,73,58,73,66,106,66,138,66,82,
+  116,21,141,21,141,21,133,53,149,13,83,9,58,41,66,232,57,74,66,41,
+  66,42,66,232,57,41,66,233,57,232,57,200,49,232,57,3,200,49,136,200,
+  57,167,49,135,49,167,49,135,49,135,41,102,41,102,41,5,70,33,142,69,
+  33,228,24,5,25,103,41,103,41,135,41,167,49,168,49,200,49,200,57,200,
+  57,200,49,233,57,9,58,4,233,57,4,201,49,133,169,49,169,49,136,49,
+  136,49,136,41,4,104,41,132,71,41,71,41,71,33,71,33,7,39,33,129,
+  6,33,8,39,33,142,38,33,39,33,39,33,7,33,38,33,39,33,6,25,
+  7,33,6,33,7,25,6,33,6,25,6,33,6,33,3,6,25,136,6,33,
+  6,25,6,33,6,33,230,32,6,33,230,24,230,24,5,6,25,8,230,24,
+  129,6,25,5,230,24,132,6,25,6,25,230,24,6,25,3,230,24,133,6,
+  25,230,24,6,25,6,25,39,33,3,6,25,129,230,24,5,6,25,134,230,
+  24,6,25,6,25,39,33,39,25,6,25,4,39,33,155,71,33,103,33,103,
+  33,71,33,38,33,71,33,103,33,168,41,82,124,146,140,139,74,139,74,171,
+  82,139,82,106,74,138,74,73,66,106,66,73,66,41,58,106,66,73,66,106,
+  74,106,74,139,74,171,82,204,90,3,236,90,131,12,91,77,99,211,148,15,
+  244,156,153,211,148,211,140,180,132,212,140,212,140,212,132,212,132,180,132,180,
+  132,179,124,147,124,83,108,50,108,50,100,18,92,144,91,215,165,117,157,243,
+  148,239,115,199,49,167,49,166,49,102,41,102,41,4,134,41,136,166,41,167,
+  49,134,49,167,49,166,49,167,49,167,49,167,41,4,167,49,4,199,49,139,
+  167,49,199,49,199,49,103,41,231,16,230,16,197,16,165,16,133,16,165,16,
+  165,8,3,166,8,134,233,57,143,115,82,140,114,148,81,140,81,140,3,114,
+  148,133,146,148,146,148,178,148,179,148,179,148,6,211,156,9,243,156,130,244,
+  156,244,156,23,20,165,132,52,165,52,165,20,165,175,115,5,228,24,4,227,
+  24,153,195,24,227,24,228,24,227,24,195,24,195,24,162,16,162,16,198,65,
+  5,82,131,49,38,82,131,57,66,49,164,57,37,82,98,49,66,49,98,49,
+  66,49,98,49,67,41,98,41,98,49,66,49,3,99,49,134,131,49,131,57,
+  164,57,131,57,98,49,98,49,3,66,49,197,67,49,67,49,66,41,103,82,
+  79,164,143,172,143,172,143,180,107,139,237,147,140,139,107,131,140,139,140,139,
+  205,139,111,172,13,164,237,155,46,172,9,131,66,49,98,49,98,49,66,49,
+  66,41,201,98,46,164,13,164,237,155,237,155,172,147,139,139,106,131,41,123,
+  9,115,200,106,135,98,103,90,37,82,5,74,196,65,98,57,66,49,67,49,
+  67,49,66,49,67,49,67,41,34,41,66,41,66,41,34,49,66,41,66,41,
+  34,49,66,41,66,49,66,41,66,49,66,49,99,49,99,49,99,57,163,57,
+  164,65,196,65,229,73,229,73,5,82,5,38,82,141,5,82,5,74,5,74,
+  229,73,196,73,196,73,164,65,132,57,131,57,99,57,99,49,66,49,98,49,
+  3,66,49,95,4,131,44,99,44,99,12,99,8,44,99,133,45,99,44,99,
+  44,99,45,99,44,99,3,45,99,3,44,99,131,45,99,45,99,44,99,5,
+  45,99,133,12,91,44,99,77,99,44,99,44,99,10,45,99,131,77,99,45,
+  99,44,99,4,45,99,129,77,99,3,45,99,136,77,99,45,99,44,99,45,
+  99,77,99,77,99,45,99,44,99,4,45,99,141,44,99,45,99,77,99,45,
+  91,77,91,77,91,45,99,77,99,45,99,77,91,77,99,44,99,45,99,3,
+  77,99,142,45,91,45,99,45,99,77,99,45,99,77,99,45,99,45,91,77,
+  99,77,99,45,91,77,91,45,91,77,91,3,45,91,132,45,99,45,91,45,
+  91,77,91,4,45,91,129,77,91,17,45,91,129,45,99,4,45,91,138,13,
+  91,236,90,236,82,236,82,12,91,45,91,110,99,208,107,49,116,114,124,4,
+  147,124,8,179,132,133,180,124,180,132,211,132,180,132,179,124,3,179,132,151,
+  179,124,147,116,146,116,114,116,146,124,146,132,179,140,178,140,179,140,178,140,
+  178,140,179,140,178,140,179,140,179,148,178,140,178,140,146,140,16,124,109,107,
+  207,107,49,124,146,140,3,211,148,142,179,148,146,140,81,132,49,124,81,124,
+  81,132,17,124,16,116,49,116,82,116,147,124,212,132,212,132,244,132,4,212,
+  132,4,180,124,134,147,124,147,116,244,140,85,149,150,165,73,74,8,138,74,
+  132,106,74,106,74,138,74,106,74,4,138,74,7,106,74,133,106,66,106,66,
+  74,66,74,66,105,66,4,73,66,134,73,58,41,58,41,58,73,58,41,58,
+  41,58,3,73,66,175,73,58,106,66,171,74,180,132,21,141,21,133,53,141,
+  13,83,41,66,41,58,73,66,41,66,9,58,74,66,9,58,9,58,232,57,
+  9,58,233,57,232,57,200,49,200,57,200,49,167,49,200,49,135,41,167,49,
+  135,41,102,41,135,41,102,41,102,33,102,33,70,33,70,33,102,41,37,33,
+  228,24,228,24,102,41,102,41,135,49,135,49,168,49,200,49,200,49,200,57,
+  7,233,57,147,201,57,201,49,233,49,201,49,201,49,169,49,169,49,136,41,
+  136,49,136,41,135,41,104,41,71,41,71,41,104,41,71,33,71,33,70,33,
+  71,33,6,39,33,133,7,33,39,33,39,33,71,33,71,33,5,39,33,129,
+  38,33,5,39,33,129,6,33,6,39,33,131,7,33,38,25,6,25,4,6,
+  33,133,6,25,7,25,6,25,6,25,7,25,3,6,33,6,6,25,129,6,
+  33,6,6,25,137,7,25,6,25,7,33,6,25,7,33,6,25,39,33,6,
+  25,6,25,3,39,33,129,39,25,3,39,33,134,6,25,39,25,39,33,38,
+  33,6,25,39,33,3,6,25,130,39,33,39,25,3,6,25,157,7,25,7,
+  25,71,33,72,33,202,41,76,50,140,58,169,33,39,17,234,33,114,132,81,
+  132,139,82,139,74,138,74,106,74,106,66,106,74,74,66,74,74,9,66,9,
+  66,73,66,74,66,106,74,138,74,138,74,171,82,203,82,3,236,90,138,12,
+  91,236,90,114,140,20,157,243,156,244,156,243,156,244,156,243,156,243,156,3,
+  244,156,136,243,156,244,156,244,156,243,156,244,156,211,148,179,140,180,132,4,
+  212,132,147,180,132,180,132,148,124,147,124,83,116,50,108,18,100,18,92,112,
+  83,182,165,150,157,211,140,16,116,167,49,199,49,166,49,134,41,101,41,102,
+  41,4,134,41,133,167,49,134,41,167,49,167,49,166,49,4,167,49,129,199,
+  49,3,167,49,130,199,49,167,49,3,199,49,132,103,33,198,16,230,16,197,
+  16,5,165,16,144,134,8,166,8,169,49,110,115,81,140,114,148,81,140,81,
+  140,113,140,114,148,114,148,146,148,146,148,178,148,179,148,179,148,5,211,156,
+  9,243,156,3,244,156,11,20,165,131,19,165,20,165,19,165,9,20,165,141,
+  52,165,20,165,52,165,16,132,37,33,227,24,228,24,227,24,228,24,227,24,
+  195,24,227,24,195,24,4,227,24,142,195,24,195,24,162,16,130,16,133,49,
+  38,82,131,49,37,74,164,65,66,49,131,57,38,82,163,65,66,49,3,98,
+  49,144,164,57,164,57,163,57,228,65,5,74,228,73,4,74,69,82,5,82,
+  228,73,228,65,66,49,99,49,99,49,98,49,67,49,3,66,49,166,5,66,
+  14,156,144,180,143,172,143,180,79,172,78,172,79,172,46,172,111,180,46,172,
+  79,172,78,172,46,172,14,164,13,164,41,131,66,57,66,49,67,49,66,49,
+  66,49,196,57,168,90,102,90,70,82,5,74,228,65,196,65,131,57,131,57,
+  99,49,67,49,66,41,66,41,67,41,34,41,34,41,6,66,49,164,98,49,
+  66,49,99,49,98,49,99,49,131,57,132,65,196,65,197,65,228,73,5,74,
+  6,74,38,90,38,82,38,90,38,82,38,82,6,82,5,74,5,74,229,73,
+  196,73,196,65,164,65,132,57,131,57,99,57,99,49,66,49,67,49,66,49,
+  66,41,66,49,34,49,67,49,66,41,3,66,49,132,67,49,66,49,66,49,
+  67,49,124,4,130,12,99,12,91,3,44,99,136,45,99,44,99,45,99,44,
+  91,44,99,45,99,44,99,44,99,3,45,99,141,44,99,44,99,45,99,44,
+  99,45,99,44,99,45,99,44,99,44,99,45,99,44,99,45,99,77,99,7,
+  45,99,131,44,99,45,99,44,99,10,45,99,130,44,99,77,91,3,45,99,
+  129,44,99,5,45,99,136,45,91,77,99,77,99,45,99,45,99,77,99,45,
+  99,45,99,3,77,99,129,45,99,3,77,99,153,45,99,77,99,45,91,77,
+  99,45,99,77,99,77,99,45,99,45,91,45,91,45,99,45,99,77,99,45,
+  99,45,91,45,91,77,99,45,99,45,99,77,99,45,91,77,91,45,91,45,
+  99,77,99,3,45,91,132,77,91,77,91,45,91,45,99,19,45,91,144,77,
+  91,45,91,45,91,77,91,45,91,45,91,12,83,236,82,204,82,236,90,13,
+  91,45,99,142,99,240,107,50,116,114,124,5,147,124,129,179,124,7,179,132,
+  3,180,132,140,180,124,180,132,179,124,179,124,147,124,147,124,114,124,114,124,
+  147,132,179,140,178,140,178,140,6,179,140,3,178,140,140,146,140,16,124,207,
+  115,240,115,81,132,178,140,211,140,211,148,211,148,178,140,114,132,81,132,3,
+  81,124,136,17,124,240,115,49,116,115,124,179,124,212,132,212,132,244,132,3,
+  212,132,129,212,124,4,180,124,134,147,116,147,116,244,140,118,157,20,149,73,
+  74,6,138,74,137,106,74,138,74,106,74,138,74,106,74,138,74,106,74,138,
+  74,138,74,3,106,74,129,138,74,4,106,74,132,138,74,74,66,106,66,105,
+  66,5,73,66,3,73,58,4,41,58,152,73,58,41,66,41,58,73,58,74,
+  66,45,83,244,132,21,141,53,149,237,82,74,66,41,58,41,58,74,66,41,
+  66,41,66,233,57,9,58,41,66,9,66,232,57,233,57,233,57,232,57,3,
+  167,49,132,168,49,135,49,135,49,135,41,3,102,41,3,70,33,163,102,33,
+  37,33,196,24,196,24,5,33,102,41,135,49,167,49,168,49,200,49,200,57,
+  200,57,232,57,200,57,232,57,200,57,200,57,233,57,232,57,233,57,201,57,
+  201,49,201,49,169,49,169,49,168,49,136,41,136,41,104,41,136,41,103,41,
+  104,41,71,33,71,33,71,41,3,71,33,4,39,33,131,71,33,39,33,38,
+  33,3,39,33,133,71,33,71,33,39,33,71,33,71,33,4,39,33,132,38,
+  33,39,33,39,33,6,33,3,39,33,129,38,33,4,39,33,152,7,25,39,
+  33,39,33,6,33,38,33,6,33,7,33,6,33,39,33,6,25,39,33,6,
+  33,6,25,6,25,7,33,39,25,39,33,6,33,39,33,6,33,38,33,38,
+  33,6,25,6,25,13,39,33,166,7,25,39,33,7,33,6,25,6,25,198,
+  16,198,16,7,25,7,25,72,25,169,33,43,50,108,50,173,58,173,58,206,
+  58,80,67,145,75,83,84,214,100,246,108,185,133,58,150,188,174,253,182,94,
+  199,94,199,191,199,126,199,208,107,49,124,171,82,171,74,139,74,171,74,204,
+  82,74,66,74,66,3,73,66,135,41,66,74,66,106,66,106,74,138,82,171,
+  82,203,82,3,236,90,132,12,91,12,91,49,132,20,157,3,243,156,4,244,
+  156,129,243,156,3,244,156,134,243,156,244,156,244,156,211,148,179,140,179,132,
+  4,212,132,147,180,132,180,132,148,124,147,116,115,108,50,100,50,100,50,92,
+  242,91,150,157,118,157,243,140,16,116,199,57,199,57,167,49,134,41,101,41,
+  102,41,3,134,41,129,166,41,3,167,49,129,166,49,3,167,49,129,167,41,
+  5,167,49,129,199,49,3,167,49,144,199,49,103,33,231,16,230,16,197,16,
+  165,16,165,8,165,16,133,16,165,16,166,8,134,0,136,41,78,107,81,140,
+  114,148,3,81,140,136,114,148,114,148,146,148,178,148,178,148,179,148,211,156,
+  179,148,6,211,156,7,243,156,136,244,156,20,165,243,156,20,165,20,157,20,
+  165,20,165,19,157,3,20,165,135,244,156,20,165,20,165,244,156,20,157,20,
+  165,243,156,6,20,165,129,19,165,3,20,165,138,52,165,81,140,102,41,195,
+  24,228,32,228,32,227,24,227,24,195,24,195,24,5,227,24,157,228,24,228,
+  24,163,24,130,16,69,41,71,90,131,57,5,74,228,73,66,49,98,49,38,
+  82,163,65,66,49,98,49,98,49,99,49,196,65,37,74,37,82,101,90,102,
+  90,37,82,102,90,102,90,69,82,196,65,196,65,66,49,3,99,49,151,66,
+  49,98,49,98,49,66,49,164,57,205,139,79,172,46,172,46,164,237,163,237,
+  155,204,155,139,147,107,131,74,131,9,123,232,106,168,98,103,90,70,82,228,
+  73,98,49,67,49,3,66,49,138,66,41,67,49,66,49,34,41,34,41,66,
+  49,34,41,66,49,66,41,66,41,3,66,49,139,67,41,99,49,99,49,131,
+  57,132,57,164,57,196,65,196,65,229,73,5,74,5,74,4,38,82,141,5,
+  82,5,82,5,74,229,73,196,73,196,65,164,65,164,65,131,57,131,57,99,
+  57,99,49,98,49,4,66,49,129,66,41,5,66,49,134,67,49,66,49,67,
+  49,66,49,67,49,67,49,8,66,49,71,4,7,44,99,129,45,99,4,44,
+  99,129,45,99,3,44,99,130,45,99,44,99,3,45,99,129,44,99,3,45,
+  99,129,44,99,10,45,99,129,77,99,4,45,99,129,44,99,5,45,99,134,
+  45,91,45,99,44,99,45,99,45,99,77,99,11,45,99,132,77,99,45,99,
+  77,99,45,91,3,77,99,151,45,91,45,99,45,91,45,91,77,99,45,99,
+  77,99,45,99,77,99,45,91,77,99,77,91,45,91,77,91,77,99,77,99,
+  45,91,45,91,45,99,77,99,45,91,77,99,45,91,5,45,99,136,45,91,
+  77,91,45,91,45,91,77,91,45,91,45,91,45,99,4,45,91,129,45,99,
+  8,45,91,129,77,91,7,45,91,146,77,91,45,91,77,91,45,91,12,83,
+  235,82,236,82,236,90,13,91,77,99,175,99,17,108,82,124,114,124,146,124,
+  147,124,147,132,147,132,7,179,132,134,211,132,180,132,180,132,211,132,179,132,
+  180,132,3,179,124,133,147,124,147,124,114,116,146,124,147,132,4,178,140,133,
+  146,140,114,140,113,132,114,140,113,132,4,146,140,138,81,132,81,124,81,124,
+  146,132,179,140,211,140,211,148,211,148,146,140,114,132,3,81,124,134,49,124,
+  17,116,17,116,49,116,115,124,180,124,3,212,132,144,212,124,212,132,212,124,
+  180,124,212,124,180,124,180,124,148,124,148,116,147,116,211,140,150,165,81,132,
+  73,74,138,74,106,74,3,138,74,148,105,74,138,74,106,74,138,74,105,74,
+  138,74,106,74,138,74,138,74,106,74,138,74,106,74,106,74,138,74,138,74,
+  106,74,106,74,106,66,106,66,106,74,7,73,66,129,73,58,11,41,58,150,
+  74,66,175,99,21,141,53,141,237,82,106,66,9,58,41,66,74,66,74,66,
+  41,66,42,66,9,58,41,66,9,58,233,57,232,49,200,49,200,49,167,49,
+  168,49,168,49,3,135,49,129,135,41,3,102,41,143,102,33,102,33,70,41,
+  69,33,37,33,196,24,163,16,4,25,102,41,135,41,135,49,168,49,200,57,
+  168,49,200,57,3,232,57,3,233,57,136,201,49,233,57,201,57,201,49,233,
+  57,201,49,169,41,168,49,3,136,41,139,103,41,135,41,104,41,104,41,71,
+  41,71,41,71,33,71,33,39,33,39,33,71,33,6,39,33,134,38,33,39,
+  33,39,33,71,33,71,33,70,33,4,71,33,6,39,33,129,71,33,12,39,
+  33,129,71,33,4,39,33,129,71,33,7,39,33,129,6,33,4,6,25,158,
+  7,25,6,25,7,25,39,25,39,25,7,25,6,25,39,25,72,33,169,41,
+  43,50,234,41,202,33,76,50,141,50,174,58,48,67,210,83,51,92,246,116,
+  152,133,217,141,123,166,220,174,252,182,126,207,191,215,255,231,255,247,255,247,
+  11,255,255,131,255,247,241,107,81,132,3,171,82,156,171,74,45,91,200,57,
+  106,74,73,66,73,66,41,58,74,66,74,66,106,74,106,74,138,74,171,82,
+  171,82,204,82,236,90,236,90,12,91,236,90,239,123,20,157,244,156,244,156,
+  243,156,243,156,244,156,244,156,243,156,7,244,156,136,212,148,179,140,179,132,
+  212,132,212,132,212,124,212,124,212,132,3,212,124,143,212,116,212,116,213,124,
+  245,124,21,133,183,157,150,157,52,149,113,124,167,57,199,57,166,49,134,49,
+  69,41,102,41,4,134,41,131,135,41,166,49,166,49,3,167,49,131,167,41,
+  167,49,166,49,9,167,49,143,103,41,230,16,198,16,198,16,165,16,165,16,
+  165,8,165,8,165,16,134,8,166,8,104,33,77,107,49,140,114,148,3,81,
+  140,137,113,140,114,148,114,148,146,148,179,148,178,148,179,148,211,148,211,148,
+  4,211,156,9,243,156,132,20,165,19,157,19,157,19,165,10,20,165,134,19,
+  157,20,165,20,165,243,156,243,156,244,156,7,243,156,133,20,165,146,140,232,
+  49,195,24,228,32,9,227,24,155,228,24,228,24,195,24,195,24,130,16,36,
+  33,71,90,164,65,228,65,5,74,98,49,66,49,37,74,228,73,66,49,98,
+  49,99,49,67,49,131,57,228,65,228,73,228,73,228,65,196,65,195,65,195,
+  65,196,65,3,99,49,133,66,49,99,49,99,49,66,49,98,49,3,99,49,
+  187,103,82,233,114,168,106,134,98,69,90,37,74,228,65,196,65,164,57,131,
+  49,98,49,67,49,66,49,66,41,66,41,66,49,66,41,66,49,66,49,66,
+  41,66,49,67,49,66,41,66,49,99,49,99,49,131,49,131,57,164,57,196,
+  57,196,65,229,73,5,74,5,74,38,82,38,82,5,82,38,82,38,82,5,
+  82,5,74,5,82,229,73,229,73,196,65,196,65,164,65,131,65,132,57,131,
+  57,99,49,98,49,99,49,66,49,98,49,66,49,98,49,66,49,67,49,3,
+  66,49,133,67,49,66,49,66,49,67,49,67,49,5,66,49,142,67,49,66,
+  49,67,49,34,41,66,49,66,49,66,41,67,49,99,49,99,49,131,57,164,
+  65,196,65,131,65,71,4,6,44,99,131,12,99,44,99,44,99,4,45,99,
+  130,44,99,44,99,6,45,99,130,44,99,44,99,6,45,99,132,77,99,45,
+  99,44,99,77,99,3,45,99,133,44,99,45,99,77,99,45,99,44,99,8,
+  45,99,129,44,99,4,45,99,133,77,99,45,99,77,99,44,99,77,99,3,
+  45,99,133,77,99,45,99,77,99,77,99,45,99,8,77,99,131,45,99,77,
+  99,77,99,3,45,99,4,77,99,132,45,99,45,99,45,91,77,99,4,45,
+  99,129,45,91,4,45,99,135,45,91,77,99,45,99,45,99,45,91,45,91,
+  45,99,3,45,91,129,45,99,8,45,91,129,77,91,7,45,91,129,77,91,
+  3,45,91,143,77,91,45,91,45,91,236,82,203,82,236,82,12,91,13,91,
+  78,99,175,107,17,116,82,124,146,124,147,124,147,124,5,179,124,4,179,132,
+  136,180,132,180,132,211,132,179,132,179,132,179,124,179,132,179,132,3,147,124,
+  142,114,116,146,124,146,140,146,140,113,140,48,132,239,123,207,115,174,115,142,
+  107,142,107,174,115,240,123,49,124,3,146,140,146,114,132,146,132,178,140,179,
+  140,211,140,211,148,179,148,146,140,81,132,81,124,49,124,81,124,49,124,16,
+  116,17,116,50,116,147,124,180,132,7,212,132,3,180,124,135,147,124,148,116,
+  179,124,150,157,247,173,174,115,106,74,6,138,74,137,106,74,138,74,106,74,
+  106,74,138,74,138,74,106,74,106,74,138,74,9,106,74,130,106,66,105,66,
+  5,73,66,130,73,58,73,66,11,41,58,135,73,58,74,66,49,108,53,149,
+  46,83,42,66,41,58,3,74,66,166,74,74,106,74,42,66,9,58,9,66,
+  232,57,232,49,200,57,200,49,168,49,200,49,167,49,135,49,135,49,135,41,
+  103,41,135,41,102,41,102,41,134,41,70,41,70,33,70,33,69,33,228,24,
+  163,16,228,24,102,41,135,41,135,49,167,49,200,57,200,49,200,57,200,57,
+  232,57,232,57,200,57,4,233,57,133,201,57,233,49,233,57,201,57,201,49,
+  3,168,49,131,136,41,136,41,104,41,3,103,41,140,71,41,71,41,71,33,
+  71,33,71,41,71,33,39,33,71,33,71,33,39,33,39,33,38,33,3,39,
+  33,130,38,33,71,41,3,71,33,130,39,33,39,33,3,71,33,133,71,41,
+  39,33,71,33,71,33,39,33,3,71,33,129,39,33,9,71,33,141,39,33,
+  39,33,71,33,39,33,39,33,7,25,39,25,7,25,7,25,72,33,169,41,
+  42,50,108,66,3,173,66,145,238,74,238,74,111,83,209,91,82,108,148,108,
+  246,116,119,133,25,150,90,166,187,174,29,191,126,199,223,223,255,223,255,239,
+  255,247,24,255,255,149,255,239,209,107,178,148,138,74,171,82,171,74,171,74,
+  77,99,102,41,41,66,73,66,41,66,42,66,41,66,73,66,106,74,106,74,
+  138,74,171,82,171,82,203,82,4,236,90,131,109,107,243,156,244,156,3,243,
+  156,3,244,156,133,243,148,244,148,244,148,243,148,244,148,4,244,140,129,212,
+  124,3,245,132,135,245,124,245,132,21,133,22,133,54,133,54,133,54,141,3,
+  86,141,150,183,157,150,157,244,148,81,124,199,57,199,57,166,49,134,49,101,
+  41,102,41,102,41,134,41,134,49,134,41,134,41,166,41,135,41,134,41,167,
+  49,166,49,134,49,166,49,3,167,49,129,199,49,4,167,49,145,199,49,199,
+  49,103,41,230,16,230,16,198,16,165,16,165,8,164,16,165,16,165,16,165,
+  8,134,8,39,33,13,99,17,140,114,148,4,81,140,129,114,148,3,146,148,
+  136,179,148,179,148,211,156,211,148,211,148,211,156,211,156,243,156,3,211,156,
+  8,243,156,130,19,165,19,157,3,20,165,144,244,156,19,165,20,165,244,156,
+  19,157,20,165,243,156,19,157,20,165,244,156,243,156,243,156,211,156,243,156,
+  211,156,211,148,4,211,156,133,243,156,178,148,73,66,195,24,228,32,9,227,
+  24,143,228,24,228,24,227,24,195,24,130,16,227,24,39,82,196,73,196,65,
+  38,82,99,49,66,41,228,73,37,82,66,49,3,99,49,4,98,49,140,99,
+  49,66,49,98,49,98,49,99,49,98,49,99,49,99,49,66,49,99,49,66,
+  49,99,49,3,98,49,129,67,49,3,98,49,130,66,49,66,49,4,66,41,
+  144,66,49,66,49,66,41,66,49,98,49,99,49,99,49,131,49,164,57,164,
+  65,196,65,196,65,229,73,229,65,5,74,6,82,3,38,82,145,6,74,6,
+  82,5,74,5,74,228,73,197,73,196,73,196,65,164,65,163,65,131,57,131,
+  57,99,49,98,49,66,49,67,49,67,49,4,66,49,130,67,49,66,49,3,
+  67,49,131,66,49,99,49,98,49,3,67,49,3,66,49,131,67,41,66,49,
+  66,41,3,66,49,145,99,49,99,49,131,57,132,65,164,65,196,65,229,73,
+  5,82,37,82,38,82,38,82,70,90,70,82,38,82,38,82,5,74,103,90,
+  75,4,136,12,99,44,99,45,99,44,99,44,99,45,99,44,99,45,99,4,
+  44,99,3,45,99,137,44,99,45,99,45,99,44,99,44,99,45,99,44,99,
+  45,99,44,99,6,45,99,132,44,99,45,99,45,99,44,99,3,45,99,134,
+  44,99,77,99,45,99,44,99,77,99,44,99,10,45,99,129,77,99,5,45,
+  99,129,77,99,6,45,99,3,77,99,129,45,99,3,77,99,7,45,99,4,
+  77,99,133,45,99,45,99,45,91,77,91,45,91,3,45,99,136,45,91,77,
+  99,45,99,77,99,45,91,45,99,45,91,77,91,6,45,91,129,77,91,4,
+  45,91,129,45,99,13,45,91,129,77,91,4,45,91,130,77,91,12,91,3,
+  236,82,137,12,91,45,99,110,99,207,107,49,116,114,124,114,124,147,124,147,
+  132,3,179,132,138,179,124,179,124,180,132,179,132,180,132,180,132,211,132,180,
+  132,179,132,180,132,4,179,132,3,147,124,145,114,116,82,124,16,124,207,115,
+  109,107,44,99,235,90,170,82,138,74,73,66,105,74,171,74,44,91,142,107,
+  16,124,114,132,146,140,3,178,140,134,179,140,211,140,211,148,179,140,146,140,
+  81,132,3,81,124,134,49,124,17,116,17,116,82,116,147,124,180,124,7,212,
+  132,138,180,124,180,124,179,124,179,116,180,116,211,116,20,141,24,182,235,90,
+  106,74,4,138,74,129,106,74,8,138,74,140,106,74,138,74,106,74,138,74,
+  106,74,106,74,105,74,106,74,106,74,106,66,106,74,106,74,4,73,66,131,
+  74,66,41,58,73,66,8,41,58,131,9,50,9,58,9,58,3,41,58,154,
+  171,66,82,124,236,82,41,58,74,66,73,66,74,66,74,74,41,66,106,74,
+  41,66,41,66,233,57,9,58,232,57,200,49,200,49,233,57,200,57,168,49,
+  167,49,135,49,135,41,102,41,135,41,135,41,5,102,41,136,69,33,4,25,
+  163,16,196,24,102,41,135,41,167,41,167,49,3,200,49,140,200,57,232,57,
+  200,57,233,57,233,57,201,57,233,57,233,57,201,57,201,49,201,49,201,57,
+  4,168,49,134,136,41,136,49,103,41,104,41,104,41,103,41,5,71,41,3,
+  71,33,142,39,33,71,33,71,41,71,41,71,33,71,41,39,33,71,33,71,
+  41,71,33,71,33,39,33,71,33,71,33,3,71,41,133,71,33,71,33,39,
+  33,39,33,6,33,6,39,33,162,39,25,39,33,39,33,71,33,39,33,103,
+  33,104,33,169,41,10,50,10,58,75,58,237,74,173,66,79,83,176,83,115,
+  116,54,133,119,141,216,157,57,158,91,166,187,182,29,191,61,191,159,215,255,
+  223,255,231,255,239,255,247,255,255,255,247,255,255,255,255,255,247,6,255,255,
+  3,255,247,131,255,255,255,255,255,247,9,255,255,129,255,247,6,255,255,141,
+  255,247,255,255,255,255,18,116,179,148,171,82,139,82,138,74,171,82,109,99,
+  102,41,167,49,106,74,4,41,66,146,74,66,106,74,138,74,139,82,204,90,
+  236,90,204,90,204,90,12,91,236,90,13,91,146,140,244,148,211,148,211,140,
+  211,140,212,140,212,140,4,212,132,132,244,132,245,132,213,132,245,132,5,21,
+  133,133,245,132,245,124,21,133,22,133,22,133,3,54,133,142,54,141,54,141,
+  54,133,118,149,150,165,243,148,146,132,199,57,199,57,166,49,134,49,69,41,
+  102,41,102,41,4,134,41,133,166,41,134,41,134,41,166,49,166,41,7,167,
+  49,138,166,49,167,49,167,49,166,49,167,49,135,41,230,16,230,16,197,16,
+  197,16,4,165,16,134,133,8,134,8,7,25,237,98,16,132,114,148,4,81,
+  140,132,114,140,114,148,114,148,146,148,3,179,148,129,178,148,5,211,156,131,
+  178,148,178,148,211,156,4,243,156,146,211,156,210,148,211,156,243,156,244,156,
+  243,156,244,156,243,156,19,157,19,157,20,165,243,156,19,157,20,165,20,165,
+  243,156,244,156,244,156,3,243,156,5,211,156,137,243,156,211,156,243,156,211,
+  156,204,82,195,16,228,32,228,32,228,24,3,227,24,130,227,32,195,24,5,
+  227,24,139,195,24,130,16,195,24,6,74,228,73,163,57,37,82,131,57,66,
+  41,196,65,69,82,8,98,49,138,99,49,98,49,98,49,99,49,66,49,66,
+  49,98,49,99,49,98,49,98,49,8,66,49,146,98,49,98,49,99,49,131,
+  49,131,57,164,57,196,65,196,65,228,65,229,73,5,74,5,74,37,82,5,
+  82,38,82,5,82,5,82,5,74,3,229,73,137,196,65,229,73,164,65,164,
+  65,132,57,163,57,99,49,99,49,98,49,6,66,49,133,67,49,67,49,66,
+  49,66,49,67,49,3,66,49,134,67,49,67,49,66,49,67,49,67,49,66,
+  41,6,66,49,137,99,49,99,49,131,57,163,57,196,65,196,65,229,73,5,
+  74,37,82,3,38,82,144,71,90,70,90,38,82,38,90,6,82,229,81,229,
+  73,196,73,163,65,131,57,163,57,131,57,99,49,66,49,66,49,38,74,125,
+  4,131,44,99,44,99,45,99,3,44,99,130,45,99,12,91,3,44,99,134,
+  45,99,44,99,44,99,45,99,44,99,44,99,3,45,99,131,44,91,45,99,
+  44,99,5,45,99,129,77,99,10,45,99,129,44,99,5,45,99,135,44,99,
+  45,99,45,99,77,99,45,99,45,99,77,99,4,45,99,132,45,91,45,99,
+  45,99,77,99,4,45,99,136,77,99,77,99,45,91,77,99,45,99,45,99,
+  77,99,45,99,3,77,99,130,45,99,45,99,4,77,99,135,45,99,77,91,
+  45,99,45,99,77,99,45,91,77,99,3,45,91,136,45,99,45,99,44,99,
+  45,99,45,91,45,91,45,99,45,99,3,45,91,129,45,99,9,45,91,129,
+  45,99,11,45,91,129,77,91,4,45,91,143,77,91,45,91,12,91,236,82,
+  204,82,236,82,13,91,45,99,142,99,240,107,50,116,114,124,146,124,147,124,
+  147,124,3,179,132,134,180,132,179,132,180,132,179,132,180,132,179,132,5,180,
+  132,130,179,124,179,124,3,147,124,147,82,116,240,107,142,99,12,91,170,82,
+  73,66,231,49,101,41,36,33,4,33,4,25,4,33,69,33,199,49,170,74,
+  110,99,240,115,81,132,146,140,3,178,140,142,211,140,211,148,146,140,114,132,
+  81,132,49,124,81,124,81,132,49,124,17,116,17,116,114,116,179,124,212,124,
+  7,212,132,145,212,124,212,124,212,116,212,108,212,84,21,109,85,157,24,174,
+  138,82,138,74,170,82,138,74,138,74,138,82,138,74,138,74,106,74,3,138,
+  74,129,106,74,3,138,74,3,106,74,129,138,74,3,106,74,129,106,66,3,
+  106,74,129,74,66,3,73,66,132,74,66,74,66,73,66,73,58,6,41,58,
+  130,9,58,9,58,3,9,50,149,41,50,41,58,41,58,45,83,106,66,74,
+  66,41,66,41,66,74,74,41,66,74,66,41,66,42,66,41,66,9,58,233,
+  57,232,57,200,49,232,57,200,57,168,49,3,167,49,142,135,41,135,41,135,
+  49,102,41,135,41,102,41,102,41,134,41,102,41,70,41,228,24,163,16,195,
+  16,102,41,4,167,49,134,200,49,200,49,232,57,232,57,200,57,232,57,5,
+  233,57,140,201,57,201,49,201,49,200,49,168,49,168,49,136,49,168,49,168,
+  49,136,41,136,41,135,41,4,103,41,4,71,41,129,103,41,3,71,33,132,
+  38,33,71,33,38,33,39,33,3,71,33,169,39,33,38,33,71,33,38,33,
+  71,33,103,33,136,41,169,41,201,41,75,58,172,74,205,74,205,74,14,83,
+  79,91,111,99,111,99,176,99,50,116,82,124,115,124,212,132,21,141,53,141,
+  53,141,216,149,249,149,90,166,220,182,220,182,94,199,158,207,223,223,255,223,
+  255,239,255,231,255,239,255,239,255,247,255,247,255,239,4,255,247,130,255,239,
+  255,239,5,255,247,7,255,255,3,255,247,7,255,255,129,255,247,10,255,255,
+  150,255,247,255,255,255,255,114,132,49,124,171,82,171,74,171,82,171,82,110,
+  99,134,41,199,49,8,66,73,66,41,66,41,66,74,66,106,66,106,74,138,
+  74,171,82,203,82,4,236,90,133,237,90,236,82,49,124,21,141,245,132,4,
+  212,132,131,212,124,212,124,212,132,3,212,124,3,245,124,3,245,132,3,245,
+  124,148,21,133,21,125,21,125,21,133,21,133,54,133,54,141,54,133,21,133,
+  151,149,150,165,243,148,113,132,232,57,199,57,166,49,134,49,69,33,102,41,
+  102,41,6,134,41,135,166,49,167,49,167,49,166,49,167,49,167,49,134,49,
+  3,167,49,129,166,49,3,167,49,152,199,49,135,41,231,16,230,16,197,16,
+  197,16,165,16,164,16,165,16,165,16,166,8,134,8,231,16,204,90,240,123,
+  114,148,49,140,49,140,81,140,81,140,114,140,114,148,114,148,146,148,3,179,
+  148,130,179,156,211,148,3,211,156,136,178,148,146,148,146,148,179,148,211,156,
+  243,156,211,156,211,156,3,178,148,145,211,156,244,156,244,164,243,156,20,165,
+  243,156,20,157,244,164,243,156,19,157,20,165,244,156,244,156,243,156,244,156,
+  243,156,211,156,7,243,156,139,244,164,20,165,243,156,77,99,195,24,227,24,
+  228,32,228,24,227,24,227,24,228,24,7,227,24,141,195,24,162,16,162,16,
+  230,65,37,90,99,49,70,82,163,57,66,49,163,57,70,82,131,57,99,49,
+  3,98,49,148,99,49,66,49,98,49,99,49,98,49,66,49,98,49,66,49,
+  98,49,66,49,67,49,98,49,99,49,131,57,131,49,164,57,164,57,196,65,
+  228,65,229,65,3,5,74,150,38,82,5,82,37,82,37,82,5,82,5,82,
+  5,74,5,74,228,73,228,73,196,73,164,65,164,65,164,57,131,57,131,57,
+  99,49,67,49,99,49,66,49,66,49,98,49,3,67,49,139,66,49,67,49,
+  66,49,99,49,67,49,66,49,66,49,67,41,67,49,99,49,67,49,6,66,
+  49,138,67,49,99,49,99,49,131,57,132,57,164,65,196,65,228,73,229,73,
+  37,82,5,38,82,144,38,90,37,90,5,82,5,82,229,73,228,73,196,65,
+  164,65,164,57,163,57,131,57,99,57,98,49,66,49,66,49,67,49,6,66,
+  49,131,67,49,66,49,196,57,92,4,131,12,99,44,99,12,99,5,44,99,
+  131,45,99,44,99,44,99,5,45,99,129,44,99,5,45,99,129,44,99,9,
+  45,99,136,44,99,44,99,45,99,77,99,44,99,45,99,45,99,44,99,4,
+  45,99,129,77,99,10,45,99,129,44,99,5,45,99,152,77,99,45,99,77,
+  99,45,99,77,99,45,99,77,99,45,99,45,99,44,99,77,99,45,99,77,
+  99,77,99,45,99,77,99,77,99,77,91,45,91,77,99,45,99,45,91,45,
+  99,77,99,4,45,91,141,45,99,77,99,77,99,45,99,45,99,77,99,45,
+  91,77,91,77,91,45,99,45,91,45,91,77,91,3,45,91,132,45,99,45,
+  91,45,91,45,99,12,45,91,129,77,91,5,45,91,133,77,91,45,91,77,
+  99,45,99,12,83,3,236,82,134,12,91,77,99,143,99,240,107,81,116,114,
+  124,3,147,124,138,179,132,179,124,179,132,179,132,180,132,180,132,179,132,180,
+  132,179,132,211,132,3,179,132,169,180,124,179,124,179,124,147,124,114,124,17,
+  116,110,99,12,83,105,66,231,49,69,33,195,24,162,16,163,16,195,16,227,
+  24,228,24,4,25,4,25,228,24,69,33,73,58,45,91,207,115,81,132,146,
+  140,178,140,178,140,211,148,179,148,146,140,113,132,81,124,49,124,81,124,81,
+  132,16,116,16,116,49,116,114,116,180,124,6,212,132,139,212,124,212,124,212,
+  116,212,92,245,84,245,68,245,52,20,117,85,157,182,173,73,74,7,138,74,
+  130,105,74,106,74,4,138,74,4,106,74,140,138,74,106,74,138,74,105,74,
+  138,74,106,66,106,66,106,74,106,74,73,66,73,66,74,66,3,73,66,8,
+  41,58,129,9,58,3,9,50,136,41,50,9,50,9,50,9,58,236,82,106,
+  66,74,74,106,74,4,74,66,155,74,74,106,74,74,66,41,66,42,66,232,
+  57,200,49,168,49,200,57,199,49,167,49,167,49,135,49,135,41,134,49,135,
+  41,135,41,134,41,135,41,102,41,135,41,135,41,70,41,4,25,195,16,163,
+  16,69,41,3,167,49,131,200,49,200,57,200,49,4,232,57,130,233,57,232,
+  57,4,233,57,132,201,57,201,49,200,49,200,49,4,168,49,130,136,49,136,
+  41,3,103,41,183,71,41,71,41,71,33,38,33,38,33,39,33,38,33,71,
+  33,201,41,234,49,75,58,237,82,140,74,172,74,140,66,140,66,14,83,46,
+  91,176,99,50,116,179,132,21,149,21,149,86,157,85,157,53,157,85,157,85,
+  157,86,157,118,157,119,157,151,157,249,165,58,174,89,174,188,174,252,190,62,
+  199,126,207,61,199,159,207,126,207,223,223,255,231,191,215,255,231,158,215,158,
+  215,223,231,223,231,255,231,223,231,255,239,255,239,223,231,5,255,239,3,255,
+  247,129,255,239,3,255,247,7,255,255,130,255,247,255,255,3,255,247,131,255,
+  255,255,247,255,247,18,255,255,158,179,148,82,132,171,82,171,82,171,74,171,
+  74,77,99,135,49,166,49,199,49,73,66,74,74,42,66,41,58,74,66,106,
+  74,138,74,171,82,203,82,236,90,204,90,236,90,13,91,13,91,236,82,240,
+  107,21,141,21,133,245,132,212,124,7,180,124,132,212,124,212,124,245,124,245,
+  124,3,212,124,136,245,124,245,124,213,124,245,124,245,124,212,124,245,124,21,
+  125,4,54,133,139,151,157,150,165,244,140,20,149,232,57,199,57,167,49,166,
+  49,101,41,102,41,102,41,3,134,41,129,166,41,4,134,41,3,167,49,3,
+  166,49,7,167,49,129,135,41,3,230,16,129,197,16,4,165,16,136,165,8,
+  134,8,230,16,171,82,207,123,114,140,49,140,49,140,3,81,140,136,114,140,
+  146,148,146,148,178,148,178,148,179,148,211,148,179,156,3,211,148,132,179,148,
+  178,148,146,148,179,148,4,211,156,3,178,148,139,211,156,244,156,243,156,19,
+  157,19,165,244,156,243,156,244,156,244,156,243,156,244,156,8,243,156,130,20,
+  165,20,157,6,20,165,134,175,115,228,24,228,24,228,32,227,32,227,32,5,
+  227,24,144,227,32,228,24,227,24,227,24,195,24,162,16,130,16,165,49,102,
+  90,131,57,70,82,196,65,98,49,131,57,70,82,164,57,3,98,49,139,99,
+  49,98,49,98,49,99,49,131,49,163,57,163,57,196,57,196,65,228,65,229,
+  73,3,5,74,147,37,82,38,82,6,82,38,82,6,82,5,82,5,82,5,
+  74,229,73,229,73,196,73,196,65,164,65,163,65,163,57,131,57,99,57,98,
+  49,98,49,3,66,49,138,99,49,66,49,66,49,67,49,66,49,98,49,66,
+  49,67,49,99,49,66,49,3,67,49,3,66,49,131,67,49,66,49,66,49,
+  3,99,49,157,131,49,131,57,163,65,164,65,197,73,229,73,5,74,38,74,
+  38,82,38,82,38,90,38,90,38,82,38,90,38,90,5,82,5,82,5,74,
+  228,73,196,65,164,65,164,65,131,57,131,57,99,57,98,49,66,49,99,49,
+  67,49,7,66,49,129,98,49,5,66,49,134,65,49,66,49,34,41,66,41,
+  66,49,99,49,127,4,130,12,99,45,99,4,44,99,136,45,99,44,99,44,
+  99,45,99,44,99,44,99,45,99,44,99,7,45,99,143,44,99,45,99,44,
+  99,45,99,45,99,77,99,44,99,45,99,44,99,45,99,45,99,44,99,77,
+  99,44,91,44,99,4,45,99,130,77,99,44,99,4,45,99,129,44,99,9,
+  45,99,133,77,99,45,99,45,91,45,99,77,99,3,45,99,130,77,99,77,
+  99,3,45,99,131,77,99,45,91,77,99,5,45,99,136,77,99,45,91,77,
+  99,45,91,45,99,77,99,44,91,45,99,4,45,91,132,45,99,45,99,45,
+  91,45,91,3,45,99,3,45,91,130,45,99,77,91,5,45,91,129,45,99,
+  19,45,91,130,77,91,77,91,3,45,91,144,236,90,236,82,204,82,12,91,
+  12,91,78,99,175,107,17,116,82,124,114,124,147,124,179,124,147,124,179,132,
+  179,124,179,124,4,179,132,3,211,132,3,179,132,173,179,124,179,124,147,124,
+  114,116,208,107,45,91,106,66,167,41,4,25,162,16,130,8,130,16,162,16,
+  195,16,195,24,227,24,4,25,4,33,4,33,228,24,195,16,4,25,232,49,
+  12,91,175,107,49,132,146,140,178,140,210,140,179,140,146,140,113,132,81,124,
+  81,124,49,124,81,124,17,124,17,108,50,116,115,116,180,124,212,132,212,132,
+  244,132,212,132,3,212,124,145,212,116,212,92,212,60,245,44,245,36,21,21,
+  244,124,118,157,20,149,73,74,106,74,138,74,138,74,138,82,138,74,138,74,
+  138,82,5,138,74,134,105,74,138,74,138,74,106,74,106,74,138,74,3,106,
+  74,133,105,74,106,74,106,74,106,66,74,66,5,73,66,129,74,66,6,41,
+  58,132,41,50,41,58,9,58,9,58,4,9,50,168,9,58,9,50,110,99,
+  74,66,139,74,106,74,106,66,106,66,74,66,106,74,42,66,74,66,41,66,
+  41,66,9,66,9,58,232,57,232,57,200,57,200,49,200,57,167,49,135,49,
+  135,49,167,49,167,49,135,49,135,41,135,49,135,49,167,49,134,41,134,41,
+  37,33,196,24,163,16,102,41,167,49,167,49,199,49,3,200,57,6,232,57,
+  129,233,57,3,200,57,152,200,49,201,49,168,49,168,49,136,41,104,41,201,
+  49,136,33,201,41,201,41,234,49,42,58,75,58,173,74,46,83,143,99,176,
+  99,115,132,82,124,147,124,21,149,86,157,150,165,150,165,5,118,165,162,118,
+  157,118,165,150,165,118,165,183,165,151,157,216,165,24,166,25,166,154,174,155,
+  174,188,182,62,199,61,191,93,191,29,191,126,207,61,199,61,199,93,199,94,
+  207,93,207,61,199,126,207,126,207,126,215,158,215,126,207,94,207,158,215,158,
+  215,190,223,190,223,223,223,3,223,231,133,255,239,190,223,255,239,223,239,255,
+  239,6,255,247,133,255,239,255,247,255,247,255,255,255,247,6,255,255,4,255,
+  247,7,255,255,129,255,247,13,255,255,147,82,132,45,91,171,82,171,82,171,
+  74,171,74,77,99,134,49,167,49,199,49,232,57,74,66,74,66,41,58,41,
+  66,106,66,139,74,171,82,203,82,3,236,90,136,12,91,13,91,237,82,78,
+  91,146,124,180,124,213,132,212,124,4,180,124,129,180,116,3,180,124,3,212,
+  124,134,180,124,180,124,212,116,212,124,245,124,212,124,4,245,124,144,21,133,
+  54,133,86,141,86,141,87,141,151,157,182,165,243,140,179,140,8,66,199,57,
+  199,57,166,49,101,41,102,41,102,41,7,134,41,132,166,49,166,49,167,49,
+  166,41,6,166,49,4,167,49,154,135,41,230,16,231,16,230,16,197,16,165,
+  16,165,16,164,16,165,16,165,8,133,8,198,16,107,74,207,123,81,140,49,
+  132,49,140,49,140,81,140,81,140,113,148,114,148,146,148,178,148,178,148,179,
+  148,4,211,148,132,211,156,211,148,210,148,178,148,6,211,156,130,179,156,211,
+  156,5,243,156,134,20,165,243,156,244,156,243,156,244,156,20,157,6,243,156,
+  144,244,156,243,156,244,156,20,165,243,156,19,157,20,165,244,156,20,165,20,
+  165,16,124,36,25,227,24,228,24,228,32,228,24,6,227,24,152,228,24,228,
+  24,195,24,195,24,163,24,130,16,69,49,71,98,130,57,37,82,5,74,66,
+  49,98,49,70,82,37,82,164,57,196,65,229,65,5,74,5,74,6,74,37,
+  74,38,82,38,82,4,37,82,140,5,74,5,82,5,74,228,73,228,73,196,
+  65,164,65,164,65,163,57,131,57,99,57,131,57,4,98,49,194,66,49,98,
+  49,66,49,67,49,66,49,98,49,98,49,66,49,99,49,98,49,66,49,67,
+  49,67,49,66,49,66,49,98,49,98,49,66,49,67,49,67,49,99,49,131,
+  49,131,57,164,57,164,57,196,65,229,73,229,73,5,82,5,82,38,82,38,
+  82,38,90,38,82,37,82,38,82,6,82,5,82,229,81,228,73,196,73,196,
+  65,164,65,163,65,132,57,131,57,99,57,66,49,98,49,66,49,67,49,66,
+  49,66,49,98,49,98,49,66,49,67,49,98,49,98,49,66,49,66,49,67,
+  49,66,49,66,49,66,41,66,41,3,66,49,139,98,49,131,57,164,57,196,
+  65,229,73,38,82,103,90,168,106,233,114,232,122,130,73,80,4,5,44,99,
+  139,45,99,44,99,44,99,45,99,45,99,44,99,44,99,45,99,45,99,44,
+  99,44,99,4,45,99,129,44,99,12,45,99,133,44,99,45,99,44,99,45,
+  99,44,99,3,45,99,129,44,99,13,45,99,136,77,99,45,99,77,99,45,
+  99,45,99,44,99,45,99,77,99,5,45,99,132,77,99,45,99,45,99,77,
+  99,5,45,99,132,77,99,77,99,45,91,77,99,5,45,99,3,45,91,130,
+  45,99,45,99,3,45,91,139,44,91,45,91,45,99,45,99,45,91,45,99,
+  45,91,45,91,45,99,45,91,77,91,19,45,91,145,77,91,45,91,77,91,
+  45,91,77,91,77,91,45,91,236,90,236,82,204,82,12,91,45,91,78,99,
+  208,107,49,116,114,124,114,124,3,147,124,7,179,132,132,211,132,179,132,180,
+  132,179,124,3,179,132,135,147,124,115,124,208,107,12,83,41,58,37,25,162,
+  16,3,130,16,158,163,16,162,16,195,24,195,24,228,24,4,25,4,33,4,
+  25,228,24,163,16,163,16,195,16,199,41,203,82,142,107,16,124,146,140,179,
+  148,178,140,146,140,114,132,81,124,49,124,81,124,49,124,17,116,17,116,82,
+  116,147,124,180,132,4,212,132,143,212,124,212,132,212,124,180,100,212,68,245,
+  28,245,20,245,12,213,20,150,157,183,165,113,140,73,74,138,82,138,82,3,
+  138,74,129,106,74,6,138,74,3,106,74,131,105,74,138,74,138,74,3,106,
+  74,132,106,66,106,74,106,66,106,66,5,73,66,131,73,58,73,66,41,66,
+  7,41,58,149,9,50,9,50,232,49,9,50,9,50,8,50,9,50,74,58,
+  207,107,9,58,172,82,106,74,106,74,106,66,106,74,106,74,42,66,42,66,
+  106,74,41,66,41,66,3,232,57,134,199,49,200,49,200,49,167,49,167,49,
+  135,49,8,167,49,133,135,49,37,33,195,24,196,24,135,49,4,167,49,130,
+  200,57,200,57,4,200,49,149,168,49,200,41,233,49,42,58,172,74,172,74,
+  14,91,111,99,176,107,241,115,241,115,115,132,244,140,244,148,53,149,86,157,
+  118,165,150,165,151,165,150,165,150,165,4,118,165,174,85,157,53,157,85,157,
+  118,165,118,157,151,157,183,165,216,165,57,174,57,166,122,174,155,174,122,174,
+  219,190,219,182,28,191,219,182,28,191,28,191,61,199,252,190,220,182,29,191,
+  29,191,29,199,252,190,61,199,29,191,61,199,61,199,252,190,93,199,61,199,
+  93,199,126,215,93,207,158,215,126,207,158,215,158,215,190,215,191,223,158,215,
+  191,223,223,231,191,223,3,223,231,134,255,239,223,239,255,239,255,247,255,247,
+  255,239,5,255,247,130,255,255,255,247,9,255,255,3,255,247,20,255,255,157,
+  50,116,78,99,171,74,171,82,171,74,171,74,110,107,167,49,199,49,231,57,
+  199,49,41,66,74,66,41,58,74,66,106,66,139,74,139,74,203,82,204,82,
+  12,91,236,82,12,91,13,91,236,82,13,83,175,99,241,107,147,116,3,180,
+  124,133,179,124,180,124,148,116,147,116,180,116,3,180,124,5,212,124,130,245,
+  124,245,124,5,21,133,129,86,141,3,119,141,141,151,149,183,165,20,149,211,
+  140,41,66,199,57,167,49,166,49,102,41,101,41,102,41,134,41,102,41,5,
+  134,41,132,167,49,167,41,166,49,167,41,5,167,49,157,166,49,166,41,166,
+  49,166,49,166,41,135,41,7,25,231,16,230,16,165,16,165,16,132,8,165,
+  16,165,8,165,8,133,8,166,8,74,74,175,123,81,140,49,140,49,132,49,
+  140,49,140,82,140,114,140,114,140,114,148,146,148,4,179,148,134,211,148,179,
+  148,211,156,211,156,179,148,211,148,3,211,156,131,243,156,211,156,211,156,4,
+  243,156,133,19,157,243,156,244,156,243,156,244,156,10,243,156,133,244,156,243,
+  156,244,156,244,156,243,156,3,20,165,133,244,156,20,165,81,140,134,41,227,
+  24,4,228,24,130,228,32,228,24,5,227,24,159,195,24,195,24,163,24,130,
+  16,36,33,71,98,195,65,4,74,37,82,98,49,99,49,228,73,70,90,37,
+  82,38,82,37,82,5,74,5,74,229,73,228,73,228,73,196,65,164,65,163,
+  57,163,65,131,57,131,57,99,57,99,57,98,49,99,57,3,98,49,131,66,
+  49,98,49,66,49,5,98,49,129,99,49,4,98,49,161,66,49,131,49,163,
+  57,131,57,229,73,164,57,132,57,229,65,228,65,5,74,196,65,196,65,5,
+  74,5,82,5,82,37,82,37,82,38,90,38,82,5,82,38,82,6,82,5,
+  82,229,81,229,73,196,73,196,65,164,65,164,65,131,57,131,57,98,57,98,
+  57,5,66,49,165,98,49,99,49,67,49,99,49,66,49,98,49,99,49,67,
+  49,98,49,98,49,67,49,98,49,66,49,99,49,99,49,67,49,98,49,98,
+  49,67,49,164,57,38,74,70,90,168,98,233,106,41,123,74,131,139,139,172,
+  147,236,155,13,164,46,164,79,172,79,172,79,180,111,180,78,180,195,105,66,
+  4,130,44,99,12,99,4,44,99,129,44,91,3,44,99,132,45,99,45,99,
+  45,91,44,99,3,45,99,131,44,99,45,99,44,99,3,45,99,130,44,99,
+  44,99,3,45,99,3,44,99,131,45,99,45,99,77,99,21,45,99,129,45,
+  91,7,45,99,133,77,99,77,99,45,99,77,99,77,99,4,45,99,130,45,
+  91,77,99,6,45,99,132,77,99,45,99,77,99,45,99,5,45,91,3,45,
+  99,3,45,91,129,77,99,5,45,99,4,45,91,129,77,99,3,45,91,131,
+  45,99,45,91,77,99,4,45,91,129,77,99,10,45,91,144,77,91,45,91,
+  77,91,12,91,236,82,204,82,236,90,13,91,45,99,110,99,208,107,49,116,
+  114,124,146,124,146,124,147,124,3,179,124,135,179,132,179,132,179,124,180,132,
+  179,132,179,132,211,132,3,179,132,3,147,124,133,17,116,77,91,41,58,196,
+  16,130,8,4,130,16,176,162,16,163,16,195,24,195,24,228,24,4,25,4,
+  25,4,33,195,24,163,24,130,16,162,8,195,16,134,41,171,74,142,107,81,
+  124,178,140,179,140,146,140,81,132,81,124,81,124,81,132,49,124,17,116,17,
+  116,82,116,147,124,212,132,212,132,244,132,244,132,212,132,212,132,212,124,180,
+  116,180,84,212,44,212,12,213,12,213,4,180,36,52,149,248,173,207,115,105,
+  74,170,82,3,138,82,5,138,74,3,106,74,134,138,82,138,74,106,74,106,
+  74,105,74,105,74,3,106,74,132,105,74,106,74,105,66,105,66,4,74,66,
+  131,73,66,74,66,73,66,6,41,58,160,9,50,41,50,9,50,8,50,9,
+  50,233,49,8,50,9,50,232,49,171,66,236,82,106,66,204,82,171,82,171,
+  82,106,74,107,74,139,74,106,74,106,74,74,66,74,66,9,66,8,58,200,
+  49,200,57,200,49,200,57,167,49,200,49,200,57,200,49,4,167,49,152,135,
+  49,135,41,103,33,103,41,135,41,70,33,70,25,37,17,9,58,139,66,139,
+  66,172,74,77,83,237,82,45,91,143,99,208,107,240,115,49,116,179,132,53,
+  149,85,157,118,157,118,165,3,150,165,133,118,165,118,165,150,165,150,165,118,
+  165,4,85,165,155,86,157,118,157,150,165,150,157,150,157,215,165,24,166,25,
+  174,89,174,155,182,154,174,122,174,90,174,187,182,219,182,220,182,187,182,28,
+  199,187,182,28,199,155,182,219,182,155,174,252,190,187,182,187,182,252,190,3,
+  220,182,154,28,191,220,182,252,190,220,182,29,191,29,191,28,191,28,191,28,
+  199,252,190,125,207,93,207,126,207,93,199,126,207,126,207,158,215,158,215,191,
+  223,158,215,158,223,126,207,223,231,158,223,223,231,223,231,3,255,239,129,223,
+  239,3,255,247,138,255,239,255,239,255,247,255,239,255,239,255,247,255,247,255,
+  255,255,255,255,247,8,255,255,129,255,247,4,255,255,129,255,247,15,255,255,
+  136,209,107,179,140,204,82,171,74,171,74,138,74,77,99,167,49,3,199,57,
+  130,9,66,106,66,3,74,66,132,106,74,139,74,171,82,204,82,3,236,90,
+  145,13,91,237,82,237,82,240,123,114,124,115,116,180,124,212,124,180,124,212,
+  124,180,124,180,124,180,116,180,116,212,124,212,124,213,124,5,245,124,130,21,
+  125,22,125,5,54,133,143,86,141,87,141,119,141,87,141,119,149,215,165,21,
+  149,244,140,73,66,231,57,167,57,134,49,102,41,101,41,101,41,7,134,41,
+  133,166,49,167,41,134,41,134,49,134,49,5,167,49,4,166,49,129,167,41,
+  3,230,16,150,165,16,165,16,132,16,133,16,165,16,165,16,133,8,166,8,
+  42,66,143,115,81,140,49,140,16,132,17,132,49,140,81,140,113,140,114,148,
+  114,148,146,148,146,148,178,148,3,179,148,10,211,156,8,243,156,129,244,156,
+  7,243,156,129,244,156,6,243,156,3,244,156,135,20,165,243,156,19,157,20,
+  165,146,140,232,49,227,24,4,228,32,135,227,24,228,24,227,24,227,24,228,
+  24,227,24,227,24,3,195,24,148,130,16,227,24,71,90,228,73,228,65,70,
+  82,99,49,98,49,131,57,196,65,196,65,164,57,163,57,131,57,131,57,98,
+  57,98,49,98,49,99,49,67,49,12,98,49,175,164,57,5,74,196,65,131,
+  49,99,49,131,57,163,57,131,49,196,65,163,57,196,65,5,74,5,74,4,
+  74,70,82,135,90,167,98,102,90,5,74,168,98,70,90,135,98,135,98,228,
+  73,5,74,229,73,228,73,196,73,196,73,164,65,163,65,163,57,131,49,131,
+  49,98,49,66,49,98,49,98,49,99,49,66,49,98,49,98,49,66,49,99,
+  49,66,49,98,49,99,49,7,98,49,132,99,49,99,49,98,49,98,49,4,
+  99,49,141,98,49,98,49,99,49,98,49,98,49,67,49,66,49,6,66,14,
+  140,79,172,78,172,111,172,111,180,3,79,180,132,140,147,46,164,237,155,111,
+  164,3,111,180,130,143,180,165,130,95,4,3,44,99,141,12,91,44,99,44,
+  99,45,99,44,99,45,99,45,99,44,99,44,99,45,99,45,99,44,99,44,
+  99,5,45,99,136,44,99,44,99,45,99,44,99,45,99,45,99,44,99,44,
+  99,7,45,99,129,44,99,4,45,99,129,44,91,9,45,99,131,44,99,77,
+  99,77,99,10,45,99,129,77,99,3,45,99,158,77,99,45,91,77,99,45,
+  99,77,99,45,91,77,99,45,99,44,99,44,99,77,99,45,99,45,99,45,
+  91,45,99,77,99,45,91,45,99,45,91,45,91,45,99,77,91,77,91,45,
+  91,45,99,45,99,45,91,45,91,45,99,77,99,5,45,91,130,44,91,45,
+  99,21,45,91,143,77,91,45,91,45,91,77,91,12,91,236,82,236,82,236,
+  90,13,91,77,99,143,99,240,107,50,124,114,124,146,124,3,147,124,130,179,
+  124,179,124,4,179,132,3,180,132,130,179,132,179,132,3,179,124,133,114,124,
+  175,107,171,74,37,25,130,8,4,130,16,175,162,16,162,16,163,16,195,24,
+  227,24,228,24,228,24,4,33,228,24,195,24,162,16,130,16,163,16,163,16,
+  195,16,134,41,12,83,16,116,146,140,178,148,114,132,81,132,49,124,49,132,
+  81,132,49,124,17,116,17,116,82,124,179,124,212,132,212,132,244,132,212,132,
+  244,132,212,124,212,124,179,108,179,68,147,28,180,12,212,12,180,4,212,68,
+  85,157,24,174,44,99,4,138,74,129,105,74,5,138,74,143,105,74,106,74,
+  138,74,105,74,138,74,138,74,105,74,106,74,106,74,138,74,105,74,105,74,
+  138,74,105,74,106,74,4,73,66,3,73,58,129,73,66,6,41,58,129,41,
+  50,5,9,50,167,232,49,8,50,8,50,171,66,172,74,204,82,12,91,171,
+  82,204,82,171,74,139,74,139,74,106,74,139,74,106,74,41,66,41,66,9,
+  66,200,49,232,57,200,57,167,49,135,49,167,49,134,41,135,41,135,41,167,
+  41,232,49,41,58,171,74,143,107,17,116,147,132,244,148,20,149,53,149,53,
+  149,85,157,3,118,165,129,85,157,4,118,165,133,85,165,117,165,118,165,85,
+  165,118,165,4,85,165,3,85,157,192,118,157,150,157,215,165,183,165,248,165,
+  57,166,122,174,186,182,89,174,219,190,154,174,187,182,122,174,122,174,154,182,
+  154,174,187,182,154,174,154,174,187,182,122,174,154,182,219,182,122,174,187,182,
+  122,174,187,182,219,182,28,191,187,182,187,182,154,174,155,174,252,190,187,182,
+  29,191,252,182,61,199,29,191,252,190,61,199,61,191,187,182,28,191,61,199,
+  93,199,29,191,252,190,61,199,94,207,126,207,126,215,126,207,126,207,158,215,
+  191,223,126,215,158,215,190,223,223,231,223,231,223,239,223,231,223,239,3,255,
+  239,3,255,247,5,255,239,5,255,255,130,255,247,255,247,4,255,255,3,255,
+  247,12,255,255,131,255,247,255,255,255,247,5,255,255,159,49,124,82,132,171,
+  74,171,82,139,74,138,74,45,99,167,49,199,49,232,57,199,57,73,66,74,
+  66,41,58,74,66,106,66,139,74,139,74,203,82,236,82,236,90,236,90,12,
+  91,13,91,237,82,236,82,16,124,244,148,244,132,245,124,245,132,4,245,124,
+  130,213,124,213,124,3,245,124,132,21,125,22,133,21,133,21,125,7,54,133,
+  147,86,133,86,133,87,141,86,133,86,133,118,149,183,157,20,149,20,149,106,
+  74,199,57,167,57,134,49,102,41,101,41,69,33,102,41,134,41,102,41,5,
+  134,41,142,166,41,166,49,134,49,167,49,167,49,166,49,166,49,167,49,167,
+  49,134,49,166,49,167,49,167,49,135,49,3,230,16,155,197,16,164,8,164,
+  8,164,16,165,16,165,16,165,8,165,8,9,66,142,115,49,140,49,140,16,
+  132,16,132,49,132,49,140,81,140,114,140,114,140,146,148,146,148,178,148,178,
+  148,179,148,179,148,211,148,179,148,7,211,156,130,243,156,211,156,20,243,156,
+  130,244,156,243,156,4,19,157,139,19,165,243,156,20,165,178,148,105,66,195,
+  24,228,24,228,24,228,32,227,24,228,24,5,227,24,139,195,24,195,24,227,
+  24,195,24,162,16,195,24,38,82,5,82,195,57,70,82,131,57,4,98,49,
+  129,99,49,5,98,49,172,98,57,99,49,163,57,131,57,99,49,99,49,163,
+  57,98,49,131,49,131,57,131,57,131,49,196,65,196,65,131,49,164,57,135,
+  90,69,82,70,82,103,90,70,82,69,90,70,82,135,90,70,90,70,82,200,
+  106,167,98,69,90,102,90,200,106,69,90,5,74,4,74,102,90,196,73,196,
+  65,4,74,131,57,98,49,98,49,67,49,66,49,66,49,4,98,49,135,66,
+  49,99,49,99,49,98,49,66,49,99,49,98,49,3,99,49,3,98,49,3,
+  99,49,4,98,49,136,99,49,66,49,98,49,98,49,67,49,98,49,99,49,
+  67,49,5,99,49,149,98,49,99,49,66,49,132,49,14,132,144,172,111,172,
+  143,172,111,180,42,139,107,139,107,139,201,114,108,131,201,122,173,123,111,172,
+  111,180,111,172,111,180,73,155,94,4,4,44,99,130,45,99,44,99,3,45,
+  99,139,44,99,45,99,44,99,45,99,44,99,44,99,45,99,45,99,44,99,
+  45,99,44,99,4,45,99,129,77,99,12,45,99,132,44,99,77,99,44,99,
+  44,99,8,45,99,129,77,99,7,45,99,134,77,99,45,99,77,99,77,99,
+  45,99,77,99,5,45,99,129,77,99,3,45,99,3,77,99,130,45,99,44,
+  99,3,45,99,137,45,91,45,99,45,99,45,91,45,99,77,99,45,91,45,
+  91,45,99,4,45,91,135,45,99,77,99,77,99,45,91,77,99,45,99,45,
+  99,16,45,91,129,45,99,3,45,91,134,77,91,45,91,45,91,77,91,45,
+  91,45,91,3,77,91,139,45,91,12,83,236,82,236,82,12,91,13,91,77,
+  99,175,99,17,108,82,124,115,124,3,147,124,135,179,124,179,132,179,124,179,
+  124,180,132,179,132,179,132,4,180,132,136,179,132,179,124,147,124,179,132,50,
+  116,77,91,8,50,163,16,5,130,16,158,162,16,163,16,163,16,195,24,227,
+  24,228,24,4,25,4,25,228,24,163,16,162,16,130,16,130,16,163,16,163,
+  16,195,16,73,58,110,107,240,123,16,124,207,115,175,115,174,107,175,107,207,
+  107,207,115,241,115,49,116,115,124,180,132,4,244,132,142,212,132,212,132,212,
+  124,147,92,115,60,147,20,180,12,180,12,147,4,180,76,52,157,247,173,138,
+  82,138,82,3,138,74,129,138,82,6,138,74,129,106,74,3,138,74,139,106,
+  74,106,74,138,74,106,74,106,74,138,74,106,74,106,74,105,74,106,66,106,
+  66,5,73,66,130,73,58,73,66,3,41,58,129,41,50,3,41,58,4,9,
+  50,159,233,49,232,49,8,50,200,41,78,83,78,99,13,91,77,99,236,90,
+  236,90,204,82,171,82,171,74,106,74,139,74,139,74,106,74,74,66,9,66,
+  233,57,200,57,74,66,204,82,45,91,78,99,175,115,49,124,114,132,179,148,
+  211,148,20,157,6,85,165,129,117,165,6,85,165,155,53,157,53,165,85,157,
+  53,157,53,157,52,157,52,157,85,157,118,157,182,157,248,165,24,174,57,174,
+  122,174,121,174,121,174,154,174,252,190,186,182,122,174,219,182,122,174,187,182,
+  186,182,187,182,89,174,187,182,4,122,174,132,154,182,154,174,122,166,219,182,
+  3,122,174,136,187,182,89,166,122,174,154,174,155,174,154,174,187,182,155,174,
+  3,187,182,154,252,190,219,182,252,190,61,199,252,190,61,191,29,191,29,191,
+  61,199,187,182,28,191,29,191,126,207,61,199,93,199,126,207,158,215,126,207,
+  126,215,93,199,125,199,190,223,158,215,158,215,190,223,190,223,4,223,231,130,
+  255,239,255,247,3,255,239,130,255,247,255,247,3,255,239,132,255,247,255,247,
+  255,255,255,255,5,255,247,6,255,255,129,255,247,3,255,255,132,255,247,255,
+  255,255,255,255,247,4,255,255,129,255,247,8,255,255,140,82,124,175,107,171,
+  74,171,82,171,74,139,74,110,99,167,49,199,49,232,57,232,57,73,66,3,
+  74,66,144,106,66,106,66,138,66,204,82,236,82,236,90,236,82,236,90,13,
+  91,236,82,236,82,110,99,53,149,86,141,54,141,86,141,4,54,133,161,21,
+  133,245,124,21,125,21,125,22,133,54,133,22,133,22,133,54,125,86,133,54,
+  133,54,133,54,125,54,133,86,133,119,141,119,141,119,133,119,141,119,133,87,
+  133,119,149,247,165,244,140,244,148,138,74,199,57,199,57,134,49,134,49,69,
+  41,101,41,102,41,9,134,41,135,166,41,134,41,167,49,134,41,166,49,167,
+  49,167,49,3,166,49,156,167,49,134,41,230,16,230,16,229,16,197,16,165,
+  16,132,8,164,16,165,16,165,8,133,8,133,8,233,57,110,115,49,140,49,
+  140,16,132,49,132,17,132,49,132,81,140,114,140,114,140,114,148,146,148,146,
+  148,178,148,3,179,148,130,179,156,211,156,3,211,148,3,211,156,131,243,156,
+  243,156,211,156,9,243,156,129,244,156,16,243,156,137,244,156,20,165,211,156,
+  236,82,195,24,228,24,228,24,228,32,228,32,3,228,24,6,227,24,179,195,
+  24,162,16,163,16,230,65,101,98,163,57,102,82,195,65,98,49,130,49,98,
+  49,99,49,131,57,228,65,196,65,164,57,196,65,196,65,131,57,197,65,5,
+  74,196,65,229,73,228,65,103,90,37,82,5,66,102,90,102,82,38,82,135,
+  90,70,82,5,74,131,49,70,74,37,74,102,90,167,98,102,90,37,82,5,
+  74,167,98,70,90,5,74,4,74,4,74,195,65,163,65,4,74,131,57,99,
+  49,3,131,57,134,98,49,99,49,66,49,98,49,99,49,98,49,3,99,49,
+  129,98,49,12,99,49,150,98,49,98,49,66,49,99,49,98,49,66,49,66,
+  49,98,49,99,57,99,49,98,49,131,57,163,57,131,57,196,65,131,57,163,
+  57,163,65,228,65,228,73,98,49,99,49,4,98,49,138,66,49,75,107,144,
+  172,143,172,112,180,143,180,74,147,238,155,74,139,107,131,3,237,155,3,143,
+  180,130,143,188,12,172,173,4,6,44,99,4,45,99,139,44,99,44,99,45,
+  99,45,99,44,99,45,99,45,99,44,99,45,99,45,99,44,99,4,45,99,
+  133,44,99,44,99,45,99,45,99,44,99,3,45,99,129,77,99,3,45,99,
+  135,44,99,45,99,45,99,44,99,45,99,45,99,77,99,4,45,99,132,44,
+  99,45,99,45,99,77,99,6,45,99,131,77,99,45,99,45,91,5,45,99,
+  142,77,99,45,99,45,91,45,99,77,99,45,99,77,99,77,99,45,99,45,
+  99,77,99,45,99,77,99,45,91,3,45,99,134,45,91,77,99,45,99,45,
+  91,45,91,77,99,3,45,91,132,77,99,45,99,45,99,45,91,3,45,99,
+  131,77,99,45,91,45,91,3,45,99,7,45,91,129,77,91,3,45,91,129,
+  45,99,3,45,91,135,45,99,45,99,77,91,77,91,45,91,45,91,77,91,
+  3,45,91,138,236,82,236,82,204,82,12,91,45,91,78,99,175,107,17,116,
+  82,116,114,124,3,147,124,135,179,124,147,124,179,124,179,124,179,132,179,132,
+  211,132,3,180,132,137,212,132,180,132,179,124,179,132,179,132,17,116,236,82,
+  134,33,130,8,6,130,16,148,162,16,195,16,195,24,228,24,228,24,4,25,
+  228,24,228,24,195,24,130,16,130,8,130,16,162,16,163,16,163,16,69,33,
+  106,66,235,90,236,90,203,82,3,170,74,155,12,83,45,99,142,99,240,107,
+  82,116,147,124,212,132,244,132,244,132,212,132,244,132,244,132,179,116,147,84,
+  115,44,147,12,148,12,180,12,147,4,211,108,85,149,182,165,105,74,170,82,
+  138,82,138,74,138,82,3,138,74,129,106,74,5,138,74,131,106,74,106,74,
+  138,74,6,106,74,131,106,66,106,66,105,66,4,73,66,131,41,66,41,58,
+  73,58,5,41,58,185,9,50,41,50,9,58,9,58,9,50,232,49,232,49,
+  8,50,232,49,232,49,200,41,208,107,204,82,110,107,78,107,110,107,45,99,
+  45,99,12,99,203,82,171,82,171,82,139,74,139,74,41,66,9,58,41,66,
+  175,115,178,148,211,156,211,156,243,156,20,157,243,156,20,157,20,165,244,156,
+  20,157,20,165,20,157,52,165,52,165,53,165,85,165,85,165,52,157,20,157,
+  20,157,20,149,53,149,118,157,150,165,247,165,56,174,89,174,121,174,186,182,
+  4,251,190,129,27,191,3,186,182,189,28,191,154,174,186,182,219,182,122,174,
+  89,174,89,166,121,174,122,174,186,174,251,182,122,174,122,174,89,174,57,166,
+  187,174,219,182,154,174,154,174,219,182,122,174,154,182,57,166,122,174,122,174,
+  155,182,155,174,252,182,155,174,252,190,187,174,219,182,252,190,252,190,219,182,
+  220,182,219,182,252,190,28,191,252,190,61,199,252,190,252,190,61,207,29,191,
+  126,207,93,207,61,207,126,207,126,207,61,199,93,199,158,215,93,207,126,207,
+  158,215,93,199,126,207,158,223,190,223,158,215,5,223,231,133,255,239,223,231,
+  255,239,255,247,255,247,3,255,239,130,255,247,255,247,3,255,255,134,255,247,
+  255,255,255,247,255,255,255,247,255,247,3,255,255,129,255,247,4,255,255,132,
+  255,247,255,247,255,255,255,247,4,255,255,129,255,247,9,255,255,140,114,124,
+  143,99,172,82,171,74,171,74,138,74,110,107,167,49,199,49,231,57,232,57,
+  41,66,3,74,66,145,106,66,106,66,139,74,171,82,236,90,12,91,236,90,
+  236,90,13,91,13,91,236,82,45,83,53,141,151,141,119,141,119,141,87,133,
+  3,86,133,132,22,133,21,125,22,125,22,133,4,54,133,5,87,133,132,87,
+  141,119,141,120,141,119,141,3,152,141,141,119,141,119,149,215,165,244,148,20,
+  149,171,82,199,57,199,57,134,49,102,49,69,41,101,41,102,41,8,134,41,
+  137,166,41,134,41,134,41,134,49,134,41,166,49,166,49,167,49,166,49,4,
+  167,49,143,229,24,230,16,230,16,197,16,165,16,164,8,164,16,165,8,165,
+  8,133,8,133,0,168,49,77,107,17,140,49,140,3,16,132,135,49,132,49,
+  140,81,140,114,140,114,148,146,148,146,148,3,179,148,131,211,148,179,148,211,
+  156,4,211,148,133,211,156,211,156,243,156,211,156,211,156,23,243,156,143,19,
+  157,20,157,244,156,243,156,19,157,243,156,110,99,195,16,228,32,227,24,4,
+  33,228,32,227,24,228,32,228,24,6,227,24,174,195,24,163,24,162,16,165,
+  57,102,98,130,57,70,82,228,73,98,49,130,57,131,57,164,65,196,65,102,
+  90,37,74,70,82,135,98,135,98,37,82,228,65,102,90,5,74,70,82,102,
+  90,167,98,134,98,102,82,167,98,101,90,37,82,70,82,5,74,228,65,130,
+  57,163,57,164,57,163,57,228,65,163,65,131,57,131,57,196,65,228,65,98,
+  49,98,49,98,57,3,66,49,136,98,49,66,49,66,41,66,49,98,49,99,
+  49,66,49,98,49,3,99,49,133,98,49,99,49,66,57,99,49,98,49,3,
+  99,49,158,98,49,98,49,99,49,99,49,98,49,99,49,98,49,98,49,131,
+  57,99,49,163,57,196,73,228,73,228,73,163,65,66,57,196,65,37,82,195,
+  73,196,65,69,82,37,82,102,90,134,98,69,90,69,90,37,82,69,82,130,
+  65,98,49,3,99,49,135,98,49,66,49,136,82,144,164,143,172,144,180,143,
+  180,3,111,180,137,79,172,78,172,78,172,46,164,237,155,204,147,171,139,106,
+  131,9,123,129,4,6,44,99,130,45,99,45,99,3,44,99,134,45,99,45,
+  99,44,99,45,99,45,99,44,99,3,45,99,132,44,99,45,99,45,99,44,
+  99,4,45,99,129,44,99,3,45,99,129,77,99,6,45,99,134,45,91,77,
+  99,45,99,77,99,77,99,44,99,8,45,99,129,44,99,4,45,99,129,77,
+  99,4,45,99,132,77,99,77,99,45,99,45,99,3,77,99,129,44,91,3,
+  45,99,135,45,91,77,99,77,99,45,99,45,91,45,99,77,99,5,45,99,
+  4,45,91,137,45,99,45,91,45,91,45,99,45,99,77,99,45,99,45,91,
+  77,99,7,45,91,129,77,91,15,45,91,136,77,91,45,91,45,91,77,91,
+  77,91,45,91,45,91,12,91,3,236,82,135,12,91,45,91,110,99,208,107,
+  49,116,114,124,146,124,5,147,124,3,179,132,141,180,132,179,132,211,132,211,
+  132,212,132,179,132,180,132,211,132,180,132,179,132,207,107,171,74,4,25,6,
+  130,16,141,162,16,163,16,163,16,195,16,228,24,4,25,4,25,4,33,227,
+  24,163,24,162,16,130,16,130,16,3,162,16,159,195,24,69,33,166,41,134,
+  41,69,33,69,33,37,25,69,33,167,41,41,58,171,74,13,83,175,99,17,
+  108,114,124,179,132,212,132,244,132,244,132,212,132,179,108,146,76,115,36,147,
+  12,180,12,180,4,148,4,211,116,150,157,52,157,73,74,4,138,82,5,138,
+  74,135,105,74,138,74,106,74,138,82,138,74,106,74,138,74,4,106,74,133,
+  138,74,106,74,105,74,106,74,106,74,3,73,66,129,74,66,3,73,66,131,
+  41,58,41,58,9,58,3,41,58,162,9,50,9,58,9,50,8,50,232,49,
+  232,49,9,42,9,50,232,49,232,41,77,83,204,82,143,107,175,115,142,115,
+  142,115,175,115,142,107,77,107,45,99,13,99,204,90,204,90,138,74,9,58,
+  13,99,146,148,178,148,178,148,211,156,243,156,243,156,211,156,243,156,3,244,
+  156,153,243,156,244,156,244,148,20,157,118,157,182,157,23,174,89,182,121,182,
+  251,190,251,190,28,191,93,207,251,190,60,199,28,199,251,190,27,199,251,190,
+  27,199,251,190,28,199,251,190,187,182,187,182,3,219,190,162,186,182,186,182,
+  154,174,121,174,186,182,89,174,186,182,154,174,187,182,219,182,154,174,89,174,
+  89,174,89,166,154,174,154,174,122,174,122,174,57,166,154,182,57,166,24,158,
+  187,182,122,174,219,182,252,190,219,182,154,174,122,174,251,190,154,174,252,190,
+  252,190,187,182,3,219,182,145,29,191,61,191,61,199,252,190,61,199,61,199,
+  93,207,93,199,93,207,126,207,93,207,125,207,125,207,61,191,93,199,93,207,
+  93,207,3,158,215,135,126,215,158,215,158,215,190,223,191,223,255,231,191,231,
+  3,223,231,134,255,239,255,247,255,239,255,239,255,247,255,239,5,255,247,4,
+  255,255,3,255,247,132,255,255,255,255,255,247,255,247,3,255,255,3,255,247,
+  131,255,255,255,247,255,255,3,255,247,131,255,255,255,255,255,247,6,255,255,
+  140,241,115,244,148,237,82,171,74,139,74,138,74,142,107,199,49,8,58,232,
+  57,8,58,73,66,3,74,66,135,106,66,106,66,138,74,171,82,236,90,236,
+  82,12,91,3,13,91,136,237,82,13,83,245,140,184,149,184,141,152,141,119,
+  141,87,133,3,86,133,6,54,133,137,87,133,119,141,119,133,119,133,120,141,
+  119,141,119,133,119,141,119,141,3,152,141,141,119,141,87,133,86,141,215,165,
+  53,149,20,149,236,82,231,57,199,49,166,49,134,41,69,33,101,41,4,102,
+  41,4,134,41,134,167,49,135,49,134,41,166,49,134,41,134,49,4,166,49,
+  163,134,41,166,49,167,49,167,41,229,16,198,16,230,24,197,16,165,16,132,
+  16,164,16,165,16,165,16,133,8,133,8,103,41,77,107,16,132,49,140,240,
+  131,16,132,16,132,49,132,49,140,81,140,81,140,114,140,146,148,146,148,179,
+  148,179,148,178,148,178,148,211,148,211,156,4,211,148,130,211,156,211,148,4,
+  211,156,24,243,156,134,20,157,244,156,243,156,243,156,175,115,4,25,4,228,
+  32,3,228,24,168,227,24,228,32,227,24,228,24,227,24,228,24,227,24,163,
+  24,130,16,133,49,103,98,163,57,37,82,37,74,98,49,99,49,5,74,37,
+  82,228,65,135,90,102,90,102,90,135,98,70,90,5,82,163,57,228,73,5,
+  82,37,82,228,73,4,74,228,65,196,65,228,73,163,57,163,57,131,57,131,
+  57,131,49,98,57,4,98,49,3,66,49,3,98,49,139,131,49,163,57,164,
+  65,196,65,5,74,38,82,102,90,168,106,69,90,98,57,98,49,5,99,49,
+  132,98,49,98,49,99,49,99,49,3,98,49,3,99,49,178,98,49,99,49,
+  98,49,98,49,99,57,98,49,163,65,4,74,70,82,36,82,36,82,69,90,
+  102,90,195,73,228,65,69,82,4,74,228,73,195,65,4,74,36,74,37,74,
+  228,73,195,65,163,65,228,65,131,65,99,49,98,49,99,49,98,49,99,57,
+  66,49,6,66,237,139,237,147,172,147,140,139,74,123,41,115,232,106,167,98,
+  102,90,38,82,229,65,196,65,163,57,131,57,99,49,98,49,115,4,134,12,
+  99,44,99,44,99,45,99,44,99,45,99,3,44,99,132,45,99,44,99,45,
+  99,44,99,3,45,99,4,44,99,131,45,99,45,99,44,99,8,45,99,132,
+  44,99,45,99,44,99,44,99,4,45,99,129,77,99,6,45,99,129,44,91,
+  8,45,99,131,77,99,45,99,44,99,7,45,99,159,77,99,45,99,45,91,
+  77,99,45,99,45,99,45,91,45,91,45,99,77,99,77,99,45,91,45,99,
+  77,99,77,99,45,99,77,99,45,99,45,91,44,99,45,99,45,99,77,91,
+  45,91,45,91,45,99,45,99,44,91,45,91,45,99,45,99,4,45,91,130,
+  45,99,45,99,27,45,91,138,12,91,236,82,204,82,236,90,13,91,45,91,
+  142,99,240,107,49,116,114,124,3,147,124,131,179,124,147,132,179,124,5,179,
+  132,139,180,132,212,132,211,124,180,132,179,132,179,132,212,132,114,124,143,99,
+  73,58,195,16,7,130,16,138,163,16,195,16,195,24,228,24,228,24,4,25,
+  228,24,196,24,163,24,162,16,3,130,16,6,162,16,129,130,16,3,130,8,
+  166,162,8,4,25,102,33,232,49,106,58,236,74,142,91,17,108,114,116,212,
+  124,244,132,212,124,147,108,147,68,115,36,147,12,180,12,148,4,147,20,85,
+  149,150,157,146,140,105,74,138,82,138,74,170,82,138,74,138,82,138,74,138,
+  74,105,74,138,74,138,74,105,74,138,74,106,74,138,74,138,74,3,106,74,
+  135,105,74,106,74,106,74,138,74,106,74,106,74,105,66,6,73,66,130,41,
+  58,73,66,3,41,58,151,9,58,41,58,41,50,41,58,9,50,9,50,233,
+  49,232,49,232,41,232,41,232,49,200,41,46,91,204,74,240,123,207,123,240,
+  123,240,123,142,107,175,115,175,115,77,107,77,99,3,236,90,131,110,107,175,
+  115,114,140,4,178,148,170,211,156,211,156,243,156,243,156,20,149,85,157,23,
+  166,154,182,28,191,93,207,157,215,158,215,189,215,125,207,125,207,93,207,125,
+  207,92,199,60,199,27,191,28,199,251,190,251,190,218,182,251,190,186,182,251,
+  190,219,190,218,182,187,182,219,182,28,199,154,182,186,182,154,174,187,182,186,
+  174,186,182,154,174,122,174,187,182,154,182,3,154,174,130,121,174,154,174,3,
+  122,174,175,155,174,89,174,89,174,57,166,24,158,122,174,122,174,252,190,219,
+  182,219,182,24,158,154,174,187,182,187,182,186,174,28,199,252,182,252,182,155,
+  182,252,190,28,191,28,191,29,191,251,190,220,182,28,191,252,190,252,190,252,
+  182,61,191,94,207,61,199,61,191,126,215,29,191,93,199,93,207,93,207,126,
+  207,158,215,158,215,126,207,158,215,190,223,223,231,191,223,191,223,4,223,231,
+  134,255,247,255,247,255,239,255,247,255,247,255,239,3,255,247,131,255,255,255,
+  255,255,247,9,255,255,131,255,247,255,247,255,255,3,255,247,130,255,255,255,
+  255,12,255,247,168,255,255,255,255,18,116,244,148,13,91,171,82,138,74,138,
+  74,74,66,199,49,9,58,232,57,8,58,73,58,106,66,106,66,138,74,106,
+  66,106,66,138,74,171,82,236,82,236,82,237,82,13,83,13,91,237,82,237,
+  90,237,82,179,132,217,149,184,141,184,141,151,141,87,133,87,141,86,133,87,
+  133,54,133,54,125,3,54,133,5,87,133,136,119,133,119,133,87,133,86,133,
+  119,141,119,141,119,133,119,133,3,86,133,141,215,165,53,149,20,149,45,91,
+  199,57,199,57,166,49,134,49,69,33,101,41,101,41,102,41,102,41,5,134,
+  41,158,135,41,166,41,166,41,135,49,134,49,166,49,166,49,167,49,134,41,
+  134,41,166,49,166,49,167,49,167,49,229,24,230,24,230,24,197,16,164,16,
+  132,16,164,16,165,16,165,16,133,8,133,8,71,33,45,99,16,132,49,140,
+  240,131,3,16,132,133,49,132,49,140,81,140,114,140,114,140,3,146,148,132,
+  179,148,178,148,178,148,179,148,6,211,148,132,211,156,211,156,243,156,211,156,
+  6,243,156,129,211,156,3,243,156,131,211,156,243,156,211,156,10,243,156,129,
+  244,156,3,243,156,141,244,164,240,123,69,33,228,24,228,32,228,32,228,24,
+  228,24,228,32,228,24,227,24,227,24,228,32,4,227,24,151,195,24,130,16,
+  36,33,103,98,196,73,37,74,69,90,98,49,98,49,37,82,102,90,131,57,
+  5,74,37,82,4,74,195,65,162,57,163,65,131,57,131,57,163,57,131,57,
+  131,57,5,98,49,132,130,49,130,49,98,49,99,49,3,98,49,147,131,57,
+  229,65,38,74,70,82,167,98,200,106,9,115,74,123,75,131,140,147,205,155,
+  237,155,13,156,46,164,78,172,79,180,140,155,130,65,99,49,6,98,49,3,
+  99,49,134,99,57,98,49,98,49,99,49,99,49,99,57,4,99,49,145,98,
+  49,98,49,131,49,4,74,4,74,4,82,4,74,4,74,228,73,228,73,163,
+  65,196,65,131,57,131,57,98,49,131,57,130,49,7,98,49,129,99,49,4,
+  98,49,140,99,49,229,65,196,57,163,57,131,57,99,57,66,49,66,41,66,
+  41,34,41,66,49,66,49,3,66,41,130,66,49,98,49,105,4,130,44,99,
+  12,99,4,44,99,130,45,99,45,99,4,44,99,7,45,99,129,44,99,7,
+  45,99,132,44,99,45,99,45,99,77,99,8,45,99,132,44,99,45,99,45,
+  99,44,99,7,45,99,129,44,91,3,45,99,129,77,99,5,45,99,138,44,
+  99,45,99,45,99,77,99,45,99,45,99,77,99,45,91,77,91,77,99,3,
+  45,91,3,45,99,143,45,91,45,99,45,91,45,99,45,91,77,99,45,99,
+  45,91,45,99,45,99,45,91,45,91,77,99,45,91,45,99,3,45,91,130,
+  77,99,45,99,3,45,91,131,45,99,45,91,45,99,24,45,91,141,77,91,
+  45,91,45,91,12,83,236,82,203,82,12,91,13,99,77,99,143,107,241,107,
+  49,116,114,124,4,147,124,146,179,124,179,124,179,132,179,124,179,132,180,132,
+  179,132,180,132,211,132,212,132,212,132,180,132,211,132,179,132,82,116,77,91,
+  232,49,130,8,7,130,16,138,162,16,195,16,195,24,228,24,228,24,4,33,
+  228,24,195,24,163,16,162,16,11,130,16,156,97,8,97,8,98,8,130,8,
+  162,8,195,8,228,16,69,25,41,50,13,75,208,99,82,116,180,124,180,124,
+  146,100,114,60,115,20,147,12,147,12,147,4,179,36,211,140,247,165,207,115,
+  105,74,138,82,170,82,138,82,5,138,74,136,106,74,137,74,138,74,106,74,
+  106,74,105,74,138,74,106,74,3,105,74,3,106,74,134,105,74,106,66,106,
+  66,105,74,73,66,73,66,3,73,58,130,41,58,41,66,6,41,58,130,9,
+  50,9,50,4,233,49,133,232,49,232,41,233,49,204,74,237,82,3,240,123,
+  3,16,124,162,207,123,207,115,110,107,45,99,13,99,45,99,49,132,240,123,
+  113,140,113,140,114,140,114,148,114,140,178,148,114,140,114,140,178,140,53,149,
+  247,165,154,182,251,182,92,199,125,207,125,207,157,215,125,215,60,191,125,207,
+  28,191,93,207,60,199,93,207,27,191,27,191,4,251,190,164,219,190,219,182,
+  219,182,186,182,251,190,186,182,219,182,219,182,121,166,219,182,219,182,187,182,
+  187,182,122,174,154,174,186,182,252,190,186,182,28,191,187,182,219,182,154,174,
+  122,166,219,182,122,174,252,190,89,166,89,166,155,174,154,174,155,182,122,174,
+  122,174,186,182,154,174,154,174,4,187,182,153,251,190,219,182,28,191,187,182,
+  61,191,252,190,187,174,219,182,220,182,220,190,28,191,252,190,252,182,61,191,
+  220,182,28,191,61,199,28,191,61,199,29,191,93,207,126,215,126,207,93,207,
+  126,207,3,158,215,141,158,223,158,223,158,215,223,231,223,231,191,223,190,223,
+  255,239,223,239,223,231,255,239,255,247,255,239,4,255,247,8,255,255,129,255,
+  247,4,255,255,130,255,247,255,255,4,255,247,130,255,239,255,239,3,255,247,
+  131,255,255,255,247,255,255,6,255,247,137,255,255,144,107,81,124,171,82,139,
+  74,171,74,171,74,167,41,199,49,3,8,58,136,73,66,139,74,106,66,74,
+  66,106,66,106,66,139,66,171,74,3,236,82,147,13,91,13,91,13,83,237,
+  82,236,82,49,116,184,149,152,141,152,141,119,133,87,133,86,133,54,133,54,
+  133,22,133,21,125,22,125,22,125,22,133,4,54,133,149,87,133,86,133,86,
+  133,87,133,86,133,87,133,119,133,119,133,119,141,86,133,86,133,119,141,215,
+  165,52,149,244,148,77,99,199,57,199,49,167,49,134,49,69,41,4,102,41,
+  6,134,41,135,134,49,166,49,134,41,166,41,166,41,134,49,134,49,3,166,
+  49,166,167,49,167,49,167,41,5,25,230,16,230,16,229,16,165,8,132,8,
+  164,16,165,16,165,16,133,8,133,8,39,25,12,99,240,123,49,140,240,123,
+  240,131,16,132,16,132,49,132,49,140,81,140,81,140,114,140,146,148,146,148,
+  179,148,179,148,178,148,178,148,211,148,179,156,178,148,211,148,179,148,3,211,
+  148,4,211,156,131,243,156,211,156,211,156,9,243,156,135,211,156,243,156,211,
+  156,211,156,243,156,243,156,211,156,7,243,156,132,20,165,81,132,134,41,227,
+  24,6,228,24,150,228,32,228,32,227,24,228,32,227,24,228,24,227,24,195,
+  24,130,16,228,24,104,90,228,73,228,65,70,90,98,57,98,49,4,74,70,
+  90,98,49,131,57,163,57,99,49,4,98,49,132,99,49,98,49,98,49,130,
+  49,4,98,49,157,130,49,99,49,98,49,98,49,99,49,99,49,98,49,98,
+  49,229,65,172,131,13,164,46,164,111,172,111,180,79,180,143,180,78,180,14,
+  164,111,172,111,180,176,180,208,188,176,188,208,188,78,172,227,81,98,49,99,
+  49,99,49,3,98,49,138,99,49,99,49,98,49,98,49,99,57,98,57,98,
+  49,99,49,98,49,67,49,5,99,49,132,98,49,98,49,99,49,98,49,3,
+  131,57,3,98,49,130,131,57,99,49,6,98,49,131,99,49,99,49,98,49,
+  3,99,49,134,98,49,98,49,99,57,99,49,98,49,98,49,3,66,49,140,
+  99,57,131,57,163,65,228,73,38,74,70,90,135,98,168,114,233,114,42,131,
+  107,139,140,147,108,4,130,44,99,12,91,4,44,99,3,45,99,134,44,99,
+  45,99,44,99,45,99,44,99,77,99,3,44,99,131,45,99,45,99,44,99,
+  11,45,99,130,77,99,45,91,7,45,99,129,44,99,6,45,99,131,77,99,
+  45,99,44,99,8,45,99,138,77,99,45,99,45,99,77,99,45,99,45,99,
+  77,99,45,99,45,91,77,99,4,45,99,129,77,99,4,45,99,136,45,91,
+  45,99,45,99,45,91,45,99,45,91,45,91,45,99,3,45,91,131,45,99,
+  45,99,45,91,3,45,99,25,45,91,129,77,91,6,45,91,140,77,91,45,
+  91,236,82,236,82,203,82,12,91,45,99,77,99,175,107,17,116,82,124,114,
+  124,5,147,124,144,179,124,179,124,179,132,179,124,179,124,179,132,179,132,211,
+  132,180,132,180,132,211,124,180,132,180,132,17,116,13,83,134,33,8,130,16,
+  131,163,16,195,16,195,24,4,228,24,133,195,24,162,16,130,16,130,16,130,
+  8,3,98,8,129,98,16,5,98,8,152,97,8,98,8,98,8,163,16,70,
+  33,232,41,200,41,69,25,228,16,102,25,171,58,175,91,82,116,115,116,114,
+  84,115,44,115,20,148,12,179,12,180,4,212,60,211,148,248,173,44,99,3,
+  138,82,130,138,74,138,82,5,138,74,138,105,74,106,74,138,74,106,74,105,
+  74,106,74,106,74,105,74,106,74,105,74,5,106,74,3,73,66,129,41,66,
+  3,73,66,131,73,58,41,58,41,58,3,41,50,130,41,58,9,58,3,9,
+  50,167,232,49,233,49,9,42,232,41,232,49,9,50,45,83,78,91,16,124,
+  207,123,16,132,240,123,16,124,16,132,240,123,240,123,175,115,110,107,45,99,
+  142,107,49,132,207,115,239,123,16,132,81,132,114,140,146,140,179,148,146,140,
+  114,132,211,140,85,149,215,157,186,182,27,191,92,199,125,215,158,223,125,215,
+  4,125,207,191,92,199,28,191,93,207,92,199,92,207,251,190,28,199,27,191,
+  251,190,251,190,219,190,251,190,186,182,219,182,219,190,219,182,219,190,218,182,
+  154,182,154,174,251,190,219,182,219,182,219,190,154,174,186,174,219,182,219,182,
+  121,174,187,174,154,174,219,182,154,174,122,174,251,190,154,174,122,174,154,174,
+  56,166,121,174,187,174,89,166,122,166,56,166,154,174,219,182,187,182,187,174,
+  187,174,219,182,187,182,220,182,187,182,186,182,219,182,155,174,252,190,61,191,
+  28,191,220,182,187,182,28,183,61,199,3,29,191,147,93,207,252,190,93,199,
+  93,207,93,199,126,207,126,215,126,207,158,215,126,215,158,215,158,215,190,223,
+  190,223,223,231,191,223,190,223,191,223,223,231,3,255,239,6,255,247,6,255,
+  255,131,255,247,255,255,255,255,3,255,247,133,255,255,255,247,255,255,255,255,
+  255,247,5,255,239,129,255,247,5,255,255,129,255,247,3,255,255,142,255,247,
+  255,255,241,115,17,124,138,74,171,82,171,74,138,74,232,49,167,41,8,58,
+  9,58,8,58,73,66,5,106,66,140,138,66,171,74,204,82,13,91,236,82,
+  237,90,13,91,13,83,237,82,204,74,143,91,54,141,3,54,133,130,54,125,
+  22,125,3,21,125,132,246,124,245,124,21,125,22,125,4,54,133,151,86,133,
+  86,133,87,141,87,133,86,133,87,133,87,133,119,133,119,133,87,133,87,133,
+  87,141,215,165,53,149,244,148,110,99,199,57,199,57,166,49,134,41,69,41,
+  101,41,101,33,3,102,41,131,134,41,102,41,134,49,5,134,41,135,166,41,
+  134,41,166,41,166,41,134,41,134,49,135,49,3,167,49,145,6,25,230,16,
+  230,16,198,16,165,16,164,16,132,16,165,16,165,8,165,8,133,8,230,24,
+  204,90,207,123,49,132,240,123,240,123,3,16,132,137,49,132,81,132,81,140,
+  114,140,146,140,146,148,146,148,179,148,179,148,4,178,148,130,179,148,178,148,
+  3,211,148,134,211,156,211,156,243,156,211,156,243,156,211,156,4,243,156,129,
+  211,148,3,243,156,134,211,156,211,156,211,148,243,156,211,156,211,156,4,243,
+  156,129,211,156,6,243,156,131,114,140,232,49,195,24,3,228,24,135,228,32,
+  228,32,228,24,228,24,228,32,228,32,228,24,3,228,32,143,195,24,130,16,
+  195,24,71,82,37,90,195,57,135,90,131,57,98,49,228,65,102,90,130,57,
+  98,57,131,49,99,49,3,130,49,134,98,49,98,49,99,49,98,49,99,49,
+  99,49,3,98,49,132,130,49,98,49,98,49,131,49,3,99,49,154,98,49,
+  164,57,14,140,208,180,208,188,208,180,143,180,237,155,237,155,204,147,107,131,
+  205,147,107,139,111,172,176,180,176,180,208,188,143,180,69,98,98,49,99,49,
+  98,49,99,49,99,49,98,49,98,49,4,99,49,3,98,49,3,99,49,6,
+  98,49,141,99,49,98,49,98,49,99,49,98,49,98,49,99,49,99,49,98,
+  57,98,49,98,49,99,49,98,49,3,99,49,131,98,49,98,49,99,49,4,
+  98,49,139,99,49,98,49,99,49,98,49,196,57,233,106,42,123,106,139,171,
+  147,205,155,13,164,3,46,172,130,111,180,112,180,4,143,188,138,4,134,12,
+  99,44,99,45,99,44,99,44,99,45,99,5,44,99,3,45,99,135,44,99,
+  45,99,44,91,44,99,45,99,44,99,44,99,4,45,99,129,44,99,3,45,
+  99,129,44,99,7,45,99,129,44,99,7,45,99,129,77,99,7,45,99,131,
+  44,99,45,99,45,91,4,45,99,130,77,99,45,91,4,45,99,129,77,99,
+  3,45,99,152,77,99,45,99,77,99,45,99,77,99,44,99,45,99,45,91,
+  45,91,45,99,45,99,45,91,45,91,45,99,45,91,45,99,44,91,45,91,
+  77,99,45,91,45,99,45,91,45,91,45,99,5,45,91,133,45,99,45,91,
+  45,91,45,99,77,91,17,45,91,131,77,91,45,91,77,91,5,45,91,3,
+  236,82,140,12,91,45,91,110,99,207,107,17,116,82,124,115,124,115,124,147,
+  124,147,124,179,132,179,132,3,179,124,134,211,132,179,132,180,132,179,132,212,
+  132,212,132,3,180,132,133,179,132,240,107,171,74,36,25,130,8,7,130,16,
+  178,163,16,195,16,227,24,227,24,228,24,228,24,195,24,163,16,130,16,98,
+  8,98,8,97,8,97,8,98,8,98,8,97,8,98,8,98,8,97,8,97,
+  8,98,8,130,8,195,16,4,17,41,50,205,74,79,91,110,91,13,75,41,
+  58,37,25,69,17,204,66,208,99,241,99,50,68,114,28,148,12,213,12,213,
+  12,213,4,245,84,243,148,247,173,170,82,138,74,138,82,138,74,138,82,138,
+  82,6,138,74,134,106,74,138,74,105,74,106,74,105,74,106,74,3,105,74,
+  4,106,74,130,105,74,105,66,6,73,66,134,41,66,41,58,41,58,41,50,
+  41,58,41,50,3,9,58,141,9,50,9,50,233,49,232,49,232,41,232,49,
+  232,41,106,66,13,83,111,99,49,132,49,132,114,140,4,81,132,152,114,140,
+  81,124,17,124,240,115,175,115,110,107,174,115,207,123,49,132,49,132,114,140,
+  146,140,146,140,179,140,178,140,211,140,117,149,247,165,218,182,251,190,93,207,
+  157,223,157,215,157,215,3,125,207,135,92,199,125,207,93,207,60,199,28,199,
+  60,199,28,199,3,251,190,130,219,182,28,199,3,251,190,201,219,190,187,182,
+  187,182,186,182,89,174,122,174,28,191,154,174,251,182,219,182,154,174,154,182,
+  122,174,122,174,219,182,122,174,187,182,122,174,154,174,154,174,24,166,122,174,
+  186,174,154,174,24,166,122,174,154,174,122,166,122,174,187,182,187,182,154,174,
+  90,174,187,174,28,191,187,182,187,174,252,182,252,190,155,174,219,182,219,182,
+  28,199,252,182,220,190,93,199,29,199,61,199,252,182,252,182,61,199,61,191,
+  93,199,61,199,61,199,93,199,126,207,93,207,93,199,158,215,126,207,158,215,
+  158,223,126,207,126,215,223,231,223,231,191,223,158,223,223,231,190,223,223,231,
+  255,239,6,255,247,131,255,255,255,247,255,247,7,255,255,131,255,247,255,247,
+  255,255,3,255,247,129,255,255,3,255,239,5,255,247,4,255,255,145,255,247,
+  255,247,255,255,255,255,255,247,255,255,209,107,78,99,204,82,171,74,138,74,
+  139,74,73,58,200,49,167,49,41,66,8,58,3,106,66,146,74,66,138,66,
+  139,74,139,74,171,74,204,82,236,82,204,82,236,82,13,91,236,82,13,83,
+  236,82,13,83,180,132,54,133,22,133,22,125,3,21,125,143,22,125,22,133,
+  22,133,54,133,54,133,86,133,86,133,87,141,86,133,54,133,86,133,86,133,
+  87,141,87,141,86,133,3,54,133,143,86,141,54,133,54,133,54,141,183,165,
+  85,149,20,141,142,99,199,57,231,57,166,49,134,49,69,33,70,33,102,33,
+  3,102,41,129,101,41,7,134,41,131,166,49,166,49,166,41,4,166,49,135,
+  167,49,167,49,134,49,6,25,230,16,230,16,198,16,3,164,16,136,164,8,
+  165,8,133,8,133,8,230,16,171,82,175,123,49,132,3,240,123,138,240,131,
+  16,132,49,132,49,132,81,140,81,140,114,140,146,140,146,140,146,148,6,178,
+  148,129,210,148,4,211,148,7,211,156,132,243,156,211,156,243,156,243,156,5,
+  211,156,130,243,156,211,156,4,243,156,3,211,156,4,243,156,141,20,157,146,
+  148,106,66,195,24,4,33,228,24,228,24,228,32,227,24,228,24,228,32,228,
+  32,227,24,3,228,32,142,227,24,227,24,163,24,163,24,6,74,102,98,163,
+  57,102,90,195,65,98,49,163,57,135,90,195,65,130,49,3,131,49,141,131,
+  57,131,49,131,49,99,49,131,57,195,57,196,65,163,57,163,57,195,57,195,
+  65,195,65,130,49,3,98,49,144,131,49,130,49,98,49,131,49,172,123,208,
+  180,208,188,208,188,175,188,172,147,205,155,107,139,204,147,13,156,172,147,111,
+  172,4,208,188,131,232,130,98,49,98,49,3,99,49,130,98,49,98,49,3,
+  99,49,132,98,49,99,49,98,49,99,49,4,98,49,138,130,49,98,49,99,
+  49,98,49,98,49,99,49,99,49,98,49,99,49,131,49,3,98,49,134,99,
+  49,98,49,99,49,98,49,99,49,99,49,4,98,49,129,99,57,4,98,49,
+  3,99,49,145,66,49,197,57,47,148,143,172,143,180,176,180,143,180,77,172,
+  46,164,111,180,74,139,14,148,172,147,46,156,143,172,143,180,143,180,163,4,
+  131,44,99,44,99,12,99,4,44,99,129,45,99,5,44,99,134,45,99,44,
+  99,45,99,44,99,45,99,44,99,4,45,99,129,44,99,5,45,99,132,44,
+  99,45,99,44,99,44,99,6,45,99,133,77,99,45,99,44,91,45,99,45,
+  91,3,45,99,129,44,99,3,45,99,135,77,99,45,99,45,99,77,99,45,
+  99,45,99,77,99,8,45,99,134,77,99,45,99,45,91,45,91,77,99,45,
+  99,3,45,91,129,77,99,3,45,99,134,45,91,77,91,77,91,45,91,45,
+  99,45,99,6,45,91,130,45,99,45,99,22,45,91,129,45,99,4,45,91,
+  131,77,91,45,91,77,91,5,45,91,138,13,91,204,82,236,82,236,90,12,
+  91,45,91,110,99,207,107,49,116,114,124,4,147,124,131,179,132,179,132,180,
+  132,4,179,132,130,180,132,212,132,4,180,132,134,179,132,147,132,175,99,138,
+  66,227,16,130,8,7,130,16,139,163,16,195,16,227,24,227,24,228,24,228,
+  24,195,24,162,16,98,16,97,8,97,8,3,65,8,3,98,8,173,163,8,
+  228,16,37,25,102,33,8,50,106,66,171,66,46,83,208,99,50,116,82,124,
+  17,108,77,91,41,58,4,17,135,25,237,66,111,59,50,44,147,20,180,4,
+  245,12,245,12,245,4,21,109,53,157,182,173,105,82,138,82,138,74,138,82,
+  138,74,138,74,138,82,138,74,106,74,138,74,105,74,138,74,138,74,105,74,
+  138,74,105,74,105,74,106,74,3,105,74,133,106,74,105,74,106,74,106,74,
+  105,74,5,73,66,181,73,58,41,58,41,66,41,58,41,58,9,50,41,58,
+  41,58,9,50,41,58,9,50,9,50,232,41,232,41,8,50,233,49,232,49,
+  232,41,171,66,237,74,240,115,114,140,146,140,114,132,146,140,146,140,179,140,
+  147,140,146,132,146,140,82,124,82,132,207,115,174,115,142,115,239,123,16,132,
+  81,140,114,140,114,140,146,140,146,132,146,132,243,140,118,149,24,166,154,174,
+  93,207,125,207,125,207,190,223,157,215,92,199,3,125,207,131,92,207,93,207,
+  28,199,3,251,190,211,28,191,28,199,219,182,251,190,251,190,251,182,251,190,
+  251,190,154,182,154,174,154,174,251,190,154,182,187,182,219,182,154,182,186,182,
+  154,174,154,174,186,182,121,174,122,174,28,199,154,174,154,182,122,174,187,182,
+  122,174,122,174,89,166,122,174,89,166,57,158,187,182,122,174,187,182,89,174,
+  122,174,219,182,186,182,219,190,154,174,187,182,154,182,28,199,187,174,252,190,
+  219,182,154,174,28,191,219,182,252,190,220,182,28,191,219,182,252,190,252,182,
+  61,199,252,190,61,199,61,199,28,191,61,199,93,199,93,207,93,207,61,199,
+  158,215,93,207,126,215,126,215,158,215,158,215,191,223,158,223,191,223,223,231,
+  191,223,191,223,223,231,255,239,255,247,255,239,4,255,247,129,255,255,4,255,
+  247,133,255,255,255,247,255,247,255,255,255,255,8,255,247,129,255,255,5,255,
+  247,5,255,255,154,255,247,255,247,255,255,255,255,255,247,255,255,115,124,110,
+  99,171,82,171,74,171,74,139,74,73,58,200,49,41,58,200,49,41,66,74,
+  66,106,66,74,66,74,66,106,66,106,66,139,66,139,74,171,74,3,236,82,
+  129,13,91,4,236,82,135,114,116,86,141,54,133,54,133,22,125,21,125,22,
+  133,3,54,133,158,86,133,86,133,87,141,86,133,87,141,86,133,54,133,54,
+  133,21,133,21,133,245,132,213,132,180,124,147,116,147,116,115,116,82,108,50,
+  108,49,116,215,165,118,157,211,140,142,107,199,57,199,57,166,49,134,49,101,
+  41,69,33,102,33,3,102,41,6,134,41,157,166,41,166,41,134,41,166,41,
+  166,41,166,49,134,41,166,49,166,49,134,41,166,41,167,41,6,25,230,16,
+  7,17,230,16,197,16,132,8,132,8,165,8,165,8,133,8,133,0,198,16,
+  106,74,143,115,49,132,207,123,207,123,3,240,123,137,17,132,49,132,49,132,
+  81,140,114,140,146,140,146,140,146,148,146,148,4,178,148,3,179,148,130,178,
+  148,211,148,11,211,156,129,211,148,8,211,156,136,243,156,211,156,243,156,211,
+  156,211,156,243,156,211,156,211,156,3,243,156,140,210,148,204,82,195,24,228,
+  32,228,32,228,24,228,24,228,32,228,32,227,24,228,32,228,32,3,228,24,
+  167,228,32,195,24,163,24,163,24,198,57,135,106,162,57,103,90,5,74,130,
+  49,163,57,134,90,228,73,98,49,131,49,130,49,131,49,131,49,98,49,196,
+  65,5,74,5,74,4,74,69,90,37,82,36,74,101,90,134,98,101,90,195,
+  65,99,49,99,49,131,49,99,49,99,49,98,49,98,41,42,107,208,180,3,
+  208,188,161,111,180,143,180,79,180,111,180,111,180,111,172,110,180,110,172,77,
+  164,13,164,13,156,199,114,130,57,99,49,99,49,98,49,98,49,99,49,99,
+  49,131,49,131,57,99,49,99,57,99,49,98,49,99,49,131,49,98,49,98,
+  49,99,49,99,57,99,49,98,49,3,99,49,130,98,49,98,49,6,99,49,
+  138,98,49,98,49,99,49,98,49,99,49,98,49,130,57,98,49,98,49,98,
+  57,3,98,49,130,131,57,196,65,3,98,57,144,99,49,173,123,176,172,143,
+  180,143,180,175,188,9,147,173,131,42,131,200,122,108,131,42,131,75,115,144,
+  172,143,180,143,180,146,4,131,44,99,44,99,45,99,4,44,99,130,45,99,
+  45,99,3,44,99,131,45,99,45,99,44,99,5,45,99,130,44,99,44,99,
+  12,45,99,130,77,99,44,99,3,45,99,137,44,99,45,99,44,99,45,99,
+  77,99,44,99,45,99,44,99,77,99,4,45,99,130,77,99,77,99,7,45,
+  99,129,44,99,3,45,99,129,45,91,5,45,99,144,45,91,44,91,77,99,
+  45,91,44,91,45,91,45,91,45,99,77,99,45,99,45,99,77,99,44,99,
+  45,99,45,99,45,91,3,45,99,145,45,91,45,99,45,91,45,99,77,91,
+  45,91,45,99,45,91,77,91,77,91,45,91,45,91,45,99,45,91,45,99,
+  45,91,45,99,21,45,91,160,12,91,236,82,236,82,236,90,13,91,77,99,
+  110,99,240,107,49,116,114,124,146,124,147,124,147,124,179,132,179,132,179,124,
+  179,132,211,132,179,132,179,132,180,124,211,132,179,132,180,132,179,132,211,132,
+  211,132,179,132,114,124,110,99,73,58,163,8,8,130,16,131,163,16,195,24,
+  227,24,3,228,24,132,195,24,130,16,98,8,97,8,3,65,8,161,98,8,
+  98,8,163,16,228,24,167,33,9,50,106,66,204,74,45,91,78,99,111,99,
+  208,107,82,116,179,124,212,132,179,132,17,108,13,83,167,33,4,9,74,26,
+  78,27,50,20,180,12,245,12,21,13,22,13,54,13,211,116,118,157,85,165,
+  105,74,170,82,7,138,74,144,105,74,105,74,138,74,106,74,106,74,105,74,
+  138,74,105,74,106,74,105,74,106,74,105,74,106,74,105,74,105,74,106,74,
+  4,73,66,133,41,58,73,66,73,66,41,58,41,66,3,41,58,3,9,58,
+  175,9,50,9,58,9,50,232,41,8,50,232,49,233,49,232,49,200,41,171,
+  66,13,91,143,107,146,140,179,140,146,140,146,140,211,140,212,148,147,132,179,
+  140,82,132,114,132,49,124,175,115,142,115,142,115,239,123,49,132,114,140,81,
+  140,81,132,114,140,114,132,146,132,211,140,117,149,56,166,219,182,28,191,157,
+  215,125,215,157,215,157,215,125,215,157,215,125,215,92,207,3,60,199,136,251,
+  198,27,191,60,199,251,190,27,191,251,190,251,190,219,182,3,251,190,196,219,
+  190,219,182,186,182,251,190,57,166,153,174,219,190,121,174,121,174,186,182,154,
+  182,186,182,122,174,121,174,219,182,122,174,154,174,89,174,122,174,154,174,121,
+  174,24,158,187,182,122,174,155,174,122,174,122,166,122,174,187,182,219,190,154,
+  174,251,190,187,182,122,174,187,182,219,182,219,182,154,182,122,166,252,190,155,
+  166,187,174,187,174,187,182,220,182,187,182,187,182,252,190,29,191,61,199,252,
+  190,252,190,28,191,61,191,61,199,28,191,93,207,126,207,93,199,158,223,126,
+  207,93,199,93,207,158,215,158,215,191,223,191,231,158,223,3,191,223,137,223,
+  231,255,239,223,239,255,247,255,239,223,239,255,247,255,247,255,255,22,255,247,
+  7,255,255,147,255,247,255,255,255,247,255,255,255,255,213,140,13,83,171,74,
+  203,74,171,74,139,74,106,66,233,49,73,58,232,49,8,58,74,66,106,66,
+  74,66,4,106,66,142,139,66,139,74,204,82,236,82,236,82,237,82,236,90,
+  236,82,236,82,204,74,17,108,86,141,54,133,22,133,5,21,133,158,245,132,
+  245,124,245,124,212,124,180,124,179,116,147,116,115,116,50,108,240,91,208,91,
+  175,83,111,75,78,75,46,67,45,67,13,67,237,58,236,58,237,74,183,165,
+  85,149,146,132,207,115,199,57,231,57,167,49,134,49,101,41,69,33,4,102,
+  41,10,134,41,153,166,49,166,49,134,41,166,49,166,49,166,41,166,49,167,
+  41,38,25,7,17,6,25,197,16,165,16,132,8,132,16,164,8,165,8,133,
+  8,101,0,165,8,107,74,143,115,17,132,207,123,208,123,3,240,123,135,16,
+  132,49,132,81,132,81,140,114,140,114,140,146,140,3,146,148,139,179,148,178,
+  148,178,148,179,148,178,148,178,148,211,148,211,148,211,156,211,148,211,148,6,
+  211,156,5,211,148,130,211,156,211,148,6,211,156,144,211,148,243,156,211,156,
+  211,156,243,156,243,156,211,156,243,156,243,156,211,156,77,99,227,16,228,32,
+  228,32,228,24,228,24,5,228,32,3,228,24,153,228,32,228,32,163,24,162,
+  16,133,49,167,106,163,65,102,82,37,82,98,49,130,49,102,90,4,82,98,
+  49,131,49,130,49,130,57,131,49,131,49,4,74,134,98,134,98,37,82,36,
+  74,36,74,4,69,82,156,228,73,131,49,131,49,98,49,131,57,99,49,131,
+  49,98,49,167,90,79,164,78,172,45,164,13,156,237,155,204,147,139,139,74,
+  131,41,123,9,107,200,98,167,90,102,82,38,74,4,74,163,57,98,49,98,
+  49,130,57,3,98,49,130,99,49,131,49,3,98,49,129,131,49,4,98,49,
+  136,131,57,131,49,98,49,99,49,99,49,98,49,98,49,99,49,4,98,49,
+  153,99,49,98,49,98,49,99,49,99,49,98,49,98,57,130,49,130,57,131,
+  57,163,57,5,74,196,65,37,82,4,82,37,82,4,74,36,82,69,90,130,
+  65,98,49,98,49,99,49,234,90,176,164,3,175,180,138,237,171,46,156,172,
+  155,204,147,78,172,78,172,46,172,176,180,175,188,143,188,188,4,7,44,99,
+  130,77,99,45,99,5,44,99,138,45,99,44,99,77,99,45,99,44,99,44,
+  99,45,99,44,99,45,99,44,99,3,45,99,130,44,99,44,99,5,45,99,
+  129,44,99,3,45,99,131,45,91,77,99,45,91,6,45,99,129,44,99,3,
+  45,99,140,77,99,45,99,44,99,45,99,77,99,45,99,77,99,45,99,45,
+  91,45,99,45,99,77,99,6,45,99,129,77,99,7,45,99,135,45,91,45,
+  99,45,99,44,99,77,99,45,91,77,99,3,45,91,135,45,99,45,91,45,
+  99,45,99,45,91,77,91,45,99,3,45,91,132,77,91,77,91,45,91,77,
+  99,14,45,91,132,45,99,45,91,45,91,77,91,4,45,91,129,77,91,4,
+  45,91,160,236,82,236,82,203,82,12,91,45,91,46,99,143,99,241,107,82,
+  116,114,124,146,124,147,124,147,124,179,124,179,132,179,132,180,132,179,132,179,
+  132,179,124,179,124,180,132,212,132,180,132,179,132,180,132,179,124,179,132,82,
+  124,78,91,232,49,130,8,8,130,16,131,163,16,195,24,195,24,3,228,24,
+  133,195,24,130,16,98,8,97,8,97,8,3,98,8,158,163,8,4,17,135,
+  33,74,58,236,74,45,83,142,99,208,115,240,115,240,115,17,116,114,124,180,
+  124,244,132,245,140,147,132,143,99,236,50,139,2,204,2,176,3,115,12,180,
+  12,245,12,245,12,245,4,54,21,52,149,118,157,178,140,5,138,82,134,138,
+  74,138,74,137,74,105,74,138,74,106,74,3,138,74,129,105,74,3,106,74,
+  136,105,74,105,74,73,74,106,74,105,74,105,74,73,74,73,74,4,73,66,
+  130,41,66,73,66,3,41,58,147,9,58,9,58,9,50,41,58,9,50,41,
+  50,9,50,9,50,232,49,232,49,232,41,233,41,233,49,168,33,211,140,45,
+  91,17,124,146,140,114,140,4,179,140,133,147,140,179,140,82,124,82,124,49,
+  124,3,142,115,145,207,123,81,132,146,140,114,140,114,140,146,140,178,140,178,
+  140,243,140,117,149,88,166,251,190,60,199,158,215,125,215,125,207,92,199,3,
+  125,207,129,92,199,3,60,199,214,251,190,28,191,251,190,251,190,251,182,28,
+  191,60,199,219,182,219,182,251,182,219,182,27,191,251,182,219,190,219,182,219,
+  182,218,182,187,182,154,174,154,182,186,182,154,174,122,174,154,174,122,174,154,
+  182,219,182,154,174,89,166,154,174,122,174,89,166,24,158,187,182,89,166,187,
+  182,155,174,187,182,154,174,251,190,219,190,219,182,187,182,122,174,154,182,155,
+  174,219,182,219,182,122,174,251,190,61,199,28,191,187,182,219,182,220,182,252,
+  190,28,191,219,182,220,182,252,190,252,190,188,182,252,182,29,191,61,191,61,
+  199,93,199,93,199,94,199,126,207,158,215,93,207,93,199,126,215,190,223,158,
+  223,191,223,191,223,190,223,158,215,191,223,223,231,191,231,223,231,223,231,255,
+  247,4,255,239,10,255,247,129,255,239,3,255,247,4,255,239,130,255,247,255,
+  247,9,255,255,158,255,247,255,255,255,247,255,247,255,255,255,255,213,132,175,
+  107,204,82,171,74,138,66,138,74,106,66,41,58,73,66,139,66,167,41,73,
+  58,138,66,106,66,74,66,106,66,74,66,74,66,106,66,139,74,203,82,204,
+  82,236,82,236,82,3,204,82,169,172,74,143,91,180,124,180,124,147,116,115,
+  108,115,108,50,108,50,108,17,100,240,91,208,91,208,83,207,83,143,83,110,
+  83,143,83,143,75,110,75,110,75,111,75,111,83,143,83,144,83,143,83,144,
+  83,143,83,111,83,111,83,47,83,150,157,118,157,243,140,49,124,232,57,231,
+  57,167,49,166,49,102,41,69,33,101,41,3,102,41,131,134,41,134,41,102,
+  41,5,134,41,153,166,49,166,49,134,49,134,49,134,41,134,49,134,41,134,
+  49,134,49,167,49,38,25,6,25,6,25,230,16,165,16,132,8,132,16,164,
+  16,133,8,133,8,133,0,165,8,74,66,143,115,49,132,3,207,123,131,240,
+  123,240,123,16,132,3,81,140,130,114,140,114,140,3,146,140,130,146,148,146,
+  148,6,178,148,129,179,148,5,211,148,137,211,156,211,156,211,148,211,156,211,
+  156,211,148,211,156,211,148,211,156,4,211,148,3,211,156,136,211,148,211,156,
+  211,156,211,148,243,156,243,156,211,156,211,148,3,211,156,157,142,107,4,25,
+  228,32,228,32,228,24,228,32,228,24,228,24,228,32,228,32,227,24,228,32,
+  227,32,228,32,228,24,228,24,195,24,130,16,36,33,168,98,196,73,37,74,
+  70,90,130,57,131,49,70,82,70,90,130,49,131,49,4,130,49,142,195,57,
+  36,74,228,73,196,65,163,57,131,57,195,65,195,65,131,57,163,57,131,57,
+  98,49,98,49,131,49,3,98,49,161,130,49,196,65,167,98,134,90,102,82,
+  37,74,228,65,195,57,163,57,131,57,130,49,98,49,66,49,98,41,66,41,
+  98,49,99,49,163,65,98,49,99,49,131,57,98,49,98,49,99,49,98,49,
+  99,49,99,49,98,49,98,49,99,49,99,49,99,57,99,49,3,98,49,5,
+  99,49,131,98,49,228,65,69,82,3,163,65,165,228,65,228,65,36,82,37,
+  82,70,90,37,82,69,82,69,82,200,106,228,81,102,90,134,90,166,98,101,
+  90,134,98,69,90,69,82,101,82,195,73,98,49,99,57,98,49,71,74,144,
+  156,175,180,176,180,144,180,143,180,143,180,111,172,78,172,78,164,13,164,237,
+  155,172,147,139,139,74,123,134,4,7,44,99,141,45,99,44,99,45,99,12,
+  99,44,99,44,99,12,99,44,91,45,99,44,99,45,99,45,99,44,99,7,
+  45,99,131,44,99,45,99,44,99,16,45,99,135,44,99,45,99,45,91,45,
+  99,45,99,44,99,45,91,3,45,99,129,45,91,3,77,99,5,45,99,129,
+  77,99,4,45,99,3,77,99,132,45,99,45,99,77,99,45,91,4,45,99,
+  8,45,91,3,45,99,14,45,91,129,77,91,11,45,91,162,77,91,45,91,
+  45,91,77,99,77,91,45,91,45,91,77,91,45,91,45,91,236,82,236,82,
+  235,82,13,91,45,99,77,99,175,107,17,116,82,124,114,124,146,124,147,124,
+  147,124,179,124,179,132,179,132,179,124,211,132,179,132,179,132,212,132,179,132,
+  180,132,179,132,3,179,124,133,179,132,49,124,45,91,167,41,130,8,7,130,
+  16,179,162,16,163,16,195,24,195,24,228,24,228,24,227,24,163,24,130,16,
+  98,8,97,8,130,16,130,16,98,8,130,8,228,16,102,25,41,50,204,66,
+  78,91,143,99,208,107,240,115,16,116,16,116,49,116,115,124,212,124,245,132,
+  245,132,212,132,50,108,240,59,143,3,111,3,17,4,115,12,148,12,212,12,
+  245,12,54,13,21,37,211,140,183,165,16,124,138,74,170,82,138,82,170,82,
+  138,74,138,82,3,138,74,129,105,74,3,138,74,4,105,74,129,106,74,6,
+  105,74,7,73,66,131,41,66,41,66,41,58,3,9,58,130,9,50,41,50,
+  3,9,50,131,232,49,232,49,233,41,3,232,41,150,200,33,244,148,139,66,
+  240,115,146,132,211,148,211,140,211,140,179,140,147,140,179,140,179,140,82,124,
+  17,116,17,124,174,115,110,107,175,115,240,123,49,132,114,140,114,140,3,146,
+  140,147,211,140,211,140,150,157,121,174,251,190,157,215,125,215,92,207,125,207,
+  92,199,92,207,157,215,92,207,125,215,92,199,125,207,251,190,92,199,27,191,
+  4,251,190,129,92,207,5,219,182,205,186,182,154,174,154,174,121,174,219,182,
+  186,182,187,182,154,174,219,182,154,182,154,182,122,174,187,182,89,174,89,166,
+  187,182,89,166,154,182,89,166,122,174,154,174,187,182,121,174,122,174,154,182,
+  154,174,219,182,252,190,154,174,187,182,187,182,90,166,219,182,187,182,187,182,
+  154,174,187,182,219,190,219,190,93,199,187,174,155,174,219,190,252,182,252,182,
+  220,182,187,174,187,174,219,182,28,191,29,191,61,199,93,199,252,190,93,199,
+  28,191,61,207,93,199,94,207,126,207,94,207,93,199,93,199,190,223,126,215,
+  158,215,190,223,190,223,158,223,190,223,191,231,223,231,255,239,223,231,255,247,
+  255,247,255,239,10,255,247,3,255,239,131,255,247,255,247,255,239,4,255,247,
+  3,255,255,129,255,247,7,255,255,3,255,247,161,255,255,255,255,147,124,82,
+  132,236,82,106,74,171,74,138,74,138,74,74,66,9,58,138,66,41,58,41,
+  58,106,66,73,66,73,66,74,66,74,66,42,58,74,66,138,66,171,74,171,
+  82,204,82,204,90,204,82,204,82,172,82,171,74,204,82,208,99,241,91,3,
+  208,91,163,176,91,208,99,208,99,240,99,241,107,17,116,49,116,17,108,208,
+  107,241,107,50,108,82,116,115,116,115,124,115,124,147,124,115,124,115,116,82,
+  116,18,108,18,100,241,91,144,83,118,157,85,157,20,149,81,124,231,57,231,
+  57,167,49,166,49,101,41,37,33,101,41,101,41,3,102,41,3,134,41,137,
+  134,49,134,41,134,49,134,41,134,41,166,49,166,49,134,41,134,41,4,166,
+  49,154,134,41,38,25,230,24,6,25,230,16,165,16,132,8,132,8,164,8,
+  132,8,132,8,133,0,133,8,42,66,110,115,49,132,208,123,175,123,207,123,
+  207,123,16,132,113,140,146,148,147,148,146,140,82,140,3,114,140,134,146,140,
+  146,140,146,148,178,148,146,148,146,148,3,178,148,135,211,148,178,148,211,148,
+  211,148,211,156,211,148,211,156,5,211,148,129,211,156,3,211,148,148,211,156,
+  211,148,211,148,211,156,211,148,211,156,211,156,211,148,211,148,211,156,211,148,
+  243,156,243,156,211,156,211,156,243,156,243,156,240,123,69,33,227,24,3,228,
+  32,4,228,24,131,228,32,228,24,228,24,3,228,32,139,195,24,162,24,228,
+  24,136,98,4,82,4,74,102,90,131,57,130,49,5,74,134,98,4,130,57,
+  3,130,49,145,130,57,131,57,131,49,131,49,130,57,98,57,130,57,98,49,
+  130,49,98,49,130,49,130,49,98,49,99,49,131,49,130,49,130,57,4,98,
+  49,147,99,49,131,57,163,57,196,65,5,74,38,82,102,90,167,98,200,106,
+  9,115,74,123,107,131,171,147,70,98,98,57,99,49,99,49,98,49,131,49,
+  3,99,49,132,98,49,99,49,98,49,99,49,5,98,49,5,99,49,171,98,
+  49,4,66,199,106,101,90,200,106,102,98,102,90,134,90,102,98,134,90,232,
+  106,36,82,69,82,36,82,102,90,163,65,37,74,4,74,196,65,130,57,163,
+  57,131,57,131,49,163,57,130,57,98,49,99,49,67,49,229,57,172,123,139,
+  131,75,131,10,123,232,106,199,98,134,90,69,82,5,74,228,73,163,57,131,
+  57,98,57,98,49,119,4,3,44,99,142,45,99,44,99,45,99,44,99,44,
+  99,45,99,44,99,44,91,45,99,44,99,44,99,45,99,45,99,44,99,4,
+  45,99,135,77,99,45,99,44,99,45,99,45,99,44,99,77,99,7,45,99,
+  129,44,99,8,45,99,133,45,91,77,99,77,99,77,91,45,91,9,45,99,
+  130,45,91,77,99,9,45,99,133,77,99,77,99,45,99,45,99,77,99,4,
+  45,99,133,44,91,45,99,45,99,45,91,45,99,5,45,91,129,45,99,3,
+  45,91,134,45,99,45,91,77,91,45,91,45,99,45,91,3,45,99,4,45,
+  91,129,77,91,18,45,91,132,77,91,45,91,45,91,13,91,3,236,82,134,
+  12,91,45,91,110,99,208,107,49,116,82,124,4,147,124,6,179,132,131,179,
+  124,179,124,179,132,6,179,124,132,17,116,236,82,134,33,130,8,8,130,16,
+  135,195,24,195,24,227,24,228,24,195,24,195,24,163,16,5,130,16,167,130,
+  8,163,16,70,33,8,50,171,66,45,75,78,83,143,91,208,99,240,107,208,
+  107,241,107,50,116,147,124,212,132,244,132,245,132,245,132,147,108,114,60,50,
+  20,18,12,50,4,115,12,180,12,245,12,245,12,54,5,21,53,211,140,247,
+  173,109,107,138,82,170,82,170,82,138,82,138,82,138,74,138,74,3,105,74,
+  136,138,74,105,74,138,74,138,74,105,74,138,74,105,74,106,74,6,105,74,
+  130,73,74,74,66,4,73,66,129,41,66,5,41,58,5,9,50,144,8,50,
+  8,50,232,41,232,41,232,49,232,41,232,41,200,41,110,99,204,74,179,140,
+  146,132,146,140,212,140,179,140,178,140,3,179,140,167,82,124,17,124,17,124,
+  142,115,142,115,207,115,49,132,81,132,81,140,146,140,146,140,114,140,114,132,
+  146,132,244,140,150,149,89,166,92,199,60,199,125,215,157,215,125,207,93,207,
+  92,207,60,199,60,199,92,199,251,182,60,199,27,191,28,191,251,190,251,190,
+  60,199,251,190,219,182,27,191,251,190,187,182,5,219,182,206,186,182,122,174,
+  187,182,89,166,219,182,121,174,186,174,154,182,219,182,154,182,186,182,154,182,
+  122,174,154,174,89,174,57,166,89,174,121,174,219,182,122,174,154,174,154,174,
+  186,182,122,174,28,191,187,182,89,174,122,174,155,182,154,174,219,182,121,174,
+  122,174,219,182,122,174,219,190,154,182,252,190,187,174,220,182,252,182,219,182,
+  219,182,187,174,122,166,220,182,252,182,219,182,28,199,61,199,93,207,28,191,
+  61,199,252,182,93,199,126,207,61,199,126,207,93,199,61,199,158,215,158,215,
+  126,215,158,215,158,215,158,223,158,215,191,231,158,223,191,223,223,231,223,231,
+  255,239,255,247,255,239,255,247,255,239,255,255,3,255,247,135,255,239,255,239,
+  255,247,255,247,255,239,255,247,255,247,5,255,239,130,255,247,255,255,4,255,
+  247,11,255,255,150,158,239,176,107,240,115,204,82,139,74,139,74,171,74,138,
+  74,138,74,41,58,106,66,106,66,73,58,41,58,73,66,41,66,41,58,73,
+  66,41,58,74,66,106,66,138,74,3,171,82,150,172,82,203,82,171,74,139,
+  74,172,74,208,115,114,132,114,124,114,132,146,140,146,140,179,140,179,148,179,
+  148,211,148,244,156,212,148,179,140,115,124,115,124,147,132,212,132,3,180,132,
+  151,180,124,148,124,115,116,83,116,50,108,18,100,242,91,144,83,86,149,118,
+  157,20,149,81,124,231,57,231,57,167,49,166,49,102,41,37,33,102,41,101,
+  41,101,41,102,41,102,41,5,134,41,133,134,49,134,41,166,49,134,41,167,
+  49,3,134,41,137,166,49,134,41,135,49,134,49,38,33,230,16,6,17,230,
+  16,165,16,3,132,8,129,165,8,3,133,8,142,9,58,110,107,17,132,208,
+  123,175,115,207,123,207,123,49,132,146,148,244,156,212,148,179,148,114,140,82,
+  140,3,114,140,129,146,140,4,146,148,3,178,148,133,211,148,179,148,210,148,
+  178,148,178,148,6,211,148,130,211,156,211,156,5,211,148,129,211,156,6,211,
+  148,139,211,156,211,148,211,148,211,156,211,148,211,156,211,156,243,156,49,132,
+  166,41,227,24,4,228,24,132,228,32,227,24,228,32,228,32,5,228,24,148,
+  195,24,162,16,195,24,104,90,69,90,196,65,135,98,163,65,130,49,228,65,
+  134,90,163,57,130,57,130,57,131,57,131,49,131,49,130,49,131,49,130,49,
+  5,131,57,3,130,49,170,98,49,131,49,130,49,131,49,130,49,130,49,131,
+  49,131,57,70,82,9,107,74,123,107,131,140,139,204,147,237,155,237,163,46,
+  164,78,172,46,172,13,164,111,172,176,180,176,188,208,188,9,139,98,57,131,
+  49,131,57,98,49,99,49,99,49,99,57,98,49,131,57,131,57,99,49,131,
+  57,98,49,98,49,99,49,99,49,98,49,3,99,49,136,99,57,99,49,99,
+  49,163,57,36,74,228,73,37,82,228,73,3,195,65,136,163,57,195,65,130,
+  57,131,57,130,57,130,49,98,49,131,57,3,98,49,129,98,57,5,98,49,
+  134,99,49,99,49,98,49,163,57,131,49,98,49,4,66,49,3,98,49,132,
+  131,57,164,65,196,73,4,74,141,4,5,44,99,129,45,99,4,44,99,129,
+  45,99,4,44,99,3,45,99,129,44,99,9,45,99,129,77,99,21,45,99,
+  130,44,99,77,99,4,45,99,134,44,91,45,99,77,99,45,91,45,99,77,
+  99,3,45,99,136,44,91,45,91,77,91,45,91,44,91,45,99,45,99,45,
+  91,3,45,99,132,45,91,45,99,77,99,45,99,7,45,91,135,45,99,45,
+  99,45,91,45,91,45,99,45,91,45,99,3,45,91,3,45,99,4,45,91,
+  131,77,91,45,91,77,91,9,45,91,129,77,91,5,45,91,134,77,91,77,
+  91,45,91,45,91,77,91,12,83,3,236,82,139,12,91,77,91,110,99,208,
+  107,49,116,82,124,115,124,147,124,147,124,179,132,179,124,5,179,132,129,211,
+  124,3,179,132,3,179,124,137,147,124,147,124,240,107,204,74,69,33,130,8,
+  130,16,130,16,130,8,5,130,16,174,163,16,195,24,195,24,195,16,195,24,
+  163,16,130,16,130,16,98,8,130,16,130,16,162,16,130,16,37,25,8,58,
+  203,74,45,91,78,91,111,91,143,91,175,99,208,107,208,107,240,107,50,116,
+  147,124,212,132,245,132,244,132,244,132,179,108,147,60,82,20,50,4,82,4,
+  147,12,245,12,21,13,54,21,54,21,244,84,52,149,24,174,203,90,138,82,
+  170,82,3,138,82,129,105,74,4,138,74,140,105,74,105,74,106,74,105,74,
+  138,74,105,74,105,74,138,74,105,74,105,74,106,74,105,74,3,73,74,5,
+  73,66,129,41,66,4,41,58,130,9,58,9,58,5,9,50,255,232,49,8,
+  42,232,41,232,41,233,49,8,50,232,41,236,74,204,74,146,140,114,140,114,
+  140,147,140,17,124,49,132,244,156,20,149,146,132,114,132,49,124,240,115,110,
+  107,142,107,207,123,16,132,114,140,114,140,179,148,114,140,114,132,114,132,146,
+  140,243,140,150,149,121,174,251,182,60,199,125,215,157,215,125,215,125,207,125,
+  207,28,191,92,199,60,199,28,191,28,191,251,190,251,190,219,182,251,190,251,
+  182,219,182,251,182,219,182,186,182,187,182,219,182,219,182,252,190,186,174,187,
+  182,219,182,154,174,187,182,121,174,187,182,154,182,121,174,122,174,187,182,187,
+  182,187,174,187,182,89,174,154,174,122,174,187,182,154,182,89,166,154,182,121,
+  174,154,174,122,174,154,174,122,174,187,182,122,174,89,174,154,182,89,174,187,
+  182,154,182,122,174,187,182,219,182,89,166,219,182,154,182,28,191,219,182,219,
+  182,187,182,219,182,90,166,187,182,123,174,155,174,187,182,187,174,61,191,93,
+  199,28,191,28,191,252,182,61,191,29,191,93,207,29,191,93,199,93,199,94,
+  207,126,207,126,207,126,215,158,223,158,215,139,190,223,158,215,191,231,190,223,
+  223,239,191,231,255,247,255,247,255,239,223,231,255,247,4,255,239,130,255,247,
+  255,247,9,255,239,5,255,247,132,255,255,255,255,255,247,255,247,7,255,255,
+  142,255,247,255,247,255,255,255,247,18,116,50,124,236,90,138,74,139,74,138,
+  74,138,74,138,66,41,66,74,66,5,73,66,3,41,58,146,41,66,73,66,
+  106,74,138,74,171,82,203,82,171,82,172,82,171,82,171,74,171,74,239,123,
+  244,156,243,148,243,156,243,148,243,156,243,156,4,244,156,135,244,148,179,140,
+  114,124,115,124,147,132,180,132,212,132,3,180,124,148,148,124,147,116,83,116,
+  50,108,18,100,242,91,145,83,53,149,150,157,243,148,81,124,232,57,231,57,
+  199,57,166,49,134,41,37,33,69,41,101,41,101,41,3,102,41,131,134,41,
+  134,41,134,49,4,134,41,161,134,49,135,49,135,49,167,49,166,49,134,41,
+  167,49,166,41,134,41,38,33,230,16,6,17,230,16,197,16,132,8,132,8,
+  132,16,132,8,132,8,133,8,133,8,201,49,110,107,17,132,240,123,143,115,
+  175,115,207,123,49,132,146,148,244,156,244,156,179,148,6,114,140,130,146,140,
+  146,140,3,146,148,136,178,148,178,148,179,148,179,148,178,148,179,148,178,148,
+  178,148,3,211,148,130,211,156,211,156,13,211,148,144,211,156,211,148,211,148,
+  211,156,211,148,211,156,211,148,211,148,211,156,114,140,232,49,195,24,227,24,
+  228,32,195,24,227,24,3,228,32,130,228,24,228,24,4,228,32,145,227,24,
+  162,16,163,16,39,74,102,98,163,57,134,98,228,65,130,49,195,65,167,98,
+  195,65,98,49,131,57,130,49,131,49,130,57,3,131,49,3,130,57,195,131,
+  57,99,49,131,49,130,49,131,49,99,49,130,49,98,49,98,57,98,49,131,
+  49,130,49,131,49,9,107,112,172,144,180,176,188,46,164,14,164,144,180,13,
+  164,237,147,241,188,45,164,172,147,237,147,208,180,208,188,241,188,203,155,130,
+  57,130,49,130,49,131,49,131,49,99,49,131,49,131,57,98,49,131,49,99,
+  49,99,49,131,49,131,49,98,49,98,57,131,57,98,49,98,49,98,57,98,
+  57,99,49,98,49,99,49,130,49,131,57,99,49,98,49,130,57,130,57,98,
+  49,99,49,98,49,98,49,99,57,98,49,130,49,9,98,49,138,130,57,98,
+  49,131,57,131,57,164,65,196,65,228,73,5,74,37,82,38,82,3,102,90,
+  134,102,98,135,98,103,98,103,90,102,90,70,90,179,4,135,12,99,12,99,
+  44,99,45,99,44,99,44,99,45,99,3,44,99,130,45,99,44,99,3,45,
+  99,130,44,99,45,99,3,44,99,5,45,99,130,44,99,44,99,3,45,99,
+  129,77,99,4,45,99,129,77,99,8,45,99,132,45,91,45,99,45,99,44,
+  99,3,45,99,129,45,91,3,45,99,129,45,91,3,45,99,131,45,91,45,
+  91,77,99,4,45,99,133,77,99,45,99,77,99,77,99,45,99,3,45,91,
+  4,45,99,129,45,91,3,45,99,4,45,91,130,45,99,45,99,6,45,91,
+  129,45,99,3,45,91,133,45,99,45,91,77,91,45,91,45,99,5,45,91,
+  130,45,99,44,91,4,45,91,131,77,91,45,91,77,91,7,45,91,153,77,
+  91,77,91,45,91,236,90,236,82,236,82,236,90,13,91,45,91,143,107,240,
+  107,82,116,114,124,146,124,147,124,147,132,179,124,179,132,179,124,179,132,179,
+  132,179,124,179,124,180,132,179,132,5,179,124,138,147,116,147,124,208,99,203,
+  74,37,25,130,8,130,16,130,16,98,8,98,8,4,130,16,175,162,16,162,
+  16,163,16,163,16,162,16,130,16,130,16,98,8,130,16,130,16,131,16,162,
+  16,163,16,167,41,203,82,78,107,142,107,175,99,143,99,143,99,175,99,175,
+  99,208,107,241,107,50,116,147,124,212,132,244,132,244,132,244,124,179,100,147,
+  52,50,12,50,4,115,12,212,12,245,20,22,37,54,53,21,61,53,125,85,
+  149,215,173,138,82,170,82,170,82,138,82,3,138,74,134,105,74,106,74,138,
+  82,105,74,137,74,106,74,3,138,74,3,105,74,138,106,74,106,74,105,74,
+  106,74,106,74,73,66,105,66,73,74,73,66,41,66,3,73,66,4,41,58,
+  3,9,58,3,9,50,191,8,50,232,49,232,41,9,50,232,41,232,49,232,
+  41,204,66,110,99,78,83,146,140,81,132,114,140,114,140,175,107,208,107,20,
+  157,20,157,244,148,114,132,49,124,240,123,142,107,110,107,207,123,16,132,114,
+  140,114,140,146,140,114,140,81,132,146,140,211,140,20,141,215,157,154,174,251,
+  182,125,207,157,215,125,207,125,207,125,215,27,191,60,191,28,191,28,191,219,
+  182,28,191,187,182,251,190,251,190,219,190,219,190,187,182,219,190,154,182,186,
+  182,186,182,219,190,219,182,27,191,219,182,219,182,3,154,174,175,122,174,154,
+  174,187,182,89,166,186,174,186,182,89,174,154,174,187,182,89,166,154,174,187,
+  182,57,166,57,166,89,174,154,174,89,166,154,174,122,174,154,182,121,174,122,
+  174,154,182,89,166,154,182,154,174,122,174,219,190,154,174,28,191,28,199,252,
+  190,154,174,122,174,187,182,154,174,28,191,122,174,187,182,122,174,188,182,123,
+  174,219,182,187,174,253,190,28,191,61,191,3,28,191,150,29,191,61,199,93,
+  207,29,191,93,199,93,207,93,207,126,207,158,223,93,207,158,215,190,223,158,
+  215,158,223,190,231,190,223,223,231,223,231,255,239,255,239,223,239,223,239,4,
+  255,239,130,255,247,255,247,7,255,239,130,255,247,223,239,4,255,239,133,255,
+  247,255,247,255,255,255,255,255,247,7,255,255,129,255,247,3,255,239,132,255,
+  255,50,116,147,132,77,99,3,106,66,144,139,74,138,74,74,66,106,74,41,
+  66,73,66,73,66,41,66,73,66,41,58,9,58,41,58,41,66,41,66,74,
+  66,138,74,3,171,82,135,204,82,171,82,171,74,171,74,142,107,243,156,243,
+  156,4,243,148,129,244,148,3,244,156,160,244,148,179,140,114,124,82,124,147,
+  124,180,132,180,124,180,124,180,132,179,124,147,124,115,124,83,116,50,108,242,
+  91,242,91,144,83,21,149,150,157,243,140,114,132,8,58,231,57,199,57,167,
+  49,134,41,37,33,101,41,102,41,102,33,101,41,102,41,6,134,41,144,135,
+  41,166,41,134,41,134,41,166,49,166,49,167,49,135,41,134,49,166,49,134,
+  41,70,33,6,17,6,17,230,16,197,16,3,132,8,146,133,8,132,8,133,
+  0,101,0,169,41,78,107,17,124,208,123,143,115,143,115,175,115,240,123,81,
+  140,147,148,179,148,146,140,82,140,81,132,3,114,140,5,146,140,139,146,148,
+  146,148,146,140,179,148,178,148,178,148,179,148,178,148,178,148,211,148,178,148,
+  24,211,148,132,211,156,146,140,106,66,195,24,5,228,24,130,228,32,228,24,
+  3,228,32,145,4,33,228,32,228,32,227,24,163,24,162,16,230,65,135,106,
+  163,57,135,90,5,74,130,57,163,57,134,90,4,82,130,49,131,57,3,130,
+  57,187,131,49,131,49,98,49,131,57,130,57,131,49,130,49,131,57,131,57,
+  163,57,163,57,195,57,131,57,130,57,131,49,99,49,131,49,131,49,98,49,
+  168,90,176,172,241,188,240,188,171,147,75,131,237,147,173,147,201,106,176,172,
+  46,164,107,131,172,139,176,180,209,188,240,188,77,172,194,73,98,49,130,49,
+  99,49,131,57,99,57,99,49,99,49,131,49,131,57,131,57,99,49,131,49,
+  131,57,130,57,98,49,98,49,99,49,98,49,98,57,130,49,99,49,131,57,
+  3,99,49,130,98,49,130,57,3,98,49,129,99,49,3,98,49,137,99,49,
+  131,57,131,57,163,57,164,65,228,65,228,73,5,74,37,82,3,70,90,146,
+  102,98,103,98,103,98,103,90,102,90,70,90,70,90,37,82,5,82,5,74,
+  228,73,196,65,195,65,163,65,131,57,131,57,130,57,98,49,171,4,137,44,
+  99,44,99,12,99,44,99,45,99,12,99,45,99,44,99,44,99,5,45,99,
+  137,44,99,44,99,45,99,45,99,44,99,44,99,45,99,45,99,44,99,11,
+  45,99,129,77,99,4,45,99,133,77,99,45,91,45,99,45,99,44,91,5,
+  45,99,134,44,99,45,99,44,91,45,99,45,99,77,99,7,45,99,129,45,
+  91,3,45,99,137,45,91,45,99,45,91,45,99,45,91,45,91,77,99,45,
+  91,45,91,7,45,99,131,45,91,45,91,77,99,4,45,91,129,45,99,10,
+  45,91,130,77,91,77,91,4,45,91,129,77,91,11,45,91,133,77,91,45,
+  91,77,91,45,91,77,91,4,45,91,138,236,82,236,82,204,82,12,91,45,
+  91,77,99,175,99,17,116,82,124,114,124,3,147,124,3,179,132,134,179,124,
+  179,132,179,124,180,132,179,124,179,132,3,179,124,3,147,124,138,115,124,240,
+  107,236,74,69,25,130,8,130,16,130,16,98,8,130,16,130,8,4,130,16,
+  129,162,16,3,130,16,141,130,8,98,8,98,8,130,8,130,16,130,16,131,
+  16,195,16,73,66,77,99,207,115,240,115,207,107,5,175,99,166,208,99,82,
+  116,147,124,212,132,212,132,245,132,212,124,147,92,82,44,17,4,82,4,148,
+  12,212,28,245,52,21,77,245,92,212,92,20,141,85,149,85,165,105,82,170,
+  82,170,82,138,82,138,82,138,74,138,74,138,82,138,74,138,74,105,74,106,
+  74,138,74,105,74,105,74,106,74,105,74,106,74,6,105,74,129,105,66,4,
+  73,66,138,41,66,73,66,41,66,41,58,41,66,41,58,41,58,9,50,9,
+  58,41,58,4,9,50,154,232,41,9,42,232,41,233,49,233,49,200,41,77,
+  83,143,99,175,107,146,140,81,140,81,140,49,132,13,91,45,83,20,149,244,
+  140,21,149,179,140,16,124,16,132,110,107,110,107,207,115,49,132,114,140,3,
+  146,140,152,114,140,146,140,211,140,52,149,215,157,154,174,251,182,157,215,157,
+  215,125,215,125,207,92,199,92,207,92,199,28,191,251,182,28,191,251,190,251,
+  182,27,191,251,190,251,190,186,182,219,190,3,186,182,133,218,182,154,182,219,
+  182,251,190,187,182,3,154,174,182,186,182,154,174,122,174,186,182,89,174,122,
+  174,186,182,121,174,56,166,154,174,122,174,186,174,186,182,89,174,121,174,89,
+  166,122,166,89,166,187,182,122,174,154,182,57,166,187,182,122,174,89,166,122,
+  174,122,174,186,182,89,166,122,174,219,182,122,174,187,182,219,182,24,166,122,
+  174,154,174,154,174,122,166,252,182,155,174,187,174,122,174,187,182,155,174,155,
+  174,29,191,253,182,220,182,220,182,252,190,220,182,61,199,28,191,3,61,199,
+  150,158,215,93,207,158,215,126,207,158,223,190,223,126,215,158,223,191,231,158,
+  223,191,223,191,231,255,239,255,239,223,231,223,239,255,239,223,239,255,247,255,
+  239,255,239,223,231,7,255,239,136,255,247,223,231,255,239,255,239,255,247,255,
+  239,255,247,255,247,10,255,255,4,255,239,144,255,247,82,124,17,124,171,82,
+  106,66,106,66,74,66,106,66,74,66,106,66,74,66,73,66,41,66,41,58,
+  41,58,41,66,3,9,58,132,8,58,41,66,106,66,106,74,3,171,82,134,
+  203,82,204,82,171,82,171,74,77,99,211,148,3,243,156,131,211,148,243,156,
+  211,148,3,244,156,161,244,148,179,140,114,124,82,124,147,124,179,132,180,132,
+  180,132,180,124,148,124,147,124,147,116,83,116,50,100,18,92,242,91,145,83,
+  21,141,183,157,20,149,114,132,8,58,232,57,199,57,199,57,134,41,69,33,
+  69,33,102,41,102,33,102,41,134,41,102,41,9,134,41,141,134,49,134,41,
+  134,41,166,49,167,49,166,49,134,41,38,33,6,25,6,25,230,16,197,16,
+  164,8,4,132,8,139,133,0,101,0,104,33,45,99,241,123,208,123,142,115,
+  143,115,175,115,175,115,240,123,4,49,132,130,81,132,82,140,4,114,140,6,
+  146,140,129,146,148,4,178,148,130,179,148,179,148,3,211,148,137,179,148,211,
+  148,211,148,179,148,211,148,210,148,211,148,210,148,179,148,5,211,148,129,179,
+  148,4,211,148,135,179,148,179,148,211,148,211,156,179,148,203,82,195,24,4,
+  228,24,211,227,24,228,32,227,24,228,24,4,33,228,32,228,32,228,24,4,
+  25,227,24,163,24,163,16,133,49,168,114,163,65,102,90,37,82,131,49,130,
+  49,134,90,37,82,130,57,130,57,131,57,131,57,130,49,131,49,163,57,228,
+  65,163,57,195,65,37,74,36,82,4,74,37,82,102,90,36,82,102,90,228,
+  73,131,49,131,57,130,49,131,49,131,49,99,49,38,74,111,164,240,188,241,
+  188,46,172,205,147,46,164,111,172,14,156,176,180,176,188,111,180,110,172,241,
+  188,240,188,241,188,175,188,68,98,98,57,130,49,130,57,99,57,98,49,131,
+  49,99,49,99,49,98,49,99,49,98,49,98,49,99,49,99,49,98,49,99,
+  49,99,49,98,49,98,49,99,49,3,98,49,141,130,57,131,57,163,57,163,
+  65,196,65,196,73,4,74,5,74,38,82,69,82,102,90,103,90,103,90,3,
+  103,98,149,102,98,70,90,69,90,38,90,37,82,5,82,228,73,228,73,196,
+  65,164,65,131,57,131,57,130,57,98,57,98,57,98,49,66,49,98,49,66,
+  49,66,49,98,49,3,66,49,1,98,49,172,4,7,44,99,138,45,99,44,
+  99,45,99,44,99,77,99,45,99,44,99,44,99,45,99,44,99,10,45,99,
+  129,45,91,14,45,99,129,44,99,8,45,99,149,77,99,77,99,45,99,44,
+  99,77,99,44,91,45,99,45,91,45,91,45,99,77,99,77,99,45,99,45,
+  99,77,99,44,99,45,99,77,99,45,99,45,99,45,91,4,45,99,134,45,
+  91,45,99,44,91,77,99,45,99,45,99,3,45,91,131,77,99,45,91,77,
+  99,16,45,91,132,77,91,45,91,45,91,77,99,12,45,91,129,77,91,3,
+  45,91,131,77,91,45,91,45,91,3,236,82,135,12,91,45,99,78,99,208,
+  107,17,116,114,124,114,124,3,147,124,129,179,124,4,179,132,147,179,124,179,
+  124,179,132,179,124,179,132,147,124,179,124,147,124,147,124,147,116,115,116,17,
+  108,45,83,8,50,228,16,130,8,162,16,162,16,163,16,3,162,16,134,130,
+  16,163,16,130,16,130,16,162,16,130,16,4,130,8,165,130,16,130,16,130,
+  8,37,25,236,82,175,115,16,124,16,124,16,116,208,107,207,107,175,107,143,
+  99,175,99,208,99,50,116,147,124,212,124,212,132,212,132,180,124,115,84,50,
+  36,241,3,50,4,115,28,212,60,245,84,212,100,212,116,180,116,20,141,118,
+  157,211,148,138,82,170,82,170,82,3,138,82,4,138,74,134,105,74,106,74,
+  105,74,138,74,105,74,106,74,7,105,74,129,73,74,3,73,66,129,41,66,
+  3,73,66,137,41,66,41,66,41,58,41,58,9,58,8,50,41,58,8,50,
+  9,50,3,8,50,157,232,49,232,41,232,49,233,49,232,49,232,41,171,66,
+  12,83,49,124,114,132,81,132,16,132,16,132,171,90,42,58,53,157,244,148,
+  20,141,53,149,212,140,207,115,77,107,110,107,240,123,114,140,146,140,179,148,
+  179,148,114,140,3,179,140,159,52,141,215,157,121,174,27,191,125,207,125,207,
+  93,207,92,199,93,207,93,207,92,199,28,191,28,191,60,199,28,191,251,190,
+  27,191,251,190,186,182,186,182,219,190,186,182,186,182,219,182,154,174,186,182,
+  187,182,186,182,121,166,219,182,121,174,3,154,174,149,186,182,121,174,154,174,
+  154,174,122,174,187,182,89,166,186,182,56,158,154,174,89,174,154,182,154,182,
+  89,174,121,174,56,166,187,182,122,174,154,174,89,166,219,182,3,122,174,177,
+  187,182,154,182,89,166,187,182,187,174,186,182,122,174,187,174,122,174,187,182,
+  90,166,154,174,155,174,155,174,187,174,90,166,122,166,155,174,187,182,155,174,
+  187,182,29,191,220,182,252,190,252,182,219,182,252,190,29,191,29,191,252,182,
+  94,207,93,199,93,199,93,215,158,215,126,207,126,207,158,215,126,207,190,223,
+  190,223,190,215,223,231,191,231,223,239,255,239,255,239,223,231,223,239,4,255,
+  239,132,223,239,255,239,255,239,223,239,6,255,239,133,223,239,255,247,255,247,
+  255,239,255,247,5,255,255,129,255,247,3,255,255,129,255,247,4,255,239,152,
+  255,255,180,132,240,115,204,82,106,66,74,66,106,66,106,66,73,58,41,66,
+  74,66,73,66,41,66,41,58,41,58,41,66,9,58,41,58,9,58,8,58,
+  9,58,74,66,106,74,138,74,3,171,82,139,204,82,171,82,171,82,236,90,
+  114,140,244,156,243,156,211,148,243,148,243,148,243,156,3,244,156,133,244,148,
+  179,140,114,124,82,124,147,124,3,180,132,149,180,124,148,124,147,124,147,116,
+  115,108,50,100,242,91,241,91,145,83,244,140,183,157,52,149,179,140,40,66,
+  231,57,199,57,199,57,134,49,69,33,69,33,101,41,3,102,41,4,134,41,
+  129,134,49,3,134,41,143,166,49,166,49,166,41,167,41,134,41,134,41,166,
+  41,167,41,167,49,70,33,6,25,6,25,230,24,197,16,132,16,4,132,8,
+  145,132,0,101,0,71,33,13,99,208,123,240,123,142,115,142,115,143,115,175,
+  115,207,115,240,123,16,124,17,132,49,132,81,132,81,132,6,114,140,4,146,
+  140,129,146,148,3,178,148,136,179,148,178,148,211,148,179,148,211,148,178,148,
+  211,148,178,148,3,179,148,132,178,148,211,148,179,148,210,148,3,178,148,7,
+  211,148,137,179,148,179,148,211,148,211,148,178,148,45,99,196,24,227,24,228,
+  24,3,227,24,132,228,24,228,32,227,24,228,24,5,228,32,231,195,24,130,
+  16,68,41,168,106,195,73,37,82,102,90,130,57,130,49,69,82,102,90,130,
+  57,131,57,131,57,130,57,131,57,130,49,195,57,69,82,101,90,134,90,167,
+  106,167,106,166,98,166,98,231,106,102,90,37,82,227,73,130,49,131,49,130,
+  49,131,49,98,49,98,49,196,57,46,156,241,188,208,188,208,188,176,188,176,
+  188,209,196,176,188,176,188,143,180,143,180,110,172,78,164,45,156,13,156,204,
+  147,69,90,98,49,98,57,98,57,130,49,99,49,99,49,98,49,98,49,99,
+  49,98,49,98,49,130,57,131,57,131,57,163,57,196,57,196,65,228,65,5,
+  74,37,74,38,82,70,90,70,90,102,90,102,98,135,98,103,98,102,98,102,
+  98,70,90,70,90,38,82,37,82,4,74,228,73,228,73,196,65,163,65,163,
+  57,131,57,131,57,99,57,130,57,98,57,66,49,98,49,66,49,98,49,66,
+  49,66,49,4,98,49,138,99,57,131,57,163,57,196,65,228,73,37,82,70,
+  90,135,98,200,106,9,123,140,4,131,44,99,45,99,12,99,9,44,99,5,
+  45,99,129,44,99,12,45,99,132,44,99,45,99,44,99,44,99,10,45,99,
+  151,44,99,44,91,77,99,45,99,45,99,44,99,45,91,45,99,44,99,45,
+  99,45,99,44,91,77,99,45,91,45,99,45,99,77,99,77,99,45,99,77,
+  99,77,99,45,91,45,91,5,45,99,129,45,91,5,45,99,143,77,99,45,
+  99,45,91,45,99,45,91,45,99,45,91,45,91,77,99,45,91,45,91,45,
+  99,44,91,45,91,77,91,5,45,91,129,45,99,4,45,91,129,77,91,15,
+  45,91,133,77,91,45,91,45,99,45,91,77,91,3,45,91,137,236,82,235,
+  82,236,82,12,91,45,99,110,99,208,107,49,116,114,124,4,147,124,129,179,
+  124,3,179,132,5,179,124,140,147,124,179,124,179,124,147,124,147,124,147,116,
+  147,116,82,108,175,91,204,74,232,41,37,25,5,195,16,3,163,16,133,162,
+  16,163,16,162,16,163,16,162,16,5,130,16,162,130,8,8,50,77,99,16,
+  124,81,132,49,124,240,115,240,107,208,107,208,107,143,99,143,91,208,99,50,
+  108,147,116,180,124,212,124,212,132,179,116,114,76,17,28,241,3,241,11,82,
+  44,180,84,212,108,212,124,212,124,212,132,118,157,183,165,48,132,170,82,170,
+  82,4,138,82,129,138,74,3,105,74,130,138,74,138,74,8,105,74,133,106,
+  74,105,74,73,74,105,74,105,74,4,73,66,137,41,66,41,58,73,66,73,
+  58,41,58,41,58,9,50,9,50,9,58,4,9,50,197,8,50,232,49,232,
+  41,232,49,232,41,232,49,200,41,236,74,172,74,147,132,82,132,81,132,49,
+  132,16,132,106,74,168,49,53,157,244,148,244,148,21,141,118,157,114,132,77,
+  107,110,107,16,132,146,140,146,140,211,148,146,140,146,140,114,140,178,140,179,
+  140,52,149,24,166,186,182,251,190,125,207,125,207,125,215,92,199,125,207,60,
+  199,92,207,251,190,28,199,60,199,218,182,251,190,251,190,219,182,219,190,186,
+  182,154,182,219,190,186,182,186,182,122,174,219,182,186,182,219,182,89,166,121,
+  174,89,174,186,182,122,174,122,174,89,166,154,174,3,122,174,143,154,174,219,
+  182,154,174,89,166,89,174,154,182,89,174,187,182,121,174,57,174,121,174,154,
+  174,28,199,154,182,122,182,3,89,174,129,219,190,3,122,174,178,89,166,154,
+  174,219,182,187,182,187,182,89,166,154,174,122,174,25,158,187,174,187,174,155,
+  166,187,182,187,174,90,166,155,174,155,174,154,174,252,182,187,182,252,190,61,
+  191,187,174,252,190,29,191,61,191,61,199,61,199,60,199,61,199,93,207,126,
+  207,93,199,126,215,94,199,126,207,158,215,190,223,158,223,190,223,158,215,223,
+  231,255,239,255,239,223,239,255,239,223,239,255,239,255,247,223,239,3,255,239,
+  129,223,239,4,255,239,131,223,231,255,239,255,239,3,255,247,129,255,239,3,
+  255,247,5,255,255,142,255,239,255,239,223,231,223,231,223,239,255,239,255,255,
+  148,124,175,107,203,82,106,66,74,66,106,66,74,66,3,73,66,133,9,58,
+  41,58,41,58,41,66,41,58,5,9,58,144,41,66,74,74,138,74,171,82,
+  171,82,172,82,203,82,171,82,203,82,204,82,16,124,243,156,243,148,243,156,
+  243,156,211,148,4,244,156,156,244,148,179,140,114,124,82,116,147,124,180,132,
+  180,132,180,124,180,124,179,124,147,124,147,116,115,108,50,100,18,92,241,91,
+  145,83,180,124,150,165,20,149,20,149,73,66,231,57,231,57,199,57,134,49,
+  69,41,69,33,5,102,41,6,134,41,144,134,49,166,49,167,49,167,49,166,
+  49,166,41,167,49,134,41,167,49,167,49,70,33,6,25,39,25,230,24,197,
+  16,164,8,5,132,8,138,133,8,38,33,13,99,208,123,208,123,110,107,143,
+  115,143,115,175,115,175,115,3,240,123,132,49,132,49,132,81,132,82,140,8,
+  114,140,129,146,140,3,146,148,6,178,148,6,179,148,3,178,148,129,179,148,
+  3,178,148,153,211,148,178,148,178,148,211,148,211,148,178,148,179,148,179,148,
+  178,148,179,148,179,148,211,148,142,107,4,25,227,32,227,24,228,24,195,24,
+  228,24,228,32,228,32,228,24,4,33,228,32,228,24,3,228,32,142,195,24,
+  130,16,4,33,168,98,4,90,4,74,135,98,130,57,130,49,37,74,134,98,
+  131,57,131,57,130,57,3,131,57,166,130,57,36,74,69,82,134,90,69,90,
+  36,82,36,82,68,82,69,82,5,74,163,57,163,57,130,49,131,49,130,49,
+  130,49,131,57,98,49,163,57,139,123,79,164,45,156,13,156,236,147,172,147,
+  107,131,106,131,9,115,232,106,199,98,135,90,70,82,37,74,228,65,196,65,
+  131,57,99,57,131,57,3,163,57,138,196,65,229,73,5,82,37,82,37,82,
+  70,82,70,90,103,98,102,90,102,90,3,102,98,140,70,90,69,82,38,90,
+  37,82,5,82,5,74,228,73,196,73,196,65,163,65,131,57,131,57,3,98,
+  57,6,98,49,129,66,49,3,98,49,145,131,57,163,57,163,65,228,73,5,
+  82,69,82,134,90,168,98,233,114,41,123,74,139,140,147,205,155,13,164,13,
+  172,78,172,111,180,3,143,188,1,176,188,214,4,5,44,99,6,45,99,3,
+  44,99,136,45,99,44,99,44,99,45,99,44,99,45,99,45,99,44,99,12,
+  45,99,132,44,99,44,99,45,99,77,99,7,45,99,131,44,99,45,99,77,
+  99,4,45,99,132,44,91,45,99,45,99,77,99,3,45,99,132,45,91,45,
+  99,77,99,45,91,5,45,99,131,45,91,45,99,77,99,3,45,99,134,45,
+  91,45,91,45,99,77,99,45,99,45,99,3,45,91,132,45,99,77,91,45,
+  91,45,99,3,45,91,129,77,91,3,45,91,129,45,99,4,45,91,129,45,
+  99,5,45,91,131,77,91,45,91,77,91,12,45,91,129,77,91,3,45,91,
+  140,77,91,77,91,12,83,236,82,235,82,236,90,13,99,45,99,110,99,240,
+  107,49,116,114,124,3,147,124,3,179,124,154,179,132,179,132,179,124,179,124,
+  179,132,179,132,147,124,179,124,147,124,179,124,147,124,147,124,115,116,115,116,
+  82,108,17,108,143,91,236,74,41,50,102,33,228,24,195,24,195,16,195,24,
+  195,16,195,16,4,163,16,129,162,16,5,130,16,180,130,8,37,25,203,74,
+  207,115,81,132,114,132,49,124,240,115,240,115,207,115,208,107,143,99,111,91,
+  176,99,17,108,115,116,147,124,180,124,179,124,115,108,82,60,17,20,241,3,
+  209,19,50,52,147,100,180,116,212,124,180,124,179,124,244,140,215,173,141,115,
+  170,82,170,82,138,82,170,82,138,74,106,74,138,82,138,82,137,74,138,74,
+  106,74,105,74,138,74,138,74,105,74,106,74,105,74,106,74,73,74,5,105,
+  74,4,73,66,136,41,66,73,66,73,66,41,66,41,58,41,58,9,58,9,
+  58,6,9,50,132,232,49,232,49,232,41,232,49,3,232,41,255,236,74,236,
+  82,147,140,81,132,114,140,16,132,239,131,232,65,200,49,85,157,211,140,244,
+  148,244,148,20,149,183,165,175,115,110,107,81,132,146,140,179,140,179,140,146,
+  140,179,148,146,140,179,140,179,140,85,149,247,157,219,182,251,182,60,191,125,
+  207,125,207,92,199,125,207,60,199,92,199,251,182,251,190,27,191,251,190,219,
+  190,219,182,219,190,219,190,218,182,219,190,154,182,186,182,219,190,154,174,251,
+  190,186,182,186,182,89,166,121,174,186,182,186,182,89,166,122,174,154,182,187,
+  182,122,174,89,166,121,174,121,174,186,182,89,166,89,166,89,174,154,174,154,
+  174,122,174,187,182,122,174,122,174,219,182,154,174,154,174,89,174,89,174,57,
+  166,122,174,154,182,121,174,89,166,57,166,24,166,57,158,154,174,122,174,154,
+  174,24,158,122,174,122,174,57,166,155,174,122,166,122,166,90,166,220,182,122,
+  166,187,174,219,182,90,166,220,182,219,182,187,174,28,191,219,182,28,191,252,
+  190,28,191,61,199,252,190,28,191,61,199,93,199,126,207,93,207,93,199,61,
+  199,93,199,126,207,158,215,126,215,158,215,131,158,223,191,223,223,231,3,255,
+  239,139,223,239,255,239,223,239,223,231,223,231,255,239,255,247,223,231,223,239,
+  255,239,223,231,4,255,239,130,255,247,255,247,4,255,239,137,255,247,255,255,
+  255,247,255,255,255,255,255,247,223,231,223,239,223,231,3,255,239,132,255,255,
+  115,116,240,123,13,91,3,106,66,136,74,66,41,58,74,66,41,66,41,66,
+  9,58,41,66,9,66,5,9,58,132,232,57,9,58,73,66,106,74,3,171,
+  82,133,172,82,171,82,171,82,204,82,175,115,3,243,156,166,211,148,243,148,
+  244,156,243,156,244,156,244,156,244,148,179,140,114,124,82,116,115,124,148,124,
+  180,132,180,132,180,124,179,124,148,124,147,116,115,116,50,108,18,92,241,83,
+  145,75,147,124,182,165,211,140,179,132,105,74,232,65,231,57,199,49,134,49,
+  101,41,37,33,102,41,101,41,102,41,102,41,6,134,41,135,134,49,167,49,
+  134,41,166,49,167,49,166,49,167,49,3,166,49,135,167,49,102,33,6,25,
+  7,25,230,16,197,16,164,8,5,132,8,145,133,0,230,24,237,90,176,115,
+  240,123,110,107,143,107,143,115,175,115,175,115,208,123,240,123,16,124,17,132,
+  49,132,81,132,82,140,7,114,140,3,146,140,130,146,148,146,148,4,178,148,
+  137,179,148,178,148,178,148,179,148,179,148,178,148,211,148,179,148,178,148,4,
+  179,148,152,178,148,211,148,178,148,211,148,211,148,178,148,179,148,179,148,178,
+  148,179,148,178,148,178,148,179,148,211,148,207,115,69,33,228,24,228,24,227,
+  24,227,24,228,24,227,24,228,24,228,24,3,228,32,211,228,24,228,24,228,
+  32,195,24,162,16,195,24,136,90,69,90,196,65,167,98,163,65,131,49,228,
+  65,167,98,163,65,130,57,131,57,130,57,131,57,131,57,130,57,163,57,195,
+  57,163,57,163,57,130,57,130,57,131,57,131,57,131,49,130,49,131,57,131,
+  57,130,57,130,49,131,49,98,49,98,49,131,49,37,74,102,90,69,82,5,
+  74,228,65,195,65,195,65,163,57,163,57,195,57,195,65,228,65,228,65,5,
+  74,5,74,37,82,70,90,70,90,103,90,102,90,102,98,102,98,102,90,70,
+  90,70,90,70,82,38,82,37,82,5,74,4,74,228,73,228,73,196,65,163,
+  65,163,57,131,57,131,57,99,49,98,49,98,57,98,49,99,49,98,49,66,
+  49,3,98,49,152,99,57,131,57,163,57,163,65,196,65,4,74,37,82,71,
+  90,135,98,200,106,9,123,74,131,107,139,172,147,236,155,13,164,46,172,79,
+  180,110,180,143,180,144,188,143,188,176,188,176,188,3,208,188,131,176,188,176,
+  188,208,188,3,176,188,1,176,180,206,4,142,44,99,44,99,45,99,45,99,
+  44,99,44,99,45,99,44,99,45,99,44,99,44,99,45,99,44,99,44,99,
+  4,45,99,138,44,99,45,99,45,99,44,99,45,99,44,99,45,99,44,99,
+  45,99,44,99,9,45,99,129,44,99,7,45,99,129,45,91,5,45,99,131,
+  77,99,45,99,45,91,8,45,99,141,45,91,77,99,45,91,77,99,45,99,
+  77,99,45,99,45,99,77,99,45,91,45,99,45,99,45,91,4,45,99,142,
+  77,99,45,99,45,99,45,91,45,99,45,99,45,91,45,91,45,99,45,99,
+  77,99,45,91,45,91,45,99,7,45,91,139,45,99,45,91,77,91,45,91,
+  77,91,77,91,45,91,77,91,45,91,45,91,77,91,8,45,91,3,77,91,
+  129,45,91,3,77,91,142,236,90,236,82,236,82,236,90,13,91,77,99,143,
+  99,240,107,82,124,114,124,147,124,147,132,179,132,147,124,9,179,124,4,147,
+  124,139,147,116,115,116,115,116,114,108,82,108,17,100,143,91,204,74,9,50,
+  69,33,228,24,3,195,16,132,163,16,163,16,162,16,162,16,3,130,16,3,
+  130,8,177,130,16,37,25,73,58,78,99,49,124,146,140,113,132,49,124,240,
+  115,240,115,207,115,207,107,143,99,143,91,176,91,17,108,82,116,115,116,147,
+  124,147,116,82,92,82,52,17,20,240,11,209,27,50,68,147,100,179,116,212,
+  124,180,124,212,132,244,148,215,173,235,98,170,90,170,82,170,82,138,82,138,
+  82,138,74,106,74,138,74,105,74,106,74,138,74,106,74,105,74,138,74,138,
+  74,6,105,74,132,106,74,105,74,73,74,73,74,4,73,66,142,41,66,41,
+  58,41,58,41,66,9,66,9,58,41,58,9,50,41,50,40,50,8,50,9,
+  50,233,49,232,41,5,232,49,139,200,41,77,91,139,74,146,140,82,132,49,
+  132,16,132,142,115,134,49,233,49,118,165,3,211,140,138,146,140,114,132,81,
+  140,85,157,179,140,146,140,211,148,179,140,146,140,178,140,3,179,140,202,85,
+  149,56,166,186,182,93,199,93,207,93,207,60,199,92,199,60,199,27,191,60,
+  199,28,191,251,190,28,199,251,190,251,190,186,182,251,190,218,190,186,182,219,
+  182,186,182,219,182,218,182,121,174,251,182,219,182,121,174,89,166,251,190,154,
+  174,154,174,122,174,57,166,89,174,122,174,121,174,154,182,121,174,121,174,218,
+  182,121,174,154,174,121,174,154,182,89,166,122,174,186,182,122,174,57,166,89,
+  166,121,174,122,174,248,157,89,174,24,166,89,166,24,166,57,166,248,157,24,
+  166,24,166,24,158,89,166,122,174,89,166,154,174,90,166,122,174,154,174,90,
+  166,90,166,187,182,122,166,3,155,174,142,122,166,122,166,155,174,187,174,187,
+  174,28,191,154,182,220,182,187,182,29,191,29,191,220,182,61,199,61,191,3,
+  61,199,145,126,207,61,199,61,199,126,207,126,207,158,215,158,223,191,231,158,
+  223,223,231,191,223,255,239,191,231,223,239,223,239,255,239,223,231,3,255,239,
+  132,223,239,255,239,255,239,223,231,3,255,239,137,223,239,255,239,255,247,255,
+  239,255,239,255,247,255,239,255,247,255,247,3,255,255,131,255,239,191,223,190,
+  223,4,255,239,155,190,231,112,99,179,148,142,107,73,66,73,66,106,66,74,
+  66,73,66,41,58,41,66,41,58,9,58,41,58,41,66,41,58,41,66,9,
+  58,232,57,232,57,9,58,9,58,74,66,106,74,171,82,171,82,172,82,3,
+  171,82,133,172,82,110,107,211,148,243,156,211,156,3,243,148,129,244,148,3,
+  244,156,156,179,140,82,124,82,116,115,124,180,124,180,132,180,132,148,124,148,
+  124,147,124,147,116,115,116,50,108,242,99,242,91,177,83,147,124,183,165,211,
+  140,211,140,106,74,231,65,232,57,199,57,166,49,101,41,37,33,69,33,3,
+  102,41,138,134,41,102,41,135,49,134,49,166,41,166,49,167,49,167,49,166,
+  41,167,41,3,167,49,133,166,49,166,49,134,49,166,49,102,33,3,6,25,
+  130,197,16,164,16,5,132,8,147,100,0,230,16,172,82,143,115,208,123,110,
+  107,110,107,143,107,175,115,175,115,207,115,240,123,240,123,49,132,17,132,49,
+  132,81,132,82,140,82,140,6,114,140,130,146,148,146,140,5,146,148,130,178,
+  148,179,148,5,178,148,129,210,148,3,178,148,129,179,148,5,178,148,142,179,
+  148,178,148,178,148,179,148,179,148,178,148,179,148,178,148,179,148,178,148,211,
+  148,16,132,134,41,227,24,3,228,24,160,227,24,228,24,228,24,4,33,228,
+  32,228,24,228,32,228,32,228,24,228,32,227,24,162,16,163,24,71,82,134,
+  98,163,57,167,98,228,73,130,49,195,57,167,98,227,73,130,57,131,57,130,
+  49,130,49,130,57,131,57,130,49,130,57,130,49,98,49,3,130,49,147,131,
+  49,131,49,98,49,130,49,131,57,130,57,131,57,131,57,163,57,196,65,196,
+  65,228,65,228,73,4,74,37,82,37,82,69,82,70,90,70,90,3,102,90,
+  141,70,90,102,90,70,90,69,90,37,82,38,82,37,82,5,74,228,73,228,
+  73,196,65,164,65,163,57,3,131,57,3,98,49,130,66,49,66,49,3,98,
+  49,149,99,49,131,57,131,57,163,57,196,65,228,73,5,74,70,90,135,98,
+  167,106,232,114,41,123,75,131,171,139,204,155,237,163,45,164,78,172,79,180,
+  111,180,143,188,4,176,188,138,208,188,208,196,208,188,209,188,208,196,208,188,
+  208,196,208,188,208,188,176,188,3,208,188,130,176,188,175,188,6,176,188,164,
+  4,3,44,99,129,44,91,4,44,99,132,12,91,45,99,44,99,45,99,3,
+  44,99,4,45,99,133,44,99,44,99,45,99,45,99,44,99,8,45,99,129,
+  44,99,3,45,99,129,44,99,3,45,99,139,45,91,45,99,45,99,77,99,
+  44,91,45,99,45,99,77,99,44,99,45,99,77,99,8,45,99,129,77,99,
+  4,45,99,138,45,91,45,99,45,99,45,91,45,99,45,99,45,91,45,99,
+  44,91,77,99,3,45,91,4,45,99,138,77,99,45,91,45,91,45,99,45,
+  91,45,91,45,99,77,99,45,99,44,91,15,45,91,130,77,91,77,91,8,
+  45,91,129,77,91,3,45,91,134,77,91,77,91,45,91,77,99,77,91,45,
+  91,3,236,82,138,12,91,45,91,78,99,175,99,17,108,82,116,115,124,147,
+  124,147,124,147,132,10,179,124,3,147,124,140,147,116,147,116,115,116,115,116,
+  82,116,82,108,50,108,240,99,78,91,106,66,167,41,4,25,3,195,16,3,
+  163,16,129,162,16,3,163,16,139,195,16,228,24,4,25,134,41,73,66,236,
+  90,207,107,81,132,114,132,81,132,49,124,3,240,115,151,207,107,143,99,111,
+  91,176,91,18,100,82,108,83,116,115,116,114,108,82,84,50,44,241,19,209,
+  19,209,35,18,76,115,108,179,124,180,124,179,124,179,124,53,149,247,173,137,
+  82,3,170,82,133,138,82,138,82,137,82,138,82,138,74,3,105,74,131,138,
+  74,105,74,138,74,9,105,74,130,73,74,73,74,3,73,66,139,41,66,41,
+  66,41,58,41,66,41,58,41,58,9,58,9,50,9,58,9,50,9,58,3,
+  9,50,255,232,49,232,41,232,41,200,49,232,49,232,49,200,41,13,83,204,
+  74,146,140,114,140,81,140,48,132,45,107,69,41,74,58,85,157,179,140,211,
+  140,179,140,146,140,113,140,81,132,146,140,211,148,211,148,179,148,244,148,178,
+  140,146,140,146,140,179,140,243,140,85,149,154,174,251,190,92,199,125,207,157,
+  215,60,199,125,207,60,199,251,182,27,191,251,190,219,182,251,190,219,182,251,
+  190,219,190,186,182,219,190,154,182,186,182,186,182,154,182,218,182,186,174,186,
+  182,154,174,154,182,186,174,186,182,121,174,153,174,121,174,89,166,154,174,121,
+  174,57,166,218,182,122,174,121,174,89,166,121,174,24,166,154,182,122,174,56,
+  166,89,174,57,166,154,182,121,174,57,166,89,166,89,174,89,174,24,166,215,
+  157,56,166,24,158,24,158,57,166,24,166,89,174,57,166,248,157,89,166,57,
+  166,121,174,24,158,57,158,122,174,57,166,90,166,122,166,58,166,155,166,90,
+  166,122,174,155,174,122,166,155,166,122,166,123,174,155,174,154,174,187,182,220,
+  182,29,191,253,182,188,174,29,191,61,199,28,191,61,199,61,199,138,93,199,
+  61,199,126,207,61,199,125,207,93,199,158,215,158,215,126,207,191,223,3,223,
+  231,129,223,239,3,223,231,136,255,239,255,239,223,231,255,239,223,231,223,239,
+  255,239,223,239,4,255,239,130,255,247,255,247,3,255,239,130,255,247,255,247,
+  3,255,255,159,255,239,191,231,223,231,255,239,223,231,255,239,223,231,255,239,
+  148,124,20,157,110,107,41,58,41,58,106,74,74,66,74,66,41,66,41,58,
+  73,58,9,58,41,66,41,58,9,58,9,58,232,57,233,57,9,58,233,57,
+  9,58,74,66,106,74,3,171,82,135,203,82,171,82,171,82,204,82,45,99,
+  146,148,243,156,3,243,148,138,244,148,243,148,244,156,244,148,244,148,179,140,
+  114,124,82,116,115,124,179,124,3,180,124,148,179,124,147,124,147,124,83,116,
+  50,108,18,100,241,91,177,83,115,124,215,165,244,140,178,132,171,74,232,57,
+  232,57,231,57,166,49,101,41,69,33,69,33,3,102,41,6,134,41,155,135,
+  41,166,49,166,49,134,33,102,25,134,25,135,25,134,41,167,41,232,49,167,
+  41,70,33,38,25,39,33,6,25,229,16,164,16,132,8,132,16,164,8,132,
+  8,132,8,133,0,197,8,171,82,143,115,208,123,3,110,107,134,143,115,175,
+  115,175,115,207,123,240,123,16,124,3,49,132,130,81,132,81,132,6,114,140,
+  141,146,140,114,140,146,148,146,140,146,148,146,148,178,148,146,148,146,148,178,
+  148,178,148,179,148,179,148,4,178,148,132,179,148,178,148,179,148,179,148,13,
+  178,148,133,211,148,81,140,232,49,195,24,227,24,3,228,24,131,227,24,228,
+  24,4,25,3,228,32,161,4,33,227,24,228,32,227,24,163,24,163,16,6,
+  66,168,114,163,57,167,90,37,74,130,57,163,57,167,98,4,82,130,57,130,
+  49,131,57,131,49,130,49,130,49,131,49,130,57,131,57,163,57,195,65,195,
+  65,228,65,229,65,5,74,37,82,37,82,69,82,5,102,90,133,102,98,102,
+  90,102,90,70,90,70,82,3,37,82,138,5,82,4,82,228,73,196,65,196,
+  65,195,65,163,57,131,57,131,57,99,49,6,98,49,150,131,49,99,49,131,
+  49,163,57,163,57,228,65,5,74,37,82,102,90,167,98,168,106,9,115,42,
+  131,107,139,172,139,204,147,237,163,46,172,46,172,79,180,143,180,144,180,3,
+  176,188,134,209,196,208,196,209,188,208,196,208,196,209,188,7,208,188,129,208,
+  196,7,208,188,133,176,188,208,188,176,188,208,188,208,188,3,176,188,132,208,
+  188,208,188,176,188,176,188,172,4,5,44,99,129,45,99,4,44,99,132,45,
+  99,44,99,45,99,45,91,8,45,99,129,44,99,4,45,99,129,44,99,20,
+  45,99,129,44,99,3,45,99,136,45,91,45,99,45,99,77,99,45,99,45,
+  99,44,99,77,99,4,45,99,135,45,91,45,99,45,99,45,91,45,91,45,
+  99,45,99,4,45,91,130,45,99,45,91,3,45,99,135,45,91,45,91,45,
+  99,45,91,45,91,77,91,77,91,3,45,91,129,77,99,7,45,91,129,45,
+  99,6,45,91,133,77,91,45,91,77,91,45,91,77,91,3,45,91,133,77,
+  91,45,91,45,91,77,91,45,91,4,77,91,132,45,91,77,99,45,91,45,
+  91,3,236,82,140,12,91,45,91,110,99,208,99,17,116,82,116,115,124,147,
+  124,147,132,179,132,147,132,179,132,8,179,124,192,147,124,179,124,147,124,147,
+  124,147,116,147,116,114,116,82,108,82,108,50,108,241,99,143,99,236,82,9,
+  58,134,41,102,33,37,33,69,33,36,25,37,33,69,33,69,33,102,41,134,
+  41,166,41,199,49,8,58,73,66,171,74,12,91,110,107,208,115,49,124,49,
+  124,17,124,16,116,240,107,240,107,208,115,175,107,143,99,143,91,176,99,241,
+  99,50,108,50,108,82,108,82,100,50,68,17,36,241,19,209,27,209,43,50,
+  76,115,108,147,116,147,124,147,124,211,132,85,149,117,165,105,74,138,82,170,
+  82,3,138,82,134,137,74,138,74,138,74,105,74,137,74,106,74,6,105,74,
+  129,106,74,5,105,74,131,73,74,73,74,73,66,3,41,66,141,73,66,41,
+  66,41,58,8,58,41,58,9,58,8,50,233,57,9,58,9,50,9,50,9,
+  58,232,49,7,232,41,188,236,74,13,91,146,140,114,140,81,140,16,124,171,
+  90,37,33,204,74,53,157,179,140,211,140,179,140,146,140,146,140,81,132,179,
+  148,244,148,211,148,179,140,211,148,178,140,211,148,146,140,244,148,244,140,150,
+  149,122,174,28,199,60,199,125,207,157,215,92,199,92,199,60,199,27,191,93,
+  207,251,190,28,191,251,182,27,191,251,190,186,182,219,182,187,182,251,190,186,
+  182,219,182,186,182,219,182,186,182,219,182,219,182,186,182,154,174,186,174,121,
+  166,121,174,154,174,122,174,3,154,174,198,121,174,89,166,56,166,89,166,89,
+  174,154,182,121,174,121,174,56,166,57,174,56,166,56,166,154,174,121,174,88,
+  174,89,174,24,166,24,158,247,157,56,166,56,166,57,166,24,158,24,166,24,
+  158,248,157,24,158,89,166,215,149,24,158,89,166,215,149,24,158,122,174,57,
+  166,248,149,89,166,122,166,89,158,57,158,89,166,57,158,155,166,123,166,155,
+  174,187,174,155,174,155,174,252,182,187,174,252,182,252,182,220,174,28,191,28,
+  191,61,191,61,191,29,191,93,207,93,207,61,199,61,199,126,207,93,207,126,
+  207,190,223,158,223,158,223,190,231,191,223,3,223,231,135,223,239,223,231,223,
+  239,223,239,255,239,223,231,223,231,5,255,239,133,223,231,255,239,255,247,255,
+  239,255,239,3,255,247,157,255,255,255,255,255,247,223,231,223,231,223,239,255,
+  239,223,231,255,239,255,247,255,239,86,141,114,132,13,91,41,58,73,66,73,
+  66,106,66,41,58,41,66,41,58,9,58,9,58,232,57,9,58,9,58,8,
+  58,9,58,232,57,3,9,58,130,41,58,74,66,5,171,82,133,172,82,204,
+  82,236,90,81,132,244,156,5,243,148,136,244,156,244,148,244,148,179,140,114,
+  124,50,116,115,124,147,132,3,180,124,176,148,124,148,124,115,124,83,116,50,
+  108,18,100,242,91,177,83,50,116,183,165,20,149,211,140,171,82,40,66,232,
+  57,231,57,199,57,134,41,69,33,69,33,101,41,102,41,134,41,134,41,69,
+  33,134,17,232,25,41,34,167,41,167,49,199,49,167,41,207,91,93,183,190,
+  207,223,199,50,92,211,148,85,157,110,91,6,17,38,25,39,33,39,25,230,
+  24,164,16,132,16,132,16,3,132,8,144,133,0,165,8,107,74,111,107,208,
+  123,78,107,110,107,110,107,142,107,143,115,175,115,208,123,240,123,16,124,17,
+  124,49,132,3,81,132,133,81,140,82,140,114,140,114,140,81,140,3,114,140,
+  129,146,148,5,146,140,141,178,148,178,148,146,148,179,148,179,148,178,148,179,
+  148,178,148,178,148,179,148,146,148,178,148,179,148,6,178,148,129,179,148,7,
+  178,148,134,113,140,74,66,195,24,228,24,228,24,227,24,5,228,24,152,228,
+  32,228,32,4,33,228,24,228,32,228,32,163,24,130,16,165,57,168,114,163,
+  65,134,90,69,90,130,57,131,49,134,90,102,90,195,65,228,73,5,74,37,
+  74,37,74,69,82,70,82,3,102,90,130,103,98,102,98,4,102,90,142,70,
+  90,37,82,70,90,37,82,5,74,5,74,228,73,228,65,196,65,163,65,163,
+  57,163,57,131,57,131,57,3,130,57,161,98,49,98,49,130,49,98,49,130,
+  49,131,57,163,57,196,65,228,65,5,74,70,82,135,90,167,98,200,106,9,
+  123,74,131,107,139,172,147,237,155,13,164,45,172,78,172,110,180,111,180,144,
+  180,176,188,208,196,208,196,208,188,209,196,209,196,241,196,240,196,3,241,196,
+  134,208,188,241,196,208,196,208,188,208,188,240,188,4,208,188,129,208,196,13,
+  208,188,131,209,196,208,188,208,188,4,208,196,133,208,188,208,188,176,188,175,
+  188,143,180,226,4,129,12,99,9,44,99,137,45,99,44,99,45,99,44,99,
+  44,99,45,99,45,99,44,99,44,99,8,45,99,130,44,99,44,99,4,45,
+  99,129,44,99,8,45,99,129,44,99,3,45,99,129,44,91,3,45,99,130,
+  44,91,77,99,3,45,99,129,77,99,4,45,99,134,45,91,45,99,44,91,
+  45,99,45,99,45,91,4,45,99,129,45,91,3,45,99,4,45,91,129,45,
+  99,3,45,91,129,45,99,8,45,91,129,45,99,3,45,91,131,77,91,77,
+  91,45,91,3,77,91,129,45,99,4,45,91,137,77,91,45,91,45,91,77,
+  91,45,91,45,91,77,91,45,91,77,91,5,45,91,3,77,91,148,45,91,
+  77,91,13,91,236,82,236,82,236,90,12,91,45,99,110,99,208,107,49,116,
+  114,124,115,124,147,124,147,132,147,124,147,124,179,132,179,124,179,132,6,179,
+  124,3,147,124,188,147,116,115,116,147,116,114,108,82,108,50,108,50,108,240,
+  99,143,99,13,91,171,74,73,66,8,58,8,50,232,49,8,50,8,58,41,
+  58,73,66,105,66,138,66,138,74,203,82,203,82,12,91,77,91,110,99,175,
+  107,175,107,208,107,240,107,240,107,207,107,239,115,240,107,207,107,175,107,143,
+  99,111,91,208,99,241,107,18,108,50,108,50,108,17,92,49,52,18,28,17,
+  28,209,27,209,35,18,76,82,100,147,116,147,116,147,124,244,140,150,157,211,
+  148,105,74,170,82,4,138,82,131,106,82,105,74,138,74,3,106,74,131,105,
+  74,105,74,138,74,8,105,74,129,73,74,3,73,66,130,41,66,73,66,3,
+  41,66,3,41,58,172,232,57,9,58,8,58,9,58,9,58,9,50,9,50,
+  8,50,232,49,232,49,232,41,232,49,232,49,232,41,232,41,78,91,110,99,
+  114,140,49,132,81,140,81,140,170,82,228,24,78,99,244,148,147,140,146,140,
+  146,140,178,140,146,140,81,132,243,148,211,148,146,140,179,148,179,148,211,148,
+  211,148,178,140,211,140,20,149,247,165,154,174,60,199,3,125,207,239,92,199,
+  60,199,93,207,60,191,60,191,27,191,251,190,28,191,251,182,219,182,219,182,
+  186,182,27,191,218,182,154,174,154,174,219,182,251,190,186,174,251,190,219,182,
+  186,182,121,166,219,182,121,174,186,182,121,174,154,174,154,174,89,166,122,174,
+  89,166,89,166,121,174,89,166,56,166,186,182,247,165,89,166,122,174,89,174,
+  121,174,89,174,24,158,24,166,89,174,24,166,24,166,24,158,56,166,24,166,
+  56,166,89,166,89,166,215,157,248,157,215,149,57,166,247,157,247,157,24,158,
+  248,157,56,166,57,166,122,174,248,157,216,157,24,158,25,158,25,158,248,157,
+  57,166,24,158,25,158,90,166,90,166,122,166,90,166,90,158,187,174,220,182,
+  123,166,28,191,155,174,220,182,252,182,29,191,61,199,29,191,61,199,61,199,
+  93,199,94,207,126,207,93,199,93,207,126,215,126,207,190,223,191,231,191,231,
+  223,231,223,239,223,231,223,239,223,231,223,231,223,239,255,239,191,223,223,231,
+  4,255,239,152,223,239,223,231,255,239,255,247,255,239,255,247,255,247,255,255,
+  255,247,255,255,255,255,223,239,223,231,255,239,255,239,223,239,255,239,255,247,
+  255,247,255,255,22,133,241,115,13,91,41,66,3,73,66,203,41,66,41,58,
+  41,58,9,66,41,66,9,58,41,66,8,58,8,58,9,58,9,58,232,57,
+  233,57,8,58,41,58,74,66,139,74,171,82,171,82,204,82,171,82,171,82,
+  204,82,204,82,239,115,243,156,243,148,243,148,244,148,244,156,244,156,243,148,
+  244,156,244,148,179,140,82,132,49,116,115,124,147,124,180,124,179,124,180,124,
+  148,124,147,124,147,116,115,116,50,108,18,100,242,91,177,83,18,108,182,165,
+  244,140,146,132,203,82,8,58,231,57,8,66,231,57,134,49,69,33,101,33,
+  134,41,102,33,102,41,37,33,183,149,255,215,255,231,255,239,53,141,41,58,
+  138,74,41,66,117,141,3,255,255,138,215,133,117,173,183,173,16,116,229,16,
+  39,33,71,33,39,33,6,25,164,16,5,132,8,145,133,0,133,8,75,66,
+  78,107,208,115,78,107,78,107,110,107,110,107,143,115,175,115,207,115,208,123,
+  240,123,16,124,49,132,49,132,3,81,132,130,114,140,82,140,3,81,132,5,
+  114,140,4,146,140,139,146,148,146,148,178,148,178,148,179,148,178,148,178,148,
+  146,148,178,148,146,148,146,148,4,178,148,130,179,148,146,148,3,178,148,4,
+  146,140,133,146,148,146,140,113,140,138,74,195,24,3,228,24,152,228,32,228,
+  24,228,24,228,32,4,33,228,24,228,32,228,32,228,24,228,32,228,32,163,
+  24,130,16,69,41,201,114,228,73,69,82,134,90,130,57,130,57,69,82,199,
+  106,102,90,102,90,3,102,98,142,70,98,70,90,70,90,37,90,37,82,4,
+  74,228,73,227,65,228,65,195,65,163,57,131,57,130,57,131,57,3,98,49,
+  134,131,57,130,57,163,57,195,65,196,65,131,57,7,130,57,169,70,82,41,
+  115,106,131,139,139,204,147,237,155,13,164,46,172,78,172,111,180,143,180,143,
+  188,176,188,176,188,208,196,208,196,240,196,241,196,241,196,241,188,240,196,241,
+  196,208,196,240,196,240,196,241,196,241,196,240,188,209,196,241,196,240,196,240,
+  188,241,188,209,188,209,188,208,188,208,188,209,188,209,188,208,188,208,188,4,
+  208,196,153,208,188,209,196,208,196,241,196,209,196,208,196,209,196,241,196,208,
+  196,208,188,208,188,176,188,176,188,143,180,111,172,78,172,46,164,237,155,204,
+  155,171,139,74,131,41,123,232,106,167,98,102,90,179,4,3,44,99,133,45,
+  99,44,99,44,99,12,99,45,99,4,44,99,4,45,99,130,44,99,44,99,
+  3,45,99,131,44,99,45,99,44,99,5,45,99,134,44,99,45,99,45,99,
+  44,99,45,99,44,99,3,45,99,134,44,99,45,99,45,99,45,91,45,99,
+  77,99,5,45,99,129,45,91,3,45,99,133,44,91,77,99,45,99,45,99,
+  45,91,4,45,99,139,45,91,45,99,45,91,45,99,77,99,45,99,45,91,
+  45,99,45,99,45,91,45,91,4,45,99,130,77,99,45,99,3,45,91,3,
+  45,99,6,45,91,134,77,91,77,99,45,99,45,91,45,91,45,99,3,45,
+  91,130,45,99,45,99,3,45,91,132,77,91,77,91,45,91,77,91,7,45,
+  91,9,77,91,141,12,83,236,82,204,82,236,90,12,91,77,99,110,99,240,
+  107,82,116,114,124,115,124,147,124,147,132,5,179,132,131,179,124,147,124,179,
+  132,3,179,124,3,147,124,141,147,116,115,116,115,116,114,116,82,108,50,108,
+  17,100,208,99,143,99,45,91,12,83,204,82,203,82,3,171,74,138,203,74,
+  236,82,236,82,12,83,13,91,45,91,77,91,77,99,110,99,142,99,3,143,
+  99,4,175,99,3,207,107,133,175,107,143,99,175,99,208,99,241,107,3,17,
+  108,143,17,84,50,44,50,28,241,19,209,27,209,43,18,84,82,100,114,116,
+  115,116,147,116,211,140,150,165,81,132,137,82,7,138,82,134,105,74,138,74,
+  138,74,105,74,138,74,138,74,7,105,74,131,73,74,105,74,105,74,3,73,
+  66,6,41,66,137,41,58,9,58,232,57,9,58,232,49,8,50,9,58,8,
+  50,8,50,5,232,49,3,232,41,138,45,83,143,99,114,132,81,132,16,124,
+  113,140,73,74,131,16,240,115,211,148,5,146,140,167,81,132,211,148,211,148,
+  178,148,146,140,211,148,211,148,178,140,211,148,211,140,52,149,24,166,219,182,
+  125,207,125,207,93,207,93,207,125,207,92,199,125,207,28,191,60,199,28,191,
+  251,190,251,190,219,182,251,190,219,182,219,190,186,182,218,182,154,174,186,182,
+  219,182,187,182,154,182,186,182,154,174,186,182,3,154,174,185,186,182,121,174,
+  154,182,154,174,89,166,154,174,89,174,154,182,121,174,56,166,89,174,154,174,
+  24,166,23,166,121,174,89,174,56,166,89,174,89,166,89,174,89,174,248,157,
+  56,166,248,157,247,157,248,157,247,165,56,166,24,166,248,165,215,157,247,157,
+  57,166,215,157,248,157,24,158,215,157,183,157,248,157,247,157,24,158,215,149,
+  57,166,25,166,248,157,24,158,25,158,25,158,122,174,89,166,25,158,58,166,
+  57,166,122,166,155,174,187,174,90,166,3,220,182,133,252,182,29,191,29,191,
+  28,191,93,199,3,61,199,141,29,191,61,199,61,199,126,207,126,207,158,215,
+  191,223,223,231,223,239,223,231,223,231,191,231,191,223,5,223,231,132,191,223,
+  223,239,255,239,223,231,6,255,239,3,255,247,146,255,255,255,247,223,239,223,
+  231,223,231,255,239,255,239,223,239,255,247,255,247,255,255,54,141,17,116,46,
+  99,41,58,73,66,73,66,41,58,3,41,66,131,9,58,8,58,232,57,3,
+  8,58,147,9,58,9,58,232,57,232,49,9,58,9,66,74,66,139,74,171,
+  82,171,82,172,82,171,82,171,82,204,82,204,82,142,107,211,148,243,156,243,
+  156,5,244,156,137,244,148,179,140,82,124,50,116,114,124,147,124,179,132,180,
+  124,180,124,3,147,124,150,115,116,50,108,18,92,241,91,177,83,18,108,215,
+  165,244,140,113,132,54,133,125,142,120,109,231,49,40,66,231,57,134,41,41,
+  58,236,82,167,41,228,24,195,8,125,207,3,255,255,133,53,141,232,57,73,
+  66,232,57,211,124,3,255,255,140,248,149,53,165,151,173,49,116,6,17,38,
+  25,39,25,39,25,6,25,165,16,132,8,132,16,3,132,8,145,132,0,133,
+  8,10,58,78,107,208,115,78,107,78,107,110,107,110,107,142,107,175,115,207,
+  115,208,123,240,123,16,124,17,132,49,132,5,81,132,132,49,132,17,124,49,
+  132,81,132,5,114,140,135,146,148,146,140,146,148,146,148,146,140,146,148,146,
+  140,3,146,148,137,178,148,146,148,178,148,146,148,178,148,178,148,179,148,178,
+  148,179,148,4,146,148,142,146,140,146,140,114,140,114,140,146,140,146,140,114,
+  140,236,90,195,24,228,32,228,24,228,24,228,32,227,32,3,228,24,3,228,
+  32,179,4,33,228,32,228,32,195,24,130,16,4,33,169,106,37,82,4,74,
+  167,98,163,65,131,57,163,57,37,74,5,74,4,74,228,73,196,65,163,65,
+  163,57,163,57,130,57,98,57,131,57,130,49,131,57,163,57,163,57,195,65,
+  228,65,4,74,69,82,102,90,134,98,199,106,231,114,40,123,72,131,105,131,
+  137,147,105,147,36,82,130,57,131,57,163,57,131,57,130,57,130,57,98,49,
+  168,90,144,172,3,208,188,131,209,188,241,196,240,196,8,241,196,133,240,196,
+  240,196,240,188,240,188,241,196,3,240,188,130,240,196,240,188,3,240,196,137,
+  208,196,240,188,240,196,241,188,240,196,241,196,209,196,241,196,240,196,5,241,
+  196,155,208,196,208,196,176,188,144,188,111,180,111,172,46,172,46,164,237,155,
+  204,147,139,139,106,131,9,115,232,106,167,98,102,90,37,82,4,74,196,65,
+  163,65,131,57,98,49,98,49,66,49,98,49,98,49,98,57,203,4,5,44,
+  99,131,45,99,44,99,45,99,5,44,99,4,45,99,130,44,99,45,99,3,
+  44,99,137,45,99,44,99,44,99,45,99,45,99,44,99,45,99,45,99,44,
+  99,7,45,99,136,77,99,45,99,45,99,45,91,44,99,45,99,44,99,44,
+  99,9,45,99,139,45,91,45,99,44,99,77,99,45,99,45,99,44,91,45,
+  99,45,99,45,91,44,91,3,45,99,134,45,91,45,99,45,99,44,91,77,
+  99,45,91,3,45,99,133,45,91,45,99,45,91,45,99,45,99,4,45,91,
+  135,77,91,45,91,77,99,45,91,45,91,45,99,45,91,3,45,99,129,77,
+  91,4,45,91,137,77,91,45,91,45,99,45,91,45,91,77,91,45,91,45,
+  91,77,91,4,45,91,130,77,99,45,99,8,77,91,140,12,91,236,82,204,
+  82,13,91,13,91,78,99,143,107,16,116,82,116,114,124,147,124,147,124,3,
+  179,132,7,179,124,5,147,124,141,146,116,115,116,115,116,82,108,82,108,50,
+  100,17,100,240,99,143,91,110,91,78,91,45,91,45,91,4,45,83,131,45,
+  91,78,91,77,91,5,110,91,168,110,99,111,91,143,91,142,91,111,91,142,
+  91,143,91,143,99,175,99,207,107,175,107,143,99,143,99,175,99,209,99,241,
+  107,241,107,17,108,17,100,17,76,50,36,50,20,18,20,209,27,241,51,241,
+  83,50,100,82,108,82,116,147,124,179,132,215,165,174,115,138,82,170,82,170,
+  82,138,82,138,82,105,74,105,74,3,106,74,129,106,82,9,105,74,130,73,
+  74,105,74,4,73,66,134,41,66,73,66,41,66,40,66,41,66,41,58,4,
+  9,58,152,9,50,8,50,9,50,8,50,9,50,9,50,232,49,232,41,232,
+  49,232,49,232,41,232,49,200,41,9,42,78,91,208,115,114,140,81,140,16,
+  124,16,124,40,66,131,8,146,132,211,140,3,146,140,134,114,140,113,140,16,
+  124,178,140,146,140,178,140,5,146,140,245,211,140,20,141,247,165,186,182,60,
+  199,60,199,125,207,92,207,125,207,125,207,60,199,93,207,60,199,28,191,28,
+  191,219,182,251,190,219,182,28,191,219,182,219,182,251,190,154,174,154,174,186,
+  182,154,174,186,182,154,174,251,190,218,182,186,182,154,174,154,174,121,174,121,
+  174,153,174,121,174,89,166,154,174,89,166,121,174,88,166,121,174,121,174,89,
+  166,56,166,24,166,56,166,24,166,215,157,248,157,247,165,24,166,248,165,247,
+  165,247,157,24,166,24,166,247,165,215,157,183,157,248,165,183,157,215,157,215,
+  157,24,166,24,158,248,157,215,157,150,149,248,157,215,157,248,157,215,157,215,
+  157,24,158,216,157,57,166,248,157,24,166,25,158,57,166,25,158,57,166,25,
+  166,24,158,57,158,122,174,122,166,123,166,155,174,155,174,219,182,252,182,252,
+  182,220,182,252,182,29,191,28,191,29,191,29,191,28,191,61,199,93,199,94,
+  207,126,207,158,215,191,223,158,223,158,223,191,231,191,231,190,223,191,223,223,
+  231,223,231,255,239,3,223,231,3,255,239,129,223,239,4,255,239,130,255,247,
+  255,239,3,255,247,3,255,239,141,223,239,255,239,255,239,223,239,255,247,255,
+  247,255,255,248,165,175,107,78,99,41,58,41,66,73,66,3,41,58,130,9,
+  58,8,58,3,9,58,148,8,58,9,66,233,57,233,57,232,57,8,58,232,
+  57,9,58,41,66,139,74,139,74,171,82,172,82,171,74,171,82,204,82,204,
+  82,77,99,178,148,243,156,3,243,148,4,244,156,136,179,140,82,124,50,116,
+  114,124,147,124,179,124,180,124,179,124,3,147,124,150,115,116,82,108,18,100,
+  241,91,209,83,242,107,215,165,244,140,82,132,57,174,255,223,95,175,41,50,
+  73,74,40,66,200,49,74,58,13,91,232,41,228,16,196,8,219,174,3,255,
+  255,133,89,134,102,1,167,25,45,59,190,215,3,255,255,140,24,150,85,165,
+  150,173,114,132,38,25,39,33,39,25,39,25,6,25,197,16,132,8,132,16,
+  5,132,8,145,9,58,46,99,208,115,78,99,78,99,78,107,110,107,142,107,
+  175,115,175,115,208,115,240,123,16,124,16,124,49,132,81,132,49,132,3,81,
+  132,138,17,124,240,123,48,132,49,132,81,140,114,140,114,140,81,132,81,140,
+  114,140,3,146,148,3,146,140,5,146,148,7,178,148,131,146,148,146,140,146,
+  148,3,146,140,137,114,140,114,140,146,140,146,148,146,148,110,107,228,24,228,
+  32,228,32,3,228,24,133,227,24,4,33,228,24,228,24,4,33,4,228,32,
+  169,195,24,130,16,195,24,136,98,101,98,228,65,199,106,163,65,131,57,163,
+  57,162,57,130,57,163,57,163,65,228,65,4,74,37,82,69,90,134,90,166,
+  98,199,106,7,115,72,123,72,131,136,139,137,139,201,147,201,155,233,155,9,
+  156,9,164,42,164,42,164,41,164,41,164,74,172,73,164,74,172,165,106,130,
+  57,131,57,3,130,57,146,131,57,98,57,70,74,176,172,241,196,240,188,240,
+  188,240,196,241,188,241,196,241,196,241,188,240,196,240,196,241,196,240,196,241,
+  196,209,196,4,241,196,135,240,188,240,188,241,196,241,196,240,196,241,196,240,
+  196,4,241,196,167,208,196,209,188,208,188,176,188,144,180,143,180,110,172,78,
+  172,13,156,236,147,204,147,139,139,74,123,9,115,200,106,167,98,102,90,70,
+  82,5,74,228,57,163,57,163,57,130,49,98,49,98,49,66,49,98,57,130,
+  57,131,57,195,65,196,73,228,73,37,82,37,82,70,90,102,90,135,106,135,
+  106,167,106,169,4,4,44,99,136,45,99,44,99,44,99,45,99,44,99,45,
+  99,44,99,44,99,4,45,99,129,44,99,6,45,99,136,44,99,45,99,44,
+  99,45,99,44,99,45,99,45,99,44,99,8,45,99,130,44,99,44,99,8,
+  45,99,132,77,99,45,99,44,91,45,91,5,45,99,129,44,99,7,45,99,
+  138,77,99,45,91,45,91,45,99,45,99,45,91,44,91,45,99,77,99,44,
+  91,3,45,99,3,45,91,131,45,99,45,91,45,99,3,45,91,136,45,99,
+  45,91,45,91,77,91,45,91,77,99,45,99,45,99,5,45,91,133,77,91,
+  45,91,45,99,45,99,77,91,5,45,91,136,77,91,45,91,77,91,45,91,
+  45,91,77,91,77,99,45,91,5,77,91,129,45,91,3,236,82,135,236,90,
+  45,99,78,99,175,107,17,116,114,124,114,124,4,147,124,8,179,124,4,147,
+  124,139,147,116,147,116,115,116,114,116,82,108,82,108,50,108,17,100,241,99,
+  208,91,143,91,3,110,91,3,78,91,130,110,91,78,91,5,110,91,129,110,
+  83,6,110,91,157,111,91,111,91,143,91,143,99,175,99,175,99,143,99,143,
+  99,175,99,208,99,241,107,17,108,17,108,17,100,18,60,50,28,18,12,17,
+  12,208,27,209,51,17,84,18,100,50,108,50,108,147,124,211,140,215,173,12,
+  99,170,82,4,138,82,138,105,82,138,82,105,74,138,74,105,74,105,74,138,
+  82,138,74,105,74,106,74,7,105,74,130,73,74,73,74,3,73,66,130,41,
+  66,40,66,3,41,66,138,41,58,41,66,9,58,8,58,8,50,232,49,8,
+  50,232,49,9,50,8,50,4,232,49,161,232,41,232,49,200,41,74,50,237,
+  74,241,115,82,132,81,140,48,132,16,132,231,57,131,8,244,148,146,140,146,
+  132,114,132,114,140,114,140,81,132,49,132,146,140,146,140,114,140,114,140,146,
+  148,114,140,81,132,146,140,179,140,53,149,24,166,121,174,60,199,6,125,207,
+  130,60,191,60,191,3,27,191,190,251,190,219,182,219,182,187,182,251,190,186,
+  182,186,182,154,174,251,190,154,174,186,174,186,174,219,190,186,182,186,182,154,
+  174,121,174,121,174,89,166,121,166,89,166,121,166,154,174,121,174,88,166,89,
+  174,89,166,56,166,24,166,57,166,24,166,247,165,89,174,56,166,24,166,215,
+  157,24,166,247,165,89,174,215,157,248,157,24,166,150,149,183,157,183,157,118,
+  149,183,157,215,157,24,166,183,157,215,157,183,149,183,149,182,157,215,157,183,
+  149,150,149,150,149,215,157,215,157,183,149,183,149,3,215,157,133,216,157,248,
+  157,248,157,25,158,57,166,5,90,166,131,155,174,187,174,187,182,5,220,182,
+  141,29,191,28,191,252,190,61,199,61,199,158,215,126,207,126,207,93,207,158,
+  215,190,223,191,223,191,231,4,191,223,136,223,231,223,231,255,239,223,239,255,
+  239,223,231,255,239,223,239,4,255,239,5,255,247,129,223,239,5,255,239,147,
+  255,247,255,247,255,239,255,255,151,157,49,124,45,91,41,66,41,66,74,66,
+  41,58,9,58,41,66,41,58,9,58,232,57,8,58,9,58,9,66,4,233,
+  57,158,8,58,9,58,9,58,41,66,74,66,171,82,172,82,172,82,139,74,
+  171,82,204,82,203,82,13,91,81,140,243,156,244,156,243,156,244,148,244,148,
+  244,156,244,156,244,148,179,140,82,124,50,116,82,124,147,124,180,124,147,124,
+  179,124,3,147,124,150,115,116,50,108,18,100,242,91,209,91,242,107,183,165,
+  20,149,81,124,217,165,255,215,95,175,171,58,170,82,105,66,9,58,10,58,
+  13,91,236,74,203,66,171,58,122,166,4,255,255,131,255,215,60,183,255,239,
+  4,255,255,138,89,158,52,165,150,173,211,140,71,25,38,25,71,33,39,25,
+  6,25,197,16,5,132,8,144,100,8,132,0,201,49,13,99,176,115,78,99,
+  45,99,78,107,110,107,110,107,143,115,175,115,207,115,240,123,240,123,16,124,
+  3,49,132,3,81,132,146,17,124,16,124,16,124,49,132,49,132,114,140,114,
+  140,49,132,81,132,114,140,146,148,146,140,146,140,146,148,146,140,146,148,146,
+  148,146,140,3,146,148,3,178,148,145,146,148,146,148,179,148,178,148,178,148,
+  146,140,178,148,146,148,146,140,146,140,146,148,146,148,146,140,178,148,179,148,
+  207,123,37,33,3,228,24,132,228,32,4,33,228,24,4,33,5,228,32,139,
+  4,33,228,32,195,24,163,24,195,24,71,82,134,98,195,57,199,98,228,73,
+  131,57,3,163,57,143,232,106,137,131,168,139,202,155,201,155,234,163,10,164,
+  41,164,42,164,42,164,42,172,41,164,73,172,41,164,73,164,3,41,164,138,
+  232,155,73,164,231,147,231,147,199,147,8,156,72,164,73,172,6,123,130,57,
+  6,131,57,138,196,57,78,156,17,189,240,188,241,196,241,196,241,188,241,188,
+  241,196,241,188,3,241,196,129,241,188,4,241,196,167,240,196,241,196,241,196,
+  208,188,208,188,176,188,143,180,111,180,78,172,46,164,13,156,237,147,172,139,
+  139,131,74,123,9,115,232,106,167,98,102,90,70,82,5,74,196,65,164,57,
+  131,57,130,57,130,49,98,57,98,49,131,57,163,57,163,65,196,65,228,73,
+  5,74,37,82,70,90,102,98,134,98,135,98,3,167,106,138,135,98,135,106,
+  102,98,102,98,70,90,70,90,4,74,228,73,228,73,195,65,162,4,12,44,
+  99,134,45,99,44,99,45,99,45,99,44,99,45,99,3,44,99,3,45,99,
+  3,44,99,5,45,99,129,44,99,10,45,99,129,45,91,9,45,99,133,44,
+  99,44,99,45,99,45,99,44,99,9,45,99,130,44,91,77,99,3,45,99,
+  129,45,91,6,45,99,3,45,91,139,45,99,45,91,45,99,45,91,45,99,
+  45,99,45,91,45,91,77,99,45,91,45,99,3,45,91,134,77,99,45,91,
+  77,91,45,91,45,91,77,91,3,45,91,130,77,91,77,91,6,45,91,4,
+  77,91,129,77,99,6,77,91,129,45,91,3,236,82,146,12,91,45,91,110,
+  99,208,107,49,116,114,124,146,124,147,124,147,124,179,124,179,132,147,124,179,
+  132,179,132,179,124,179,124,179,132,147,124,3,179,124,143,147,124,147,124,147,
+  116,115,116,115,116,114,116,82,108,82,108,50,108,50,100,18,100,241,99,208,
+  99,175,91,143,91,6,110,91,134,78,91,110,91,78,91,110,91,110,91,110,
+  83,6,110,91,3,78,83,135,78,91,110,91,110,91,143,99,143,99,208,99,
+  240,107,3,17,108,146,17,92,50,60,82,28,82,12,18,12,209,27,241,59,
+  17,92,17,100,17,108,17,108,179,132,20,141,215,173,170,82,170,82,138,82,
+  138,74,3,138,82,133,105,74,138,82,105,74,105,74,106,74,6,105,74,129,
+  73,74,3,105,74,140,73,74,105,74,73,74,73,66,73,66,41,66,41,66,
+  40,66,41,58,41,66,41,66,41,58,4,8,58,131,9,50,9,50,8,50,
+  4,232,49,144,200,49,232,41,232,41,232,49,232,41,171,66,139,66,82,132,
+  81,132,81,140,81,140,239,131,167,57,196,8,53,157,114,140,3,114,132,146,
+  114,140,208,115,212,140,114,140,178,148,146,140,178,140,114,140,81,132,81,132,
+  146,140,211,140,20,141,56,166,218,182,27,191,125,207,60,199,3,125,207,179,
+  92,199,60,199,27,191,28,191,251,190,251,182,251,190,251,182,251,190,186,174,
+  219,182,186,182,154,174,154,182,218,182,154,174,121,174,186,182,187,182,154,174,
+  154,174,121,174,89,174,153,174,154,182,121,174,56,166,89,174,121,174,56,166,
+  89,174,56,166,121,174,24,166,56,166,248,165,24,166,89,174,24,166,24,166,
+  215,157,182,157,247,165,247,165,182,149,183,149,183,157,215,157,247,157,215,157,
+  182,157,3,150,149,186,183,157,150,157,150,157,150,149,150,149,118,149,183,157,
+  183,157,150,149,215,157,183,157,215,157,118,149,183,149,183,149,151,149,150,149,
+  215,157,183,149,215,157,216,149,183,157,89,174,248,157,248,157,216,157,57,166,
+  122,166,57,166,154,174,155,174,155,174,187,174,188,182,220,182,252,182,219,182,
+  220,182,252,190,29,199,61,199,61,191,61,191,93,199,126,207,190,223,158,215,
+  191,231,158,223,191,223,190,223,191,223,223,231,223,231,223,239,223,239,223,231,
+  223,231,3,255,239,130,255,247,255,239,6,255,247,133,223,239,255,247,255,247,
+  255,239,223,239,4,255,239,142,255,255,151,157,114,132,78,99,41,66,41,58,
+  41,66,41,58,41,58,9,58,9,58,232,57,232,57,9,58,3,232,57,129,
+  9,58,3,232,57,134,9,66,233,57,41,66,74,74,106,74,171,74,4,171,
+  82,147,204,82,204,82,240,123,244,156,243,148,243,156,243,148,244,148,243,156,
+  244,156,244,156,179,140,82,124,17,116,82,124,147,124,148,124,147,124,179,124,
+  3,147,124,150,115,116,82,108,18,100,241,91,209,91,209,99,215,165,53,149,
+  81,124,58,166,255,215,127,183,110,75,17,116,240,107,111,91,42,50,13,83,
+  82,124,86,149,53,141,154,174,11,255,255,138,154,158,20,157,182,173,244,148,
+  135,25,38,25,71,25,39,25,6,25,197,16,5,132,8,155,100,8,100,0,
+  168,41,13,91,175,107,78,107,45,99,77,99,110,107,110,107,143,107,175,115,
+  175,115,207,115,240,123,16,124,17,124,49,132,49,132,81,132,81,132,49,132,
+  17,124,16,124,16,124,49,132,49,132,4,81,132,130,114,140,146,148,4,146,
+  140,130,146,148,146,148,3,146,140,136,146,148,146,140,178,148,146,148,146,148,
+  178,148,178,148,179,148,5,178,148,139,146,148,146,148,179,148,178,148,178,148,
+  211,148,17,124,135,41,227,24,4,25,4,33,4,228,24,133,4,25,228,32,
+  4,33,228,32,4,33,3,228,32,136,162,16,130,16,7,66,199,106,163,57,
+  167,98,36,82,162,57,3,163,57,157,138,131,139,180,106,172,73,172,41,164,
+  41,164,73,164,8,156,40,164,232,155,199,147,167,139,8,156,199,147,167,147,
+  134,139,102,131,167,147,69,131,231,147,231,155,232,147,199,147,231,155,72,164,
+  105,172,103,147,162,65,130,57,6,131,57,131,205,131,17,189,17,197,5,241,
+  196,178,209,196,208,196,176,188,175,180,143,180,110,172,78,164,45,164,237,155,
+  236,147,172,139,107,131,74,123,9,115,200,106,168,98,134,90,70,82,4,74,
+  228,65,163,57,163,57,131,57,130,49,130,57,131,57,131,57,163,65,196,65,
+  228,73,4,74,37,82,69,82,102,90,134,98,135,98,135,98,135,106,167,106,
+  135,98,135,98,103,98,134,98,102,90,70,90,37,82,5,74,5,74,228,73,
+  196,65,3,163,65,136,130,57,98,49,99,57,98,57,131,57,99,57,98,49,
+  98,57,131,4,15,44,99,132,45,99,44,99,44,99,45,99,7,44,99,133,
+  45,99,45,99,44,99,45,99,44,99,11,45,99,129,44,99,5,45,99,135,
+  44,99,45,99,45,99,44,91,45,99,45,99,44,91,7,45,99,130,44,91,
+  44,99,8,45,99,130,45,91,45,91,3,45,99,3,45,91,133,77,99,45,
+  99,45,91,45,99,45,99,5,45,91,130,45,99,45,91,4,77,91,139,77,
+  99,45,91,45,91,77,99,77,91,77,99,45,91,45,91,45,99,45,91,77,
+  91,7,45,91,130,77,91,45,91,7,77,91,151,45,91,12,91,236,82,236,
+  82,236,90,13,91,77,91,142,99,240,107,49,116,114,124,146,124,147,124,147,
+  124,179,124,179,132,179,124,147,124,179,124,147,124,179,124,179,132,179,124,6,
+  147,124,131,115,116,114,116,114,116,3,82,108,141,50,100,50,100,50,108,241,
+  99,208,99,176,91,143,91,110,91,111,91,110,91,110,91,78,91,110,91,3,
+  78,91,132,78,83,78,91,46,91,78,83,3,45,83,129,13,83,4,13,75,
+  134,46,83,111,83,143,91,176,99,208,99,241,107,3,17,108,150,50,92,115,
+  52,147,20,115,4,50,4,241,27,241,67,17,92,17,108,49,108,17,100,244,
+  140,52,149,118,165,137,82,170,82,138,82,138,82,105,74,138,82,105,74,138,
+  82,10,105,74,136,73,74,105,74,73,74,73,74,105,74,105,74,73,74,73,
+  66,7,41,66,4,8,58,131,232,49,232,49,233,49,4,232,49,5,232,41,
+  178,200,41,13,83,237,82,114,140,81,132,81,132,81,140,16,132,102,49,37,
+  25,85,165,113,140,114,132,114,140,81,132,81,132,17,124,215,165,114,140,146,
+  140,178,140,146,140,146,140,114,140,114,140,178,140,211,140,150,157,121,174,251,
+  190,60,199,60,199,93,207,92,199,27,191,60,199,60,199,251,190,60,199,251,
+  182,251,190,251,190,219,182,219,182,186,174,219,182,186,182,186,182,122,174,154,
+  174,3,186,182,196,186,174,251,190,121,174,154,174,153,174,89,166,121,174,89,
+  166,121,174,88,166,121,174,56,166,24,166,89,174,56,174,56,166,24,166,24,
+  166,247,157,88,174,247,165,247,165,247,157,24,166,150,157,182,157,215,157,182,
+  157,215,157,182,149,182,157,247,165,150,157,150,149,117,149,150,149,150,149,182,
+  149,85,149,85,141,150,149,215,157,150,149,118,149,85,149,182,149,215,157,215,
+  157,183,157,118,149,150,149,183,149,85,141,215,157,215,149,183,149,216,157,216,
+  157,150,149,248,165,215,157,25,166,216,149,57,166,57,158,154,174,89,166,90,
+  166,3,155,174,152,187,174,220,182,187,182,188,182,220,182,29,191,252,182,61,
+  199,29,191,61,199,126,215,158,215,158,215,190,223,191,231,191,231,191,223,158,
+  215,158,215,223,231,223,231,255,239,191,223,223,231,3,255,239,133,223,231,255,
+  239,255,247,255,247,255,239,6,255,247,130,223,231,223,231,4,255,239,137,255,
+  255,86,149,49,116,45,91,41,58,74,66,41,66,41,66,41,58,3,9,58,
+  133,232,49,232,57,8,58,232,57,232,57,3,232,49,183,232,57,232,57,9,
+  58,9,58,74,74,106,74,171,74,171,82,171,74,171,74,171,82,172,82,204,
+  82,175,115,211,148,243,148,243,148,244,156,243,156,244,148,244,156,244,156,179,
+  140,82,124,17,116,82,124,115,124,148,124,179,124,179,124,148,124,147,124,147,
+  116,115,116,82,108,18,100,241,91,209,91,209,99,183,165,85,149,147,132,59,
+  166,223,207,191,199,17,92,244,148,212,132,114,116,42,50,12,91,211,140,249,
+  173,216,157,186,166,11,255,255,138,219,174,20,149,182,173,53,157,168,33,38,
+  25,39,25,39,25,6,25,197,16,6,132,8,144,100,8,103,41,236,90,143,
+  107,78,99,45,99,78,99,78,107,110,107,142,107,175,115,207,115,208,123,240,
+  123,241,123,17,132,4,49,132,129,81,132,4,49,132,5,81,132,129,114,140,
+  10,146,140,3,146,148,130,146,140,178,148,3,146,148,130,178,148,179,148,4,
+  178,148,142,146,148,146,148,178,148,178,148,179,148,49,132,232,49,195,24,228,
+  32,4,33,228,24,228,32,4,33,228,24,4,228,32,147,4,33,228,32,4,
+  33,228,32,163,24,130,24,166,57,200,114,163,65,134,90,101,90,162,57,163,
+  57,163,57,130,49,105,115,139,172,105,172,72,164,3,199,147,153,166,139,199,
+  147,166,139,134,131,166,139,232,155,8,156,232,155,199,147,231,147,231,155,231,
+  155,8,156,40,164,41,164,9,156,8,156,41,156,9,164,135,139,227,73,130,
+  57,131,57,130,57,130,57,3,131,57,160,42,107,143,172,110,172,78,164,13,
+  164,236,155,204,147,171,139,106,131,74,123,9,115,200,106,167,90,102,82,69,
+  74,36,74,196,65,195,57,163,57,131,57,163,57,131,49,163,57,163,57,196,
+  65,228,73,4,74,5,82,37,82,70,90,102,90,102,98,6,135,98,145,134,
+  98,102,90,102,90,70,82,37,82,5,82,228,73,228,73,196,65,195,65,163,
+  57,162,57,130,57,130,49,98,49,131,57,99,57,3,98,57,134,98,49,98,
+  57,98,49,98,57,98,57,130,57,3,98,57,130,131,57,131,57,167,4,7,
+  44,99,130,45,99,12,99,3,45,99,4,44,99,133,45,99,45,99,44,99,
+  45,99,45,99,4,44,99,130,45,99,44,99,7,45,99,4,44,99,129,44,
+  91,4,45,99,133,44,99,44,99,77,99,77,99,45,91,10,45,99,3,77,
+  99,143,45,91,77,99,77,99,45,99,45,99,45,91,45,99,45,91,45,91,
+  45,99,77,99,45,99,45,99,45,91,77,91,5,45,91,134,45,99,45,91,
+  45,91,77,99,45,99,45,99,5,45,91,129,77,99,3,45,91,130,45,99,
+  45,91,4,77,91,132,45,91,77,91,45,91,77,99,9,45,91,131,77,91,
+  77,91,45,91,5,77,91,143,45,91,12,83,236,82,236,82,236,90,12,91,
+  77,91,143,99,240,107,82,116,146,124,147,124,147,124,179,124,147,132,4,147,
+  124,129,147,132,3,179,124,131,180,124,179,124,179,124,3,147,124,145,147,116,
+  115,116,114,116,82,108,82,108,50,100,50,108,50,100,50,108,49,108,241,99,
+  209,99,176,91,143,91,78,83,78,83,46,83,3,45,83,130,13,75,13,83,
+  3,13,75,3,237,74,130,237,66,236,66,3,237,66,134,13,75,78,75,111,
+  91,175,99,208,99,241,107,3,17,108,150,18,108,82,84,148,52,180,4,180,
+  4,83,4,50,36,17,76,17,100,50,108,17,108,17,100,243,140,85,149,19,
+  149,138,82,170,82,138,82,138,74,138,82,105,74,138,82,11,105,74,129,73,
+  74,4,105,74,132,73,74,105,74,73,66,73,66,3,41,66,132,41,58,41,
+  66,8,66,41,66,3,8,58,133,232,57,232,57,232,49,8,50,9,50,5,
+  232,41,180,232,49,232,41,200,41,13,83,204,74,114,140,81,132,81,132,81,
+  140,174,115,37,41,135,33,53,157,81,140,114,140,114,140,81,140,48,132,114,
+  140,85,165,146,140,178,140,146,140,179,148,178,140,114,140,146,140,179,140,211,
+  140,150,149,56,174,219,182,92,199,60,191,125,207,157,215,28,199,60,199,28,
+  191,27,191,28,191,251,182,219,182,251,190,186,182,27,191,186,174,186,182,122,
+  166,154,174,121,174,122,174,3,186,182,200,154,174,153,174,121,174,89,166,154,
+  174,88,166,154,174,24,166,121,174,89,174,88,166,89,174,24,166,89,174,121,
+  174,24,166,24,166,247,165,23,166,23,166,247,165,247,165,247,157,247,165,117,
+  149,182,157,247,165,182,157,117,149,182,157,150,149,117,157,150,157,150,149,182,
+  157,85,149,182,157,150,149,85,141,118,149,85,141,85,149,85,149,117,149,118,
+  149,53,141,118,149,118,149,150,149,118,149,85,149,118,149,118,149,150,149,86,
+  141,150,149,183,149,215,157,150,149,182,149,215,157,183,149,248,157,24,158,57,
+  166,25,158,57,166,90,174,122,174,155,174,122,174,155,174,3,187,182,140,220,
+  182,187,174,219,174,61,191,28,191,61,199,126,207,158,223,158,215,126,215,190,
+  223,126,215,3,191,223,3,223,231,139,191,223,223,231,223,239,223,231,255,239,
+  223,231,255,239,255,239,255,247,255,239,255,247,3,255,239,130,255,247,255,247,
+  3,255,239,151,255,247,255,239,255,239,255,255,22,141,17,124,45,99,9,58,
+  41,58,9,58,41,66,9,58,41,66,9,58,9,58,232,49,232,49,232,57,
+  232,49,232,57,232,49,232,57,232,57,4,9,58,140,74,66,106,74,139,82,
+  171,82,139,74,171,74,171,82,172,82,204,82,110,107,179,148,244,156,3,243,
+  148,135,244,156,244,156,244,148,179,140,82,124,17,116,82,116,3,147,124,154,
+  148,132,148,124,147,124,147,116,115,116,82,108,18,100,242,99,209,91,177,91,
+  183,165,53,149,49,124,26,166,255,223,223,207,82,100,53,149,21,141,180,124,
+  107,50,204,82,243,140,57,174,25,166,154,166,11,255,255,138,28,191,243,148,
+  150,173,86,157,233,41,6,25,39,25,39,25,6,25,197,16,6,132,8,145,
+  100,0,71,33,204,82,111,107,78,99,45,99,45,99,78,107,78,107,110,107,
+  143,115,175,115,208,115,240,123,240,123,17,124,17,132,3,49,132,6,81,132,
+  131,82,140,82,140,81,132,3,114,140,9,146,140,132,146,148,146,148,178,148,
+  146,140,3,146,148,3,178,148,141,146,140,146,148,178,148,178,148,146,148,178,
+  148,178,148,146,148,179,148,114,140,74,66,195,24,4,33,3,228,32,4,228,
+  24,3,4,33,3,228,32,194,195,24,130,16,101,41,200,114,228,73,101,82,
+  135,98,130,57,163,57,163,57,130,49,232,98,139,172,137,172,105,172,40,156,
+  8,156,8,156,232,155,40,164,40,164,8,164,8,164,8,156,9,164,232,155,
+  232,147,199,147,168,147,167,139,103,131,70,123,38,123,6,115,230,106,165,98,
+  133,90,69,82,163,57,163,57,131,57,130,57,131,57,131,57,130,57,131,57,
+  5,74,167,90,102,82,69,74,4,66,228,65,196,65,163,65,163,57,163,49,
+  163,57,163,65,196,65,195,65,228,73,5,74,37,82,69,82,102,90,102,90,
+  6,135,98,140,102,98,102,98,102,90,70,90,69,82,37,82,37,82,228,73,
+  228,73,196,65,163,65,163,57,3,131,57,156,98,57,130,57,99,57,98,57,
+  130,57,98,49,98,49,130,49,98,57,98,57,99,49,130,49,98,57,130,57,
+  130,57,131,57,163,65,196,65,228,73,5,74,37,82,70,90,102,90,102,98,
+  135,98,168,106,168,106,167,106,168,4,12,44,99,129,45,99,6,44,99,134,
+  45,99,44,99,45,99,45,99,44,99,45,99,3,44,99,133,45,99,44,99,
+  45,99,45,99,44,99,9,45,99,129,44,99,5,45,99,130,77,99,77,99,
+  3,45,99,131,45,91,45,99,45,91,4,45,99,129,44,99,4,45,99,137,
+  45,91,77,99,45,99,45,99,45,91,77,99,77,99,45,91,45,99,4,45,
+  91,130,45,99,45,91,4,45,99,129,77,99,5,45,91,142,77,99,45,91,
+  45,99,77,91,45,91,45,99,45,99,45,91,77,91,77,91,45,91,45,91,
+  77,91,77,91,9,45,91,135,77,91,45,91,77,91,45,91,77,91,77,91,
+  45,91,3,77,91,139,45,91,12,83,236,82,203,82,236,90,45,91,77,99,
+  175,107,17,116,82,124,114,124,3,147,124,136,179,132,147,124,147,124,147,132,
+  147,124,179,124,179,124,179,132,3,179,124,4,147,124,134,147,116,147,116,115,
+  116,114,108,82,108,82,100,4,50,108,137,50,100,241,99,208,99,143,91,78,
+  83,45,75,13,75,237,66,236,66,3,204,66,129,237,74,5,204,66,140,236,
+  66,236,66,237,66,13,75,45,75,78,83,111,91,143,99,208,99,240,107,17,
+  108,17,108,3,50,108,148,50,76,50,44,50,4,18,4,209,3,18,44,50,
+  76,50,100,50,108,18,108,50,108,53,149,118,157,113,132,138,82,170,82,138,
+  82,137,74,105,74,138,82,11,105,74,129,73,74,3,105,74,153,73,74,73,
+  74,105,74,73,66,73,66,40,66,73,66,41,66,41,66,40,66,9,58,41,
+  58,8,66,8,58,8,58,8,50,232,49,232,57,232,49,232,49,233,49,232,
+  49,232,49,200,41,232,41,3,200,41,146,41,50,77,91,204,74,114,140,49,
+  132,48,132,81,140,77,107,4,33,9,50,52,157,81,132,81,132,113,132,81,
+  132,48,132,211,148,53,157,3,114,140,138,146,140,146,140,114,140,114,140,146,
+  140,211,140,182,157,121,174,251,182,92,207,3,125,207,145,93,207,125,207,60,
+  199,218,174,28,191,251,182,27,191,251,182,219,182,251,182,219,182,186,182,186,
+  174,122,174,121,174,121,166,218,182,3,154,174,129,186,182,3,121,174,174,89,
+  174,89,166,56,166,121,174,88,166,56,166,56,166,24,166,247,157,24,166,247,
+  157,24,158,247,165,247,165,247,157,247,157,182,157,182,157,247,165,150,157,150,
+  149,182,157,149,149,117,149,150,149,118,149,150,157,150,157,117,149,118,157,85,
+  149,85,149,117,149,117,149,118,149,85,149,85,149,53,141,117,149,85,149,85,
+  149,85,141,118,149,85,149,150,157,53,141,3,85,149,140,53,149,85,149,150,
+  149,150,149,183,149,183,149,215,157,215,157,248,157,183,157,24,166,216,157,3,
+  57,166,131,90,166,90,166,122,174,3,155,174,146,187,182,155,174,252,182,220,
+  182,220,182,61,199,61,199,93,207,93,199,126,207,126,207,158,215,158,215,190,
+  223,190,223,191,223,223,231,223,231,3,223,239,132,223,231,223,231,255,239,223,
+  239,3,255,239,4,255,247,130,255,255,255,247,4,255,239,151,255,247,255,247,
+  255,255,213,132,49,124,171,74,41,66,41,58,41,58,41,66,8,58,9,58,
+  9,58,233,57,200,49,232,57,232,57,232,49,232,49,200,49,9,58,232,49,
+  232,57,3,9,58,131,41,66,106,74,139,74,3,171,74,137,171,82,171,82,
+  204,82,45,99,114,140,244,156,244,156,243,148,243,148,3,244,156,135,179,140,
+  82,124,17,116,82,116,115,124,147,124,179,124,4,147,124,150,115,116,82,108,
+  18,100,242,99,242,91,176,91,150,157,118,157,179,140,217,165,255,231,255,215,
+  147,100,85,149,86,149,244,132,171,50,203,74,211,140,58,182,57,166,90,158,
+  11,255,255,141,93,207,211,140,150,173,118,165,42,50,38,25,71,33,71,33,
+  39,25,229,16,164,8,132,8,132,16,3,132,8,145,100,0,38,25,172,82,
+  111,107,110,99,13,99,45,99,77,99,78,107,110,107,143,107,175,115,207,115,
+  208,123,16,124,16,124,17,124,3,49,132,130,81,132,49,132,3,81,132,129,
+  113,132,7,114,140,130,146,140,114,140,7,146,140,131,146,148,146,148,146,140,
+  5,146,148,6,178,148,137,146,148,179,148,146,148,179,148,146,148,203,82,195,
+  24,4,33,4,33,4,228,32,3,4,33,129,228,24,3,4,33,168,228,32,
+  195,24,130,16,36,33,200,106,36,90,36,74,167,98,163,65,163,57,163,57,
+  130,57,102,82,42,164,73,164,40,164,232,155,200,147,168,147,167,139,135,139,
+  70,131,70,123,6,115,230,106,197,98,164,98,100,90,68,82,36,74,4,74,
+  227,65,194,57,162,57,163,57,130,57,131,57,130,49,98,49,130,49,4,130,
+  57,170,163,57,163,57,195,65,196,65,196,65,228,65,228,73,5,74,38,82,
+  70,90,102,90,102,90,134,98,135,98,135,98,134,98,135,98,103,98,103,98,
+  102,90,70,90,69,90,37,82,37,82,4,74,4,74,228,65,195,65,195,65,
+  163,65,131,57,130,57,130,57,131,57,99,57,98,57,98,57,130,57,98,49,
+  130,57,130,49,130,49,4,130,57,144,131,57,163,57,163,65,196,65,228,65,
+  4,74,37,82,69,90,69,90,134,98,135,98,135,98,167,98,167,106,167,106,
+  135,106,3,135,98,135,70,90,69,82,37,82,5,82,228,73,228,73,196,65,
+  182,4,11,44,99,135,45,99,44,99,12,99,45,99,44,99,44,99,45,99,
+  3,44,99,3,45,99,131,44,99,45,99,44,99,4,45,99,130,44,99,44,
+  99,3,45,99,129,44,99,3,45,99,129,44,99,7,45,99,129,45,91,5,
+  45,99,131,45,91,44,91,77,99,8,45,99,132,77,99,45,99,45,99,77,
+  99,3,45,91,136,45,99,45,91,45,91,77,99,45,91,45,99,77,99,77,
+  99,3,45,99,132,45,91,45,91,77,91,77,91,3,45,91,140,77,99,77,
+  91,45,91,77,91,45,91,77,99,45,91,45,91,77,91,77,91,45,91,45,
+  91,6,77,91,130,45,91,77,91,3,45,91,9,77,91,140,77,99,45,91,
+  236,82,236,82,204,90,12,91,45,91,78,99,208,107,17,116,82,124,146,124,
+  6,147,124,129,179,132,5,179,124,131,147,124,179,124,179,124,3,147,124,133,
+  147,116,147,124,146,116,114,116,114,108,3,82,108,4,50,100,183,241,99,175,
+  91,78,75,13,75,236,66,204,66,204,58,204,66,205,66,204,66,204,66,205,
+  66,237,66,237,66,237,74,13,75,13,75,45,83,78,83,78,91,111,91,143,
+  99,175,99,208,107,240,107,17,108,17,108,50,116,50,116,82,116,17,108,175,
+  75,78,35,13,3,13,3,78,3,176,51,17,92,82,108,82,108,50,108,115,
+  116,243,140,182,165,206,123,138,82,170,82,138,82,138,82,105,74,105,74,138,
+  82,105,82,105,74,106,74,8,105,74,129,73,74,3,105,74,132,73,74,73,
+  74,73,66,73,66,3,41,66,131,8,66,41,66,41,58,3,8,58,130,232,
+  57,232,57,6,232,49,223,200,49,200,41,200,41,232,49,200,49,167,41,143,
+  91,204,74,78,99,81,132,49,132,49,132,81,140,45,107,228,24,139,66,244,
+  156,81,132,49,132,81,132,49,132,81,132,53,165,243,148,113,140,146,140,113,
+  140,114,140,114,140,81,132,114,140,146,140,211,140,150,157,121,174,60,199,60,
+  199,28,191,92,199,93,207,93,207,92,199,60,199,60,191,251,182,28,191,218,
+  182,251,182,219,182,251,182,186,174,219,182,154,174,154,174,154,182,154,174,153,
+  174,154,166,186,174,153,174,154,174,186,182,88,166,121,174,56,166,88,166,89,
+  174,24,166,24,166,24,158,23,166,247,165,247,157,247,165,56,166,247,157,215,
+  157,182,157,247,165,215,157,182,157,215,157,182,157,150,149,182,149,182,149,150,
+  149,117,149,117,149,150,157,85,149,85,149,117,149,85,149,117,149,3,85,149,
+  160,118,149,52,141,53,149,85,149,85,149,20,141,85,149,53,141,85,141,85,
+  149,85,149,53,141,117,149,53,141,85,149,20,141,85,149,118,149,53,141,118,
+  149,150,157,182,157,183,157,118,149,150,149,216,157,248,157,24,166,24,166,25,
+  158,57,166,89,166,4,90,166,144,122,174,90,166,155,174,187,182,187,182,252,
+  182,252,190,93,199,126,207,61,199,126,207,158,215,158,215,191,223,223,231,158,
+  215,4,223,231,132,255,239,191,223,255,239,223,239,3,255,239,5,255,247,4,
+  255,255,130,255,247,255,247,3,255,255,135,246,140,114,132,139,74,42,66,74,
+  66,41,58,41,66,3,9,58,131,233,57,232,49,232,49,3,232,57,130,200,
+  49,232,49,3,233,57,156,9,58,233,57,41,66,106,66,139,74,171,82,171,
+  74,139,74,171,74,172,82,172,82,236,90,49,132,244,156,243,148,244,156,243,
+  148,244,156,244,148,244,148,179,140,50,124,17,116,49,116,115,124,147,124,147,
+  124,179,124,3,147,124,150,115,116,82,108,50,108,241,99,241,91,144,91,150,
+  157,85,157,147,140,185,165,255,223,255,215,147,100,85,149,86,149,244,140,205,
+  66,171,74,179,132,89,182,57,174,89,150,11,255,255,139,190,223,179,132,150,
+  173,150,165,139,58,38,25,71,33,71,33,39,25,229,16,164,8,3,132,8,
+  150,100,8,132,8,100,0,6,25,172,82,111,107,110,107,13,99,45,99,77,
+  99,78,107,110,107,142,107,175,115,175,115,208,115,240,123,240,123,17,132,17,
+  132,49,132,49,132,7,81,132,129,81,140,4,114,140,6,146,140,129,114,140,
+  7,146,140,129,146,148,3,146,140,136,146,148,146,148,178,148,146,148,146,148,
+  178,148,178,148,146,140,3,178,148,247,45,99,227,16,228,32,4,33,4,33,
+  228,32,4,33,4,33,228,32,4,33,4,33,228,24,228,32,4,33,4,33,
+  228,32,195,24,130,16,227,24,168,98,101,98,227,65,200,106,195,65,163,57,
+  163,57,162,57,227,65,198,106,197,106,165,98,133,98,100,82,68,82,3,74,
+  227,65,195,57,195,57,163,57,130,57,131,49,131,49,130,57,98,49,98,49,
+  130,49,131,57,163,57,163,65,195,65,195,65,228,65,4,74,5,74,37,82,
+  70,82,70,90,102,90,102,90,103,90,135,98,103,98,135,98,103,98,135,98,
+  103,90,102,90,102,90,70,90,37,82,69,82,5,82,5,74,228,73,228,65,
+  196,65,195,65,163,65,131,57,131,57,130,57,98,57,130,57,130,49,130,57,
+  130,57,130,49,130,57,130,49,98,49,130,57,130,57,131,57,131,57,163,65,
+  195,65,196,65,228,73,4,74,37,82,37,82,70,90,102,90,135,98,135,98,
+  168,106,167,98,167,98,167,106,135,106,135,98,135,98,102,98,70,90,70,90,
+  37,82,4,74,4,74,196,65,3,163,65,130,130,57,131,57,4,98,57,131,
+  130,57,98,57,130,57,174,4,4,44,99,131,12,99,44,99,45,99,4,44,
+  99,133,12,99,44,99,44,99,45,99,44,99,5,45,99,136,44,99,44,99,
+  45,99,44,99,45,99,44,99,45,99,44,99,11,45,99,129,77,99,3,45,
+  99,133,44,99,45,99,45,99,77,99,44,99,3,45,99,135,44,99,45,99,
+  45,99,44,91,45,99,45,91,45,91,3,45,99,130,45,91,77,99,3,45,
+  99,136,77,99,45,91,45,99,77,99,45,91,77,99,45,99,45,91,3,45,
+  99,133,45,91,45,91,77,99,45,99,45,99,4,45,91,141,77,99,45,91,
+  77,91,77,91,45,91,77,99,45,91,45,91,77,91,45,91,77,91,45,91,
+  45,91,5,77,91,137,45,91,77,91,45,91,45,91,77,91,45,91,77,91,
+  77,91,45,91,7,77,91,140,77,99,77,91,13,91,236,90,204,82,236,90,
+  12,91,45,99,110,107,208,107,49,116,114,124,4,147,124,130,179,124,179,132,
+  3,147,124,133,179,124,179,124,179,132,179,132,147,124,3,179,124,4,147,124,
+  133,147,116,115,116,114,116,114,108,83,108,4,82,108,135,50,108,17,100,176,
+  91,110,83,45,75,237,74,236,66,3,237,74,146,13,75,14,75,46,75,46,
+  83,46,83,78,83,78,91,110,91,110,91,143,99,143,99,176,99,207,99,208,
+  107,240,107,17,108,17,108,50,116,3,82,116,144,208,107,12,75,9,26,69,
+  1,69,1,171,18,144,67,17,100,82,116,82,108,82,108,179,124,20,149,247,
+  173,44,107,170,82,3,138,82,131,105,74,105,74,106,74,10,105,74,5,73,
+  74,131,105,74,73,74,73,74,6,41,66,130,40,58,40,66,3,8,58,130,
+  232,49,8,50,5,232,49,4,200,41,134,232,49,167,33,240,115,139,74,208,
+  107,81,132,3,49,132,132,203,90,196,24,45,91,211,148,4,81,132,206,49,
+  132,85,173,81,132,113,140,113,140,81,132,113,140,113,140,114,140,146,140,146,
+  140,243,140,215,165,186,182,60,199,60,199,92,207,93,207,92,207,60,199,92,
+  199,60,191,60,199,28,191,28,191,251,182,251,182,218,182,219,182,186,182,219,
+  182,186,182,122,174,154,174,186,182,154,174,88,166,153,174,186,174,154,174,121,
+  174,121,174,89,174,24,158,88,166,56,166,23,166,24,166,56,166,247,157,248,
+  165,214,157,247,157,215,157,214,157,214,157,85,149,182,157,215,157,215,165,182,
+  157,85,141,150,149,85,149,182,157,150,149,150,149,118,149,85,149,150,157,118,
+  149,52,141,117,149,85,149,52,141,85,149,85,149,20,141,3,85,149,156,85,
+  141,244,132,85,141,85,149,53,141,53,141,20,141,85,149,52,149,20,141,20,
+  141,52,149,85,149,150,157,244,132,85,141,85,149,85,149,150,149,118,149,85,
+  141,182,149,183,157,183,157,24,166,248,165,25,166,24,166,3,57,166,151,25,
+  166,89,166,58,174,122,174,187,182,220,182,220,182,29,191,29,191,61,199,29,
+  191,61,199,94,207,93,199,158,207,190,215,126,207,191,223,190,223,158,215,191,
+  223,255,239,223,231,4,255,239,130,223,239,255,239,4,255,247,131,255,255,255,
+  255,255,247,6,255,255,135,246,140,49,124,139,66,41,58,41,66,41,58,41,
+  58,3,9,58,164,232,49,200,49,232,49,232,57,232,57,200,57,233,57,9,
+  58,233,49,233,57,233,57,9,58,9,58,41,66,74,66,106,74,171,82,139,
+  82,139,74,171,82,172,82,204,82,204,82,240,123,243,156,244,156,243,148,243,
+  148,244,156,244,148,244,148,147,140,50,124,17,116,50,116,115,124,3,147,124,
+  153,148,124,147,124,147,124,115,116,82,108,18,100,18,92,241,91,176,91,150,
+  157,85,157,146,140,119,149,255,223,255,223,212,100,53,149,118,149,212,132,13,
+  75,171,74,146,132,57,182,90,174,58,158,11,255,255,134,255,239,179,124,150,
+  173,150,173,204,74,38,25,3,71,33,130,230,24,164,8,5,132,8,145,100,
+  0,230,16,139,74,78,99,111,107,13,99,45,99,45,99,78,99,110,107,110,
+  107,175,115,175,115,208,115,240,123,17,124,16,124,4,49,132,131,81,132,49,
+  132,49,132,3,81,132,6,114,140,130,146,140,114,140,3,146,140,129,114,140,
+  8,146,140,129,146,148,4,146,140,130,178,148,146,148,3,178,148,134,146,140,
+  178,148,179,148,179,148,143,107,4,25,5,4,33,130,228,24,4,25,6,4,
+  33,148,228,32,228,24,130,16,195,24,104,90,166,106,195,57,200,106,228,73,
+  130,57,162,57,162,57,163,57,163,57,162,57,130,57,131,49,130,49,130,57,
+  131,57,3,163,57,135,196,65,228,65,228,65,4,74,37,74,69,82,69,82,
+  3,102,90,152,135,98,135,98,102,98,134,98,102,98,134,90,102,90,102,90,
+  70,90,70,90,69,90,37,82,5,74,5,74,228,73,228,73,196,65,195,65,
+  163,65,163,57,131,57,131,57,130,57,131,57,3,99,49,151,130,57,130,57,
+  98,49,98,57,130,57,130,57,131,57,163,57,195,65,196,65,228,65,5,74,
+  37,82,69,82,69,90,102,90,102,90,135,98,135,98,167,106,167,106,167,98,
+  135,106,3,135,98,147,102,98,69,90,37,82,37,82,5,74,228,73,228,65,
+  195,65,163,65,163,65,163,57,130,57,130,57,131,57,131,57,130,57,98,57,
+  131,57,131,57,3,130,57,136,131,57,131,57,131,49,131,57,131,57,130,57,
+  131,57,130,57,130,4,3,44,99,129,12,99,6,44,99,141,12,99,44,99,
+  44,99,12,99,44,99,45,99,44,99,45,99,45,99,44,99,44,99,45,99,
+  44,99,3,45,99,134,44,99,45,99,45,99,44,99,45,99,44,99,7,45,
+  99,129,44,99,7,45,99,129,44,91,4,45,99,129,77,99,10,45,99,144,
+  45,91,45,99,77,99,45,99,44,91,45,99,45,91,45,99,77,99,45,91,
+  45,99,45,99,45,91,45,99,77,99,77,99,4,45,99,135,45,91,45,99,
+  45,91,77,91,77,99,77,99,45,91,3,77,91,135,45,91,45,91,77,99,
+  77,99,77,91,45,91,45,91,6,77,91,129,45,91,4,77,91,4,45,91,
+  3,77,91,134,78,91,77,91,77,91,77,99,77,91,12,91,3,236,82,134,
+  13,91,45,99,142,99,240,107,49,124,114,124,4,147,124,130,179,124,179,124,
+  3,179,132,3,179,124,134,179,132,179,132,179,124,147,124,147,124,179,124,4,
+  147,124,130,147,116,147,116,3,115,116,139,114,116,114,116,114,108,82,108,50,
+  108,208,99,143,91,78,83,46,83,78,83,78,83,4,78,91,131,110,91,111,
+  91,110,91,4,143,99,156,176,99,207,99,208,107,208,107,240,107,241,107,17,
+  108,49,116,50,116,82,116,114,116,82,116,110,99,106,66,4,17,130,0,102,
+  17,237,58,241,91,82,108,114,116,114,108,82,108,179,124,244,140,215,173,203,
+  90,170,82,3,138,82,10,105,74,134,73,74,105,74,105,74,73,74,73,66,
+  105,74,4,73,74,131,73,66,41,66,40,66,3,41,66,5,8,58,129,232,
+  57,6,232,49,129,232,41,5,200,41,152,167,33,211,140,106,66,175,107,207,
+  115,81,132,49,132,49,132,106,74,131,16,175,107,178,148,81,140,81,132,81,
+  132,49,132,81,132,16,124,114,140,146,140,81,140,81,132,113,140,113,140,3,
+  146,140,159,244,140,182,157,219,190,60,199,92,207,190,223,157,223,92,199,60,
+  199,92,207,92,199,60,199,251,182,219,182,28,191,219,182,186,182,27,191,219,
+  182,251,182,154,174,121,166,154,174,186,174,153,174,186,182,89,166,121,174,121,
+  174,89,174,24,166,4,56,166,170,247,157,56,166,247,157,56,166,247,157,215,
+  157,182,157,182,149,215,157,150,149,150,149,182,157,182,157,214,157,118,149,85,
+  149,85,149,117,149,150,157,117,149,85,141,85,141,85,149,117,149,85,149,85,
+  149,53,149,52,141,85,149,85,149,52,149,20,141,20,141,52,149,20,141,20,
+  141,86,149,53,141,20,141,20,149,53,149,53,141,3,52,149,164,243,140,53,
+  149,85,149,53,141,20,141,53,141,85,149,53,141,53,141,85,149,20,141,86,
+  149,85,141,85,149,150,149,215,157,247,157,247,165,248,157,24,158,25,158,248,
+  157,57,166,57,166,122,174,121,174,122,174,155,174,187,174,220,182,220,182,29,
+  191,61,199,93,199,125,207,125,207,3,158,215,139,190,223,158,215,191,223,223,
+  223,223,231,223,231,255,239,223,239,223,239,255,239,255,239,4,255,247,131,255,
+  255,255,247,255,247,6,255,255,131,86,149,110,99,106,66,4,41,58,146,9,
+  58,9,58,9,50,232,57,200,49,200,49,232,49,232,57,200,49,232,49,233,
+  49,233,49,233,57,233,57,232,49,233,57,9,58,41,66,4,139,74,3,172,
+  82,132,204,82,174,107,211,148,243,156,3,243,148,138,244,148,244,148,147,140,
+  50,116,17,116,50,116,83,124,147,124,147,124,179,124,3,147,124,151,115,116,
+  82,108,50,100,241,99,241,91,176,91,85,149,85,149,179,140,87,157,223,207,
+  255,223,22,109,53,149,119,149,212,132,78,83,171,74,114,132,57,182,90,182,
+  57,158,255,247,10,255,255,134,255,247,211,124,150,173,182,173,13,83,6,25,
+  3,71,33,130,6,25,164,8,5,132,8,146,100,0,197,16,107,74,46,99,
+  111,107,13,91,13,99,45,99,45,99,78,107,111,107,143,115,175,115,208,115,
+  240,123,17,124,17,124,17,132,4,49,132,4,81,132,130,81,140,81,132,5,
+  114,140,131,146,140,146,140,114,140,15,146,140,3,146,148,138,178,148,178,148,
+  146,148,146,148,178,148,178,148,179,148,240,123,69,33,228,24,6,4,33,177,
+  228,32,4,33,228,32,4,33,4,33,228,32,228,32,227,24,162,16,163,16,
+  39,74,200,114,162,65,167,98,36,82,163,57,195,65,227,65,228,65,228,73,
+  4,74,36,74,69,82,69,90,70,90,134,90,134,90,134,98,135,98,135,98,
+  134,98,135,98,135,98,134,98,102,98,102,90,102,90,69,90,70,90,37,82,
+  37,82,4,74,228,73,228,65,195,65,195,65,163,57,131,57,131,57,5,130,
+  57,132,131,57,98,57,98,57,130,57,3,131,57,138,163,57,164,57,195,65,
+  228,65,4,74,5,74,37,82,70,82,102,90,134,90,3,135,98,129,135,106,
+  3,135,98,146,135,106,134,98,102,90,70,90,69,90,37,82,37,82,4,74,
+  228,73,196,65,196,65,163,65,163,57,130,57,131,57,130,57,131,57,131,49,
+  6,131,57,134,130,57,131,57,131,57,163,57,130,57,130,57,3,131,57,134,
+  130,57,130,57,98,57,130,57,98,57,98,57,4,130,57,1,163,65,107,4,
+  8,44,99,131,12,99,44,99,45,99,4,44,99,3,45,99,4,44,99,3,
+  45,99,129,44,99,3,45,99,137,45,91,45,99,44,99,45,99,45,99,44,
+  99,44,99,45,99,77,99,6,45,99,129,44,99,7,45,99,129,45,91,5,
+  45,99,129,44,91,4,45,99,141,45,91,45,99,45,99,45,91,77,99,45,
+  99,45,99,45,91,45,91,77,99,45,99,77,99,45,91,4,45,99,158,77,
+  99,45,91,77,99,77,99,45,91,45,91,77,99,45,91,45,99,77,99,77,
+  91,77,99,77,99,45,91,77,99,45,91,77,99,77,91,77,91,45,99,77,
+  99,77,99,45,91,77,91,77,99,77,99,45,91,77,91,77,91,45,91,12,
+  77,91,139,45,91,12,83,236,82,203,82,236,90,13,99,77,99,143,107,240,
+  107,81,116,114,124,3,147,124,129,179,124,5,179,132,3,179,124,141,180,132,
+  179,124,179,124,180,132,179,124,147,124,179,124,179,124,147,124,179,124,147,124,
+  147,116,147,116,3,147,124,3,115,116,137,82,116,17,108,207,99,143,91,143,
+  99,111,99,143,99,143,99,143,91,3,143,99,153,175,99,143,99,175,99,175,
+  99,176,99,208,99,208,107,240,107,240,107,241,107,241,115,17,116,49,108,82,
+  116,82,116,115,116,147,124,17,108,13,83,199,49,162,16,228,8,139,50,144,
+  83,50,108,3,115,116,138,82,108,244,140,20,149,150,165,138,82,171,90,138,
+  82,138,82,105,82,106,74,7,105,74,133,73,74,105,74,73,74,73,74,105,
+  74,3,73,74,138,105,74,73,74,73,66,41,66,73,66,73,66,41,66,40,
+  66,40,66,40,58,5,8,58,130,232,57,232,57,5,232,49,6,200,41,146,
+  233,41,211,140,139,74,82,132,81,132,114,140,48,132,49,140,73,74,130,8,
+  114,132,114,140,81,132,113,140,81,132,114,140,81,132,239,123,3,114,140,130,
+  113,140,81,132,3,114,140,139,179,140,20,149,150,157,186,182,60,199,60,199,
+  157,215,125,207,125,215,60,199,125,215,3,60,199,136,251,182,28,191,218,182,
+  251,190,186,174,154,174,218,182,121,174,5,154,174,141,89,166,154,174,89,174,
+  56,166,24,166,89,166,56,166,56,166,24,166,56,166,89,174,247,157,23,166,
+  3,215,157,138,150,149,182,149,150,149,182,149,117,149,150,149,150,149,85,149,
+  117,149,117,149,4,85,149,145,52,149,85,149,53,149,85,149,20,141,53,149,
+  52,141,20,141,53,149,52,149,243,140,20,141,244,140,20,141,53,141,52,141,
+  20,141,3,52,149,156,20,141,20,141,52,149,52,149,20,141,20,149,20,149,
+  52,141,244,132,53,141,20,141,244,140,20,141,52,149,20,141,52,149,53,149,
+  53,141,85,141,150,149,215,157,215,157,248,165,57,166,248,157,24,166,24,158,
+  90,174,3,90,166,152,155,174,155,174,219,182,220,182,252,190,252,190,252,182,
+  93,199,93,199,158,215,126,207,158,215,126,207,191,223,190,215,191,223,191,223,
+  223,231,255,239,223,231,223,231,223,239,223,239,255,239,4,255,247,130,255,255,
+  255,247,6,255,255,132,54,149,114,132,78,99,9,58,3,41,58,134,9,58,
+  9,50,9,58,232,49,200,49,232,49,4,200,49,158,8,50,233,49,9,58,
+  232,57,233,57,233,57,41,58,41,58,106,66,139,74,139,74,171,74,171,74,
+  172,82,204,82,204,82,78,107,178,148,244,156,243,148,243,148,244,148,244,148,
+  212,148,147,140,49,124,241,115,50,116,115,124,147,124,3,148,124,153,147,124,
+  147,124,115,116,83,116,18,108,18,100,241,91,176,91,85,149,150,157,179,132,
+  54,149,223,207,255,223,54,109,53,149,151,157,244,132,111,83,139,74,81,124,
+  57,182,90,174,57,158,255,247,11,255,255,139,243,124,118,173,182,173,110,91,
+  38,25,71,33,71,33,71,25,6,25,165,16,131,8,4,132,8,146,100,0,
+  165,8,74,66,46,99,111,107,237,90,13,99,45,99,45,99,78,107,110,107,
+  143,107,175,115,175,115,240,123,241,123,17,124,17,132,5,49,132,4,81,132,
+  129,114,132,8,114,140,19,146,140,130,146,148,146,148,3,178,148,132,211,148,
+  16,124,134,41,228,24,11,4,33,3,228,32,162,163,24,130,16,198,57,9,
+  123,163,65,167,90,232,106,134,90,134,90,167,98,135,98,135,98,134,106,135,
+  106,135,98,135,98,102,98,102,90,102,90,69,90,37,82,37,82,37,74,4,
+  74,228,73,196,65,196,65,163,57,163,65,130,57,131,57,130,57,131,49,130,
+  57,4,130,49,146,130,57,130,57,131,57,163,65,163,57,195,65,228,73,228,
+  73,4,74,37,74,69,82,70,90,102,90,102,90,134,98,135,98,134,98,167,
+  98,3,135,98,142,102,98,103,98,102,90,69,90,70,82,37,82,5,74,4,
+  74,228,73,196,65,195,65,163,57,162,57,131,57,4,130,57,131,131,57,130,
+  57,130,57,10,131,57,131,130,57,130,57,131,57,5,130,57,144,98,57,131,
+  57,163,57,162,57,195,65,196,65,228,73,5,82,37,82,69,82,102,98,103,
+  98,135,98,167,106,199,106,200,106,177,4,134,44,99,44,99,45,99,44,99,
+  44,99,12,99,9,44,99,3,45,99,3,44,99,135,45,99,44,99,45,99,
+  44,99,45,99,45,99,44,99,3,45,99,3,44,99,5,45,99,129,44,99,
+  3,45,99,131,44,99,44,99,77,91,3,45,99,140,44,91,45,91,45,99,
+  45,91,45,99,44,99,45,99,44,99,45,99,45,99,45,91,45,91,4,45,
+  99,129,44,99,3,45,99,130,45,91,45,99,3,45,91,134,45,99,45,91,
+  45,91,45,99,77,99,45,91,5,45,99,135,45,91,45,91,77,91,45,91,
+  77,91,77,91,77,99,3,45,91,140,77,91,77,99,77,91,77,99,77,99,
+  45,91,77,99,77,91,77,91,77,99,77,91,77,91,4,45,91,9,77,91,
+  131,77,99,77,91,45,91,3,236,82,142,12,91,45,91,78,99,175,107,17,
+  116,82,124,146,124,147,132,147,132,179,124,147,124,179,132,179,132,180,132,3,
+  179,132,135,179,124,179,124,179,132,179,132,179,124,180,124,180,124,6,179,124,
+  131,147,124,179,124,147,124,3,179,124,140,147,124,147,124,82,124,49,116,240,
+  107,208,99,175,99,175,99,175,107,175,99,175,99,175,107,3,175,99,164,176,
+  99,176,107,176,99,208,107,208,107,240,107,241,107,241,107,16,108,49,116,49,
+  116,50,116,82,116,146,116,147,124,146,124,143,99,171,66,37,25,130,8,168,
+  25,78,75,241,99,115,116,147,116,147,116,115,116,115,116,211,140,85,157,52,
+  157,138,82,170,82,138,82,138,82,137,74,9,105,74,8,73,74,134,73,66,
+  73,74,73,74,73,66,41,66,41,66,3,40,66,5,8,58,130,232,49,233,
+  57,5,232,49,6,200,41,140,42,50,179,140,172,74,82,132,113,140,81,140,
+  49,132,239,131,232,65,98,8,211,148,113,140,3,81,140,188,113,140,81,140,
+  16,124,146,148,146,148,114,140,114,140,81,132,113,140,114,140,146,140,178,140,
+  244,140,150,157,121,174,28,191,157,215,157,215,124,207,125,215,125,207,92,199,
+  60,199,92,199,27,191,60,199,27,191,251,190,218,182,186,182,153,174,218,182,
+  153,174,153,174,154,174,121,174,89,166,121,174,121,166,89,166,89,166,24,166,
+  24,166,24,158,56,166,24,166,214,149,215,157,247,157,215,157,247,165,214,157,
+  215,157,182,157,150,149,182,149,150,149,117,149,182,157,150,149,3,85,149,167,
+  117,149,52,149,20,141,85,149,52,141,52,149,20,141,20,149,52,141,178,132,
+  52,141,52,141,243,132,53,141,20,141,20,141,243,140,211,132,20,141,244,132,
+  20,133,244,132,52,141,20,141,244,140,20,149,52,149,243,132,179,132,20,141,
+  244,140,20,149,244,140,179,132,85,149,85,149,20,141,20,141,117,149,3,20,
+  141,150,52,141,20,141,53,141,85,149,244,132,85,141,150,149,183,157,183,157,
+  216,157,216,157,57,166,90,166,90,166,57,166,122,166,122,174,155,174,187,174,
+  155,182,220,182,252,182,3,29,191,131,93,199,125,207,126,207,3,158,215,135,
+  223,231,223,231,191,223,223,231,223,231,223,239,255,239,4,255,247,130,255,255,
+  255,247,4,255,255,135,255,247,255,255,181,132,49,132,142,107,9,58,41,58,
+  3,9,58,133,233,57,9,58,233,49,200,49,232,49,3,200,49,139,232,49,
+  200,49,232,49,232,49,232,57,9,58,233,57,9,58,41,66,106,74,138,74,
+  3,139,74,145,172,82,204,82,204,82,13,91,81,140,243,156,243,148,244,148,
+  243,148,244,156,244,156,147,140,49,124,17,116,18,116,82,124,115,124,4,147,
+  124,152,115,124,115,116,82,108,50,100,242,99,241,91,177,91,53,149,118,149,
+  178,132,21,149,255,215,255,231,119,117,20,149,151,149,244,132,175,91,139,66,
+  49,124,57,182,90,182,25,158,255,239,11,255,255,140,53,125,150,173,215,173,
+  208,99,38,17,71,33,71,33,38,25,6,25,164,16,131,8,164,16,3,132,
+  8,146,100,8,133,8,42,66,13,99,111,107,237,90,13,91,13,99,45,99,
+  78,99,110,107,143,107,175,115,175,115,240,123,240,123,17,124,17,124,3,49,
+  132,130,49,124,49,132,4,81,132,131,82,140,81,132,82,132,6,114,140,136,
+  146,140,146,140,114,140,146,140,146,140,146,148,146,148,147,148,4,146,140,129,
+  114,140,3,146,140,131,146,148,146,140,146,140,3,146,148,134,178,148,179,148,
+  211,148,81,132,8,50,228,24,3,4,33,132,228,24,4,25,4,33,228,32,
+  3,4,33,155,228,32,4,33,4,33,228,32,195,24,162,16,133,49,233,114,
+  228,73,4,74,134,90,69,90,70,90,69,82,37,82,37,82,4,74,4,74,
+  196,65,163,57,195,65,163,57,163,57,162,57,130,57,130,57,131,57,4,130,
+  57,142,131,57,163,57,163,65,195,65,196,65,228,65,4,74,4,74,37,74,
+  69,82,69,82,102,82,134,90,102,98,7,135,98,136,103,90,102,90,70,90,
+  69,90,37,82,4,74,4,74,228,73,3,196,65,139,163,57,131,57,131,57,
+  130,57,130,57,98,57,130,57,130,57,131,57,130,57,130,57,3,131,57,131,
+  130,57,131,57,131,57,4,130,57,129,131,57,6,130,57,155,131,57,163,57,
+  163,65,195,65,227,65,4,74,37,82,37,82,70,90,102,90,102,98,167,98,
+  167,106,167,106,199,106,168,106,200,106,167,106,167,106,135,98,102,98,70,90,
+  69,90,37,82,228,73,228,73,195,65,151,4,9,44,99,135,45,99,44,99,
+  44,99,12,91,44,99,45,99,45,99,5,44,99,134,45,99,44,99,45,99,
+  45,99,44,99,44,99,3,45,99,139,45,91,45,99,44,99,45,99,77,99,
+  44,99,45,99,44,99,45,99,45,99,44,99,3,45,99,129,44,99,4,45,
+  99,143,45,91,45,91,77,99,45,99,45,91,44,99,45,99,45,99,44,91,
+  45,99,45,99,44,91,77,99,45,99,77,99,4,45,99,152,45,91,45,99,
+  45,91,45,91,45,99,45,91,77,99,45,99,77,91,45,91,45,91,77,99,
+  45,99,45,91,45,91,77,99,45,99,77,99,45,91,77,99,77,91,77,91,
+  77,99,45,91,4,77,99,133,77,91,77,91,45,99,77,91,45,91,3,77,
+  91,129,45,99,5,77,99,3,77,91,129,45,91,5,77,91,142,77,99,77,
+  91,77,91,45,91,12,83,236,82,204,82,12,91,45,99,110,99,208,107,17,
+  116,114,124,146,124,3,147,124,131,179,132,179,124,179,124,6,179,132,139,179,
+  124,179,132,179,124,180,124,180,124,179,132,179,132,180,132,179,132,179,124,179,
+  132,3,179,124,130,179,132,179,132,3,179,124,131,114,124,49,116,17,108,7,
+  208,107,154,176,107,207,107,208,107,176,107,208,107,208,107,240,107,240,107,17,
+  116,17,108,17,116,49,116,49,116,82,116,82,116,114,116,147,124,179,124,82,
+  116,77,91,40,58,163,16,195,8,172,50,176,83,83,116,5,147,116,135,244,
+  140,118,157,146,140,138,82,170,82,170,82,138,82,5,105,74,129,73,74,5,
+  105,74,130,73,74,105,74,6,73,74,141,73,66,73,66,41,66,40,66,40,
+  66,41,66,8,66,8,66,9,66,8,58,8,58,232,57,232,57,6,232,49,
+  130,232,41,167,33,5,200,41,185,167,33,110,91,139,74,179,148,114,140,81,
+  132,81,140,16,132,167,57,131,8,20,157,81,140,81,132,81,132,81,140,113,
+  140,113,140,81,132,146,148,146,140,81,140,81,132,113,140,113,140,81,140,114,
+  140,179,140,20,141,215,157,186,174,60,199,157,223,157,223,124,207,92,207,157,
+  215,93,207,92,207,92,199,27,191,60,199,60,199,27,191,27,191,218,182,219,
+  182,186,182,186,182,154,182,121,174,186,182,89,166,121,174,88,166,121,174,24,
+  166,24,158,6,247,157,155,215,157,215,157,214,157,117,149,182,149,117,149,117,
+  149,214,157,117,149,150,149,118,149,52,141,85,149,52,141,84,149,85,149,20,
+  141,52,141,244,140,20,141,20,141,211,132,20,149,211,140,243,140,243,140,211,
+  132,3,243,132,153,211,132,243,140,211,132,243,140,243,132,243,140,211,132,244,
+  140,20,141,244,140,20,141,243,140,20,141,243,140,243,132,244,140,52,141,243,
+  132,211,132,20,141,20,141,243,140,20,141,244,140,243,132,4,244,140,131,20,
+  141,53,149,244,140,3,85,149,154,85,141,150,149,150,149,248,157,248,165,248,
+  157,24,158,57,166,25,158,90,166,155,174,155,174,187,174,252,182,253,182,253,
+  190,29,191,93,199,93,199,158,215,126,199,158,215,191,223,158,215,158,215,191,
+  223,3,223,231,6,255,247,130,255,255,255,255,4,255,247,141,255,255,148,132,
+  240,115,13,91,9,58,73,58,41,58,41,58,8,50,9,50,233,49,232,49,
+  200,41,3,232,49,130,200,49,200,49,3,232,49,135,232,57,233,57,232,49,
+  9,58,9,58,74,66,106,74,3,139,74,145,171,82,172,82,172,82,236,90,
+  16,124,244,156,244,156,243,148,244,156,244,156,244,148,147,140,49,124,241,115,
+  17,116,82,124,115,124,5,147,124,151,115,116,83,108,18,100,242,99,241,91,
+  177,91,21,141,118,157,179,140,213,140,223,215,255,231,184,125,20,149,151,157,
+  244,140,207,99,139,66,16,116,24,182,122,182,25,158,255,239,11,255,255,138,
+  118,125,118,173,215,173,17,116,38,25,71,33,71,25,71,25,6,25,197,16,
+  7,132,8,147,42,66,13,99,111,107,237,90,237,90,13,99,45,99,78,107,
+  110,107,142,107,175,115,176,115,208,115,240,123,17,124,17,124,49,124,49,132,
+  49,124,4,49,132,131,81,132,81,132,82,132,5,114,140,129,146,140,4,114,
+  140,11,146,140,129,146,148,4,146,140,5,146,148,133,179,148,179,148,146,140,
+  74,66,228,24,6,4,33,129,228,32,5,4,33,145,228,32,4,33,195,24,
+  130,16,68,33,233,114,69,90,162,57,195,65,163,65,228,65,36,74,4,74,
+  163,65,194,65,227,65,4,74,3,195,65,162,228,73,69,82,3,74,4,74,
+  5,74,37,82,69,82,70,82,102,90,102,90,134,98,135,98,135,98,167,98,
+  167,106,135,98,134,98,135,98,135,98,102,90,102,90,69,82,69,90,37,82,
+  37,82,4,74,228,73,228,73,196,65,163,65,163,57,163,57,130,57,131,57,
+  4,130,57,135,131,57,131,57,130,57,130,57,131,57,131,57,163,57,3,131,
+  57,5,130,57,129,98,49,3,130,57,142,131,57,163,57,163,65,196,65,227,
+  73,4,74,4,74,37,82,69,90,102,90,102,98,167,98,168,98,167,106,3,
+  168,106,143,168,98,167,98,135,98,135,98,70,90,70,90,37,82,37,74,4,
+  74,228,73,195,65,163,65,163,57,130,57,130,57,3,98,57,132,98,49,98,
+  57,98,57,130,57,165,4,130,44,99,12,99,4,44,99,135,12,99,44,99,
+  44,99,45,99,44,99,44,99,45,99,3,44,99,139,45,99,44,99,44,99,
+  45,99,44,99,45,99,45,99,44,99,45,99,44,99,44,99,7,45,99,129,
+  44,99,4,45,99,129,44,91,4,45,99,130,44,99,45,91,3,45,99,130,
+  77,99,44,99,3,45,99,156,45,91,45,99,45,99,44,99,45,99,45,99,
+  77,99,45,99,45,99,45,91,77,99,45,91,45,99,45,99,44,91,77,99,
+  45,99,45,99,45,91,45,91,45,99,45,91,45,99,45,99,45,91,45,91,
+  45,99,77,99,4,45,99,131,77,99,77,91,45,91,3,77,99,136,45,91,
+  45,91,77,99,77,91,77,99,77,91,77,91,45,91,3,77,91,129,45,91,
+  5,77,91,129,45,91,3,77,91,129,45,91,5,77,91,148,77,99,77,91,
+  77,91,12,91,236,82,203,82,236,90,13,91,45,91,142,99,208,107,49,116,
+  114,124,146,124,147,124,147,124,179,124,179,132,179,132,179,124,4,179,132,134,
+  180,132,179,132,179,124,180,132,179,124,180,132,4,179,132,129,179,124,4,179,
+  132,138,180,132,180,132,179,132,179,124,212,124,147,124,114,124,82,116,17,116,
+  17,116,6,240,107,4,208,107,3,240,107,136,17,108,17,108,17,116,49,116,
+  49,116,82,116,114,124,115,116,3,147,124,144,240,107,203,74,69,33,130,8,
+  135,25,78,75,17,100,147,116,179,124,147,116,148,116,147,116,147,124,146,124,
+  183,165,239,123,3,170,82,133,138,82,138,82,105,74,105,74,73,74,3,105,
+  74,133,73,74,73,74,105,74,73,74,105,74,6,73,74,4,73,66,129,41,
+  66,3,40,66,130,8,58,8,66,3,8,58,7,232,49,129,200,49,6,200,
+  41,187,167,33,236,74,139,66,179,148,114,140,81,140,48,132,174,123,102,49,
+  196,16,85,165,113,140,81,132,81,140,81,140,113,140,48,132,81,132,146,148,
+  81,140,146,140,81,140,146,140,113,140,113,140,146,140,211,140,20,141,215,157,
+  186,182,125,207,157,223,157,215,92,207,60,199,92,199,27,191,27,191,60,199,
+  218,182,251,190,251,190,27,191,218,182,251,190,219,182,154,174,186,182,186,182,
+  24,166,153,174,121,174,153,174,89,166,89,166,24,158,23,158,56,166,182,157,
+  3,215,157,140,214,157,215,157,150,149,117,149,150,149,85,141,85,149,117,149,
+  85,141,85,141,52,141,52,141,3,20,141,135,19,141,52,141,20,141,243,132,
+  243,132,178,132,243,140,3,211,140,208,211,132,178,132,211,132,243,132,243,132,
+  178,132,146,132,146,124,178,132,211,132,179,132,146,124,243,132,20,141,211,132,
+  243,140,211,132,211,140,243,140,243,140,211,132,211,132,20,141,179,132,178,132,
+  243,132,211,132,146,124,244,132,211,132,244,140,20,141,244,140,20,141,244,140,
+  211,132,20,141,244,132,244,132,85,149,20,141,118,157,118,149,182,157,182,157,
+  215,157,215,157,248,157,248,157,57,158,90,166,122,174,122,166,90,166,187,174,
+  187,174,220,182,29,191,252,190,220,182,93,199,29,191,126,207,158,215,158,215,
+  126,207,190,223,223,231,191,223,223,231,255,239,255,247,255,247,255,239,255,239,
+  255,247,255,255,255,239,255,247,255,247,3,255,255,141,54,149,16,124,77,99,
+  41,58,41,58,42,58,9,58,9,50,8,50,233,49,232,49,200,49,232,49,
+  3,200,49,139,233,49,200,49,233,49,233,49,9,58,233,49,232,49,9,58,
+  9,58,42,66,107,66,3,139,74,145,171,82,171,82,204,82,204,82,207,115,
+  211,148,244,148,243,148,244,156,244,156,212,148,147,140,49,124,241,107,18,116,
+  82,116,115,124,5,147,124,151,115,116,83,108,50,100,18,100,241,91,176,91,
+  244,140,118,157,146,132,212,140,223,215,255,231,249,133,244,140,151,157,21,141,
+  207,99,139,66,240,115,24,174,122,182,25,158,223,231,11,255,255,133,183,141,
+  117,173,215,181,114,124,71,17,3,71,33,130,6,25,197,16,5,132,8,149,
+  100,8,132,0,233,57,237,90,111,107,237,90,236,90,13,91,45,99,78,99,
+  110,107,142,107,175,115,175,115,208,123,240,123,240,123,17,124,17,132,49,132,
+  49,124,4,49,132,3,81,132,132,81,140,81,140,114,140,81,140,7,114,140,
+  16,146,140,3,146,148,135,178,148,179,148,179,148,146,148,204,82,228,24,228,
+  32,6,4,33,129,228,32,6,4,33,150,195,24,130,16,227,32,201,106,102,
+  98,162,57,163,65,195,65,36,74,134,98,101,90,133,90,134,98,166,98,166,
+  106,133,90,101,82,101,90,166,98,166,98,133,90,69,82,3,135,98,147,134,
+  90,134,90,102,90,70,90,69,90,37,82,37,74,4,74,228,73,228,65,195,
+  65,163,65,163,65,163,57,163,57,131,57,131,57,130,57,130,57,3,131,57,
+  3,130,57,5,131,57,130,130,57,131,57,4,130,57,3,131,57,141,163,57,
+  195,65,195,65,228,73,4,74,5,74,37,82,69,82,102,90,135,98,135,98,
+  167,106,135,106,4,167,106,161,135,106,135,106,135,98,102,98,102,90,69,82,
+  37,82,5,74,228,73,196,65,163,65,163,65,130,57,131,57,130,57,130,57,
+  98,49,98,57,98,49,98,49,130,57,130,57,163,57,195,57,228,73,4,74,
+  37,82,102,90,167,98,231,106,8,123,73,131,139,139,155,4,135,12,99,44,
+  99,12,99,44,99,12,99,44,99,12,99,5,44,99,129,45,99,10,44,99,
+  132,45,99,45,99,44,99,45,99,3,44,99,4,45,99,129,44,99,3,45,
+  99,133,44,99,77,99,45,99,45,99,44,99,6,45,99,129,44,91,9,45,
+  99,153,77,99,45,99,77,99,45,91,45,91,45,99,45,99,45,91,45,99,
+  77,99,45,99,45,91,45,91,77,99,45,91,77,99,45,91,45,99,45,99,
+  77,99,45,91,45,91,77,99,45,99,45,99,3,45,91,142,77,91,45,91,
+  77,99,77,99,77,91,45,99,77,99,77,91,77,91,77,99,77,91,77,91,
+  77,99,77,99,3,77,91,135,77,99,45,91,77,99,77,91,77,99,77,91,
+  45,91,10,77,91,142,77,99,12,91,236,82,203,82,236,90,12,91,45,99,
+  142,99,240,115,82,116,114,124,146,124,147,124,179,124,7,179,132,131,180,132,
+  179,132,179,132,6,180,132,148,179,132,211,132,179,132,211,132,179,132,179,132,
+  211,132,180,132,179,132,180,132,212,132,180,132,179,132,147,124,82,124,49,116,
+  49,116,17,116,16,108,17,116,7,240,107,130,241,107,240,107,3,17,116,153,
+  49,116,49,116,82,116,82,116,115,124,147,124,147,124,180,124,82,116,110,99,
+  41,58,195,16,163,16,139,50,176,91,83,116,148,124,179,124,179,116,147,116,
+  147,116,212,132,20,141,183,165,109,107,3,170,82,130,138,82,137,74,3,105,
+  74,133,73,74,105,74,105,74,73,74,105,74,6,73,74,130,41,74,73,74,
+  3,73,66,134,41,66,41,66,40,66,40,66,8,66,40,66,5,8,58,129,
+  232,57,6,232,49,130,199,41,199,41,5,200,41,139,167,33,45,91,236,82,
+  146,140,81,140,48,132,113,140,174,115,69,41,70,33,53,165,3,81,140,195,
+  82,140,113,140,16,124,81,132,114,140,178,148,114,140,81,140,114,140,114,140,
+  146,140,146,140,211,140,52,149,215,157,219,182,125,207,157,223,124,207,92,207,
+  251,190,27,191,251,182,251,182,60,199,153,174,219,182,251,182,219,182,186,182,
+  218,182,218,182,56,166,121,174,153,174,121,174,89,174,56,166,153,174,88,166,
+  56,158,214,149,24,158,23,158,150,149,182,149,247,165,150,157,117,149,117,149,
+  85,141,150,149,117,149,53,141,85,149,85,149,20,141,20,141,243,140,20,141,
+  211,132,243,132,244,132,211,132,243,132,243,140,211,132,3,178,132,136,211,132,
+  178,132,178,132,114,124,146,132,178,132,179,132,178,132,4,146,132,196,211,132,
+  178,132,178,132,211,132,179,132,211,140,243,140,211,132,211,132,243,140,211,132,
+  211,132,179,132,179,132,146,124,146,132,146,124,211,132,179,132,146,124,179,124,
+  211,132,211,132,20,141,244,140,20,141,244,140,20,141,243,140,244,132,243,132,
+  243,140,52,149,85,149,117,157,182,157,183,157,150,149,183,149,183,149,215,157,
+  248,157,24,158,57,166,57,166,90,174,90,166,122,166,219,182,220,182,220,182,
+  93,199,29,191,61,191,126,207,61,199,158,215,158,223,158,215,191,223,223,231,
+  223,239,255,239,255,247,255,247,255,239,255,247,255,255,4,255,247,134,255,255,
+  255,247,148,124,240,123,175,107,9,50,3,41,58,137,9,50,9,50,232,49,
+  232,49,200,49,168,41,200,41,168,41,200,49,4,232,49,155,233,49,232,49,
+  233,49,9,58,9,58,41,58,74,66,138,74,139,74,171,74,171,74,172,82,
+  204,82,204,82,110,107,179,148,244,156,243,148,244,148,244,156,244,148,147,140,
+  50,124,241,107,17,116,82,124,115,124,4,147,124,152,115,116,115,116,82,108,
+  50,100,241,99,242,91,177,91,244,140,150,157,179,132,212,148,223,215,255,239,
+  58,142,212,140,183,157,53,141,240,107,171,74,207,107,248,173,122,182,25,158,
+  222,223,11,255,255,133,247,141,85,165,215,181,179,132,103,25,3,71,33,130,
+  39,25,229,16,6,132,8,148,132,0,201,49,236,90,110,107,237,90,236,90,
+  13,91,45,99,45,99,78,107,142,107,175,115,207,115,208,115,240,123,16,124,
+  16,124,17,124,17,132,17,132,5,49,132,3,81,132,130,82,140,81,132,9,
+  114,140,7,146,140,129,114,140,10,146,140,134,146,148,178,148,179,148,179,148,
+  45,99,227,24,9,4,33,129,228,32,4,4,33,146,195,24,162,16,195,24,
+  136,98,134,106,163,65,134,98,102,98,101,82,166,98,102,90,198,106,40,115,
+  231,106,231,106,133,98,133,90,133,90,3,166,98,3,228,73,131,196,65,195,
+  65,163,65,3,163,57,182,131,57,130,57,163,57,130,57,131,57,163,57,130,
+  57,163,57,131,57,163,57,131,57,131,57,163,57,130,57,131,57,131,57,130,
+  57,130,57,163,57,130,57,130,57,163,57,163,57,195,57,196,65,228,65,4,
+  74,5,74,37,82,70,90,70,90,102,90,134,98,135,98,167,106,167,98,167,
+  98,167,106,167,98,135,98,135,106,134,98,102,90,102,90,69,90,69,82,5,
+  82,4,74,228,73,228,65,195,65,163,57,163,57,131,57,3,130,57,155,131,
+  57,98,49,130,57,131,57,163,57,195,65,228,73,37,74,69,82,102,90,199,
+  106,200,106,9,123,74,131,139,147,172,155,236,163,45,172,78,172,110,180,143,
+  188,207,188,207,196,209,196,241,196,17,197,241,204,142,4,129,12,99,3,44,
+  99,135,12,99,44,99,12,99,12,91,44,99,12,91,45,99,3,44,99,130,
+  45,99,45,99,3,44,99,136,45,99,44,99,44,99,45,99,45,99,44,99,
+  45,99,44,91,4,44,99,4,45,99,136,44,99,44,99,45,99,44,99,44,
+  99,45,99,45,99,44,99,5,45,99,131,45,91,45,99,44,91,7,45,99,
+  129,77,99,4,45,99,129,45,91,6,45,99,134,77,99,45,99,45,91,77,
+  91,45,99,77,99,4,45,99,132,77,99,45,91,77,99,45,99,3,45,91,
+  130,77,91,77,91,3,77,99,132,77,91,77,91,77,99,77,91,3,77,99,
+  5,77,91,130,77,99,45,99,3,77,91,129,77,99,5,77,91,129,77,99,
+  4,77,91,130,77,99,77,91,3,236,82,139,12,91,13,91,77,99,175,107,
+  241,115,82,124,146,124,147,124,147,124,179,132,179,124,6,179,132,155,179,124,
+  179,132,211,132,180,132,180,132,179,132,180,132,180,132,179,132,180,132,179,132,
+  180,132,179,132,212,132,179,124,211,132,180,132,180,124,212,132,180,132,179,132,
+  179,132,147,124,114,124,82,124,82,116,49,116,3,17,116,129,17,108,10,17,
+  116,157,49,116,82,116,82,116,115,124,147,124,147,124,180,124,147,124,240,107,
+  236,82,101,33,130,16,102,25,46,67,241,99,147,116,180,116,180,124,148,116,
+  180,116,179,124,146,124,52,149,215,173,235,98,171,90,170,82,138,82,138,82,
+  4,105,74,142,73,74,105,74,105,74,73,74,105,74,73,74,73,74,105,74,
+  73,74,73,74,73,66,73,74,73,74,41,66,3,73,66,132,41,66,40,66,
+  8,58,41,66,5,8,58,130,232,57,232,57,5,232,49,132,231,41,199,41,
+  200,41,199,41,4,200,41,159,167,33,110,99,13,91,114,140,81,132,81,132,
+  146,148,142,115,228,32,232,49,52,165,81,140,81,140,81,132,81,140,81,140,
+  109,107,114,140,113,140,146,148,113,140,113,140,114,140,146,140,114,140,146,140,
+  211,140,85,157,215,157,60,199,28,191,3,60,199,137,27,191,27,191,251,182,
+  219,182,27,191,218,182,186,174,186,182,251,190,3,153,174,162,121,166,121,174,
+  121,174,88,166,24,166,24,166,56,166,23,158,23,158,182,157,214,149,214,157,
+  117,149,150,149,117,149,85,149,85,141,85,141,52,141,85,141,52,141,244,140,
+  20,141,244,140,20,141,211,132,178,132,20,141,211,132,178,124,243,132,178,132,
+  178,124,211,132,4,146,124,172,146,132,178,132,81,124,178,132,146,132,146,132,
+  114,132,146,132,114,124,114,132,146,132,146,132,178,132,114,124,179,140,211,132,
+  178,132,179,132,211,132,146,132,178,132,178,132,146,124,178,132,146,124,146,132,
+  146,124,146,132,146,124,146,132,179,132,179,124,211,132,178,132,146,132,243,140,
+  179,132,211,132,211,140,211,140,211,132,20,141,20,141,211,132,4,85,149,137,
+  150,157,118,149,150,149,150,157,150,149,183,157,183,157,248,157,25,166,3,57,
+  166,133,58,166,188,182,187,174,220,182,187,174,3,61,191,134,94,199,126,207,
+  158,215,191,223,223,231,223,223,3,255,239,7,255,247,141,255,255,187,190,79,
+  91,114,132,207,115,9,50,42,58,9,58,9,50,9,50,233,49,9,50,232,
+  49,3,200,49,161,168,41,200,41,200,49,232,49,200,49,232,49,233,57,232,
+  57,232,49,232,49,9,58,41,58,74,66,106,66,106,74,139,74,139,74,171,
+  82,204,82,172,82,45,99,146,140,244,156,244,148,244,148,244,156,212,148,147,
+  140,49,116,241,107,17,116,82,116,115,124,4,147,124,152,115,124,115,116,82,
+  116,50,108,18,100,241,91,177,91,244,132,150,157,211,140,21,149,223,215,255,
+  231,123,158,211,132,151,157,53,141,240,107,171,66,174,107,215,173,122,182,25,
+  158,190,215,11,255,255,133,24,150,85,165,183,173,244,140,103,25,3,71,33,
+  130,38,25,229,16,5,132,8,149,100,0,101,0,168,41,204,90,111,107,237,
+  90,236,90,13,91,13,99,78,99,110,107,110,107,175,115,175,115,208,123,240,
+  123,16,124,17,124,17,124,16,124,49,124,5,49,132,3,81,132,131,81,140,
+  81,140,81,132,5,114,140,21,146,140,134,146,148,179,148,178,148,211,148,142,
+  107,4,25,5,4,33,129,228,32,8,4,33,155,227,24,163,24,163,24,71,
+  74,232,122,195,65,199,98,166,98,227,73,101,90,101,90,36,82,69,82,68,
+  82,36,82,36,82,227,65,4,74,4,74,69,82,37,82,162,57,163,57,130,
+  57,131,65,131,57,130,57,6,163,57,3,130,57,173,131,57,131,57,163,57,
+  163,65,163,65,195,65,195,65,228,73,228,65,37,74,37,82,69,82,102,90,
+  134,90,135,98,134,98,167,98,167,98,135,98,167,98,135,98,134,98,135,98,
+  135,98,103,98,102,90,69,82,37,82,5,74,4,74,228,73,196,65,163,65,
+  163,65,130,57,163,57,131,57,130,57,163,57,130,57,130,57,131,57,130,57,
+  131,57,130,57,4,131,57,147,163,65,130,57,228,65,74,107,139,131,204,147,
+  12,156,45,164,78,180,111,180,143,188,175,188,208,196,240,196,240,204,241,204,
+  241,204,18,205,17,197,4,17,205,3,17,197,131,241,196,17,197,241,196,135,
+  4,136,44,99,12,99,44,99,12,91,12,99,44,99,44,99,12,91,6,44,
+  99,129,12,99,3,44,99,134,45,99,44,99,45,99,44,99,12,91,45,99,
+  4,44,99,131,45,99,45,99,44,99,3,45,99,131,44,99,45,99,44,99,
+  9,45,99,134,45,91,45,99,44,99,45,99,45,99,45,91,6,45,99,129,
+  77,99,6,45,99,136,45,91,45,99,44,99,45,99,45,99,45,91,45,99,
+  45,99,4,45,91,130,77,99,77,99,3,45,99,4,45,91,133,77,99,77,
+  99,45,91,77,99,45,99,4,77,91,132,45,99,77,99,77,91,77,91,5,
+  77,99,130,45,99,77,99,8,77,91,129,77,99,6,77,91,129,45,91,3,
+  236,82,141,12,91,45,91,78,99,175,107,17,116,82,124,146,124,147,124,147,
+  124,179,124,179,132,179,124,179,124,3,179,132,134,180,132,180,132,179,132,180,
+  132,179,132,180,132,3,179,132,129,211,132,3,180,132,144,211,132,180,132,179,
+  132,180,132,180,124,180,132,179,124,212,124,179,132,179,132,147,124,147,124,114,
+  124,82,124,82,116,82,116,4,49,116,131,17,116,17,116,49,116,3,17,116,
+  155,49,116,49,116,50,116,82,116,114,116,115,124,147,124,147,124,179,124,180,
+  124,114,124,110,99,73,58,195,24,162,8,106,42,176,83,82,108,148,116,180,
+  116,179,116,180,124,179,116,179,124,146,124,20,149,182,173,3,170,82,130,138,
+  82,138,82,4,105,74,129,73,74,3,105,74,135,73,74,73,74,105,74,73,
+  66,73,74,73,74,41,74,3,73,74,136,41,66,73,74,41,66,41,66,8,
+  66,40,66,8,66,8,66,5,8,58,130,232,49,200,49,3,232,49,135,199,
+  41,232,49,199,41,199,41,167,41,199,41,168,41,3,200,41,139,236,74,78,
+  99,114,140,82,140,113,140,49,140,109,115,4,33,73,66,20,157,81,140,3,
+  81,132,132,81,140,49,132,20,149,81,140,3,113,140,138,114,140,113,140,146,
+  140,146,140,211,140,117,149,121,174,60,199,60,199,251,190,3,27,191,165,218,
+  182,251,190,251,182,218,182,218,182,121,166,154,174,154,174,153,174,88,166,121,
+  166,153,174,56,166,88,166,23,158,56,166,214,157,247,157,182,149,182,157,214,
+  157,182,157,85,149,85,149,150,149,117,149,117,149,52,141,20,141,244,132,244,
+  132,211,132,243,132,243,140,211,132,178,132,146,124,3,178,132,134,113,124,178,
+  124,146,124,146,132,113,124,113,124,4,114,124,162,49,116,81,124,81,124,114,
+  124,146,132,113,124,81,124,113,124,146,132,146,132,113,132,146,132,146,124,211,
+  132,179,132,178,132,178,132,146,132,114,124,178,132,49,124,81,124,49,116,81,
+  116,146,132,113,124,81,116,178,132,114,124,114,124,178,132,146,124,178,132,114,
+  124,5,211,132,162,179,132,179,132,244,132,244,140,20,141,117,149,118,157,52,
+  149,85,149,118,149,118,149,150,157,85,149,85,149,150,157,151,149,118,149,248,
+  165,216,157,24,158,57,166,122,174,122,166,155,174,187,174,252,182,220,182,252,
+  182,61,191,126,207,125,207,158,215,191,223,223,231,6,255,239,5,255,247,145,
+  155,190,144,91,49,124,175,107,9,58,41,58,41,58,138,74,9,58,233,49,
+  233,49,232,49,200,41,200,49,168,41,200,49,200,41,3,232,49,156,200,49,
+  200,49,232,49,232,49,232,57,9,58,41,66,41,66,106,66,106,74,139,74,
+  139,74,172,82,204,82,204,82,236,82,49,132,244,156,244,156,244,148,244,148,
+  211,148,147,140,17,116,241,107,17,116,50,116,115,116,5,147,124,151,115,116,
+  83,116,50,108,241,99,242,99,177,91,179,132,150,157,244,140,147,140,191,215,
+  255,231,220,166,178,132,150,157,53,141,240,107,171,66,142,99,182,165,122,182,
+  25,158,157,207,11,255,255,160,89,158,52,157,183,173,20,149,168,33,71,33,
+  104,33,104,33,39,33,229,16,164,8,132,8,132,16,132,16,132,8,133,0,
+  100,0,135,41,204,82,110,107,13,91,236,90,13,91,13,99,45,99,78,99,
+  110,107,143,107,207,115,208,115,240,123,240,123,5,17,124,132,49,132,17,132,
+  49,132,49,132,5,81,132,129,82,140,6,114,140,21,146,140,134,179,148,179,
+  148,210,148,207,115,37,33,228,32,9,4,33,129,228,32,3,4,33,147,228,
+  24,162,24,163,24,230,65,233,122,162,65,167,98,102,90,162,57,228,65,228,
+  65,162,57,195,65,163,57,162,57,130,57,162,57,130,57,163,57,3,195,65,
+  177,163,57,228,73,195,65,4,74,227,65,195,65,69,82,102,90,69,82,227,
+  73,228,73,37,82,37,82,70,82,102,90,102,90,134,98,134,98,167,98,134,
+  98,167,106,166,106,167,106,135,106,135,98,134,98,102,98,102,90,69,90,37,
+  82,37,82,37,74,4,74,228,73,196,65,195,65,163,65,163,65,131,57,131,
+  57,162,57,163,57,195,65,227,73,36,74,69,90,101,90,166,98,101,98,3,
+  130,57,129,131,57,3,163,57,130,130,57,130,57,4,131,57,133,130,57,163,
+  57,130,57,196,57,111,148,3,17,197,6,17,205,133,17,197,17,205,17,205,
+  241,204,17,205,6,17,197,133,241,196,17,197,241,196,17,205,17,197,159,4,
+  130,12,99,12,99,3,44,99,132,12,99,12,99,44,99,12,99,3,44,99,
+  134,45,99,44,99,45,99,44,99,45,99,45,99,9,44,99,130,45,99,45,
+  99,7,44,99,134,45,99,44,91,45,99,45,91,45,99,44,99,5,45,99,
+  130,45,91,44,91,4,45,99,131,45,91,45,99,44,99,3,45,99,131,44,
+  91,45,99,77,99,6,45,99,138,77,99,45,99,77,99,45,91,45,99,45,
+  91,45,99,45,99,77,91,45,99,3,77,99,137,77,91,45,99,45,91,77,
+  99,77,99,45,91,45,99,77,99,77,99,3,77,91,133,77,99,77,99,77,
+  91,77,99,77,99,4,77,91,3,77,99,7,77,91,147,77,99,77,91,77,
+  99,77,91,77,91,77,99,77,91,78,91,77,99,45,91,236,82,204,82,236,
+  82,12,91,45,91,110,99,208,107,49,116,114,124,4,147,124,133,179,124,179,
+  132,179,124,179,132,179,124,4,179,132,5,180,132,150,179,132,180,132,179,132,
+  212,132,179,132,211,132,179,132,179,132,180,132,180,132,212,124,180,132,180,132,
+  211,132,179,132,179,132,147,124,146,124,114,124,82,124,82,116,82,116,5,49,
+  116,137,50,116,49,116,49,116,50,116,49,116,82,116,82,116,114,124,114,124,
+  3,147,124,151,180,124,148,124,240,107,236,74,102,33,130,16,70,17,46,67,
+  241,99,147,116,180,116,180,116,179,116,148,116,179,116,179,116,244,132,85,149,
+  52,157,138,82,170,90,170,82,138,82,8,105,74,130,73,74,105,74,6,73,
+  74,129,41,74,3,73,74,134,40,66,40,66,41,66,40,66,8,66,8,66,
+  5,8,58,137,232,49,200,49,200,49,232,49,199,49,231,49,231,49,199,49,
+  200,49,3,167,41,142,199,41,167,41,199,41,200,33,208,107,175,107,114,140,
+  81,140,146,148,49,140,12,99,196,24,236,82,243,156,5,81,140,146,211,148,
+  243,148,113,140,81,140,113,140,81,132,113,140,114,140,114,140,146,140,211,140,
+  183,157,186,174,251,190,60,199,219,182,251,190,219,182,3,251,190,222,219,182,
+  218,182,186,182,56,158,89,166,121,174,88,166,121,174,56,166,153,182,56,174,
+  88,174,24,166,247,157,215,157,247,157,215,157,150,157,52,141,117,149,53,141,
+  52,141,52,149,52,141,20,141,243,140,20,141,211,132,179,132,211,132,146,124,
+  211,132,178,132,114,124,146,124,146,124,113,124,114,124,114,124,81,124,113,124,
+  113,124,81,124,81,116,48,116,113,124,81,124,48,116,81,124,81,124,16,116,
+  81,124,114,132,114,132,81,124,81,124,113,132,114,132,81,124,114,132,146,132,
+  114,124,146,132,146,132,113,132,81,124,81,124,49,116,16,116,207,107,48,116,
+  114,124,48,116,81,124,49,116,114,124,113,124,81,124,146,132,114,132,178,132,
+  146,124,146,132,178,132,179,132,178,132,146,132,178,132,179,132,178,124,211,132,
+  20,141,52,149,118,149,4,85,149,153,118,149,85,149,53,149,53,149,86,149,
+  118,149,183,157,183,157,247,157,25,166,90,166,57,166,58,166,155,174,155,174,
+  155,166,220,182,220,182,29,191,126,207,158,215,223,231,223,231,255,239,223,239,
+  4,255,239,150,255,247,255,247,255,239,255,247,255,247,191,215,177,107,48,124,
+  175,107,9,58,41,58,9,58,174,115,73,66,232,49,9,58,233,49,200,49,
+  232,49,200,49,200,41,168,49,5,200,49,143,233,49,232,49,233,49,9,58,
+  9,58,41,66,74,66,106,74,139,74,139,74,172,82,204,82,172,82,204,82,
+  207,123,4,244,156,136,212,148,146,132,49,124,241,115,17,116,50,116,114,124,
+  115,124,4,147,124,151,147,116,83,108,50,100,18,100,241,99,177,91,147,132,
+  182,165,179,140,82,132,159,207,255,231,29,175,147,124,183,157,54,141,16,108,
+  204,74,110,99,150,165,122,182,57,166,93,199,11,255,255,138,187,174,52,157,
+  215,173,85,157,200,33,71,33,104,33,104,33,39,25,229,16,3,132,8,156,
+  164,8,132,8,133,8,100,8,71,33,171,82,78,99,13,91,204,90,237,90,
+  13,99,45,99,78,107,110,107,143,107,175,115,208,115,240,123,240,123,17,124,
+  17,124,49,124,17,124,17,124,49,132,49,124,49,132,49,132,3,81,132,131,
+  82,132,81,132,81,132,4,114,140,3,146,140,129,114,140,7,146,140,129,114,
+  140,8,146,140,129,114,140,4,146,140,132,179,148,16,124,135,41,228,24,6,
+  4,33,129,228,32,7,4,33,161,195,24,163,16,165,49,9,123,227,73,134,
+  90,167,98,162,57,163,57,162,57,4,74,101,90,37,82,4,74,4,74,36,
+  74,68,82,36,82,69,82,69,82,101,90,69,82,134,90,199,106,166,106,101,
+  98,101,98,166,98,231,106,232,114,101,98,37,82,135,106,3,135,98,139,102,
+  98,102,90,70,90,69,82,37,82,4,82,4,74,228,65,196,65,163,57,163,
+  57,6,130,57,166,163,57,195,65,195,73,130,57,163,57,131,57,167,90,105,
+  131,137,139,170,147,201,155,234,155,10,164,42,164,42,172,75,172,233,163,194,
+  81,130,57,131,57,163,57,163,57,131,57,163,57,163,57,163,65,131,57,163,
+  65,69,82,227,73,162,57,162,57,131,57,163,57,237,123,49,197,17,197,17,
+  197,5,17,205,130,17,197,17,197,11,17,205,132,17,197,241,196,240,196,209,
+  196,172,4,132,45,99,12,99,44,99,12,99,5,44,99,136,45,99,44,99,
+  12,91,45,99,45,99,44,99,44,99,45,99,3,44,99,129,45,99,3,44,
+  99,131,45,99,44,99,45,99,3,44,99,3,45,99,131,44,99,45,99,44,
+  99,3,45,99,129,44,99,5,45,99,131,44,91,44,99,44,99,12,45,99,
+  134,45,91,77,99,45,91,77,99,45,99,77,99,4,45,99,145,77,99,45,
+  91,45,99,45,91,77,99,77,99,45,91,77,99,45,99,45,91,77,99,77,
+  99,45,99,77,91,45,99,45,91,77,91,4,77,99,129,45,91,6,77,99,
+  4,77,91,134,45,91,77,91,77,91,77,99,45,91,77,99,8,77,91,129,
+  77,99,4,77,91,138,13,91,236,82,236,82,236,90,13,91,45,91,110,99,
+  208,107,49,116,114,124,4,147,124,131,179,132,179,124,180,132,6,179,132,144,
+  180,132,180,132,212,132,180,132,179,132,180,132,180,124,180,132,179,132,180,132,
+  212,132,180,124,211,132,212,132,180,124,180,124,3,180,132,140,179,132,179,132,
+  147,132,147,124,147,124,114,124,82,124,82,124,82,116,82,116,82,124,82,124,
+  4,82,116,161,50,116,82,124,82,116,82,124,114,124,147,124,147,124,179,124,
+  147,124,180,124,82,124,110,91,73,58,195,16,131,8,74,50,176,91,50,108,
+  148,124,180,116,180,116,179,116,180,124,180,116,179,124,146,132,118,157,178,148,
+  138,82,170,90,170,82,138,82,138,82,3,105,74,132,73,74,73,74,105,74,
+  73,74,3,105,74,3,73,74,140,41,66,73,74,73,74,73,66,41,66,73,
+  66,73,66,40,66,8,66,40,66,8,58,8,66,4,8,58,136,232,57,232,
+  49,232,49,200,49,232,49,200,49,199,49,199,49,3,199,41,163,167,41,199,
+  41,167,41,199,41,199,41,41,50,236,74,49,124,114,140,81,140,81,132,113,
+  140,170,82,196,24,143,99,178,148,81,140,81,140,49,132,49,132,81,140,20,
+  157,179,148,81,140,81,140,81,132,81,140,81,140,81,132,113,140,114,140,243,
+  140,247,165,154,174,154,174,3,251,182,129,154,174,3,251,190,138,251,182,154,
+  174,154,174,121,174,89,166,121,174,56,166,56,158,24,166,24,166,3,247,157,
+  140,215,157,182,157,150,149,117,149,85,149,20,141,85,149,20,141,52,141,243,
+  140,211,132,211,132,3,146,124,134,178,124,178,132,114,124,113,124,114,124,113,
+  124,3,81,124,191,113,124,114,124,49,116,49,124,48,116,113,124,81,124,16,
+  116,48,116,48,116,49,116,48,116,48,116,16,116,49,116,49,124,114,124,113,
+  124,81,124,81,124,114,124,178,132,114,124,146,132,113,124,114,124,81,124,16,
+  116,81,124,240,107,16,108,49,116,48,116,49,124,16,116,16,108,81,116,81,
+  124,49,116,113,124,81,124,81,124,146,132,114,124,146,132,114,124,114,124,146,
+  124,146,132,178,132,114,124,211,132,114,124,211,132,211,132,20,149,20,141,20,
+  141,85,149,53,141,85,149,86,149,118,149,3,85,149,148,118,149,85,149,118,
+  149,151,157,118,149,215,157,24,166,216,157,90,166,122,166,90,166,187,174,220,
+  182,220,182,29,191,93,199,158,215,158,215,190,223,223,231,6,255,239,135,223,
+  231,255,239,223,239,255,247,148,124,175,115,78,99,3,41,58,136,110,107,106,
+  74,200,49,233,49,232,49,232,49,200,49,200,49,3,200,41,6,200,49,180,
+  232,49,8,50,9,50,9,58,74,66,106,74,139,74,139,74,171,82,172,82,
+  204,82,172,82,142,115,211,156,243,156,244,156,244,156,212,148,147,140,17,116,
+  241,107,17,116,50,116,114,124,115,124,147,124,147,116,147,124,147,116,115,116,
+  82,108,50,100,18,100,241,91,177,91,147,124,183,165,243,140,115,140,159,215,
+  255,231,94,183,114,116,151,157,86,149,17,116,204,74,77,91,118,165,122,182,
+  57,166,61,191,11,255,255,139,251,190,20,157,183,173,118,157,41,42,103,33,
+  104,33,104,33,71,33,5,17,164,8,4,132,8,156,133,0,132,8,39,25,
+  139,82,46,99,13,91,204,90,237,90,13,91,45,99,78,99,110,107,143,107,
+  175,115,208,115,240,123,240,123,17,124,17,132,17,124,17,124,16,124,17,124,
+  49,124,49,132,81,132,81,132,49,132,4,81,132,129,82,132,3,114,140,6,
+  146,140,129,114,140,18,146,140,132,178,148,49,132,232,49,228,24,14,4,33,
+  165,195,24,162,16,68,41,9,115,37,90,69,82,199,106,195,65,4,74,4,
+  74,101,90,101,90,69,90,133,98,133,98,166,106,166,98,166,98,199,106,166,
+  98,133,98,133,98,199,106,41,123,199,106,36,82,133,98,102,90,166,98,134,
+  90,101,90,227,73,228,65,195,65,163,65,163,57,162,57,3,130,57,164,163,
+  57,163,57,195,65,4,74,5,74,69,82,102,90,167,98,200,106,8,115,73,
+  123,106,131,139,139,204,155,45,164,138,147,194,73,163,65,130,57,9,107,139,
+  180,106,172,73,172,106,172,137,172,137,180,137,172,73,172,41,164,73,172,36,
+  98,163,57,131,57,163,57,163,57,162,57,4,163,57,143,196,65,73,115,199,
+  114,165,98,36,90,130,65,130,57,42,99,50,189,17,197,17,197,49,197,49,
+  205,17,205,49,205,4,17,205,142,240,196,241,196,208,196,175,180,143,180,111,
+  180,78,172,13,164,204,155,171,147,106,131,41,115,232,106,167,106,172,4,5,
+  44,99,132,12,91,44,99,44,99,12,99,3,44,99,130,45,99,45,99,7,
+  44,99,131,45,99,44,99,44,99,3,45,99,4,44,99,138,45,99,45,91,
+  44,99,44,99,45,99,45,99,44,99,45,99,44,99,44,99,14,45,99,133,
+  45,91,45,91,77,99,77,99,44,99,7,45,99,129,77,99,3,45,99,131,
+  77,99,45,99,77,99,4,45,99,138,77,99,77,99,77,91,77,99,45,99,
+  77,99,45,91,77,99,77,99,45,99,9,77,99,133,77,91,77,99,77,91,
+  77,99,77,99,9,77,91,133,45,91,77,99,77,99,77,91,77,99,4,77,
+  91,141,77,99,12,83,236,82,203,82,236,90,12,91,77,99,143,99,240,107,
+  82,116,114,124,147,124,147,124,3,179,132,129,179,124,4,179,132,134,179,124,
+  179,132,212,132,180,132,179,132,179,132,3,180,132,145,179,132,180,132,179,132,
+  211,132,212,132,212,132,211,132,180,132,180,124,212,124,179,132,212,132,180,132,
+  180,124,180,132,179,132,147,132,3,115,124,132,114,124,114,116,82,124,82,124,
+  5,82,116,160,82,124,82,116,114,124,114,124,147,124,147,124,179,124,179,124,
+  180,124,180,124,240,107,12,75,102,33,130,16,69,25,46,67,241,99,115,116,
+  148,116,179,116,180,116,179,124,180,124,180,124,179,124,179,132,150,165,16,132,
+  170,82,170,90,170,82,138,82,5,105,74,131,73,74,73,74,105,74,7,73,
+  74,129,73,66,4,73,74,129,41,66,3,40,66,4,8,58,175,232,57,8,
+  58,232,57,231,49,232,49,232,49,200,49,199,49,200,49,200,49,199,49,199,
+  41,167,41,167,41,199,41,167,41,199,41,167,33,106,58,139,74,114,132,113,
+  140,114,140,81,140,114,148,105,82,163,16,17,124,146,148,49,140,49,132,49,
+  140,49,132,113,140,53,165,114,140,113,140,113,140,49,132,81,132,81,140,113,
+  140,114,140,146,140,20,149,247,165,186,182,3,219,182,130,251,182,218,182,3,
+  186,182,162,154,174,89,166,121,174,56,166,121,166,89,166,23,158,247,157,182,
+  157,182,149,215,157,117,149,118,149,117,149,117,149,52,141,243,140,20,141,19,
+  141,243,132,178,132,243,140,211,132,178,132,178,132,114,124,146,124,113,124,81,
+  124,81,124,146,132,81,116,81,116,16,116,4,81,124,137,49,116,16,116,16,
+  116,48,116,81,124,49,116,49,116,16,116,81,124,3,16,116,133,16,124,48,
+  116,16,116,48,116,49,124,3,81,124,149,113,124,114,124,81,124,240,115,240,
+  107,240,115,16,116,16,116,239,107,240,107,16,108,48,116,49,116,240,107,16,
+  116,81,124,49,116,81,124,49,124,49,116,81,124,3,114,124,3,146,132,179,
+  146,124,81,124,114,124,146,124,179,132,211,132,179,132,211,132,243,140,244,140,
+  85,149,20,141,53,141,52,141,85,149,85,149,52,149,20,149,52,141,53,141,
+  85,149,85,149,118,149,118,149,150,149,183,157,183,157,57,166,57,166,90,166,
+  155,174,188,182,220,182,28,183,61,191,158,215,158,215,191,223,191,223,255,239,
+  223,231,223,231,255,239,223,231,191,223,255,247,223,231,255,247,119,149,78,99,
+  45,91,3,9,58,159,109,99,105,66,232,49,8,58,232,49,200,41,200,41,
+  200,49,168,49,200,41,200,41,200,49,200,49,168,49,200,49,200,49,232,49,
+  232,57,233,49,9,50,9,58,42,66,74,66,106,74,139,74,139,74,172,82,
+  172,82,172,74,77,99,146,148,3,244,156,136,212,148,147,132,17,116,241,107,
+  17,116,50,116,82,124,115,124,4,147,124,151,115,116,83,116,50,108,18,100,
+  242,91,177,91,114,124,183,165,53,149,115,132,94,207,255,231,126,191,114,116,
+  151,157,86,149,49,116,236,82,45,91,85,157,122,182,89,174,252,182,11,255,
+  255,160,60,199,20,149,183,181,118,165,106,58,103,33,136,33,104,33,71,33,
+  5,25,164,8,132,8,164,8,132,8,132,8,132,0,133,8,6,25,107,74,
+  46,99,13,91,204,90,237,90,13,91,13,99,78,99,110,107,143,107,175,115,
+  208,115,240,123,240,123,3,17,124,132,16,132,17,124,17,124,49,124,3,49,
+  132,130,81,132,49,132,3,81,132,130,82,140,81,140,3,114,140,3,146,140,
+  129,114,140,5,146,140,130,114,140,114,140,9,146,140,136,114,140,114,140,146,
+  140,114,140,146,140,81,132,41,58,195,24,14,4,33,204,195,24,162,16,4,
+  33,233,106,101,98,4,74,232,106,4,74,200,106,134,98,101,90,134,90,101,
+  90,166,98,134,98,133,98,68,90,36,82,69,90,36,82,3,74,228,73,36,
+  74,69,82,4,74,163,57,195,57,228,65,228,65,228,73,4,74,4,74,37,
+  74,70,82,102,90,167,98,199,106,9,115,74,123,138,131,171,147,204,155,237,
+  163,45,172,78,172,111,180,111,188,175,188,176,196,208,196,240,196,241,196,241,
+  204,17,205,50,205,175,196,3,90,130,57,130,57,167,82,139,172,104,172,198,
+  147,232,155,199,147,166,147,167,147,134,139,134,131,137,172,165,122,130,57,163,
+  57,163,65,131,57,162,57,5,163,57,153,166,90,101,90,166,98,69,90,163,
+  65,130,57,167,82,208,172,208,188,176,180,143,180,111,172,46,172,13,164,204,
+  155,171,139,106,131,41,123,8,115,199,98,134,90,69,82,36,74,228,73,228,
+  65,3,195,65,132,227,73,4,74,4,82,37,90,145,4,130,12,99,12,99,
+  4,44,99,129,12,99,11,44,99,129,12,99,3,45,99,3,44,99,5,45,
+  99,139,44,99,44,91,44,99,44,99,45,99,45,99,45,91,45,99,44,99,
+  45,99,44,99,6,45,99,131,44,91,45,99,44,99,10,45,99,130,77,99,
+  77,99,3,45,99,132,45,91,77,99,77,99,45,91,3,45,99,129,77,99,
+  4,45,99,130,77,91,45,99,3,77,91,130,45,99,45,99,6,77,99,129,
+  45,91,8,77,99,131,77,91,77,99,77,99,12,77,91,147,77,99,77,99,
+  77,91,77,99,77,91,77,91,45,91,12,91,236,82,236,90,12,91,13,91,
+  78,91,175,107,17,116,82,116,146,124,147,124,147,124,4,179,132,130,179,124,
+  179,124,4,179,132,144,180,132,180,132,179,132,180,132,179,132,180,132,211,132,
+  211,132,179,132,211,132,179,132,180,132,180,132,211,132,179,132,212,124,4,180,
+  132,136,180,124,180,132,179,132,147,132,147,124,146,124,115,124,115,124,10,114,
+  124,131,146,124,147,124,147,124,3,179,124,139,180,124,82,116,110,91,73,58,
+  195,16,163,8,74,42,176,83,82,108,147,116,180,116,5,180,124,139,211,132,
+  243,140,182,165,142,115,170,82,170,82,138,82,105,74,138,82,105,74,105,74,
+  5,73,74,129,105,74,7,73,74,135,41,74,73,74,73,74,73,66,41,66,
+  40,66,40,66,4,8,58,3,232,57,137,232,49,232,49,199,49,199,49,232,
+  49,200,49,199,49,199,49,199,41,6,167,41,174,167,33,236,74,204,74,114,
+  132,114,140,114,140,113,140,81,140,40,74,131,8,179,140,113,148,81,140,49,
+  132,49,132,48,132,178,148,52,165,81,140,113,140,49,132,81,132,81,140,81,
+  140,113,140,114,140,146,140,53,149,215,157,121,174,219,182,186,182,154,174,218,
+  182,186,174,186,182,89,174,121,174,121,174,56,166,56,166,247,157,24,158,56,
+  166,182,149,23,166,3,150,149,164,84,141,52,141,52,141,243,140,211,132,243,
+  140,178,132,178,132,146,124,146,124,114,124,178,132,113,124,178,132,113,124,114,
+  124,81,124,48,116,49,116,81,124,81,116,49,116,16,116,81,124,48,116,16,
+  116,16,116,16,108,207,107,207,107,240,107,239,107,16,116,239,107,48,116,81,
+  116,3,240,115,156,49,116,16,116,16,116,240,115,16,116,16,116,48,116,16,
+  116,16,116,81,124,240,107,16,116,240,107,208,115,240,115,48,116,240,107,240,
+  107,208,107,240,107,49,116,240,107,48,116,16,116,239,115,49,116,49,124,16,
+  116,3,81,124,148,114,132,81,124,49,124,81,124,81,124,49,116,113,124,49,
+  116,114,124,146,124,178,132,179,132,146,132,244,140,20,141,53,149,20,141,52,
+  141,52,149,52,141,3,20,141,149,53,149,20,141,52,149,53,149,85,149,85,
+  149,118,149,150,149,215,157,215,149,25,158,89,166,90,166,188,174,219,174,220,
+  174,93,199,126,207,158,215,191,223,223,231,3,255,239,153,223,231,191,223,191,
+  223,223,231,255,247,216,165,111,107,48,124,9,58,41,66,9,50,45,99,73,
+  66,199,49,8,50,200,49,200,49,200,41,200,41,168,41,200,41,200,41,200,
+  49,200,49,168,49,3,200,49,142,233,57,232,49,9,58,9,58,41,58,74,
+  66,106,66,107,74,139,82,171,82,172,82,171,82,13,91,114,140,3,244,156,
+  163,212,148,146,132,17,116,209,107,241,115,50,116,82,116,115,124,115,124,147,
+  124,115,124,147,124,115,116,115,116,50,108,18,100,242,91,177,91,82,116,183,
+  165,244,148,179,140,94,207,255,231,94,183,114,108,151,157,118,149,49,116,13,
+  83,12,91,52,149,122,182,90,182,187,174,11,255,255,139,158,215,244,140,150,
+  173,150,165,171,66,103,33,136,33,136,33,71,33,5,25,164,8,4,132,8,
+  145,132,0,133,0,230,16,107,74,13,99,13,99,204,82,236,90,237,90,13,
+  99,45,99,78,107,110,107,143,115,175,115,208,115,240,123,3,17,124,136,16,
+  124,17,124,17,124,49,124,49,132,49,124,49,132,49,132,3,81,132,130,82,
+  132,82,132,3,114,140,18,146,140,132,114,140,114,140,146,140,146,140,4,114,
+  140,131,81,140,138,74,195,24,3,4,33,129,228,32,9,4,33,172,228,32,
+  227,24,163,24,195,24,169,98,166,106,227,65,232,106,37,82,232,106,69,90,
+  227,65,69,82,36,82,4,74,4,74,227,65,195,65,195,65,227,65,36,74,
+  69,82,101,82,134,90,167,98,232,106,9,115,73,123,107,131,171,139,204,147,
+  12,156,45,164,78,172,111,180,143,180,175,180,208,196,208,196,240,196,241,196,
+  241,196,17,205,17,205,3,49,205,176,17,205,49,205,50,205,50,205,49,205,
+  49,205,17,205,17,205,49,205,240,204,133,114,162,57,130,57,4,66,108,156,
+  137,172,231,155,199,147,166,147,134,139,231,147,167,147,231,147,138,172,71,139,
+  162,65,163,65,130,57,163,65,163,57,163,57,163,65,163,57,163,57,162,57,
+  195,57,163,57,163,65,163,57,131,57,131,57,228,65,199,98,135,90,102,82,
+  37,74,5,74,4,74,3,228,73,144,4,74,4,74,36,82,69,90,102,90,
+  134,98,167,106,199,106,200,106,200,114,232,114,200,114,200,106,200,106,167,106,
+  135,106,197,4,139,12,91,44,99,12,99,44,99,12,99,44,99,44,99,12,
+  99,44,99,44,99,12,99,5,44,99,133,45,99,12,91,12,99,44,99,44,
+  99,3,45,99,130,44,99,44,99,3,45,99,130,44,99,44,99,3,45,99,
+  141,45,91,45,91,44,99,45,91,44,99,44,99,45,99,45,99,44,99,45,
+  99,44,99,77,99,77,99,6,45,99,132,77,99,45,99,45,99,77,99,7,
+  45,99,131,77,99,45,99,44,99,5,45,99,133,45,91,45,91,77,99,45,
+  99,77,91,3,77,99,131,45,99,45,91,77,91,4,77,99,136,45,91,77,
+  99,77,99,77,91,77,91,77,99,77,99,45,91,3,77,91,130,77,99,77,
+  99,3,77,91,129,77,99,4,77,91,135,77,99,77,99,77,91,77,99,77,
+  91,77,91,77,99,4,77,91,146,77,99,45,91,236,82,236,90,204,82,12,
+  91,45,99,78,99,176,107,49,116,82,124,146,124,147,132,147,132,179,124,147,
+  124,179,132,147,124,5,179,132,158,211,132,211,132,179,132,180,132,180,132,179,
+  124,180,132,180,132,211,132,212,132,211,132,211,132,212,132,180,132,211,132,212,
+  132,179,132,211,124,212,132,180,132,212,132,180,124,179,132,180,132,179,124,147,
+  124,147,124,146,124,114,124,115,124,8,114,124,131,115,124,115,124,147,124,3,
+  179,124,140,180,132,179,124,240,107,236,82,102,33,130,16,69,17,46,67,241,
+  99,147,116,179,116,148,124,3,180,124,138,180,116,180,124,146,124,20,149,247,
+  173,235,98,170,90,138,82,138,82,137,82,3,105,74,5,73,74,145,105,74,
+  73,74,73,74,41,74,41,66,73,66,41,66,41,66,73,66,41,74,73,74,
+  41,66,73,66,40,66,40,66,8,58,8,66,4,8,58,134,232,57,232,49,
+  232,49,199,49,199,49,200,49,3,199,49,129,199,41,6,167,41,198,135,33,
+  13,75,139,66,146,140,114,140,81,140,81,140,113,140,8,66,163,16,244,148,
+  114,148,49,132,81,140,49,140,49,132,48,132,16,132,81,140,114,148,81,140,
+  81,140,49,140,81,132,81,132,113,140,146,132,53,149,215,157,89,174,218,182,
+  218,182,153,174,121,166,153,174,121,166,153,174,56,166,89,166,215,149,247,157,
+  215,157,182,149,182,157,85,149,85,141,52,141,84,149,20,141,19,133,211,132,
+  211,132,146,124,178,132,211,132,146,124,114,124,146,124,146,132,113,124,146,132,
+  146,132,81,124,113,124,49,116,81,124,49,116,16,116,48,116,240,107,3,16,
+  116,140,49,116,48,116,239,115,49,116,16,116,16,116,240,107,207,107,240,107,
+  240,107,16,116,240,115,3,16,116,144,48,116,240,115,240,115,16,116,48,124,
+  16,116,16,116,48,116,16,116,16,116,48,116,207,107,16,116,207,107,16,116,
+  240,115,3,207,107,131,239,107,16,116,240,107,3,240,115,149,81,124,240,115,
+  49,124,49,116,49,124,49,116,114,132,81,124,113,124,81,124,48,124,81,124,
+  81,124,49,124,81,124,113,124,114,124,146,132,146,124,211,140,52,149,3,20,
+  141,129,243,140,3,244,140,130,20,141,244,140,3,20,141,156,53,149,85,149,
+  86,149,86,149,118,149,150,157,150,149,216,157,25,158,58,166,155,174,123,166,
+  252,182,29,191,126,207,93,199,158,207,190,223,191,223,223,231,223,223,223,231,
+  223,231,255,239,255,247,151,157,175,107,207,115,3,9,58,133,13,91,105,74,
+  232,49,9,58,200,49,4,200,41,134,168,41,200,49,200,49,168,41,200,49,
+  168,49,4,200,49,152,232,57,9,58,41,58,41,66,106,66,107,74,139,74,
+  171,82,204,82,171,74,204,82,49,132,244,156,243,156,244,156,212,148,146,132,
+  17,116,241,107,241,107,50,116,82,116,115,124,115,124,4,147,124,150,83,108,
+  50,108,18,100,241,91,209,91,50,116,215,165,20,149,114,132,29,199,255,239,
+  127,199,82,116,183,157,119,149,82,116,13,83,236,82,20,149,122,190,122,182,
+  154,174,11,255,255,139,223,231,211,132,150,173,183,173,237,74,103,33,136,33,
+  136,41,103,33,6,25,164,8,4,132,8,145,132,0,132,0,198,16,74,66,
+  13,91,45,91,204,82,236,90,13,91,13,99,45,99,78,107,143,107,143,115,
+  207,115,208,123,240,123,4,17,124,130,49,124,17,124,6,49,132,132,81,132,
+  81,132,82,132,81,132,3,114,140,7,146,140,132,114,140,146,140,114,140,114,
+  140,5,146,140,130,114,140,146,140,5,114,140,135,81,132,114,132,114,140,114,
+  140,236,82,228,24,228,32,3,4,33,129,228,32,7,4,33,157,228,32,4,
+  33,227,24,163,24,163,24,103,82,231,122,195,65,200,106,69,82,199,106,69,
+  82,162,57,195,57,163,57,163,57,162,57,195,65,162,65,163,57,37,74,204,
+  139,78,172,110,172,143,180,175,188,208,188,208,196,240,196,4,17,205,129,49,
+  205,3,50,205,130,49,205,50,205,8,49,205,132,50,205,17,205,49,205,50,
+  205,3,49,205,150,18,205,50,205,50,205,49,205,39,139,130,57,163,65,163,
+  57,43,148,137,180,73,172,40,164,73,164,41,164,41,164,8,164,232,155,232,
+  155,7,131,163,73,131,57,163,57,4,130,57,163,131,57,163,57,163,57,195,
+  65,195,65,228,73,228,73,36,74,37,82,69,90,69,90,102,98,134,98,167,
+  106,167,106,200,106,200,114,200,114,232,106,200,106,167,106,167,106,135,106,134,
+  98,101,90,69,90,37,82,4,74,4,74,196,73,195,65,163,65,163,65,130,
+  57,130,57,176,4,132,44,99,12,91,44,99,12,99,6,44,99,131,45,99,
+  44,99,12,99,7,44,99,129,45,99,5,44,99,136,45,99,44,99,45,99,
+  45,99,44,99,45,99,45,99,44,99,8,45,99,129,44,99,7,45,99,168,
+  44,99,45,91,45,99,44,99,45,99,45,99,77,99,45,99,45,91,45,91,
+  77,99,45,99,77,99,77,99,45,99,77,99,45,91,77,99,45,99,45,99,
+  77,99,77,99,45,99,77,99,45,91,77,91,45,99,77,99,45,91,45,91,
+  77,99,45,99,77,99,45,91,77,91,77,99,77,91,77,99,45,91,77,91,
+  4,77,99,3,77,91,131,77,99,77,99,109,99,5,77,91,129,77,99,6,
+  77,91,153,77,99,77,99,77,91,77,99,77,99,77,91,77,91,77,99,45,
+  91,236,82,204,82,236,90,13,91,45,91,110,99,208,107,49,116,114,124,146,
+  124,147,132,147,124,179,124,179,132,179,132,179,124,4,179,132,3,180,132,135,
+  179,132,180,132,211,132,180,132,179,132,180,132,179,124,3,179,132,133,212,132,
+  179,132,180,132,179,132,179,132,3,180,132,133,180,124,212,132,179,132,179,124,
+  179,124,7,147,124,133,115,124,147,124,147,124,146,124,146,124,3,147,124,146,
+  147,132,179,124,179,124,180,124,212,132,82,124,110,99,73,58,195,16,163,8,
+  74,42,176,83,82,108,147,116,179,116,179,124,180,124,180,124,3,212,124,140,
+  211,132,20,141,182,173,170,90,171,90,170,82,170,82,138,82,105,82,105,74,
+  73,74,105,74,3,73,74,129,41,66,4,73,74,147,41,74,73,74,41,66,
+  41,66,73,66,41,74,73,66,73,66,41,66,41,66,8,58,8,66,8,58,
+  232,57,8,58,232,57,8,58,232,57,232,57,4,199,49,131,200,49,168,49,
+  200,49,7,167,41,171,167,33,12,75,171,74,146,140,114,140,81,132,49,132,
+  239,123,199,57,5,25,85,165,113,148,81,140,81,140,49,140,49,140,16,132,
+  16,132,113,140,81,140,49,132,81,140,81,132,81,132,82,140,81,132,178,140,
+  85,149,247,157,56,166,186,174,154,174,57,166,24,158,24,158,56,166,24,158,
+  247,157,247,157,182,149,150,149,118,149,85,141,3,20,141,135,52,149,243,140,
+  178,124,211,132,210,132,146,124,113,124,4,146,124,142,113,124,113,124,113,132,
+  145,132,113,124,113,124,114,132,81,124,16,116,16,116,240,115,240,115,240,107,
+  240,107,3,16,116,131,49,124,240,115,240,115,3,16,116,143,207,107,207,107,
+  240,115,240,107,239,107,240,115,240,107,16,116,16,116,240,115,240,115,81,124,
+  48,116,16,116,240,115,4,16,116,133,240,115,240,115,240,107,207,107,240,115,
+  3,207,107,158,240,107,207,107,16,116,207,107,17,116,16,116,17,116,240,115,
+  49,116,17,116,49,116,48,124,49,124,49,124,81,124,81,124,16,116,49,116,
+  49,116,49,124,113,124,81,116,81,116,146,132,146,132,211,132,211,132,244,140,
+  244,140,20,141,5,244,140,129,20,141,5,244,140,154,21,141,53,149,52,141,
+  85,149,150,149,118,149,183,149,216,149,57,158,90,166,90,158,155,174,220,174,
+  61,199,61,199,158,215,126,207,158,215,191,223,223,231,255,239,223,231,255,247,
+  26,166,45,91,142,107,3,9,58,136,45,99,106,74,167,49,232,57,200,49,
+  200,41,200,41,200,49,5,168,41,130,200,49,200,41,3,200,49,153,232,49,
+  232,49,233,57,9,58,42,66,74,66,107,74,171,74,171,82,172,82,172,74,
+  171,74,207,115,243,156,244,156,244,156,211,148,147,132,17,116,241,107,241,107,
+  50,116,82,116,115,124,115,124,3,147,124,151,115,116,83,116,50,108,18,100,
+  241,91,209,91,18,108,215,165,53,149,82,132,252,198,255,231,191,207,114,108,
+  151,157,151,157,114,124,45,83,236,82,243,140,122,190,122,182,122,166,11,255,
+  255,160,255,247,211,132,150,173,215,181,78,83,104,33,136,33,136,33,103,33,
+  6,25,164,16,132,8,164,16,132,8,132,8,132,0,100,0,197,8,41,66,
+  237,90,45,99,204,82,237,90,13,91,13,99,45,99,78,107,110,107,143,115,
+  175,115,208,115,240,123,3,17,124,133,16,124,16,124,17,124,49,124,49,124,
+  4,49,132,135,81,132,81,132,82,132,82,140,114,132,114,140,114,140,8,146,
+  140,130,114,140,114,140,6,146,140,7,114,140,137,113,140,81,132,113,140,114,
+  140,78,99,228,24,228,24,4,33,228,32,11,4,33,151,228,32,195,24,163,
+  16,7,66,9,123,163,65,199,98,101,90,134,98,134,98,163,57,195,57,163,
+  57,195,65,195,65,162,65,195,65,163,57,37,74,111,164,50,213,50,205,81,
+  205,3,82,205,135,49,205,82,205,50,205,50,205,82,205,49,205,82,205,7,
+  49,205,192,50,205,50,205,49,205,50,205,49,205,50,205,17,205,49,205,17,
+  205,17,205,241,204,240,196,208,196,207,196,143,188,175,188,40,139,130,57,162,
+  57,130,57,199,98,72,123,6,115,230,106,197,106,165,98,133,90,101,90,69,
+  82,68,82,36,82,228,73,4,74,37,82,69,82,69,90,134,98,102,98,167,
+  106,167,106,199,106,200,106,200,114,200,106,200,106,199,106,167,106,167,98,135,
+  98,134,98,102,98,69,90,37,82,4,74,228,73,228,73,195,65,195,65,162,
+  65,162,57,131,57,130,57,130,57,131,57,5,130,57,132,131,57,130,57,131,
+  57,131,57,150,4,133,12,99,44,99,44,99,12,99,12,99,7,44,99,132,
+  12,91,44,99,45,99,12,99,7,44,99,129,12,91,4,44,99,3,45,99,
+  5,44,99,7,45,99,129,45,91,4,45,99,136,45,91,77,99,44,91,77,
+  99,45,99,44,91,77,99,45,91,4,45,99,134,45,91,44,99,45,99,45,
+  99,77,99,45,91,3,45,99,139,45,91,45,91,45,99,77,99,45,99,45,
+  91,77,99,45,99,45,99,77,91,77,91,6,77,99,131,77,91,77,99,77,
+  99,3,77,91,3,77,99,131,77,91,77,99,77,99,4,77,91,139,77,99,
+  77,99,77,91,77,99,77,91,77,91,77,99,77,91,77,99,77,99,77,91,
+  4,77,99,144,77,91,77,99,77,99,13,91,236,82,204,82,236,90,13,91,
+  45,91,142,99,240,107,49,116,114,124,146,124,147,124,147,132,3,179,132,3,
+  179,124,129,180,132,3,179,132,136,180,132,180,132,211,132,180,132,180,132,179,
+  132,180,132,180,132,4,179,132,137,180,132,180,132,212,132,180,132,180,132,180,
+  124,179,132,180,132,211,132,4,179,124,13,147,124,158,179,124,179,124,180,132,
+  179,132,179,132,179,124,240,107,236,74,102,33,130,16,70,17,46,67,241,99,
+  147,116,180,124,179,116,180,124,180,124,212,124,212,124,180,124,180,124,244,140,
+  52,149,85,165,138,82,170,82,170,82,138,82,105,82,3,105,74,8,73,74,
+  140,73,66,73,74,40,74,73,74,73,74,41,74,73,74,41,66,40,66,41,
+  66,40,66,40,66,5,8,58,133,232,57,232,57,231,57,199,49,200,49,3,
+  199,49,130,200,49,200,41,6,167,41,147,135,33,78,91,204,82,204,74,178,
+  140,114,140,114,140,16,132,207,115,73,74,228,24,73,66,113,140,81,140,81,
+  140,49,140,49,140,16,132,16,132,4,81,140,166,81,132,81,132,113,132,81,
+  132,146,132,85,149,215,157,89,166,153,174,23,158,247,157,24,166,247,157,215,
+  157,182,149,182,157,117,149,117,149,20,141,85,141,52,141,20,141,20,141,211,
+  132,210,132,178,124,178,132,113,124,114,124,146,124,49,116,81,116,49,116,49,
+  116,114,124,114,132,146,132,113,124,3,81,124,132,48,124,113,132,49,124,48,
+  116,3,16,116,149,239,107,16,116,207,107,240,115,239,115,207,107,240,115,240,
+  115,207,107,16,116,239,107,207,107,239,107,16,116,208,107,207,107,240,115,240,
+  107,240,115,207,107,240,115,5,16,116,143,81,124,240,115,240,115,17,116,16,
+  116,240,107,207,107,208,107,239,107,239,107,207,107,175,107,207,107,240,107,207,
+  107,4,16,116,201,240,115,49,116,16,116,240,115,240,115,81,124,16,116,49,
+  124,16,116,81,124,16,116,81,124,81,124,17,116,17,108,82,124,114,124,146,
+  132,211,132,179,132,179,132,211,132,179,132,211,132,179,132,179,132,178,132,243,
+  140,211,132,211,132,244,140,211,140,244,140,211,132,20,149,52,141,21,141,86,
+  149,53,141,85,141,151,149,216,157,25,158,57,158,123,166,219,174,187,174,29,
+  191,61,191,61,199,126,207,126,207,159,215,255,231,223,231,255,231,155,182,13,
+  91,207,115,9,58,41,58,9,58,12,91,106,74,167,49,8,50,200,49,200,
+  41,200,49,168,49,200,41,168,41,167,41,7,200,41,135,200,49,232,57,233,
+  49,9,58,42,66,74,66,107,74,4,171,74,142,139,74,110,107,179,148,244,
+  156,244,156,211,148,147,132,17,116,208,107,17,116,50,116,82,116,115,124,115,
+  124,3,147,124,151,115,124,83,116,50,108,18,100,242,91,209,91,18,108,183,
+  165,20,149,81,132,188,182,255,231,223,215,114,108,150,157,151,149,146,124,45,
+  91,203,82,178,140,90,182,122,182,90,158,12,255,255,159,243,124,150,173,215,
+  173,143,91,103,25,136,41,168,41,136,33,38,25,164,8,132,8,132,16,132,
+  8,132,8,132,0,133,0,165,8,10,58,204,90,46,99,172,82,204,90,237,
+  90,13,99,45,99,78,99,110,107,143,115,175,115,208,115,240,123,5,17,124,
+  134,16,124,49,124,17,124,17,124,49,132,49,132,4,81,132,129,82,132,5,
+  114,140,4,146,140,4,114,140,3,146,140,130,114,140,146,140,8,114,140,134,
+  81,132,81,140,114,140,146,140,143,115,37,25,3,228,32,3,4,33,129,228,
+  24,7,4,33,156,228,32,195,24,162,24,165,49,41,123,227,73,134,90,167,
+  98,134,90,167,106,163,65,195,57,195,65,134,90,69,82,3,74,195,65,163,
+  57,195,57,14,148,82,205,82,205,50,205,50,205,81,205,82,205,82,213,82,
+  213,5,82,205,168,50,213,49,205,49,205,17,205,17,197,241,196,241,204,208,
+  196,208,188,175,188,143,180,78,180,78,172,13,156,236,155,203,147,138,139,74,
+  123,41,115,232,106,199,98,166,98,134,90,36,82,195,65,195,65,4,74,36,
+  74,69,82,70,82,102,90,102,90,134,90,135,98,135,98,167,98,167,106,167,
+  106,200,106,200,106,3,167,106,138,134,98,134,98,101,90,69,90,37,82,37,
+  82,4,74,228,73,228,65,195,65,3,163,57,140,131,57,130,57,163,57,130,
+  57,163,57,130,57,130,57,131,57,131,57,163,57,131,57,131,57,4,130,57,
+  136,162,57,163,57,163,65,195,65,227,73,4,74,37,82,69,90,183,4,131,
+  44,99,12,99,12,99,4,44,99,130,12,99,12,99,9,44,99,129,12,99,
+  5,44,99,133,45,99,44,99,44,99,45,99,44,99,3,45,99,130,44,99,
+  44,99,3,45,99,142,45,91,45,91,45,99,45,99,45,91,45,99,77,99,
+  45,99,45,99,44,99,44,91,45,99,44,99,77,99,9,45,99,129,45,91,
+  6,45,99,3,77,99,141,45,91,45,99,77,99,77,99,45,99,77,99,45,
+  99,77,91,77,99,77,91,77,99,77,99,77,91,4,77,99,3,77,91,7,
+  77,99,129,109,99,3,77,91,4,77,99,130,77,91,77,99,5,77,91,146,
+  77,99,77,99,77,91,109,99,77,99,77,91,77,99,77,91,12,83,236,82,
+  204,82,236,90,13,91,78,99,143,107,240,107,82,116,114,124,3,147,124,4,
+  179,132,129,179,124,6,179,132,137,180,132,179,132,180,132,179,132,179,132,180,
+  132,211,132,211,132,179,132,3,211,132,135,212,132,180,132,211,132,179,132,180,
+  132,211,132,180,132,3,179,132,130,179,124,179,132,4,147,124,129,179,124,5,
+  147,124,133,179,132,147,124,179,124,180,132,179,132,3,180,132,141,82,124,110,
+  91,41,58,195,16,163,16,107,42,176,83,82,108,147,116,179,116,179,124,180,
+  124,180,124,3,212,124,134,212,132,179,132,85,149,210,148,138,82,170,90,3,
+  138,82,130,105,74,105,74,8,73,74,129,41,66,3,73,74,137,73,66,40,
+  66,41,66,40,66,73,74,41,66,40,66,40,66,8,66,5,8,58,133,231,
+  57,231,49,231,49,199,49,199,41,3,199,49,130,167,49,167,49,3,167,41,
+  145,135,33,167,41,167,41,135,33,13,75,78,91,111,99,146,140,114,140,81,
+  140,16,132,207,115,207,123,134,49,131,8,41,58,81,132,3,81,140,130,239,
+  123,48,132,4,81,140,138,81,132,81,140,113,140,81,132,146,140,52,149,117,
+  149,215,157,247,157,89,174,3,215,157,3,150,149,197,52,141,20,141,52,149,
+  20,141,243,132,178,124,146,124,178,124,146,124,146,132,114,124,113,124,81,124,
+  81,116,48,116,81,116,16,108,81,116,81,124,146,132,81,124,81,124,16,116,
+  81,124,48,116,48,124,48,124,16,116,16,116,240,115,16,116,48,116,16,116,
+  240,107,240,115,207,107,240,115,207,107,240,115,207,107,207,107,16,116,207,107,
+  239,107,175,107,207,107,175,107,207,107,175,107,175,107,16,116,240,115,207,107,
+  207,107,240,115,16,116,240,107,16,116,16,116,240,115,16,116,16,116,240,115,
+  207,107,240,115,174,107,239,115,207,107,175,107,4,207,107,156,240,107,207,107,
+  48,116,49,124,16,116,49,116,16,116,240,115,16,116,49,116,49,124,16,116,
+  49,124,240,107,240,107,49,124,240,107,175,107,208,107,81,116,114,124,81,124,
+  178,132,211,132,178,132,146,124,179,132,147,132,4,179,132,179,211,132,179,132,
+  178,132,178,132,211,132,211,132,244,132,20,141,244,140,244,132,244,140,53,149,
+  85,141,118,141,183,149,183,149,248,149,57,158,123,166,155,174,123,166,29,183,
+  29,191,93,199,61,191,126,207,191,223,255,239,61,207,13,83,175,107,9,58,
+  41,58,9,58,12,91,106,74,167,41,232,49,200,49,200,41,168,41,167,41,
+  167,41,168,41,167,41,200,41,200,41,199,41,168,41,200,41,168,41,3,232,
+  49,134,9,58,9,58,41,58,74,66,106,74,139,74,3,171,74,168,139,74,
+  13,91,146,140,244,156,244,156,212,148,114,132,17,116,240,107,241,115,49,116,
+  82,116,115,124,115,124,147,124,147,124,115,124,115,124,83,116,50,108,18,100,
+  242,91,209,91,241,107,182,165,52,149,82,132,123,182,255,231,223,207,147,100,
+  118,157,119,149,146,124,77,91,203,74,146,132,57,182,122,182,57,166,12,255,
+  255,138,20,117,150,173,215,181,208,107,103,25,168,41,169,41,136,41,71,25,
+  197,16,5,132,8,154,101,0,165,8,233,49,172,82,46,99,172,82,236,90,
+  237,90,13,91,45,99,78,99,110,107,143,115,175,115,208,115,240,115,16,124,
+  17,124,16,124,17,124,17,124,17,132,16,124,16,124,240,123,49,132,4,81,
+  132,131,49,132,49,132,81,132,5,114,140,3,146,140,137,114,140,146,140,114,
+  140,146,140,114,140,146,140,146,140,114,140,146,140,6,114,140,4,81,132,139,
+  113,132,114,140,208,115,102,33,227,24,228,32,228,32,228,24,4,33,4,33,
+  228,32,8,4,33,152,195,24,130,24,100,41,9,123,36,90,101,82,199,106,
+  69,82,232,106,195,65,163,65,195,57,165,90,166,98,166,106,36,82,163,57,
+  163,57,172,131,50,205,82,205,49,205,50,205,49,205,3,17,205,145,240,196,
+  208,188,176,188,143,180,110,180,77,172,12,164,236,155,203,139,139,139,74,131,
+  41,123,8,115,199,106,167,98,135,90,102,90,3,69,82,139,37,82,69,82,
+  69,82,70,82,102,90,134,98,134,98,167,98,167,106,167,106,200,106,3,167,
+  106,179,167,98,167,98,135,98,102,98,70,90,70,90,69,82,36,82,4,74,
+  228,73,196,65,195,65,163,65,163,65,163,57,131,57,163,65,130,57,163,57,
+  162,57,130,57,163,57,131,57,163,57,131,57,130,57,163,57,131,57,130,57,
+  130,57,162,57,163,65,163,65,195,65,227,73,4,74,4,74,69,82,69,90,
+  102,98,135,98,167,106,199,106,200,114,232,114,233,114,232,114,8,123,200,114,
+  200,114,167,106,180,4,138,12,99,12,99,44,99,12,91,12,99,44,99,44,
+  99,12,91,44,99,12,99,15,44,99,129,12,99,3,44,99,132,45,99,45,
+  99,44,99,44,99,4,45,99,129,44,99,3,45,99,129,44,91,3,45,99,
+  132,44,99,45,99,44,91,44,91,7,45,99,141,45,91,45,91,45,99,45,
+  91,45,99,77,99,45,99,45,91,77,99,45,99,45,99,77,91,77,99,3,
+  45,99,133,77,99,77,99,45,99,77,99,45,99,3,77,99,3,77,91,129,
+  45,91,3,77,99,129,77,91,5,77,99,129,77,91,4,77,99,140,77,91,
+  77,99,77,91,77,91,77,99,77,91,77,99,77,99,77,91,77,91,77,99,
+  77,99,5,77,91,146,77,99,77,99,78,99,77,99,45,91,12,83,236,82,
+  203,82,12,91,13,91,77,99,175,107,17,108,82,124,146,124,147,124,147,132,
+  147,132,8,179,132,131,180,132,179,132,179,132,3,180,132,135,179,132,212,132,
+  179,132,211,132,179,132,180,132,179,132,3,211,132,129,211,124,3,211,132,137,
+  179,132,179,132,212,132,179,132,179,132,180,132,180,132,179,132,179,132,4,179,
+  124,152,147,124,147,132,179,124,179,124,179,132,179,124,179,124,212,124,180,132,
+  180,132,212,132,147,124,207,107,203,74,69,33,130,8,134,25,79,75,17,100,
+  147,116,147,116,179,124,180,124,180,124,4,212,124,137,180,124,211,140,118,157,
+  48,132,138,82,170,82,170,82,138,82,138,82,3,105,74,4,73,74,138,41,
+  66,73,74,41,74,41,74,73,66,73,74,73,74,41,74,41,74,41,66,4,
+  40,66,131,8,66,8,66,40,66,3,8,58,132,232,57,231,57,232,57,232,
+  57,6,199,49,132,167,41,167,41,134,41,167,33,3,167,41,146,135,33,78,
+  83,13,91,208,115,179,148,146,140,114,140,81,140,16,132,16,132,174,115,134,
+  49,163,8,9,58,49,132,113,140,113,140,239,123,7,81,140,167,81,132,81,
+  132,146,140,243,140,52,149,215,165,182,157,182,157,117,149,117,149,85,149,52,
+  141,53,141,243,140,243,140,179,132,178,132,114,124,178,132,113,124,113,124,81,
+  116,48,116,113,124,49,116,16,116,16,116,207,107,48,116,16,108,49,116,81,
+  116,49,116,48,116,81,124,81,124,49,116,16,116,16,116,3,240,115,144,239,
+  115,239,115,240,115,16,116,48,116,240,115,240,115,207,107,239,107,207,107,240,
+  115,207,107,207,107,239,107,239,107,16,116,6,207,107,137,239,107,240,107,207,
+  107,207,107,240,115,16,116,16,108,49,124,48,116,3,240,115,140,239,107,207,
+  107,207,107,175,107,240,115,207,107,207,107,208,107,207,107,175,107,207,107,240,
+  107,6,16,116,152,240,115,240,107,240,115,240,115,16,116,240,115,240,115,16,
+  116,240,107,240,115,208,107,207,107,240,107,16,108,49,124,81,124,179,132,179,
+  132,178,132,114,124,146,124,146,124,146,132,146,124,3,146,132,136,113,124,114,
+  124,178,124,211,132,211,132,211,140,212,140,211,132,3,244,140,159,53,141,85,
+  149,86,149,150,149,183,149,248,149,25,158,58,158,187,174,252,182,252,182,61,
+  199,93,199,126,207,255,231,155,182,111,99,240,115,232,57,41,58,9,58,236,
+  90,138,74,134,41,232,49,232,49,200,49,167,41,200,41,167,41,168,41,4,
+  167,41,184,168,41,168,41,200,49,233,49,41,58,200,41,204,82,9,58,9,
+  58,41,66,74,66,139,74,171,74,171,74,139,74,139,74,204,82,81,132,244,
+  156,244,156,212,148,114,132,17,116,241,107,241,115,17,116,82,124,115,124,147,
+  124,115,124,115,124,147,124,115,124,115,116,50,108,18,100,242,91,209,91,241,
+  107,183,165,53,149,114,132,91,174,255,223,191,207,179,108,85,157,118,149,146,
+  124,77,91,203,82,81,124,25,174,122,182,57,158,255,247,11,255,255,138,53,
+  125,117,173,215,173,49,116,135,25,168,41,168,41,169,41,70,25,197,16,5,
+  132,8,145,132,0,133,0,201,49,172,82,46,99,204,82,204,90,237,90,13,
+  91,45,99,46,99,110,107,143,107,175,115,208,115,240,115,240,123,3,17,124,
+  130,17,132,17,124,3,240,123,130,16,124,49,132,4,81,132,134,49,132,49,
+  132,81,132,114,140,146,140,114,140,5,146,140,130,114,140,114,140,4,146,140,
+  5,114,140,131,113,140,81,140,81,140,5,81,132,136,113,140,240,123,168,49,
+  228,24,228,32,4,33,4,33,228,24,10,4,33,172,195,24,163,24,4,33,
+  9,115,101,98,36,74,232,106,37,82,8,115,227,73,163,57,195,57,3,74,
+  36,74,101,90,4,74,195,65,163,57,233,106,111,172,78,164,45,172,12,156,
+  204,147,171,139,138,131,73,123,41,115,232,106,199,106,166,90,134,90,134,90,
+  102,82,101,82,69,82,70,90,102,90,101,90,102,90,134,98,134,98,167,106,
+  135,98,4,167,106,142,135,106,167,106,167,98,135,98,102,90,102,90,70,90,
+  37,82,5,74,4,74,228,65,196,65,195,65,163,65,3,163,57,134,162,57,
+  163,57,131,57,130,57,130,57,162,57,4,130,57,165,131,57,130,57,130,57,
+  163,57,162,57,163,65,195,65,228,65,228,73,4,74,37,82,69,82,134,98,
+  134,98,167,106,167,106,199,106,232,114,232,114,200,114,232,114,200,114,232,114,
+  200,106,199,106,134,106,102,98,102,98,37,82,37,82,4,74,228,73,196,73,
+  195,65,195,65,163,57,163,65,135,4,131,110,83,12,99,12,99,12,44,99,
+  129,45,99,5,44,99,129,45,99,3,44,99,3,45,99,131,44,99,45,99,
+  45,99,4,44,99,129,45,91,5,45,99,132,45,91,45,99,45,99,44,99,
+  4,45,99,132,45,91,45,99,45,99,45,91,10,45,99,3,77,99,137,77,
+  91,45,91,77,99,45,99,45,91,77,99,45,99,45,99,77,91,9,77,99,
+  129,77,91,5,77,99,130,77,91,77,91,7,77,99,131,77,91,77,91,77,
+  99,3,77,91,133,77,99,77,91,77,91,77,99,77,91,4,77,99,3,77,
+  91,131,77,99,77,91,45,91,3,236,82,135,12,91,45,99,78,99,207,107,
+  49,116,114,116,146,124,3,147,124,6,179,132,129,179,124,5,179,132,4,180,
+  132,142,179,132,179,132,180,132,212,132,211,132,211,132,180,132,180,132,212,132,
+  180,124,212,124,180,132,211,132,211,132,4,180,132,136,179,124,179,132,179,132,
+  180,124,180,124,179,124,179,132,179,124,3,179,132,146,179,124,180,132,180,132,
+  212,132,212,132,180,132,212,132,49,116,45,91,231,49,163,16,195,8,172,50,
+  208,91,82,116,147,124,179,124,179,116,3,212,124,142,212,132,212,124,212,132,
+  211,132,211,140,182,165,206,123,170,82,202,90,138,82,138,82,105,82,105,74,
+  105,74,4,73,74,129,41,74,3,73,74,141,41,74,73,66,41,66,73,74,
+  73,74,41,66,41,66,40,66,40,66,41,66,40,66,40,66,8,66,3,8,
+  58,129,232,57,3,231,57,4,199,49,130,199,41,199,49,5,167,41,129,167,
+  33,3,135,33,135,74,58,13,91,49,124,179,148,81,140,81,140,114,140,3,
+  48,132,135,110,107,70,41,196,16,9,58,48,124,113,140,16,132,5,81,140,
+  143,114,140,81,140,113,140,81,132,146,140,211,140,52,149,150,149,150,157,117,
+  149,117,149,85,149,85,149,20,141,20,141,3,211,132,173,146,132,81,116,113,
+  124,81,124,113,124,48,116,48,116,16,108,48,116,49,116,207,107,239,107,16,
+  108,240,107,239,107,16,108,48,116,49,116,49,124,48,124,49,116,49,124,81,
+  124,16,116,16,116,207,107,16,116,240,115,207,107,240,115,175,107,208,107,240,
+  115,207,107,175,107,207,107,239,107,175,99,175,107,142,107,240,115,142,99,207,
+  107,175,107,240,115,5,207,107,137,208,115,208,107,175,107,175,107,239,107,207,
+  107,240,115,16,116,207,107,3,175,107,143,207,115,207,107,142,99,240,107,175,
+  107,175,107,142,99,207,107,240,115,207,107,16,116,207,107,240,115,240,115,239,
+  115,3,16,116,151,240,115,16,116,16,116,240,107,208,107,176,107,240,115,16,
+  116,240,115,175,107,175,99,175,99,49,116,49,124,146,132,146,132,179,132,82,
+  124,81,124,114,124,146,124,114,124,82,124,5,114,124,227,146,124,211,132,179,
+  132,211,132,179,132,211,132,179,132,244,140,53,149,211,132,244,140,85,149,118,
+  141,150,149,248,157,25,158,122,166,155,174,155,166,252,182,61,191,126,207,158,
+  207,90,166,46,91,239,115,232,57,41,58,8,58,236,90,138,74,134,41,232,
+  49,200,49,200,41,200,49,167,41,167,41,135,41,168,41,167,41,167,41,168,
+  41,168,41,167,41,200,41,232,49,41,58,135,41,171,74,232,49,9,58,41,
+  58,74,66,139,74,139,74,171,74,171,74,139,74,171,74,240,123,243,156,244,
+  156,212,148,114,132,17,116,208,107,241,107,17,116,50,116,115,124,115,116,147,
+  124,115,124,115,124,115,116,115,116,50,108,18,100,241,91,209,91,209,99,183,
+  165,85,149,146,132,26,166,255,223,255,215,180,108,85,157,118,149,147,124,77,
+  91,171,74,16,124,24,182,90,174,25,150,255,239,11,255,255,138,118,133,117,
+  173,215,181,114,124,135,33,168,41,201,41,168,41,71,25,197,16,5,132,8,
+  146,132,0,132,8,168,41,172,82,45,99,172,82,204,90,236,90,13,91,45,
+  99,78,99,110,107,143,107,175,115,208,115,240,115,17,124,16,124,4,17,124,
+  3,240,123,131,16,124,49,132,49,132,3,81,132,131,49,132,49,132,81,132,
+  5,114,140,130,146,140,114,140,3,146,140,130,114,140,146,140,4,114,140,4,
+  81,132,5,49,132,137,81,132,49,132,81,132,16,132,9,58,228,24,4,33,
+  4,33,228,32,11,4,33,143,195,24,162,24,227,24,201,98,167,106,227,73,
+  232,114,36,82,232,106,4,74,194,57,195,65,195,57,195,65,163,57,3,195,
+  65,141,37,74,167,90,166,90,134,90,134,90,102,90,101,90,101,90,134,90,
+  134,90,134,98,167,98,167,98,7,167,106,142,134,98,135,98,102,98,102,90,
+  69,90,37,82,37,82,4,74,4,74,227,65,196,65,195,65,163,65,163,65,
+  3,163,57,4,130,57,129,131,57,3,130,57,129,162,57,3,163,57,169,163,
+  65,195,65,195,65,228,73,4,74,36,74,69,82,102,90,102,90,134,98,167,
+  98,167,106,199,106,200,114,200,114,232,114,232,114,200,114,200,106,200,106,167,
+  106,167,98,134,98,102,90,69,90,37,82,4,82,227,73,195,73,195,65,163,
+  65,163,57,163,65,163,65,130,57,162,57,130,57,131,57,163,57,163,57,162,
+  65,3,163,65,1,131,57,217,4,134,245,44,49,60,110,83,13,91,12,99,
+  12,99,3,44,99,132,12,91,44,99,12,99,45,99,5,44,99,3,45,99,
+  139,44,99,44,99,45,91,45,99,44,99,44,99,45,99,12,99,44,99,44,
+  99,45,99,6,44,99,132,45,99,45,91,45,99,44,99,6,45,99,3,45,
+  91,129,77,99,4,45,99,136,77,99,45,99,45,99,77,99,45,99,45,91,
+  45,99,77,99,4,45,99,139,77,91,45,99,77,99,45,91,77,99,77,99,
+  45,91,45,99,77,99,77,99,77,91,11,77,99,130,77,91,77,91,3,77,
+  99,133,77,91,77,99,77,91,77,91,77,99,3,77,91,133,77,99,77,99,
+  77,91,77,91,77,99,5,77,91,144,77,99,77,99,109,99,77,99,77,91,
+  77,99,45,91,12,83,236,82,236,90,12,91,45,99,110,99,208,107,49,116,
+  114,124,3,147,124,131,179,132,179,124,179,124,5,179,132,131,211,132,179,132,
+  211,132,3,179,132,3,211,132,130,180,132,212,132,3,180,132,129,212,132,3,
+  179,132,139,180,132,212,124,180,132,211,124,211,124,212,124,180,132,180,132,180,
+  124,180,124,180,132,4,179,124,136,179,132,180,132,180,124,180,132,180,132,180,
+  124,212,132,180,132,3,212,132,140,146,124,143,99,138,66,4,25,130,16,200,
+  33,111,83,50,108,147,124,147,124,179,124,179,116,3,212,124,137,244,124,244,
+  132,212,132,211,132,244,140,183,165,44,107,170,90,170,82,3,138,82,130,105,
+  74,105,74,3,73,74,157,41,74,73,74,41,74,73,74,73,74,41,74,73,
+  74,73,66,41,66,41,74,41,74,41,66,73,66,40,66,41,66,41,66,40,
+  66,8,66,8,58,232,57,8,58,232,57,231,57,232,57,232,57,232,49,199,
+  49,199,41,199,49,3,167,49,140,167,41,166,41,134,41,167,41,135,33,167,
+  41,135,33,102,33,204,74,204,82,114,132,146,148,3,114,140,193,81,140,48,
+  132,49,132,16,132,44,99,102,41,5,17,106,66,16,132,142,115,81,140,81,
+  140,113,140,81,140,81,140,146,140,113,140,146,140,113,140,146,140,211,140,20,
+  149,85,149,85,149,52,149,20,141,243,140,243,140,211,140,243,140,243,140,146,
+  132,114,132,48,116,81,124,48,116,48,116,49,116,16,116,16,108,207,107,239,
+  107,207,107,207,107,240,107,240,107,16,116,142,99,175,99,16,116,16,116,48,
+  116,48,116,49,124,48,116,48,116,16,116,48,116,48,116,240,115,207,107,207,
+  107,240,115,175,107,207,115,3,207,107,5,175,107,130,175,99,175,99,5,207,
+  107,133,207,115,240,115,207,107,207,107,208,107,4,207,107,219,240,115,240,115,
+  207,107,207,107,175,107,175,107,207,107,142,99,175,107,174,107,207,107,175,107,
+  142,99,175,107,207,107,16,116,240,115,208,107,48,116,16,116,48,116,16,116,
+  240,115,207,107,207,115,240,115,175,107,208,107,175,99,175,107,207,115,240,115,
+  207,107,175,107,207,107,175,99,240,107,240,115,81,124,179,132,114,124,81,124,
+  49,116,49,116,82,124,114,124,49,116,114,124,81,124,146,124,114,124,114,124,
+  179,132,146,124,146,124,211,132,179,132,211,132,179,124,20,141,244,140,244,140,
+  243,140,20,141,53,141,53,141,86,141,150,149,216,157,25,158,122,166,220,174,
+  252,182,93,199,61,191,123,174,143,107,237,82,9,58,41,58,8,58,171,82,
+  171,82,102,41,200,49,200,49,168,41,200,41,167,41,167,41,168,41,3,167,
+  41,158,168,41,167,41,167,41,168,49,232,49,41,58,103,33,139,74,168,49,
+  233,57,41,66,74,66,107,74,139,74,171,82,171,74,139,74,139,74,175,115,
+  211,156,244,156,212,148,114,132,17,116,241,107,17,108,17,116,50,116,115,124,
+  115,124,3,147,124,152,115,124,115,116,50,108,18,100,242,99,210,91,177,99,
+  150,157,20,149,49,124,184,165,255,223,255,231,245,108,52,149,118,149,179,124,
+  77,91,203,74,207,115,216,173,89,174,248,149,223,231,11,255,255,138,183,141,
+  118,173,215,181,211,140,168,33,168,41,201,41,168,41,71,25,229,16,5,132,
+  8,145,100,0,133,0,136,41,139,74,46,99,204,82,204,82,237,90,13,91,
+  45,99,45,99,110,107,110,107,143,115,208,115,208,115,240,123,4,17,124,142,
+  16,124,240,115,240,115,240,123,240,123,16,124,17,132,49,132,81,132,81,132,
+  49,124,49,124,81,132,81,140,4,114,140,131,146,140,114,140,114,140,3,146,
+  140,134,114,140,114,140,146,140,114,140,114,140,81,132,10,49,132,132,81,132,
+  49,132,106,74,228,24,9,4,33,129,4,25,4,4,33,150,195,24,162,16,
+  195,24,136,90,231,122,195,65,231,106,69,90,231,106,166,98,36,74,69,82,
+  102,90,134,98,135,98,166,98,167,106,167,98,167,98,167,106,167,106,167,98,
+  4,167,106,141,135,98,134,98,134,98,102,90,69,90,69,82,37,82,36,74,
+  4,74,228,73,195,65,195,65,163,65,3,163,57,152,130,57,195,65,162,57,
+  163,65,131,57,162,57,131,57,131,57,162,57,162,57,163,57,163,57,163,65,
+  195,65,196,65,228,73,4,74,37,74,37,82,69,90,102,90,102,90,167,98,
+  167,98,3,199,106,163,199,114,200,106,200,114,200,106,167,106,167,106,134,98,
+  167,98,102,90,70,90,69,82,37,82,4,82,4,74,227,73,195,65,195,65,
+  163,57,162,57,163,57,130,57,163,65,130,65,163,65,163,57,162,57,163,65,
+  163,57,163,65,163,65,162,65,163,65,163,65,162,65,162,65,4,163,65,132,
+  163,57,163,65,131,57,130,57,189,4,146,54,37,86,45,21,53,82,60,142,
+  75,44,91,12,99,44,99,12,91,44,99,12,99,44,99,45,99,44,99,12,
+  91,44,99,44,99,45,99,5,44,99,142,45,99,44,99,45,99,12,91,44,
+  99,44,99,45,99,45,99,44,99,45,99,44,99,45,99,45,99,44,99,4,
+  45,99,134,44,99,44,91,77,99,45,99,44,91,44,99,9,45,99,141,77,
+  99,45,99,77,99,45,99,77,99,45,91,45,99,77,99,44,99,77,99,77,
+  99,45,99,77,99,4,45,99,13,77,99,133,77,91,77,99,77,99,77,91,
+  77,91,3,77,99,134,77,91,77,99,77,99,77,91,77,99,77,99,5,77,
+  91,129,78,91,7,77,91,151,77,99,109,99,109,99,77,99,77,91,77,99,
+  12,91,236,82,236,82,236,90,13,99,77,91,142,99,240,107,50,116,114,124,
+  146,124,147,124,147,124,179,132,179,124,179,132,179,132,3,179,124,6,179,132,
+  129,211,132,4,179,132,134,180,132,179,132,180,132,180,132,212,132,211,132,3,
+  180,132,147,212,132,211,132,211,132,179,132,179,132,179,124,212,132,180,124,180,
+  132,180,132,180,124,180,132,180,132,179,124,180,124,180,124,180,132,180,132,179,
+  132,5,212,132,143,179,132,240,107,236,82,166,41,130,16,4,17,13,67,241,
+  107,115,116,179,124,179,124,179,116,180,124,212,124,244,132,3,212,132,132,244,
+  132,211,132,244,140,183,173,3,202,90,131,138,82,170,82,106,74,3,105,74,
+  145,73,74,41,74,73,74,73,74,41,74,73,74,73,74,40,66,40,66,41,
+  66,41,66,41,74,41,74,40,66,41,74,41,66,40,66,3,8,66,134,8,
+  58,8,58,232,57,232,57,8,58,231,57,5,199,49,167,167,41,167,49,167,
+  49,167,41,134,41,134,41,135,33,135,41,134,33,135,33,135,33,204,74,236,
+  82,114,140,178,148,114,140,146,140,146,148,81,140,81,140,49,132,16,132,16,
+  124,236,90,102,41,106,66,203,90,175,115,48,132,146,148,114,148,113,140,114,
+  148,113,140,113,140,114,140,113,140,114,132,178,140,3,20,149,129,243,140,3,
+  211,140,151,178,132,211,140,146,132,113,124,81,124,48,116,81,124,49,124,16,
+  116,16,116,239,107,239,107,16,116,16,108,175,99,175,107,175,107,207,107,175,
+  107,207,107,175,107,207,107,239,107,3,16,116,132,49,124,16,116,240,115,239,
+  115,3,16,116,129,240,115,3,207,107,145,175,107,239,107,240,107,240,115,207,
+  107,207,107,174,99,175,107,175,107,142,99,142,99,208,107,207,107,207,107,239,
+  115,207,107,175,107,5,207,107,173,175,107,207,107,175,99,207,107,207,107,240,
+  107,174,107,207,107,175,107,142,99,175,107,143,107,142,99,142,99,142,107,175,
+  107,175,107,240,107,207,107,207,107,240,115,240,107,207,107,207,107,240,115,207,
+  107,207,107,175,107,175,107,142,99,240,107,175,99,207,107,175,107,143,99,49,
+  116,175,99,208,107,175,107,16,116,16,108,49,116,113,124,81,124,49,124,3,
+  49,116,160,16,116,49,124,49,124,81,116,114,124,81,124,114,124,114,124,146,
+  124,147,132,114,124,211,132,179,132,211,132,244,140,244,140,211,132,20,141,244,
+  132,244,132,20,133,85,141,85,141,150,149,248,157,90,166,187,174,187,166,252,
+  182,57,158,143,107,236,82,3,9,58,136,203,82,203,82,102,41,200,49,200,
+  49,167,41,200,41,168,41,4,167,41,186,168,41,167,41,167,41,200,41,168,
+  41,232,49,74,66,102,33,106,74,168,41,232,49,9,58,42,66,106,66,139,
+  74,171,74,139,74,139,66,106,66,77,99,178,148,244,156,212,148,114,132,17,
+  116,241,107,241,107,17,116,50,116,82,124,115,124,147,124,147,124,115,124,115,
+  124,115,116,82,108,18,100,241,99,209,91,209,99,150,157,85,149,146,132,217,
+  165,255,223,255,223,246,108,244,148,86,149,146,124,77,91,203,74,142,99,151,
+  165,57,174,216,149,223,223,11,255,255,133,248,141,117,173,215,173,244,148,201,
+  33,3,201,41,132,103,25,229,16,131,8,131,8,3,132,8,145,132,0,101,
+  0,104,33,139,74,13,91,204,82,204,82,236,90,237,90,45,99,46,99,110,
+  107,143,107,143,115,176,115,240,115,240,123,5,17,124,130,16,124,240,123,4,
+  16,124,3,49,132,131,49,124,49,132,81,132,8,114,140,4,146,140,137,114,
+  140,113,140,114,140,113,140,81,132,81,132,49,132,49,132,81,132,5,49,132,
+  134,81,132,81,140,81,140,204,82,228,24,36,33,13,4,33,187,227,24,162,
+  16,162,24,39,74,8,131,195,65,199,98,102,98,134,90,232,114,199,106,199,
+  106,167,106,167,106,167,98,166,98,134,98,134,90,102,90,69,90,69,82,36,
+  74,4,74,4,74,195,65,195,73,195,65,162,65,162,57,227,65,4,74,227,
+  65,195,65,130,57,195,57,195,65,163,57,228,73,195,65,4,74,228,73,4,
+  66,36,82,101,90,101,90,102,90,195,65,36,74,69,82,70,82,102,90,135,
+  98,167,98,167,106,167,106,200,106,167,106,199,106,200,106,4,167,106,152,135,
+  98,134,98,102,90,101,90,69,90,36,82,36,74,4,74,195,73,195,73,195,
+  65,163,65,163,57,163,57,131,57,162,57,163,65,163,57,163,57,130,57,163,
+  57,162,57,163,65,163,57,8,163,65,132,163,57,163,57,130,57,163,57,4,
+  130,57,137,163,57,163,57,163,65,195,65,228,73,4,74,130,65,135,90,74,
+  123,184,4,138,82,12,212,20,53,37,86,37,53,45,82,60,143,75,45,91,
+  12,99,12,99,6,44,99,133,45,99,12,99,44,99,44,99,44,91,4,44,
+  99,130,45,99,45,99,3,44,99,163,45,99,44,99,44,99,45,99,45,99,
+  44,91,44,99,45,91,45,99,44,99,45,99,44,91,44,91,45,99,44,99,
+  77,99,45,91,44,91,45,99,45,99,45,91,45,99,45,99,77,99,45,99,
+  45,91,45,99,44,99,44,91,77,99,45,91,77,99,77,91,45,91,77,99,
+  4,45,99,142,77,99,45,99,45,99,77,99,45,91,77,99,45,99,77,99,
+  77,99,77,91,77,91,77,99,77,99,77,91,8,77,99,139,77,91,77,91,
+  77,99,77,99,77,91,77,99,77,91,77,99,77,99,77,91,77,91,3,77,
+  99,6,77,91,149,77,99,78,99,77,99,77,91,77,99,77,99,109,99,77,
+  91,12,83,236,82,236,82,12,91,45,91,78,99,175,107,17,116,82,116,115,
+  124,147,124,147,124,179,124,8,179,132,129,211,132,3,179,132,131,180,132,180,
+  132,179,132,3,211,132,132,180,132,212,132,180,132,180,132,4,211,132,132,179,
+  132,211,132,180,132,212,132,4,179,132,136,180,132,179,124,180,132,180,132,180,
+  124,180,132,179,124,179,124,3,212,124,130,180,132,180,132,4,212,132,155,50,
+  124,78,99,41,58,227,16,163,8,74,42,176,91,82,116,180,124,180,124,179,
+  116,180,124,212,124,212,124,244,132,244,132,212,132,212,132,244,132,179,132,20,
+  149,85,165,170,82,203,90,171,90,170,82,138,82,3,105,74,3,73,74,129,
+  41,74,3,73,74,133,41,74,40,66,40,66,73,66,41,66,3,40,66,150,
+  41,74,41,66,40,66,8,66,8,66,8,58,8,58,8,66,231,57,232,57,
+  199,57,232,57,232,49,199,49,199,49,167,41,167,49,167,49,167,41,167,49,
+  167,41,134,41,4,135,33,136,134,41,70,25,78,91,172,74,179,140,178,148,
+  114,140,114,140,3,81,140,137,16,132,49,132,240,131,174,115,171,82,9,58,
+  203,82,40,66,109,107,4,113,140,177,114,140,113,140,81,140,81,132,113,140,
+  178,140,211,140,243,148,211,140,210,140,210,140,146,132,146,132,113,124,146,132,
+  113,132,114,132,114,124,49,116,16,116,16,116,240,115,239,107,239,107,174,99,
+  240,107,240,107,175,99,207,99,175,99,207,107,175,99,240,107,207,99,239,107,
+  175,107,240,107,240,115,240,115,48,124,16,116,239,115,240,115,240,115,207,107,
+  239,115,207,107,175,107,240,115,3,207,107,152,175,107,142,99,174,107,142,99,
+  207,107,240,107,208,107,142,99,175,107,175,107,208,107,175,107,175,107,207,107,
+  175,107,207,107,175,107,207,107,175,99,207,107,175,107,175,107,207,107,207,107,
+  4,175,107,132,142,107,110,99,110,99,143,107,3,175,107,131,207,115,142,99,
+  175,107,7,207,107,153,240,115,239,107,175,107,207,107,175,99,207,107,207,107,
+  142,99,175,107,175,99,208,107,175,99,175,107,175,107,207,107,207,107,240,115,
+  49,116,16,116,81,124,49,124,16,116,240,107,49,116,16,116,4,49,116,129,
+  114,132,4,114,124,159,179,132,113,124,114,132,146,124,211,132,179,124,211,132,
+  179,124,20,141,21,141,244,132,53,141,20,133,85,141,215,149,248,157,90,166,
+  187,166,53,133,143,107,45,91,233,57,9,58,8,58,171,74,203,82,102,33,
+  200,49,199,49,200,41,168,41,3,167,41,130,135,41,168,41,4,167,41,182,
+  200,41,200,49,74,66,37,33,106,74,135,41,200,49,9,58,42,66,106,66,
+  139,74,171,74,139,74,139,74,74,66,236,90,114,140,244,156,211,148,114,132,
+  240,107,241,107,241,107,17,116,50,116,83,124,115,124,115,124,147,124,115,124,
+  115,116,115,116,50,108,18,100,241,99,209,91,177,99,118,157,85,149,114,132,
+  152,157,255,223,255,231,86,109,20,141,86,149,146,116,45,91,171,74,45,91,
+  85,149,57,174,216,149,190,223,11,255,255,138,57,158,85,165,215,181,53,157,
+  233,33,201,41,233,41,233,41,136,33,5,17,5,132,8,145,132,0,133,0,
+  71,25,75,74,13,91,204,82,204,82,236,90,13,91,13,91,46,99,78,107,
+  110,107,175,115,175,115,208,115,240,115,6,17,124,139,16,124,16,124,17,124,
+  17,124,16,124,49,124,49,132,81,132,49,132,49,132,82,132,8,114,140,4,
+  146,140,3,114,140,11,81,132,132,81,140,114,140,114,140,45,99,15,4,33,
+  207,228,32,163,24,162,16,198,57,42,139,227,73,166,98,167,106,227,73,36,
+  82,36,82,36,74,4,74,227,73,195,65,195,65,194,57,195,65,227,65,162,
+  57,228,65,36,82,36,74,163,65,4,74,195,65,4,74,227,73,195,65,101,
+  90,101,98,134,98,166,106,68,82,69,82,199,106,166,98,133,98,165,98,166,
+  106,133,90,199,106,8,123,230,114,230,106,8,115,37,90,134,98,199,106,167,
+  98,166,98,134,98,134,98,102,90,69,90,69,82,37,82,4,74,4,74,227,
+  73,195,65,195,65,163,57,163,57,162,57,162,65,162,57,130,57,162,57,163,
+  57,163,57,163,65,162,65,163,65,162,57,162,65,163,57,163,65,163,57,6,
+  163,65,131,162,65,163,65,162,57,6,163,65,146,163,57,196,65,37,82,70,
+  82,134,98,167,98,232,106,42,123,74,131,139,139,204,147,237,163,45,172,111,
+  180,236,179,129,89,9,99,18,189,189,4,144,110,59,208,27,82,12,212,20,
+  21,29,86,37,53,45,114,60,143,75,13,91,12,99,12,99,44,99,12,99,
+  44,99,12,91,5,44,99,129,12,91,4,45,99,130,44,99,45,99,3,44,
+  99,129,45,99,5,44,99,129,44,91,3,45,99,140,44,99,45,99,45,99,
+  44,99,45,99,77,99,44,91,45,99,45,99,45,91,45,99,77,99,4,45,
+  99,136,44,99,77,99,45,91,45,91,77,99,44,91,45,99,45,99,4,77,
+  99,129,45,99,3,77,99,129,77,91,3,77,99,4,77,91,5,77,99,129,
+  77,91,9,77,99,129,77,91,4,77,99,136,77,91,77,91,77,99,77,99,
+  77,91,77,99,77,99,77,91,9,77,99,141,77,91,12,83,236,82,236,82,
+  12,91,45,99,77,99,175,107,17,116,82,116,146,124,147,124,147,124,8,179,
+  132,139,211,132,180,132,179,132,180,132,179,132,211,132,179,132,212,132,180,132,
+  180,132,211,124,3,211,132,3,179,132,132,211,132,180,132,211,132,179,132,5,
+  180,132,141,179,132,179,132,180,132,180,124,180,132,179,124,180,132,180,132,212,
+  124,212,124,180,132,212,132,180,132,4,212,132,158,147,124,175,107,170,74,69,
+  33,130,16,102,25,78,75,50,108,148,124,180,124,180,124,179,124,180,124,212,
+  124,212,132,244,132,212,132,212,132,244,132,244,132,179,132,85,149,243,148,170,
+  82,203,90,170,82,170,82,138,82,105,82,105,82,3,73,74,129,41,74,5,
+  73,74,141,41,74,40,66,73,66,41,66,40,66,40,66,41,74,40,66,73,
+  74,8,66,8,66,8,58,8,58,6,232,57,129,200,57,3,199,49,135,167,
+  41,167,49,167,49,167,41,134,41,134,41,135,41,3,135,33,165,134,33,102,
+  33,46,83,78,91,114,140,146,148,114,140,146,140,114,140,114,140,81,140,49,
+  132,16,132,49,132,175,115,110,107,143,115,236,90,232,57,170,74,142,107,240,
+  123,48,132,81,132,113,140,81,140,81,132,49,132,81,132,114,132,178,140,146,
+  140,178,140,146,132,146,132,113,132,113,132,6,81,124,189,240,115,16,116,16,
+  116,240,115,16,108,207,107,207,99,207,107,207,107,175,99,207,107,16,108,175,
+  99,174,99,208,107,16,116,207,107,239,115,240,115,240,115,16,116,16,116,240,
+  115,239,107,207,107,240,115,175,107,240,115,207,107,142,99,175,107,174,107,175,
+  99,175,107,174,99,174,107,175,107,207,107,175,107,208,107,175,107,207,115,207,
+  107,175,107,175,107,143,99,207,107,175,107,142,99,142,107,207,107,175,107,240,
+  107,142,99,207,107,207,107,175,107,207,107,142,99,175,107,175,107,3,142,107,
+  171,175,107,207,107,110,99,175,107,175,107,142,99,175,99,175,107,207,107,207,
+  107,175,107,175,107,174,99,207,107,175,107,143,107,207,115,175,107,110,99,143,
+  99,175,107,143,99,175,107,175,99,175,99,143,99,175,99,240,107,143,99,240,
+  115,175,107,16,116,16,116,48,116,16,116,16,116,240,115,49,124,17,116,240,
+  115,48,116,16,116,16,116,4,49,116,131,81,116,81,124,49,116,3,146,124,
+  137,179,132,147,124,244,132,179,124,211,132,244,140,53,141,53,141,86,149,3,
+  150,149,177,57,158,115,116,17,124,49,124,232,49,8,58,8,50,171,74,203,
+  82,69,33,199,49,200,49,168,41,167,41,168,41,168,41,167,41,135,41,167,
+  41,167,41,168,41,167,41,167,41,168,41,200,49,41,58,70,33,106,74,103,
+  33,200,49,9,58,41,58,106,66,139,74,171,74,139,74,139,74,107,66,171,
+  82,49,132,244,156,212,148,114,132,241,107,240,107,241,107,18,108,50,116,82,
+  124,4,115,124,152,147,124,115,116,83,108,18,100,18,100,241,91,209,99,118,
+  157,118,157,179,140,87,157,255,231,255,231,152,117,211,140,86,149,114,116,236,
+  82,73,66,138,66,20,141,25,166,184,149,190,223,11,255,255,140,154,174,52,
+  165,215,181,85,157,42,50,201,41,234,49,233,49,136,33,6,25,132,8,131,
+  8,3,132,8,139,100,8,100,0,39,25,74,66,13,99,204,82,204,82,236,
+  90,237,90,45,99,110,107,3,175,107,149,175,115,208,115,240,123,17,124,17,
+  124,17,132,17,124,17,124,16,124,17,124,49,132,49,132,17,124,49,132,49,
+  132,81,132,81,132,49,132,81,132,114,132,114,132,7,114,140,3,146,140,131,
+  114,140,114,140,81,140,5,81,132,129,81,140,3,81,132,136,113,132,82,140,
+  81,140,81,140,81,132,114,140,142,107,37,33,15,4,33,135,195,24,162,16,
+  133,41,41,123,4,82,102,90,232,106,3,195,65,180,69,82,199,106,36,82,
+  36,74,228,73,68,82,69,82,199,106,36,82,69,82,166,98,199,106,69,82,
+  166,98,199,106,199,106,166,106,195,65,166,98,69,90,134,98,231,114,133,90,
+  198,98,41,123,40,123,101,90,133,98,165,106,36,82,166,98,231,106,133,98,
+  68,82,166,98,36,82,227,65,195,65,195,65,163,65,163,57,162,57,162,57,
+  162,65,163,57,130,57,130,57,162,65,162,65,162,57,163,57,163,65,3,162,
+  65,133,162,57,163,57,163,65,163,57,162,57,3,163,65,140,163,57,162,57,
+  162,57,163,65,163,57,163,57,163,65,163,65,163,57,163,57,163,65,163,57,
+  7,163,65,147,195,65,162,57,228,65,79,148,176,188,208,188,241,196,240,204,
+  208,196,49,205,208,196,144,188,17,205,142,188,111,172,240,204,2,114,69,74,
+  241,172,179,4,143,12,91,45,75,110,51,208,27,82,12,180,20,21,29,86,
+  37,53,45,114,60,143,75,45,91,12,99,44,99,12,91,3,44,99,129,44,
+  91,3,44,99,131,45,99,45,99,12,99,8,44,99,129,45,99,3,44,99,
+  130,45,99,45,99,3,45,91,132,45,99,45,99,45,91,44,91,4,45,99,
+  141,44,91,45,99,77,99,45,99,45,91,45,99,77,99,45,91,45,99,45,
+  99,45,91,45,99,45,99,3,77,99,129,77,91,3,77,99,132,45,99,77,
+  99,77,99,45,91,8,77,99,129,77,91,8,77,99,134,77,91,77,99,77,
+  99,77,91,77,91,77,99,3,77,91,5,77,99,155,77,91,77,91,77,99,
+  77,91,77,91,77,99,77,91,77,91,77,99,77,99,77,91,77,99,77,99,
+  45,91,12,83,203,82,236,90,12,91,45,91,110,99,208,107,49,116,114,124,
+  146,124,146,124,147,124,147,124,8,179,132,131,180,132,179,132,179,132,5,180,
+  132,139,211,132,179,132,212,132,211,132,179,132,180,132,211,132,179,132,179,132,
+  212,132,211,132,3,179,132,131,180,132,212,132,211,132,3,179,132,131,180,132,
+  180,124,180,124,3,180,132,131,180,124,180,132,180,132,4,212,132,144,179,132,
+  240,115,13,83,167,41,162,16,227,16,204,58,209,99,115,116,212,124,180,124,
+  179,124,179,124,212,124,212,124,212,132,4,244,132,132,212,132,211,140,85,157,
+  113,140,3,170,90,133,170,82,137,82,138,82,105,74,105,74,7,73,74,133,
+  41,74,73,74,40,66,40,66,41,66,4,40,66,129,41,66,3,8,66,140,
+  8,58,8,58,231,57,232,57,232,57,232,49,231,57,199,49,199,49,199,41,
+  167,41,167,49,3,167,41,131,134,41,135,41,134,33,3,135,33,153,102,33,
+  237,82,240,107,175,107,146,140,178,148,146,140,146,148,146,148,81,140,113,140,
+  81,140,49,132,81,132,16,124,240,123,16,132,81,140,110,107,236,90,12,99,
+  142,107,207,123,16,132,81,132,3,49,132,136,81,132,113,132,146,140,146,140,
+  113,132,146,132,146,140,114,132,3,81,124,130,48,124,16,124,5,16,116,3,
+  207,107,155,16,116,207,107,239,107,207,107,16,116,207,107,240,107,175,107,239,
+  107,240,107,207,107,207,107,240,115,16,116,240,107,240,107,207,107,239,115,239,
+  107,175,107,207,107,240,115,207,107,175,107,142,99,110,99,142,99,3,175,107,
+  141,142,99,175,107,142,99,142,99,175,107,207,107,240,115,175,107,175,99,175,
+  107,175,99,175,99,207,107,4,175,107,132,142,99,207,107,175,107,207,107,3,
+  175,99,231,207,107,207,107,175,107,175,107,207,107,143,99,110,91,207,107,142,
+  99,143,99,175,107,142,99,143,107,207,107,207,107,175,107,142,99,207,107,175,
+  107,175,99,175,99,175,107,208,107,142,99,142,99,208,107,175,99,143,99,110,
+  91,175,99,176,99,208,99,240,107,17,116,16,116,240,107,208,107,240,107,208,
+  107,17,116,240,115,49,116,49,116,240,107,16,108,49,124,17,116,240,107,17,
+  116,16,116,17,116,16,116,49,116,82,124,81,124,49,116,114,124,114,124,146,
+  124,179,132,147,124,179,132,211,132,20,141,244,132,53,141,85,141,118,149,118,
+  149,183,149,49,108,114,132,109,99,9,58,8,58,9,50,232,49,102,41,135,
+  41,199,49,200,41,167,41,168,41,167,41,167,41,135,33,135,33,167,41,168,
+  41,167,41,167,41,168,41,168,41,200,49,9,58,69,33,74,66,103,33,200,
+  49,233,57,9,58,74,66,139,66,3,139,74,141,107,66,139,74,239,123,244,
+  156,212,148,114,132,17,108,208,107,241,107,17,116,50,116,82,124,115,124,3,
+  147,124,152,115,116,115,116,82,108,18,100,17,100,241,91,177,99,85,149,85,
+  149,114,132,54,149,255,231,255,239,26,142,146,132,53,141,82,108,138,66,102,
+  33,199,41,179,132,216,165,184,149,158,215,11,255,255,133,187,182,52,165,183,
+  181,118,165,75,50,3,201,41,132,136,33,6,17,131,8,99,8,3,132,8,
+  152,100,0,100,0,6,25,42,66,237,90,205,82,204,82,204,90,13,91,175,
+  115,49,132,82,132,50,132,240,115,175,115,208,115,240,115,240,123,17,124,17,
+  124,16,124,17,124,49,124,49,124,5,49,132,5,81,132,9,114,140,133,146,
+  140,146,140,114,140,114,140,81,140,4,81,132,129,81,140,4,81,132,130,81,
+  140,113,132,3,81,140,131,114,140,175,115,102,33,5,4,33,129,36,33,9,
+  4,33,182,195,24,130,16,36,33,10,123,101,98,36,74,8,115,195,65,36,
+  74,37,82,69,82,8,115,134,98,232,114,231,114,199,106,231,114,7,115,68,
+  90,101,82,166,98,8,115,198,106,8,115,40,131,231,114,232,114,227,73,68,
+  82,102,98,101,98,101,90,4,74,69,82,166,98,101,90,227,73,227,65,4,
+  74,195,65,227,65,4,66,195,65,163,57,228,65,163,65,162,57,163,65,163,
+  57,163,57,131,57,163,57,163,65,163,65,3,131,57,137,130,57,130,57,162,
+  57,163,57,163,65,196,65,228,65,228,65,163,65,3,163,57,139,196,65,195,
+  65,130,57,163,57,163,57,228,65,163,65,163,57,163,65,163,65,163,57,10,
+  163,65,149,163,57,195,57,163,65,163,57,196,57,79,140,82,205,49,205,49,
+  205,49,213,106,155,50,181,139,155,237,155,172,147,107,123,172,155,175,164,165,
+  146,162,65,46,140,190,4,148,44,99,12,91,12,91,45,83,78,59,176,35,
+  50,12,180,12,20,29,86,37,53,45,147,60,143,75,45,91,12,99,44,99,
+  12,99,44,99,45,99,45,99,7,44,99,139,45,99,44,91,44,99,45,99,
+  44,99,44,99,45,99,44,99,45,99,45,99,45,91,3,45,99,129,45,91,
+  3,45,99,129,44,91,3,45,99,129,45,91,5,45,99,130,77,99,44,91,
+  4,45,99,139,77,99,44,99,45,99,45,91,77,91,45,91,45,99,77,99,
+  45,99,77,99,45,99,3,77,99,129,45,99,6,77,99,132,77,91,77,99,
+  77,99,77,91,5,77,99,130,78,99,77,91,6,77,99,133,77,91,77,91,
+  77,99,77,99,109,99,3,77,99,131,77,91,77,99,77,91,5,77,99,141,
+  109,99,109,99,77,99,45,91,236,82,236,82,236,90,12,91,77,99,110,99,
+  240,107,81,116,114,124,3,147,124,8,179,132,3,180,132,154,179,132,179,132,
+  212,132,180,132,212,132,211,132,212,132,211,132,211,132,212,132,212,132,211,132,
+  180,132,211,132,179,132,211,132,179,132,212,132,179,132,179,132,180,132,180,132,
+  212,132,179,132,180,132,180,124,3,180,132,135,179,132,180,132,180,132,180,124,
+  212,132,212,132,180,132,3,212,132,144,49,116,109,91,41,58,227,24,130,8,
+  9,42,143,83,82,116,180,132,180,124,179,124,179,124,180,124,212,124,212,132,
+  212,132,4,244,132,139,179,132,178,132,150,165,239,123,170,82,170,90,138,82,
+  170,82,137,82,137,82,105,82,5,73,74,137,41,74,73,74,40,74,73,74,
+  73,74,41,66,40,66,40,66,41,74,3,40,66,131,41,66,8,66,8,66,
+  3,232,57,132,231,57,232,57,231,57,231,57,5,199,49,129,167,49,3,167,
+  41,130,134,41,135,33,3,134,33,170,135,33,38,25,244,148,45,91,207,107,
+  146,148,146,140,146,148,179,148,146,148,113,140,114,140,113,140,114,140,113,140,
+  240,123,16,124,81,132,49,140,16,132,207,115,109,107,142,107,142,115,207,123,
+  16,132,16,124,48,132,16,132,49,132,81,132,114,132,146,132,178,140,146,132,
+  81,132,113,132,81,124,48,124,146,132,16,116,48,124,3,16,116,129,240,115,
+  6,207,107,132,239,107,16,116,16,116,239,115,4,207,107,133,240,107,239,107,
+  240,107,207,107,239,107,3,16,116,131,240,115,207,107,175,107,3,207,107,134,
+  142,99,175,107,142,99,142,99,207,107,175,107,3,142,99,141,143,107,142,99,
+  175,107,143,99,175,107,240,107,175,107,175,107,142,107,175,107,240,107,175,99,
+  143,107,3,142,99,142,175,107,175,107,175,99,175,107,142,99,208,107,142,99,
+  143,107,208,107,142,99,143,99,143,99,142,99,143,99,3,142,99,168,143,99,
+  142,99,142,99,175,107,142,99,175,107,240,107,207,107,175,107,175,107,207,107,
+  207,107,143,107,142,99,143,99,78,91,110,99,175,99,143,91,110,91,175,99,
+  142,99,16,116,16,108,240,107,207,107,240,115,240,115,207,107,207,107,240,107,
+  240,107,17,108,240,107,208,107,208,107,16,116,207,107,208,107,16,116,4,49,
+  116,146,81,116,81,116,146,124,146,124,114,124,211,132,211,132,179,132,179,124,
+  244,132,244,132,20,141,53,149,85,141,82,116,143,107,207,115,233,57,3,9,
+  58,133,5,25,199,49,200,49,200,49,168,41,5,167,41,129,135,41,3,167,
+  41,140,135,41,167,41,168,41,9,50,70,33,74,66,103,33,200,49,232,49,
+  9,58,74,66,106,66,3,139,74,168,106,66,106,66,175,107,211,156,211,148,
+  82,132,241,107,209,107,241,115,17,116,50,116,82,124,115,124,147,124,147,124,
+  115,116,147,116,115,116,82,108,18,100,241,99,241,91,177,91,85,149,86,157,
+  211,140,54,157,255,223,255,239,26,142,146,124,53,141,82,116,73,58,4,25,
+  36,33,81,124,183,157,151,149,93,199,11,255,255,164,251,182,20,157,183,181,
+  150,165,139,58,136,33,168,41,168,41,103,33,229,16,132,8,131,8,131,8,
+  132,8,100,8,100,0,133,0,230,24,10,58,205,90,205,82,204,82,236,90,
+  78,99,240,123,179,148,244,156,179,148,50,132,208,115,208,115,240,115,240,123,
+  17,124,17,124,49,132,3,17,124,130,49,124,49,124,4,49,132,3,81,132,
+  132,114,140,82,132,114,132,114,132,6,114,140,129,146,140,4,114,140,130,81,
+  132,82,132,3,81,132,130,81,140,113,132,3,81,132,138,113,132,81,132,82,
+  140,81,140,114,140,240,123,167,41,4,25,4,33,36,33,12,4,33,159,195,
+  24,162,16,227,32,234,106,167,106,4,74,8,115,36,74,199,106,167,106,4,
+  74,101,90,68,82,7,115,231,114,166,98,199,114,101,90,4,82,227,73,101,
+  90,166,106,101,90,69,82,133,98,36,82,69,82,195,65,195,65,4,74,227,
+  73,4,195,65,133,162,65,162,57,163,57,163,57,162,65,4,163,57,163,131,
+  57,162,57,163,65,163,65,163,57,195,57,195,65,228,73,163,65,163,65,69,
+  82,166,98,199,98,232,114,40,123,72,123,105,139,138,139,169,147,11,156,137,
+  147,227,81,163,57,163,57,130,57,167,90,199,106,36,82,134,98,101,90,199,
+  106,101,98,162,65,163,65,195,57,5,163,65,130,163,57,162,57,6,163,65,
+  147,162,57,162,65,163,57,108,107,82,197,49,205,50,205,82,213,74,171,176,
+  164,204,171,14,156,139,139,172,147,204,155,144,156,137,171,97,73,238,123,171,
+  4,129,12,99,3,44,99,143,44,91,45,83,78,59,176,35,50,12,179,12,
+  21,29,86,37,53,45,146,52,143,75,45,91,12,99,44,99,12,91,3,45,
+  99,131,44,99,45,99,45,99,3,44,99,141,45,99,45,99,44,99,45,99,
+  44,99,44,91,44,99,44,91,45,99,45,99,45,91,44,99,44,99,4,45,
+  99,151,45,91,45,99,44,99,45,99,45,99,45,91,45,99,77,99,45,99,
+  77,99,45,99,45,99,77,99,45,91,45,99,45,91,77,99,45,91,77,99,
+  45,99,77,99,45,99,45,99,5,77,99,132,77,91,45,91,77,99,45,91,
+  10,77,99,129,77,91,6,77,99,129,77,91,3,77,99,129,77,91,4,77,
+  99,134,77,91,77,99,77,91,77,99,77,99,77,91,5,77,99,142,77,91,
+  77,99,77,91,77,91,12,83,236,82,236,82,12,91,13,91,77,99,143,107,
+  241,107,82,116,114,124,3,147,124,7,179,132,144,180,132,179,132,179,132,180,
+  132,211,132,179,132,180,132,180,132,211,132,179,132,212,132,179,132,212,132,179,
+  132,211,132,180,132,6,211,132,129,179,132,3,180,124,158,180,132,212,132,180,
+  132,180,124,180,132,179,132,180,132,180,132,179,132,180,132,180,124,180,132,212,
+  132,180,132,211,124,212,132,114,124,175,99,170,74,36,25,130,16,70,25,46,
+  75,17,108,147,124,212,132,180,124,179,124,180,124,212,124,3,212,132,4,244,
+  132,140,244,140,243,140,182,173,77,107,171,90,203,90,170,82,138,82,137,74,
+  105,82,105,74,105,74,7,73,74,130,41,74,41,74,4,40,66,132,73,74,
+  73,74,41,66,40,66,3,8,58,130,232,57,232,57,4,231,57,134,231,49,
+  199,49,199,41,167,41,167,49,167,49,3,167,41,160,135,41,134,33,102,33,
+  134,41,134,33,134,33,70,25,240,107,236,74,16,116,211,148,179,148,146,148,
+  114,140,178,148,146,140,81,140,114,140,146,140,16,132,175,115,240,123,113,140,
+  48,132,48,132,49,132,16,132,207,123,239,123,207,123,16,124,240,123,3,16,
+  124,156,81,132,81,132,113,132,81,132,81,124,48,124,48,124,49,124,81,124,
+  81,124,49,124,48,116,16,116,16,116,240,115,207,107,240,115,207,107,207,107,
+  174,99,175,107,175,107,207,107,240,115,175,107,16,116,240,115,240,107,3,207,
+  107,133,240,107,48,116,239,107,239,107,240,115,3,240,107,4,207,107,156,142,
+  99,142,99,175,107,142,99,175,107,207,107,207,107,142,99,110,99,142,99,175,
+  107,142,99,175,107,142,99,110,99,175,107,207,107,175,107,142,99,175,107,240,
+  107,175,107,175,107,142,99,142,99,175,107,175,107,142,99,3,175,99,176,207,
+  107,142,99,143,99,175,107,110,99,81,124,240,107,142,99,142,99,110,99,142,
+  99,175,107,142,99,175,99,142,99,175,107,142,99,142,99,175,107,207,107,143,
+  99,207,107,175,107,207,107,110,99,143,99,175,99,208,107,110,91,110,91,78,
+  91,143,99,110,99,143,99,208,107,240,107,240,107,207,107,240,115,208,107,240,
+  115,175,107,175,99,207,107,49,116,16,116,240,107,49,116,4,240,107,3,49,
+  116,154,82,116,17,116,49,116,114,116,114,124,114,124,146,124,179,132,179,132,
+  146,124,146,124,244,132,212,132,53,141,20,141,81,116,13,91,243,148,232,49,
+  41,58,8,50,9,58,37,25,69,33,199,49,200,49,4,167,41,130,135,41,
+  135,41,5,167,41,154,135,41,168,41,232,49,232,49,171,74,71,33,200,49,
+  233,49,9,58,42,66,74,66,139,74,139,74,107,74,107,66,74,66,45,99,
+  178,148,211,148,114,132,241,115,209,107,241,107,17,116,50,116,82,124,4,115,
+  124,152,115,116,115,116,82,108,18,100,241,91,241,91,177,99,53,149,118,157,
+  211,140,54,149,255,223,255,239,90,150,114,124,21,141,50,116,41,58,4,25,
+  4,17,239,115,119,157,118,149,60,199,11,255,255,138,60,191,243,148,215,181,
+  182,173,172,66,168,33,201,41,168,33,103,33,6,25,5,132,8,146,100,0,
+  100,0,197,16,9,58,204,90,237,90,172,82,204,82,45,99,16,124,179,148,
+  21,165,180,148,82,132,208,115,208,115,240,123,16,124,4,17,124,131,49,124,
+  17,124,49,124,5,49,132,4,81,132,11,114,140,129,113,140,17,81,132,131,
+  16,124,9,50,228,24,3,4,33,129,36,33,10,4,33,150,227,24,162,24,
+  195,24,168,90,232,114,195,65,8,115,69,90,8,115,166,98,195,65,4,74,
+  227,73,36,74,36,82,227,73,36,82,227,65,195,65,163,65,227,65,227,65,
+  3,195,65,140,163,65,162,65,195,65,163,57,163,65,163,65,195,57,163,57,
+  163,65,163,65,163,57,162,65,3,163,57,199,196,65,228,65,4,74,37,74,
+  70,82,135,98,4,82,195,65,106,123,204,147,236,155,13,164,134,106,129,57,
+  73,115,108,180,107,172,107,180,107,180,138,180,171,180,171,180,138,180,171,180,
+  106,188,36,98,163,65,163,57,163,57,167,98,73,131,166,106,138,139,8,123,
+  198,106,166,106,195,73,163,65,162,57,163,57,163,65,195,65,195,65,163,65,
+  36,74,228,73,37,82,4,82,195,65,227,73,195,65,36,82,101,90,162,73,
+  130,57,169,90,50,181,49,205,49,205,50,205,175,196,175,180,17,205,143,188,
+  241,188,17,205,208,196,82,205,109,196,161,105,74,107,195,4,154,77,83,12,
+  99,12,99,44,99,44,91,45,99,44,91,44,83,78,59,176,35,82,20,180,
+  12,21,29,86,29,53,45,114,60,143,75,45,91,44,99,12,99,44,99,44,
+  99,45,99,44,91,44,91,45,99,3,44,99,141,45,99,45,99,44,99,44,
+  99,45,99,45,99,44,99,45,99,44,91,45,91,45,99,44,99,44,99,3,
+  45,99,130,44,91,44,99,3,45,99,140,44,99,44,99,44,91,44,99,45,
+  99,45,99,44,91,77,99,44,99,77,99,45,91,45,91,3,77,99,129,45,
+  99,3,77,99,137,45,91,77,99,45,99,77,99,77,99,77,91,77,99,77,
+  99,77,91,9,77,99,130,77,91,77,91,3,77,99,141,109,99,77,91,77,
+  99,77,99,77,91,109,99,77,91,77,91,77,99,77,91,77,99,77,91,77,
+  91,3,77,99,129,77,91,5,77,99,145,109,99,77,99,77,99,77,91,12,
+  83,236,82,236,82,12,91,13,91,78,99,175,107,17,116,82,116,114,124,146,
+  124,147,132,147,124,6,179,132,137,179,124,180,132,179,132,211,132,211,132,179,
+  132,179,132,212,132,180,132,3,211,132,129,212,132,7,211,132,129,179,132,5,
+  180,132,132,180,124,180,132,179,124,179,132,8,180,132,143,212,132,179,132,212,
+  132,212,132,179,132,208,107,12,83,166,41,163,16,228,16,204,58,209,99,115,
+  116,212,132,180,132,3,180,124,131,212,124,212,124,212,132,5,244,132,142,212,
+  140,243,140,182,173,235,98,203,90,170,90,170,82,170,82,137,82,105,82,105,
+  74,73,74,105,74,105,74,5,73,74,134,41,74,40,66,41,74,40,66,40,
+  66,73,74,5,40,66,141,8,58,232,57,232,57,231,57,231,57,232,57,231,
+  57,199,57,231,57,200,49,199,49,167,49,167,49,3,167,41,129,135,41,3,
+  134,33,141,102,33,134,41,102,33,168,33,17,116,74,58,49,124,179,148,179,
+  148,210,148,146,140,146,148,178,148,3,114,140,135,81,140,16,124,207,123,48,
+  132,49,140,81,132,113,140,3,81,140,130,48,132,48,132,5,16,124,133,81,
+  124,81,132,49,124,81,124,48,124,3,16,116,136,81,124,48,116,16,116,16,
+  116,240,115,240,115,207,107,239,107,3,207,107,136,175,107,175,107,207,107,240,
+  115,207,107,207,107,16,116,240,115,4,207,107,131,239,107,207,107,240,115,3,
+  207,107,170,207,115,240,115,207,107,240,115,175,107,175,107,175,99,142,99,174,
+  107,175,107,175,107,142,99,142,99,110,99,175,99,175,107,175,99,175,107,175,
+  99,142,99,175,99,207,107,175,107,142,99,174,99,143,99,207,107,175,107,175,
+  99,175,107,207,107,175,107,175,99,208,107,175,99,143,99,175,107,142,99,143,
+  99,142,99,175,99,240,115,4,175,107,178,175,99,175,107,143,99,175,99,175,
+  99,175,107,143,99,143,99,175,107,142,99,143,99,175,107,207,107,175,107,142,
+  99,143,99,142,99,143,99,143,99,45,91,110,91,175,99,78,91,175,99,142,
+  91,208,107,175,107,207,107,175,107,16,116,208,107,240,107,175,99,143,99,207,
+  107,207,107,240,107,17,116,208,107,17,108,240,107,17,116,240,107,49,116,240,
+  107,49,116,240,107,208,107,81,116,82,116,3,114,124,139,146,124,146,124,179,
+  132,179,132,211,132,244,132,244,132,114,116,176,107,114,132,232,49,3,9,58,
+  133,167,41,228,16,232,49,167,41,199,41,3,167,41,147,135,41,167,41,167,
+  41,135,41,167,41,167,41,135,41,135,41,167,41,168,41,110,99,171,66,102,
+  33,200,49,232,49,9,58,42,58,74,66,139,74,3,107,66,167,74,66,204,
+  82,113,140,211,148,114,132,240,107,241,107,241,107,17,116,50,116,83,116,115,
+  124,115,116,147,124,115,124,115,124,115,116,82,108,50,100,241,91,241,91,176,
+  99,53,149,150,157,179,132,245,148,255,223,255,239,220,166,49,116,21,141,50,
+  116,41,58,4,25,163,16,174,107,118,149,118,149,219,182,11,255,255,162,60,
+  191,210,148,182,181,183,173,13,83,201,41,233,41,201,41,104,33,38,25,164,
+  16,131,8,131,8,132,8,132,8,100,0,100,0,197,8,201,49,172,82,204,
+  90,204,82,204,90,13,91,175,115,49,132,146,148,114,140,17,124,176,115,208,
+  115,240,123,240,123,241,123,3,17,124,130,49,124,16,124,7,49,132,134,81,
+  132,81,132,82,132,114,140,114,140,114,132,8,114,140,129,114,132,9,81,132,
+  130,81,140,113,140,6,81,132,131,49,132,74,66,228,24,10,4,33,129,36,
+  33,3,4,33,138,227,24,163,24,163,24,71,74,40,131,195,65,232,106,101,
+  90,199,106,134,98,3,195,65,131,163,65,195,65,194,65,8,195,65,215,163,
+  65,163,65,195,65,195,65,163,65,195,57,195,65,162,57,195,65,195,65,163,
+  65,228,65,9,107,74,123,139,131,172,139,204,147,13,156,46,164,78,172,78,
+  180,176,188,106,147,129,57,78,148,208,196,110,172,17,197,106,147,98,57,73,
+  107,172,180,137,180,137,172,39,164,72,164,105,172,7,156,137,172,169,180,138,
+  180,165,114,163,57,163,65,163,65,4,74,232,106,36,90,101,90,36,74,3,
+  74,226,73,227,73,195,65,4,74,36,74,101,90,133,98,199,106,3,82,165,
+  98,231,114,199,106,198,106,68,90,40,115,198,114,231,114,39,123,3,90,162,
+  65,38,74,241,164,81,205,82,213,82,213,50,213,82,213,82,213,49,205,49,
+  205,17,205,16,197,240,196,142,196,3,106,37,74,175,4,149,147,44,175,67,
+  45,91,12,99,12,99,44,99,44,99,44,91,44,99,45,83,78,59,176,27,
+  50,20,180,12,21,21,86,37,53,45,114,60,142,75,45,91,12,99,4,44,
+  99,3,45,99,138,44,99,45,99,45,99,44,99,45,99,44,99,45,99,45,
+  99,12,99,44,99,7,45,99,131,44,91,45,99,44,99,4,45,99,129,77,
+  99,3,45,99,143,44,91,77,99,45,99,77,91,77,99,45,91,77,99,45,
+  99,45,99,77,99,77,99,45,99,77,99,45,91,45,91,4,77,99,130,77,
+  91,45,91,11,77,99,129,77,91,5,77,99,130,77,91,77,91,5,77,99,
+  129,77,91,3,77,99,130,77,91,77,91,5,77,99,129,78,99,4,77,99,
+  129,45,91,3,236,82,138,12,91,45,91,110,99,207,107,17,116,82,124,146,
+  124,147,124,147,132,147,124,8,179,132,184,180,132,179,132,180,132,180,132,211,
+  132,212,132,212,132,211,132,212,132,211,132,179,132,211,132,180,132,212,132,211,
+  132,179,132,179,132,180,132,211,132,180,132,180,132,179,132,179,132,180,132,180,
+  132,211,132,180,132,179,132,179,132,180,132,179,132,180,132,180,132,211,132,179,
+  132,212,132,211,132,180,132,212,132,180,132,17,116,77,91,8,58,195,24,162,
+  16,42,42,144,91,82,116,180,132,212,132,212,124,179,124,180,124,212,124,212,
+  124,212,132,6,244,132,134,179,132,20,149,117,165,202,90,203,90,170,90,3,
+  138,82,132,105,82,73,74,105,74,105,74,7,73,74,3,40,66,131,41,66,
+  40,66,41,74,3,40,66,133,8,66,8,58,232,57,232,57,231,57,3,232,
+  57,129,231,57,3,199,49,5,167,41,130,166,41,135,33,3,134,33,180,135,
+  41,102,33,232,41,114,124,78,91,114,132,179,148,178,148,179,148,146,140,178,
+  148,179,148,114,140,146,140,146,148,114,140,49,132,207,123,16,132,81,140,146,
+  140,113,140,81,140,81,140,81,132,81,140,81,140,17,132,48,132,16,132,48,
+  124,49,132,49,124,81,132,81,124,81,124,16,116,48,124,48,124,207,107,16,
+  116,48,124,16,116,239,115,240,115,175,107,240,115,207,107,175,107,207,107,207,
+  107,175,99,3,175,107,165,240,115,175,107,175,99,239,107,207,107,240,107,240,
+  107,175,99,142,99,207,107,175,107,175,107,175,99,240,115,239,107,240,107,239,
+  107,207,107,239,107,175,107,142,99,110,99,142,99,175,99,142,99,174,99,175,
+  107,175,107,208,107,142,99,175,99,143,99,143,99,175,107,110,99,143,99,175,
+  107,3,142,99,159,207,107,175,107,175,99,175,107,174,107,207,107,207,107,175,
+  99,175,107,143,99,175,99,143,99,175,99,207,99,143,99,175,107,175,99,175,
+  99,175,107,175,107,143,99,175,99,143,99,175,99,143,99,110,99,142,99,143,
+  99,142,99,142,99,143,99,3,175,107,138,207,107,110,91,142,91,78,91,208,
+  107,110,99,142,99,143,99,175,99,143,99,3,175,99,130,207,107,240,107,4,
+  175,107,166,207,107,239,107,175,99,240,107,175,99,17,116,17,116,49,116,49,
+  116,207,107,240,107,16,108,240,107,17,108,82,116,49,116,16,116,16,108,82,
+  124,49,116,211,132,114,124,211,132,179,132,146,124,179,132,211,132,240,107,82,
+  124,146,132,9,58,9,58,9,50,9,58,200,49,37,25,167,41,200,49,4,
+  167,41,131,135,41,135,41,167,41,6,135,41,180,167,41,8,50,135,33,135,
+  41,200,49,233,49,9,58,42,58,74,66,107,74,139,74,107,66,107,66,74,
+  66,171,74,17,132,211,148,114,132,240,107,209,107,17,108,17,116,50,116,82,
+  116,115,124,115,124,147,124,147,124,115,124,115,116,82,108,50,100,17,100,241,
+  91,177,99,53,149,150,157,146,132,212,140,255,223,255,239,29,175,16,108,244,
+  140,82,116,40,58,4,25,162,8,109,99,85,149,86,141,248,157,5,255,255,
+  5,255,247,143,255,239,57,166,211,148,182,181,183,181,78,91,10,50,10,50,
+  233,49,168,33,38,25,164,16,131,8,131,8,132,8,3,100,8,153,165,8,
+  201,49,171,82,237,90,204,82,236,90,237,90,45,99,143,115,240,123,208,115,
+  175,115,175,115,208,115,240,123,240,123,17,124,16,124,16,124,49,124,49,124,
+  49,132,49,132,49,124,49,124,4,49,132,131,81,132,81,132,82,132,11,114,
+  140,129,82,132,17,81,132,133,49,132,171,74,228,24,4,33,36,33,12,4,
+  33,138,228,32,163,24,162,16,230,65,41,131,227,73,167,98,167,106,167,98,
+  199,106,8,195,65,221,4,74,227,65,194,65,194,65,162,65,227,65,228,73,
+  195,65,4,74,4,74,68,82,4,74,36,74,68,82,68,82,36,82,163,57,
+  228,65,46,156,17,205,17,197,17,205,17,205,176,188,143,188,176,188,111,172,
+  175,180,45,180,161,57,171,123,176,188,110,172,176,180,204,155,130,65,167,82,
+  172,172,137,180,137,180,231,155,199,147,166,147,102,131,40,156,169,180,169,180,
+  38,139,162,65,195,65,162,57,227,65,73,123,231,114,165,98,232,114,166,106,
+  133,98,198,106,166,98,7,115,7,115,138,139,198,114,165,98,100,90,68,90,
+  101,90,133,90,198,106,36,82,40,115,133,98,133,98,101,98,3,82,131,65,
+  228,65,46,140,143,172,78,172,45,164,236,155,203,147,138,139,105,131,73,123,
+  9,115,231,106,200,106,232,106,3,90,195,65,228,4,156,244,28,244,36,82,
+  52,174,75,45,91,12,99,44,99,12,99,45,99,13,99,45,91,45,83,78,
+  59,176,27,82,12,180,12,21,21,86,37,21,45,82,60,110,83,12,91,12,
+  99,44,99,44,99,45,99,44,99,45,99,3,44,99,4,45,99,3,44,99,
+  140,44,91,44,99,44,99,45,99,45,99,44,91,45,99,44,99,44,99,45,
+  99,77,99,45,91,4,45,99,140,45,91,45,99,45,99,44,99,45,99,45,
+  91,45,91,77,99,77,99,45,99,77,99,45,91,6,77,99,129,77,91,7,
+  77,99,129,78,99,6,77,99,132,77,91,77,99,77,99,77,91,5,77,99,
+  130,109,99,110,99,7,77,99,5,77,91,148,109,99,109,99,77,99,109,99,
+  109,99,77,99,77,99,45,91,236,90,236,82,236,82,12,91,45,99,110,99,
+  208,107,49,116,114,124,146,124,147,124,147,124,7,179,132,147,211,132,179,124,
+  180,132,179,132,179,132,180,132,180,132,179,124,179,132,211,132,180,132,180,132,
+  212,132,211,132,211,132,212,132,211,124,211,132,179,132,4,180,132,138,211,132,
+  179,132,212,132,180,132,179,124,179,132,180,132,180,132,179,132,179,132,4,180,
+  132,142,212,132,179,132,180,132,212,132,82,124,142,99,106,66,4,33,130,16,
+  135,25,79,75,50,108,179,124,212,132,4,180,124,150,212,124,212,132,244,132,
+  244,132,245,132,244,132,244,132,245,132,244,132,211,140,20,149,52,157,170,90,
+  203,90,203,90,170,82,138,82,105,82,105,74,105,74,73,74,105,74,6,73,
+  74,4,40,66,129,41,66,5,40,66,132,8,66,8,58,232,57,232,57,4,
+  231,57,133,199,57,199,57,199,49,167,49,167,49,3,167,41,159,135,49,134,
+  41,134,33,134,41,102,33,102,33,134,33,102,33,168,41,81,124,46,91,179,
+  148,179,148,178,148,179,148,178,148,179,148,146,148,146,140,179,148,146,148,114,
+  140,81,132,240,123,48,132,113,140,113,140,114,140,113,140,113,140,81,132,4,
+  49,132,176,16,124,48,124,81,132,81,132,49,124,49,124,16,116,16,116,48,
+  116,48,124,207,107,16,116,239,115,239,107,207,107,239,115,174,107,239,115,207,
+  107,175,107,207,107,174,99,142,99,207,107,207,107,174,99,207,107,175,99,175,
+  107,174,107,174,107,240,107,240,115,207,107,207,107,208,107,142,99,175,107,240,
+  107,207,107,207,107,175,107,239,107,207,107,240,107,175,99,175,99,175,107,3,
+  142,99,146,207,107,175,107,143,99,175,107,175,107,143,99,175,99,142,99,143,
+  99,175,107,174,99,143,99,175,107,142,99,175,99,175,107,175,107,142,99,3,
+  175,107,139,208,107,175,99,175,99,175,107,175,99,143,99,143,99,175,107,143,
+  99,175,107,175,99,3,143,99,134,175,99,175,99,175,107,143,99,143,107,142,
+  99,3,143,99,148,111,99,175,99,142,99,175,107,143,99,143,107,110,91,110,
+  91,143,91,175,99,78,91,143,99,143,99,175,99,175,99,142,91,142,91,143,
+  99,175,99,175,99,3,175,107,173,207,107,142,99,143,99,142,99,208,107,175,
+  99,16,116,240,107,49,116,49,116,16,108,240,107,240,115,17,116,240,107,16,
+  116,16,108,81,116,49,116,17,116,17,116,49,116,146,132,146,124,179,124,114,
+  124,146,124,146,124,17,108,241,107,146,132,41,58,9,58,9,58,41,58,200,
+  49,102,33,135,41,232,49,167,41,199,41,168,41,167,41,167,41,135,41,3,
+  167,41,4,135,41,155,167,41,134,33,69,33,167,49,200,49,233,49,233,49,
+  9,58,74,66,107,66,107,66,139,66,107,66,74,66,139,74,207,115,179,148,
+  114,132,240,107,208,107,241,107,17,116,50,116,82,116,115,124,115,124,147,124,
+  3,115,124,195,83,108,50,100,242,99,241,91,177,91,244,140,150,157,211,140,
+  147,140,253,182,127,199,91,150,207,107,211,132,82,116,73,58,4,33,130,8,
+  45,91,53,149,53,149,53,141,27,207,93,207,93,207,93,215,28,207,27,215,
+  60,215,28,207,219,198,251,206,219,206,117,157,211,148,150,173,215,181,175,99,
+  233,41,42,58,10,50,201,41,70,25,164,8,131,16,131,8,99,8,100,8,
+  100,0,100,0,165,8,168,41,139,74,236,90,172,82,236,90,237,90,13,91,
+  45,99,78,107,111,107,143,107,175,115,208,115,240,123,240,115,241,123,4,17,
+  124,132,49,132,49,132,49,124,49,124,4,49,132,3,81,132,130,114,140,113,
+  140,9,114,140,3,81,132,129,49,132,8,81,132,129,81,140,5,81,132,132,
+  81,140,13,91,228,24,36,33,6,4,33,129,36,33,3,4,33,129,36,33,
+  3,4,33,238,195,24,130,16,165,49,73,131,3,82,134,90,199,106,101,82,
+  8,115,195,65,69,82,69,82,227,73,36,74,4,74,69,82,68,82,199,106,
+  198,106,133,98,101,90,101,90,165,98,230,106,198,106,231,114,198,106,199,106,
+  231,114,7,123,7,123,230,114,166,106,162,57,195,65,13,148,82,205,82,213,
+  82,213,49,205,111,180,45,164,237,155,204,147,237,147,111,180,226,81,232,98,
+  176,172,144,180,176,180,45,172,227,81,4,66,141,164,169,180,169,180,105,172,
+  39,164,72,164,40,172,105,180,138,180,170,188,168,163,162,73,162,57,195,65,
+  195,57,231,106,101,98,166,98,41,123,166,106,133,98,166,98,134,98,198,98,
+  68,82,133,90,68,90,4,74,227,73,194,65,195,65,195,65,228,73,162,57,
+  228,73,162,65,163,65,195,65,162,65,195,65,163,65,167,90,232,106,233,114,
+  41,115,73,123,106,139,171,139,204,147,237,155,45,164,110,180,111,180,240,196,
+  169,187,162,81,172,4,151,114,20,212,28,245,36,212,36,49,52,110,75,44,
+  91,12,99,44,91,45,99,12,91,77,99,45,91,45,83,78,59,208,27,82,
+  12,180,12,21,29,86,37,21,45,82,60,110,83,3,44,99,131,45,99,44,
+  91,45,99,4,44,99,7,45,99,129,44,99,3,45,99,134,44,91,45,99,
+  44,99,44,99,45,99,77,99,7,45,99,133,77,99,44,91,77,91,45,91,
+  45,99,3,77,99,138,45,91,77,99,45,91,45,99,45,99,77,99,77,91,
+  45,99,77,99,77,91,3,77,99,133,77,91,77,91,77,99,77,99,77,91,
+  5,77,99,129,78,99,3,77,99,132,77,91,77,91,77,99,109,99,4,77,
+  99,129,77,91,4,77,99,129,77,91,6,77,99,149,109,99,109,99,77,99,
+  77,99,77,91,12,91,236,82,203,82,236,90,12,91,45,91,142,99,240,107,
+  49,116,114,124,146,124,147,124,147,132,147,124,179,124,179,124,5,179,132,130,
+  211,132,179,132,3,180,132,132,211,132,179,132,212,132,211,132,3,212,132,135,
+  211,132,211,132,212,132,211,132,179,132,212,132,179,132,4,180,132,130,212,132,
+  179,132,4,180,132,3,179,132,152,180,132,179,132,211,132,180,132,180,132,212,
+  132,212,132,147,124,207,107,235,82,134,41,163,16,5,17,205,66,209,99,147,
+  124,212,132,212,124,180,124,179,124,180,124,180,124,212,124,212,132,7,244,132,
+  137,179,140,85,157,178,148,170,90,203,90,170,90,170,82,138,82,138,82,3,
+  105,74,9,73,74,6,40,66,134,8,66,8,66,40,66,231,57,232,57,232,
+  57,4,231,57,138,199,49,199,49,167,49,167,41,167,41,167,49,167,49,167,
+  41,134,41,167,41,3,102,33,135,135,33,102,33,102,33,232,41,175,107,14,
+  91,179,148,4,146,148,151,211,148,179,148,146,140,146,148,146,148,146,140,49,
+  132,16,132,48,132,113,140,146,148,114,148,81,140,81,140,49,132,49,132,16,
+  132,16,132,48,132,16,124,48,124,49,124,49,124,3,16,124,4,16,116,134,
+  240,115,240,115,207,107,207,107,239,107,175,107,3,207,107,133,175,107,207,107,
+  142,99,175,107,207,107,4,175,107,138,110,99,175,107,143,99,240,115,207,107,
+  240,115,207,107,207,107,175,107,207,107,4,175,107,147,207,107,207,107,175,107,
+  240,107,175,107,175,107,143,99,175,107,142,99,175,107,143,99,142,99,175,107,
+  175,99,142,99,175,107,175,107,143,107,175,99,3,143,99,134,175,99,143,99,
+  175,107,207,107,143,99,175,99,4,175,107,155,208,107,142,99,142,99,110,99,
+  175,99,175,99,175,107,175,99,175,99,175,107,175,107,208,107,143,99,208,107,
+  175,107,175,99,175,99,175,107,143,99,175,99,175,99,143,99,175,99,208,107,
+  143,99,143,99,142,91,6,143,99,130,110,91,142,91,3,143,99,151,142,99,
+  142,99,207,107,143,99,208,107,207,107,142,99,142,99,143,99,175,99,207,107,
+  16,108,16,108,240,107,49,116,49,116,240,107,16,108,49,116,240,107,208,107,
+  17,108,240,107,3,49,116,147,81,116,49,116,49,116,114,124,114,124,211,132,
+  146,124,147,124,241,107,114,132,232,49,41,58,9,58,9,58,232,49,135,41,
+  167,41,199,41,199,41,4,167,41,130,135,41,135,33,6,135,41,131,168,41,
+  135,41,70,33,3,200,49,147,233,49,9,58,42,58,106,66,139,66,106,66,
+  107,66,74,66,74,66,142,107,146,148,114,132,240,115,209,107,241,115,17,108,
+  50,116,82,116,114,124,4,115,124,156,115,116,82,108,50,100,18,100,241,91,
+  177,91,244,140,150,157,179,140,114,132,150,157,248,165,21,141,175,107,147,132,
+  49,116,73,58,4,33,97,8,171,82,20,149,53,141,179,132,52,157,150,165,
+  182,165,214,173,215,181,6,247,181,165,52,157,211,148,150,173,183,173,240,107,
+  201,41,10,58,10,50,201,41,71,25,165,16,131,8,131,8,99,8,100,8,
+  100,0,100,0,132,8,103,33,74,66,204,82,204,82,236,90,237,90,13,91,
+  45,99,78,99,110,107,143,107,175,115,208,115,240,115,240,115,241,123,16,124,
+  17,124,17,132,3,49,132,137,49,124,49,124,49,132,49,132,49,124,49,132,
+  81,132,81,132,113,132,11,114,140,3,81,132,4,49,132,130,81,132,81,140,
+  9,81,132,131,82,140,78,99,37,33,4,4,33,132,36,33,4,33,4,33,
+  36,33,7,4,33,164,195,24,130,16,69,33,42,123,69,98,69,82,8,115,
+  36,82,40,115,227,65,166,98,199,106,166,98,8,115,7,115,105,131,198,106,
+  231,114,231,106,7,123,7,123,198,106,7,115,7,115,230,106,198,106,165,98,
+  100,90,133,98,165,98,133,98,68,82,68,90,194,65,163,57,106,115,3,82,
+  205,171,81,213,111,180,45,164,176,188,45,164,46,164,208,188,101,98,102,82,
+  241,180,176,188,208,188,208,196,69,98,162,57,11,148,73,180,40,164,8,164,
+  232,155,200,147,199,147,168,139,103,131,71,123,197,114,194,65,195,65,163,65,
+  162,57,227,65,162,65,195,65,227,65,195,65,194,65,195,65,163,65,162,65,
+  163,65,162,57,195,65,163,65,3,162,65,133,163,65,162,65,162,65,163,65,
+  162,65,3,163,65,145,162,65,162,57,167,90,209,172,241,196,17,205,49,205,
+  240,204,208,188,50,205,175,188,143,180,240,196,78,172,143,172,173,196,226,97,
+  177,4,163,111,43,17,20,115,20,212,28,245,36,211,44,17,60,78,75,12,
+  91,44,99,12,91,44,99,44,99,45,91,12,91,45,83,78,59,208,27,114,
+  4,212,12,53,29,86,37,21,45,49,60,78,83,12,99,44,99,45,99,44,
+  91,44,91,45,99,44,99,45,99,45,99,44,99,6,45,99,144,44,99,45,
+  99,45,99,45,91,45,91,44,99,45,99,45,99,44,91,45,99,45,91,45,
+  91,45,99,77,99,45,91,44,91,3,45,99,129,77,99,4,45,99,136,77,
+  99,77,99,45,91,77,91,77,99,45,91,77,99,77,91,21,77,99,137,78,
+  99,77,99,77,99,77,91,110,99,77,99,109,99,77,99,77,91,3,77,99,
+  3,77,91,146,77,99,77,91,109,99,77,99,77,99,77,91,109,99,77,99,
+  12,91,236,90,203,82,12,91,12,91,77,99,143,99,241,107,82,116,114,124,
+  3,147,124,131,179,132,179,132,179,124,6,179,132,4,180,132,132,211,132,179,
+  132,179,132,212,132,5,211,132,138,179,132,179,132,211,132,211,132,179,132,211,
+  132,212,132,180,132,211,132,211,132,6,180,132,149,211,132,211,132,180,132,180,
+  132,211,132,211,132,180,132,212,132,179,132,16,108,77,91,232,57,195,24,195,
+  16,106,50,176,91,83,116,180,132,212,132,212,124,179,124,3,180,124,130,212,
+  132,212,132,6,244,132,135,211,132,179,140,85,157,16,132,170,82,170,90,170,
+  90,3,138,82,3,105,74,5,73,74,135,41,74,73,74,73,74,40,74,40,
+  74,40,66,41,66,4,40,66,137,8,66,40,66,232,57,8,58,231,57,231,
+  57,232,57,231,57,199,57,4,199,49,129,167,49,4,167,41,162,134,41,102,
+  33,134,33,102,33,134,33,102,33,102,33,102,25,236,74,237,82,179,148,178,
+  148,146,148,178,148,179,148,211,148,179,148,146,148,179,148,146,148,114,140,49,
+  132,16,132,114,148,113,140,113,140,114,140,81,140,81,140,81,132,49,132,48,
+  132,16,132,49,132,6,16,124,156,48,124,16,116,48,124,16,116,207,115,240,
+  115,239,115,207,107,239,115,207,107,142,107,207,107,239,107,175,107,175,107,207,
+  107,175,107,207,107,142,99,207,107,175,99,142,99,142,99,174,99,175,99,175,
+  107,142,107,142,99,4,207,107,155,175,99,174,99,207,107,175,107,142,99,208,
+  107,175,107,175,107,208,107,207,107,175,107,175,107,175,99,175,107,175,107,142,
+  99,110,99,143,99,175,107,143,107,142,99,142,99,208,107,143,99,142,99,175,
+  107,207,107,6,175,99,147,240,107,208,107,175,99,207,107,207,107,143,99,175,
+  107,175,107,143,99,175,99,207,107,207,107,175,99,175,99,207,99,207,107,175,
+  107,207,99,208,107,3,175,99,5,143,99,5,175,99,182,143,99,142,91,175,
+  99,143,91,143,99,110,91,110,91,143,99,175,99,143,99,142,99,175,99,143,
+  99,142,99,143,99,143,99,142,99,207,107,208,107,143,99,240,107,240,107,16,
+  108,16,108,240,107,240,107,17,108,16,108,16,108,208,107,240,107,16,116,16,
+  116,16,108,49,116,49,116,240,107,17,116,49,116,114,124,179,132,114,124,82,
+  124,50,116,241,107,81,132,9,58,41,58,41,58,8,58,232,49,200,41,167,
+  41,200,49,5,167,41,132,135,33,135,33,135,41,167,41,3,135,41,154,167,
+  41,167,41,168,41,70,33,135,41,200,49,200,49,233,49,233,49,42,58,74,
+  66,107,74,107,66,107,66,74,66,74,66,45,99,81,132,114,132,240,107,241,
+  107,241,115,17,116,18,116,50,116,82,124,4,115,124,202,115,116,83,108,50,
+  108,17,92,242,99,177,99,212,140,183,165,244,140,179,132,211,140,243,148,81,
+  124,110,99,114,132,49,116,73,66,4,33,65,8,106,74,244,140,53,149,146,
+  124,15,124,146,140,243,148,243,148,19,157,19,149,243,148,20,157,52,165,84,
+  165,85,157,211,140,178,148,150,173,215,181,49,116,201,41,10,50,10,50,233,
+  41,71,25,164,16,131,8,131,8,99,8,100,8,100,0,100,0,132,0,71,
+  33,42,66,236,90,172,82,236,90,237,90,45,91,45,99,78,99,110,107,143,
+  107,175,115,208,115,240,115,240,123,16,124,17,124,17,124,49,132,17,124,49,
+  132,49,132,3,49,124,134,49,132,49,124,49,132,81,132,81,132,113,132,9,
+  114,140,130,114,132,113,140,4,81,132,130,49,132,49,132,11,81,132,135,49,
+  132,81,140,142,115,69,33,4,33,4,33,36,33,12,4,33,186,195,24,130,
+  16,4,33,9,115,166,106,4,74,8,115,68,82,40,115,3,82,36,82,101,
+  90,166,98,7,115,198,106,40,115,133,98,68,82,3,74,101,90,101,90,36,
+  74,36,74,68,82,3,74,227,65,227,65,195,65,195,57,194,65,194,57,195,
+  65,195,65,162,65,163,57,232,98,50,197,82,205,50,205,82,213,208,196,241,
+  196,49,205,17,205,17,205,50,213,231,138,227,65,143,172,110,180,45,156,111,
+  180,166,106,130,57,134,90,133,90,68,82,68,82,5,36,74,143,69,74,101,
+  90,195,73,163,65,195,65,195,65,162,57,163,65,162,65,162,57,195,65,163,
+  65,162,65,163,65,162,57,7,163,65,153,162,65,195,57,163,65,163,65,162,
+  65,162,65,195,65,194,65,195,65,162,57,38,74,18,173,82,205,81,205,82,
+  213,78,180,236,163,46,156,139,139,205,155,139,147,237,139,75,155,208,180,34,
+  122,239,4,165,44,83,77,67,175,35,50,12,147,20,244,28,244,36,147,44,
+  208,59,45,83,44,99,45,99,45,99,44,99,44,99,44,91,45,91,45,83,
+  110,59,240,27,115,12,212,20,54,29,86,37,245,44,16,60,77,83,45,91,
+  44,91,45,99,45,99,44,99,45,99,44,99,44,99,44,91,45,99,3,44,
+  99,152,45,99,45,99,44,99,45,99,45,99,45,91,44,91,45,99,44,99,
+  44,99,45,91,45,99,77,99,77,99,45,91,45,99,77,99,44,91,77,99,
+  45,99,45,99,77,99,45,99,77,99,3,45,99,3,77,99,133,77,91,77,
+  99,77,91,77,99,45,91,18,77,99,132,77,91,77,99,109,99,109,99,3,
+  77,99,135,109,99,77,99,77,91,109,99,77,99,77,91,77,99,3,77,91,
+  149,77,99,78,91,77,99,109,99,77,99,77,99,77,91,12,91,236,82,236,
+  82,12,91,45,91,77,99,175,107,17,116,82,116,114,124,147,124,147,124,147,
+  132,147,132,4,179,132,131,180,132,179,132,179,132,4,180,132,133,211,132,179,
+  132,212,132,212,132,179,132,8,211,132,136,179,132,211,132,179,132,212,132,180,
+  132,179,132,212,132,180,124,3,180,132,155,179,124,180,124,179,124,211,132,212,
+  132,180,132,211,132,180,132,180,132,212,132,49,124,110,99,106,66,4,33,163,
+  16,199,33,110,83,50,116,179,124,212,132,212,124,180,124,180,124,179,124,180,
+  124,212,124,212,132,7,244,132,141,211,132,243,140,150,165,142,115,170,90,170,
+  82,170,90,170,82,138,82,105,82,138,82,105,74,105,74,8,73,74,166,41,
+  74,73,74,40,66,41,74,40,66,40,66,8,66,8,66,40,66,8,66,232,
+  57,232,57,231,57,231,57,232,57,199,57,231,57,231,57,199,49,199,49,167,
+  41,167,49,167,41,166,41,166,41,167,41,134,33,102,33,102,33,134,33,134,
+  33,102,33,102,33,167,33,139,66,237,82,179,148,146,148,3,179,148,131,146,
+  148,179,148,178,148,3,179,148,133,114,132,16,124,48,132,81,140,81,140,3,
+  113,140,149,81,132,81,132,49,132,49,132,16,124,240,123,240,123,240,115,240,
+  123,16,124,16,124,239,115,239,115,240,115,16,116,240,115,239,115,239,115,207,
+  107,207,107,142,99,3,175,107,168,207,107,142,107,175,99,175,107,207,107,174,
+  99,175,107,175,99,110,99,143,99,208,107,142,99,142,99,143,99,142,99,143,
+  99,207,107,175,107,175,107,207,107,207,107,175,107,175,99,175,99,208,107,207,
+  107,175,99,207,107,175,107,174,99,175,107,175,107,175,99,143,99,142,99,142,
+  99,143,107,175,107,175,107,142,91,3,175,99,129,175,107,3,175,99,134,175,
+  107,175,99,143,99,208,107,175,99,175,107,3,207,107,134,175,99,143,99,175,
+  99,175,107,175,107,208,107,3,207,99,4,175,99,130,175,107,208,107,3,175,
+  99,132,143,99,143,99,207,107,175,107,3,175,99,153,143,99,143,91,175,99,
+  110,91,143,99,143,99,143,91,175,99,143,91,143,99,111,99,143,99,175,99,
+  175,107,175,99,143,99,143,99,142,99,175,99,175,99,143,99,207,107,175,107,
+  208,107,241,115,3,240,107,141,208,107,208,107,240,107,240,107,175,99,143,99,
+  240,107,240,107,17,116,49,116,49,116,81,116,17,116,3,114,124,141,81,116,
+  49,116,17,108,46,91,110,107,41,58,9,58,8,58,9,58,232,49,200,49,
+  168,41,200,49,3,167,41,134,168,41,167,41,135,33,135,41,135,41,167,41,
+  3,135,41,229,167,41,167,41,168,41,135,33,102,33,200,49,200,49,232,49,
+  9,50,41,58,74,66,107,74,139,66,106,66,106,66,107,66,236,90,240,123,
+  82,132,240,107,209,107,241,107,17,108,50,116,50,116,83,124,115,124,147,116,
+  115,124,115,116,115,116,82,108,50,100,18,100,241,99,177,91,180,132,183,165,
+  212,140,114,132,113,124,114,132,207,115,77,99,82,124,49,116,105,58,4,33,
+  65,0,41,66,211,148,21,141,114,116,109,99,239,123,48,124,16,124,48,124,
+  48,124,48,132,113,132,146,140,178,140,178,140,48,124,146,140,150,173,215,181,
+  114,124,200,41,233,41,233,41,201,41,71,25,196,16,131,8,99,8,100,8,
+  100,8,100,0,100,0,132,0,38,25,9,66,204,82,204,82,236,90,237,90,
+  13,91,45,99,78,99,111,107,143,107,175,115,208,115,240,115,240,115,16,124,
+  16,124,17,124,17,124,6,49,124,3,49,132,130,81,132,81,132,4,114,140,
+  129,114,132,6,114,140,129,82,132,4,81,132,130,49,132,49,132,5,81,132,
+  138,49,132,49,132,81,132,49,132,81,132,49,132,49,132,81,132,207,115,135,
+  41,12,4,33,149,36,33,4,33,4,33,227,24,162,16,195,24,201,98,231,
+  122,227,65,8,115,69,82,8,115,101,90,194,65,227,73,4,74,4,74,227,
+  65,4,74,227,65,194,65,3,195,65,4,195,57,213,195,65,195,57,195,57,
+  195,65,195,65,195,57,195,65,163,65,195,65,162,57,134,82,209,188,50,205,
+  49,205,17,205,241,196,240,196,208,188,175,188,143,180,110,180,231,130,130,57,
+  9,107,73,123,41,115,73,115,101,90,162,57,4,74,7,115,40,123,105,131,
+  137,139,170,147,202,147,234,163,43,164,42,164,76,180,198,130,162,65,163,65,
+  163,57,195,65,163,65,195,65,163,65,162,57,163,65,163,57,228,65,227,65,
+  195,65,163,57,163,65,163,57,228,73,163,65,195,65,4,74,36,82,4,74,
+  4,74,36,82,36,82,101,90,3,82,163,65,162,65,196,65,112,140,82,205,
+  81,205,82,205,175,196,46,172,171,147,172,139,205,163,13,148,236,155,171,155,
+  17,181,198,154,154,4,164,44,91,44,91,45,91,77,59,208,27,82,12,180,
+  20,244,36,244,44,114,52,142,75,45,91,12,99,12,99,44,99,44,99,45,
+  99,45,99,45,91,45,83,110,51,209,27,115,12,212,12,54,29,86,37,212,
+  44,240,67,45,91,13,99,45,99,45,99,44,91,45,99,77,99,45,91,4,
+  45,99,134,45,91,45,91,45,99,45,99,44,91,44,99,3,45,91,5,45,
+  99,144,77,99,45,91,45,99,77,99,45,91,45,91,45,99,77,99,45,99,
+  77,99,45,99,77,99,77,99,45,99,45,91,45,99,3,77,99,131,77,91,
+  77,99,77,91,7,77,99,129,109,99,9,77,99,130,77,91,109,99,4,77,
+  99,129,109,99,6,77,99,4,77,91,145,77,99,77,91,78,99,110,99,77,
+  99,77,99,45,91,236,82,236,82,204,82,13,99,45,91,78,99,207,107,17,
+  116,114,124,146,124,3,147,124,3,179,132,133,179,124,179,132,180,132,179,132,
+  180,132,5,179,132,129,180,132,3,211,132,139,180,132,212,132,211,132,212,132,
+  211,124,179,132,211,132,179,132,211,132,212,132,211,132,9,180,132,131,180,124,
+  212,124,180,132,3,211,132,148,212,132,212,132,114,132,175,107,203,74,102,33,
+  163,16,37,25,13,67,241,99,147,124,212,132,180,132,212,124,180,124,179,124,
+  180,124,180,124,212,124,212,132,5,244,132,140,245,132,244,132,211,132,244,140,
+  182,173,12,99,203,90,170,90,170,82,138,82,170,82,105,82,3,105,74,9,
+  73,74,130,41,74,41,74,6,40,66,131,8,66,8,66,232,57,4,231,57,
+  130,199,57,199,57,3,199,49,4,167,41,132,135,41,135,41,102,33,134,33,
+  3,102,33,189,69,33,106,58,172,74,143,99,211,148,243,156,146,140,211,148,
+  211,148,178,148,146,148,146,148,179,148,179,148,146,140,114,140,207,115,81,140,
+  114,140,114,140,146,140,113,140,81,140,81,132,81,140,81,132,49,132,16,124,
+  240,123,207,115,240,123,240,115,16,124,15,116,207,107,207,107,16,116,16,116,
+  240,115,16,116,207,107,207,107,175,107,142,107,174,107,175,107,175,107,207,107,
+  207,107,142,107,142,99,142,99,175,107,175,107,142,99,142,99,175,107,175,107,
+  208,107,175,107,207,107,3,142,99,136,175,107,207,107,175,107,207,107,143,99,
+  207,107,207,107,240,107,7,175,107,130,175,99,143,99,3,175,107,129,240,107,
+  4,175,99,175,143,99,175,107,175,99,143,99,175,99,208,107,175,99,207,107,
+  175,107,175,99,175,107,175,107,207,107,175,99,207,107,175,99,175,99,208,107,
+  240,107,175,107,208,107,175,99,208,107,175,107,207,99,175,99,175,99,207,107,
+  175,99,143,99,208,107,207,107,175,99,175,99,175,107,175,107,240,107,207,99,
+  110,91,142,91,143,99,176,99,143,99,143,99,78,91,175,91,208,107,3,175,
+  99,158,143,99,175,99,175,99,143,99,175,99,143,99,143,99,175,99,208,107,
+  143,107,175,107,175,107,207,107,208,107,17,108,208,107,175,99,175,99,240,107,
+  175,107,207,99,175,99,240,107,49,116,240,107,16,116,240,115,49,116,16,108,
+  240,107,3,49,116,138,49,108,49,116,49,116,110,91,142,99,9,58,41,58,
+  9,50,9,58,233,49,3,200,49,3,167,41,130,135,41,167,33,8,135,41,
+  206,167,41,167,41,135,41,168,41,200,49,232,49,233,49,233,49,9,58,74,
+  66,107,66,106,74,106,66,107,66,74,66,171,82,175,115,49,124,240,107,208,
+  107,241,115,17,116,17,116,50,116,83,124,115,124,115,116,147,124,115,116,115,
+  116,82,108,50,108,18,100,241,99,209,91,179,132,215,165,20,149,114,132,207,
+  115,239,115,141,107,45,91,82,124,17,116,106,66,4,33,65,8,231,49,179,
+  140,20,141,146,124,45,91,77,107,109,107,110,107,141,107,141,107,142,107,174,
+  115,207,115,174,115,206,115,142,107,81,140,118,173,215,181,179,140,168,33,233,
+  49,234,49,201,41,104,33,196,16,131,8,99,8,99,8,100,8,3,100,0,
+  143,6,25,233,57,172,82,204,82,237,90,237,90,13,99,45,99,78,99,110,
+  107,143,107,175,115,208,115,208,115,240,123,3,17,124,131,49,124,49,124,49,
+  132,6,49,124,129,49,132,3,81,132,11,114,140,4,81,132,3,49,132,135,
+  81,132,49,132,81,132,49,132,81,132,49,132,81,132,4,49,132,132,81,132,
+  240,123,232,49,4,25,10,4,33,129,36,33,3,4,33,140,227,24,162,16,
+  163,24,104,82,40,123,227,65,8,107,101,90,232,106,134,98,194,65,227,65,
+  9,195,65,129,195,57,11,195,65,156,163,65,163,57,37,74,172,139,204,147,
+  171,139,138,131,138,131,106,131,106,131,74,131,106,131,138,131,166,106,130,65,
+  232,98,78,164,237,155,111,180,172,155,162,65,102,74,141,172,139,180,171,180,
+  171,180,138,180,171,180,3,170,180,174,170,188,103,147,162,65,195,65,162,57,
+  162,65,195,65,163,65,228,65,36,74,4,74,227,73,167,90,231,114,165,106,
+  69,90,68,82,101,90,231,106,231,106,231,114,39,123,165,106,7,115,7,115,
+  72,123,40,123,7,115,133,98,162,65,195,65,162,57,172,115,82,197,81,205,
+  82,205,17,205,175,188,208,188,17,205,208,196,50,205,17,213,17,205,114,213,
+  169,179,175,4,142,12,91,44,99,44,99,44,91,45,83,110,51,241,19,115,
+  12,212,28,244,36,212,44,17,60,78,75,12,99,3,44,99,143,44,91,44,
+  91,44,99,45,91,45,83,110,51,241,19,147,12,244,12,54,29,86,37,179,
+  52,176,75,45,91,44,99,3,45,99,130,45,91,45,91,5,45,99,142,45,
+  91,45,99,45,99,44,91,45,99,44,99,45,99,45,91,45,99,77,99,45,
+  99,45,99,45,91,45,91,4,45,99,133,77,99,45,99,77,99,45,91,45,
+  99,3,77,99,3,45,99,131,77,99,77,99,77,91,3,77,99,129,45,99,
+  11,77,99,129,77,91,6,77,99,129,77,91,3,77,99,130,78,99,77,99,
+  4,77,91,149,77,99,77,91,77,91,78,99,77,91,77,99,110,99,77,91,
+  77,99,77,91,45,91,12,83,203,82,236,90,12,91,45,99,110,99,208,107,
+  49,116,114,124,146,124,3,147,124,3,179,132,140,179,124,179,132,211,132,179,
+  132,211,132,179,132,211,132,211,132,179,132,179,132,211,132,179,132,3,180,132,
+  3,211,132,136,212,132,212,132,211,132,212,132,211,132,211,132,179,132,180,132,
+  3,179,132,131,211,132,179,124,179,132,5,180,132,144,180,124,180,132,212,132,
+  212,132,179,132,240,115,45,91,231,49,195,16,195,16,139,58,208,91,82,116,
+  180,132,212,132,212,132,5,180,124,3,212,132,3,244,132,134,245,132,245,132,
+  244,132,178,132,243,140,150,165,3,202,90,129,170,82,3,138,82,4,105,74,
+  7,73,74,130,41,74,73,74,5,40,66,132,8,66,40,66,8,58,8,58,
+  3,231,57,141,232,57,231,57,199,49,199,57,199,49,199,49,167,41,167,49,
+  167,41,166,41,135,41,134,41,135,33,6,102,33,132,9,50,237,82,176,107,
+  211,148,3,179,148,130,178,148,178,148,3,179,148,189,146,148,113,140,81,140,
+  142,107,113,140,146,148,146,148,114,148,114,140,81,140,113,140,81,140,81,132,
+  48,132,16,124,16,124,239,123,240,123,16,124,207,115,207,115,239,115,207,115,
+  207,107,207,107,175,107,239,115,207,107,240,115,207,107,207,107,174,107,207,107,
+  142,99,175,107,207,107,175,107,143,99,143,107,175,99,175,99,142,99,142,99,
+  143,99,110,99,175,107,175,107,143,99,175,107,175,99,143,99,142,99,207,107,
+  208,107,175,99,175,107,142,99,175,107,208,107,208,107,207,107,4,175,107,131,
+  207,107,175,107,208,107,3,175,107,149,207,107,207,107,208,107,175,107,175,99,
+  175,107,175,107,143,99,175,107,175,107,207,107,175,99,207,99,175,99,175,99,
+  208,107,143,99,175,99,208,107,208,107,176,99,3,208,107,129,207,99,5,175,
+  99,167,207,99,175,99,208,107,208,107,175,99,143,99,175,99,207,107,207,99,
+  207,107,208,107,208,107,175,99,143,99,111,91,175,99,143,99,143,99,207,99,
+  110,91,143,99,207,99,175,99,143,99,175,107,175,107,143,99,110,99,143,99,
+  143,99,142,99,175,107,175,99,175,99,208,107,175,107,143,99,208,107,175,99,
+  3,208,107,3,175,99,134,208,107,175,99,208,99,208,107,17,116,208,107,3,
+  240,107,145,208,99,49,116,16,108,49,116,17,116,114,124,49,116,143,99,49,
+  124,41,58,9,58,232,49,9,58,9,50,232,49,232,49,200,41,4,167,41,
+  129,135,33,3,135,41,129,167,41,4,135,41,4,167,41,180,200,41,200,49,
+  232,49,9,58,9,58,74,66,107,66,106,66,107,66,107,66,74,66,171,82,
+  77,107,16,124,241,115,209,107,241,115,241,115,17,116,50,116,82,124,115,116,
+  115,124,115,124,115,116,115,116,82,108,50,100,18,100,242,99,209,91,147,124,
+  215,165,243,140,113,132,142,107,77,99,12,91,12,91,49,116,17,116,138,66,
+  36,33,65,0,166,49,146,132,244,140,114,124,203,74,203,90,12,91,12,91,
+  3,235,90,166,236,90,12,99,44,91,12,99,12,91,48,132,118,173,215,181,
+  244,148,233,41,233,41,10,50,234,49,104,33,197,16,131,8,131,8,99,8,
+  99,8,100,8,100,0,100,0,229,16,168,49,139,74,204,82,204,90,237,90,
+  13,91,46,99,78,99,110,107,143,107,175,115,208,115,240,115,240,123,241,123,
+  3,17,124,132,49,124,49,124,49,132,49,124,3,17,124,133,49,132,49,132,
+  81,132,81,132,113,132,9,114,140,129,113,132,5,81,132,3,49,132,133,81,
+  132,49,132,81,132,49,132,81,132,6,49,132,136,81,132,16,124,73,66,228,
+  24,36,33,4,33,4,33,36,33,10,4,33,140,228,24,163,24,162,24,39,
+  66,73,139,194,73,199,98,166,106,167,98,199,106,195,65,227,65,4,195,65,
+  129,227,65,8,195,65,129,163,65,6,195,65,194,163,65,163,57,195,65,195,
+  57,42,115,205,147,237,155,45,164,46,172,46,172,111,180,143,188,143,180,241,
+  196,235,171,129,65,41,107,49,197,143,180,208,188,175,188,227,81,4,66,141,
+  164,170,180,170,180,72,172,7,164,73,172,8,164,7,156,169,180,169,180,233,
+  171,195,81,163,65,195,65,163,65,195,65,162,57,133,90,73,123,231,114,165,
+  106,166,98,198,106,6,115,40,123,7,123,230,114,7,115,230,114,197,106,230,
+  106,100,98,100,90,101,90,133,98,68,90,68,82,68,90,162,65,163,65,162,
+  65,233,90,82,189,6,82,213,134,50,213,49,213,17,205,17,197,240,196,235,
+  179,176,4,163,12,99,12,91,12,99,44,99,44,99,12,91,45,75,143,43,
+  17,20,147,20,212,28,20,37,179,44,208,67,77,91,44,99,44,99,45,91,
+  45,99,12,91,44,99,44,91,45,91,45,75,110,43,17,12,147,4,245,20,
+  86,37,54,37,115,52,142,83,45,91,44,99,45,99,3,45,91,134,44,91,
+  45,91,45,99,44,99,45,99,44,99,3,45,99,133,44,99,44,91,77,99,
+  45,91,77,99,5,45,99,138,45,91,45,99,45,99,77,91,77,91,45,91,
+  45,99,77,99,45,91,45,99,21,77,99,129,110,99,6,77,99,130,109,99,
+  109,99,5,77,99,129,109,99,4,77,99,147,77,91,77,91,78,91,77,91,
+  77,99,77,99,109,99,109,99,77,99,12,91,236,82,203,82,12,91,12,91,
+  77,99,143,99,240,107,50,116,114,124,3,147,124,129,179,124,9,179,132,142,
+  211,132,179,132,211,132,179,132,179,132,211,132,180,132,212,132,212,132,211,132,
+  211,132,180,132,211,132,211,132,3,180,132,137,179,132,211,132,211,132,180,132,
+  179,132,179,124,211,132,179,124,179,132,6,180,132,140,212,124,180,132,212,132,
+  49,124,110,99,105,66,4,25,163,16,232,33,111,83,50,108,179,124,3,212,
+  132,135,180,124,179,124,179,124,180,124,212,124,212,132,212,132,4,244,132,180,
+  245,132,244,132,244,132,146,132,20,141,85,165,170,90,202,90,202,90,170,90,
+  137,82,137,82,105,82,105,74,73,74,105,74,105,74,73,74,73,74,105,74,
+  73,74,40,74,73,74,73,74,72,66,40,74,41,74,41,74,40,66,40,66,
+  8,66,8,66,40,66,8,58,8,58,232,57,232,57,231,57,231,57,199,57,
+  231,57,200,57,199,49,167,49,167,41,167,41,167,49,167,49,167,41,135,41,
+  102,33,134,33,5,102,33,149,233,41,237,74,18,124,179,148,243,156,179,148,
+  244,156,179,148,211,148,178,148,211,148,179,148,179,148,211,156,48,132,207,123,
+  81,140,114,140,146,140,146,140,113,140,3,81,140,151,48,132,48,132,16,124,
+  239,123,240,123,240,115,239,115,207,115,16,124,207,115,175,107,207,107,240,115,
+  175,107,175,107,207,107,239,115,175,107,207,107,174,107,142,107,175,107,175,107,
+  3,142,99,138,174,99,175,99,143,99,175,107,175,99,142,99,143,99,110,91,
+  143,99,143,99,3,175,99,3,175,107,142,143,99,175,99,175,107,175,99,207,
+  107,240,107,208,107,175,107,175,107,175,99,208,107,175,99,175,99,175,107,4,
+  175,99,136,175,107,175,107,207,107,175,99,175,107,175,99,175,99,207,107,3,
+  175,99,134,207,99,175,99,240,107,208,107,208,107,175,99,3,208,107,142,207,
+  99,208,107,175,99,175,99,208,107,208,107,176,107,207,107,175,99,208,99,175,
+  99,208,107,208,107,208,99,5,175,99,158,208,107,208,107,175,107,208,107,175,
+  99,143,91,110,91,175,91,175,99,175,99,143,99,143,99,175,99,175,99,143,
+  99,175,99,175,99,208,107,207,107,174,99,175,99,143,99,208,107,143,99,208,
+  107,175,99,175,107,240,107,175,107,208,107,3,175,99,148,143,99,175,99,207,
+  99,143,99,175,99,143,99,207,99,175,99,240,107,175,99,240,107,240,107,207,
+  99,16,108,49,116,240,107,17,116,208,99,17,116,143,99,4,9,58,144,233,
+  49,200,41,200,41,200,49,167,41,167,41,135,41,167,41,135,33,135,41,135,
+  33,167,41,135,41,167,41,135,41,135,41,4,167,41,199,168,41,200,49,200,
+  41,233,49,9,58,9,58,42,58,106,66,107,66,107,66,106,66,74,66,171,
+  82,45,99,240,115,241,115,209,115,241,107,241,115,17,116,50,116,82,124,115,
+  116,115,124,115,124,115,116,115,116,82,108,50,108,18,100,18,100,209,99,115,
+  124,215,165,211,140,146,132,142,107,236,90,203,82,203,82,17,116,17,116,138,
+  66,36,33,65,8,101,41,113,132,244,140,147,124,171,66,105,74,138,82,138,
+  74,138,82,105,74,105,74,138,74,170,82,138,74,170,82,170,82,16,132,117,
+  173,183,181,21,149,10,50,10,50,42,50,42,50,169,41,5,17,4,99,8,
+  136,100,8,100,0,100,0,197,16,135,41,107,74,204,82,236,90,3,13,91,
+  138,78,99,110,107,143,107,175,115,208,115,240,115,240,115,16,124,16,124,17,
+  124,6,49,124,132,17,124,49,124,49,124,49,132,3,81,132,6,114,140,3,
+  114,132,7,81,132,5,49,132,132,81,132,49,132,49,132,81,132,6,49,132,
+  130,171,74,228,24,15,4,33,137,163,24,163,16,198,57,74,139,4,82,166,
+  90,231,106,102,90,8,115,3,195,65,132,228,65,228,65,195,65,227,65,13,
+  195,65,166,163,57,195,57,163,65,195,65,163,65,163,65,139,123,50,205,50,
+  213,82,213,49,205,143,188,111,180,175,188,78,172,111,172,143,188,194,73,134,
+  82,207,172,110,180,175,180,110,180,69,98,162,57,76,148,170,180,169,180,72,
+  172,199,155,231,147,134,139,134,131,137,172,169,180,105,180,3,98,163,65,3,
+  195,65,167,162,57,69,82,199,98,166,98,100,90,227,73,4,74,4,74,69,
+  82,3,82,227,73,3,74,3,82,194,73,195,73,194,65,163,65,195,65,163,
+  65,163,65,162,65,163,65,163,65,195,65,163,65,134,82,143,156,110,172,45,
+  164,12,156,203,147,139,139,105,131,40,115,231,106,166,98,133,90,100,82,3,
+  82,168,4,147,44,99,12,91,44,99,44,99,12,91,44,91,12,99,45,83,
+  77,67,175,35,82,12,179,20,245,28,244,36,114,52,142,75,45,91,44,99,
+  44,99,3,45,99,144,44,99,12,99,45,91,45,75,143,43,50,20,180,12,
+  21,21,86,37,21,45,49,60,78,83,44,99,44,99,45,99,44,91,3,44,
+  99,142,45,99,44,99,44,99,45,99,45,91,45,99,45,99,45,91,44,99,
+  45,99,45,91,45,99,45,91,45,91,8,45,99,13,77,99,129,77,91,4,
+  77,99,3,77,91,3,77,99,129,77,91,9,77,99,162,109,99,77,99,109,
+  99,77,99,109,99,110,99,109,99,77,99,77,99,77,91,77,99,77,91,77,
+  99,110,99,77,91,109,99,109,91,109,99,77,91,12,91,236,90,236,82,12,
+  91,45,99,77,99,143,107,241,107,82,116,114,124,147,124,147,124,179,132,179,
+  132,179,124,4,179,132,146,180,132,179,132,179,132,211,132,179,132,179,132,180,
+  132,180,132,212,132,212,132,179,132,179,132,212,132,211,132,212,132,211,132,180,
+  132,211,132,3,180,132,3,211,132,151,179,132,211,132,179,124,211,132,179,132,
+  180,132,179,132,179,132,180,132,180,132,212,132,180,124,180,132,212,132,146,124,
+  175,107,203,74,101,33,195,24,70,25,13,67,241,99,147,124,3,212,132,137,
+  180,124,180,124,179,124,180,124,180,124,212,124,244,132,244,132,212,132,3,244,
+  132,144,245,132,244,132,212,132,211,140,85,149,210,148,170,90,203,90,170,90,
+  170,90,138,82,105,82,137,82,105,82,105,74,105,74,8,73,74,139,40,66,
+  73,74,73,74,41,74,40,74,40,66,8,66,40,66,40,66,8,58,232,57,
+  4,231,57,139,232,57,231,57,199,57,199,49,167,49,167,41,199,41,167,41,
+  167,49,167,41,134,41,6,102,33,157,70,25,107,58,74,58,114,132,211,156,
+  179,148,211,156,244,156,211,156,179,148,178,148,211,156,211,148,178,148,48,132,
+  77,107,48,132,49,132,114,140,146,148,146,148,114,140,113,140,81,140,81,140,
+  81,132,81,132,16,132,240,123,6,207,115,129,175,107,4,207,107,152,175,107,
+  174,107,142,99,175,107,142,99,142,99,175,107,175,107,174,107,175,107,175,107,
+  175,99,143,99,142,99,175,107,143,99,143,99,175,107,110,99,175,99,207,99,
+  143,99,175,99,175,99,4,175,107,163,175,99,143,99,207,107,207,107,175,99,
+  207,107,175,107,175,99,208,107,175,99,208,107,175,99,175,107,142,99,175,107,
+  175,107,175,99,175,107,207,107,208,107,175,99,175,99,207,107,175,99,175,99,
+  175,107,207,107,208,107,175,99,175,99,208,107,208,107,207,99,208,107,240,107,
+  3,175,99,131,207,99,207,107,175,99,4,208,107,131,176,107,240,107,175,107,
+  4,208,107,139,208,99,175,99,208,107,208,107,175,99,207,107,175,107,208,107,
+  175,107,175,99,143,91,3,175,99,137,208,107,175,99,175,99,208,107,143,99,
+  175,99,175,99,207,107,207,107,3,175,107,142,175,99,208,107,208,107,175,99,
+  208,107,175,99,240,107,175,99,143,99,143,99,208,107,143,99,143,91,143,99,
+  3,175,99,143,207,99,175,107,175,99,143,91,240,107,240,107,208,107,240,107,
+  240,107,49,116,49,116,241,107,143,99,236,74,233,49,3,9,58,132,232,49,
+  200,49,232,49,200,41,3,167,41,135,135,33,135,41,168,41,135,33,167,41,
+  167,41,135,33,3,135,41,3,167,41,152,168,41,200,49,232,49,233,49,233,
+  49,9,58,42,58,74,66,106,66,107,74,106,66,107,66,204,90,143,115,50,
+  124,241,107,208,107,241,107,241,107,17,116,50,116,82,116,115,124,115,124,3,
+  115,116,153,83,116,50,108,18,100,242,91,209,99,82,124,247,165,211,140,146,
+  132,109,99,138,82,138,82,171,82,240,115,240,107,171,66,36,33,97,8,36,
+  33,49,132,211,140,147,124,171,66,40,66,41,74,5,73,74,164,105,74,138,
+  82,138,82,106,82,239,123,117,173,183,181,85,157,74,50,10,50,43,58,42,
+  58,201,41,6,17,132,8,131,8,99,8,99,8,100,8,100,0,100,0,197,
+  16,136,41,107,74,204,82,204,90,237,90,13,91,45,99,78,99,110,107,143,
+  107,175,107,208,115,240,115,240,123,4,17,124,4,49,124,129,17,124,4,49,
+  124,132,81,132,82,132,82,132,82,140,8,114,140,5,81,132,134,49,132,81,
+  132,49,132,81,132,49,132,81,132,10,49,132,133,81,132,236,90,228,24,4,
+  33,4,33,3,36,33,10,4,33,137,195,24,130,16,101,41,74,131,69,98,
+  101,82,8,115,68,90,40,123,3,227,65,3,195,65,129,227,65,7,195,65,
+  173,163,57,195,65,195,65,227,65,195,65,195,65,228,65,227,65,36,74,195,
+  65,195,65,162,57,9,107,49,197,82,205,82,213,50,205,111,180,236,155,204,
+  147,204,147,204,139,175,180,36,98,227,57,110,156,175,180,175,180,176,188,200,
+  130,130,57,203,131,203,180,169,180,169,180,72,172,105,172,73,172,105,172,137,
+  180,137,180,106,180,133,114,163,65,163,65,4,195,65,131,162,57,195,65,195,
+  65,4,163,65,131,162,65,162,65,163,65,3,162,65,131,195,65,163,65,195,
+  65,5,163,65,136,195,65,162,65,227,65,4,74,227,73,162,65,163,65,162,
+  57,4,130,57,132,162,57,162,57,162,65,195,65,217,4,134,12,91,44,99,
+  12,91,44,99,12,91,45,99,3,44,99,139,45,83,110,51,208,27,114,20,
+  212,20,244,28,212,36,16,68,77,83,45,99,45,99,4,44,99,149,45,99,
+  44,99,45,91,45,67,176,35,50,20,180,12,53,21,86,37,244,44,240,67,
+  77,83,44,99,12,99,45,99,45,99,45,91,45,91,44,99,77,99,45,91,
+  3,45,99,138,44,91,45,99,45,99,44,91,45,91,44,99,45,99,45,91,
+  45,91,44,91,4,45,99,130,77,99,77,91,3,45,99,137,77,99,77,99,
+  77,91,77,99,77,99,45,99,77,99,45,91,77,91,22,77,99,160,109,99,
+  77,99,109,99,77,99,77,99,77,91,109,99,77,91,77,99,77,99,77,91,
+  77,99,77,99,77,91,77,99,77,99,109,99,77,91,12,91,236,82,204,82,
+  12,91,45,91,77,99,175,99,17,116,82,116,114,124,147,124,147,124,147,132,
+  147,124,4,179,132,139,180,132,180,132,211,132,211,132,179,132,179,132,212,132,
+  180,132,211,132,179,132,179,132,3,211,132,139,212,132,180,132,180,132,212,132,
+  211,132,212,132,212,124,212,132,180,132,179,132,211,132,3,180,132,4,179,132,
+  5,180,132,142,212,132,180,132,240,107,45,91,232,49,195,24,228,16,139,58,
+  176,91,114,116,180,124,212,132,180,132,180,132,4,180,124,3,212,132,3,244,
+  132,129,245,132,3,244,132,139,211,132,179,132,117,157,80,140,170,90,202,90,
+  171,90,170,90,170,82,138,82,137,82,3,105,74,9,73,74,142,41,74,40,
+  66,73,74,40,66,73,74,8,66,8,66,40,66,8,58,232,57,231,57,231,
+  57,199,57,231,57,4,199,49,135,167,49,167,41,167,41,167,49,134,41,167,
+  41,134,41,6,102,33,146,37,25,78,83,236,74,179,140,243,156,146,148,243,
+  156,243,156,211,148,211,156,178,148,179,148,210,148,211,156,240,131,143,115,146,
+  140,113,140,4,146,148,143,114,140,146,140,81,140,49,132,49,132,16,124,239,
+  123,207,115,207,115,239,115,207,115,175,107,207,115,175,107,142,107,3,207,107,
+  155,174,107,142,99,142,99,110,91,143,99,175,107,142,99,110,99,143,107,143,
+  99,207,107,175,107,143,99,175,99,110,91,143,99,175,99,143,107,143,99,175,
+  99,143,99,143,99,175,99,175,99,143,99,175,107,175,107,3,175,99,130,207,
+  99,207,107,3,175,99,163,207,107,175,99,175,107,208,107,207,99,143,99,175,
+  107,175,107,143,99,175,99,207,107,175,99,175,99,207,99,175,107,207,107,175,
+  107,175,107,208,107,240,107,208,107,208,107,175,99,207,107,207,107,175,99,240,
+  107,208,107,175,99,175,99,240,107,207,107,208,107,207,99,175,99,3,208,107,
+  148,175,99,208,107,175,99,208,107,207,99,240,107,208,107,208,99,175,99,208,
+  107,175,99,176,99,175,107,175,99,208,107,208,107,143,99,175,99,208,107,143,
+  99,5,175,99,135,208,99,143,99,207,107,175,99,207,107,143,99,143,99,3,
+  175,107,145,207,107,175,107,175,99,175,99,208,107,175,99,208,107,208,107,176,
+  99,175,99,143,99,111,99,208,107,240,107,208,99,175,99,143,99,3,175,99,
+  153,208,107,208,99,240,107,240,107,17,116,240,107,240,107,240,115,78,91,233,
+  57,9,58,9,58,8,50,9,50,200,49,200,49,200,41,168,41,168,41,167,
+  41,135,33,167,41,135,41,167,41,135,33,4,135,41,3,167,41,187,168,41,
+  168,41,200,49,200,49,233,49,233,49,9,58,42,58,75,66,107,74,106,74,
+  107,74,139,74,236,90,17,124,147,132,241,107,208,107,241,107,241,107,17,116,
+  50,116,82,116,114,116,115,116,115,124,115,116,115,116,83,116,50,108,18,100,
+  241,99,209,91,82,116,215,165,20,141,179,132,110,99,105,74,105,74,138,82,
+  240,115,240,107,171,66,37,41,97,8,4,25,240,123,179,140,179,132,203,74,
+  40,66,41,74,41,74,73,74,40,74,41,74,73,74,73,74,3,105,74,142,
+  174,115,118,173,183,181,118,165,106,58,42,50,43,50,42,58,201,41,38,25,
+  99,8,131,8,99,8,99,8,3,100,0,143,165,8,135,41,106,74,204,82,
+  237,90,237,90,13,91,13,91,46,99,110,107,143,107,175,115,208,115,208,115,
+  241,123,4,17,124,141,17,132,49,124,49,132,49,132,17,124,49,124,17,132,
+  49,124,49,132,49,132,81,132,114,140,81,140,7,114,140,6,81,132,3,49,
+  132,132,81,132,81,132,49,132,81,132,6,49,132,140,81,132,49,132,49,132,
+  81,132,45,99,4,33,4,33,36,33,4,33,4,33,36,33,36,33,3,4,
+  33,129,36,33,5,4,33,140,195,24,130,16,36,33,9,115,134,106,36,74,
+  41,115,36,82,40,123,36,82,4,74,36,82,3,195,65,135,228,73,69,82,
+  134,98,36,82,227,73,227,73,4,74,3,101,90,174,133,98,133,98,166,106,
+  166,98,230,106,198,106,198,106,4,82,195,65,163,65,135,82,17,189,82,205,
+  82,205,50,213,207,188,45,164,111,172,111,172,78,164,17,197,198,114,130,57,
+  110,156,17,197,143,180,50,197,139,155,130,57,231,98,74,164,8,156,231,155,
+  199,147,200,147,168,139,102,131,71,123,6,115,229,114,4,82,163,65,195,65,
+  163,65,163,65,195,65,4,163,65,130,195,65,162,65,3,163,65,133,162,65,
+  162,65,163,65,162,65,163,65,3,162,57,149,162,65,162,57,162,65,162,65,
+  195,65,163,65,195,65,228,73,228,73,4,74,37,82,69,90,134,98,135,98,
+  167,106,200,106,232,114,8,115,8,123,41,123,41,123,244,4,134,44,99,12,
+  99,44,99,12,99,12,99,44,91,4,44,99,138,45,91,45,75,143,43,17,
+  12,147,20,212,28,244,36,115,44,175,75,45,91,3,44,99,151,45,99,44,
+  99,44,91,45,99,45,91,45,91,78,59,209,27,83,12,213,20,53,29,86,
+  37,179,52,175,75,45,99,12,99,44,99,45,91,45,91,44,91,45,91,45,
+  91,44,91,4,45,99,132,44,99,45,91,44,91,44,91,3,45,99,151,77,
+  99,45,99,45,99,77,99,77,99,45,91,45,91,45,99,77,99,77,99,45,
+  99,77,99,77,99,77,91,45,99,77,99,77,91,77,99,77,91,77,99,45,
+  99,77,99,77,91,4,77,99,129,78,99,3,77,99,129,77,91,4,77,99,
+  129,110,99,3,77,99,139,109,99,77,99,109,91,109,99,77,99,77,91,110,
+  99,77,99,109,99,77,99,77,91,3,77,99,147,78,99,109,99,109,99,77,
+  99,45,91,12,83,236,82,236,90,12,91,45,91,110,99,207,107,49,116,114,
+  124,146,124,147,124,147,124,147,132,179,124,5,179,132,138,180,132,179,132,179,
+  132,212,132,211,132,179,132,211,132,179,132,212,132,180,132,5,211,132,138,212,
+  132,179,132,179,132,211,132,180,132,179,124,180,132,179,132,179,132,180,132,3,
+  179,132,130,180,124,179,132,6,180,132,149,212,132,82,116,110,91,105,66,4,
+  25,195,16,232,41,111,83,50,108,179,132,180,132,212,124,212,132,180,132,179,
+  124,179,124,180,124,180,124,180,132,212,132,212,132,7,244,132,150,211,132,179,
+  132,150,157,206,123,170,90,202,90,170,90,170,90,138,82,138,82,137,82,105,
+  82,105,74,105,74,73,74,73,74,105,74,73,74,72,74,73,74,72,74,72,
+  74,3,73,74,138,40,66,73,74,41,74,40,66,8,66,8,66,232,57,231,
+  57,8,66,199,57,4,231,57,137,199,57,167,49,167,41,167,41,167,49,166,
+  41,167,49,134,41,134,41,6,102,33,157,70,33,46,91,172,74,20,157,244,
+  156,243,156,179,156,211,148,211,156,179,148,179,148,178,148,179,148,211,156,16,
+  132,138,74,48,132,113,140,146,148,178,148,178,148,146,148,146,148,146,140,114,
+  140,81,140,49,132,48,132,239,123,5,207,115,155,175,107,207,115,142,107,142,
+  107,175,107,142,107,175,107,174,107,142,99,142,99,175,99,175,99,142,99,175,
+  99,143,99,110,99,174,99,142,99,142,99,175,107,110,91,142,99,143,99,143,
+  99,175,107,175,107,143,99,3,175,99,136,208,107,175,107,175,107,143,99,143,
+  99,175,99,175,107,208,107,3,175,107,132,175,99,175,107,207,107,207,107,5,
+  175,99,156,208,107,175,107,175,107,207,99,208,99,208,107,175,99,207,107,240,
+  107,208,107,208,107,176,107,208,107,207,99,208,107,208,99,175,99,208,107,208,
+  107,207,107,208,107,175,99,207,107,208,107,208,107,175,99,208,107,240,107,3,
+  208,107,165,207,107,208,107,208,107,240,107,208,107,240,107,208,107,208,107,207,
+  107,176,107,208,107,208,107,176,99,208,107,208,107,175,99,208,107,175,99,143,
+  91,240,107,208,107,175,99,240,107,208,107,175,99,208,107,207,107,175,107,175,
+  99,175,107,143,99,175,99,143,99,175,107,175,107,175,99,207,107,3,175,99,
+  144,142,91,175,99,176,99,143,99,208,99,143,91,175,99,175,99,143,99,142,
+  99,208,107,175,99,207,99,207,107,240,107,240,107,3,208,107,135,240,107,82,
+  124,78,91,232,49,9,58,233,57,41,58,3,232,49,135,200,49,200,41,167,
+  41,168,41,167,33,167,41,135,33,3,135,41,131,167,41,135,41,135,41,3,
+  167,41,129,200,41,3,200,49,3,9,58,131,42,58,74,66,107,74,3,139,
+  74,139,237,90,17,116,147,124,208,107,208,107,241,115,241,115,17,116,50,116,
+  82,116,115,124,5,147,124,155,115,116,82,116,50,108,50,108,147,132,215,165,
+  244,140,114,132,110,107,105,82,105,74,138,74,208,107,208,107,203,74,36,33,
+  98,8,195,16,207,115,179,132,147,132,236,74,40,66,41,66,41,74,73,74,
+  40,66,3,73,74,145,105,74,105,74,73,74,174,115,117,173,182,181,150,173,
+  171,66,10,50,42,50,42,50,169,41,6,25,131,8,99,8,99,8,100,8,
+  3,100,0,143,165,8,103,41,74,74,204,82,204,90,237,90,13,91,45,99,
+  46,99,78,107,143,107,175,107,208,115,208,123,240,123,3,17,124,131,49,124,
+  49,132,49,132,3,49,124,129,17,124,3,49,124,132,49,132,49,132,81,132,
+  82,140,7,114,140,6,81,132,5,49,132,129,81,132,7,49,132,138,81,132,
+  49,132,49,132,81,132,110,107,37,33,36,33,36,33,4,33,36,33,9,4,
+  33,167,36,33,4,33,227,24,163,16,227,24,233,106,200,122,227,73,41,115,
+  69,82,41,115,69,82,133,90,231,114,69,82,101,90,231,106,166,106,198,106,
+  40,123,7,115,231,114,230,106,230,106,71,123,7,115,8,115,39,123,198,106,
+  231,114,231,114,7,123,198,106,198,106,36,82,163,65,163,57,37,74,208,172,
+  3,82,213,197,49,205,17,205,50,213,18,213,50,205,82,213,105,147,129,57,
+  139,123,175,180,236,155,111,172,139,147,194,73,228,65,133,90,68,82,36,74,
+  227,73,227,65,227,65,195,65,195,65,163,57,163,57,163,65,162,65,163,65,
+  163,65,162,65,162,57,162,65,163,65,162,57,163,57,163,57,162,57,163,65,
+  163,57,195,65,195,65,227,73,228,65,4,74,37,74,69,82,101,90,134,90,
+  167,98,167,98,232,114,233,114,232,114,9,123,9,123,41,123,41,123,9,123,
+  9,123,8,115,232,114,199,106,167,106,134,98,134,98,69,90,36,82,4,82,
+  228,73,180,4,130,44,99,12,99,5,44,99,160,44,91,12,99,44,99,44,
+  99,45,91,45,91,77,67,176,27,82,12,180,20,245,28,212,36,17,60,78,
+  83,45,91,12,99,45,99,44,99,44,99,45,99,45,99,45,91,45,91,45,
+  83,110,59,241,19,147,4,245,20,86,37,53,37,114,52,110,83,4,45,99,
+  131,44,99,45,91,44,91,6,45,99,143,45,91,45,99,45,99,45,91,45,
+  99,45,99,45,91,45,99,45,99,77,99,45,99,77,99,45,99,77,99,45,
+  99,19,77,99,132,109,99,77,99,77,91,77,91,4,77,99,130,109,99,77,
+  91,3,77,99,133,109,99,109,99,77,99,109,99,109,99,7,77,99,142,109,
+  99,77,91,77,99,109,99,45,91,236,82,204,82,236,90,12,91,45,91,142,
+  99,208,107,81,116,114,124,4,147,124,132,179,124,179,132,179,132,179,124,6,
+  179,132,151,211,132,211,132,212,132,180,132,179,132,212,132,180,132,211,132,212,
+  132,180,132,212,132,180,132,179,132,180,132,211,132,211,132,180,132,180,132,179,
+  132,211,132,179,132,180,132,179,132,6,180,132,141,179,132,179,132,212,132,146,
+  124,175,107,203,74,102,41,195,24,69,25,13,75,241,107,147,124,212,132,4,
+  180,132,131,179,124,179,124,180,124,3,212,132,3,244,132,129,212,132,4,244,
+  132,132,146,132,211,140,150,165,77,107,3,170,90,129,137,82,3,138,82,129,
+  105,82,3,105,74,10,73,74,130,41,74,40,74,4,40,66,145,8,66,8,
+  58,231,57,231,57,199,57,231,57,199,57,231,57,199,49,199,49,167,41,167,
+  41,167,49,167,41,166,41,167,41,134,41,5,102,33,136,69,33,135,33,16,
+  116,204,74,20,157,211,148,243,156,244,164,3,211,156,151,179,148,179,156,211,
+  156,211,156,16,140,37,41,41,58,178,148,146,148,178,148,146,148,114,148,146,
+  140,114,140,113,140,81,132,81,132,49,132,240,123,207,115,207,115,175,107,142,
+  107,3,175,107,185,143,107,142,99,143,99,142,99,175,107,175,107,142,99,175,
+  107,142,99,175,107,142,99,143,99,142,99,174,99,142,99,110,99,142,99,175,
+  99,143,99,143,99,175,99,110,91,175,107,143,99,175,107,175,99,175,99,207,
+  107,175,99,175,99,175,107,143,99,175,99,143,99,175,99,175,99,143,99,175,
+  99,208,107,175,99,207,107,175,99,142,99,175,99,175,107,175,99,175,107,175,
+  99,208,107,175,107,175,99,207,99,240,107,175,107,175,99,175,99,240,115,3,
+  208,107,143,207,99,207,99,208,107,208,99,175,99,175,99,207,107,175,99,240,
+  107,175,99,207,99,208,107,175,99,208,107,208,99,4,208,107,134,207,107,208,
+  107,208,107,240,107,207,107,208,99,4,208,107,158,208,99,208,99,240,107,208,
+  107,240,107,240,107,208,107,208,99,175,99,175,99,176,99,175,107,240,107,207,
+  107,208,107,175,99,207,107,175,99,175,99,175,107,175,99,175,99,143,99,176,
+  99,143,99,207,107,175,107,143,99,175,99,143,91,3,143,99,196,175,99,143,
+  99,143,91,144,99,143,99,208,99,175,99,208,99,240,107,175,99,175,99,240,
+  107,175,99,208,107,16,108,17,116,240,107,78,91,13,91,233,49,9,58,9,
+  58,41,58,9,58,232,49,200,49,200,49,168,41,167,41,168,41,168,41,167,
+  41,167,41,135,33,135,33,167,41,167,41,135,41,135,33,135,41,168,41,168,
+  49,200,49,200,49,232,49,233,49,9,50,41,58,42,58,74,66,139,74,139,
+  74,171,74,171,74,172,74,13,91,16,116,115,124,241,107,82,124,114,124,114,
+  124,147,124,212,140,245,140,21,141,20,141,245,140,3,244,132,156,245,132,244,
+  132,212,132,180,124,20,141,183,165,53,149,211,140,142,107,105,74,105,82,106,
+  74,175,107,208,107,204,74,36,33,130,8,163,16,110,107,179,132,179,132,13,
+  83,40,66,40,74,40,74,40,66,41,74,41,74,3,73,74,140,105,74,105,
+  74,109,107,85,173,182,173,150,173,204,74,234,49,10,50,10,50,201,41,38,
+  17,3,131,8,4,100,0,143,165,8,103,33,42,66,204,82,204,90,237,90,
+  13,91,13,99,78,99,110,107,143,107,143,115,176,115,208,115,240,123,4,17,
+  124,3,49,124,129,49,132,5,49,124,3,81,132,5,114,140,132,114,132,114,
+  140,114,140,82,132,6,81,132,129,49,132,3,81,132,11,49,132,132,81,140,
+  175,115,102,33,4,33,3,36,33,130,4,33,36,33,9,4,33,155,227,24,
+  162,16,195,24,169,90,8,131,194,65,8,115,101,90,232,106,134,90,133,90,
+  8,123,166,106,39,123,169,139,8,123,133,98,166,106,165,98,231,114,230,106,
+  133,98,198,106,166,98,100,90,100,90,36,82,3,36,74,156,227,65,36,74,
+  227,73,195,65,163,65,228,65,110,156,49,205,17,197,17,205,240,196,208,196,
+  175,188,143,180,110,172,110,172,40,139,162,57,70,74,200,98,134,90,102,90,
+  4,74,163,65,163,57,163,57,162,57,163,57,4,162,57,144,163,65,162,65,
+  162,57,195,65,195,65,227,65,227,73,4,74,36,74,37,82,69,90,102,90,
+  135,90,167,98,167,106,199,106,3,232,114,150,9,123,9,115,9,123,8,123,
+  232,122,200,114,200,114,167,106,134,98,102,98,102,90,37,90,36,82,4,82,
+  227,73,195,73,195,73,195,65,162,65,162,65,163,65,162,65,3,162,57,131,
+  69,82,36,90,194,73,195,4,5,44,99,129,12,99,4,44,99,146,12,99,
+  44,91,44,99,44,99,45,83,110,51,17,20,147,12,212,28,245,36,147,44,
+  143,75,45,91,45,99,44,99,45,99,45,91,44,91,3,44,99,139,45,91,
+  45,83,143,43,17,20,180,12,21,29,86,37,245,44,240,67,45,83,44,99,
+  4,45,99,138,45,91,77,99,45,99,45,99,44,99,45,99,77,99,45,91,
+  45,99,45,91,4,45,99,130,77,99,45,99,3,77,99,130,45,99,45,99,
+  3,77,99,133,77,91,45,99,77,99,77,99,45,99,19,77,99,131,109,99,
+  77,99,110,99,6,77,99,156,109,99,77,99,77,99,109,99,109,99,77,99,
+  109,99,109,99,77,99,110,99,110,99,77,99,12,91,236,82,204,82,236,90,
+  13,91,45,99,142,99,240,107,81,116,114,124,146,124,147,124,179,132,147,124,
+  179,132,179,124,6,179,132,133,180,132,180,132,211,132,211,132,212,132,3,211,
+  132,144,180,132,212,132,180,132,212,132,180,132,212,132,180,132,211,132,211,132,
+  180,132,180,132,180,124,180,132,212,132,179,132,211,132,6,180,132,149,212,132,
+  180,132,212,132,179,132,240,115,45,91,232,49,228,24,196,16,139,58,176,91,
+  83,116,180,132,180,132,212,132,212,132,180,132,180,124,179,124,180,124,180,124,
+  5,212,132,6,244,132,132,146,124,243,140,150,173,203,90,3,170,90,4,138,
+  82,131,137,82,73,74,105,74,7,73,74,141,41,74,73,74,41,74,40,66,
+  40,74,40,66,73,74,41,66,40,66,8,66,8,58,199,57,232,57,3,231,
+  57,3,199,49,133,167,49,167,41,199,49,167,49,167,41,3,134,41,6,102,
+  33,157,70,33,13,83,106,66,20,157,244,164,211,156,20,157,244,156,244,164,
+  243,156,146,148,211,148,211,156,211,156,207,123,228,32,233,49,211,148,114,140,
+  114,148,146,148,114,148,146,140,114,140,113,140,81,132,49,132,16,132,240,123,
+  3,207,115,131,175,107,175,107,142,107,3,175,107,135,142,107,142,99,110,99,
+  142,99,142,99,143,107,110,99,3,142,99,140,175,99,142,99,143,99,175,99,
+  175,99,143,99,175,107,110,99,175,99,142,99,143,99,143,99,3,175,99,136,
+  175,107,207,107,175,107,175,107,207,107,175,99,175,107,175,107,3,175,99,139,
+  175,107,207,99,175,99,175,107,175,107,207,99,175,99,207,107,175,99,208,107,
+  207,107,3,175,99,166,207,107,208,107,207,107,240,115,240,107,240,107,208,107,
+  176,107,208,107,175,99,175,99,208,99,208,107,208,107,208,99,208,99,240,107,
+  208,107,208,99,240,107,208,107,240,107,208,107,240,107,208,107,240,107,208,107,
+  208,107,240,107,208,107,207,107,240,107,208,107,240,107,208,107,240,107,208,107,
+  208,107,3,240,107,141,208,107,240,107,240,107,208,107,175,99,208,107,176,99,
+  175,99,208,107,208,107,208,99,175,107,208,107,3,175,99,131,207,99,175,99,
+  208,99,4,175,99,148,143,99,175,99,208,99,175,99,208,107,175,99,143,99,
+  176,99,175,99,176,99,143,99,175,99,208,99,240,107,207,99,208,107,240,107,
+  208,99,175,99,175,99,3,240,107,143,45,91,45,91,232,49,41,58,9,58,
+  41,58,9,58,233,49,200,49,232,49,200,41,200,41,168,41,167,41,168,41,
+  8,167,41,155,200,41,200,49,232,41,200,49,232,49,9,58,42,58,74,58,
+  106,66,107,74,171,74,204,74,204,82,204,82,236,90,45,99,240,115,147,132,
+  82,124,212,140,21,149,21,149,53,149,86,157,118,157,118,149,118,149,3,86,
+  149,159,118,149,151,149,151,149,86,141,86,141,86,149,183,165,52,149,244,148,
+  207,115,105,74,138,82,105,74,142,107,208,107,204,82,69,41,130,16,130,8,
+  77,99,146,132,147,132,45,83,40,66,41,74,40,66,40,66,41,66,41,74,
+  41,74,41,66,3,73,74,142,45,99,52,165,150,173,150,173,13,83,233,49,
+  42,50,42,50,201,41,38,25,132,8,131,8,131,8,99,8,3,100,0,143,
+  133,8,71,33,41,66,204,82,236,90,237,90,13,91,45,99,78,99,78,107,
+  143,107,175,115,175,115,208,115,240,123,4,17,124,3,49,124,129,49,132,5,
+  49,124,140,49,132,82,132,81,132,82,140,82,132,114,132,114,132,114,140,114,
+  140,114,132,114,132,114,140,5,81,132,129,49,132,6,81,132,131,49,132,49,
+  132,81,132,4,49,132,138,81,132,49,132,81,132,240,123,199,49,4,25,4,
+  33,36,33,36,33,4,33,3,36,33,131,4,33,4,33,36,33,4,4,33,
+  153,228,24,163,24,163,24,71,74,73,139,194,65,8,107,134,106,167,98,199,
+  106,3,74,69,82,36,82,133,98,134,90,69,82,227,73,227,73,3,66,4,
+  74,227,73,195,65,227,65,227,65,195,57,3,195,65,130,195,57,194,57,4,
+  195,65,141,163,65,195,65,9,115,138,131,73,123,8,115,231,106,167,106,133,
+  90,101,82,37,74,4,74,195,65,5,163,57,160,195,65,227,65,228,73,4,
+  74,36,82,36,82,69,82,101,90,101,90,166,98,167,98,199,106,200,114,232,
+  106,232,114,232,114,8,115,8,115,232,122,232,114,232,114,200,114,167,106,167,
+  106,135,98,102,98,101,90,37,82,36,82,4,74,4,74,227,73,3,195,65,
+  150,227,73,227,73,4,74,4,74,37,82,70,90,102,98,167,98,199,106,232,
+  114,232,114,41,123,101,98,162,65,195,65,162,65,4,74,102,82,36,82,8,
+  107,68,90,198,106,177,4,134,44,99,12,99,44,99,12,99,44,99,45,99,
+  6,44,99,168,12,91,44,99,44,91,45,91,77,67,175,35,82,12,180,20,
+  244,28,244,36,17,60,77,91,45,91,12,91,45,99,45,99,44,91,44,91,
+  45,99,45,91,45,99,45,91,77,75,176,35,82,12,212,20,53,29,86,37,
+  147,52,142,75,45,91,44,99,45,99,44,99,45,91,44,99,44,99,45,91,
+  45,99,44,91,3,45,99,142,45,91,45,99,44,99,45,99,77,99,45,99,
+  77,99,45,99,77,99,77,99,45,99,45,99,77,99,77,91,10,77,99,129,
+  77,91,7,77,99,129,109,99,4,77,99,130,109,99,77,91,4,77,99,131,
+  110,99,77,99,77,91,5,77,99,130,109,99,77,91,3,77,99,142,77,91,
+  77,99,77,99,77,91,236,82,236,82,236,90,12,91,13,91,77,99,175,107,
+  17,108,82,124,114,124,3,147,124,8,179,132,134,180,132,180,132,179,132,180,
+  132,211,132,211,132,3,212,132,130,211,132,212,132,3,211,132,158,180,132,180,
+  132,212,132,180,132,179,132,179,132,211,132,180,132,180,132,211,132,179,132,179,
+  132,180,132,179,132,179,132,180,132,180,132,211,132,180,132,212,132,81,124,110,
+  99,106,66,4,33,195,24,200,33,111,83,18,116,179,124,180,124,3,180,132,
+  3,179,124,134,180,124,212,124,212,132,212,132,244,132,212,132,7,244,132,139,
+  179,132,20,149,85,165,170,90,171,90,138,82,138,82,170,82,137,82,138,82,
+  105,82,4,105,74,5,73,74,4,41,74,138,40,66,73,74,40,66,40,66,
+  8,66,8,66,40,66,8,58,231,57,8,58,3,231,57,131,199,57,199,49,
+  199,49,3,167,49,133,166,41,167,41,167,41,134,41,134,41,7,102,33,183,
+  13,83,139,66,20,157,211,156,243,156,20,165,20,157,243,156,211,156,211,156,
+  178,148,179,148,243,156,109,115,228,32,106,74,211,148,146,148,114,148,146,148,
+  146,148,146,140,146,148,146,140,81,140,49,132,16,124,240,123,240,123,207,115,
+  175,115,175,115,174,107,175,107,175,107,207,107,142,107,143,99,143,99,142,99,
+  110,99,143,99,142,99,143,99,143,99,110,99,142,99,143,99,142,99,142,99,
+  110,99,175,99,143,107,175,99,142,91,3,175,99,129,143,99,6,175,99,129,
+  143,99,3,175,99,140,208,107,175,99,208,107,175,99,175,107,175,99,207,107,
+  207,107,175,99,207,107,175,107,175,107,3,208,107,153,175,99,207,99,207,99,
+  208,107,240,107,208,107,17,116,240,115,208,99,208,107,175,107,207,99,208,107,
+  208,99,208,99,208,107,208,107,240,107,175,99,240,107,208,107,208,107,240,107,
+  208,107,17,108,3,208,107,141,240,107,240,107,207,107,17,108,240,107,240,107,
+  208,107,240,107,208,107,208,107,240,107,208,107,208,107,5,240,107,152,17,108,
+  17,116,240,107,208,107,208,107,208,99,207,107,208,107,175,99,207,107,208,107,
+  175,99,175,99,208,99,208,99,175,99,207,99,208,99,208,107,208,99,176,99,
+  143,99,175,99,208,107,3,175,99,152,176,99,176,99,175,99,17,108,176,91,
+  208,99,208,99,176,99,143,99,176,99,175,99,208,99,175,99,208,99,208,107,
+  208,99,208,99,78,83,13,83,232,49,9,50,9,58,41,58,9,58,3,232,
+  49,135,200,41,168,41,200,41,232,41,167,41,199,41,167,41,3,168,41,184,
+  167,41,200,41,167,41,200,49,232,49,233,49,9,58,41,58,41,58,74,66,
+  106,66,107,66,139,74,204,74,236,82,236,82,237,82,45,91,77,99,240,115,
+  147,132,147,124,53,149,118,157,118,149,118,157,119,157,118,149,118,149,119,149,
+  151,149,183,157,216,157,216,149,249,157,249,157,216,149,151,141,119,149,183,165,
+  53,149,244,140,207,115,73,74,105,74,105,74,110,99,176,107,236,82,69,41,
+  162,16,98,8,12,91,114,132,114,124,13,91,3,40,66,132,41,66,40,66,
+  41,74,41,66,4,73,74,138,12,99,19,165,117,173,150,181,78,91,233,41,
+  10,50,10,50,233,41,71,25,3,131,8,149,99,8,100,8,100,0,100,0,
+  133,8,71,33,42,66,172,82,236,82,237,90,13,99,45,99,46,99,78,107,
+  143,107,175,115,208,115,208,115,240,123,17,124,17,124,3,49,124,131,49,132,
+  49,124,49,132,3,49,124,131,17,124,49,132,49,132,3,81,132,3,114,132,
+  6,114,140,129,82,132,11,81,132,5,49,132,135,81,132,49,132,49,132,81,
+  132,16,132,9,58,4,25,7,36,33,4,4,33,147,36,33,36,33,4,33,
+  228,32,163,24,162,16,231,57,74,139,227,81,167,98,199,106,134,90,8,115,
+  195,65,227,65,227,65,195,65,195,65,227,65,4,195,65,129,195,57,7,195,
+  65,131,163,57,195,65,195,65,5,163,57,146,195,57,163,57,162,57,195,65,
+  227,65,228,65,4,74,36,74,36,82,69,82,102,90,134,98,134,98,167,98,
+  199,106,200,106,200,114,200,114,6,232,114,156,199,114,167,106,166,98,134,98,
+  134,98,69,90,37,90,36,82,36,82,3,74,227,73,227,65,227,65,228,73,
+  227,73,4,74,4,74,37,82,69,90,102,90,134,98,167,98,167,106,200,114,
+  200,114,233,122,8,123,8,123,4,9,123,145,232,114,232,114,199,106,167,106,
+  134,98,134,98,102,90,73,131,161,73,163,65,162,65,102,82,106,131,69,98,
+  166,98,198,106,199,106,150,4,130,44,99,12,99,4,44,99,129,12,91,4,
+  44,99,150,12,91,44,99,44,99,45,91,12,91,45,91,45,83,110,59,17,
+  28,147,20,244,28,21,37,147,52,175,67,13,91,45,99,45,99,45,91,45,
+  91,44,99,44,91,44,99,3,45,91,139,78,59,241,19,147,12,245,28,86,
+  37,21,45,49,60,77,83,44,99,44,99,44,91,3,45,99,136,45,91,45,
+  99,45,91,44,99,45,99,45,91,45,99,44,99,3,45,99,139,45,91,77,
+  99,45,99,45,99,77,99,45,99,77,99,77,91,77,99,77,99,45,99,6,
+  77,99,129,77,91,10,77,99,132,77,91,77,99,77,99,109,99,7,77,99,
+  133,109,99,109,99,77,99,109,99,77,99,3,109,99,135,77,99,77,99,77,
+  91,77,99,110,99,109,99,45,91,3,236,82,137,13,91,13,91,78,99,175,
+  107,17,116,82,124,114,124,147,124,147,124,11,179,132,3,211,132,133,179,132,
+  211,132,179,132,211,132,211,132,4,180,132,131,212,132,211,132,212,132,3,211,
+  132,132,179,132,180,132,179,132,180,132,4,179,132,129,180,124,3,180,132,152,
+  212,132,147,132,175,107,236,82,134,41,195,24,37,25,13,67,241,99,115,124,
+  179,132,212,124,212,132,180,132,179,124,179,124,147,124,179,124,180,124,212,124,
+  212,132,212,132,244,132,212,132,7,244,132,131,179,132,20,149,243,156,3,170,
+  90,139,138,82,170,82,138,82,137,82,105,74,105,82,105,74,105,74,73,74,
+  105,74,41,74,4,73,74,131,41,74,40,66,41,74,5,40,66,131,8,66,
+  8,66,232,57,3,231,57,4,199,57,3,167,49,3,167,41,130,135,41,134,
+  41,8,102,33,147,204,74,204,82,53,165,178,148,211,156,85,173,20,165,243,
+  156,243,156,146,148,211,156,178,148,178,148,77,107,195,24,236,82,179,148,178,
+  148,178,148,4,146,148,137,146,140,81,140,49,132,16,124,240,123,240,123,207,
+  115,207,115,174,107,4,175,107,157,142,99,175,107,175,107,143,99,143,107,143,
+  99,110,99,143,99,175,107,142,99,142,99,143,99,175,99,143,99,142,99,175,
+  107,143,99,143,99,142,99,143,99,143,99,175,99,142,99,143,99,142,91,143,
+  91,175,99,175,99,207,107,3,175,107,4,175,99,132,207,99,175,99,207,107,
+  175,107,3,175,99,135,175,107,175,107,240,107,175,107,175,107,207,99,175,99,
+  4,208,107,129,240,107,5,208,107,131,208,99,240,107,208,99,3,208,107,129,
+  208,99,3,208,107,136,240,107,208,99,208,107,240,107,208,107,240,107,240,107,
+  207,107,8,240,107,133,208,107,208,107,240,107,240,107,208,107,5,240,107,131,
+  17,116,240,107,240,107,6,208,107,142,176,99,208,107,175,99,176,99,240,107,
+  175,99,208,107,208,99,208,107,208,99,175,99,208,99,175,99,208,99,3,175,
+  99,187,143,91,143,99,241,107,50,108,143,91,208,99,208,99,143,91,175,99,
+  143,91,176,99,208,99,208,99,240,107,175,99,176,99,13,75,204,74,9,50,
+  9,58,9,58,9,50,9,58,200,49,232,49,200,49,232,49,200,41,200,41,
+  200,49,167,41,168,41,168,41,167,41,200,41,168,41,200,41,200,41,168,41,
+  233,49,9,58,233,49,9,58,41,58,41,58,106,66,106,66,139,74,171,74,
+  236,82,237,82,13,83,13,91,45,99,78,99,208,107,114,124,114,124,53,149,
+  3,151,157,165,151,149,151,149,118,149,151,149,184,157,216,157,249,157,249,149,
+  25,158,58,158,25,158,249,157,184,149,151,165,118,157,20,149,240,115,73,74,
+  105,74,73,74,77,99,175,107,236,82,101,41,163,16,97,8,171,82,49,124,
+  49,116,13,91,40,66,40,66,41,74,40,66,41,66,40,66,40,66,3,73,
+  74,140,105,74,203,90,210,156,84,165,118,173,110,99,233,41,10,50,42,50,
+  201,41,39,25,164,8,3,99,8,146,100,8,100,0,100,0,132,8,38,33,
+  9,66,172,82,236,90,13,91,13,99,45,99,78,99,77,107,143,107,143,107,
+  176,115,240,115,240,123,4,17,124,132,49,132,49,124,49,132,49,132,4,49,
+  124,3,49,132,133,81,132,82,132,114,140,114,132,114,132,4,114,140,134,82,
+  132,81,132,113,132,81,132,81,132,49,132,5,81,132,4,49,132,129,81,132,
+  6,49,132,132,81,132,49,132,106,74,228,24,3,36,33,136,4,33,36,33,
+  36,33,4,33,36,33,36,33,4,33,36,33,4,4,33,138,195,24,163,24,
+  134,41,106,139,36,90,134,90,8,115,69,82,41,123,227,65,10,195,65,129,
+  195,57,4,195,65,145,228,65,4,74,4,74,37,82,69,82,101,90,102,90,
+  134,98,167,98,167,106,167,106,199,106,200,106,200,106,200,114,200,114,232,114,
+  3,200,114,142,199,106,167,106,167,106,167,98,134,90,102,90,102,90,37,90,
+  37,82,4,74,4,74,228,73,227,73,227,73,3,4,74,142,37,82,69,82,
+  101,90,102,90,134,98,167,106,167,106,200,114,232,114,233,114,233,122,9,123,
+  9,123,8,123,3,232,114,141,199,114,199,106,134,106,134,98,101,90,69,90,
+  36,82,36,82,4,74,227,73,195,73,195,65,194,65,5,162,65,139,163,57,
+  138,123,226,81,163,65,162,65,37,74,72,123,161,73,195,65,4,82,195,73,
+  207,4,135,12,99,12,91,44,99,12,99,44,99,44,99,12,91,5,44,99,
+  163,45,99,44,99,44,91,44,91,44,99,44,99,45,91,45,75,176,35,82,
+  12,212,20,244,36,212,44,17,60,77,83,45,99,45,99,45,91,45,99,45,
+  99,45,91,44,99,44,99,45,91,45,91,45,75,143,43,50,20,212,12,53,
+  29,86,37,211,44,208,75,45,91,44,99,3,45,99,134,45,91,45,99,44,
+  99,44,91,45,99,45,91,5,45,99,130,77,99,45,99,3,77,99,132,45,
+  99,77,91,77,91,45,91,7,77,99,130,77,91,77,91,10,77,99,129,77,
+  91,9,77,99,135,77,91,109,99,77,99,109,99,110,99,77,99,109,99,4,
+  77,99,147,109,99,77,99,110,99,77,99,44,91,236,90,236,82,236,90,13,
+  91,45,91,110,99,207,107,49,116,114,124,146,124,147,124,179,132,147,124,147,
+  132,9,179,132,4,211,132,149,179,132,211,132,211,132,179,132,180,132,212,132,
+  179,132,211,132,179,132,211,132,211,132,212,132,180,132,180,132,179,132,179,124,
+  179,132,180,132,179,132,179,132,179,124,3,179,132,149,180,132,180,132,179,132,
+  16,116,45,91,8,58,227,24,195,16,74,50,176,91,82,116,180,132,179,132,
+  212,132,212,132,180,132,180,132,179,124,179,124,180,124,180,124,4,212,132,7,
+  244,132,135,212,132,211,140,85,149,113,140,170,90,203,90,170,90,3,138,82,
+  150,137,82,105,74,105,82,105,74,105,74,73,74,73,74,105,74,40,74,72,
+  74,73,74,73,74,41,74,73,74,40,66,40,66,40,74,40,66,40,66,8,
+  66,8,66,40,66,3,232,57,3,231,57,139,199,49,199,49,167,49,166,49,
+  166,49,167,41,167,49,135,41,134,41,134,41,134,33,7,102,33,148,204,82,
+  45,91,20,165,178,156,243,156,52,165,244,156,20,165,243,156,146,148,20,165,
+  179,156,211,156,12,99,163,24,78,91,211,156,179,148,178,148,178,148,3,146,
+  148,135,113,140,113,140,49,132,16,124,240,123,240,123,175,115,4,175,107,143,
+  142,107,174,107,207,107,208,107,175,107,175,99,175,107,142,99,110,99,110,99,
+  142,99,142,99,110,99,143,99,142,99,3,143,99,138,175,99,175,99,143,99,
+  175,107,142,99,142,99,175,99,175,99,143,99,143,99,3,175,99,134,175,107,
+  175,99,175,107,143,99,208,107,207,107,3,175,99,134,207,107,175,107,175,99,
+  208,107,175,99,175,107,3,208,107,153,207,99,240,107,207,107,208,107,240,107,
+  208,107,240,107,240,107,208,107,208,107,207,107,208,107,208,107,240,107,208,99,
+  208,99,208,107,208,99,208,107,208,99,240,107,240,107,208,107,208,107,240,107,
+  3,208,107,142,240,107,208,107,208,99,208,107,240,107,240,107,16,116,240,107,
+  208,107,240,115,240,107,240,107,208,107,208,107,3,240,107,133,208,107,16,108,
+  240,107,240,107,17,108,3,240,107,129,208,99,7,208,107,129,208,99,3,208,
+  107,151,208,99,175,107,208,107,176,99,208,99,208,99,240,107,207,99,175,99,
+  175,99,143,91,175,99,208,99,208,99,176,99,208,99,240,107,175,99,175,99,
+  176,91,240,99,208,99,176,99,3,208,99,174,204,66,237,74,41,58,9,58,
+  41,58,9,50,41,58,233,49,232,49,232,49,200,41,200,41,200,49,232,49,
+  167,41,199,41,200,49,200,41,168,41,200,49,200,49,200,41,232,49,233,49,
+  233,49,9,58,74,58,41,58,74,66,139,74,139,74,171,74,172,74,237,82,
+  13,83,13,83,45,91,78,91,78,99,208,107,115,132,114,124,20,149,183,165,
+  184,157,184,157,3,183,157,162,184,157,216,157,248,157,25,158,25,158,58,166,
+  122,166,90,166,90,166,57,166,183,157,85,149,211,148,16,116,105,74,105,74,
+  73,74,12,91,110,99,203,82,101,41,163,24,97,8,73,66,207,115,240,115,
+  12,83,40,66,41,74,40,66,40,66,41,66,41,74,73,66,3,73,74,161,
+  105,74,170,90,146,148,52,165,117,173,175,107,201,41,10,50,233,49,201,41,
+  39,25,132,8,131,8,99,8,99,8,100,8,100,0,100,0,132,0,38,33,
+  9,66,172,82,236,90,13,91,13,99,13,99,46,99,78,107,111,107,175,115,
+  175,115,208,123,240,123,5,17,124,4,49,132,132,49,124,17,124,49,124,17,
+  124,3,49,132,132,81,132,81,132,114,140,82,132,3,114,140,131,82,132,114,
+  140,114,140,8,81,132,129,49,132,6,81,132,4,49,132,3,81,132,132,204,
+  82,228,32,36,33,4,33,3,36,33,133,4,33,4,33,36,33,4,33,36,
+  33,3,4,33,156,36,33,4,33,195,24,162,16,36,33,74,123,101,98,69,
+  82,40,115,36,82,73,115,37,82,228,65,4,74,4,74,36,74,36,74,69,
+  82,70,82,102,90,102,90,134,98,167,98,167,106,167,106,200,106,232,106,232,
+  106,4,232,114,140,199,114,199,114,199,106,167,106,167,106,167,98,134,98,102,
+  90,101,90,69,82,37,82,37,82,4,4,74,139,37,74,36,74,36,74,37,
+  82,102,90,102,90,134,98,135,98,167,106,168,106,200,106,3,232,114,149,233,
+  122,8,115,232,122,232,122,232,114,232,114,199,106,167,106,167,106,134,98,101,
+  90,69,90,69,82,36,82,4,74,228,73,227,65,194,65,195,65,162,57,162,
+  57,3,162,65,135,195,65,162,65,163,65,162,65,195,65,195,65,163,65,3,
+  195,65,142,163,65,195,65,195,65,130,57,41,107,36,98,162,73,195,65,163,
+  65,138,123,193,89,195,65,163,65,194,65,158,4,131,12,91,44,99,12,91,
+  7,44,99,129,12,99,3,44,99,143,45,99,45,91,44,91,44,99,44,91,
+  45,91,45,83,110,59,17,20,147,20,244,36,21,37,115,52,142,75,45,91,
+  6,45,99,141,45,91,44,91,45,91,45,83,78,67,241,27,115,12,245,20,
+  86,37,53,37,82,60,78,83,12,91,3,45,99,134,77,99,45,91,45,99,
+  45,91,45,99,44,99,3,45,99,129,45,91,3,77,99,132,45,99,77,99,
+  77,99,45,99,6,77,99,129,77,91,21,77,99,130,109,99,110,99,5,77,
+  99,131,109,99,109,99,77,99,3,109,99,147,77,99,78,99,109,99,77,99,
+  77,99,13,91,236,82,204,82,236,82,13,99,45,99,110,99,240,107,49,116,
+  114,124,146,124,147,132,147,132,179,124,11,179,132,131,211,132,211,132,179,132,
+  3,211,132,142,179,132,179,132,211,132,211,132,180,132,180,132,211,132,179,132,
+  212,132,180,132,211,132,179,132,180,132,180,132,4,179,132,147,180,132,179,124,
+  211,132,179,132,179,132,82,124,142,99,138,66,37,33,195,24,167,33,78,83,
+  17,108,147,124,180,132,180,132,212,132,180,132,180,132,3,179,124,130,180,124,
+  180,124,4,212,132,4,244,132,144,244,140,244,132,244,132,211,132,211,140,85,
+  157,15,124,171,90,202,90,170,90,170,82,138,82,105,82,138,82,105,82,105,
+  74,4,73,74,129,105,74,3,73,74,131,40,74,40,66,73,74,5,40,66,
+  3,8,66,144,232,57,8,66,231,57,232,57,231,57,231,57,199,49,199,49,
+  134,49,167,49,167,41,166,41,167,49,135,41,134,41,135,41,8,102,33,188,
+  171,74,110,107,52,165,243,156,52,165,244,164,20,157,243,156,244,164,178,148,
+  211,148,243,164,211,156,171,90,98,16,49,124,211,156,179,156,211,156,178,148,
+  146,148,178,148,146,148,146,140,113,140,81,132,16,132,240,123,207,115,175,115,
+  175,107,175,107,142,107,175,107,175,107,142,107,175,107,207,107,175,107,143,99,
+  175,107,175,107,110,99,110,99,143,99,142,99,143,99,142,99,175,107,143,99,
+  142,91,175,107,143,99,143,99,175,99,175,107,143,99,175,107,175,107,207,107,
+  5,175,99,146,175,107,143,99,207,107,143,99,175,99,207,107,175,99,175,99,
+  207,107,175,107,207,107,207,99,207,99,208,107,175,107,208,107,208,107,207,107,
+  4,208,107,3,240,107,135,207,107,240,107,208,107,208,107,176,99,208,107,208,
+  107,4,208,99,3,208,107,134,240,107,208,99,240,107,208,107,240,107,208,107,
+  3,240,107,138,208,107,240,107,208,107,208,107,240,107,240,107,208,107,240,107,
+  240,107,208,107,3,240,107,129,240,115,6,240,107,139,16,108,16,108,240,107,
+  208,107,208,107,240,107,208,107,240,107,208,107,240,107,208,107,3,208,99,132,
+  240,107,208,107,208,107,240,107,3,208,99,143,240,107,208,107,240,107,176,99,
+  208,99,143,91,208,107,208,99,240,99,208,99,175,99,208,99,176,99,176,91,
+  240,99,4,208,99,132,240,99,110,91,236,74,9,50,4,41,58,130,232,49,
+  9,50,3,232,49,162,200,41,200,41,168,41,167,41,200,49,200,41,200,41,
+  232,49,233,49,200,41,200,49,9,58,9,50,9,58,74,58,74,66,74,58,
+  171,74,139,74,171,74,236,82,236,82,13,83,45,83,45,91,78,99,110,107,
+  240,115,147,132,82,116,211,132,151,157,184,165,184,157,4,216,157,132,25,158,
+  25,158,57,166,58,166,3,123,174,153,90,166,58,166,183,157,85,149,179,140,
+  16,124,73,74,105,74,73,74,203,82,77,99,171,82,101,41,195,24,65,8,
+  232,57,142,107,175,107,236,82,41,66,40,66,40,66,8,66,40,66,40,66,
+  3,41,66,141,73,74,73,74,138,82,81,140,20,165,85,173,240,115,201,41,
+  10,50,10,50,201,41,71,25,132,8,3,99,8,147,99,0,100,0,100,0,
+  132,0,6,25,233,57,171,82,204,90,237,90,13,99,13,99,46,99,78,107,
+  111,107,143,107,176,115,208,115,240,115,241,123,3,17,124,129,49,124,4,49,
+  132,129,17,124,3,49,124,3,49,132,4,82,132,137,114,132,114,140,114,132,
+  114,140,113,132,81,132,82,132,81,132,82,132,5,81,132,129,49,132,3,81,
+  132,7,49,132,140,81,132,81,132,81,140,45,99,4,25,4,33,36,33,4,
+  33,36,33,4,33,4,33,36,33,4,4,33,159,36,33,4,33,36,33,4,
+  33,227,24,163,24,4,33,10,115,199,114,227,65,41,123,68,82,40,115,8,
+  115,199,106,8,115,232,114,232,114,8,123,9,123,232,114,232,114,8,123,200,
+  114,200,114,166,106,166,106,134,98,134,90,101,90,101,90,4,37,82,142,4,
+  74,4,74,37,82,37,82,69,82,69,82,101,90,102,90,135,98,167,98,167,
+  106,200,106,200,106,200,114,6,232,114,156,200,114,199,114,167,106,167,106,134,
+  98,101,90,101,90,69,90,36,82,36,82,4,74,228,73,227,73,195,65,195,
+  65,194,65,195,65,162,65,162,65,163,65,162,57,162,65,194,65,163,65,162,
+  65,163,65,195,65,163,65,3,195,65,131,163,65,195,65,163,65,3,195,65,
+  131,163,65,195,65,163,65,6,195,65,139,162,65,167,90,198,122,162,73,195,
+  65,162,57,73,107,36,106,194,65,195,65,36,74,150,4,131,12,99,12,91,
+  12,99,5,44,99,129,12,99,5,44,99,129,45,99,4,44,99,141,45,99,
+  45,91,45,83,77,67,176,27,83,20,212,28,21,37,211,44,240,59,45,91,
+  45,99,45,91,4,45,99,146,44,99,44,99,45,91,45,91,77,83,111,51,
+  18,20,179,12,21,29,86,37,212,44,208,75,13,91,45,99,44,91,45,99,
+  45,99,44,91,3,45,99,140,45,91,45,99,45,91,45,99,45,91,77,99,
+  45,99,77,99,77,99,45,99,77,99,45,91,5,77,99,129,77,91,13,77,
+  99,129,77,91,14,77,99,130,109,99,109,99,8,77,99,144,77,91,12,91,
+  236,82,203,82,12,91,13,91,45,91,143,99,240,107,81,116,114,124,146,124,
+  147,124,147,132,179,132,147,132,6,179,132,149,180,132,179,132,212,132,212,132,
+  180,132,211,132,211,132,212,132,212,132,211,132,180,132,180,132,179,132,211,132,
+  180,132,211,132,180,132,179,132,180,132,180,132,211,132,6,179,132,142,179,124,
+  179,132,180,132,179,132,180,132,147,132,208,107,236,82,166,49,195,24,4,25,
+  204,66,209,99,115,124,6,180,132,4,179,124,133,211,132,212,132,212,132,244,
+  132,212,132,3,244,132,129,212,132,3,244,132,141,211,132,211,140,150,165,142,
+  115,203,90,170,90,170,90,170,82,137,82,137,82,105,82,105,82,105,74,4,
+  73,74,136,41,74,73,74,41,74,73,74,40,66,40,74,40,66,41,74,4,
+  40,66,134,8,66,232,65,8,66,231,57,232,57,232,57,3,231,57,138,199,
+  49,199,49,167,49,166,49,167,41,167,49,167,49,134,41,134,41,134,33,6,
+  102,33,148,70,33,134,33,167,41,82,132,243,156,243,156,52,165,53,173,20,
+  165,211,156,20,165,211,156,211,156,243,156,178,148,106,82,98,8,146,140,178,
+  148,211,156,4,178,148,136,146,148,114,148,113,140,48,132,16,132,240,123,207,
+  115,207,115,4,175,107,141,208,107,208,107,143,99,175,99,175,107,143,107,142,
+  99,142,99,143,99,142,99,143,99,143,99,175,99,4,143,99,129,175,107,3,
+  175,99,135,143,99,143,99,175,99,175,99,175,107,143,99,175,107,3,143,99,
+  4,175,99,149,207,107,176,99,208,99,175,99,207,107,208,107,208,107,175,99,
+  207,99,208,107,175,99,208,99,208,107,208,107,208,99,208,107,240,107,208,107,
+  208,107,240,107,208,107,3,240,107,3,208,107,139,208,99,208,99,17,108,208,
+  99,208,99,208,107,208,99,208,107,208,107,208,99,241,107,4,208,107,137,240,
+  107,240,107,208,107,240,107,240,107,208,107,208,107,240,107,208,107,3,240,107,
+  129,17,108,7,240,107,139,16,108,240,107,16,108,240,107,241,107,240,107,208,
+  107,208,107,240,107,208,107,208,99,4,240,107,129,208,107,4,240,107,149,175,
+  99,208,99,208,107,240,107,208,107,208,107,208,99,208,99,176,99,175,99,208,
+  99,208,99,240,107,176,99,208,99,176,91,176,91,176,99,175,99,208,99,175,
+  99,3,208,99,211,237,74,41,58,41,58,9,58,41,58,74,58,9,50,9,
+  58,232,49,233,49,200,41,232,49,232,49,168,41,232,49,200,49,200,41,232,
+  49,232,49,9,50,232,49,9,50,9,58,9,50,74,58,74,66,106,66,106,
+  66,171,74,171,74,204,74,236,74,237,82,45,91,77,91,46,91,110,99,110,
+  107,208,115,147,132,49,116,49,116,244,140,151,157,248,157,248,165,25,166,25,
+  166,25,158,57,166,58,166,58,166,90,174,123,174,123,174,155,174,123,174,90,
+  166,183,157,85,157,211,140,240,115,105,74,105,74,73,74,170,82,44,99,170,
+  74,101,41,195,24,65,8,166,49,77,107,142,107,203,82,40,66,41,74,40,
+  66,40,66,41,66,41,74,40,66,41,66,3,73,74,172,138,82,48,140,243,
+  164,84,173,49,124,201,41,233,41,233,41,168,41,38,25,164,8,99,8,132,
+  8,99,8,100,8,100,0,100,0,132,0,5,25,200,49,139,82,236,90,237,
+  90,13,99,45,99,45,99,78,107,110,107,175,107,175,115,208,115,240,115,241,
+  123,17,124,16,124,17,124,49,132,49,124,49,124,49,132,49,132,17,124,49,
+  124,49,124,3,49,132,130,81,132,81,132,3,82,132,135,114,140,114,132,114,
+  132,114,140,82,132,82,132,82,140,15,81,132,130,49,132,49,132,4,81,132,
+  131,110,107,37,33,4,33,5,36,33,168,4,33,36,33,4,33,4,33,36,
+  33,36,33,4,33,4,33,36,33,227,24,162,16,195,24,169,98,232,122,227,
+  65,41,115,101,90,134,90,166,98,167,98,73,123,41,123,7,115,40,123,8,
+  115,166,98,134,98,133,90,101,90,36,82,101,82,102,90,102,82,134,90,134,
+  98,167,98,167,106,199,106,200,106,199,106,7,232,114,142,200,106,167,106,167,
+  106,167,98,134,98,102,98,101,90,69,90,36,82,36,74,4,74,4,74,227,
+  65,195,73,3,195,65,137,162,65,195,65,162,65,162,57,194,65,163,57,163,
+  57,163,65,163,65,6,195,65,131,163,65,195,65,163,65,3,195,65,129,163,
+  65,6,195,65,133,162,65,163,65,163,65,163,57,163,65,6,195,65,142,163,
+  65,195,65,195,65,163,65,5,74,41,123,162,73,195,65,162,65,167,90,165,
+  122,162,73,195,65,37,74,158,4,132,44,99,44,99,12,91,12,99,7,44,
+  99,171,45,99,44,99,44,99,44,91,45,99,44,99,12,99,45,99,45,99,
+  44,99,44,91,45,91,45,83,111,51,17,20,180,20,245,36,244,36,114,52,
+  110,75,44,99,44,99,45,91,45,99,45,99,44,91,45,99,44,91,45,91,
+  45,99,44,91,77,67,176,35,83,12,245,20,54,37,53,37,82,60,78,83,
+  44,91,45,99,45,99,44,99,5,45,99,148,77,99,77,99,77,91,45,91,
+  45,91,45,99,77,99,77,99,45,99,45,99,77,99,77,99,77,91,77,99,
+  77,99,77,91,45,99,77,99,77,91,77,91,9,77,99,129,77,91,6,77,
+  99,129,109,99,5,77,99,131,77,91,78,99,77,91,3,77,99,129,110,99,
+  4,77,99,140,109,99,45,91,12,91,236,82,236,90,12,91,45,91,77,99,
+  143,107,240,107,81,116,114,124,3,147,124,130,179,132,179,124,8,179,132,129,
+  212,132,4,211,132,144,180,132,211,132,211,132,180,132,211,132,212,132,211,132,
+  212,132,180,132,179,132,212,132,179,132,179,132,211,132,179,132,179,132,4,180,
+  132,142,180,124,179,132,179,132,180,132,180,132,16,116,77,91,40,58,4,33,
+  195,24,41,42,143,91,50,116,179,132,3,180,124,135,180,132,180,132,180,124,
+  180,124,179,124,179,124,212,124,3,212,132,130,244,132,212,132,3,244,132,129,
+  212,132,3,244,132,139,146,132,178,132,150,165,11,99,203,90,202,90,170,90,
+  138,82,138,82,105,74,105,82,3,105,74,4,73,74,130,40,74,73,74,4,
+  40,74,133,40,66,40,66,72,74,40,66,40,66,3,8,66,129,232,57,3,
+  231,57,136,199,57,199,57,199,49,199,49,166,49,167,49,167,41,135,41,3,
+  134,41,129,102,41,6,102,33,147,70,33,200,41,232,49,244,148,20,165,211,
+  156,211,156,20,165,52,165,52,165,243,156,211,156,20,165,20,165,178,148,40,
+  74,98,8,244,148,146,148,5,178,148,138,146,148,113,140,81,140,81,132,16,
+  124,240,115,207,115,208,115,175,107,240,115,3,175,107,135,208,107,143,99,142,
+  99,175,107,110,99,142,99,175,107,8,143,99,144,175,99,175,107,175,99,175,
+  99,143,99,143,99,175,99,207,107,143,99,175,99,175,107,208,107,175,107,175,
+  99,207,107,207,107,3,175,99,137,208,99,207,99,17,116,207,99,175,99,208,
+  107,208,107,175,99,207,99,3,208,107,131,208,99,208,107,208,107,3,240,107,
+  150,208,107,208,107,176,107,208,107,175,99,240,107,208,99,208,107,240,107,208,
+  107,208,107,240,107,208,99,240,107,240,107,208,107,208,99,240,107,208,99,208,
+  107,207,99,240,107,4,208,107,132,240,107,208,107,240,107,208,107,8,240,107,
+  129,17,108,3,240,107,140,17,108,240,107,240,107,17,116,17,108,17,116,240,
+  107,208,107,240,107,240,107,208,107,208,107,4,240,107,149,208,107,240,107,208,
+  107,208,107,240,107,240,107,240,99,240,99,240,107,208,99,240,107,208,107,240,
+  107,208,99,176,91,176,91,208,99,208,107,208,99,208,99,176,99,5,208,99,
+  134,176,91,240,99,208,99,240,107,13,75,41,50,3,41,58,169,74,58,233,
+  49,9,58,9,50,9,50,200,41,9,58,9,50,200,41,200,41,232,41,232,
+  49,200,41,232,49,233,49,233,49,9,50,233,49,9,50,41,58,74,58,106,
+  66,106,66,171,74,172,74,172,74,236,82,237,82,45,91,45,91,78,99,110,
+  99,142,107,208,115,114,132,17,108,78,91,16,108,85,149,249,165,57,166,5,
+  58,166,159,90,166,123,174,155,174,187,182,188,182,187,182,155,174,215,157,117,
+  157,243,140,114,124,105,74,105,74,73,74,138,82,236,90,138,74,101,41,227,
+  24,65,0,101,41,12,99,77,99,171,82,40,66,41,66,41,74,41,66,40,
+  66,73,66,41,66,4,73,74,142,138,82,16,132,243,156,52,165,81,132,233,
+  41,233,41,201,41,168,41,38,25,163,8,131,8,99,8,99,8,4,100,0,
+  143,229,16,200,57,139,82,236,90,237,90,13,99,45,99,78,99,78,99,110,
+  107,143,107,175,115,208,115,240,123,241,123,3,17,124,136,49,124,17,124,49,
+  124,49,132,49,124,49,124,49,132,49,124,3,49,132,134,82,132,81,132,82,
+  132,82,132,81,132,114,132,4,114,140,130,114,132,82,132,14,81,132,138,49,
+  132,49,132,81,132,81,132,49,132,81,132,81,132,175,107,102,33,4,33,4,
+  36,33,132,4,33,36,33,4,33,4,33,4,36,33,151,4,33,36,33,4,
+  33,163,24,195,24,104,74,42,139,195,65,232,106,167,106,228,73,134,90,36,
+  74,231,114,40,123,165,106,199,106,231,114,166,106,166,106,133,90,133,98,134,
+  98,4,232,114,145,200,114,199,106,167,106,167,106,134,98,134,90,102,90,69,
+  90,69,82,36,74,4,74,227,73,227,65,196,65,195,65,195,65,163,65,3,
+  162,65,134,163,65,162,57,195,65,194,65,163,65,163,65,9,195,65,130,163,
+  65,163,57,5,195,65,129,162,65,6,195,65,131,163,65,195,65,227,73,4,
+  163,65,136,195,65,162,57,3,66,101,90,101,90,68,82,68,90,162,65,6,
+  195,65,141,163,65,195,65,195,65,163,57,139,123,194,81,195,65,195,65,37,
+  74,73,123,162,73,195,65,195,65,185,4,140,44,99,12,99,44,99,12,91,
+  12,99,44,99,44,99,12,99,44,99,12,99,44,99,12,91,4,44,99,168,
+  12,99,44,99,45,99,44,99,45,99,44,99,44,91,45,91,45,91,78,67,
+  176,35,115,20,212,36,21,45,212,44,240,59,45,91,45,99,45,91,45,99,
+  45,91,45,91,45,99,44,91,44,91,44,99,45,99,45,83,110,51,17,20,
+  179,20,21,29,86,37,212,52,175,75,45,91,45,99,45,91,45,99,45,91,
+  3,45,99,135,77,91,45,91,45,91,45,99,77,99,45,91,45,91,3,77,
+  99,129,45,99,4,77,99,129,77,91,4,77,99,129,77,91,4,77,99,129,
+  77,91,4,77,99,129,109,99,3,77,99,129,77,91,3,77,99,3,109,99,
+  137,77,99,110,99,109,99,109,99,77,99,110,99,109,99,109,99,110,99,4,
+  109,99,129,45,91,3,236,82,137,12,91,45,91,110,99,175,107,49,116,82,
+  124,114,124,147,124,147,124,3,179,124,7,179,132,4,211,132,129,179,132,5,
+  211,132,137,179,132,179,132,211,132,179,132,212,132,180,132,180,132,211,132,179,
+  132,5,180,132,149,179,124,180,132,179,132,179,124,179,132,211,132,82,124,110,
+  99,138,74,69,33,195,24,134,33,46,75,17,108,147,124,180,132,180,124,212,
+  124,211,132,180,132,180,132,3,179,124,130,212,124,212,124,4,212,132,8,244,
+  132,142,212,140,244,140,117,165,203,98,203,90,202,90,170,90,138,82,138,82,
+  105,82,105,82,137,82,105,74,105,74,4,73,74,139,40,74,40,74,73,74,
+  73,74,40,66,73,74,73,74,40,66,40,66,8,66,40,66,3,8,66,136,
+  231,57,232,57,231,57,199,57,231,57,199,57,199,49,199,49,3,167,49,130,
+  167,41,167,41,3,134,41,5,102,33,167,70,33,70,33,200,49,135,41,20,
+  157,243,156,85,173,244,164,20,165,20,165,244,164,244,164,211,156,243,156,243,
+  164,146,148,231,65,163,16,212,148,179,148,178,148,146,148,178,148,146,148,178,
+  148,178,148,114,140,82,140,49,132,16,124,240,123,240,123,175,115,175,107,175,
+  115,207,107,174,107,143,107,207,107,3,175,107,145,142,99,143,99,143,99,175,
+  99,142,99,110,99,175,99,143,99,175,107,175,99,175,99,175,107,175,107,175,
+  99,175,99,143,99,143,99,5,175,99,144,175,107,207,107,207,107,175,99,208,
+  107,208,99,175,99,207,107,208,99,208,107,208,107,207,107,207,99,208,107,240,
+  107,175,107,5,208,107,143,207,107,207,99,208,99,240,107,208,107,208,107,240,
+  107,208,107,208,107,208,99,208,107,208,99,240,99,208,107,208,99,3,240,107,
+  132,208,99,208,107,208,107,240,107,3,208,107,142,208,99,208,99,240,107,208,
+  107,208,107,208,99,240,107,240,107,208,107,208,107,240,107,240,107,208,107,16,
+  108,3,240,107,138,208,107,16,108,240,107,240,107,208,107,240,107,16,108,17,
+  108,240,107,16,108,5,240,107,133,208,107,240,107,240,107,208,99,208,107,3,
+  240,107,143,208,107,241,107,240,107,208,107,17,108,240,99,240,107,240,107,208,
+  99,240,107,208,99,176,99,208,99,208,99,207,99,3,208,99,132,176,91,208,
+  99,176,91,208,91,3,208,99,178,240,99,208,99,208,99,143,91,204,66,106,
+  66,41,58,9,58,74,58,9,50,9,58,41,58,9,50,200,41,9,50,9,
+  50,200,41,200,49,232,41,232,49,200,49,232,49,232,49,233,49,41,58,41,
+  58,41,50,74,58,107,66,74,66,74,66,172,74,204,82,204,74,237,82,45,
+  83,46,91,46,91,110,99,142,107,142,107,207,107,114,124,241,107,171,66,12,
+  83,20,141,90,174,155,182,123,174,3,90,174,159,123,174,123,174,155,174,155,
+  182,219,182,188,182,188,182,155,174,216,157,117,157,211,140,81,124,105,74,105,
+  74,73,74,105,74,203,82,138,74,101,41,4,33,65,8,37,33,203,90,12,
+  91,170,82,73,74,73,74,40,66,40,66,41,66,41,66,4,73,74,134,105,
+  74,105,74,239,131,211,156,20,165,114,140,3,233,41,135,169,41,71,25,164,
+  8,131,8,131,8,99,8,99,8,3,100,0,143,229,16,200,49,139,82,236,
+  90,13,91,13,99,45,99,45,99,78,107,110,107,143,107,175,115,208,115,240,
+  123,241,123,3,17,124,4,49,124,133,49,132,17,124,49,132,49,124,49,124,
+  3,49,132,139,81,132,81,132,82,132,82,132,81,132,82,132,82,132,113,132,
+  113,132,114,132,114,132,3,81,132,129,82,132,17,81,132,134,208,115,167,41,
+  4,33,36,33,36,33,4,33,3,36,33,3,4,33,3,36,33,156,4,33,
+  36,33,4,33,195,24,163,24,7,66,105,147,227,73,199,98,199,114,69,82,
+  73,123,134,98,166,98,199,106,36,82,166,98,231,114,133,98,133,98,166,106,
+  68,82,4,74,36,82,36,74,4,74,227,73,227,73,3,195,65,137,195,57,
+  195,57,163,65,195,65,195,65,162,65,195,65,195,65,163,65,3,195,65,130,
+  163,65,163,65,8,195,65,132,163,65,163,65,195,65,162,65,3,195,65,135,
+  163,65,195,65,163,65,195,65,195,65,163,65,162,57,8,195,65,146,163,65,
+  163,65,101,82,41,115,133,98,68,90,36,82,68,90,166,90,231,106,7,115,
+  230,114,7,115,198,106,230,114,194,73,195,65,194,65,7,195,65,138,162,57,
+  73,107,67,106,162,65,195,65,195,57,139,123,226,81,195,73,195,65,192,4,
+  134,44,99,12,91,44,91,44,99,12,91,12,91,3,44,99,129,12,99,6,
+  44,99,129,12,99,3,44,99,161,45,99,45,99,44,91,44,91,45,91,45,
+  91,45,83,111,43,17,20,179,28,245,44,21,45,114,52,110,75,45,91,45,
+  99,12,91,45,99,44,91,45,91,44,91,45,91,45,99,45,99,44,99,77,
+  75,176,35,83,20,244,28,85,37,53,37,49,60,77,83,4,45,99,134,44,
+  91,45,91,45,99,44,91,77,99,45,91,4,77,99,136,45,99,77,99,77,
+  99,77,91,45,99,77,99,77,99,77,91,5,77,99,3,77,91,3,77,99,
+  130,77,91,77,91,4,77,99,129,77,91,6,77,99,155,77,91,109,99,77,
+  99,109,99,77,99,77,99,110,99,109,99,109,99,77,99,109,99,109,99,77,
+  91,77,91,45,91,236,82,236,90,236,90,13,91,45,99,110,99,208,107,49,
+  116,114,124,114,124,147,124,147,132,6,179,132,129,180,132,3,179,132,135,211,
+  132,211,132,179,132,211,132,211,132,180,132,212,132,3,211,132,136,212,132,212,
+  132,180,132,211,132,211,132,179,132,180,132,179,132,3,180,132,151,179,132,179,
+  132,179,124,180,132,179,132,180,132,180,132,211,132,147,132,207,107,236,82,167,
+  49,227,24,228,24,172,66,176,99,115,124,180,132,179,124,212,124,180,132,179,
+  132,179,132,4,179,124,129,212,124,3,212,132,150,212,140,244,132,244,132,212,
+  132,244,140,244,132,244,132,212,132,244,132,212,132,146,132,20,149,52,157,170,
+  90,203,90,203,90,170,90,170,82,138,82,105,82,105,82,105,74,5,73,74,
+  133,72,74,73,74,73,74,41,74,41,74,3,40,66,132,40,74,40,74,40,
+  66,40,66,3,8,66,143,232,57,231,57,199,57,231,57,231,57,199,49,199,
+  49,167,49,166,49,166,49,134,41,167,41,135,41,134,41,134,41,4,102,33,
+  135,69,33,102,33,70,33,102,33,138,66,233,49,20,157,4,20,165,139,52,
+  165,211,156,243,156,211,156,243,156,243,156,113,148,167,57,4,25,20,165,179,
+  148,5,178,148,134,146,148,146,140,82,140,16,132,16,124,240,123,4,207,115,
+  147,175,107,207,107,174,99,207,107,142,99,175,107,174,99,175,99,175,107,143,
+  99,143,99,110,99,143,99,175,99,175,107,143,99,175,99,175,99,175,107,3,
+  175,99,129,143,99,4,175,99,166,208,99,143,99,175,107,175,99,175,107,175,
+  99,208,99,208,107,207,107,208,99,208,107,207,107,175,99,208,107,176,99,175,
+  99,208,107,207,99,207,107,240,107,207,99,208,99,240,107,207,107,208,99,207,
+  99,240,107,208,107,208,99,240,107,208,107,208,107,207,99,208,99,208,107,240,
+  107,208,99,208,107,3,240,107,130,208,107,208,107,3,208,99,144,176,99,208,
+  99,240,107,208,99,208,99,240,107,240,107,208,107,208,99,240,107,208,107,208,
+  107,240,107,208,107,208,107,17,108,3,208,107,3,240,107,131,208,107,240,107,
+  17,108,3,240,107,129,16,108,5,240,107,133,208,107,240,107,208,107,208,99,
+  208,107,3,240,107,129,208,99,3,240,107,129,240,99,3,240,107,137,208,99,
+  240,107,241,99,240,99,176,91,240,99,176,99,240,99,240,107,7,208,99,141,
+  208,91,241,99,208,99,208,99,240,99,107,50,74,58,74,58,41,58,74,66,
+  9,50,233,49,41,58,4,232,49,129,200,49,5,232,49,228,233,49,232,49,
+  9,50,41,58,41,58,74,58,106,66,139,66,139,66,171,74,204,82,236,82,
+  236,82,13,91,46,91,78,99,110,99,110,99,175,107,208,115,114,124,17,108,
+  171,66,203,74,20,141,90,182,188,182,155,174,123,174,123,174,155,174,155,174,
+  155,182,155,174,155,174,187,182,188,182,155,174,187,174,216,157,118,157,179,140,
+  114,132,138,74,105,74,73,74,73,74,171,82,105,74,101,41,4,33,65,8,
+  4,33,170,82,203,82,138,74,73,74,73,74,40,66,40,66,41,74,41,66,
+  73,74,73,74,73,66,73,74,105,74,105,74,174,123,211,156,19,165,146,148,
+  41,50,9,50,10,50,201,41,103,33,196,16,99,8,131,8,99,8,99,8,
+  100,8,100,0,100,0,197,16,200,49,139,74,237,90,13,91,13,99,45,99,
+  45,99,78,107,110,107,143,107,175,115,208,115,240,115,241,123,3,17,124,4,
+  49,124,129,49,132,3,49,124,142,49,132,49,132,81,132,49,132,49,132,82,
+  132,82,132,81,132,81,132,114,132,114,132,114,140,114,132,82,132,22,81,132,
+  131,240,123,232,57,4,33,3,36,33,132,4,33,36,33,36,33,4,33,3,
+  36,33,160,4,33,36,33,4,33,36,33,4,33,195,24,163,16,166,49,106,
+  139,36,82,134,90,8,115,101,82,106,131,4,74,36,74,36,74,227,65,36,
+  82,101,90,4,74,4,74,36,82,227,65,195,65,163,65,195,65,195,65,228,
+  73,227,73,195,65,227,65,4,195,65,129,227,65,8,195,65,3,163,65,129,
+  195,65,3,163,65,146,195,65,195,65,163,65,37,74,228,73,227,65,195,65,
+  69,82,69,82,4,74,227,73,36,82,4,74,101,90,227,73,36,74,134,98,
+  195,73,6,195,65,147,163,65,195,65,163,65,101,82,106,131,166,106,72,123,
+  39,123,7,123,72,123,170,147,39,123,230,114,133,98,198,106,7,115,227,81,
+  195,65,163,65,4,195,65,141,194,65,195,65,195,65,162,65,199,90,197,114,
+  194,73,194,65,162,57,74,107,35,106,194,65,194,65,167,4,129,12,99,3,
+  44,99,129,12,91,4,44,99,131,12,91,45,99,12,91,6,44,99,129,45,
+  99,6,44,99,158,45,99,45,91,44,83,78,59,208,35,115,20,244,36,21,
+  53,212,44,240,67,45,91,44,99,45,99,45,99,44,99,45,99,45,99,45,
+  91,45,99,44,99,45,99,45,83,110,51,17,20,180,20,21,37,86,45,179,
+  52,175,75,45,91,4,45,99,138,45,91,77,99,45,99,45,99,77,99,44,
+  91,45,99,45,99,77,99,45,99,3,77,99,129,45,99,12,77,99,130,77,
+  91,77,91,10,77,99,131,109,99,109,99,78,99,3,77,99,152,109,99,77,
+  99,77,91,109,99,77,99,77,99,109,99,110,99,78,91,77,91,12,91,236,
+  82,236,82,12,91,13,91,45,91,142,99,240,107,50,116,114,124,147,124,147,
+  124,147,132,147,124,3,179,132,129,179,124,4,179,132,154,212,132,211,132,180,
+  132,212,132,180,132,212,132,212,132,180,132,179,132,211,132,211,132,179,132,179,
+  132,180,132,179,132,179,132,180,132,179,132,179,132,180,132,179,132,180,132,179,
+  132,211,132,179,132,179,132,3,180,132,142,179,132,16,116,45,91,40,58,228,
+  32,195,16,41,42,111,91,50,116,179,132,179,124,180,132,179,124,211,132,3,
+  179,124,3,180,124,129,180,132,9,212,132,3,244,132,134,212,132,179,140,52,
+  149,178,148,170,90,203,90,3,170,90,133,138,82,105,82,105,74,105,82,105,
+  74,3,73,74,140,105,74,73,74,41,66,73,74,72,74,41,74,40,66,40,
+  66,40,74,41,74,73,74,40,66,3,8,66,139,40,66,232,57,231,57,199,
+  57,231,57,199,57,199,57,199,49,199,49,166,49,166,49,5,134,41,5,102,
+  33,140,70,33,70,33,135,33,138,66,74,66,53,165,20,165,243,156,243,156,
+  52,165,52,173,244,164,3,243,156,134,211,156,48,140,134,49,70,33,244,156,
+  146,148,3,178,148,134,146,148,178,148,146,148,146,140,114,140,81,140,3,240,
+  123,133,240,115,208,115,175,107,175,107,207,107,4,175,107,138,175,99,175,107,
+  175,99,207,107,143,107,143,99,174,99,175,107,143,99,175,107,6,175,99,129,
+  143,99,3,175,99,129,207,99,3,175,99,149,207,107,175,99,208,107,208,107,
+  175,99,208,107,207,107,208,107,208,107,176,107,240,107,175,99,208,107,240,107,
+  208,99,240,107,208,107,208,99,240,107,208,107,208,107,3,208,99,129,240,107,
+  5,208,107,160,176,107,175,99,207,107,207,107,240,107,207,107,240,107,207,99,
+  207,99,208,107,208,107,207,99,175,99,208,99,208,107,208,107,208,99,208,99,
+  240,107,208,107,208,107,207,99,208,107,208,107,240,107,208,107,240,107,208,107,
+  240,107,208,107,208,107,241,107,3,208,107,135,240,107,17,108,240,107,17,108,
+  240,107,240,107,16,108,3,240,107,129,208,107,3,240,107,133,208,107,240,107,
+  240,107,208,99,208,99,6,240,107,134,241,107,241,107,241,99,208,99,240,99,
+  241,99,4,208,91,3,208,99,152,208,91,208,99,208,99,176,99,241,99,208,
+  91,241,99,209,99,240,99,240,99,241,107,78,83,204,74,74,58,41,58,74,
+  58,9,50,9,50,233,49,232,49,232,49,233,49,232,41,200,49,6,232,49,
+  155,9,50,232,49,9,58,74,58,74,58,106,66,139,66,139,66,171,74,204,
+  74,204,82,236,82,13,83,46,91,78,91,110,99,110,99,143,107,240,107,114,
+  132,49,108,171,66,171,66,211,132,57,174,123,174,123,174,4,155,174,152,155,
+  182,123,174,25,158,248,157,25,158,90,166,155,182,216,165,118,157,244,148,178,
+  132,138,82,105,82,73,74,40,66,138,82,73,74,101,41,4,33,65,0,227,
+  24,73,74,171,82,105,74,3,73,74,132,40,66,73,74,73,74,73,66,4,
+  73,74,134,105,74,142,115,210,156,243,164,179,148,74,58,3,10,50,152,136,
+  33,197,16,99,8,99,8,131,8,99,0,100,8,100,0,100,0,197,8,168,
+  41,139,74,236,90,237,90,13,99,45,99,46,99,78,99,110,107,143,107,175,
+  115,208,115,240,123,240,115,3,17,124,132,49,124,49,132,49,124,81,124,3,
+  49,124,130,49,132,49,124,4,49,132,137,81,132,81,132,82,132,82,132,81,
+  132,82,140,113,140,114,140,114,132,8,81,132,132,82,132,81,132,81,132,82,
+  132,8,81,132,133,49,132,81,132,17,132,73,66,4,33,5,36,33,132,4,
+  33,4,33,36,33,36,33,4,4,33,163,36,33,4,33,195,24,162,16,69,
+  41,75,131,101,98,69,82,40,115,36,82,73,123,4,74,227,65,227,65,195,
+  65,36,82,4,74,227,65,227,73,227,65,134,90,101,90,69,82,101,90,3,
+  74,166,98,101,90,101,82,198,106,101,90,133,90,199,106,198,106,198,106,69,
+  90,4,195,65,157,163,65,195,65,163,57,36,74,69,82,227,73,195,65,227,
+  73,228,73,36,74,36,74,101,90,3,82,199,106,166,106,165,98,231,106,230,
+  114,133,98,3,82,198,106,166,106,41,123,137,139,230,122,40,123,203,147,68,
+  98,162,65,5,195,65,144,163,65,195,65,195,65,227,73,69,90,227,73,133,
+  90,69,90,4,74,3,74,36,82,227,73,101,90,195,73,196,65,36,74,9,
+  195,65,139,194,65,195,65,37,74,73,131,161,81,195,65,162,65,200,90,197,
+  122,194,73,195,65,156,4,134,12,99,12,99,44,99,12,99,12,99,45,99,
+  6,44,99,129,45,99,8,44,99,166,45,99,12,91,44,99,44,99,45,99,
+  45,99,45,91,45,91,45,83,142,51,18,20,179,28,21,45,20,53,82,52,
+  110,75,12,91,45,91,44,99,45,99,45,99,44,91,45,99,45,99,44,91,
+  45,99,44,91,77,75,176,27,115,12,244,36,54,45,21,45,49,60,77,91,
+  45,99,45,99,45,91,4,45,99,136,45,91,45,99,45,99,77,99,77,99,
+  77,91,45,91,45,99,4,77,99,130,77,91,77,91,9,77,99,129,77,91,
+  4,77,99,130,77,91,77,91,3,77,99,140,109,99,77,99,77,99,78,99,
+  110,99,77,99,77,99,110,99,109,99,110,99,77,91,78,99,3,77,99,144,
+  110,99,77,91,12,91,236,82,203,82,12,91,13,91,78,99,143,99,240,107,
+  82,116,114,124,146,124,146,124,147,132,147,124,9,179,132,141,211,132,179,132,
+  180,132,180,132,211,132,212,132,179,132,212,132,211,132,179,132,212,132,212,132,
+  211,132,3,179,132,129,180,132,3,179,132,131,180,132,180,132,179,132,4,180,
+  132,146,212,132,82,124,142,99,138,66,69,33,195,24,102,25,46,75,17,108,
+  147,124,179,124,212,124,180,124,211,124,179,132,179,124,180,132,179,124,3,180,
+  124,8,212,132,4,244,132,140,244,140,179,132,178,132,85,157,80,132,203,90,
+  235,98,171,90,170,90,138,82,138,82,137,82,3,105,74,3,73,74,138,40,
+  74,72,74,73,74,41,74,40,74,73,74,73,74,40,66,40,74,41,74,3,
+  40,66,131,8,66,232,65,8,66,5,231,57,3,199,49,135,166,49,134,41,
+  167,41,134,41,166,41,134,41,134,41,3,102,33,3,70,33,149,37,25,172,
+  74,8,58,237,82,20,165,52,165,20,165,243,164,20,165,52,165,20,165,179,
+  156,243,156,20,165,243,156,16,140,69,41,167,41,243,156,146,148,146,148,5,
+  178,148,138,146,140,114,140,81,132,16,124,240,123,239,123,207,115,240,115,175,
+  107,207,107,3,175,107,135,207,107,175,99,175,99,175,107,143,99,175,99,143,
+  107,3,175,107,131,143,99,175,99,175,107,7,175,99,161,207,107,207,99,208,
+  99,175,99,175,99,208,99,208,99,207,99,240,107,207,107,175,107,240,107,207,
+  99,208,107,175,99,208,107,208,99,208,107,207,99,208,99,175,99,208,107,208,
+  107,208,99,208,107,208,99,240,107,207,99,240,99,207,99,240,107,175,99,175,
+  107,5,208,107,133,175,99,175,99,208,99,175,99,208,107,5,208,99,129,207,
+  99,3,208,107,144,176,99,175,99,175,99,207,107,208,107,175,99,240,107,207,
+  99,208,99,240,107,208,99,240,107,208,99,208,107,208,107,240,107,3,208,107,
+  4,240,107,130,208,107,240,107,4,208,107,140,207,107,208,99,240,107,240,107,
+  208,107,208,107,240,107,208,107,208,99,240,107,208,107,208,99,3,240,107,132,
+  17,108,208,99,208,99,240,107,4,208,99,130,176,91,176,91,3,208,99,6,
+  176,91,3,208,99,177,241,99,241,99,208,99,204,66,106,58,41,58,73,58,
+  41,58,9,50,9,58,232,49,9,50,9,50,200,49,9,50,200,41,9,50,
+  200,41,9,50,233,49,8,50,9,50,9,50,74,58,41,58,41,58,74,66,
+  107,66,139,74,172,74,204,74,236,82,236,82,13,83,46,91,78,91,110,99,
+  13,91,77,99,240,115,146,132,50,116,171,74,170,66,146,124,248,165,122,174,
+  123,174,155,182,3,155,174,158,123,174,249,157,53,133,179,116,244,124,151,149,
+  123,174,248,165,150,157,211,140,81,124,138,82,105,74,105,74,8,66,138,74,
+  73,66,101,41,4,33,65,8,195,24,40,66,138,74,73,66,41,74,73,74,
+  73,74,41,74,73,74,73,66,4,73,74,135,105,74,105,74,109,115,178,156,
+  243,156,211,156,107,58,3,42,50,133,168,41,229,16,99,8,131,8,99,8,
+  4,100,0,133,165,8,135,41,107,74,236,90,13,91,3,45,99,135,78,99,
+  110,107,143,107,176,115,208,115,208,115,240,123,3,17,124,133,49,124,49,132,
+  49,124,49,132,81,132,4,49,124,3,49,132,129,81,124,3,81,132,134,82,
+  132,82,132,114,140,81,132,82,140,82,132,16,81,132,131,81,140,81,132,113,
+  132,3,81,132,138,49,132,171,74,228,24,36,33,4,33,36,33,4,33,36,
+  33,4,33,4,33,3,36,33,169,4,33,36,33,4,33,36,33,4,33,195,
+  24,162,16,4,33,43,123,166,106,4,74,73,123,37,82,73,123,69,82,228,
+  65,227,65,228,65,198,106,199,106,198,106,40,123,133,98,8,115,198,106,72,
+  123,72,131,133,98,198,106,166,106,231,106,72,131,39,123,40,123,40,123,7,
+  115,7,115,100,98,195,65,227,65,227,65,4,195,65,154,166,98,166,106,101,
+  90,166,98,7,115,8,115,138,139,8,123,72,123,133,106,231,106,230,106,7,
+  115,40,123,7,115,166,106,227,81,101,90,69,90,199,106,39,123,165,98,166,
+  106,166,106,3,82,194,65,9,195,65,134,163,65,195,65,195,65,162,65,163,
+  65,163,65,5,162,65,129,162,57,3,163,65,129,227,65,3,195,65,141,195,
+  73,195,65,195,65,163,65,195,65,138,123,225,89,195,65,195,65,37,74,104,
+  123,194,73,195,73,161,4,133,44,99,44,99,12,99,44,99,12,99,11,44,
+  99,135,45,99,44,99,44,99,12,91,44,99,44,99,12,99,3,45,99,165,
+  45,91,45,99,44,91,45,99,44,91,78,67,208,27,115,20,244,44,21,53,
+  212,44,208,67,45,91,44,91,45,99,45,99,44,99,44,99,45,99,44,91,
+  45,99,45,91,45,99,45,83,111,51,50,12,180,20,53,45,86,53,179,44,
+  143,75,45,91,45,99,45,99,45,91,77,99,45,99,12,77,99,140,77,91,
+  77,99,77,99,77,91,77,99,77,99,77,91,77,91,77,99,77,99,77,91,
+  77,91,8,77,99,129,109,99,4,77,99,129,109,99,5,77,99,131,78,99,
+  110,99,110,99,3,77,99,142,45,91,12,83,236,82,204,90,12,91,45,91,
+  77,99,175,99,17,108,82,124,114,124,146,124,147,124,147,124,3,179,124,8,
+  179,132,135,211,132,212,132,180,132,180,132,179,132,211,132,211,132,4,179,132,
+  129,211,132,5,179,132,133,211,132,211,132,180,132,180,132,179,124,3,179,132,
+  139,180,132,146,124,175,107,236,82,166,49,227,24,4,25,171,58,208,99,115,
+  124,180,132,3,180,124,135,180,132,179,124,180,132,180,124,179,124,180,124,180,
+  124,8,212,132,6,244,132,139,244,140,178,140,85,157,207,123,203,98,203,90,
+  203,90,170,90,138,82,138,82,137,82,3,105,74,140,73,74,73,74,40,74,
+  73,74,40,74,40,74,73,74,41,74,40,66,40,74,40,74,73,74,5,40,
+  66,129,8,66,5,231,57,131,199,57,199,57,199,49,3,167,49,129,167,41,
+  4,134,41,131,101,33,102,33,102,33,3,70,33,148,37,25,175,99,9,58,
+  78,99,244,156,20,165,20,165,243,156,20,165,20,165,52,165,243,156,20,165,
+  243,156,20,165,240,131,37,41,9,58,244,156,146,148,3,178,148,3,146,148,
+  137,113,140,81,132,49,132,240,123,16,124,240,123,208,115,175,107,207,107,3,
+  175,107,132,143,99,175,99,175,107,175,107,3,175,99,131,143,99,143,99,175,
+  107,8,175,99,144,207,107,207,99,175,99,208,107,208,99,208,107,207,99,208,
+  107,207,99,208,107,208,107,207,99,207,99,175,99,208,107,208,99,7,208,107,
+  133,208,99,207,99,240,115,207,99,208,107,5,208,99,3,208,107,139,175,99,
+  208,107,208,107,207,99,208,99,208,107,207,99,175,99,208,99,208,107,207,99,
+  5,208,99,149,240,107,208,99,240,107,175,99,208,107,208,99,207,99,208,107,
+  175,99,240,107,175,99,208,107,240,107,240,107,175,99,208,99,176,107,240,107,
+  208,107,240,107,208,107,3,240,107,131,208,107,240,107,208,107,5,240,107,173,
+  176,107,208,107,208,107,208,99,208,107,207,107,240,107,240,107,208,99,240,107,
+  208,107,176,99,208,107,240,107,208,107,208,99,208,99,240,107,208,107,176,99,
+  208,99,176,91,208,99,143,91,176,91,176,91,143,91,208,99,175,91,175,91,
+  176,91,175,91,143,91,176,91,175,91,208,91,240,99,208,99,208,99,17,108,
+  14,75,172,66,42,58,41,58,41,58,3,9,50,134,233,41,233,49,9,50,
+  9,50,233,41,200,49,3,233,49,131,200,41,9,50,9,58,3,41,58,186,
+  74,58,106,66,106,66,204,74,236,74,236,82,237,82,45,91,45,91,46,91,
+  78,99,13,91,13,91,208,115,114,124,50,116,171,74,138,66,82,124,216,165,
+  90,174,122,174,155,174,155,174,155,182,155,174,123,174,151,141,115,108,17,100,
+  50,100,21,133,90,174,249,165,183,165,20,149,211,140,170,82,105,74,105,74,
+  8,66,105,74,73,74,101,49,4,33,65,8,163,16,231,57,73,74,40,66,
+  40,66,73,74,73,74,41,74,73,74,41,66,73,74,73,66,3,73,74,143,
+  105,74,44,107,146,156,211,156,211,156,139,66,10,50,42,50,42,50,169,41,
+  229,16,99,8,131,8,99,8,100,8,3,100,0,142,165,8,103,41,106,74,
+  236,90,13,91,45,99,45,99,78,99,78,99,110,107,143,107,175,115,208,115,
+  240,115,3,17,124,138,49,124,17,124,49,124,49,132,81,132,82,132,81,124,
+  49,124,49,132,49,124,4,49,132,139,81,132,82,132,81,132,82,132,114,132,
+  82,132,81,132,82,132,82,132,82,140,82,132,8,81,132,129,82,132,10,81,
+  132,132,49,132,49,132,236,82,4,25,5,36,33,129,4,33,3,36,33,191,
+  4,33,36,33,4,33,4,33,36,33,4,33,195,24,163,24,227,24,201,106,
+  232,130,227,73,41,123,69,90,40,115,134,98,195,65,227,65,227,65,166,98,
+  8,115,72,123,105,139,133,98,166,98,199,106,165,98,166,98,36,82,68,90,
+  133,98,166,98,231,106,165,98,101,90,68,82,165,98,166,98,166,98,198,106,
+  8,115,199,106,101,90,195,65,195,65,162,65,101,90,167,106,166,106,7,115,
+  7,115,166,98,8,115,133,98,133,90,36,90,68,82,133,98,36,82,4,74,
+  4,74,36,82,195,73,3,195,65,133,227,65,194,57,195,65,163,65,194,65,
+  5,195,65,129,163,65,3,195,65,147,163,65,163,65,195,65,195,65,227,65,
+  4,74,4,74,69,82,102,82,102,90,167,98,200,106,8,115,73,123,106,123,
+  171,139,12,156,67,114,194,65,5,195,65,137,163,57,74,115,67,98,162,73,
+  195,65,195,57,138,131,225,89,195,65,200,4,131,44,99,44,99,12,99,7,
+  44,99,129,12,99,4,44,99,131,45,99,45,99,12,99,5,44,99,131,44,
+  91,45,91,45,91,3,45,99,139,44,91,44,91,45,91,45,83,143,43,18,
+  12,179,28,21,45,245,36,81,60,110,83,7,45,99,159,45,91,45,99,44,
+  99,44,91,77,67,208,27,115,12,244,36,85,53,21,45,16,60,45,91,45,
+  99,77,99,45,99,45,91,45,99,45,99,77,99,45,99,77,99,45,91,77,
+  99,77,99,45,99,77,99,77,99,45,91,77,99,77,99,77,91,3,77,99,
+  139,77,91,77,99,77,91,77,99,109,99,77,99,77,99,77,91,77,99,77,
+  99,109,99,10,77,99,139,109,99,109,99,77,91,77,99,77,91,110,91,110,
+  99,77,99,77,91,109,99,45,91,3,236,82,136,12,91,45,99,110,99,207,
+  107,17,116,82,124,114,124,146,124,3,147,124,130,179,124,179,124,8,179,132,
+  134,211,132,179,132,180,132,179,132,211,132,179,132,5,211,132,163,180,132,179,
+  132,179,132,180,132,179,124,179,132,180,132,179,132,179,132,211,132,211,132,179,
+  132,179,132,180,132,179,132,16,116,45,91,8,58,4,33,195,24,41,50,111,
+  83,50,116,179,132,180,124,180,132,180,132,179,132,180,124,180,124,179,124,147,
+  124,179,124,179,124,180,132,9,212,132,4,244,132,142,245,140,146,132,146,132,
+  118,165,109,107,235,98,235,98,203,90,170,90,170,82,137,82,105,74,73,74,
+  105,82,4,73,74,4,40,74,151,72,74,40,74,40,74,40,66,40,74,40,
+  66,73,74,40,66,8,66,8,66,232,57,8,66,231,57,199,57,231,57,199,
+  57,199,49,199,57,199,49,166,49,134,49,134,49,167,41,4,134,41,3,102,
+  33,153,70,33,70,33,101,33,5,25,78,91,106,66,208,115,20,165,20,165,
+  244,156,20,165,20,165,243,156,53,173,52,165,243,156,243,156,179,156,174,123,
+  4,33,171,74,20,165,178,148,211,156,211,148,3,146,148,136,146,140,114,140,
+  81,132,16,124,240,123,16,124,207,115,207,115,4,207,107,5,175,107,135,175,
+  99,175,107,175,99,175,99,143,99,175,107,175,107,3,175,99,142,208,107,208,
+  107,175,99,208,107,175,99,208,107,175,107,207,107,208,99,175,99,207,107,208,
+  107,208,107,175,99,4,208,107,137,208,99,207,99,208,107,207,99,240,107,208,
+  107,208,107,175,99,240,107,3,208,107,143,208,99,208,107,175,99,208,99,208,
+  99,208,107,240,107,208,99,175,99,208,99,208,107,208,107,240,107,208,107,175,
+  99,3,208,99,168,176,99,240,107,240,107,207,99,208,107,207,99,208,99,240,
+  107,208,107,208,99,17,116,208,99,208,99,175,99,208,99,207,107,208,107,207,
+  99,208,107,175,99,207,99,208,99,208,107,207,99,207,99,240,107,208,107,208,
+  107,208,99,240,107,208,99,240,107,208,107,208,107,240,107,240,107,208,107,208,
+  107,207,99,208,107,4,208,99,132,208,107,208,107,208,99,240,107,3,208,99,
+  132,176,99,208,99,240,107,175,99,4,208,99,137,176,99,208,99,208,99,176,
+  91,176,91,143,91,143,91,176,99,208,91,4,143,91,4,176,91,159,208,91,
+  208,91,208,99,208,99,241,99,237,74,237,74,41,58,41,58,9,58,233,49,
+  9,50,233,49,233,49,232,41,200,41,200,41,9,58,200,49,233,49,232,49,
+  232,49,9,50,9,50,42,58,74,58,41,58,74,66,106,66,106,66,171,74,
+  3,236,82,172,13,91,45,91,46,91,110,99,237,82,203,82,208,107,147,132,
+  82,124,204,74,106,66,48,116,183,157,57,166,90,166,123,174,155,174,187,182,
+  155,174,122,174,152,149,180,116,50,100,82,108,53,141,90,174,249,165,183,157,
+  244,140,178,132,171,82,105,74,105,74,232,65,73,74,8,66,101,41,4,33,
+  65,8,130,16,167,57,8,66,231,57,8,66,4,73,74,149,73,66,73,66,
+  73,74,105,74,73,74,73,74,105,74,12,107,146,148,211,156,243,156,172,66,
+  42,50,42,50,10,50,169,41,229,24,99,8,131,8,99,8,99,8,3,100,
+  0,143,165,8,103,41,74,74,236,90,13,99,13,99,45,99,46,99,78,99,
+  110,107,143,107,175,115,208,115,240,123,241,123,3,17,124,130,49,124,49,132,
+  3,81,132,134,49,124,49,132,49,132,49,124,49,132,49,124,3,81,132,130,
+  82,132,81,132,3,82,132,131,81,132,81,132,82,132,4,81,132,131,82,132,
+  114,140,82,132,14,81,132,132,49,132,81,132,77,99,4,33,4,36,33,129,
+  4,33,5,36,33,171,4,33,36,33,4,33,4,33,36,33,228,32,162,24,
+  195,24,136,90,41,139,227,65,8,107,134,98,231,106,199,106,227,65,101,82,
+  4,74,69,82,133,98,231,106,166,106,100,90,133,98,133,98,101,90,133,90,
+  3,74,165,90,101,90,100,82,39,115,198,106,227,73,69,82,170,139,39,123,
+  7,115,105,131,138,139,40,123,231,114,195,73,3,195,65,151,69,82,4,74,
+  3,74,227,73,227,65,227,73,194,65,194,65,163,65,162,65,163,65,162,65,
+  162,57,162,57,162,65,163,65,163,57,162,57,163,57,195,65,163,57,227,65,
+  163,65,6,195,65,151,194,65,195,65,195,65,69,82,107,123,171,139,204,139,
+  237,155,77,164,110,172,143,180,176,188,208,188,17,197,17,205,17,213,241,204,
+  50,213,17,213,241,204,82,213,38,163,194,73,5,195,65,137,162,65,200,90,
+  165,122,194,73,195,65,162,57,73,115,35,106,194,65,192,4,130,12,99,12,
+  99,11,44,99,175,12,91,44,99,12,91,44,99,44,99,45,99,12,99,45,
+  99,45,99,44,99,12,99,44,99,44,99,45,99,45,99,45,91,45,99,44,
+  99,45,99,45,91,45,91,78,59,208,27,114,28,244,36,21,45,179,52,207,
+  67,45,83,44,99,44,99,45,91,45,99,77,99,45,91,44,91,44,91,45,
+  91,44,91,45,83,143,43,50,20,212,28,53,53,85,53,114,52,110,75,3,
+  45,99,4,77,99,132,45,91,77,99,77,99,45,91,10,77,99,129,77,91,
+  3,77,99,129,77,91,7,77,99,162,77,91,77,99,77,91,110,99,77,99,
+  109,99,110,99,77,99,110,99,77,99,77,91,78,99,77,91,77,99,110,99,
+  77,91,77,99,109,99,77,91,12,91,236,90,236,82,12,91,12,91,45,91,
+  110,99,208,107,17,116,82,124,146,124,146,124,147,124,147,124,179,124,7,179,
+  132,129,180,132,3,211,132,131,179,132,179,132,211,132,3,180,132,137,211,132,
+  179,132,211,132,180,132,180,124,179,132,179,132,211,132,179,124,4,180,132,147,
+  179,132,211,132,179,132,179,124,179,132,82,124,110,99,138,66,69,33,195,24,
+  102,33,45,75,17,108,147,124,180,132,180,124,179,132,180,132,180,132,6,179,
+  124,10,212,132,5,244,132,138,179,132,20,141,118,165,12,99,235,98,203,90,
+  203,90,170,82,170,82,137,82,3,105,74,5,73,74,5,40,74,131,40,66,
+  40,74,40,74,4,40,66,131,8,66,231,57,8,66,3,231,57,134,199,57,
+  199,57,199,49,167,49,166,49,166,49,6,134,41,130,102,33,69,33,3,102,
+  33,140,69,33,37,25,207,107,232,49,49,124,19,157,243,156,20,165,243,156,
+  243,156,211,156,52,173,3,243,156,136,20,165,109,115,195,24,236,82,243,156,
+  178,148,178,148,211,156,3,146,148,140,114,148,146,140,81,140,49,132,16,124,
+  16,124,240,123,207,115,16,116,175,107,175,107,207,107,3,175,107,129,208,107,
+  4,175,107,130,207,107,207,107,5,175,99,155,208,107,207,107,207,107,208,107,
+  175,99,208,107,207,99,175,99,207,107,208,107,207,107,208,107,240,107,207,99,
+  207,99,208,99,208,99,208,107,175,99,208,107,208,99,208,107,175,99,208,107,
+  175,99,175,99,240,107,3,208,107,129,240,107,3,208,99,193,207,99,208,107,
+  175,99,208,107,175,99,208,99,208,107,208,107,207,107,207,99,175,99,208,107,
+  208,99,208,99,207,99,240,107,208,107,175,99,208,107,208,99,208,107,208,99,
+  208,99,207,99,240,107,175,99,240,107,175,99,208,99,207,99,208,107,240,107,
+  208,99,176,99,208,107,207,107,208,107,240,107,208,107,175,99,208,107,175,99,
+  208,99,240,107,208,107,208,107,240,107,208,107,240,107,240,107,208,107,208,107,
+  208,99,208,107,208,99,175,99,208,107,208,99,208,107,208,99,208,99,208,107,
+  16,108,208,99,208,107,3,208,99,130,176,99,176,99,5,208,99,143,176,91,
+  176,91,143,91,143,91,176,91,143,91,175,91,143,91,143,91,176,91,175,91,
+  208,91,143,91,176,91,143,91,4,176,91,203,208,91,237,74,13,83,74,58,
+  9,50,9,58,9,50,41,58,232,49,232,49,233,49,233,49,232,41,232,41,
+  232,49,9,50,200,41,232,49,232,49,41,50,73,58,41,58,41,58,74,58,
+  106,66,139,74,204,74,204,82,236,82,237,82,13,83,45,91,78,91,78,99,
+  237,90,171,74,208,107,147,132,82,124,204,74,105,58,16,108,118,157,25,166,
+  57,166,90,174,155,174,187,182,155,182,122,174,25,166,151,141,53,133,86,141,
+  249,165,155,182,25,166,150,157,179,140,178,140,203,90,105,74,105,82,231,57,
+  41,74,8,66,102,49,4,33,98,8,130,16,134,49,231,57,199,57,8,66,
+  105,74,5,73,74,175,105,74,73,74,73,74,105,74,105,74,11,99,113,148,
+  210,156,243,164,237,74,10,50,42,50,10,50,137,33,6,17,99,8,131,8,
+  131,8,100,8,100,8,100,0,100,0,133,8,70,33,74,74,204,90,13,99,
+  13,99,45,99,78,99,78,107,110,107,143,107,175,115,208,115,208,115,241,123,
+  17,124,17,124,49,124,49,124,49,132,81,132,82,132,81,132,49,132,81,132,
+  4,49,124,131,49,132,81,132,81,132,3,82,132,131,114,132,82,132,82,132,
+  3,81,132,135,82,132,81,132,82,132,82,132,114,140,81,132,82,132,8,81,
+  132,129,82,132,4,81,132,138,49,132,81,132,110,107,69,33,4,33,37,33,
+  36,33,4,33,36,33,4,33,4,36,33,130,4,33,36,33,3,4,33,166,
+  228,32,163,24,195,24,72,74,106,139,227,73,231,106,199,106,167,90,8,115,
+  4,74,8,115,166,106,230,106,7,115,231,114,101,90,101,90,231,114,198,106,
+  138,139,105,139,231,114,137,139,40,123,165,98,40,123,7,115,68,90,68,82,
+  72,123,230,114,198,106,198,106,165,98,134,98,101,90,227,73,3,195,65,133,
+  163,65,195,65,195,65,162,65,194,57,3,195,65,143,227,65,228,73,4,74,
+  36,74,101,82,102,90,166,98,199,98,232,106,40,115,74,131,107,131,203,139,
+  203,155,227,89,9,195,65,130,102,82,241,172,4,82,213,143,114,221,114,221,
+  240,204,111,180,240,188,147,213,207,204,77,172,111,164,82,197,13,188,144,156,
+  235,187,194,81,227,65,3,195,65,138,227,65,194,65,69,74,72,131,162,73,
+  195,65,194,65,200,90,165,122,194,73,222,4,3,44,99,129,12,99,3,44,
+  99,132,45,99,44,99,44,99,12,91,3,44,99,129,12,91,3,44,99,132,
+  45,99,45,99,44,99,12,99,3,44,99,129,12,91,3,44,99,167,45,99,
+  44,99,45,91,45,99,45,99,45,91,45,75,143,43,50,12,212,36,21,45,
+  21,45,114,52,110,75,45,99,45,99,44,91,45,99,45,91,45,91,44,91,
+  45,91,45,99,45,91,45,91,110,59,241,19,147,20,21,53,86,61,244,52,
+  175,67,45,91,45,99,45,91,77,91,77,99,77,99,45,99,5,77,99,134,
+  45,91,45,91,77,99,77,99,77,91,77,91,13,77,99,130,109,99,109,99,
+  3,77,99,131,109,99,109,99,78,99,4,77,99,133,109,99,77,99,109,99,
+  77,99,77,91,3,77,99,139,12,91,236,82,236,82,236,90,13,91,45,91,
+  142,99,208,115,49,116,114,124,114,124,3,147,124,129,179,124,14,179,132,163,
+  180,132,180,132,211,132,211,132,179,132,179,132,180,132,180,132,211,132,180,132,
+  180,124,179,132,180,124,180,132,180,132,211,132,179,132,180,124,180,132,180,132,
+  114,124,175,107,204,74,134,41,227,24,4,25,203,58,208,99,82,116,179,132,
+  180,132,179,132,180,132,180,124,180,124,4,179,124,132,180,132,180,132,212,132,
+  211,132,7,212,132,159,244,132,244,132,212,132,212,132,244,132,244,132,179,132,
+  52,149,85,165,235,98,235,98,203,98,203,90,170,90,138,82,138,82,105,82,
+  105,74,73,74,73,74,40,74,73,74,73,74,40,74,72,74,72,74,40,74,
+  40,66,73,74,40,74,41,74,3,40,74,139,40,66,8,66,8,66,232,65,
+  8,66,231,57,199,57,231,57,199,57,167,49,199,49,4,166,49,4,134,41,
+  131,102,41,69,33,70,33,4,69,33,175,37,25,74,58,171,74,41,66,211,
+  148,52,165,52,165,20,165,20,165,243,156,244,156,243,156,211,156,243,156,52,
+  165,109,115,163,16,110,99,243,156,211,156,210,156,211,156,178,148,146,148,178,
+  148,146,148,146,140,81,140,49,132,17,132,240,123,16,124,207,107,240,115,175,
+  107,175,107,207,107,207,107,175,107,143,107,175,99,175,99,175,107,175,107,207,
+  107,175,107,175,107,6,175,99,191,208,107,207,99,175,99,207,99,208,107,208,
+  107,207,99,175,99,207,99,175,99,208,107,175,99,208,99,175,99,240,107,207,
+  99,208,107,208,99,175,99,208,99,207,99,207,99,208,107,208,107,207,99,208,
+  99,208,99,207,99,208,107,208,107,176,107,208,107,207,99,208,107,208,107,175,
+  99,208,107,175,107,207,99,208,107,175,99,207,107,208,107,175,99,240,107,208,
+  107,175,99,175,99,208,107,208,107,208,99,208,99,208,107,208,99,208,107,208,
+  107,207,99,175,99,176,99,208,107,175,99,175,99,208,107,3,207,99,144,208,
+  99,208,107,175,99,240,107,208,107,175,99,207,99,240,107,175,99,208,99,208,
+  107,240,107,208,107,240,107,208,107,240,107,3,208,107,135,207,99,240,107,208,
+  99,208,99,208,107,175,99,240,107,4,208,107,129,208,99,4,208,107,255,208,
+  99,175,99,208,99,208,99,176,99,176,99,208,99,175,91,175,91,143,91,111,
+  83,143,91,143,91,111,83,143,91,143,91,175,91,143,91,143,91,143,83,176,
+  91,143,91,175,91,176,91,176,91,208,91,208,91,111,75,204,74,171,74,41,
+  58,9,58,9,50,232,41,200,49,232,49,200,49,232,41,200,41,244,140,9,
+  50,200,49,232,49,233,49,233,49,9,58,41,58,41,58,42,58,106,66,74,
+  66,139,74,204,74,204,74,204,82,236,82,13,83,45,91,78,91,110,99,13,
+  91,203,82,16,116,179,132,82,116,203,74,73,58,240,115,86,149,216,157,249,
+  157,58,166,122,174,123,174,123,182,122,174,90,174,90,174,58,166,90,166,123,
+  182,220,182,25,174,150,165,243,140,211,140,236,90,105,74,170,82,231,57,40,
+  66,8,66,134,49,4,33,97,8,98,16,101,49,199,57,199,49,8,66,105,
+  82,105,74,73,74,73,74,199,57,134,49,134,49,8,66,105,74,73,74,105,
+  74,235,98,146,148,210,156,243,164,13,83,42,50,42,50,10,42,169,33,6,
+  17,99,8,131,8,99,8,99,8,100,8,100,0,143,100,0,133,0,70,33,
+  41,66,204,82,13,91,45,99,45,99,46,99,78,107,110,107,143,107,175,115,
+  208,115,240,123,3,17,124,135,49,124,49,132,49,132,49,124,81,132,82,132,
+  49,132,5,49,124,130,49,132,81,132,13,82,132,132,81,140,114,140,114,132,
+  81,140,7,81,132,132,82,132,81,132,81,132,82,132,3,81,132,134,49,132,
+  175,115,102,33,4,33,36,33,4,33,4,36,33,132,4,33,4,33,36,33,
+  36,33,5,4,33,164,163,24,163,24,230,57,138,139,4,82,166,90,8,115,
+  101,90,41,123,3,74,40,115,231,114,39,123,72,123,7,123,133,98,36,82,
+  166,98,101,90,40,123,230,114,166,106,198,106,133,90,3,74,69,82,69,82,
+  227,73,227,65,227,65,3,74,36,74,69,82,69,82,133,90,68,82,6,195,
+  65,151,70,82,41,115,73,123,139,131,203,147,236,155,45,164,46,172,110,172,
+  111,188,143,188,175,188,208,196,208,204,208,196,50,213,49,213,50,221,82,213,
+  49,213,100,122,194,65,227,65,7,195,65,131,4,66,176,164,83,213,4,82,
+  213,155,146,221,172,179,79,164,139,139,114,205,240,204,143,188,107,147,115,205,
+  138,179,241,172,206,204,226,97,195,65,227,73,195,65,195,65,194,65,195,65,
+  195,57,170,131,194,89,194,65,194,65,37,74,72,131,194,73,204,4,130,44,
+  99,12,91,3,44,99,133,12,99,12,99,44,99,44,99,12,99,6,44,99,
+  129,45,99,3,44,99,132,45,99,45,99,45,91,45,99,4,44,99,132,45,
+  99,44,99,44,99,45,99,4,45,91,143,45,83,78,59,208,27,114,20,244,
+  44,21,45,212,44,208,67,45,91,45,99,45,99,44,91,45,99,44,99,77,
+  99,4,45,91,147,77,75,176,35,82,12,244,36,54,61,21,53,49,60,77,
+  83,45,99,45,99,77,99,45,99,45,99,77,99,77,91,77,91,77,99,77,
+  99,45,91,3,77,91,4,77,99,131,77,91,77,99,77,91,8,77,99,130,
+  109,99,109,99,3,77,99,133,77,91,109,99,77,91,77,99,109,99,3,77,
+  99,132,109,99,77,99,77,99,77,91,3,77,99,141,12,91,236,82,236,82,
+  12,91,13,91,77,91,143,99,17,116,49,116,114,124,115,124,147,124,147,132,
+  3,179,132,130,179,124,179,124,5,179,132,129,179,124,4,179,132,129,211,132,
+  4,179,132,131,211,132,180,132,180,132,4,179,132,5,180,132,147,179,132,180,
+  132,180,132,147,132,240,115,45,91,8,58,228,24,195,16,41,42,143,91,50,
+  116,147,132,180,132,180,132,179,132,179,124,179,124,180,132,4,179,124,130,180,
+  124,180,132,9,212,132,140,244,132,244,132,212,132,244,132,244,132,212,132,146,
+  132,244,148,211,148,235,98,12,99,235,98,3,170,90,132,137,82,105,82,105,
+  82,105,74,4,73,74,134,41,74,40,66,73,74,40,66,72,74,41,74,4,
+  40,66,135,8,66,40,66,8,66,8,66,232,65,8,66,231,57,3,199,57,
+  135,199,49,199,49,166,49,134,49,166,41,134,41,134,49,3,134,41,132,102,
+  33,70,33,69,33,102,33,4,69,33,137,37,25,135,41,74,66,41,66,146,
+  148,85,173,243,156,20,165,244,164,3,211,156,149,244,164,243,156,109,107,130,
+  16,208,115,211,156,178,148,211,156,178,148,146,148,178,148,146,148,114,148,114,
+  140,81,140,49,132,49,124,240,115,240,115,239,115,207,115,8,175,107,3,208,
+  107,143,175,107,208,99,208,107,175,99,207,99,207,107,207,107,207,99,240,107,
+  208,107,207,99,207,99,175,99,175,99,207,99,4,208,107,129,175,99,3,208,
+  107,129,175,99,3,207,99,172,175,99,175,99,208,107,208,107,207,99,208,107,
+  176,99,208,107,207,99,208,99,208,107,208,107,208,99,208,99,208,107,175,99,
+  207,99,208,107,208,107,175,99,208,99,207,99,207,99,208,107,208,99,208,99,
+  175,99,208,107,175,99,240,107,176,99,240,107,176,99,208,99,208,107,208,107,
+  175,99,208,107,207,99,208,107,175,99,175,99,176,99,240,107,3,207,99,140,
+  175,99,175,99,240,107,208,107,208,107,176,99,175,99,208,107,207,99,208,99,
+  208,107,240,107,3,208,107,145,240,107,208,107,208,107,240,107,208,99,208,107,
+  175,99,208,99,208,107,175,99,176,107,176,99,175,99,208,107,208,107,240,107,
+  208,99,3,208,107,132,176,99,175,99,208,99,176,99,3,208,99,134,143,91,
+  143,91,208,91,176,91,143,83,143,91,3,111,83,144,143,83,111,83,143,83,
+  143,83,143,91,144,91,143,91,175,91,143,91,208,91,143,91,143,83,9,42,
+  9,50,41,58,9,50,3,233,49,166,200,41,232,49,232,41,200,41,74,50,
+  17,108,232,41,232,49,232,49,200,49,9,50,41,58,41,58,74,66,106,66,
+  106,66,139,74,204,74,204,82,204,82,237,82,13,83,45,91,110,99,142,99,
+  45,99,236,82,240,115,179,132,82,116,45,99,170,74,240,107,86,149,184,157,
+  216,157,25,166,58,174,3,90,174,168,122,174,123,174,155,182,155,174,155,182,
+  220,182,25,166,182,165,52,149,20,149,236,90,105,74,106,82,231,57,8,66,
+  8,66,102,41,4,33,98,8,98,8,101,41,199,57,166,49,8,66,105,82,
+  105,74,231,57,227,24,98,8,97,8,98,16,195,24,231,57,138,82,106,82,
+  203,98,113,148,210,156,19,165,78,99,3,10,50,130,201,33,6,17,4,99,
+  8,3,100,0,143,133,0,38,33,9,66,204,82,237,90,13,91,45,99,78,
+  99,78,99,110,107,143,107,176,115,208,115,240,123,240,123,3,17,124,134,49,
+  124,81,132,81,132,82,132,82,132,49,132,5,49,124,131,49,132,49,124,81,
+  132,3,82,132,130,114,132,114,132,3,82,132,3,81,132,132,82,132,113,132,
+  114,140,114,140,8,81,132,131,82,132,81,132,114,140,5,81,132,141,208,115,
+  167,41,4,33,36,33,4,33,36,33,36,33,4,33,36,33,36,33,4,33,
+  36,33,36,33,5,4,33,195,195,24,162,24,133,49,139,139,101,90,101,82,
+  41,123,68,90,73,123,4,82,101,90,133,98,68,90,36,82,69,82,37,82,
+  227,65,228,65,228,65,36,74,4,74,37,82,69,82,69,90,134,90,166,98,
+  199,98,232,106,41,115,74,123,106,131,73,123,110,164,110,172,175,180,45,172,
+  227,81,195,65,227,65,195,65,195,65,163,65,200,98,241,196,49,205,50,213,
+  82,221,240,204,208,196,50,213,208,196,176,196,143,188,176,180,50,213,143,188,
+  78,172,241,188,114,221,82,213,114,221,114,221,7,147,194,65,195,65,194,65,
+  194,65,5,195,65,131,163,65,14,132,114,205,4,82,213,142,114,221,175,204,
+  13,164,204,147,82,197,49,205,110,180,45,164,82,197,142,188,50,197,49,221,
+  67,122,194,65,5,195,65,136,162,65,106,115,36,98,194,73,195,65,195,65,
+  138,131,226,89,196,4,130,44,99,12,91,7,44,99,129,12,99,5,44,99,
+  130,45,99,44,91,4,44,99,130,45,99,44,91,3,44,99,172,45,99,44,
+  99,44,99,12,99,45,91,45,99,45,99,44,99,45,91,45,91,44,91,45,
+  91,45,75,143,43,50,12,180,28,53,53,21,53,114,52,110,75,12,99,44,
+  99,45,99,44,91,44,91,45,91,45,91,45,99,45,91,45,91,45,83,110,
+  51,49,20,180,20,53,53,54,53,146,52,110,75,44,99,45,99,45,99,77,
+  99,77,99,77,91,5,77,99,130,77,91,77,91,5,77,99,129,77,91,6,
+  77,99,129,109,99,4,77,99,129,77,91,7,77,99,134,109,99,109,99,77,
+  99,77,91,109,99,77,91,3,77,99,146,45,91,12,91,236,82,236,82,12,
+  91,12,91,78,99,175,107,17,108,82,116,114,124,147,124,147,124,147,132,147,
+  124,179,132,179,132,179,124,7,179,132,132,211,132,179,132,211,132,180,132,3,
+  179,132,130,211,132,212,132,3,179,132,3,180,132,151,179,132,179,132,180,132,
+  179,132,180,132,180,132,179,124,180,132,179,132,17,116,77,99,105,66,37,33,
+  195,24,167,33,78,75,17,108,147,124,179,132,179,124,180,132,179,124,179,132,
+  5,179,124,130,180,124,211,132,6,212,132,129,244,132,4,212,132,145,244,132,
+  244,132,212,132,245,132,212,132,178,140,52,157,146,140,235,98,11,99,235,98,
+  202,90,170,90,170,82,137,82,137,82,105,82,5,73,74,133,40,74,40,74,
+  40,66,73,74,40,66,3,40,74,3,40,66,131,8,66,8,66,8,58,5,
+  231,57,3,199,49,130,166,49,134,49,6,134,41,131,102,33,70,33,102,33,
+  3,70,33,3,69,33,134,37,25,102,33,233,49,233,57,179,148,20,165,3,
+  243,156,148,19,165,146,148,211,156,243,156,12,99,98,8,81,132,211,156,178,
+  148,211,156,211,156,178,148,178,148,146,148,146,148,146,140,113,140,16,132,49,
+  132,240,115,3,207,115,129,207,107,3,175,107,129,207,107,3,175,99,141,207,
+  107,175,107,208,107,175,99,207,107,175,107,175,99,207,99,240,107,175,99,208,
+  99,208,107,240,107,4,175,99,3,207,99,130,208,107,208,99,4,208,107,149,
+  207,99,207,99,208,107,208,107,175,99,207,99,208,107,175,107,207,99,175,99,
+  175,99,176,99,176,99,208,99,207,99,240,107,175,99,175,99,240,107,208,107,
+  175,99,3,208,107,139,207,99,207,107,208,107,207,107,208,107,208,99,208,107,
+  208,107,240,107,207,99,208,107,3,208,99,145,208,107,208,107,175,99,175,99,
+  208,107,208,107,175,99,175,99,208,99,208,107,175,99,208,99,208,107,175,99,
+  208,99,175,99,207,107,5,208,99,3,208,107,143,240,107,208,107,208,107,208,
+  99,208,107,240,107,208,107,208,99,208,99,208,107,175,99,208,99,208,99,208,
+  107,207,99,3,208,99,137,175,99,240,107,208,99,208,107,208,99,176,99,176,
+  91,143,91,208,99,3,176,99,135,143,91,79,83,49,108,176,91,143,83,111,
+  83,78,75,3,111,83,133,78,83,79,83,79,83,111,83,111,83,3,78,83,
+  219,111,83,143,91,46,83,4,25,199,49,74,58,41,58,41,58,232,49,233,
+  49,232,41,232,41,200,41,200,49,196,8,240,107,168,33,232,49,232,41,232,
+  49,41,58,41,58,41,50,42,58,74,58,139,74,171,74,172,74,204,74,236,
+  82,13,83,45,91,78,91,110,99,143,107,78,99,236,82,142,107,114,124,114,
+  124,142,115,45,99,175,99,53,149,183,157,216,157,25,166,57,166,58,174,57,
+  166,58,166,58,166,90,174,123,174,123,174,155,174,188,182,25,166,182,165,85,
+  149,243,148,235,90,105,74,138,82,231,65,8,66,232,65,102,49,4,33,98,
+  8,97,8,69,41,199,57,199,57,231,65,105,82,170,82,69,33,97,8,130,
+  16,98,16,98,16,130,16,69,41,138,82,138,82,203,90,113,148,211,156,243,
+  164,142,107,3,10,50,134,169,41,6,17,99,8,131,8,99,8,100,8,4,
+  100,0,144,6,25,9,58,172,82,236,90,13,91,13,99,45,99,78,107,110,
+  107,143,107,175,115,208,115,240,123,240,123,17,124,17,124,3,49,132,132,81,
+  132,49,124,82,132,81,132,6,49,124,129,81,132,4,82,132,3,114,132,138,
+  82,132,82,132,81,132,81,132,82,132,114,132,114,132,114,140,114,140,82,132,
+  7,81,132,146,82,132,81,132,82,132,81,132,114,140,81,132,81,132,49,132,
+  16,124,9,58,4,33,36,33,36,33,4,33,4,33,36,33,4,33,4,33,
+  3,36,33,170,4,33,4,33,36,33,4,33,4,33,195,24,163,24,36,33,
+  74,123,166,106,36,74,73,123,68,82,73,123,68,82,228,73,227,73,227,73,
+  227,65,4,74,8,115,138,131,171,139,204,147,237,155,45,164,45,164,78,172,
+  111,180,111,180,144,188,144,188,241,196,17,205,49,213,17,213,236,163,50,205,
+  143,188,240,188,240,196,69,98,4,195,65,151,163,65,135,82,49,189,114,213,
+  114,213,114,221,13,164,46,164,78,164,175,188,45,172,204,155,13,148,110,172,
+  139,139,46,172,236,139,114,213,82,213,82,221,114,221,202,171,162,73,8,195,
+  65,133,163,57,106,107,114,205,114,213,82,213,3,114,213,135,114,221,17,205,
+  49,205,114,213,82,213,82,221,82,221,4,114,221,143,231,162,194,73,195,65,
+  195,65,227,65,195,65,195,65,162,65,232,90,165,122,194,73,195,73,162,65,
+  106,107,35,106,192,4,130,12,99,12,99,4,44,99,129,12,99,3,44,99,
+  130,45,99,12,91,8,44,99,159,45,99,44,99,45,91,45,91,45,99,45,
+  99,12,91,44,99,44,99,44,91,45,99,44,99,45,99,44,99,45,91,45,
+  91,44,91,45,91,45,99,44,91,78,67,208,19,115,20,245,52,53,61,212,
+  52,240,59,45,83,45,91,44,91,45,99,3,45,91,146,45,99,45,99,45,
+  91,45,91,77,67,208,27,115,20,244,36,86,61,245,52,207,67,77,91,45,
+  99,45,99,77,99,45,99,77,99,45,91,4,77,99,130,77,91,45,91,3,
+  77,99,130,77,91,77,91,11,77,99,129,77,91,5,77,99,136,109,99,109,
+  99,77,99,77,91,77,91,77,99,109,99,109,99,3,77,99,139,45,91,236,
+  82,235,82,236,90,12,91,45,91,110,99,208,107,17,116,114,124,146,124,3,
+  147,124,132,179,124,179,132,179,132,179,124,4,179,132,129,211,132,5,179,132,
+  132,211,132,179,132,211,132,179,132,4,211,132,3,179,132,3,180,132,148,179,
+  132,179,132,179,124,179,124,179,132,179,132,82,124,142,99,170,74,101,41,195,
+  24,37,25,236,66,240,99,114,124,180,132,179,124,180,124,180,132,180,132,6,
+  179,124,130,180,124,211,132,6,212,132,129,244,132,5,212,132,145,244,132,212,
+  132,244,132,211,132,146,132,118,165,48,132,12,99,12,99,235,98,202,90,203,
+  90,170,90,170,82,137,82,105,82,105,74,4,73,74,132,72,74,40,66,40,
+  74,40,66,4,40,74,131,40,66,40,74,40,66,3,8,66,4,231,57,3,
+  199,49,130,167,49,166,49,6,134,41,131,102,41,102,33,102,33,4,69,33,
+  201,69,25,69,33,69,33,69,25,37,25,167,41,106,74,200,49,114,140,52,
+  165,243,156,244,156,243,164,211,156,243,156,211,156,138,82,98,8,178,148,243,
+  156,178,148,179,156,178,148,146,148,178,148,178,148,146,148,146,140,81,140,17,
+  132,16,124,240,123,207,115,175,107,240,115,175,107,208,107,175,107,207,107,175,
+  107,207,99,175,107,143,99,207,107,175,99,175,107,208,107,207,107,175,99,175,
+  99,208,107,207,99,207,99,208,107,208,107,175,107,175,99,208,107,207,99,175,
+  99,208,107,208,107,207,107,208,107,207,99,175,99,207,99,175,99,175,99,207,
+  107,175,99,207,99,207,107,3,175,99,137,176,99,175,99,207,99,175,99,175,
+  99,208,107,208,99,208,107,208,107,4,175,99,141,175,107,208,107,208,107,207,
+  107,208,107,208,107,208,99,207,99,16,116,240,107,208,107,240,107,240,107,8,
+  208,107,158,175,99,240,107,208,107,208,107,175,99,175,99,240,107,208,107,208,
+  99,208,107,207,107,175,99,208,107,208,107,175,99,175,99,208,107,208,107,208,
+  99,208,107,208,107,240,107,240,107,207,99,208,107,207,99,240,107,240,107,175,
+  99,208,107,4,208,99,132,175,99,240,107,176,99,208,107,3,175,99,142,176,
+  99,175,99,175,99,208,99,175,99,143,99,175,99,175,99,176,99,143,99,143,
+  91,111,83,78,75,111,83,4,46,75,131,45,75,46,75,78,83,3,46,75,
+  3,78,83,3,78,91,138,143,99,45,91,196,16,199,41,9,50,9,50,41,
+  58,232,41,232,41,232,49,3,200,41,161,33,0,114,124,233,41,232,49,200,
+  41,8,50,9,58,41,58,74,58,41,58,106,66,139,66,171,74,171,74,204,
+  82,236,82,13,83,13,83,46,91,110,99,143,107,142,107,45,91,77,99,50,
+  124,114,124,109,107,203,82,142,99,21,141,151,149,216,157,248,157,3,25,166,
+  178,57,166,58,166,90,174,122,174,123,174,123,174,155,174,25,166,183,165,53,
+  149,243,140,171,82,105,82,137,82,232,65,8,66,231,65,134,49,4,33,98,
+  8,65,8,69,41,199,57,199,57,232,65,138,82,171,90,228,24,162,16,130,
+  16,65,8,65,8,130,16,4,33,73,74,170,82,203,90,80,148,210,156,19,
+  165,175,107,9,42,10,50,10,50,201,41,38,17,131,8,131,8,99,8,100,
+  8,4,100,0,147,6,25,233,57,171,82,236,90,13,91,45,99,46,99,78,
+  99,110,107,143,107,175,115,208,115,240,123,240,123,17,124,49,124,49,124,49,
+  132,49,132,3,82,132,129,50,132,7,49,124,130,81,132,82,132,5,114,132,
+  135,82,132,81,132,49,132,81,132,82,132,82,132,114,140,3,114,132,7,81,
+  132,3,82,132,3,81,132,3,49,132,133,106,66,228,24,36,33,36,33,4,
+  33,3,36,33,3,4,33,172,36,33,36,33,4,33,4,33,36,33,4,33,
+  195,24,162,24,4,33,9,107,231,114,3,74,73,123,69,90,41,123,134,98,
+  227,73,228,73,227,73,227,65,69,82,78,164,50,213,50,205,82,213,176,196,
+  17,205,143,188,111,180,111,180,78,172,79,172,13,156,17,189,114,221,146,221,
+  114,221,44,164,240,188,78,172,110,164,241,196,166,114,194,65,4,195,65,151,
+  5,66,208,172,114,221,114,213,114,221,236,163,45,164,45,156,143,180,78,172,
+  208,196,46,172,45,164,110,172,78,172,111,164,82,213,114,213,114,221,146,221,
+  109,196,226,81,194,65,4,195,65,134,227,65,194,65,195,65,162,57,233,90,
+  82,189,3,82,213,145,49,213,49,213,49,205,17,205,241,204,208,196,176,188,
+  143,188,110,180,77,172,13,164,236,155,203,155,100,114,194,73,195,65,227,73,
+  3,195,65,136,163,65,102,82,72,131,161,73,195,73,194,65,200,90,165,114,
+  166,4,132,44,99,12,99,44,99,12,91,3,44,99,134,12,99,44,99,45,
+  99,44,99,44,99,12,91,4,44,99,129,45,99,4,44,99,9,45,99,148,
+  44,99,44,99,45,99,44,99,44,91,45,91,45,91,45,99,45,99,45,91,
+  45,83,111,43,49,12,179,28,21,53,21,53,146,44,142,67,45,91,45,91,
+  3,45,99,130,45,91,77,91,3,45,91,137,45,75,175,35,50,12,212,36,
+  53,53,53,53,49,60,77,83,45,99,7,77,99,133,77,91,77,99,77,91,
+  77,99,77,99,3,77,91,12,77,99,129,77,91,4,77,99,4,109,99,146,
+  77,99,77,99,109,99,78,99,77,99,110,99,77,91,12,91,236,82,235,82,
+  236,90,12,91,45,99,142,99,240,107,49,116,114,124,114,124,3,147,124,14,
+  179,132,133,211,132,180,132,179,132,211,132,211,132,3,179,132,130,180,132,212,
+  132,3,179,132,143,180,132,180,132,179,132,180,132,180,132,211,132,114,124,175,
+  99,236,82,199,49,227,24,227,24,138,58,176,91,82,116,4,179,124,130,180,
+  132,180,132,5,179,124,130,180,124,180,132,8,212,132,129,244,132,3,212,132,
+  4,244,132,141,179,132,146,132,150,165,174,123,44,107,44,107,12,99,235,98,
+  202,90,170,90,170,82,137,82,137,82,4,73,74,140,40,74,40,74,73,74,
+  8,66,40,66,40,74,40,66,8,66,40,74,40,74,8,66,40,66,3,8,
+  66,4,231,57,134,199,57,199,49,167,49,199,49,167,49,134,49,4,134,41,
+  130,102,41,134,41,3,69,33,129,70,33,6,69,33,147,69,25,37,25,103,
+  33,139,74,103,41,49,132,85,173,178,148,211,156,179,156,211,156,19,165,41,
+  74,131,8,20,157,179,156,211,156,178,148,178,148,4,146,148,136,113,140,81,
+  132,16,124,240,123,240,123,207,115,207,115,208,115,4,175,107,131,175,99,175,
+  99,175,107,3,207,107,132,175,107,208,107,208,107,207,99,3,175,99,140,208,
+  107,207,99,208,107,240,107,175,99,175,99,208,107,208,107,207,107,208,99,208,
+  107,208,107,3,207,99,143,175,99,176,99,240,107,207,99,208,99,175,99,208,
+  107,208,99,207,99,208,99,208,107,208,107,175,99,175,99,208,107,3,207,99,
+  142,175,99,207,99,208,99,175,99,208,107,207,99,240,107,208,107,208,107,208,
+  99,207,107,208,107,240,107,208,107,3,240,107,130,240,99,240,107,3,208,107,
+  154,240,107,208,107,240,107,208,107,208,107,207,107,207,107,175,99,208,107,240,
+  107,207,99,175,99,208,107,207,99,175,99,208,107,175,99,175,99,208,107,208,
+  99,208,107,176,107,208,99,208,99,208,107,175,99,3,208,107,129,240,107,3,
+  208,107,131,208,99,208,107,208,107,7,175,99,211,176,99,175,99,175,99,208,
+  107,175,99,175,99,143,91,143,91,110,91,143,91,143,91,111,91,46,75,45,
+  75,46,75,46,75,13,75,13,75,237,74,237,74,204,66,237,74,13,83,46,
+  83,45,83,45,83,78,91,46,91,78,99,110,99,110,99,78,91,236,82,163,
+  8,102,33,167,41,73,58,232,49,9,50,232,49,200,41,200,41,199,41,200,
+  41,33,0,142,99,172,66,200,41,200,49,232,49,9,58,73,58,74,58,41,
+  58,106,58,138,66,171,74,204,74,204,82,237,82,13,91,45,91,45,91,110,
+  99,175,115,175,115,110,107,77,99,17,116,114,124,12,83,41,66,110,99,212,
+  140,86,149,151,149,216,157,248,165,249,165,25,166,58,174,90,174,90,166,3,
+  122,174,169,155,174,25,166,183,165,20,149,211,140,203,82,73,74,138,82,8,
+  66,8,66,232,65,134,49,4,33,98,16,65,8,68,41,199,57,231,57,231,
+  65,170,90,138,82,195,24,195,24,228,32,130,16,65,8,98,16,227,32,73,
+  74,170,82,203,90,80,140,210,156,19,165,240,123,233,41,9,42,10,50,201,
+  41,38,17,131,8,3,99,8,4,100,0,152,230,24,200,49,171,82,236,90,
+  237,90,13,91,45,99,78,99,110,107,143,107,175,107,208,115,240,123,240,123,
+  17,124,17,124,49,124,49,124,50,132,82,132,82,132,81,132,49,124,49,132,
+  5,49,124,132,81,124,81,132,81,132,82,132,5,114,132,4,81,132,134,82,
+  132,114,132,114,140,114,140,114,132,114,132,7,81,132,133,82,132,81,132,81,
+  132,82,132,81,132,3,49,132,136,204,74,228,24,37,33,4,33,36,33,36,
+  33,4,33,37,33,3,4,33,178,36,33,4,33,36,33,4,33,36,33,36,
+  33,228,32,163,24,227,24,201,98,40,131,227,65,41,115,134,98,231,114,199,
+  106,227,65,4,74,228,73,228,73,4,74,110,164,147,221,114,221,146,221,142,
+  188,110,164,13,156,107,131,140,139,75,131,172,147,74,131,176,172,114,221,114,
+  213,114,221,76,172,110,164,175,180,176,180,207,180,8,131,194,65,195,65,227,
+  65,195,65,195,65,228,65,78,148,3,114,221,145,17,205,175,188,240,196,240,
+  196,17,205,82,213,17,205,49,205,115,221,49,213,82,213,114,221,82,221,82,
+  221,114,221,240,212,3,106,6,195,65,148,194,65,195,65,195,65,102,82,13,
+  148,236,155,171,139,106,131,73,123,8,115,231,114,198,98,133,98,69,90,36,
+  82,36,74,4,74,195,73,194,65,195,65,3,194,65,7,195,65,134,138,131,
+  194,89,227,65,194,65,69,74,40,131,186,4,130,44,99,12,99,5,44,99,
+  130,12,91,12,91,6,44,99,134,12,91,44,99,45,99,44,99,44,99,45,
+  99,3,44,99,5,45,99,137,44,99,44,99,45,99,45,99,44,99,44,99,
+  45,91,44,99,45,91,3,44,91,140,45,91,45,83,77,67,176,27,114,20,
+  244,36,21,53,244,44,17,52,77,83,44,91,45,99,3,45,91,129,77,99,
+  4,45,91,139,110,59,241,19,147,20,21,53,53,53,179,44,142,75,45,99,
+  77,99,77,99,45,99,4,77,99,129,77,91,8,77,99,129,45,91,4,77,
+  99,130,77,91,77,91,6,77,99,152,109,99,109,99,77,99,109,99,77,99,
+  78,99,77,99,109,99,78,99,77,91,77,99,77,91,77,91,12,91,236,82,
+  204,82,236,90,12,91,77,99,110,99,240,115,49,116,114,124,114,124,4,147,
+  124,3,179,132,129,180,132,6,179,132,142,180,132,211,132,211,132,180,132,179,
+  132,179,132,180,132,211,132,211,132,179,132,180,132,179,132,180,132,180,132,3,
+  179,132,3,180,132,151,179,132,147,132,208,107,45,83,8,50,4,33,195,24,
+  232,41,110,83,50,116,147,132,180,132,179,124,179,132,180,124,179,124,179,132,
+  179,132,147,124,179,132,179,132,179,124,180,132,13,212,132,146,244,132,244,132,
+  212,132,244,132,179,132,243,140,117,165,141,115,44,107,44,107,12,99,235,98,
+  203,98,170,90,138,82,138,82,105,82,105,74,3,73,74,130,40,74,72,74,
+  3,40,74,5,40,66,133,8,66,8,66,40,66,8,66,232,65,3,231,57,
+  134,199,57,199,57,199,49,199,49,167,49,166,49,5,134,41,131,102,41,102,
+  41,102,33,3,69,33,154,70,33,69,25,69,33,69,33,69,25,37,33,69,
+  33,37,25,37,25,200,41,9,58,135,41,17,124,243,156,243,164,178,148,178,
+  156,178,148,232,65,196,16,211,148,146,148,178,156,179,156,146,148,178,148,3,
+  146,148,136,81,140,81,132,49,132,240,123,240,123,208,115,240,123,207,115,3,
+  175,107,3,207,107,142,175,99,175,99,207,107,208,107,207,107,175,107,175,107,
+  208,107,175,107,208,107,175,99,208,107,207,99,208,107,4,175,99,165,207,99,
+  175,99,208,107,240,107,175,99,208,99,175,99,175,99,143,99,175,99,208,107,
+  207,99,240,107,175,99,208,99,208,99,175,99,175,99,207,99,175,99,175,99,
+  208,107,175,99,208,107,175,99,208,107,208,99,208,107,175,99,208,107,240,107,
+  207,99,208,107,208,107,208,99,240,107,240,107,3,208,107,10,240,107,131,208,
+  107,208,107,208,99,4,208,107,138,240,107,208,99,208,107,207,99,175,99,175,
+  99,208,107,175,99,175,99,240,107,4,208,107,132,240,107,208,107,208,107,208,
+  99,3,208,107,134,207,99,208,107,208,99,208,99,175,99,208,99,4,175,99,
+  225,143,99,143,99,175,99,175,99,208,107,143,99,175,99,143,99,111,91,111,
+  91,110,91,110,91,78,91,78,91,110,91,237,66,237,66,13,75,237,74,204,
+  74,204,74,237,74,237,74,204,74,13,83,13,83,45,83,110,91,78,91,110,
+  91,78,91,77,91,45,91,78,99,237,82,204,82,228,16,228,16,135,33,9,
+  50,9,58,232,49,200,41,200,49,168,41,199,41,135,41,65,0,170,74,175,
+  99,233,41,200,41,9,50,9,58,9,50,74,58,73,58,106,58,171,66,171,
+  74,204,74,237,82,236,82,13,83,45,91,45,91,110,99,175,107,175,115,175,
+  115,110,107,17,116,115,132,236,82,9,58,12,91,114,124,20,133,86,141,151,
+  149,184,157,248,157,25,166,57,166,90,174,90,174,122,174,122,174,123,174,123,
+  182,25,174,183,165,20,149,211,140,12,91,40,74,138,82,3,232,65,158,134,
+  49,4,33,130,16,65,8,36,33,199,57,231,57,231,57,138,90,170,82,69,
+  33,98,16,195,24,98,16,98,8,130,16,227,32,105,74,138,82,203,90,48,
+  140,210,156,19,165,49,132,233,41,10,42,10,50,201,49,39,25,131,8,3,
+  99,8,129,99,0,3,100,0,144,229,16,168,49,139,74,204,90,237,90,13,
+  91,45,99,46,99,110,99,143,107,175,115,208,115,208,123,240,123,17,124,17,
+  124,3,49,124,133,82,132,82,132,82,124,81,124,50,132,4,49,124,131,49,
+  132,81,124,82,132,3,114,132,133,114,140,114,132,114,132,82,132,82,132,3,
+  81,132,135,82,132,114,132,114,140,114,140,114,132,114,132,82,132,6,81,132,
+  138,114,132,82,132,81,132,82,132,81,132,49,132,81,132,49,132,13,91,4,
+  25,3,36,33,133,37,33,4,33,36,33,36,33,4,33,3,36,33,4,4,
+  33,166,228,24,163,24,195,24,104,82,106,139,227,73,8,107,167,106,199,98,
+  232,114,227,65,227,73,227,65,228,65,196,65,237,139,115,221,114,221,146,221,
+  17,205,175,180,208,196,110,172,176,188,175,180,208,196,208,196,49,205,114,221,
+  114,221,146,221,142,188,77,156,240,196,176,188,17,197,203,155,227,73,4,195,
+  65,134,195,57,204,123,114,213,82,213,82,221,82,213,3,50,213,143,17,213,
+  17,205,240,204,208,196,176,188,175,188,142,180,78,172,45,172,13,164,236,155,
+  137,139,3,82,194,65,227,65,9,195,65,132,194,65,162,57,194,57,163,65,
+  3,162,65,130,194,65,162,65,3,195,65,130,194,65,195,73,4,195,65,129,
+  194,65,5,195,65,135,162,65,138,115,35,106,194,65,195,73,227,65,105,131,
+  173,4,131,44,99,44,99,12,91,6,44,99,129,45,99,3,44,99,138,45,
+  99,44,99,45,99,44,99,45,99,44,99,45,99,12,91,44,99,44,99,3,
+  45,99,3,44,99,129,12,99,4,45,99,151,44,91,45,91,45,99,45,99,
+  45,91,44,91,44,99,44,99,45,91,45,91,45,83,111,43,17,20,147,20,
+  245,36,21,45,179,52,208,67,45,83,45,99,45,99,45,91,44,91,3,45,
+  99,138,45,91,77,91,78,67,208,35,114,12,244,36,53,53,244,44,240,67,
+  77,91,7,77,99,132,77,91,77,99,77,99,77,91,3,77,99,130,77,91,
+  77,91,4,77,99,131,77,91,77,99,77,91,6,77,99,134,77,91,109,99,
+  77,99,77,91,109,99,109,99,4,77,99,145,77,91,45,99,236,82,236,82,
+  235,90,12,91,45,91,77,99,143,107,16,108,82,124,114,124,114,124,147,124,
+  147,124,147,132,147,132,8,179,132,129,211,132,3,179,132,132,180,132,179,132,
+  211,132,211,132,3,179,132,133,180,132,180,132,179,132,179,132,180,132,3,179,
+  132,142,180,132,180,132,211,132,179,132,240,115,77,91,41,58,36,33,195,24,
+  134,33,46,75,241,107,115,124,180,132,4,179,124,137,180,132,179,124,147,124,
+  179,124,147,124,179,124,179,124,180,132,180,132,10,212,132,129,244,132,3,212,
+  132,159,244,132,244,132,146,132,211,140,85,165,109,115,76,107,77,107,12,99,
+  12,99,203,98,170,90,170,90,137,82,105,82,105,74,105,74,73,74,73,74,
+  40,74,40,66,40,74,40,74,40,66,40,66,8,66,40,66,40,66,40,74,
+  40,66,40,66,3,8,66,130,232,57,231,57,3,199,57,135,199,49,199,49,
+  166,49,166,49,134,41,134,41,135,41,3,134,41,130,102,33,102,33,4,69,
+  33,151,69,25,69,33,69,33,70,33,69,33,69,33,37,25,37,33,37,33,
+  37,25,167,33,9,50,111,107,85,173,211,156,243,156,178,156,199,57,4,25,
+  244,156,178,148,178,156,178,156,3,178,148,138,146,148,113,140,81,140,16,132,
+  16,124,240,123,240,123,240,115,207,107,240,115,5,207,107,132,239,115,175,99,
+  208,107,175,99,4,207,107,135,240,107,175,107,208,107,207,107,175,99,207,99,
+  207,107,3,175,99,134,207,99,207,99,175,99,175,99,207,107,207,107,5,175,
+  99,161,240,107,208,107,240,107,207,99,208,107,208,99,208,107,207,107,207,107,
+  175,99,208,99,208,99,207,107,208,99,175,99,208,99,208,99,175,99,208,99,
+  208,107,208,107,175,99,208,107,208,107,208,99,208,107,240,107,208,107,175,99,
+  208,107,240,107,240,107,208,107,4,240,107,150,208,107,240,107,240,107,208,107,
+  240,107,208,107,240,107,208,107,207,99,240,107,208,107,208,107,240,107,208,107,
+  208,107,240,107,207,99,207,99,240,115,208,107,208,107,240,107,3,208,107,136,
+  240,107,208,107,208,99,208,107,208,107,208,99,207,99,208,107,5,175,99,143,
+  143,91,143,99,175,99,143,91,143,99,175,99,143,91,78,91,143,99,175,99,
+  110,91,78,91,110,91,46,83,46,83,3,45,83,133,237,74,172,66,237,74,
+  237,74,172,74,3,204,74,192,13,83,13,83,45,83,45,91,110,91,78,91,
+  78,99,78,99,78,91,45,91,13,91,237,82,236,82,37,33,98,8,167,41,
+  167,41,9,58,232,49,200,41,200,49,167,41,200,41,134,33,98,0,231,49,
+  49,108,74,50,200,41,9,50,41,50,9,58,42,58,74,58,106,58,171,74,
+  171,74,204,74,204,74,237,82,236,82,45,83,78,91,110,99,143,107,207,115,
+  207,115,142,107,49,124,147,132,13,83,8,50,236,82,49,116,179,124,244,124,
+  21,133,118,141,216,149,25,166,25,158,57,166,90,166,122,174,3,123,174,143,
+  25,166,215,165,21,149,244,140,45,91,8,66,138,82,8,66,231,65,8,66,
+  166,57,4,33,130,16,65,8,4,33,3,199,57,150,138,82,138,82,8,66,
+  195,24,98,16,130,16,130,16,195,24,199,57,170,82,170,82,170,90,15,132,
+  211,156,19,165,114,140,233,41,234,49,42,50,233,49,71,33,131,8,3,99,
+  8,129,99,0,3,100,0,150,197,16,168,49,139,74,204,90,237,90,13,91,
+  45,99,46,99,110,99,143,107,175,115,176,115,240,115,241,123,17,124,49,124,
+  49,132,49,124,81,132,82,132,82,132,81,124,6,49,124,134,81,124,82,132,
+  82,132,114,132,114,132,114,140,4,114,132,134,82,132,81,132,81,132,82,132,
+  114,132,114,140,3,114,132,136,82,132,82,132,81,132,49,132,81,132,82,132,
+  81,132,82,140,5,81,132,133,49,132,49,132,81,132,110,107,37,33,13,36,
+  33,3,4,33,144,163,24,163,16,7,66,139,147,3,74,198,98,8,115,101,
+  90,41,123,4,74,228,73,228,73,228,65,227,65,107,115,114,213,3,114,221,
+  129,82,213,9,114,221,136,147,221,207,204,77,156,17,197,45,164,17,197,78,
+  188,228,73,3,195,65,148,227,65,195,65,9,115,77,172,45,164,12,156,236,
+  147,171,147,138,131,73,131,40,123,231,106,198,98,166,98,133,90,68,82,36,
+  74,4,74,227,65,227,65,13,195,65,129,194,65,5,195,65,129,227,65,6,
+  195,65,130,194,65,195,73,4,195,65,141,194,65,194,65,195,65,195,65,195,
+  73,195,65,162,65,232,98,165,114,194,73,227,73,163,65,73,107,129,4,7,
+  44,99,131,12,99,44,99,44,91,3,44,99,129,12,99,4,44,99,129,44,
+  91,5,44,99,130,45,99,12,91,3,44,99,136,44,91,45,99,44,99,45,
+  91,45,99,45,99,45,91,45,99,3,45,91,130,44,99,44,91,4,45,91,
+  141,45,67,176,27,82,20,212,28,21,45,21,45,114,44,142,67,45,91,45,
+  91,45,99,45,99,77,99,3,45,91,140,77,91,77,83,143,43,50,12,179,
+  28,21,45,21,45,81,52,77,91,45,99,77,99,77,91,21,77,99,130,77,
+  91,109,99,3,77,99,132,109,99,77,99,77,99,109,99,6,77,99,143,45,
+  91,236,82,236,90,204,90,12,91,45,91,78,99,175,107,16,108,82,124,114,
+  124,146,124,146,124,147,124,147,124,10,179,132,129,179,124,8,179,132,133,180,
+  132,211,132,179,132,180,132,180,132,3,179,132,3,180,132,142,179,132,17,116,
+  110,99,105,66,69,33,195,24,37,25,236,66,208,99,82,124,179,132,179,132,
+  179,124,180,124,3,179,124,129,147,124,4,179,124,130,180,124,180,132,12,212,
+  132,147,244,132,212,132,212,132,244,132,244,140,179,132,244,148,20,157,109,115,
+  109,107,44,107,44,107,11,99,235,98,203,90,170,90,170,82,105,82,105,74,
+  3,73,74,129,40,74,4,40,66,141,40,74,40,66,8,66,40,66,40,74,
+  8,66,40,66,8,66,8,66,231,57,231,57,199,57,231,57,4,199,49,130,
+  167,49,134,49,6,134,41,129,102,41,4,69,33,133,69,25,69,33,69,33,
+  69,25,69,25,3,69,33,144,69,25,37,25,37,25,5,25,232,49,233,57,
+  46,99,20,165,211,156,113,148,134,49,70,33,243,148,179,156,146,148,178,156,
+  3,178,148,132,146,148,114,140,81,132,49,132,3,16,124,143,208,115,207,115,
+  175,107,240,115,240,107,175,107,207,107,175,107,207,107,175,107,207,107,175,99,
+  175,99,208,107,207,107,3,175,99,130,175,107,207,107,3,175,99,134,208,107,
+  208,99,175,99,208,99,207,99,207,99,6,175,99,131,208,107,208,107,207,99,
+  3,175,99,129,207,99,3,175,99,134,208,107,208,107,208,99,207,107,208,107,
+  207,99,4,208,99,143,208,107,208,107,240,107,208,99,208,107,207,107,208,107,
+  208,99,208,107,175,99,175,107,208,107,208,107,240,107,208,107,3,240,107,148,
+  207,107,240,107,208,107,207,99,207,99,208,107,175,99,207,99,208,107,208,107,
+  207,107,240,107,208,107,240,107,208,107,208,107,240,107,208,107,240,107,175,99,
+  4,208,107,138,175,99,208,107,240,107,208,107,208,107,240,107,240,107,208,99,
+  175,99,208,107,5,175,99,255,143,99,142,91,143,99,142,99,142,99,111,99,
+  110,99,110,91,110,91,78,91,110,91,45,83,78,91,46,91,13,83,45,83,
+  13,83,237,74,237,74,204,74,236,74,237,74,204,74,13,83,13,91,13,91,
+  46,91,237,82,78,91,46,99,78,91,45,91,46,91,13,91,78,91,78,91,
+  77,91,237,82,45,99,70,33,65,0,4,25,70,33,41,58,232,49,232,49,
+  167,41,168,41,200,41,102,33,163,8,69,33,82,124,237,66,200,41,232,49,
+  9,50,9,50,41,58,74,58,106,66,139,66,172,74,171,74,204,82,204,82,
+  237,82,45,91,77,91,110,99,143,107,207,115,240,123,175,115,49,124,114,124,
+  13,83,41,58,235,74,17,116,147,124,180,124,212,132,54,141,183,149,249,157,
+  25,158,58,166,58,166,90,166,90,174,91,174,123,174,57,166,215,165,85,149,
+  20,149,142,99,73,74,138,82,8,66,231,65,8,66,167,49,4,33,162,16,
+  33,8,4,33,199,57,231,57,231,57,138,82,105,82,138,82,73,74,167,57,
+  101,41,166,49,8,66,106,82,138,82,138,82,171,90,239,131,210,156,19,165,
+  146,140,134,233,41,233,41,42,50,234,49,71,25,131,8,3,99,8,4,100,
+  0,144,197,16,135,49,106,74,204,90,204,90,237,90,13,91,46,99,78,99,
+  110,107,143,107,175,115,240,123,240,123,17,124,17,124,3,49,124,132,82,132,
+  82,132,49,124,81,124,5,49,124,131,81,124,49,132,81,132,8,114,132,146,
+  82,132,82,132,114,132,114,132,114,140,114,132,146,140,114,140,114,132,82,132,
+  81,132,49,132,49,132,82,132,81,132,114,140,82,132,82,132,3,81,132,138,
+  49,132,49,132,81,132,175,115,69,33,4,33,37,33,37,33,36,33,4,33,
+  10,36,33,154,4,33,195,24,163,16,198,49,139,139,69,90,133,90,73,123,
+  68,82,73,131,4,74,4,74,228,73,4,74,227,65,9,107,82,205,115,221,
+  114,221,146,221,146,221,147,221,147,221,146,221,115,221,115,221,4,114,221,141,
+  115,221,17,213,12,156,240,188,111,180,208,188,46,180,4,82,195,65,195,65,
+  194,65,195,65,195,65,3,4,74,138,227,65,195,65,195,65,194,65,162,65,
+  162,65,195,65,194,65,162,65,162,65,15,195,65,131,194,65,195,65,194,65,
+  8,195,65,142,195,73,195,65,195,65,163,65,195,65,195,65,194,65,195,65,
+  227,65,195,65,195,65,195,73,195,65,195,65,3,195,73,135,195,65,102,82,
+  40,131,193,81,227,73,162,65,232,98,121,4,132,44,99,44,99,12,91,12,
+  99,5,44,99,129,12,99,3,44,99,129,45,99,10,44,99,129,45,99,4,
+  44,99,129,44,91,4,44,99,136,45,91,44,91,45,91,44,99,44,99,45,
+  91,44,91,44,91,3,45,91,139,77,99,45,91,45,83,78,51,241,19,115,
+  20,212,36,21,45,244,36,49,52,110,83,3,45,99,144,77,99,45,91,45,
+  91,45,99,77,99,45,91,110,59,241,19,147,20,244,28,21,37,147,52,143,
+  75,77,91,45,99,77,91,6,77,99,129,45,91,13,77,99,137,77,91,77,
+  91,77,99,77,99,109,99,77,99,109,99,77,91,109,99,5,77,99,142,77,
+  91,12,91,236,90,204,82,236,82,12,91,45,91,110,99,207,99,49,116,82,
+  124,114,124,114,124,147,124,3,147,132,129,179,124,14,179,132,129,179,124,5,
+  179,132,129,180,132,4,179,132,146,180,132,180,132,179,132,49,124,110,99,138,
+  66,102,33,195,24,228,24,171,58,175,91,82,116,147,132,180,124,179,124,179,
+  124,180,132,180,132,6,179,124,130,180,124,180,132,12,212,132,149,244,132,212,
+  132,244,132,244,132,244,140,212,140,146,132,52,149,210,148,77,107,109,115,77,
+  107,44,107,12,99,235,98,235,98,203,90,170,82,138,82,105,74,105,74,5,
+  73,74,134,40,66,40,66,40,74,41,74,40,66,40,66,3,8,66,135,232,
+  57,8,66,231,57,199,57,231,57,199,57,199,57,3,199,49,129,166,49,7,
+  134,41,129,102,33,3,69,33,150,69,25,69,33,69,33,69,25,69,33,69,
+  25,69,33,69,25,37,33,37,33,37,25,37,33,37,25,5,25,232,49,232,
+  49,13,91,243,156,145,148,37,41,168,49,243,156,5,178,148,136,146,148,146,
+  148,114,140,81,140,17,132,240,123,16,124,240,123,3,207,115,155,207,107,175,
+  107,175,107,175,99,207,107,175,107,207,107,208,107,175,99,175,107,207,107,175,
+  107,175,99,175,99,175,107,175,107,207,99,175,99,208,107,175,107,208,107,208,
+  99,175,99,208,99,207,99,208,107,207,99,5,175,99,130,207,99,207,99,3,
+  175,99,141,208,99,207,99,208,107,208,107,175,99,208,99,207,99,208,107,175,
+  99,208,107,208,107,207,99,207,99,3,208,107,131,207,99,240,107,208,107,3,
+  207,107,152,208,107,175,99,175,107,208,107,208,107,175,107,240,107,17,116,17,
+  116,240,107,16,116,240,107,240,107,207,107,175,99,207,107,208,107,175,99,175,
+  99,175,107,175,99,240,107,175,107,207,107,3,240,107,132,208,107,208,107,240,
+  107,208,107,4,240,107,140,208,107,240,107,240,107,208,107,240,107,240,107,208,
+  99,240,107,208,99,175,99,175,99,208,99,4,175,99,235,143,99,142,91,110,
+  99,110,99,208,107,78,91,78,91,110,99,111,99,110,91,110,91,78,91,78,
+  91,13,83,45,91,237,82,13,83,204,74,204,74,13,83,45,83,13,83,45,
+  91,45,91,78,99,45,91,13,91,45,91,78,99,143,107,78,91,78,99,176,
+  107,179,132,208,99,45,91,77,91,45,99,102,33,66,0,163,16,134,33,200,
+  49,232,49,200,41,167,41,135,33,167,41,135,33,228,16,228,24,17,116,176,
+  91,168,33,200,49,233,49,41,58,74,58,74,58,106,66,107,66,171,74,204,
+  74,204,82,204,82,13,83,13,83,46,91,78,99,110,99,175,107,208,115,207,
+  115,16,116,82,124,45,91,73,58,236,82,49,116,179,124,179,124,212,124,53,
+  141,119,149,216,157,249,157,25,166,58,166,90,166,58,166,90,174,155,174,90,
+  166,215,165,53,149,243,148,175,107,105,74,138,82,40,66,232,65,8,66,199,
+  57,36,33,162,16,33,8,227,24,3,199,57,163,105,82,137,74,138,82,138,
+  82,106,82,138,82,138,74,138,82,106,74,170,82,138,82,171,90,239,131,210,
+  156,19,165,179,148,233,41,9,50,42,58,10,50,71,25,132,8,99,8,131,
+  8,99,8,99,8,100,0,68,0,100,0,165,8,136,41,106,74,204,82,204,
+  82,237,90,3,13,91,138,46,91,111,99,176,107,208,107,241,115,17,116,17,
+  116,17,124,17,124,50,124,10,49,124,130,81,132,82,132,4,114,132,129,114,
+  140,4,114,132,140,82,132,82,132,114,132,114,132,146,140,114,140,114,140,114,
+  132,81,132,82,132,50,132,81,132,3,82,132,132,114,140,82,132,81,132,81,
+  132,4,49,132,131,207,115,167,41,4,33,4,36,33,132,4,33,36,33,36,
+  33,37,33,3,36,33,169,4,33,36,33,36,33,4,33,195,24,163,16,69,
+  41,107,139,133,106,68,82,105,123,68,82,106,123,68,82,227,65,3,66,4,
+  74,227,65,167,90,17,189,114,221,82,213,82,213,49,213,49,213,16,205,240,
+  204,240,196,208,188,175,188,143,180,110,180,77,164,13,164,236,155,199,114,73,
+  123,41,115,232,106,167,98,227,65,4,195,65,129,227,65,28,195,65,132,194,
+  65,195,65,195,65,227,65,4,195,65,133,195,73,195,65,195,65,195,73,195,
+  73,3,195,65,130,194,65,195,73,5,195,65,131,227,73,195,65,195,73,3,
+  195,65,134,227,65,170,139,194,89,195,65,195,65,102,74,145,4,4,44,99,
+  129,12,99,6,44,99,129,12,99,8,44,99,136,45,99,45,99,44,91,44,
+  99,45,99,44,99,44,99,45,99,5,44,99,137,45,91,45,91,44,91,45,
+  91,44,99,44,91,45,99,45,91,44,91,3,45,91,160,44,99,44,99,45,
+  91,45,91,45,75,142,43,17,12,147,20,212,36,21,37,211,36,240,59,45,
+  83,45,99,45,99,77,99,45,91,45,91,45,99,77,99,77,99,77,75,176,
+  27,114,12,180,28,21,37,211,44,208,67,77,99,45,99,77,99,77,91,10,
+  77,99,129,77,91,4,77,99,138,77,91,77,91,77,99,77,99,109,99,77,
+  99,77,99,78,99,77,99,77,99,3,109,99,144,77,99,77,99,109,99,77,
+  99,77,99,12,91,236,82,204,82,12,91,12,91,77,99,110,99,240,107,49,
+  116,82,124,114,124,3,147,124,130,147,132,147,124,15,179,132,129,179,124,7,
+  179,132,129,180,132,4,179,132,144,82,124,142,99,171,74,134,41,195,24,195,
+  16,73,50,143,91,50,108,147,124,179,124,179,124,179,132,179,132,179,124,179,
+  132,5,179,124,132,179,132,180,132,212,132,211,132,11,212,132,149,244,132,212,
+  132,244,132,244,132,244,140,211,132,146,132,53,157,113,140,109,115,109,115,109,
+  107,76,107,44,107,12,99,235,98,203,90,170,90,170,90,138,82,105,82,3,
+  73,74,3,40,74,134,40,66,8,66,40,74,40,74,40,66,40,66,4,8,
+  66,130,232,57,231,57,3,199,57,133,199,49,199,49,167,49,166,49,166,41,
+  3,134,41,3,102,41,129,102,33,3,69,33,139,69,25,69,33,70,25,37,
+  25,69,33,69,25,69,33,37,33,37,25,37,25,37,33,3,37,25,138,5,
+  25,135,33,233,49,237,90,239,123,4,33,41,58,243,156,178,148,178,148,3,
+  146,148,133,114,140,81,140,113,140,49,132,49,132,3,16,124,138,208,115,240,
+  115,207,107,175,107,207,107,175,107,175,99,175,99,208,107,207,107,3,175,107,
+  3,207,107,143,175,99,208,107,208,107,175,99,208,107,208,107,208,99,240,107,
+  208,107,207,99,208,107,175,99,208,107,175,99,207,107,3,175,99,141,207,99,
+  175,99,207,107,175,99,208,99,208,107,207,99,175,99,16,108,208,107,175,107,
+  208,107,208,99,3,208,107,132,207,99,175,99,207,99,240,107,9,175,99,149,
+  207,107,175,99,240,107,207,107,143,99,208,107,208,107,49,116,16,116,240,115,
+  240,107,207,107,208,107,207,107,175,99,175,107,207,107,175,107,175,107,175,99,
+  208,107,3,175,107,134,208,99,240,107,240,107,207,107,208,107,208,107,4,240,
+  107,133,208,107,49,116,49,116,16,108,49,116,3,240,107,194,208,107,208,107,
+  175,99,208,107,175,99,175,107,207,107,208,107,143,99,175,99,143,99,143,99,
+  207,107,175,99,143,99,110,91,175,99,175,99,110,99,110,91,143,99,110,91,
+  110,91,78,91,78,91,45,83,45,83,46,91,78,91,77,91,110,91,78,99,
+  78,99,110,99,78,91,142,99,110,99,175,107,143,99,110,99,82,116,240,107,
+  78,91,237,82,78,99,45,91,70,33,130,8,65,0,69,33,102,33,41,50,
+  232,49,167,33,167,41,200,41,135,41,228,16,228,16,240,107,208,91,168,33,
+  232,49,9,58,41,58,74,58,3,106,58,174,171,74,204,74,204,74,236,82,
+  237,82,13,83,45,91,78,99,78,99,110,99,175,115,175,115,240,115,114,132,
+  78,99,138,66,12,91,81,124,211,132,212,124,244,132,54,141,119,149,184,149,
+  216,157,249,157,25,158,58,158,58,166,90,166,155,174,58,166,215,165,85,157,
+  243,140,207,115,106,74,138,82,40,66,231,57,8,66,199,57,36,41,163,24,
+  33,0,227,32,3,199,57,172,138,82,138,82,105,74,137,74,105,74,138,82,
+  138,82,106,82,138,82,170,82,138,82,171,90,206,131,210,156,19,165,243,156,
+  9,50,233,41,42,50,10,50,103,33,164,8,99,8,131,8,99,8,99,8,
+  68,0,100,0,100,0,165,8,103,41,74,74,172,82,172,82,204,82,205,82,
+  205,82,172,74,172,66,13,83,143,91,241,99,241,107,241,107,3,17,108,138,
+  17,116,17,108,241,107,208,107,208,107,240,115,208,107,240,115,240,115,17,116,
+  3,17,124,130,49,124,49,124,4,82,132,134,82,124,82,132,82,132,81,132,
+  82,132,114,132,3,114,140,3,114,132,137,82,132,82,132,81,132,81,132,82,
+  132,81,132,82,132,81,132,81,132,4,49,132,132,81,132,240,123,232,49,4,
+  33,4,37,33,7,36,33,129,4,33,3,36,33,160,195,24,163,24,36,33,
+  74,123,231,114,36,74,105,131,69,90,73,123,134,90,227,65,4,74,228,65,
+  227,65,101,82,236,139,12,156,203,147,171,131,105,123,73,115,8,107,231,106,
+  199,98,134,90,102,82,101,82,68,74,69,74,4,74,227,73,227,65,6,195,
+  65,131,227,65,195,65,227,65,10,195,65,133,227,65,195,65,195,73,195,65,
+  194,65,4,195,65,129,194,65,8,195,65,132,194,65,195,65,194,65,194,65,
+  4,195,65,129,195,73,3,195,65,129,194,65,4,195,65,130,194,65,227,73,
+  7,195,65,138,227,65,227,65,195,73,195,73,163,65,139,123,3,106,227,73,
+  194,73,4,74,157,4,132,12,91,44,99,44,99,45,99,12,44,99,129,12,
+  99,7,44,99,129,45,99,4,44,99,146,45,99,44,99,44,99,45,99,45,
+  99,44,99,44,99,45,99,45,99,44,91,44,99,45,99,45,99,44,99,44,
+  91,45,99,45,99,44,99,3,45,99,154,44,91,77,67,176,27,82,12,179,
+  20,244,36,245,44,147,44,175,67,45,91,45,99,45,99,45,91,77,99,45,
+  99,77,91,77,91,77,83,143,43,49,12,180,28,245,36,245,44,49,52,77,
+  91,45,99,6,77,99,129,77,91,3,77,99,143,77,91,77,99,77,99,77,
+  91,77,99,77,91,109,99,77,91,77,99,77,99,77,91,77,99,77,99,77,
+  91,77,91,8,77,99,138,77,91,236,90,236,82,204,82,12,91,13,91,77,
+  99,142,99,240,107,49,116,3,114,124,133,147,124,147,132,147,132,147,124,179,
+  124,9,179,132,129,179,124,3,179,132,129,180,132,4,179,132,148,180,132,179,
+  132,211,132,179,132,180,132,180,132,179,132,179,132,82,124,175,99,236,82,199,
+  49,227,24,195,16,8,42,110,83,17,108,147,124,179,132,179,132,3,179,124,
+  138,179,132,180,132,179,124,179,124,147,124,147,124,179,124,179,124,179,132,211,
+  132,9,212,132,131,244,132,212,132,212,132,5,244,132,144,211,140,179,140,117,
+  157,16,132,109,115,109,115,109,107,77,107,44,107,12,107,235,98,203,98,202,
+  90,170,90,138,82,138,82,3,73,74,131,41,74,40,74,40,74,3,40,66,
+  6,8,66,3,231,57,4,199,57,131,167,49,167,49,166,49,5,134,41,130,
+  101,41,102,41,4,69,33,140,69,25,69,25,37,25,69,33,69,25,37,25,
+  69,25,69,25,37,25,37,25,37,33,69,25,4,37,25,138,102,33,233,49,
+  232,57,4,33,171,74,211,148,178,148,178,148,146,148,146,148,3,113,140,135,
+  81,140,49,132,16,132,240,123,240,123,207,115,207,115,3,240,115,133,175,107,
+  175,107,175,99,175,107,175,107,4,175,99,153,175,107,175,99,207,107,207,107,
+  240,107,175,107,175,107,240,115,175,107,208,107,207,107,208,107,175,99,208,107,
+  208,107,175,99,208,107,175,99,175,99,207,99,208,107,207,99,175,99,175,99,
+  208,107,3,207,99,134,208,107,240,107,207,99,207,99,207,107,240,107,4,208,
+  107,136,175,99,175,107,207,99,175,99,175,99,143,99,175,99,143,99,4,175,
+  99,140,207,107,175,99,175,99,143,99,143,99,175,99,175,99,240,107,17,116,
+  17,116,16,116,17,116,3,208,107,154,207,107,175,107,208,107,142,107,142,99,
+  207,107,208,107,207,107,175,107,240,107,240,107,208,107,175,99,207,107,175,107,
+  208,107,240,107,208,107,207,107,175,99,207,99,81,116,17,108,17,116,17,116,
+  16,108,3,240,107,5,208,107,130,208,99,175,99,3,208,107,144,207,107,208,
+  107,175,99,208,99,208,99,176,99,176,99,208,107,240,107,175,99,176,99,176,
+  99,175,99,143,99,175,99,175,99,7,208,107,212,240,115,240,107,208,107,240,
+  115,240,107,17,116,17,108,45,91,74,66,175,107,110,91,135,33,163,16,32,
+  0,195,16,102,33,232,49,168,41,135,33,200,41,232,41,135,33,37,25,4,
+  17,175,99,50,108,168,33,232,49,9,50,41,58,41,58,74,58,74,66,139,
+  66,171,74,171,74,204,82,204,82,236,82,13,91,45,91,77,99,13,91,78,
+  99,207,107,175,115,208,115,82,124,110,99,138,74,45,91,114,124,212,140,244,
+  132,245,132,53,141,118,141,151,149,184,149,216,149,249,157,25,158,58,166,123,
+  174,123,174,58,166,248,165,85,149,179,140,207,115,105,74,138,82,41,74,231,
+  57,40,66,199,57,36,33,195,24,32,0,195,24,231,57,231,57,199,57,105,
+  82,6,138,82,143,138,74,138,82,170,82,138,82,170,82,206,123,243,164,19,
+  165,243,156,74,58,9,50,42,50,10,58,136,33,164,16,4,99,8,135,100,
+  0,68,0,100,0,132,0,103,33,41,66,172,82,4,172,74,157,107,58,42,
+  42,172,58,78,83,209,91,209,91,241,91,209,91,209,99,241,99,241,99,208,
+  91,176,91,143,83,143,83,143,91,143,91,111,91,144,99,176,99,176,99,208,
+  107,240,107,208,107,240,107,240,107,241,107,240,115,240,115,4,17,116,136,17,
+  124,49,124,49,124,81,132,49,124,81,124,81,124,82,124,3,49,124,133,81,
+  132,81,124,81,124,81,132,81,132,6,49,132,131,17,124,41,66,4,25,4,
+  36,33,129,37,33,10,36,33,164,195,24,162,16,227,24,234,106,41,131,227,
+  65,73,123,102,90,41,115,198,106,3,74,4,74,4,74,227,73,4,74,36,
+  74,3,66,101,82,133,90,166,90,198,98,199,98,8,107,40,115,72,123,104,
+  131,169,139,202,147,234,155,202,155,68,90,195,65,227,65,195,65,195,65,227,
+  65,4,195,65,135,227,65,195,65,195,65,227,65,195,65,195,65,227,65,4,
+  195,65,138,227,65,195,65,195,65,227,65,195,65,195,65,227,65,195,65,195,
+  65,227,65,6,195,65,130,194,65,194,65,4,195,65,134,194,65,195,65,195,
+  73,195,73,195,65,195,73,5,195,65,129,195,73,3,195,65,129,227,65,5,
+  195,65,139,227,73,195,73,194,65,227,73,227,73,162,65,41,99,164,122,194,
+  73,227,73,227,65,102,4,4,44,99,131,12,91,44,99,45,99,14,44,99,
+  130,12,91,45,99,3,44,99,132,45,99,45,99,44,99,44,99,5,45,99,
+  3,44,99,140,44,91,45,91,45,99,44,91,45,91,45,91,45,99,12,91,
+  45,99,44,99,45,91,45,99,3,45,91,136,78,59,208,27,82,12,180,28,
+  212,36,244,36,82,44,143,67,3,45,91,143,77,99,77,99,45,99,77,99,
+  77,91,110,59,241,19,147,20,212,28,20,37,115,44,142,75,77,99,77,99,
+  77,91,11,77,99,132,77,91,77,91,77,99,109,99,3,77,99,129,77,91,
+  3,77,99,152,77,91,77,91,109,99,77,99,77,99,77,91,77,99,77,91,
+  45,91,236,82,236,82,203,82,12,91,45,91,77,99,175,107,241,107,50,116,
+  114,124,146,132,147,124,147,124,147,132,147,132,9,179,132,129,179,124,11,179,
+  132,130,211,132,180,132,3,179,132,142,211,132,114,124,175,107,236,82,199,49,
+  228,24,163,16,199,33,45,75,241,107,115,124,179,124,179,124,179,132,5,179,
+  124,136,147,124,179,124,147,124,179,124,179,124,212,124,212,132,179,132,13,212,
+  132,136,244,132,244,132,212,132,244,132,211,140,179,140,117,165,207,123,3,109,
+  115,146,77,107,44,107,44,107,11,99,235,98,202,90,170,90,170,90,137,82,
+  105,82,73,74,73,74,72,74,72,74,40,66,40,74,40,66,40,74,5,8,
+  66,4,231,57,135,199,57,199,57,231,57,199,57,167,49,167,49,134,49,5,
+  134,41,131,102,41,102,41,102,33,3,69,33,135,37,25,69,33,69,25,69,
+  33,37,33,37,33,69,25,3,37,25,129,37,33,5,37,25,161,5,25,102,
+  33,167,41,163,16,171,74,146,140,146,148,178,148,178,148,146,148,113,140,81,
+  140,113,140,81,140,49,132,16,124,240,115,208,123,207,115,240,115,240,115,207,
+  115,175,107,175,107,143,107,175,99,175,107,175,107,143,99,175,99,175,107,143,
+  99,143,99,3,175,99,134,175,107,207,107,175,99,208,107,207,107,207,107,3,
+  175,99,131,208,107,175,99,175,107,3,175,99,163,208,107,208,107,175,99,207,
+  99,208,107,176,99,207,99,208,99,175,99,175,107,208,107,208,107,207,99,208,
+  107,240,107,175,99,208,107,175,99,175,107,207,107,143,99,175,107,175,99,143,
+  99,143,99,208,107,175,99,175,99,175,107,208,107,175,99,207,107,175,107,207,
+  107,207,107,4,175,107,169,240,107,49,116,17,116,240,107,240,115,208,107,16,
+  116,240,115,240,107,16,116,240,107,240,115,16,116,239,107,240,107,208,107,208,
+  107,49,116,240,115,16,116,17,116,16,116,16,116,240,115,16,116,207,107,175,
+  107,143,107,240,107,49,116,17,116,49,116,240,107,240,107,208,107,17,116,240,
+  107,240,107,240,115,17,116,17,108,5,240,107,133,16,108,240,107,17,108,240,
+  107,208,107,5,240,107,140,240,99,240,107,240,107,175,99,208,107,240,107,240,
+  107,17,116,240,115,16,116,17,116,17,116,3,49,116,210,17,116,49,116,82,
+  124,82,116,144,99,175,107,9,58,110,99,17,108,167,41,196,16,33,0,98,
+  8,69,33,199,41,200,41,167,41,167,41,200,41,102,33,70,25,5,25,106,
+  66,49,116,233,41,232,49,233,49,233,49,73,58,74,58,74,58,139,66,171,
+  74,172,74,204,74,204,82,236,82,13,83,45,91,78,99,236,82,45,91,208,
+  107,207,107,175,107,50,124,142,107,203,82,77,91,114,132,244,140,21,141,245,
+  132,21,133,86,141,118,141,119,141,151,149,217,149,25,158,58,166,123,174,123,
+  174,90,166,215,165,53,149,20,149,49,124,105,74,138,82,40,66,231,57,40,
+  66,231,57,69,41,195,24,32,0,195,24,167,57,231,57,199,57,105,82,9,
+  138,82,150,170,82,171,90,174,123,243,164,19,165,20,165,106,66,201,41,10,
+  50,10,50,136,33,196,8,99,8,131,8,99,8,99,8,100,0,100,0,68,
+  0,100,0,70,33,9,66,4,172,74,142,139,66,75,50,234,33,107,50,46,
+  75,176,83,209,83,209,83,209,91,209,91,209,83,209,83,176,83,144,83,3,
+  111,75,132,79,75,79,75,79,83,111,83,3,143,91,131,111,91,143,91,176,
+  99,4,175,99,130,208,99,208,99,3,208,107,137,240,107,208,107,240,107,240,
+  107,16,116,49,116,17,116,17,116,241,115,3,17,116,131,16,124,17,124,17,
+  124,6,49,132,130,139,74,228,24,15,36,33,164,227,24,162,16,195,24,169,
+  90,73,139,227,65,40,115,199,106,231,106,8,115,227,65,3,74,3,66,4,
+  74,228,65,227,65,4,66,202,139,108,180,108,180,140,188,172,188,172,188,204,
+  188,235,196,204,196,204,196,235,188,236,196,203,196,165,106,195,65,227,73,195,
+  65,227,65,227,65,17,195,65,131,194,65,195,65,227,65,20,195,65,134,195,
+  73,195,65,194,65,195,65,195,65,194,65,3,195,65,139,195,73,195,65,194,
+  65,227,65,227,73,195,73,195,65,195,65,227,65,195,65,194,65,4,195,65,
+  133,101,74,40,131,194,73,227,73,227,65,122,4,134,44,99,44,99,12,99,
+  44,99,44,99,45,99,4,44,99,134,12,99,44,99,44,99,12,91,45,99,
+  12,91,6,44,99,130,45,99,45,99,7,44,99,139,45,99,44,99,44,99,
+  13,99,45,99,44,91,45,91,44,91,45,99,45,99,44,99,4,45,99,145,
+  44,91,45,91,45,99,45,91,45,91,45,99,44,91,45,91,45,83,110,51,
+  241,11,114,20,179,28,244,36,212,36,50,44,110,75,4,45,99,138,77,99,
+  77,99,77,91,78,75,176,35,82,12,180,28,244,36,211,44,207,75,10,77,
+  99,129,77,91,3,77,99,133,77,91,77,99,109,99,77,91,109,99,6,77,
+  99,151,77,91,77,99,77,99,109,99,77,99,77,91,77,91,45,91,235,82,
+  236,82,236,90,12,91,45,91,78,99,175,107,17,116,82,116,114,124,114,124,
+  147,124,147,124,147,132,147,124,6,179,132,129,179,124,9,179,132,129,211,132,
+  6,179,132,144,180,132,179,132,212,132,146,124,207,107,12,83,232,57,4,33,
+  195,24,134,33,45,75,240,99,115,124,179,124,179,132,179,132,4,179,124,5,
+  147,124,131,179,124,179,124,179,132,15,212,132,4,244,132,153,146,132,179,140,
+  85,157,142,115,142,115,141,115,109,115,77,107,77,107,44,107,11,99,235,98,
+  203,90,203,90,170,90,138,82,137,82,105,82,73,74,40,74,73,74,40,74,
+  40,74,40,66,8,66,3,40,66,130,8,66,8,66,4,231,57,3,199,57,
+  131,167,49,199,49,166,49,5,134,41,131,102,41,102,41,101,41,4,69,33,
+  134,69,25,69,33,69,25,37,25,37,25,37,33,13,37,25,135,102,33,74,
+  66,142,107,16,132,114,140,146,148,114,148,3,113,140,131,49,132,16,132,207,
+  123,3,207,115,129,240,123,3,175,107,148,207,107,175,107,110,99,175,107,175,
+  107,175,99,175,107,175,107,143,99,240,107,175,107,208,107,175,99,208,107,175,
+  107,175,99,207,99,208,107,175,107,175,107,3,207,107,146,175,99,175,99,175,
+  107,175,99,175,107,175,99,207,99,175,99,207,107,207,99,175,99,175,99,207,
+  107,175,107,208,107,175,107,175,99,207,107,3,175,99,184,240,107,175,99,208,
+  107,207,107,175,99,175,99,175,107,208,107,207,107,207,107,240,107,240,115,240,
+  107,207,107,175,107,240,107,16,116,16,116,240,115,240,115,239,107,16,116,16,
+  116,175,107,16,116,114,124,49,116,146,124,82,124,82,124,146,132,82,124,114,
+  124,146,124,178,132,179,132,146,124,179,132,146,132,114,124,211,132,211,132,178,
+  132,179,132,146,132,178,132,114,132,81,124,81,124,49,124,207,107,110,99,49,
+  116,81,124,81,124,49,116,3,17,116,144,240,107,17,116,17,116,17,108,16,
+  116,49,116,17,108,17,116,17,116,17,108,17,116,16,116,17,116,16,108,241,
+  107,17,108,3,240,107,129,208,107,3,240,107,130,208,107,16,108,3,240,107,
+  133,16,108,49,116,49,124,82,124,81,124,3,114,124,155,146,124,146,124,114,
+  124,240,107,17,116,9,58,139,74,114,124,167,41,4,17,65,0,33,0,4,
+  25,69,33,200,49,135,41,135,33,135,33,102,33,102,33,37,25,102,33,236,
+  82,107,58,200,49,233,49,9,50,3,74,58,181,106,66,139,66,171,66,171,
+  74,204,82,236,82,13,83,46,91,78,99,236,82,236,82,208,115,175,107,110,
+  99,175,115,175,115,44,99,77,99,114,132,20,141,21,141,21,141,53,141,86,
+  141,86,141,119,141,151,141,184,149,249,149,26,158,90,166,123,166,58,166,215,
+  165,85,149,211,140,16,116,105,74,138,82,40,66,231,57,40,66,231,57,69,
+  41,195,24,33,0,162,24,199,57,231,57,199,57,105,74,170,90,170,82,6,
+  138,82,141,170,82,170,82,203,90,174,123,210,164,19,165,20,165,139,74,201,
+  41,233,41,233,49,136,33,196,8,4,99,8,147,99,0,68,0,68,0,100,
+  0,38,25,233,57,139,74,140,74,172,74,172,74,107,66,75,50,233,33,75,
+  42,13,67,176,83,177,83,176,83,209,83,4,177,83,137,176,75,144,83,144,
+  83,111,75,111,75,79,75,78,75,79,75,111,75,3,78,75,130,110,83,111,
+  83,3,78,83,133,111,91,143,91,143,91,111,91,143,91,5,143,99,133,208,
+  107,240,107,240,107,208,107,208,99,3,240,107,133,208,107,240,115,16,116,16,
+  124,17,124,4,49,132,134,236,82,228,24,36,33,37,33,36,33,37,33,9,
+  36,33,144,37,33,36,33,4,33,163,24,195,24,72,74,139,147,3,74,232,
+  106,231,114,166,90,73,123,3,74,227,73,227,73,4,74,3,228,65,137,76,
+  156,12,197,234,188,235,188,202,196,137,180,202,188,202,188,137,180,3,234,188,
+  138,234,196,6,123,195,65,227,73,227,65,227,73,227,65,227,65,195,65,227,
+  65,5,195,65,131,227,65,195,65,227,65,6,195,65,129,227,73,5,195,65,
+  129,227,65,5,195,65,129,227,65,3,195,65,130,194,65,227,65,11,195,65,
+  3,194,65,130,195,65,163,65,4,194,65,3,227,73,139,36,74,36,82,69,
+  82,101,90,134,98,166,106,232,106,170,155,193,89,227,73,195,73,158,4,135,
+  12,99,44,99,44,99,12,91,44,99,44,99,12,99,4,44,99,129,12,91,
+  9,44,99,133,45,99,44,99,45,99,44,99,44,99,3,45,99,130,44,99,
+  45,99,3,44,99,129,13,99,4,45,99,139,45,91,45,91,44,99,45,99,
+  45,91,45,99,45,91,44,91,45,91,45,99,44,91,3,45,91,141,45,99,
+  77,99,45,91,45,75,143,43,17,20,115,12,179,28,212,36,179,36,240,59,
+  78,83,45,91,3,77,99,138,77,91,77,99,77,83,111,51,18,12,179,20,
+  244,36,244,36,17,60,77,91,10,77,99,132,77,91,77,99,77,91,77,91,
+  8,77,99,129,77,91,7,77,99,137,12,91,236,82,235,82,236,90,12,91,
+  45,91,110,99,207,107,49,116,3,114,124,131,146,124,147,124,147,132,3,179,
+  124,131,179,132,179,132,179,124,10,179,132,129,180,132,6,179,132,143,180,132,
+  179,132,180,132,146,124,208,107,13,83,40,58,4,33,163,16,69,33,13,75,
+  208,99,82,116,179,132,179,132,4,179,124,129,180,124,3,179,124,3,147,124,
+  131,179,132,179,132,180,132,3,212,132,129,211,132,10,212,132,3,244,132,151,
+  212,132,212,132,211,140,243,148,52,157,142,115,142,115,141,115,109,115,109,115,
+  76,107,44,107,12,99,235,98,235,98,203,90,170,90,170,90,138,82,105,82,
+  105,74,73,74,73,74,3,40,74,130,40,66,40,66,3,8,66,132,7,66,
+  8,66,231,65,231,57,4,199,57,131,167,49,167,49,166,49,6,134,41,130,
+  101,41,102,41,4,69,33,131,69,25,37,33,69,25,16,37,25,144,5,17,
+  204,74,77,99,175,115,16,124,49,132,81,140,81,140,81,132,49,132,16,132,
+  240,123,207,115,240,123,175,115,175,115,3,175,107,133,142,107,143,107,143,99,
+  110,99,142,107,4,175,107,140,207,107,175,99,143,99,175,99,207,107,175,107,
+  143,99,143,99,175,99,175,107,175,107,175,99,3,175,107,131,175,99,142,99,
+  142,99,5,175,99,171,143,99,175,107,143,99,143,99,175,107,143,99,143,99,
+  143,107,175,107,207,107,175,107,17,116,207,107,207,107,240,107,207,107,240,107,
+  207,107,175,107,207,107,208,107,207,107,207,107,240,115,16,116,16,116,240,115,
+  16,116,81,124,81,124,114,124,81,124,146,132,146,132,212,132,211,132,179,132,
+  20,141,244,140,20,141,85,149,118,149,118,149,4,183,157,158,56,166,57,166,
+  25,166,24,166,57,166,90,174,89,174,121,174,122,174,154,174,154,174,122,174,
+  57,166,122,174,90,174,57,166,249,157,216,157,183,149,215,157,151,149,86,149,
+  53,141,21,141,20,141,211,132,147,132,114,124,114,132,114,124,3,146,132,146,
+  114,124,82,124,114,124,81,124,81,124,82,124,81,124,82,124,17,116,81,124,
+  49,116,17,116,49,116,17,116,17,116,49,116,49,116,17,116,3,16,116,219,
+  82,124,179,132,180,132,244,140,20,141,20,141,53,149,21,141,244,140,212,140,
+  241,107,240,107,74,66,41,66,16,116,200,49,37,25,65,0,32,0,130,8,
+  70,33,167,41,135,41,135,33,135,41,70,33,102,33,4,25,200,49,200,49,
+  13,75,199,41,9,50,41,50,74,58,42,58,74,58,107,66,139,66,139,66,
+  171,74,204,74,204,82,236,82,45,91,78,99,236,74,13,83,208,115,207,115,
+  236,82,203,82,45,107,44,99,77,99,114,124,20,141,53,141,21,141,53,141,
+  54,141,86,141,119,141,119,141,184,141,249,149,25,158,26,158,90,166,26,158,
+  216,165,118,157,20,149,48,124,105,74,138,82,73,74,199,57,40,74,231,57,
+  69,41,227,24,33,8,162,16,166,49,231,57,199,57,73,74,170,90,170,82,
+  170,82,5,138,82,141,170,82,170,82,203,90,109,115,243,164,243,164,52,173,
+  204,74,168,33,201,41,234,49,104,33,196,8,3,99,8,172,99,0,99,0,
+  100,0,68,0,100,0,6,25,233,57,140,74,172,82,172,74,172,74,140,66,
+  75,50,10,34,42,34,237,66,144,83,209,83,176,83,209,83,177,83,177,75,
+  177,83,177,83,176,75,176,83,177,83,144,83,143,75,111,75,143,75,111,75,
+  143,75,111,75,78,75,79,75,111,75,111,83,79,75,78,75,46,75,111,83,
+  79,83,111,83,3,78,83,146,46,83,45,75,46,83,46,83,111,91,143,91,
+  208,99,176,91,175,91,175,91,208,99,176,99,143,107,175,115,207,115,240,123,
+  16,124,16,124,3,49,132,130,45,99,5,33,4,36,33,131,37,33,36,33,
+  37,33,7,36,33,140,4,33,4,33,195,24,163,24,231,57,139,147,36,90,
+  166,90,73,123,101,82,106,131,3,74,3,4,74,141,228,65,228,65,227,65,
+  170,131,236,196,234,188,234,188,202,188,40,164,72,164,40,164,199,139,137,172,
+  3,234,188,129,135,147,3,227,65,130,227,73,227,73,3,227,65,5,195,65,
+  134,227,65,195,65,227,65,195,65,195,65,195,73,7,195,65,129,194,65,3,
+  195,65,129,194,65,7,195,65,129,162,65,3,195,65,160,162,65,195,65,195,
+  65,227,65,227,73,4,74,4,74,69,82,101,90,101,90,134,90,167,106,199,
+  106,231,106,8,115,9,123,41,123,73,131,73,131,106,131,74,139,106,139,74,
+  131,105,131,41,131,41,131,8,123,232,114,166,106,194,73,194,65,227,65,124,
+  4,131,44,99,44,99,12,99,3,44,99,129,12,99,11,44,99,130,45,99,
+  44,99,3,45,99,3,44,99,138,45,99,44,99,44,99,45,99,45,99,44,
+  99,45,99,44,99,45,91,44,99,3,45,99,172,45,91,44,91,44,99,45,
+  91,45,99,45,99,45,91,45,99,44,91,44,99,44,99,44,91,44,91,45,
+  99,45,99,45,91,45,99,44,99,45,91,78,75,143,35,17,12,114,20,179,
+  28,179,28,115,36,208,59,77,91,45,91,77,99,77,91,77,91,77,99,77,
+  91,110,67,241,19,115,12,212,28,244,28,114,52,110,83,77,99,77,99,77,
+  91,13,77,99,131,78,99,77,91,109,99,5,77,99,144,109,99,77,91,77,
+  99,77,91,77,91,12,83,236,82,236,82,236,90,12,91,45,99,142,99,208,
+  107,49,116,82,124,114,124,4,147,124,24,179,132,139,211,132,147,132,240,107,
+  45,91,41,58,36,33,163,24,37,25,204,66,207,99,82,116,8,179,124,130,
+  179,132,179,124,3,147,124,133,179,124,179,124,179,132,212,132,180,132,14,212,
+  132,151,244,132,244,132,212,132,212,132,178,132,20,149,243,156,141,115,174,123,
+  141,115,109,115,109,115,76,107,44,107,12,107,235,98,235,90,203,90,171,90,
+  138,90,138,82,137,82,105,74,3,73,74,5,40,66,3,8,66,131,231,57,
+  232,65,231,57,3,199,57,132,199,49,199,49,166,49,166,49,4,134,41,3,
+  102,41,129,101,33,6,69,33,132,37,33,37,25,37,33,37,33,13,37,25,
+  143,228,16,77,91,45,99,77,99,142,107,240,123,49,132,48,132,49,132,16,
+  132,240,123,240,123,207,123,207,115,175,115,3,175,107,149,175,115,142,107,142,
+  99,175,107,207,107,174,107,175,107,142,99,207,107,175,107,175,107,207,107,207,
+  107,240,107,207,107,240,115,175,107,207,107,207,107,175,107,207,107,3,175,107,
+  131,175,99,143,99,174,107,3,175,107,129,207,107,3,175,107,136,208,107,175,
+  107,142,99,175,107,175,107,142,99,207,107,240,107,3,240,115,137,49,124,207,
+  107,240,115,16,116,48,116,16,108,16,116,81,124,81,124,3,146,132,142,211,
+  132,243,132,20,141,52,149,117,149,118,149,118,149,183,157,150,157,215,157,56,
+  166,24,158,24,158,122,174,3,154,174,222,187,174,219,182,122,174,187,182,219,
+  182,187,182,252,190,252,190,28,199,28,199,29,199,61,199,28,199,28,199,61,
+  199,93,207,126,207,93,199,29,191,158,215,191,223,191,223,223,231,223,231,158,
+  223,190,215,223,231,191,215,158,207,126,207,158,215,94,207,126,199,93,199,28,
+  191,252,190,187,182,219,182,187,182,187,182,123,174,122,174,123,174,187,174,155,
+  174,155,182,188,182,187,182,220,182,220,182,155,182,29,191,187,182,29,199,61,
+  199,61,207,28,199,28,199,61,207,61,199,28,199,94,207,126,207,93,207,61,
+  199,28,191,29,191,61,191,29,191,187,174,176,107,81,124,139,66,9,58,77,
+  91,41,58,139,74,65,0,33,0,33,0,228,16,70,33,135,41,103,33,102,
+  33,37,33,167,41,195,16,200,41,103,33,45,83,167,41,9,50,9,50,3,
+  42,58,147,74,58,139,66,139,74,171,74,204,74,204,74,236,82,45,91,78,
+  99,13,83,78,99,240,115,175,115,236,90,8,58,171,82,236,90,77,99,114,
+  132,3,21,141,159,21,133,21,133,54,133,119,141,119,141,184,149,216,149,249,
+  149,25,150,25,158,25,158,215,165,151,165,52,149,49,124,138,82,138,82,105,
+  74,199,57,41,74,232,57,69,41,227,32,32,0,130,16,166,49,232,65,199,
+  57,105,82,170,90,170,82,4,138,82,144,170,82,170,82,171,82,203,90,203,
+  90,109,115,210,164,243,164,52,173,13,83,169,33,234,49,234,49,104,33,197,
+  16,98,8,3,99,8,129,100,0,3,68,0,140,230,24,200,49,172,82,172,
+  82,204,82,172,74,140,66,107,50,43,42,108,42,14,67,176,83,4,209,83,
+  134,177,75,176,83,176,83,208,83,176,75,144,75,3,144,83,139,144,75,176,
+  83,176,83,144,83,143,75,111,75,144,83,144,83,111,75,111,75,79,75,3,
+  111,75,131,110,75,79,75,79,75,5,46,75,138,111,75,176,91,144,91,143,
+  83,143,83,176,83,144,91,111,91,143,107,240,115,3,240,123,135,16,124,49,
+  132,49,132,110,107,37,33,36,33,37,33,13,36,33,139,4,33,195,24,163,
+  24,134,49,140,147,101,98,101,82,105,131,69,82,106,131,68,82,3,4,74,
+  133,228,73,228,73,195,65,73,115,13,197,3,234,188,139,137,180,73,164,40,
+  164,8,164,170,180,11,189,234,188,10,197,8,172,226,73,227,73,6,227,65,
+  129,195,65,3,227,65,129,227,73,12,195,65,129,194,65,3,195,65,163,227,
+  65,227,73,4,74,4,74,36,74,69,82,101,82,102,90,134,98,167,98,167,
+  106,199,114,231,114,8,115,8,115,41,131,41,131,73,131,73,131,73,123,74,
+  131,74,131,9,123,41,123,232,122,232,114,231,114,167,106,166,106,134,98,102,
+  98,134,98,101,90,101,98,101,98,3,134,98,135,167,106,199,106,8,115,40,
+  115,73,123,106,131,138,139,156,4,129,12,91,6,44,99,129,12,99,8,44,
+  99,3,45,99,3,44,99,133,44,91,44,99,44,99,45,99,45,99,4,44,
+  99,147,12,91,45,99,44,99,45,99,45,99,44,91,44,99,45,99,45,91,
+  45,99,45,99,44,91,45,99,45,99,45,91,45,91,44,99,44,91,45,99,
+  3,45,91,3,45,99,153,45,91,45,99,45,91,45,91,77,67,175,35,18,
+  12,114,20,147,36,179,36,82,36,143,67,77,91,45,99,77,99,45,91,77,
+  99,77,99,77,83,176,35,82,12,179,20,245,36,179,44,175,75,17,77,99,
+  134,110,99,77,99,77,99,109,91,77,91,77,91,3,77,99,141,77,91,77,
+  91,12,83,236,82,236,82,12,91,13,91,77,99,143,99,240,107,50,116,114,
+  124,114,124,3,147,124,132,147,132,179,132,179,132,179,124,3,179,132,130,179,
+  124,179,124,5,179,132,130,179,124,179,124,4,179,132,143,211,124,179,132,179,
+  132,179,124,179,132,147,132,240,115,77,91,73,66,37,33,195,24,4,25,171,
+  58,175,91,82,116,9,179,124,4,147,124,129,179,124,3,180,132,6,212,132,
+  129,180,132,8,212,132,130,244,132,244,132,3,212,132,155,211,140,52,149,178,
+  148,142,115,142,115,141,115,109,115,109,115,77,107,44,107,11,99,12,99,235,
+  98,235,98,170,90,170,90,138,82,137,82,105,74,73,74,73,74,40,66,40,
+  66,41,74,40,66,8,66,40,66,3,8,66,129,231,57,4,199,57,133,199,
+  49,199,49,198,49,167,49,166,49,3,134,41,3,102,41,130,101,41,101,33,
+  4,69,33,132,37,33,37,33,69,25,37,33,9,37,25,129,5,25,5,37,
+  25,137,4,17,175,107,142,107,77,107,110,107,207,115,207,123,16,124,16,124,
+  3,240,123,152,175,115,175,107,175,107,207,115,175,107,175,115,175,107,142,107,
+  175,107,207,107,207,107,175,107,207,107,239,115,207,107,207,115,239,115,240,115,
+  207,107,240,115,16,116,240,115,16,116,239,107,3,16,116,150,240,115,16,116,
+  240,115,240,115,207,107,240,107,48,116,240,115,240,115,48,116,16,116,240,115,
+  49,124,48,116,49,124,49,124,81,124,49,124,81,124,114,132,146,132,178,132,
+  3,243,140,185,20,141,20,141,53,141,20,141,117,149,182,157,182,157,150,157,
+  247,165,24,166,215,157,24,166,24,166,89,166,122,174,154,182,154,182,89,174,
+  154,182,57,174,57,166,154,182,155,182,187,182,154,182,28,199,252,190,219,182,
+  187,182,252,190,252,190,93,207,93,215,220,190,29,199,61,207,28,199,125,215,
+  93,207,126,215,125,215,93,215,93,207,190,231,158,215,126,207,126,215,158,215,
+  191,231,255,239,223,239,223,239,223,231,223,239,255,239,255,255,255,247,7,255,
+  239,134,255,231,223,231,255,239,223,231,223,231,255,231,8,255,239,14,255,247,
+  234,255,239,255,239,255,231,255,239,255,239,255,231,176,107,17,124,106,66,232,
+  49,143,107,106,58,204,82,98,8,32,0,0,0,163,8,228,16,167,41,103,
+  33,134,33,102,33,167,41,195,16,37,33,167,41,74,58,200,41,233,49,9,
+  50,73,58,41,58,74,58,106,66,139,66,139,66,171,66,204,74,204,74,237,
+  82,45,91,110,99,45,91,77,91,240,115,207,115,45,99,8,58,106,74,236,
+  90,77,99,114,132,244,140,21,141,21,141,21,133,245,132,21,133,86,141,119,
+  141,152,149,184,149,217,149,249,149,249,149,216,157,216,165,150,157,53,149,178,
+  132,106,74,138,82,105,74,199,57,40,66,8,66,101,41,227,24,33,8,130,
+  16,166,57,8,66,199,57,105,82,203,90,170,82,170,82,171,82,73,74,8,
+  66,40,66,138,82,171,82,203,82,236,90,109,107,178,156,243,164,52,173,77,
+  91,168,33,233,41,201,41,104,33,196,8,98,8,3,99,8,144,99,0,67,
+  0,68,0,68,0,197,16,200,49,171,82,172,82,237,82,205,82,172,74,108,
+  50,108,50,140,50,14,67,144,83,4,177,83,129,177,75,3,177,83,149,144,
+  75,111,75,79,75,79,75,111,75,111,75,143,75,144,83,144,83,143,75,144,
+  75,143,75,112,75,112,75,111,75,111,75,79,75,111,75,111,75,144,75,111,
+  75,5,79,75,151,78,75,111,75,144,83,144,83,111,75,111,75,143,83,111,
+  83,111,83,110,99,175,115,240,115,208,115,240,123,16,124,49,124,49,132,175,
+  107,102,41,4,33,37,33,36,33,37,33,11,36,33,139,4,33,195,24,162,
+  16,69,41,107,131,198,114,68,74,106,131,69,82,106,123,102,90,3,4,74,
+  152,228,73,228,73,227,73,231,98,237,196,202,188,234,188,202,188,170,188,138,
+  180,170,188,138,180,137,180,106,180,105,180,105,172,168,155,3,82,195,65,196,
+  65,195,65,227,65,195,65,227,65,5,195,65,146,227,65,227,65,227,73,227,
+  73,4,74,36,74,36,82,69,82,69,82,134,98,166,98,166,98,199,106,199,
+  106,232,114,8,115,8,123,40,123,3,41,123,136,41,131,41,131,41,123,9,
+  123,233,122,9,123,232,114,199,114,3,167,106,129,166,98,5,134,98,152,166,
+  98,166,98,167,106,199,114,232,114,8,115,8,123,41,123,73,131,73,131,106,
+  131,74,139,73,139,73,131,74,131,41,123,40,123,232,114,231,114,198,106,198,
+  106,166,98,166,98,133,90,206,4,132,12,99,12,99,44,99,12,99,9,44,
+  99,132,45,99,45,99,44,99,12,99,4,44,99,3,45,99,153,44,99,44,
+  99,45,99,44,99,44,99,12,99,45,99,45,99,44,91,44,91,44,99,44,
+  91,44,91,45,99,45,99,44,91,44,91,77,99,44,91,45,91,44,99,45,
+  91,45,91,44,91,45,99,3,45,91,5,45,99,142,45,91,45,91,77,91,
+  77,99,45,91,78,67,176,27,50,12,114,20,147,28,147,28,49,44,142,75,
+  45,99,3,77,99,137,77,91,77,83,143,51,18,12,147,20,212,36,244,36,
+  16,60,77,91,3,77,99,129,77,91,5,77,99,129,109,99,8,77,99,136,
+  77,91,77,91,77,99,77,99,77,91,77,99,77,99,45,91,3,236,82,142,
+  12,91,45,99,77,99,175,107,240,115,81,124,114,124,114,124,146,124,147,124,
+  147,124,179,124,147,132,179,124,17,179,132,129,179,124,4,179,132,139,240,115,
+  77,91,106,66,69,33,195,24,228,24,139,58,175,91,49,116,179,124,180,124,
+  4,179,124,129,180,124,4,179,124,3,147,124,133,179,124,180,124,211,132,180,
+  132,180,132,14,212,132,155,244,132,212,132,244,132,244,132,179,132,146,132,85,
+  157,81,140,142,115,174,115,142,115,109,115,77,107,77,107,44,107,44,107,12,
+  99,235,98,235,90,203,90,170,90,170,90,138,82,137,82,105,74,73,74,72,
+  74,3,40,74,143,40,66,8,66,40,66,8,66,8,66,231,57,199,57,199,
+  57,231,57,199,57,199,57,166,49,199,49,166,49,166,49,4,134,41,140,102,
+  41,101,41,102,33,70,33,69,33,69,33,69,25,69,33,69,33,37,33,37,
+  25,37,33,8,37,25,129,37,33,6,37,25,152,37,17,16,116,207,115,207,
+  115,110,107,142,107,207,115,240,123,240,123,16,124,240,123,239,115,240,123,240,
+  123,207,115,175,115,207,115,207,115,240,115,207,115,239,115,16,116,48,124,49,
+  124,3,81,124,197,114,132,146,132,146,132,178,132,146,132,211,140,178,132,243,
+  140,243,140,19,141,20,141,52,141,20,141,52,149,117,149,85,149,85,149,117,
+  149,117,149,118,157,150,157,150,157,117,149,182,157,247,165,182,157,215,157,247,
+  165,248,165,56,166,57,166,24,166,247,165,56,174,89,174,57,166,24,158,154,
+  182,57,166,186,182,57,166,154,182,121,182,154,182,186,182,154,182,89,174,187,
+  182,219,182,154,182,187,182,187,182,154,182,251,190,187,182,219,190,187,190,154,
+  182,60,199,219,182,219,190,219,190,252,190,29,199,252,190,28,199,61,199,93,
+  207,252,190,3,93,207,135,29,199,93,215,61,207,126,223,158,223,158,223,126,
+  223,3,190,223,135,191,231,158,223,190,223,158,223,223,239,223,239,191,231,4,
+  190,231,4,158,223,130,190,223,190,223,4,158,223,255,190,231,158,223,158,223,
+  190,223,190,223,191,231,191,231,190,223,158,223,158,231,190,231,126,223,158,231,
+  158,223,126,223,94,215,93,215,126,223,126,223,94,215,125,223,93,215,61,207,
+  61,207,93,215,94,215,126,223,94,215,158,223,126,215,191,223,61,207,209,115,
+  176,107,42,66,41,58,41,58,138,66,203,82,130,8,33,0,1,0,98,8,
+  4,25,167,41,135,33,135,33,69,25,199,41,196,16,4,25,102,41,167,41,
+  200,41,232,49,233,49,9,50,42,58,74,58,42,50,139,66,139,66,171,66,
+  172,74,204,74,236,82,45,91,78,99,45,91,204,82,175,115,208,115,110,107,
+  41,58,41,66,203,90,77,99,81,124,244,140,245,132,21,133,21,133,245,132,
+  54,133,86,141,119,141,151,149,184,149,184,149,216,149,216,149,184,149,216,165,
+  150,157,20,149,146,132,138,82,138,82,137,74,199,57,8,66,8,66,101,41,
+  227,24,33,8,98,16,166,57,232,65,199,57,105,74,203,90,203,90,73,74,
+  134,49,195,16,130,16,162,16,36,33,73,74,203,90,203,90,77,107,178,156,
+  243,164,84,173,142,107,168,33,132,201,41,201,41,103,33,197,16,5,99,8,
+  146,100,0,68,0,68,0,197,16,200,49,171,74,205,82,205,82,204,74,140,
+  66,108,58,108,50,173,50,238,58,79,67,79,75,111,67,111,67,3,144,75,
+  136,176,83,176,83,144,75,111,75,79,67,78,67,79,67,79,75,4,111,75,
+  143,79,75,111,75,79,75,79,75,79,67,79,67,46,67,46,67,79,75,79,
+  75,111,75,79,75,46,67,46,67,46,75,3,79,75,137,111,75,111,75,79,
+  75,111,75,143,83,143,75,78,75,110,91,175,107,3,208,115,136,240,123,17,
+  124,49,132,207,115,167,49,4,33,37,33,37,33,3,36,33,129,37,41,9,
+  36,33,173,195,24,163,24,4,33,43,123,8,131,3,74,106,131,133,90,41,
+  115,166,106,3,74,4,66,4,74,228,73,4,66,227,65,69,82,203,147,200,
+  147,168,139,136,139,103,131,70,123,39,123,6,115,230,106,165,98,165,98,165,
+  90,101,90,4,74,36,82,36,82,69,82,69,90,101,90,134,90,166,98,167,
+  106,199,106,199,106,232,114,232,114,8,123,9,123,3,41,123,139,9,123,9,
+  123,41,123,9,123,232,122,232,122,232,114,232,114,199,114,199,106,167,106,3,
+  166,106,132,167,106,167,106,166,98,167,106,3,199,106,131,232,114,232,114,8,
+  123,3,41,123,3,73,131,3,41,123,151,8,115,7,115,231,114,199,114,166,
+  106,198,106,166,106,165,98,133,98,132,98,164,98,164,106,165,114,165,114,197,
+  122,229,122,229,122,6,139,38,139,39,155,38,147,70,155,70,155,206,4,130,
+  12,99,12,99,4,44,99,137,12,99,44,99,12,99,44,99,45,99,44,99,
+  12,91,44,99,44,91,3,44,99,134,45,99,44,99,44,99,45,91,44,99,
+  45,99,7,44,99,134,45,99,44,91,45,91,45,99,45,91,45,99,3,44,
+  99,136,45,91,45,99,45,99,44,99,45,91,45,99,45,99,44,99,6,45,
+  99,146,44,99,45,99,45,91,45,91,45,99,45,91,45,99,77,99,45,99,
+  45,91,110,51,176,19,50,12,82,12,147,20,147,20,17,52,110,83,3,77,
+  99,139,77,91,77,91,78,67,240,19,115,12,180,28,244,36,146,52,111,83,
+  45,99,77,99,4,77,91,7,77,99,129,77,91,4,77,99,3,77,91,3,
+  77,99,140,45,91,12,83,203,82,236,90,12,91,45,99,77,99,175,107,17,
+  116,82,124,114,124,146,124,3,147,124,130,179,124,147,132,15,179,132,129,179,
+  124,6,179,132,138,17,116,78,91,138,66,69,33,195,24,228,16,106,58,143,
+  91,50,116,147,124,5,179,124,129,180,124,3,179,124,3,147,124,138,179,124,
+  179,124,180,132,179,132,179,124,180,132,212,132,180,132,212,132,180,132,12,212,
+  132,3,212,140,161,179,132,146,132,117,165,239,131,141,115,142,115,109,115,109,
+  115,77,107,77,107,44,107,44,107,12,99,235,98,203,90,203,90,170,90,170,
+  82,137,82,105,82,137,82,73,74,73,74,40,66,40,74,40,66,40,66,8,
+  66,8,66,40,66,7,66,231,57,231,57,4,199,57,139,199,49,166,49,166,
+  49,134,49,134,41,102,41,134,41,102,41,102,33,102,41,101,41,5,69,33,
+  134,37,25,37,33,37,33,228,16,4,25,5,25,5,37,25,130,5,25,5,
+  25,5,37,25,137,4,25,102,25,49,124,16,124,48,124,16,124,207,115,142,
+  107,207,115,4,240,123,140,16,124,16,124,81,124,146,132,243,140,20,141,52,
+  141,85,149,117,149,117,149,182,157,150,157,3,215,157,133,247,157,215,157,247,
+  165,23,166,23,166,3,24,166,157,24,158,57,166,24,166,89,174,121,174,24,
+  166,121,174,56,174,122,174,121,174,186,182,121,174,89,166,187,182,154,174,154,
+  182,122,174,121,174,154,174,154,182,186,182,187,182,154,174,187,182,57,166,219,
+  190,187,182,187,182,154,174,3,187,182,180,252,190,187,182,251,198,186,182,219,
+  182,219,190,154,182,187,182,252,198,252,190,28,191,252,190,187,182,219,190,219,
+  190,28,199,252,190,28,199,28,199,187,182,61,199,252,190,252,190,29,199,29,
+  199,93,207,94,207,61,199,29,199,61,207,158,223,126,215,93,207,93,207,61,
+  199,61,207,94,207,93,207,61,199,61,199,29,191,29,199,253,198,61,199,93,
+  207,94,207,126,207,93,207,94,215,126,223,190,231,190,231,3,158,231,255,158,
+  223,126,215,126,223,126,223,125,215,126,215,93,215,126,215,158,223,158,231,126,
+  215,158,223,158,223,158,231,126,215,126,215,126,223,158,223,126,223,94,215,126,
+  223,158,223,93,215,61,207,158,223,93,215,28,207,61,215,158,223,28,207,61,
+  215,252,198,61,207,93,215,93,215,29,207,93,215,28,207,29,207,220,198,208,
+  107,110,99,41,58,8,50,232,49,74,66,203,82,228,16,33,0,33,0,65,
+  0,37,25,102,33,167,41,103,33,102,33,199,41,195,16,4,25,4,25,167,
+  41,200,41,201,49,9,58,9,50,41,58,42,58,74,58,139,66,107,66,139,
+  66,171,74,172,74,204,82,13,91,78,99,46,99,204,74,110,107,240,123,143,
+  115,106,74,8,58,171,82,77,99,81,124,244,140,244,132,244,132,245,132,21,
+  133,86,141,119,141,119,141,151,149,184,149,184,149,216,149,184,149,184,149,248,
+  165,183,165,20,149,146,132,73,74,138,74,138,82,167,57,8,66,8,66,101,
+  41,227,32,65,8,97,8,166,49,232,57,199,57,73,74,235,90,235,98,134,
+  49,130,16,130,16,98,16,130,16,130,16,101,41,141,170,90,203,90,45,107,
+  146,156,19,165,84,173,175,107,136,33,201,41,201,41,71,25,196,8,98,8,
+  3,99,8,129,99,0,3,68,0,147,197,8,168,41,140,74,205,82,205,82,
+  172,74,108,58,107,50,108,50,140,50,172,50,172,50,173,50,205,50,205,50,
+  238,58,14,59,14,67,79,67,3,79,75,130,46,67,46,67,3,79,75,4,
+  111,75,3,79,75,140,111,75,79,75,46,67,46,67,79,75,111,75,111,75,
+  79,75,78,67,46,67,14,67,14,67,5,46,67,144,79,75,111,75,144,75,
+  79,75,78,91,143,107,207,107,208,115,208,115,240,123,17,124,16,124,240,123,
+  8,58,4,33,37,41,3,36,33,130,37,33,37,33,9,36,33,139,227,32,
+  163,24,228,32,234,106,73,139,3,66,73,115,166,106,231,106,231,114,227,73,
+  3,4,74,3,36,74,140,166,90,166,98,134,90,134,98,166,98,166,98,167,
+  98,199,106,231,106,231,106,232,114,9,115,3,9,123,129,8,123,4,9,123,
+  133,8,123,232,114,8,115,231,114,231,106,5,199,106,167,167,106,199,106,199,
+  106,167,106,200,106,199,114,199,114,232,114,232,114,8,115,9,115,9,123,9,
+  123,41,123,41,123,41,131,9,123,9,123,232,122,8,123,232,114,231,114,199,
+  114,198,106,198,106,166,106,166,106,164,106,165,106,165,106,197,106,165,106,165,
+  122,197,122,229,122,230,122,229,130,5,139,38,139,3,38,147,143,6,147,5,
+  147,229,138,229,130,229,130,164,122,164,114,164,114,100,106,100,98,68,90,100,
+  82,100,90,67,90,100,90,238,4,129,12,99,4,44,99,129,12,99,4,44,
+  99,130,12,99,45,99,7,44,99,134,45,99,44,99,45,99,44,99,44,99,
+  45,99,4,44,99,129,45,99,3,44,99,131,45,99,45,99,44,91,4,44,
+  99,3,45,99,141,44,99,45,99,45,99,45,91,45,99,44,91,45,99,45,
+  99,44,99,45,91,45,91,45,99,45,99,3,45,91,156,45,99,77,99,45,
+  99,45,91,77,91,45,91,77,83,110,43,208,3,82,12,82,12,114,20,115,
+  28,240,59,78,83,45,99,77,99,77,99,77,91,78,83,176,35,82,12,179,
+  20,244,28,212,44,207,75,77,91,77,91,6,77,99,130,77,91,109,99,5,
+  77,99,129,109,99,3,77,99,4,77,91,145,45,91,236,82,203,82,236,90,
+  12,91,45,99,110,99,208,107,17,116,82,124,114,124,146,124,147,124,147,124,
+  147,132,179,124,147,132,16,179,132,129,179,124,4,179,132,138,17,116,77,91,
+  138,66,101,41,195,24,228,24,106,50,143,91,49,116,147,132,3,179,124,131,
+  179,132,179,124,179,124,3,179,132,129,179,124,3,147,124,3,179,124,134,179,
+  132,212,132,212,132,180,132,212,132,180,132,12,212,132,156,212,140,212,132,212,
+  132,244,132,179,132,179,140,117,165,174,115,142,115,141,115,109,115,109,115,77,
+  107,77,107,44,107,44,99,12,99,235,98,203,90,203,90,170,90,170,82,137,
+  82,105,82,73,74,105,74,73,74,40,74,3,40,66,131,40,74,8,66,8,
+  66,4,231,57,142,199,57,166,49,199,57,167,49,166,49,166,49,134,49,134,
+  41,102,41,102,41,134,41,102,41,102,41,101,41,5,69,33,135,37,33,69,
+  33,228,16,143,99,12,91,102,41,228,24,11,37,25,147,5,17,106,50,52,
+  141,52,149,182,157,215,157,52,149,49,124,207,115,16,124,16,124,49,124,81,
+  124,82,124,146,132,20,141,150,149,24,166,89,166,3,121,174,157,89,174,154,
+  182,89,174,154,174,121,174,122,174,121,174,121,182,89,174,121,182,121,174,122,
+  182,186,182,121,182,56,174,122,182,121,174,89,174,154,182,154,182,187,190,122,
+  182,154,182,154,182,251,190,89,174,122,174,155,182,186,182,3,154,182,165,89,
+  174,122,182,154,182,252,190,187,182,219,190,122,182,187,182,252,190,219,182,219,
+  190,122,174,252,198,154,182,252,198,154,182,28,199,219,190,219,190,187,182,187,
+  182,187,190,252,190,219,190,220,190,252,198,252,190,155,182,220,190,61,207,29,
+  207,252,198,28,199,252,190,93,207,28,199,29,199,3,61,199,141,93,207,29,
+  199,93,207,93,207,61,207,29,199,126,215,94,215,158,223,158,223,190,223,191,
+  231,223,231,3,223,239,129,255,239,3,255,247,185,255,239,223,239,255,247,223,
+  239,255,247,223,239,223,239,190,231,190,231,93,215,190,231,158,223,126,223,94,
+  215,158,223,126,215,126,223,126,223,125,223,126,223,126,215,93,215,158,223,158,
+  223,93,215,126,223,126,215,93,215,126,223,93,215,28,207,28,215,29,215,61,
+  215,61,207,28,207,61,215,61,215,28,207,29,207,252,198,61,215,61,207,219,
+  198,187,190,28,207,155,190,252,206,187,198,241,115,175,107,138,74,232,49,143,
+  107,9,58,171,74,69,33,3,33,0,168,36,25,70,25,167,41,134,33,102,
+  33,232,49,196,16,4,25,228,24,167,41,168,41,232,49,233,49,9,50,9,
+  58,9,58,74,58,106,66,107,66,139,66,172,74,204,82,204,82,45,91,78,
+  99,78,99,204,82,77,107,207,115,175,115,203,82,199,49,73,74,45,99,81,
+  124,212,140,244,132,245,132,245,132,21,133,3,86,141,173,151,149,184,149,184,
+  149,216,149,216,149,183,149,247,165,150,157,52,149,179,140,73,74,170,90,105,
+  74,166,49,8,66,8,66,133,49,227,32,65,8,97,8,134,49,232,57,231,
+  57,40,74,235,98,142,115,101,41,130,16,97,8,65,8,65,8,130,16,228,
+  32,105,82,12,99,77,107,113,148,19,165,52,173,240,123,104,33,168,33,168,
+  41,71,25,164,16,6,99,8,138,100,0,68,0,165,8,135,41,139,74,172,
+  74,205,74,172,74,108,58,108,42,3,140,42,130,108,34,76,34,3,75,34,
+  179,108,34,108,34,140,42,172,42,173,42,205,50,205,58,238,58,238,66,14,
+  67,46,67,46,67,47,67,47,75,47,75,79,75,79,67,79,67,79,75,79,
+  75,46,67,46,67,79,75,79,75,111,75,111,75,79,75,79,75,78,75,78,
+  75,79,75,78,67,46,67,78,75,46,67,79,75,111,75,144,83,79,75,110,
+  91,143,107,175,107,175,115,175,115,208,115,16,124,49,132,16,124,74,66,4,
+  33,37,33,3,36,33,153,37,33,37,33,36,33,36,33,37,33,36,33,36,
+  33,37,33,37,41,69,41,37,33,228,32,162,24,195,24,136,82,106,155,3,
+  74,8,107,232,114,166,98,139,139,232,114,8,115,41,115,9,115,3,41,123,
+  134,40,123,41,123,8,123,8,123,40,123,8,123,3,8,115,134,232,114,231,
+  106,231,114,231,114,199,106,200,106,3,199,106,150,231,106,232,114,199,106,231,
+  114,232,114,8,123,8,115,8,115,8,123,9,123,8,123,8,123,40,123,8,
+  123,9,123,8,123,9,123,232,114,231,114,231,114,231,106,199,114,3,198,106,
+  172,198,114,198,114,165,114,198,114,197,114,229,122,230,122,197,130,230,130,5,
+  131,5,131,6,139,6,131,5,139,6,139,5,131,230,130,229,130,229,130,165,
+  122,164,114,131,106,132,106,132,98,132,98,100,98,132,90,132,90,133,98,166,
+  98,166,90,230,106,8,107,40,123,105,131,170,139,203,147,12,156,45,164,110,
+  172,143,172,175,188,208,188,240,196,182,4,130,12,91,12,99,15,44,99,132,
+  12,91,45,99,45,91,12,99,3,44,99,4,45,99,129,44,91,4,45,99,
+  132,44,99,44,99,45,99,45,91,3,45,99,175,44,91,45,99,45,91,45,
+  99,44,99,44,91,44,91,45,99,45,99,44,91,44,91,45,99,45,99,45,
+  91,45,99,45,91,77,99,45,99,77,99,77,99,45,99,45,99,45,91,77,
+  91,77,99,77,99,45,99,45,75,143,43,241,11,50,12,82,12,115,20,82,
+  28,175,67,77,91,45,99,77,99,77,99,77,91,143,51,18,20,147,20,212,
+  28,244,28,82,52,110,91,6,77,99,130,109,99,77,91,9,77,99,152,77,
+  91,77,99,77,99,77,91,12,91,236,82,235,82,236,90,13,91,45,91,110,
+  99,240,107,49,116,114,124,114,124,146,124,146,124,147,124,179,132,147,132,179,
+  132,179,132,179,124,147,124,5,179,132,129,179,124,7,179,132,143,179,124,179,
+  124,211,132,179,132,17,116,77,91,138,66,101,41,195,24,227,24,73,50,142,
+  91,49,116,147,124,180,132,3,179,124,129,179,132,6,179,124,3,147,124,135,
+  179,124,179,124,179,132,180,132,211,132,212,132,180,132,18,212,132,131,179,140,
+  211,140,85,157,3,109,115,129,109,107,3,77,107,149,44,107,44,107,235,98,
+  235,98,203,90,203,90,170,82,138,82,138,82,105,82,105,82,105,74,73,74,
+  72,74,40,66,40,74,8,66,40,66,8,66,231,57,8,66,3,231,57,4,
+  199,57,131,166,49,134,49,134,41,6,102,41,129,101,33,3,69,33,140,37,
+  25,69,33,37,25,36,25,168,33,115,132,171,74,179,140,203,90,196,24,5,
+  25,37,33,4,37,25,129,5,25,3,37,25,201,196,16,207,67,92,199,251,
+  190,27,191,251,190,154,182,150,157,211,140,146,132,147,132,179,140,179,140,212,
+  140,20,141,118,149,118,149,247,157,56,166,89,174,89,174,122,174,219,182,186,
+  182,187,182,154,182,219,182,122,174,186,182,122,182,89,174,122,182,154,182,57,
+  166,186,190,89,174,186,182,89,182,154,182,154,182,187,182,154,182,154,182,219,
+  190,122,174,187,182,186,182,121,174,219,190,154,174,154,182,89,174,187,182,122,
+  174,57,174,122,182,154,182,187,182,122,182,187,182,155,182,155,182,220,190,252,
+  190,220,190,220,190,252,190,252,198,187,182,252,198,252,190,28,199,252,190,3,
+  29,199,134,252,198,29,199,61,207,93,207,93,207,94,207,3,126,215,138,158,
+  223,191,231,158,223,158,223,223,239,223,231,223,231,223,247,255,239,255,247,11,
+  255,255,10,255,247,146,223,239,255,239,223,239,223,239,222,239,126,223,126,223,
+  158,223,126,223,158,223,126,223,126,223,126,215,93,215,126,215,93,215,126,223,
+  158,223,3,93,215,180,61,207,94,215,93,215,125,215,61,207,61,207,28,207,
+  220,198,28,207,187,190,187,190,220,198,252,198,187,190,252,206,187,198,220,198,
+  122,182,57,174,61,207,155,190,154,190,219,190,187,190,155,190,187,190,17,116,
+  175,107,138,66,232,57,20,149,167,41,106,66,102,33,33,0,33,0,0,0,
+  4,25,37,25,167,41,103,41,102,33,8,50,195,16,4,25,4,25,135,41,
+  200,41,200,41,233,49,9,50,41,58,3,74,58,150,74,66,138,66,171,74,
+  172,74,204,82,13,91,78,99,110,99,78,99,142,107,207,115,207,115,236,90,
+  199,49,41,58,45,99,49,124,212,132,212,132,244,132,245,132,53,141,3,86,
+  141,173,119,141,151,149,184,149,216,157,216,157,184,149,215,165,150,157,20,149,
+  178,132,41,66,235,90,138,82,166,49,231,65,8,66,134,49,227,32,65,8,
+  65,8,134,49,8,66,199,57,40,74,12,99,77,107,227,24,162,24,195,24,
+  98,8,65,8,130,16,227,32,105,82,44,99,45,99,113,148,19,165,52,173,
+  49,132,71,25,136,33,136,33,71,33,196,8,5,99,8,160,67,8,68,0,
+  68,0,164,8,103,41,107,66,172,74,204,74,172,66,108,58,140,42,141,42,
+  173,50,173,42,140,34,108,34,108,34,76,26,43,26,11,26,43,26,11,26,
+  11,18,10,18,10,18,10,26,11,26,43,34,75,42,75,34,108,34,107,42,
+  3,140,42,144,172,42,173,50,173,50,205,42,172,42,205,42,205,50,237,58,
+  237,58,14,67,46,67,78,75,79,75,47,75,79,75,46,75,3,79,75,146,
+  111,75,143,83,144,83,143,83,111,91,143,107,143,107,175,115,175,115,208,115,
+  240,123,16,124,48,132,171,74,228,24,37,33,37,33,36,33,3,37,33,149,
+  36,33,37,33,37,33,37,41,37,33,37,33,36,33,37,41,36,33,4,33,
+  163,24,163,24,40,66,172,147,36,82,199,98,73,123,68,82,41,115,8,115,
+  9,115,8,8,115,133,8,107,8,115,232,114,8,115,232,114,3,8,123,139,
+  9,123,9,123,8,123,9,123,8,123,8,123,232,114,8,123,8,115,8,123,
+  232,114,5,231,114,143,198,114,198,114,230,114,230,122,197,114,198,114,198,122,
+  229,122,230,130,230,130,229,130,5,131,230,130,229,130,230,138,3,229,130,161,
+  197,130,197,122,197,114,165,114,164,114,164,106,133,106,132,98,132,98,164,98,
+  165,98,165,106,198,106,198,106,231,114,8,123,73,123,106,131,170,139,203,147,
+  12,156,45,164,110,172,142,180,143,180,207,188,208,188,240,196,16,197,17,197,
+  49,205,49,205,17,205,5,49,205,129,49,197,3,49,205,153,4,4,44,99,
+  129,12,99,3,44,99,129,12,91,7,44,99,132,45,99,45,99,44,99,45,
+  99,5,44,99,145,45,99,45,99,44,99,44,99,45,99,44,99,45,99,12,
+  91,44,99,44,99,45,99,44,91,45,99,45,91,45,99,45,99,44,91,4,
+  44,99,129,45,99,3,44,91,3,45,99,129,45,91,5,45,99,158,45,91,
+  44,99,45,99,45,99,77,91,77,99,77,99,77,91,77,99,45,91,77,67,
+  143,35,241,3,50,4,82,12,115,12,82,36,175,75,77,91,77,91,77,99,
+  77,91,110,75,208,19,83,12,180,20,244,28,179,44,175,75,77,91,13,77,
+  99,145,77,91,77,99,77,99,77,91,78,99,77,91,236,82,236,82,203,82,
+  12,91,12,91,77,99,142,99,240,115,49,116,114,124,114,124,3,147,124,130,
+  147,132,147,132,6,179,132,129,179,124,8,179,132,145,179,124,179,132,179,132,
+  180,132,147,132,17,116,78,91,138,66,101,33,195,24,227,24,73,50,111,83,
+  17,116,147,124,179,132,179,132,3,179,124,129,180,124,7,179,124,135,147,124,
+  179,124,179,124,179,132,212,132,212,132,211,132,4,212,132,129,211,132,15,212,
+  132,134,81,124,243,140,19,157,77,107,109,115,109,107,3,77,107,140,44,107,
+  44,107,12,99,11,99,235,98,203,90,202,90,170,90,170,90,138,82,105,82,
+  105,82,3,73,74,130,40,74,40,66,4,8,66,130,232,57,231,57,3,199,
+  57,136,199,49,199,49,167,49,166,49,166,49,134,41,134,41,102,41,3,101,
+  41,145,101,33,101,33,69,33,69,25,69,33,69,33,37,25,69,25,5,25,
+  42,50,176,99,143,99,244,148,211,148,142,107,36,33,4,25,6,37,25,198,
+  5,25,37,25,195,16,179,92,125,207,60,199,28,199,28,191,186,182,89,174,
+  215,165,244,140,244,148,53,149,53,149,212,140,86,149,118,149,118,149,150,149,
+  183,157,57,174,122,174,122,174,154,182,186,182,89,174,89,174,186,190,89,174,
+  154,182,89,174,154,182,89,174,187,190,57,174,154,182,89,174,57,174,89,174,
+  89,182,24,166,57,174,57,174,90,174,57,174,122,182,25,166,155,182,57,166,
+  155,182,90,174,123,174,155,182,155,182,220,190,252,190,29,199,252,190,29,199,
+  61,199,93,207,93,207,94,207,126,215,158,223,126,215,190,223,158,223,158,223,
+  3,191,231,129,255,247,3,223,239,3,255,247,26,255,255,130,255,247,255,255,
+  6,255,247,168,255,239,255,239,255,247,223,239,223,239,255,239,223,239,191,231,
+  190,231,126,223,158,231,158,231,125,223,158,231,158,223,158,231,126,223,93,215,
+  61,207,93,215,93,223,126,223,61,215,28,199,61,207,61,207,93,207,252,198,
+  62,215,220,198,61,207,219,190,29,207,252,198,187,190,187,190,154,190,219,198,
+  155,190,187,190,3,90,182,129,220,198,3,155,190,155,123,182,220,198,123,190,
+  57,182,82,124,207,107,106,66,232,57,211,140,102,33,41,66,167,41,65,0,
+  1,0,1,0,195,16,37,25,135,41,103,33,102,33,232,49,195,16,228,24,
+  228,24,167,41,200,41,200,41,3,9,50,129,42,58,3,74,58,136,106,66,
+  139,66,171,74,204,74,13,83,78,99,110,99,142,107,3,207,115,187,77,99,
+  8,50,231,57,44,99,49,124,179,132,212,132,212,132,244,132,53,141,54,141,
+  54,141,86,141,87,149,151,149,183,149,184,149,184,149,216,157,215,165,183,165,
+  20,149,178,132,8,66,170,82,138,82,167,49,8,66,8,66,134,49,4,33,
+  65,8,65,8,101,49,232,65,231,57,8,66,235,98,235,98,228,24,130,16,
+  195,24,98,16,97,8,130,16,195,32,203,90,77,99,77,107,81,148,19,165,
+  52,173,114,140,71,17,103,33,136,33,39,25,164,16,98,0,4,99,8,140,
+  67,0,100,0,68,0,132,8,103,33,42,58,140,74,172,74,172,66,140,50,
+  109,42,141,42,3,173,42,138,141,34,108,34,108,34,77,26,44,26,76,18,
+  11,18,235,17,202,9,201,9,4,169,9,132,137,9,169,17,169,9,169,9,
+  4,169,17,3,201,9,141,201,17,234,17,10,26,10,26,42,26,75,34,139,
+  42,140,50,173,50,173,58,205,58,205,58,14,67,3,46,75,141,78,83,78,
+  83,78,91,111,99,110,107,142,107,142,107,175,115,240,123,16,124,16,124,236,
+  90,4,25,3,36,33,132,37,33,36,33,36,33,37,41,3,36,33,144,37,
+  33,36,33,37,33,37,33,36,33,4,33,195,24,195,24,198,57,203,147,100,
+  90,134,90,171,139,8,115,41,123,9,115,3,41,123,136,9,123,41,123,9,
+  123,9,123,41,123,9,123,40,115,8,115,3,8,123,135,7,123,7,123,7,
+  115,231,114,7,115,231,114,231,122,3,230,122,135,229,122,230,122,230,122,230,
+  130,230,130,229,130,230,130,3,229,130,165,197,130,197,122,197,122,165,122,164,
+  114,164,114,165,114,164,106,164,106,165,106,165,106,165,98,197,106,198,106,231,
+  106,7,107,40,115,73,123,105,131,138,131,171,139,236,147,12,164,45,164,78,
+  172,142,180,143,180,175,188,208,188,240,188,240,196,17,197,17,197,17,205,17,
+  205,49,205,17,205,3,49,205,129,49,197,4,49,205,4,81,205,132,49,205,
+  82,213,81,205,82,205,3,82,213,3,114,213,114,4,129,12,91,3,44,99,
+  151,12,99,12,91,44,99,12,99,44,99,45,99,44,99,44,99,12,99,45,
+  99,44,99,44,91,45,99,44,99,44,99,45,99,45,99,44,99,44,99,45,
+  99,44,99,45,99,45,99,3,44,99,137,45,99,45,91,45,99,44,99,44,
+  99,45,99,45,99,77,99,45,91,3,45,99,136,45,91,45,91,12,91,45,
+  99,45,91,45,99,45,99,44,99,7,45,99,136,44,99,45,91,77,91,45,
+  99,77,99,45,99,77,99,45,99,4,77,99,149,77,91,45,91,78,67,175,
+  19,17,4,50,12,82,12,115,20,49,36,142,75,77,91,77,99,77,91,78,
+  83,143,43,50,12,147,12,212,20,244,36,17,60,78,83,3,77,99,130,109,
+  99,77,91,5,77,99,129,77,91,6,77,99,146,45,91,236,82,236,82,204,
+  82,12,91,13,91,77,99,175,107,240,115,82,124,114,124,114,124,146,124,146,
+  124,179,124,147,132,179,132,147,132,3,179,132,132,147,132,179,132,179,132,179,
+  124,10,179,132,146,147,132,241,115,78,91,106,66,101,41,195,24,227,16,41,
+  50,110,83,17,116,147,124,179,132,179,132,147,124,179,132,179,124,179,124,180,
+  124,3,179,124,129,147,124,7,179,124,130,179,132,211,132,15,212,132,129,212,
+  140,4,212,132,133,211,132,146,140,20,149,210,148,44,107,4,77,107,135,44,
+  107,44,107,12,99,12,99,235,98,235,98,203,90,3,170,90,131,105,82,105,
+  82,105,74,3,73,74,131,40,74,40,74,40,66,4,8,66,130,231,65,231,
+  57,3,199,57,132,199,49,166,49,166,49,134,49,3,134,41,136,102,41,102,
+  41,101,33,101,33,69,33,69,33,69,25,37,25,3,37,33,138,5,25,107,
+  58,143,99,110,99,179,140,179,148,243,156,178,148,134,41,228,24,4,37,25,
+  158,5,25,37,25,37,25,163,8,184,133,125,207,186,182,60,199,28,199,219,
+  182,186,190,56,182,117,157,85,149,53,149,20,149,212,140,53,149,86,149,150,
+  157,150,157,183,157,248,165,248,157,56,166,24,166,89,174,215,165,57,174,57,
+  174,3,24,166,152,57,174,25,174,57,174,89,174,57,174,122,182,90,174,89,
+  174,123,174,155,182,155,182,187,190,220,182,252,190,29,199,29,207,94,207,126,
+  215,126,215,158,223,223,231,158,223,223,231,255,239,3,255,247,131,255,255,255,
+  255,255,247,43,255,255,6,255,247,131,223,239,255,247,223,239,3,255,247,129,
+  223,247,3,223,239,199,158,231,190,231,158,223,158,231,158,231,158,223,158,231,
+  126,215,126,223,158,223,93,215,93,215,125,215,61,207,93,215,93,215,252,198,
+  61,207,61,207,93,215,28,207,220,198,28,207,252,206,252,198,220,198,252,198,
+  154,190,219,198,89,182,154,190,219,198,155,190,90,182,220,198,90,182,122,182,
+  155,190,187,190,155,190,155,190,252,198,90,182,248,173,50,116,175,107,106,66,
+  9,58,146,140,37,33,231,49,41,58,130,8,1,0,0,0,195,16,5,25,
+  167,41,102,33,102,33,9,58,195,16,4,25,228,24,199,41,168,41,200,41,
+  232,41,233,49,9,50,41,58,3,74,58,145,107,66,139,66,139,66,172,74,
+  13,83,78,99,110,99,143,107,207,115,207,115,207,123,78,99,106,66,41,58,
+  12,91,16,116,147,132,3,212,132,3,245,132,157,53,141,86,141,118,149,119,
+  149,152,149,184,149,184,149,215,165,182,165,243,148,178,132,41,66,105,82,138,
+  82,166,49,232,65,8,66,134,49,4,33,97,8,65,8,101,41,232,65,231,
+  57,8,66,12,99,235,98,167,49,65,8,4,130,16,143,101,41,44,99,77,
+  99,77,107,81,148,243,164,52,173,179,148,103,25,103,33,104,33,39,25,196,
+  8,98,8,98,8,3,99,8,139,99,0,67,0,68,0,100,0,70,33,42,
+  66,172,74,172,74,108,58,108,42,108,34,3,141,34,159,141,42,141,34,141,
+  34,141,26,109,26,76,26,76,18,44,18,11,18,202,9,169,1,169,9,137,
+  9,105,9,137,9,137,9,104,1,104,9,104,1,104,9,72,9,71,9,71,
+  9,103,9,104,9,104,1,136,9,136,9,104,9,104,9,136,9,3,201,17,
+  158,201,25,234,25,234,33,42,34,140,58,204,74,237,74,13,75,13,83,45,
+  83,78,91,78,99,78,99,110,107,143,107,175,115,207,115,16,124,16,124,45,
+  99,4,25,36,33,36,41,36,33,36,33,37,41,36,33,4,33,37,33,37,
+  33,3,36,33,140,37,33,37,33,36,33,4,33,195,24,163,24,101,41,139,
+  139,198,114,68,74,8,115,41,123,5,40,123,5,7,123,131,7,131,6,123,
+  6,131,3,230,130,170,229,130,230,130,230,130,229,130,229,122,230,130,198,122,
+  197,122,197,122,165,114,165,114,197,114,197,106,197,106,165,106,198,106,198,114,
+  230,114,7,115,7,115,39,123,72,123,105,131,137,139,170,139,203,147,236,155,
+  44,164,45,164,110,180,110,180,142,180,175,188,208,188,208,188,240,196,240,196,
+  17,197,17,205,49,205,49,205,17,205,11,49,205,129,82,205,3,81,205,7,
+  82,213,130,114,213,82,213,13,114,213,79,4,131,44,99,44,91,12,99,9,
+  44,99,129,44,91,3,44,99,130,12,99,44,99,3,45,99,133,44,99,45,
+  99,44,91,45,99,45,99,5,44,99,129,45,91,3,44,99,142,45,99,45,
+  99,44,99,44,99,45,99,45,99,44,99,44,99,45,99,44,99,44,99,44,
+  91,45,99,44,91,3,45,91,134,45,99,45,99,45,91,45,99,45,99,44,
+  91,3,45,99,131,45,91,77,99,45,99,4,77,99,151,77,91,77,91,77,
+  99,77,99,77,91,78,59,176,11,17,4,50,4,82,4,115,12,17,44,110,
+  83,77,99,77,91,77,91,110,59,241,19,115,12,179,20,244,28,114,52,143,
+  75,5,77,99,130,109,99,109,99,5,77,99,149,77,91,77,91,77,99,77,
+  99,13,91,236,82,204,82,236,90,13,91,45,99,110,99,175,107,17,116,82,
+  124,114,124,115,124,146,124,147,124,147,124,147,132,147,132,17,179,132,141,147,
+  132,240,115,77,91,106,66,101,41,195,24,227,16,41,50,110,83,17,108,146,
+  124,179,132,180,132,3,179,124,129,180,132,6,179,124,4,147,124,129,179,124,
+  3,180,132,132,211,132,211,132,180,132,180,132,17,212,132,135,179,132,178,140,
+  53,149,81,140,45,107,77,107,77,107,3,44,107,144,12,99,235,98,11,99,
+  235,98,203,90,203,90,170,90,170,90,138,82,137,82,105,82,105,74,73,74,
+  73,74,40,74,40,74,3,40,66,134,8,66,232,65,231,65,8,66,231,57,
+  231,57,3,199,57,132,167,49,166,49,166,49,134,41,4,102,41,151,101,33,
+  101,33,69,33,69,33,69,25,69,33,37,25,37,25,37,33,228,16,204,66,
+  240,107,111,99,179,140,147,140,211,148,244,156,20,165,166,49,228,24,37,25,
+  5,25,5,25,3,37,25,175,163,0,154,150,251,190,154,174,219,182,219,182,
+  186,182,121,182,57,174,183,165,183,165,244,148,86,157,20,149,151,165,118,157,
+  151,157,215,165,215,165,215,157,215,157,215,165,248,165,24,166,248,165,57,166,
+  89,174,90,174,90,174,155,182,187,182,187,190,220,190,253,190,29,199,61,207,
+  94,207,126,215,223,231,223,239,223,239,255,239,255,247,255,247,255,255,255,255,
+  255,247,58,255,255,4,255,247,209,223,247,223,239,223,239,255,239,223,239,191,
+  239,255,247,190,231,223,239,190,239,191,239,223,239,158,231,223,239,158,231,158,
+  223,93,215,158,223,93,215,94,215,126,215,126,223,158,223,61,215,61,207,61,
+  207,220,190,252,198,93,207,28,207,28,207,252,198,61,215,252,206,29,207,219,
+  190,155,190,219,198,123,190,155,190,155,190,90,182,122,182,155,190,123,182,155,
+  190,123,190,122,182,57,174,90,182,90,182,58,174,58,182,24,174,82,124,175,
+  107,138,66,106,74,146,132,5,33,232,49,9,58,130,16,1,0,0,0,130,
+  16,37,25,135,33,135,33,70,33,232,49,195,16,228,24,228,24,167,41,168,
+  41,200,41,200,49,232,49,9,50,41,58,3,74,58,199,106,66,139,66,139,
+  66,172,74,237,82,77,99,110,99,143,107,175,115,207,115,207,115,110,107,236,
+  82,236,82,77,99,240,115,114,124,179,124,180,124,212,124,180,124,180,124,244,
+  132,21,133,54,141,86,141,86,141,118,149,119,149,119,149,215,165,215,165,244,
+  140,179,132,73,74,138,82,138,82,199,57,232,65,8,66,166,49,4,33,97,
+  8,65,8,69,41,8,66,231,57,232,65,235,98,235,90,203,90,231,57,228,
+  24,195,24,228,32,167,49,203,90,45,99,45,99,77,107,80,140,19,165,52,
+  173,243,156,103,25,103,33,103,25,38,25,197,16,99,8,98,8,3,99,8,
+  139,67,0,68,0,68,0,100,0,38,33,42,58,139,74,108,66,43,58,75,
+  42,108,34,5,173,42,138,173,34,173,34,141,34,76,26,43,26,235,17,202,
+  9,137,9,104,9,72,1,3,72,9,134,72,1,72,9,72,9,39,9,39,
+  1,39,9,4,39,1,130,72,1,72,9,3,104,9,137,137,17,201,17,201,
+  17,169,17,202,25,201,25,201,25,10,34,107,66,3,204,82,149,236,90,13,
+  91,45,99,78,99,78,99,110,107,143,107,175,115,175,115,240,123,16,124,110,
+  107,69,33,36,33,37,41,37,33,37,33,36,33,37,33,36,33,37,33,8,
+  36,33,135,227,24,162,16,36,33,74,131,104,147,230,122,7,123,4,6,131,
+  138,230,130,230,122,230,130,230,122,230,122,229,122,229,122,230,122,198,114,198,
+  114,4,230,114,152,6,115,7,115,39,123,40,123,72,123,105,131,138,131,170,
+  139,203,147,235,155,12,156,44,164,77,164,110,172,110,180,175,180,175,188,208,
+  180,240,188,240,196,240,196,241,196,17,197,17,205,5,49,205,129,81,205,3,
+  49,205,136,49,197,49,205,50,205,49,205,82,205,81,205,82,213,82,205,9,
+  82,213,129,114,213,4,82,213,129,114,213,4,82,213,6,114,213,6,82,213,
+  134,49,205,81,205,49,213,17,205,240,204,208,196,113,4,3,44,99,139,12,
+  99,45,99,44,99,44,99,45,99,45,99,12,99,44,99,44,99,44,91,44,
+  99,3,45,99,4,44,99,132,45,99,45,99,44,99,45,99,3,44,99,132,
+  45,99,45,99,44,99,45,99,4,44,99,3,45,99,129,45,91,3,45,99,
+  154,44,99,45,99,44,91,77,99,44,91,44,91,44,99,45,99,45,91,45,
+  99,45,99,45,91,45,91,45,99,45,99,45,91,45,99,45,99,77,99,45,
+  99,44,91,45,99,45,99,77,99,77,99,77,91,4,77,99,151,77,91,77,
+  83,110,51,176,11,17,4,18,4,82,4,115,20,241,51,77,91,77,99,77,
+  99,78,83,176,35,50,12,147,12,212,20,212,36,240,59,78,91,77,99,77,
+  99,109,99,3,77,99,129,77,91,4,77,99,147,77,91,77,99,77,99,12,
+  91,236,82,204,82,236,90,13,91,45,99,110,99,208,107,49,116,82,124,114,
+  124,115,124,147,124,147,124,147,132,147,124,9,179,132,130,179,124,179,124,6,
+  179,132,143,146,124,240,107,45,91,73,58,36,33,195,24,195,16,41,50,110,
+  83,17,108,147,124,180,132,179,132,179,124,147,124,3,179,124,129,180,124,4,
+  179,124,139,147,124,179,124,147,124,147,124,179,124,179,124,179,132,180,132,212,
+  132,212,132,179,132,18,212,132,133,212,140,178,132,146,132,85,157,239,123,4,
+  44,107,130,12,107,12,99,4,235,98,138,203,98,202,90,170,90,170,90,137,
+  82,105,82,105,82,73,74,73,74,72,74,4,40,74,134,8,66,40,66,8,
+  66,8,66,231,57,231,57,3,199,57,199,199,49,199,49,166,49,134,49,134,
+  41,134,41,102,41,102,41,101,41,102,41,102,33,102,33,69,25,69,33,37,
+  33,69,33,37,25,37,25,228,16,208,99,175,99,176,107,147,140,147,140,211,
+  140,212,148,20,157,85,165,105,74,196,24,37,25,5,25,5,25,37,25,5,
+  25,228,8,154,174,24,166,215,157,183,157,24,166,215,165,183,165,215,165,150,
+  157,183,165,85,157,183,165,150,157,183,157,183,157,215,157,216,165,25,166,57,
+  166,90,166,123,174,155,182,220,182,220,190,61,199,29,199,94,215,158,215,191,
+  223,190,223,223,231,223,231,255,247,255,239,255,247,68,255,255,4,255,247,130,
+  255,255,255,247,4,223,239,132,191,231,223,239,223,239,190,231,4,223,239,190,
+  158,223,191,231,93,215,158,231,190,231,125,223,93,223,125,223,93,215,61,207,
+  29,207,28,199,93,207,28,207,252,198,94,207,220,198,93,207,251,198,220,198,
+  252,198,155,190,187,190,155,182,187,190,187,190,90,174,122,182,122,182,154,182,
+  154,182,90,174,220,190,122,182,89,182,248,173,57,174,187,190,249,165,57,174,
+  215,165,114,124,46,91,139,74,203,82,49,124,37,25,8,58,8,50,228,24,
+  1,0,32,0,98,8,37,25,135,33,102,33,70,33,8,50,195,16,4,25,
+  228,24,135,41,3,200,41,161,232,49,9,58,9,50,41,58,41,58,42,58,
+  74,66,107,66,107,66,139,74,236,82,110,99,142,107,143,107,175,115,208,115,
+  239,123,142,107,236,82,171,74,45,91,17,116,114,124,147,124,212,124,180,124,
+  179,124,179,124,212,124,245,132,54,141,54,141,86,141,3,86,149,143,215,165,
+  215,165,20,149,52,149,235,90,138,82,170,82,231,57,232,65,8,66,167,57,
+  36,33,130,16,33,8,37,41,3,232,65,189,12,99,236,98,235,90,235,90,
+  170,82,138,82,170,82,235,90,236,90,12,99,45,99,77,107,48,140,20,165,
+  52,173,20,165,135,33,71,33,71,33,38,33,197,16,99,0,66,8,98,8,
+  99,8,99,0,99,0,67,0,67,0,100,0,38,25,9,58,107,66,75,58,
+  10,42,43,34,141,50,238,58,238,58,238,50,238,50,206,50,173,42,141,34,
+  76,26,10,26,169,17,104,9,71,1,6,9,230,8,6,1,6,1,6,9,
+  230,8,229,0,229,0,197,0,197,0,229,0,198,0,3,230,0,160,229,0,
+  6,1,39,1,39,9,71,9,39,9,71,9,104,9,136,17,137,17,169,17,
+  202,25,234,25,43,42,139,74,237,90,236,90,204,90,236,90,236,90,45,99,
+  45,99,78,107,78,107,142,107,143,107,208,115,208,123,240,123,143,107,134,41,
+  4,33,3,37,33,3,36,33,170,37,33,36,33,37,33,37,33,36,33,36,
+  33,37,33,37,41,36,33,227,24,162,16,4,33,168,90,7,123,230,114,6,
+  115,6,115,39,123,39,123,40,123,71,123,72,123,105,131,137,131,170,139,170,
+  147,235,147,235,147,12,156,44,164,77,172,109,172,142,172,175,180,175,180,175,
+  188,208,188,208,196,240,196,240,196,17,197,17,197,7,49,205,3,81,205,136,
+  49,205,49,205,81,205,82,205,82,205,81,205,81,205,82,205,15,82,213,136,
+  114,213,114,213,82,213,82,213,114,213,114,213,82,213,114,213,3,82,213,132,
+  81,213,81,213,81,205,50,205,3,49,205,147,17,205,17,205,17,197,17,197,
+  240,204,240,196,240,196,207,188,207,196,175,196,175,188,142,188,175,188,12,180,
+  166,138,135,130,70,122,37,114,229,113,68,4,3,44,99,129,12,91,3,44,
+  99,131,45,99,44,99,45,99,8,44,99,129,44,91,4,44,99,137,45,99,
+  44,91,44,99,44,99,45,99,44,99,45,99,45,99,44,99,3,45,99,141,
+  45,91,45,91,45,99,45,91,45,99,45,99,45,91,44,91,45,99,45,99,
+  44,91,44,99,45,99,3,44,99,132,45,91,45,99,44,99,44,99,3,77,
+  99,133,45,99,45,99,45,91,77,91,45,99,6,77,99,129,77,91,4,77,
+  99,154,77,91,77,99,77,75,143,43,208,11,241,3,50,4,115,4,114,28,
+  208,67,77,91,77,99,77,91,110,59,241,11,115,12,179,20,244,28,114,52,
+  174,83,45,91,77,99,77,99,77,91,109,99,109,99,3,77,99,145,77,91,
+  77,91,77,99,77,99,12,91,236,82,203,82,236,90,12,99,77,99,110,99,
+  208,107,49,116,114,124,114,124,146,124,147,124,5,147,132,131,179,132,179,132,
+  179,124,11,179,132,139,147,124,208,107,45,91,73,58,36,33,163,24,195,16,
+  41,50,110,83,17,108,147,124,4,179,132,130,179,124,180,124,6,179,124,5,
+  147,124,141,179,124,179,124,179,132,211,132,212,132,211,132,211,132,180,132,211,
+  132,211,132,212,132,212,132,180,132,13,212,132,132,146,132,178,132,117,157,141,
+  115,3,12,107,145,12,99,12,99,235,98,235,90,235,98,235,98,203,90,170,
+  90,170,90,170,82,170,82,138,82,105,74,105,82,105,74,72,74,72,74,3,
+  40,74,133,40,66,40,66,8,66,8,66,232,65,3,231,57,3,199,57,3,
+  166,49,130,134,41,134,41,3,102,41,132,101,41,101,33,102,33,69,33,3,
+  37,33,171,69,33,37,25,4,17,114,124,240,115,175,107,82,132,114,132,114,
+  132,147,140,212,148,20,157,118,173,138,82,163,16,5,25,5,25,37,25,4,
+  25,103,25,247,165,118,157,118,149,150,157,183,157,118,157,118,157,150,157,53,
+  149,85,149,118,157,184,157,25,166,90,174,91,174,187,182,188,182,94,199,126,
+  207,127,215,223,223,223,231,255,239,4,223,239,5,255,247,71,255,255,7,255,
+  247,6,223,239,195,190,231,223,239,223,239,190,231,158,223,158,223,158,231,126,
+  223,126,215,126,215,61,207,126,215,94,215,94,215,28,207,252,198,220,190,61,
+  207,93,207,28,199,28,199,252,198,29,199,61,199,252,198,219,190,187,190,58,
+  174,155,182,187,182,155,182,90,174,57,174,58,174,57,166,24,166,57,166,248,
+  165,150,157,183,157,118,157,21,149,150,157,21,141,53,149,179,132,49,116,13,
+  83,171,74,45,99,175,107,37,33,9,58,232,49,232,49,1,0,32,0,98,
+  8,4,25,135,41,103,33,70,33,73,58,195,8,228,24,228,24,135,41,3,
+  200,41,135,200,49,233,49,9,50,41,58,41,58,41,50,42,58,3,74,58,
+  228,204,74,143,107,176,107,142,107,175,115,208,123,240,123,175,107,171,74,41,
+  58,45,91,17,116,82,116,114,116,147,124,179,124,147,124,180,124,212,124,213,
+  132,21,133,53,141,54,141,86,141,86,149,86,149,215,165,215,165,243,140,243,
+  148,44,91,170,82,171,90,231,57,8,66,40,66,199,57,36,33,130,16,33,
+  8,36,33,232,57,8,66,231,57,12,99,12,99,235,90,235,90,236,90,203,
+  90,235,90,203,90,235,90,12,99,44,99,77,99,16,132,19,165,52,165,52,
+  173,168,33,70,33,71,33,38,25,197,16,99,8,66,8,99,8,99,8,100,
+  8,99,0,67,0,67,0,100,0,6,25,233,49,75,66,10,50,201,33,10,
+  34,140,50,47,67,47,67,14,59,174,50,173,50,108,34,43,26,234,17,136,
+  9,38,1,229,0,229,0,197,8,197,0,197,0,230,8,229,0,197,0,197,
+  0,3,164,0,150,164,8,197,8,165,0,164,0,164,0,197,0,230,0,6,
+  1,38,1,6,1,197,0,197,0,229,0,229,0,6,1,71,9,103,9,136,
+  17,233,41,107,66,172,82,172,82,3,171,82,151,236,90,13,91,45,99,78,
+  107,77,107,110,107,175,115,207,115,240,123,175,115,167,49,4,33,37,41,36,
+  41,36,33,36,33,37,33,36,33,69,33,36,33,36,33,37,41,37,41,4,
+  36,33,161,228,24,163,24,4,25,107,123,45,156,45,164,109,164,110,172,142,
+  180,175,180,207,180,207,188,208,188,240,196,240,196,16,197,17,205,17,197,49,
+  205,49,205,81,205,82,213,49,205,17,197,241,188,241,196,241,196,240,196,175,
+  188,240,188,175,188,50,205,82,213,3,82,205,6,82,213,4,114,213,130,82,
+  213,82,213,5,114,213,4,82,213,129,114,213,5,82,213,130,50,205,82,213,
+  4,49,205,3,17,205,131,17,197,16,197,16,197,3,240,196,3,208,196,142,
+  176,196,175,196,175,188,143,188,142,188,142,188,110,188,78,188,78,188,77,180,
+  77,180,45,180,45,180,44,180,3,12,180,133,98,113,67,89,67,89,35,89,
+  67,89,89,4,4,44,99,131,12,91,44,99,12,99,7,44,99,149,45,99,
+  44,99,12,99,45,99,44,99,12,99,45,99,12,91,45,99,44,99,45,99,
+  45,99,44,91,45,99,44,91,44,99,44,99,45,99,44,99,44,99,44,91,
+  3,45,99,129,44,91,5,45,99,131,44,91,44,91,45,91,3,45,99,143,
+  45,91,45,99,45,91,44,91,45,99,45,99,45,91,45,99,77,99,45,99,
+  45,91,77,99,45,91,77,99,45,99,9,77,99,150,45,99,77,99,77,91,
+  77,91,77,75,143,35,208,3,17,4,50,4,115,20,82,36,142,75,45,91,
+  77,99,78,75,176,27,50,12,147,12,212,20,212,28,17,68,77,83,3,77,
+  99,132,77,91,77,99,77,91,77,99,3,77,91,146,77,99,236,82,236,82,
+  203,82,12,91,12,91,77,99,143,107,240,115,49,124,114,124,114,124,146,124,
+  147,132,147,124,147,132,179,132,147,132,3,179,132,129,179,124,10,179,132,139,
+  146,124,208,107,13,83,40,58,4,33,195,24,195,16,41,50,111,91,17,108,
+  147,124,3,179,132,131,147,124,179,124,147,124,6,179,124,5,147,124,138,179,
+  124,179,132,179,132,180,132,211,132,212,132,180,132,180,132,212,132,180,132,17,
+  212,132,131,179,132,178,140,85,165,4,12,99,162,235,98,235,98,235,90,203,
+  90,203,90,202,90,170,90,170,90,170,82,170,90,138,82,137,82,105,74,105,
+  74,72,74,73,74,73,74,40,74,40,66,40,66,8,66,40,66,40,66,8,
+  66,8,66,231,65,231,57,199,57,231,57,199,57,167,57,167,57,166,49,134,
+  49,3,134,41,134,102,41,102,41,101,41,101,33,69,33,69,25,3,37,33,
+  173,37,25,37,33,228,16,241,107,17,124,143,107,17,124,17,124,241,115,17,
+  124,114,132,147,148,244,148,85,173,44,99,228,24,4,25,37,25,228,16,172,
+  50,122,182,248,165,248,165,183,157,86,149,53,149,53,149,53,157,118,157,249,
+  165,188,182,253,198,252,190,127,215,191,223,158,215,159,223,191,223,223,239,223,
+  231,255,239,255,247,255,239,255,239,223,239,5,255,247,70,255,255,131,255,247,
+  255,247,255,255,6,255,247,194,255,239,223,239,223,239,255,247,190,223,190,231,
+  223,239,223,239,191,231,190,231,191,231,126,215,191,223,126,215,61,207,126,215,
+  61,207,61,207,28,199,29,199,219,190,219,198,57,174,249,173,58,174,57,174,
+  215,165,248,165,85,149,151,157,53,157,20,149,244,140,211,140,212,140,147,132,
+  147,132,114,132,49,124,81,124,82,124,240,115,16,116,208,107,208,115,175,107,
+  110,99,110,99,78,99,111,99,78,99,78,91,110,99,16,116,110,99,139,74,
+  175,115,13,91,102,33,9,50,200,41,200,49,98,8,65,8,98,8,98,8,
+  3,163,16,134,37,33,163,16,228,16,228,24,134,41,232,49,3,200,49,207,
+  233,49,9,50,41,58,9,58,41,50,74,58,73,58,41,50,200,41,41,58,
+  78,99,208,115,143,107,175,115,207,115,207,123,175,115,204,82,105,66,110,99,
+  49,116,82,116,82,116,115,124,147,124,147,124,180,132,180,132,212,124,245,132,
+  21,133,21,141,54,141,86,141,86,149,151,157,248,165,53,149,211,140,44,99,
+  138,82,171,82,232,65,232,65,40,66,231,57,36,41,130,16,33,8,4,33,
+  8,66,8,66,231,57,12,99,236,98,235,90,236,98,236,90,236,90,12,91,
+  235,90,236,90,12,99,45,99,77,107,239,131,20,165,52,173,85,173,9,50,
+  38,25,70,33,39,25,229,24,99,8,98,8,99,8,99,8,100,8,3,67,
+  0,164,68,0,229,16,136,41,233,49,169,41,136,25,233,17,75,34,205,50,
+  173,50,108,42,43,34,10,26,10,18,201,9,136,1,38,1,229,0,196,0,
+  197,0,197,0,164,0,197,0,197,8,197,0,164,0,131,0,131,8,131,0,
+  131,0,164,0,164,8,164,0,132,0,164,0,229,0,3,6,1,157,229,0,
+  132,0,99,0,99,0,131,0,164,0,197,0,5,9,38,17,103,25,233,49,
+  106,74,139,82,139,74,139,74,171,82,171,82,204,82,12,91,13,99,45,99,
+  78,107,110,107,143,107,207,115,175,115,232,57,4,33,69,33,3,37,33,135,
+  37,41,37,33,37,33,36,33,37,33,37,33,37,41,3,36,33,143,37,33,
+  228,32,163,24,228,24,14,156,17,205,241,196,50,197,81,205,17,197,81,205,
+  82,205,82,205,49,205,82,205,6,82,213,140,114,213,114,213,17,197,176,188,
+  111,180,46,164,111,172,176,188,111,180,208,188,78,172,17,197,12,114,213,4,
+  82,213,136,81,213,82,213,50,213,49,213,17,205,241,196,49,205,49,205,7,
+  17,205,129,240,196,3,240,204,137,241,204,240,204,240,204,208,196,240,196,208,
+  196,208,196,207,204,207,196,3,175,196,137,142,196,110,188,110,188,77,188,77,
+  180,45,180,12,180,12,180,236,179,3,203,179,131,203,171,203,171,171,171,3,
+  170,171,134,236,179,228,129,67,97,67,89,67,97,67,97,90,4,10,44,99,
+  129,45,91,5,44,99,131,45,99,44,99,45,99,3,44,99,131,45,99,44,
+  99,44,99,3,45,99,132,44,99,44,99,45,99,44,99,3,45,99,134,44,
+  91,44,99,45,99,44,99,44,99,44,91,4,45,99,130,45,91,44,91,5,
+  45,99,142,44,99,44,99,45,99,45,99,45,91,45,99,77,91,45,91,45,
+  99,45,99,77,99,77,99,45,99,77,91,4,77,99,130,77,91,77,91,4,
+  77,99,153,77,91,77,99,77,99,77,91,77,67,143,19,241,3,17,4,82,
+  4,147,20,50,52,142,83,45,99,45,91,143,59,17,12,115,4,179,20,212,
+  28,179,44,208,75,77,91,77,91,77,99,77,99,3,77,91,149,77,99,77,
+  99,45,91,236,82,203,82,204,82,236,90,13,91,77,91,175,107,240,107,82,
+  124,114,124,114,124,147,124,147,124,147,132,147,124,147,132,179,132,147,132,9,
+  179,132,150,179,124,179,124,179,132,114,124,208,107,13,83,8,50,4,25,162,
+  16,195,16,41,42,110,91,17,116,147,124,179,132,179,124,179,132,179,124,147,
+  132,179,132,179,132,179,124,3,179,132,130,179,124,179,124,5,147,124,133,179,
+  124,179,132,179,132,180,132,179,124,3,211,132,129,179,132,3,211,132,130,212,
+  132,180,132,13,212,132,135,146,132,243,140,52,157,235,98,12,99,235,98,235,
+  98,5,203,90,3,170,90,139,138,82,169,82,137,82,137,82,105,82,105,74,
+  73,74,72,74,73,74,40,74,40,74,6,8,66,131,231,65,232,65,231,57,
+  4,199,57,138,166,49,166,49,134,41,134,41,102,41,134,41,101,41,102,41,
+  101,41,69,33,4,37,33,167,37,25,37,25,135,33,114,124,175,107,143,99,
+  143,107,208,115,208,115,240,115,49,132,82,132,114,140,179,148,146,140,239,123,
+  4,33,5,25,196,16,18,84,252,190,155,182,90,166,248,157,86,149,53,149,
+  54,149,86,157,183,165,58,174,155,182,29,199,126,215,158,223,223,231,158,223,
+  191,231,255,239,255,239,3,255,247,129,255,255,4,255,247,73,255,255,7,255,
+  247,178,223,231,255,239,191,223,223,223,191,223,126,207,126,215,252,190,28,199,
+  29,199,220,190,219,190,155,182,57,174,248,165,183,165,150,157,244,140,20,149,
+  179,140,212,132,82,124,17,116,17,116,17,124,17,116,175,107,143,99,110,99,
+  142,107,78,99,46,99,13,91,110,99,110,99,78,91,110,99,143,99,143,99,
+  175,107,143,99,175,99,175,99,143,99,175,99,175,107,143,99,143,91,175,99,
+  175,99,4,176,99,141,208,107,175,107,208,107,139,74,81,132,138,74,70,33,
+  199,41,135,41,135,41,134,41,33,0,65,8,4,98,8,138,130,16,131,16,
+  130,8,98,8,131,16,4,25,135,41,232,49,200,41,232,41,3,9,50,154,
+  9,58,41,58,42,58,9,58,102,33,4,25,171,82,208,107,110,107,207,115,
+  207,115,208,123,207,115,12,91,170,74,110,99,17,116,50,116,114,124,147,124,
+  147,124,180,124,244,132,212,132,212,132,245,132,3,21,141,151,54,141,86,149,
+  118,157,215,165,53,149,243,148,45,99,138,82,203,82,8,66,231,57,40,66,
+  231,57,36,41,162,16,32,0,4,33,8,66,8,66,231,57,12,99,44,99,
+  236,98,4,12,99,3,12,91,141,45,99,77,99,207,123,20,165,52,173,85,
+  173,42,58,37,25,70,25,38,33,229,16,99,8,98,8,3,99,8,129,67,
+  8,3,67,0,146,164,16,6,25,71,25,71,25,104,17,169,17,10,26,75,
+  34,43,34,201,25,136,17,136,9,201,9,202,9,169,1,104,1,6,1,164,
+  0,5,197,8,202,164,0,164,8,131,8,131,8,99,0,131,0,132,0,164,
+  8,164,8,131,0,164,0,229,0,39,1,39,1,6,1,229,0,164,0,99,
+  0,99,0,131,0,132,0,164,0,164,0,197,8,5,17,103,33,9,58,106,
+  74,139,74,139,74,138,82,171,82,203,82,204,90,13,99,45,99,77,99,78,
+  107,110,107,175,115,175,115,73,66,4,25,69,33,69,33,37,33,37,33,36,
+  33,37,33,37,33,69,33,37,33,37,41,36,33,36,33,37,33,36,33,37,
+  41,4,33,195,24,163,16,172,123,240,196,143,180,176,188,208,188,78,164,143,
+  180,208,188,175,180,175,180,17,197,114,213,114,221,4,114,213,135,146,213,114,
+  221,49,205,241,196,111,180,78,172,208,188,3,241,196,153,208,196,17,197,82,
+  213,50,213,49,213,17,213,17,205,16,205,240,204,208,196,176,196,143,188,110,
+  188,78,180,45,180,12,172,204,163,172,155,139,155,107,155,73,147,8,147,200,
+  138,233,122,241,188,3,240,204,132,17,205,240,204,240,204,16,205,3,240,204,
+  135,239,204,207,204,208,204,208,204,207,204,175,196,175,196,3,142,196,145,110,
+  188,77,188,77,188,45,188,12,180,236,179,203,179,171,171,171,171,138,171,170,
+  171,138,171,138,163,202,171,106,171,105,163,105,163,5,73,163,134,106,163,135,
+  146,35,97,67,97,67,89,67,97,108,4,129,12,99,9,44,99,130,45,99,
+  12,91,6,44,99,130,45,99,45,99,6,44,99,130,45,99,13,99,3,44,
+  99,133,45,99,45,99,12,91,45,99,45,91,3,44,99,139,45,99,45,99,
+  45,91,45,91,44,91,44,99,45,99,44,91,45,99,45,99,45,91,3,45,
+  99,134,44,99,45,99,45,99,77,99,45,91,77,91,3,77,99,132,45,91,
+  77,99,77,99,45,91,10,77,99,129,77,91,4,77,99,146,77,91,78,51,
+  176,11,240,3,50,4,115,4,147,20,16,60,77,91,77,99,77,83,144,35,
+  50,12,147,12,212,20,244,28,82,52,110,83,4,77,99,150,77,91,77,99,
+  77,99,12,91,236,82,203,82,236,82,12,91,13,91,110,99,175,107,17,116,
+  82,124,114,124,146,124,147,124,147,124,147,132,147,132,147,124,147,132,147,132,
+  9,179,132,143,179,124,179,132,114,124,175,107,236,82,232,49,227,24,162,16,
+  227,16,73,50,110,91,49,108,147,132,179,132,179,132,12,179,124,3,147,124,
+  136,147,132,179,124,179,132,179,132,180,132,180,132,179,132,179,132,6,212,132,
+  129,180,132,13,212,132,134,211,132,81,124,243,140,210,148,235,98,12,107,3,
+  203,90,4,170,90,143,170,82,170,82,138,82,138,82,137,82,137,82,105,82,
+  73,74,105,74,73,74,73,74,72,74,40,66,40,66,40,74,5,8,66,140,
+  231,65,231,65,231,57,231,57,199,57,199,57,167,49,199,49,166,49,134,49,
+  134,49,134,41,3,102,41,171,101,41,69,33,37,25,69,33,69,33,37,33,
+  37,25,5,25,103,33,240,107,175,107,175,107,175,115,207,115,110,107,175,107,
+  240,123,81,132,81,132,114,140,81,140,146,148,81,140,37,41,131,8,217,133,
+  127,215,252,190,155,174,25,166,151,149,53,141,21,141,118,157,151,157,216,165,
+  123,182,220,190,126,215,158,223,158,223,223,239,223,239,3,255,247,4,255,255,
+  131,255,247,255,255,255,247,66,255,255,166,255,247,255,247,255,239,255,231,191,
+  223,191,223,61,207,252,198,187,190,155,182,57,174,25,174,184,157,248,165,85,
+  149,86,149,53,141,245,132,115,132,82,124,49,124,240,115,240,115,16,116,240,
+  115,240,115,175,107,175,107,142,99,110,99,143,107,110,99,78,91,142,99,110,
+  99,110,99,78,91,110,99,5,143,99,181,175,99,208,107,176,99,176,99,240,
+  107,176,99,208,107,241,107,240,107,17,108,241,107,241,107,17,108,240,99,49,
+  116,17,108,49,108,49,108,240,107,240,107,82,116,114,116,114,116,82,116,114,
+  116,147,124,144,99,240,115,171,74,211,148,8,58,102,33,167,41,134,33,70,
+  33,134,41,33,0,33,0,65,8,65,8,97,8,98,8,130,16,130,8,130,
+  16,130,8,130,16,130,8,98,8,195,16,135,33,9,50,233,49,3,9,50,
+  149,9,58,41,58,9,50,102,33,66,0,41,66,240,115,111,107,175,115,207,
+  115,240,123,208,115,45,91,171,74,110,99,17,116,50,116,114,124,147,124,180,
+  132,212,132,3,244,132,157,21,141,53,141,21,141,245,140,21,141,53,149,118,
+  157,248,173,53,157,211,140,77,99,170,82,203,82,8,66,199,57,8,66,231,
+  57,69,41,163,24,32,0,4,33,8,66,8,66,199,57,236,98,44,107,12,
+  99,12,99,44,99,3,12,99,143,12,91,45,99,45,99,109,99,207,123,19,
+  165,52,173,85,173,107,66,6,25,38,25,38,25,197,8,99,0,66,8,4,
+  99,8,3,67,0,170,99,8,164,8,196,8,229,8,71,17,201,17,234,17,
+  169,17,104,9,38,1,38,9,136,9,234,9,43,10,235,1,137,1,6,1,
+  164,8,229,24,38,25,38,17,5,17,6,17,230,16,197,8,164,8,99,0,
+  66,0,99,8,99,0,131,0,132,8,131,0,164,8,229,8,38,9,38,1,
+  38,1,229,0,164,0,99,0,131,8,3,164,0,179,164,8,164,0,196,8,
+  5,17,135,33,233,49,42,58,106,66,138,74,139,82,171,82,171,82,204,90,
+  236,90,13,99,45,99,45,99,78,107,110,107,74,66,4,25,37,33,69,33,
+  69,33,36,33,37,33,37,41,36,33,69,41,36,33,37,41,36,33,36,33,
+  69,41,36,33,69,41,4,33,195,24,130,16,11,99,241,196,143,180,175,180,
+  111,172,78,164,111,172,111,172,46,172,13,164,208,180,114,213,3,82,213,171,
+  49,213,49,213,49,205,17,205,175,188,176,196,78,180,46,180,78,180,78,180,
+  45,180,13,180,236,171,204,163,172,163,139,155,74,147,42,147,9,139,200,130,
+  167,130,135,130,70,122,38,114,37,114,229,138,135,171,102,179,229,154,69,114,
+  99,89,99,89,99,97,67,89,66,89,165,81,240,180,240,204,207,204,208,204,
+  208,204,207,196,207,196,4,175,196,138,142,196,142,196,143,196,110,196,110,196,
+  142,196,77,188,45,188,77,188,235,179,3,170,171,150,106,163,73,163,105,163,
+  73,163,204,171,236,179,203,171,236,179,74,171,203,171,236,179,106,171,204,171,
+  171,171,12,180,138,171,8,163,9,155,232,154,9,155,232,154,66,97,3,67,
+  97,166,4,137,44,99,12,99,12,99,44,99,44,99,12,91,44,99,44,99,
+  12,99,5,44,99,129,45,99,3,44,99,3,45,99,4,44,99,138,44,91,
+  45,99,44,99,45,99,45,99,44,99,44,99,45,99,44,99,45,99,3,44,
+  99,129,45,91,3,44,91,154,45,91,45,99,44,99,44,99,45,91,45,99,
+  45,99,44,99,45,99,45,99,45,91,45,91,45,99,45,99,45,91,77,99,
+  45,91,45,99,77,99,77,99,77,91,77,99,45,99,77,99,77,99,77,91,
+  3,77,99,130,45,99,77,91,6,77,99,129,45,91,3,77,99,146,77,91,
+  78,43,176,3,241,3,50,4,147,12,179,28,240,67,77,91,45,91,110,67,
+  209,27,83,4,147,20,212,28,212,36,17,60,78,83,3,77,99,145,77,91,
+  77,99,12,91,236,82,203,82,236,90,13,91,45,91,110,99,208,107,49,116,
+  82,124,114,124,114,124,146,124,147,132,147,124,3,147,132,11,179,132,147,82,
+  124,175,107,236,74,231,49,227,24,130,16,228,16,106,50,143,91,17,116,147,
+  124,179,132,179,132,179,124,179,124,147,124,179,124,147,124,147,124,4,179,124,
+  7,147,124,129,179,124,6,179,132,134,180,132,180,132,211,132,211,132,212,132,
+  211,132,9,212,132,129,212,140,4,212,132,137,179,132,146,132,52,149,113,140,
+  170,90,203,90,202,90,170,90,203,90,3,170,90,131,138,82,170,82,138,82,
+  3,137,82,132,105,82,73,74,73,74,72,74,3,73,74,132,40,74,8,66,
+  40,66,40,74,5,8,66,131,231,57,232,65,231,57,4,199,57,3,166,49,
+  135,134,41,134,41,101,41,102,41,101,41,69,33,69,33,4,37,33,138,228,
+  16,13,83,176,99,175,107,110,107,143,115,142,107,110,107,46,99,208,115,3,
+  49,132,159,16,124,16,132,48,132,12,99,196,8,191,207,126,215,61,199,28,
+  191,90,166,184,149,54,141,21,141,86,149,184,165,25,174,123,182,61,207,190,
+  223,191,231,223,239,223,239,255,247,255,247,255,255,255,247,255,255,255,247,255,
+  255,255,255,255,247,50,255,255,173,255,247,255,247,255,239,255,239,158,215,126,
+  215,29,199,28,199,187,182,155,182,122,190,25,166,249,157,183,157,54,149,87,
+  149,22,141,212,132,147,124,17,116,176,107,240,115,241,107,208,107,175,107,143,
+  99,143,107,111,99,111,99,110,99,78,99,110,91,110,99,110,99,78,99,78,
+  91,78,91,110,91,110,99,111,99,111,99,175,99,208,107,208,99,208,107,5,
+  240,107,172,17,108,240,107,241,107,17,116,17,108,49,116,49,116,82,116,114,
+  124,82,116,49,116,82,116,179,132,82,116,147,124,147,124,114,124,147,124,82,
+  116,147,124,114,116,114,116,82,116,147,124,115,124,180,124,115,124,147,124,147,
+  124,82,124,179,132,179,132,180,124,179,124,212,132,245,132,53,141,17,116,208,
+  107,171,74,20,157,135,41,102,41,134,41,3,102,33,133,4,25,65,8,65,
+  8,65,0,98,8,3,65,8,132,98,8,162,16,130,16,130,8,3,98,8,
+  133,196,16,167,41,41,58,9,50,233,49,3,9,50,134,102,33,98,0,8,
+  58,208,115,110,99,175,115,3,240,123,138,45,91,204,82,142,99,17,108,50,
+  116,114,124,147,124,180,132,212,132,244,132,3,21,141,152,54,149,53,141,21,
+  141,53,141,53,149,183,157,215,165,53,149,244,140,77,99,170,82,171,82,40,
+  66,199,57,231,57,8,66,69,41,195,24,32,0,227,24,232,65,8,66,231,
+  57,12,99,5,44,99,218,12,99,45,99,13,99,45,99,77,99,77,107,174,
+  123,243,164,52,173,85,173,204,74,6,25,38,25,6,25,164,8,99,0,66,
+  8,98,8,99,8,99,8,99,0,67,8,67,0,67,0,99,0,99,8,131,
+  8,196,8,71,17,169,17,234,17,169,9,71,1,6,1,6,1,136,1,12,
+  10,108,10,76,10,201,1,6,1,196,0,6,25,103,33,71,25,39,25,39,
+  25,71,33,38,33,229,16,131,8,34,0,66,0,99,0,131,0,131,8,131,
+  0,164,0,196,0,38,9,6,1,230,0,197,0,164,0,99,0,131,8,164,
+  0,164,0,164,8,164,0,164,0,165,8,197,16,38,25,71,33,168,41,200,
+  49,9,58,9,66,9,66,41,66,41,66,74,66,106,74,106,74,139,74,139,
+  74,171,74,200,49,4,33,3,69,33,175,36,33,69,33,69,33,37,33,69,
+  33,36,33,37,33,37,33,36,33,37,33,37,33,36,33,4,33,195,24,162,
+  16,105,82,176,196,144,180,176,188,143,188,78,180,111,180,143,188,111,180,237,
+  163,236,163,13,172,237,163,204,163,171,155,107,155,74,147,9,147,9,139,168,
+  130,135,122,168,122,168,114,200,122,168,114,6,98,229,97,229,89,196,89,131,
+  89,132,89,99,89,6,67,89,147,101,81,72,106,169,163,39,188,71,220,198,
+  211,44,180,10,107,67,81,68,89,68,89,67,89,68,81,78,164,142,196,110,
+  188,110,196,110,188,142,188,3,110,188,168,109,188,77,188,77,180,77,188,175,
+  196,110,196,142,196,142,196,77,188,138,171,78,188,170,171,236,171,203,179,236,
+  179,13,180,45,180,45,188,73,163,45,180,236,179,109,188,170,179,9,163,171,
+  171,203,179,139,171,78,188,77,188,45,188,12,188,171,179,171,179,73,171,232,
+  154,106,163,99,105,67,97,99,97,67,97,167,4,133,12,99,44,99,44,99,
+  12,99,12,99,8,44,99,135,44,91,45,99,44,99,44,99,45,99,44,99,
+  44,91,6,44,99,3,45,99,136,44,99,44,99,44,91,45,99,12,99,45,
+  99,44,91,44,99,3,45,99,137,44,99,45,99,44,99,77,99,45,99,45,
+  99,44,99,44,91,44,99,9,45,99,131,77,99,45,99,45,99,8,77,99,
+  129,77,91,13,77,99,168,45,91,77,99,77,83,111,35,176,3,17,4,50,
+  4,147,12,179,36,240,67,77,91,45,83,143,51,17,12,115,4,180,20,244,
+  20,179,36,240,75,77,91,77,99,77,99,77,91,236,90,236,82,203,82,236,
+  90,12,91,77,91,142,99,240,107,49,116,82,124,114,124,114,124,146,124,147,
+  124,147,124,147,132,147,132,4,179,132,130,179,124,179,124,5,179,132,139,82,
+  124,143,99,204,82,167,41,195,16,130,16,228,16,106,50,143,91,50,116,147,
+  132,3,179,132,129,179,124,3,179,132,4,179,124,131,179,132,179,124,179,124,
+  3,147,124,134,179,124,147,124,179,124,179,124,179,132,180,132,3,179,132,130,
+  212,132,212,132,3,211,132,130,212,132,211,132,3,212,132,129,180,132,10,212,
+  132,143,178,132,178,132,85,157,207,123,170,82,203,90,170,90,170,82,170,90,
+  170,82,170,82,138,82,137,82,138,82,138,82,3,105,82,139,73,74,105,82,
+  73,74,73,74,72,74,40,74,73,74,40,66,40,74,8,66,40,66,5,8,
+  66,130,231,57,231,65,3,231,57,130,199,57,167,49,3,166,49,136,134,41,
+  134,41,102,41,134,41,102,41,101,33,69,33,69,33,3,37,25,163,228,16,
+  240,107,111,91,78,91,142,107,110,107,142,107,78,107,78,107,175,115,240,123,
+  240,123,49,132,240,123,240,123,175,115,73,74,141,50,255,223,158,223,223,231,
+  126,215,188,182,249,157,54,141,86,141,118,149,184,157,25,174,155,182,94,207,
+  223,231,223,231,223,239,223,239,3,255,247,131,255,255,255,247,255,247,42,255,
+  255,151,255,247,255,255,191,223,93,215,61,207,219,198,122,182,90,174,24,174,
+  119,149,53,141,212,132,146,132,147,132,49,124,82,124,16,116,16,116,240,115,
+  143,107,175,107,77,99,143,107,3,110,99,143,77,99,45,99,110,99,77,91,
+  45,83,78,91,77,91,143,99,110,91,176,107,175,99,143,99,208,107,176,99,
+  208,107,3,240,107,204,208,107,208,107,50,116,241,107,49,116,49,108,50,116,
+  82,116,49,116,114,116,82,116,114,124,147,124,146,124,147,124,147,124,180,124,
+  179,124,147,124,179,132,180,124,147,124,212,132,21,141,179,124,245,132,147,124,
+  147,132,212,132,147,124,147,132,180,132,147,124,148,124,115,124,115,124,147,124,
+  245,132,22,141,87,141,184,149,217,149,249,157,26,158,90,158,123,166,123,166,
+  188,166,220,174,220,174,29,183,155,174,253,174,147,132,50,116,175,107,236,82,
+  20,157,229,24,102,33,134,33,232,49,134,33,69,33,167,41,130,16,98,8,
+  97,8,130,8,37,33,102,33,228,24,163,16,65,0,33,0,65,8,3,98,
+  8,142,97,8,65,8,5,25,233,49,9,50,9,58,9,58,232,49,70,33,
+  66,0,199,49,207,115,110,107,175,115,3,240,123,138,78,99,236,82,143,99,
+  17,116,50,116,114,124,147,132,179,132,212,132,244,132,5,21,141,154,53,141,
+  54,149,53,149,118,157,247,165,53,149,20,149,110,99,170,82,203,82,41,66,
+  231,57,231,57,8,66,69,41,227,24,32,0,227,24,231,57,8,66,199,57,
+  12,99,109,107,77,99,45,107,77,99,4,45,99,146,77,99,77,99,110,107,
+  142,115,243,164,52,173,117,181,12,83,38,25,6,25,6,25,164,8,99,0,
+  66,8,98,8,99,8,99,8,67,8,3,67,0,3,99,0,156,131,0,6,
+  1,169,9,169,1,136,1,39,1,229,0,197,0,104,1,235,1,76,10,43,
+  2,137,1,230,0,196,8,6,25,104,33,71,17,72,17,39,25,71,33,71,
+  33,230,24,164,8,67,0,99,0,99,8,99,0,3,132,0,137,197,0,229,
+  0,230,0,197,0,165,0,132,0,132,0,132,8,164,8,3,132,0,154,132,
+  8,165,8,197,8,197,8,230,16,6,9,39,25,71,33,71,33,103,33,103,
+  33,71,33,71,33,103,33,71,33,103,33,71,25,72,25,6,25,4,33,69,
+  33,69,41,37,33,36,33,37,33,69,41,3,37,33,129,69,33,3,37,33,
+  148,69,41,69,41,36,33,195,24,162,16,101,49,42,131,10,139,233,130,200,
+  130,106,147,236,171,45,180,77,188,45,180,170,163,167,130,196,105,132,97,132,
+  97,3,132,89,142,99,89,67,89,132,89,75,99,237,115,79,148,174,115,206,
+  131,107,131,172,123,173,115,38,82,67,81,99,89,3,67,89,147,68,89,100,
+  89,67,89,201,73,144,58,17,67,76,115,134,187,4,187,202,179,210,140,39,
+  74,67,89,99,89,67,89,35,81,139,139,12,180,236,179,3,12,180,168,44,
+  180,12,180,12,180,236,179,203,179,170,171,105,163,45,180,143,196,77,188,142,
+  188,45,188,41,171,236,171,78,188,174,196,77,188,236,179,78,188,45,188,45,
+  188,106,171,138,163,12,180,171,179,203,179,106,171,41,163,139,171,138,171,106,
+  171,105,171,41,163,73,171,73,171,41,171,41,163,8,163,138,171,228,129,3,
+  67,97,186,4,133,12,99,44,99,12,99,44,99,12,91,3,44,99,130,45,
+  99,12,99,13,44,99,142,45,99,44,99,44,99,45,99,45,99,44,99,44,
+  99,44,91,45,99,44,99,45,99,45,91,45,99,45,91,6,45,99,139,44,
+  99,44,99,45,99,45,99,45,91,44,91,45,99,45,91,45,99,44,99,44,
+  99,3,45,99,129,77,99,3,45,99,134,77,99,45,99,45,91,77,99,77,
+  99,45,99,7,77,99,129,77,91,7,77,99,129,77,91,3,77,99,157,45,
+  91,77,75,143,27,208,3,18,4,82,4,180,12,179,36,208,75,77,91,77,
+  75,175,43,50,4,147,12,180,20,245,20,147,44,175,67,77,91,13,91,236,
+  82,203,82,204,90,12,91,12,91,77,91,175,107,240,115,49,116,3,114,124,
+  130,147,124,147,132,3,147,124,134,179,124,147,132,179,124,179,132,179,124,147,
+  132,4,179,132,145,82,124,143,99,171,74,166,41,163,16,130,16,228,16,139,
+  58,143,91,49,116,147,124,179,132,179,132,179,124,179,132,179,124,179,132,3,
+  179,124,129,180,124,3,179,132,130,147,124,179,124,5,147,124,142,179,132,179,
+  124,180,132,179,132,179,132,180,132,180,132,212,132,211,132,180,132,212,132,179,
+  132,180,132,180,132,3,212,132,129,211,132,8,212,132,135,211,132,212,132,146,
+  132,178,140,85,157,109,107,170,90,3,170,82,134,169,82,138,82,138,82,137,
+  82,105,82,138,82,4,105,74,5,73,74,134,40,74,8,66,40,74,40,66,
+  40,74,40,66,4,8,66,132,232,65,231,65,231,57,231,57,3,199,57,131,
+  166,49,199,49,166,49,3,134,41,172,102,41,102,41,101,41,69,33,69,33,
+  37,33,37,33,37,25,69,25,5,25,42,50,209,99,45,91,109,99,110,107,
+  78,99,45,99,110,107,142,107,208,115,208,123,240,123,240,123,207,123,77,107,
+  167,49,18,76,255,231,223,231,223,231,126,207,29,191,91,166,118,149,53,141,
+  86,149,151,149,25,174,187,182,93,207,126,207,223,231,191,231,255,239,3,255,
+  247,130,255,255,255,247,3,255,255,129,255,247,29,255,255,151,255,247,223,231,
+  126,223,61,223,28,207,123,190,57,174,151,157,86,149,179,132,147,132,82,124,
+  240,115,16,116,207,107,240,115,239,115,16,116,16,116,240,115,240,115,207,115,
+  240,115,5,175,107,135,110,99,143,107,143,107,110,99,142,99,143,107,175,107,
+  3,175,99,150,143,99,176,99,208,107,208,107,240,107,16,108,240,107,49,116,
+  17,108,49,108,49,116,49,116,82,116,82,116,114,124,114,124,82,116,82,116,
+  147,124,115,124,147,124,50,116,4,147,124,227,179,124,115,124,180,124,147,124,
+  244,132,244,132,53,141,53,141,86,141,151,149,184,149,183,149,248,149,248,149,
+  26,158,58,158,58,158,26,158,58,166,57,158,25,158,90,166,155,166,188,174,
+  253,174,29,183,62,183,29,175,61,183,62,183,30,183,29,183,62,183,30,183,
+  62,183,94,191,94,191,62,183,30,183,30,191,221,174,159,191,22,125,139,82,
+  211,132,175,107,12,91,179,148,98,8,134,41,134,41,199,49,134,41,102,33,
+  102,33,163,16,65,8,97,8,65,8,65,8,98,0,37,25,232,49,200,49,
+  37,25,162,8,33,0,65,8,97,8,98,8,98,16,65,8,66,8,102,33,
+  41,58,9,58,232,49,102,33,66,0,166,49,207,115,110,107,207,115,240,123,
+  16,124,16,124,78,99,236,82,143,107,17,116,49,116,114,124,147,132,179,132,
+  212,132,244,140,21,141,21,141,21,133,3,21,141,150,53,141,53,141,118,157,
+  247,173,85,157,243,140,110,99,171,82,203,90,73,74,199,57,199,57,8,66,
+  69,41,227,32,32,0,163,24,231,65,8,66,231,57,235,98,110,107,5,77,
+  107,4,77,99,141,109,107,142,115,243,164,52,173,117,181,78,99,6,17,6,
+  25,229,24,196,8,99,8,66,8,98,8,4,99,8,3,67,0,154,99,8,
+  99,0,131,0,229,0,71,1,104,1,72,1,6,1,198,0,197,0,39,1,
+  137,1,202,1,169,1,40,1,197,0,165,0,229,16,7,17,230,0,230,0,
+  230,8,6,17,7,25,230,16,164,8,3,100,0,136,132,0,133,0,133,0,
+  132,0,165,0,197,0,197,0,166,0,10,133,0,4,165,0,4,165,8,140,
+  166,8,165,8,165,8,166,8,166,8,165,0,165,8,165,0,165,8,228,24,
+  37,33,69,33,3,37,33,231,36,33,37,33,36,33,37,41,37,33,69,41,
+  36,33,37,33,37,33,69,41,37,41,228,24,163,24,227,32,133,73,132,89,
+  132,89,102,114,170,163,204,163,141,139,173,139,235,163,234,163,73,155,102,122,
+  132,89,100,89,100,89,100,81,100,89,100,89,68,89,199,89,145,132,18,149,
+  18,149,178,140,242,156,208,156,241,164,19,157,140,99,67,81,99,89,100,89,
+  100,89,68,89,68,89,67,97,67,89,204,73,116,42,147,34,139,82,165,154,
+  2,146,102,122,20,117,235,66,67,89,67,89,100,97,35,89,168,122,204,179,
+  138,171,170,171,171,171,170,171,170,171,138,171,106,171,41,163,8,155,8,155,
+  232,154,139,171,236,179,203,179,171,179,203,179,8,163,138,171,139,171,138,171,
+  73,171,73,163,73,163,106,163,73,163,41,163,41,163,73,163,41,163,41,163,
+  73,163,41,163,41,163,73,171,73,163,73,171,73,171,3,105,171,135,106,171,
+  106,171,202,179,135,146,35,97,99,105,67,97,194,4,136,44,99,12,99,44,
+  99,44,99,12,91,44,99,44,99,12,99,3,44,99,130,45,99,45,99,5,
+  44,99,137,45,99,44,99,45,99,44,99,44,99,12,91,44,99,44,99,12,
+  99,3,44,99,147,45,99,44,99,45,99,44,99,45,99,44,99,44,99,45,
+  99,45,99,44,99,45,99,44,99,45,91,44,91,44,91,45,99,44,99,45,
+  99,44,91,3,45,99,134,45,91,44,99,45,99,45,99,45,91,77,99,3,
+  45,99,10,77,99,129,77,91,9,77,99,130,45,99,77,99,3,77,91,185,
+  77,99,77,99,77,91,78,67,143,19,209,3,17,4,115,4,212,20,179,36,
+  207,67,45,91,78,67,208,27,82,4,147,12,212,20,245,28,179,44,175,67,
+  236,82,203,82,204,90,12,91,45,91,77,91,175,99,16,116,82,124,114,124,
+  114,124,146,124,147,124,147,124,147,132,147,132,147,124,147,124,147,132,147,124,
+  179,124,179,132,147,132,179,124,179,132,179,132,82,124,143,107,171,74,134,41,
+  162,16,130,16,228,16,139,58,175,91,49,116,147,132,3,179,132,5,179,124,
+  135,147,124,179,124,179,124,179,132,179,124,179,132,179,124,6,147,124,130,179,
+  132,179,132,3,180,132,134,211,132,211,132,180,132,212,132,212,132,180,132,17,
+  212,132,140,178,132,243,140,117,165,235,90,138,82,170,90,138,82,137,82,137,
+  82,138,82,138,82,105,82,3,105,74,130,73,74,105,74,5,73,74,133,40,
+  74,73,74,40,74,8,66,40,66,8,8,66,134,231,57,231,57,232,65,231,
+  57,231,57,198,57,3,166,49,3,134,41,174,101,41,102,41,69,33,69,33,
+  37,33,37,33,69,33,37,25,4,25,107,58,208,99,139,74,110,107,77,99,
+  78,107,45,99,110,107,110,107,208,115,240,123,240,123,208,123,175,115,203,90,
+  70,33,148,108,223,223,223,231,223,231,158,215,126,207,123,174,118,149,20,133,
+  53,141,183,157,184,157,123,182,187,190,253,190,191,223,223,239,223,239,255,239,
+  255,247,255,247,5,255,255,129,255,247,16,255,255,177,255,247,255,247,223,239,
+  126,231,60,215,220,206,25,166,90,182,248,165,119,149,21,141,179,124,49,108,
+  82,116,17,116,143,107,240,115,240,115,110,99,17,124,208,115,240,115,207,107,
+  207,115,175,115,142,107,142,107,110,107,207,115,207,107,110,99,142,99,142,99,
+  110,99,174,107,175,107,142,107,110,99,142,107,175,107,143,107,110,99,143,99,
+  143,99,143,107,207,107,175,107,240,107,207,107,4,208,107,137,175,107,208,107,
+  208,107,241,115,17,108,82,116,146,124,147,124,211,132,3,21,133,143,86,141,
+  118,141,151,141,184,149,216,157,184,157,184,149,184,149,216,157,25,158,25,158,
+  58,166,58,166,123,166,155,174,3,155,166,132,187,166,188,174,220,182,220,182,
+  3,188,174,142,155,166,156,174,188,174,220,174,188,174,220,182,220,174,220,174,
+  253,174,253,182,253,182,61,183,30,183,30,183,3,29,183,135,30,191,62,191,
+  29,183,253,182,253,182,62,191,94,191,4,62,191,157,62,183,136,49,228,24,
+  179,132,110,99,110,99,211,148,65,8,102,41,135,41,135,41,134,41,102,33,
+  69,33,4,25,33,0,65,8,98,8,97,8,65,8,33,0,66,0,37,25,
+  232,49,199,49,167,41,195,16,33,0,65,8,3,98,8,201,33,8,196,24,
+  9,58,9,50,70,33,98,0,101,41,175,115,110,107,175,107,208,123,16,124,
+  16,124,110,107,237,82,111,99,241,107,49,116,114,124,147,132,179,132,212,132,
+  244,140,20,141,244,140,244,132,244,140,20,141,21,141,53,141,53,149,118,157,
+  24,166,117,157,20,149,175,107,171,82,203,90,73,74,231,57,199,57,8,66,
+  69,41,4,33,32,0,162,16,231,57,8,66,231,57,235,98,142,115,109,107,
+  77,107,109,107,78,107,77,107,77,107,77,99,77,107,77,99,109,107,142,115,
+  211,164,52,173,117,181,175,107,229,16,5,25,229,24,164,16,99,8,66,8,
+  98,8,3,99,8,157,67,0,67,0,66,0,99,0,99,8,131,8,132,8,
+  197,8,230,0,7,1,230,0,198,0,166,0,166,0,197,0,6,1,7,1,
+  7,1,198,0,165,0,133,0,166,8,198,0,166,0,133,0,166,0,166,8,
+  165,0,166,0,4,133,0,129,134,0,3,133,0,4,166,0,4,134,0,130,
+  133,0,134,0,6,133,0,130,165,0,165,0,3,133,0,131,133,8,165,8,
+  166,0,6,133,0,131,132,8,228,24,36,33,4,37,33,155,36,33,69,33,
+  37,33,69,33,37,33,36,33,36,41,37,41,69,33,69,41,69,41,228,32,
+  195,24,227,24,101,73,100,97,197,105,8,147,73,155,172,98,209,58,47,67,
+  204,107,169,107,40,99,231,130,5,114,6,100,89,165,198,89,242,156,116,165,
+  115,165,83,157,83,149,19,149,18,141,18,125,47,108,131,81,67,89,100,89,
+  99,97,100,89,68,97,68,97,68,89,138,73,18,42,50,42,13,58,41,90,
+  133,81,41,82,180,52,172,50,67,89,100,97,100,89,68,89,38,106,171,171,
+  105,171,105,163,105,163,73,171,3,41,163,149,40,163,9,163,41,163,41,163,
+  73,171,41,163,73,163,41,171,73,163,73,163,73,171,73,171,73,163,73,171,
+  73,171,105,171,106,171,105,171,106,179,138,171,137,171,3,138,179,144,170,179,
+  170,179,171,179,202,179,203,187,203,187,235,187,236,187,235,187,11,188,236,187,
+  76,196,73,187,35,105,67,97,67,97,196,4,129,12,91,3,44,99,130,12,
+  99,45,99,4,44,99,131,12,91,44,99,12,99,9,44,99,3,45,99,139,
+  44,99,45,99,45,99,44,99,45,91,45,99,45,99,44,91,45,99,45,99,
+  44,99,4,45,99,141,45,91,45,99,45,99,45,91,45,99,44,99,45,99,
+  44,99,44,99,77,99,45,99,45,99,45,91,3,45,99,135,77,99,45,91,
+  77,91,77,91,77,99,45,99,45,91,4,77,99,132,45,99,45,99,77,99,
+  45,91,3,77,99,132,77,91,77,99,45,91,77,91,5,77,99,6,77,91,
+  157,77,99,77,91,110,59,143,19,209,3,18,4,115,4,212,20,179,44,208,
+  75,77,83,110,59,208,27,82,4,179,20,212,20,21,29,147,44,77,67,236,
+  82,236,90,45,91,110,99,175,107,17,116,82,124,114,124,114,124,146,124,3,
+  147,124,133,147,132,179,132,147,132,147,132,179,132,3,179,124,141,179,132,179,
+  132,82,124,143,99,171,74,102,33,162,16,98,8,4,17,171,66,175,99,50,
+  116,147,132,4,179,132,6,179,124,132,179,132,179,132,147,124,179,124,7,147,
+  124,129,179,124,3,179,132,134,180,132,179,132,179,132,211,132,211,132,180,132,
+  10,212,132,129,211,132,8,212,132,133,114,132,211,140,84,157,138,82,138,82,
+  3,137,82,135,105,82,105,74,105,82,105,74,73,74,73,74,105,74,5,73,
+  74,135,40,74,73,74,40,74,40,66,41,74,40,66,40,74,8,8,66,132,
+  231,65,8,66,231,57,231,57,3,199,57,131,166,49,167,49,166,49,3,134,
+  41,129,101,41,4,69,33,135,37,33,69,25,228,24,204,66,208,99,45,99,
+  45,99,3,77,99,159,78,99,143,107,175,115,240,123,175,115,207,115,110,107,
+  73,66,5,25,180,116,223,223,191,231,223,231,190,223,94,207,155,174,184,149,
+  244,132,147,132,244,140,86,149,57,174,26,174,155,182,252,190,62,199,94,207,
+  159,223,191,223,255,231,255,239,3,255,247,151,255,255,255,247,255,239,255,255,
+  255,247,255,239,255,239,158,223,93,215,61,207,252,190,188,198,90,182,25,174,
+  151,157,151,157,245,140,147,132,114,132,49,116,49,116,82,124,49,116,3,49,
+  124,195,240,115,175,107,207,107,175,107,207,115,208,115,175,107,143,107,142,107,
+  175,107,78,99,110,99,78,99,110,107,110,99,110,107,142,107,109,99,77,99,
+  109,99,110,99,77,99,78,99,110,99,78,99,77,99,110,99,143,107,208,115,
+  17,116,49,116,50,116,115,124,147,124,212,132,244,132,53,133,53,141,53,141,
+  21,141,86,149,119,149,183,157,249,157,25,166,90,166,123,166,188,174,220,182,
+  220,174,252,182,252,182,253,182,252,182,252,182,252,174,220,182,253,182,221,182,
+  220,182,252,182,220,182,220,182,220,174,220,174,187,174,188,174,3,155,174,3,
+  123,166,150,155,166,123,166,155,166,123,166,155,174,155,174,155,166,155,166,156,
+  174,123,174,156,174,188,174,156,174,156,174,188,174,188,174,156,166,220,174,188,
+  174,253,174,221,174,188,174,4,253,182,149,220,182,29,183,61,191,29,191,29,
+  191,29,183,29,183,29,191,62,191,29,191,62,183,180,116,34,8,196,24,16,
+  116,175,107,175,107,81,132,65,8,134,41,134,41,3,102,33,170,37,25,37,
+  25,65,0,98,8,65,0,97,8,98,8,65,8,65,8,33,0,65,0,228,
+  16,167,41,200,41,135,41,163,16,33,0,65,8,98,8,98,8,65,8,98,
+  8,135,41,135,41,131,8,101,41,175,115,110,107,175,115,240,123,16,124,16,
+  124,142,107,45,91,142,99,240,107,49,116,114,124,179,132,179,132,212,132,212,
+  140,4,244,140,152,244,132,244,140,53,141,53,141,118,157,248,173,52,149,211,
+  140,175,107,171,82,235,90,105,74,232,57,167,49,40,66,101,41,228,32,32,
+  0,162,16,231,57,8,66,231,57,235,90,142,115,3,109,107,147,110,107,110,
+  107,78,107,77,99,78,107,78,107,110,107,142,115,210,156,52,173,85,173,240,
+  115,197,8,229,24,229,24,164,16,99,8,66,0,98,8,4,99,8,135,66,
+  0,99,8,131,8,132,8,164,8,132,8,164,8,3,165,0,4,166,0,139,
+  198,0,166,0,166,0,165,8,165,0,165,0,133,0,134,0,166,0,166,0,
+  133,0,3,134,0,132,166,0,134,0,133,0,133,0,3,134,0,6,166,0,
+  131,134,0,166,0,134,8,7,133,0,135,133,8,133,0,132,0,133,0,101,
+  0,100,0,132,0,7,100,0,133,68,0,99,0,195,24,36,33,36,33,4,
+  37,33,3,36,33,129,69,33,4,37,41,147,37,33,37,41,4,33,195,24,
+  227,24,69,65,101,89,229,105,167,130,134,122,170,98,144,107,174,99,78,116,
+  44,92,231,74,68,114,5,114,132,97,5,100,89,143,132,81,177,148,147,173,
+  114,173,82,173,82,165,49,157,17,157,17,149,112,108,197,73,99,97,100,97,
+  68,89,100,97,3,68,89,154,102,81,174,57,242,41,49,42,206,41,138,57,
+  143,58,51,35,169,49,67,97,100,97,68,97,67,97,165,97,171,171,105,171,
+  105,171,73,171,73,171,106,171,105,171,105,171,138,171,106,171,138,171,138,171,
+  3,138,179,161,170,179,138,179,170,179,171,179,202,179,203,179,203,187,235,187,
+  203,187,235,187,11,196,235,195,235,195,11,196,12,196,236,195,12,196,236,195,
+  235,195,204,187,203,179,171,179,138,171,105,163,73,155,9,147,200,130,135,122,
+  135,114,99,81,129,32,130,32,130,24,147,4,3,44,99,129,12,91,24,44,
+  99,136,45,99,45,99,44,99,45,99,44,91,45,99,44,91,45,99,3,44,
+  99,151,45,99,45,99,44,99,45,99,44,99,45,99,45,91,45,99,44,99,
+  44,99,45,99,45,99,77,99,45,91,45,91,45,99,45,99,77,99,77,99,
+  45,91,45,99,77,91,45,99,10,77,99,129,77,91,7,77,99,131,77,91,
+  77,99,77,99,6,77,91,180,77,99,77,99,77,91,77,91,78,59,144,19,
+  241,3,50,4,115,4,212,20,211,44,240,67,78,83,111,59,209,19,114,4,
+  179,20,212,20,245,28,146,44,142,75,45,91,78,99,208,107,17,116,82,124,
+  114,124,114,124,147,124,146,124,147,132,147,124,147,124,147,132,147,132,179,132,
+  147,124,179,132,179,124,179,124,179,132,82,124,143,99,171,74,102,33,162,16,
+  97,8,4,17,171,58,175,91,49,116,147,132,5,179,132,3,179,124,135,147,
+  124,179,124,179,132,179,124,147,124,147,124,179,124,7,147,124,129,180,132,4,
+  179,132,133,180,132,211,132,212,132,212,132,211,132,3,180,132,130,212,132,180,
+  132,9,212,132,140,211,132,212,132,212,132,179,132,179,132,114,124,211,140,243,
+  156,105,82,138,82,137,82,105,82,3,105,74,6,73,74,131,41,74,73,74,
+  73,74,5,40,74,134,40,66,8,66,8,66,40,74,8,66,40,66,3,8,
+  66,131,232,65,231,57,231,65,4,231,57,3,199,57,134,166,49,166,49,134,
+  49,134,41,134,41,102,41,4,69,33,140,37,33,37,33,228,24,237,74,17,
+  116,13,91,13,99,46,99,45,99,13,91,45,99,78,99,3,175,115,212,110,
+  107,45,99,232,57,38,33,213,124,255,223,255,239,255,239,223,223,191,215,220,
+  182,244,132,175,107,110,99,143,107,208,107,17,116,82,124,212,140,21,141,86,
+  149,86,149,216,157,151,157,249,165,58,166,25,166,25,158,216,157,184,157,119,
+  149,21,141,21,141,212,132,244,132,147,124,114,124,82,124,114,124,17,116,179,
+  140,17,124,49,132,81,132,81,132,49,132,81,132,81,132,16,124,81,124,16,
+  124,16,124,240,123,16,124,207,115,175,115,142,107,110,107,142,107,176,115,208,
+  107,176,107,175,107,240,115,17,116,49,116,82,124,179,124,50,116,82,124,82,
+  124,114,124,147,124,179,132,22,141,245,132,151,149,184,149,249,157,90,166,187,
+  174,253,174,29,175,29,183,3,62,183,130,61,183,62,183,4,29,183,138,30,
+  183,62,183,61,183,29,183,29,183,253,182,253,182,220,174,188,174,220,174,6,
+  188,174,132,188,182,156,174,155,174,187,174,3,155,174,130,155,166,156,174,3,
+  155,174,134,123,166,123,174,155,174,123,174,91,166,58,166,3,123,166,129,155,
+  174,3,123,174,3,155,166,136,155,174,155,174,155,166,156,174,155,174,123,166,
+  188,174,156,166,3,188,174,132,156,174,155,174,188,174,220,174,3,220,182,3,
+  253,182,145,29,183,253,182,220,182,188,174,188,174,220,174,220,166,71,41,98,
+  8,228,24,178,132,110,91,73,66,135,49,130,16,167,41,135,41,3,102,33,
+  147,70,33,69,33,135,41,200,49,5,25,98,8,33,0,65,8,97,8,65,
+  8,65,8,33,0,65,0,102,33,200,41,232,49,134,41,98,8,33,0,3,
+  97,8,144,65,8,228,24,163,16,4,25,45,99,110,107,175,115,207,115,240,
+  123,16,132,175,115,45,91,175,107,16,116,49,116,146,124,3,179,132,129,212,
+  140,6,244,140,151,21,141,53,149,118,157,248,173,117,157,243,140,175,107,171,
+  82,203,90,106,74,231,57,134,49,40,66,102,49,4,33,32,0,130,16,231,
+  57,40,66,232,65,203,90,142,115,109,107,4,110,107,129,110,99,4,110,107,
+  147,142,115,178,156,52,173,85,173,81,132,197,8,5,25,197,24,131,8,98,
+  8,66,8,66,8,99,8,99,8,98,8,99,8,99,8,131,8,164,8,3,
+  165,8,131,164,0,197,0,197,8,11,198,8,137,198,0,166,8,166,8,198,
+  8,198,8,198,0,198,8,199,8,198,8,8,166,8,131,165,8,166,8,166,
+  0,3,165,8,137,133,8,165,8,165,8,133,8,132,8,132,8,100,0,132,
+  0,132,0,4,100,0,129,99,0,10,67,0,138,163,16,36,33,36,33,37,
+  33,36,33,37,33,37,33,69,33,37,33,37,33,3,69,33,150,37,41,37,
+  41,37,33,37,41,4,33,195,24,195,24,37,57,101,89,197,105,5,114,36,
+  114,39,171,74,212,12,180,143,124,47,92,199,90,227,113,228,105,132,97,132,
+  89,4,100,89,140,68,81,14,132,114,181,144,221,80,221,46,213,13,221,12,
+  221,45,221,144,132,7,74,67,89,3,100,97,149,68,97,68,97,100,97,68,
+  97,103,81,140,57,176,41,208,41,241,41,18,42,172,49,69,81,99,97,100,
+  105,67,97,99,97,99,89,171,163,171,187,171,187,203,179,3,203,187,169,235,
+  187,203,187,236,187,235,187,235,195,203,195,235,195,203,187,204,187,203,187,171,
+  187,171,179,139,179,107,171,74,163,42,163,9,147,200,138,200,130,136,114,103,
+  114,70,98,6,90,197,81,132,65,100,57,67,49,3,41,226,32,162,24,162,
+  16,130,16,129,16,97,8,98,8,130,8,129,16,130,16,163,24,195,24,195,
+  24,174,4,131,44,99,44,99,12,91,9,44,99,129,12,99,3,44,99,144,
+  12,99,45,99,44,99,44,99,45,99,44,99,44,91,44,99,45,99,44,99,
+  45,99,44,99,45,99,44,99,45,99,45,99,3,44,99,129,45,99,4,44,
+  99,8,45,99,129,44,99,4,45,99,135,77,99,45,99,45,99,45,91,45,
+  99,77,99,77,91,3,77,99,130,45,91,77,91,4,77,99,129,77,91,4,
+  77,99,143,77,91,77,99,77,91,77,91,77,99,77,99,77,91,77,99,77,
+  91,77,99,77,99,77,91,77,91,77,99,77,99,3,77,91,175,77,99,77,
+  99,77,91,78,59,143,19,241,3,18,4,115,4,212,12,244,36,81,52,110,
+  75,78,51,208,11,114,12,179,20,212,20,21,29,179,44,208,75,208,107,49,
+  116,82,124,114,124,114,124,146,124,146,124,147,132,147,132,179,132,147,132,147,
+  132,179,132,179,132,147,132,179,132,179,132,82,124,143,99,171,74,102,33,130,
+  16,97,8,4,17,171,66,176,99,50,116,6,179,132,130,179,124,179,132,3,
+  147,124,131,179,132,179,124,179,132,3,179,124,5,147,124,146,179,124,179,132,
+  179,124,179,132,179,132,179,124,179,124,179,132,180,132,211,132,212,132,180,132,
+  212,132,180,132,211,132,212,132,212,132,211,132,13,212,132,134,211,140,20,149,
+  146,140,105,82,137,82,105,82,3,105,74,4,73,74,129,41,74,3,40,74,
+  137,40,66,40,66,72,74,40,74,40,66,40,74,40,74,40,66,40,66,7,
+  8,66,130,7,66,7,66,5,231,57,3,199,57,129,199,49,3,166,49,172,
+  134,41,102,41,102,33,101,33,69,33,69,33,37,33,37,33,228,16,14,75,
+  176,99,236,90,236,90,13,91,13,99,236,90,45,99,45,99,110,107,143,107,
+  143,115,13,99,171,82,134,41,168,49,114,116,220,190,219,190,123,174,58,174,
+  118,149,16,116,12,91,236,90,12,91,12,91,45,91,77,99,110,99,143,107,
+  143,107,175,107,49,124,81,124,3,49,124,173,147,132,179,140,114,132,147,140,
+  147,140,82,124,49,132,82,132,17,124,208,115,17,116,240,115,17,116,208,107,
+  147,132,17,116,212,132,244,140,21,141,212,132,146,132,82,124,179,132,179,132,
+  147,132,20,141,21,141,86,141,118,149,183,149,25,158,220,182,29,191,61,191,
+  94,191,94,183,94,191,94,191,126,191,94,191,94,191,61,183,253,182,29,183,
+  30,191,4,29,183,4,253,182,129,220,174,3,188,174,129,221,174,7,188,174,
+  134,155,166,188,174,188,174,188,166,188,174,188,174,3,220,174,130,188,174,188,
+  182,5,188,174,134,156,174,188,174,156,174,155,174,155,174,188,174,3,155,166,
+  4,155,174,129,155,166,4,123,166,130,123,174,123,174,4,155,174,129,123,174,
+  3,155,174,129,123,174,4,155,174,210,123,166,155,166,123,166,123,166,155,166,
+  156,166,188,174,156,174,155,174,155,174,155,166,155,166,156,174,155,166,155,174,
+  123,174,155,166,188,174,155,174,188,174,123,166,155,174,123,166,220,166,17,108,
+  66,8,130,8,228,24,17,108,240,107,233,49,135,49,228,24,199,49,167,41,
+  135,41,135,41,167,41,135,41,102,33,167,41,135,41,167,41,199,41,228,24,
+  33,0,65,8,97,8,97,8,65,8,65,8,32,0,228,24,232,49,232,49,
+  233,49,5,25,33,0,65,8,97,8,65,8,65,8,130,8,163,16,171,82,
+  110,107,143,107,207,115,240,123,17,132,207,115,77,99,142,107,17,116,49,116,
+  114,124,147,124,147,124,179,132,212,140,212,140,244,140,4,212,132,150,21,141,
+  21,141,86,157,248,173,118,157,20,149,239,115,171,82,203,90,138,74,231,57,
+  134,49,40,66,101,41,36,33,33,8,130,16,199,57,40,66,232,65,171,90,
+  142,115,4,110,107,129,142,107,5,110,107,140,142,107,113,148,20,165,85,181,
+  146,148,196,8,229,24,196,16,164,8,66,0,66,8,98,8,3,99,8,130,
+  131,8,164,8,3,197,16,145,198,16,197,16,198,8,230,8,230,16,230,16,
+  230,8,230,16,230,8,230,8,198,8,6,17,230,16,7,17,230,16,230,16,
+  230,8,4,230,16,136,230,8,230,16,230,16,230,8,198,8,197,16,198,8,
+  165,8,4,197,16,135,165,8,197,8,165,8,165,8,164,16,164,8,164,8,
+  3,132,8,132,131,0,132,0,100,0,100,0,3,99,0,13,67,0,135,163,
+  16,4,33,36,33,37,33,37,41,36,33,36,33,3,37,33,133,69,41,69,
+  33,37,41,69,33,37,41,3,36,33,164,195,24,195,24,36,49,133,89,133,
+  97,229,105,36,114,37,179,231,203,44,164,147,92,18,52,9,123,68,138,228,
+  113,132,97,100,97,100,97,100,89,100,97,100,97,36,89,108,115,49,165,45,
+  221,13,205,175,164,143,148,139,172,170,220,46,148,72,74,67,89,100,97,100,
+  97,68,97,4,100,97,164,68,97,70,81,73,73,106,65,106,57,72,65,37,
+  81,67,97,68,97,67,97,68,89,36,89,35,81,200,130,172,179,106,179,106,
+  171,74,171,73,163,9,155,233,146,231,130,168,122,135,122,71,106,6,98,229,
+  89,196,73,132,65,100,57,68,49,3,41,227,32,194,32,194,24,162,16,7,
+  130,16,146,130,24,163,16,163,24,195,24,163,24,195,24,227,24,195,24,227,
+  24,227,32,228,32,4,33,228,32,228,32,227,32,4,33,4,33,228,32,160,
+  4,131,12,91,44,99,12,91,4,44,99,132,12,99,12,99,44,99,45,99,
+  7,44,99,133,45,99,44,99,45,99,44,99,44,91,3,44,99,136,45,99,
+  45,99,44,99,44,99,45,99,44,99,45,99,44,99,3,45,99,129,44,91,
+  3,45,99,131,44,99,45,99,44,99,5,45,99,133,44,91,45,99,77,99,
+  45,99,44,99,3,45,99,3,77,99,133,45,99,77,99,77,91,77,99,45,
+  91,5,77,99,130,77,91,77,91,6,77,99,130,77,91,77,99,3,77,91,
+  129,77,99,4,77,91,5,77,99,153,77,91,77,99,77,91,77,91,78,67,
+  143,19,209,3,18,4,114,12,212,12,245,28,146,52,175,59,45,43,177,19,
+  82,12,180,12,212,12,21,21,212,44,146,84,114,116,114,124,114,124,146,124,
+  5,147,124,144,179,124,147,124,147,132,147,132,179,132,82,124,142,99,171,74,
+  102,33,130,16,98,16,4,25,204,66,175,99,82,116,147,132,6,179,132,139,
+  179,124,179,132,147,124,179,124,179,124,179,132,179,132,179,124,147,124,147,124,
+  179,124,5,147,124,131,179,124,179,132,179,124,3,179,132,137,179,124,211,132,
+  179,132,179,132,211,132,180,132,212,132,212,132,179,132,3,211,132,132,212,132,
+  180,132,212,132,180,132,4,212,132,140,179,132,212,132,211,132,212,132,179,132,
+  211,140,53,149,48,132,73,74,138,82,105,82,105,82,5,73,74,133,41,74,
+  73,74,73,74,40,74,73,74,4,40,74,134,40,66,40,74,40,74,41,74,
+  40,66,40,66,5,8,66,134,231,65,231,65,8,66,7,58,7,66,232,65,
+  3,231,57,138,199,57,199,57,167,49,199,49,166,49,134,49,134,41,101,41,
+  102,33,102,41,3,69,33,134,37,33,5,25,78,83,176,107,237,90,204,82,
+  4,236,90,174,13,99,78,99,78,107,77,107,45,99,73,74,5,33,139,74,
+  114,124,184,165,183,165,151,165,244,148,142,107,109,107,236,90,203,82,236,90,
+  12,91,45,99,77,99,110,99,110,107,175,115,175,107,240,115,240,123,81,124,
+  114,132,82,124,212,140,244,140,53,141,86,149,21,141,54,149,151,149,216,157,
+  155,174,253,182,94,199,158,199,191,215,223,215,223,215,255,215,3,223,215,137,
+  191,199,62,191,126,199,159,199,127,199,127,199,126,199,94,199,94,191,4,94,
+  199,3,62,191,137,29,191,29,191,61,191,29,191,29,191,221,182,253,182,29,
+  183,29,191,4,253,182,154,29,191,253,182,29,191,253,182,253,182,221,182,253,
+  182,221,174,253,182,253,182,221,182,220,174,220,174,188,174,188,174,220,174,220,
+  182,220,174,220,174,252,174,220,174,220,182,221,182,253,182,221,182,253,182,4,
+  220,174,134,188,174,188,182,188,174,188,174,156,174,155,174,3,156,174,130,155,
+  166,156,166,4,155,166,134,123,166,155,174,155,166,155,174,155,174,123,174,11,
+  155,174,131,123,166,123,174,155,174,3,155,166,5,123,166,129,91,166,4,123,
+  166,131,155,174,123,166,155,174,8,123,166,165,58,158,38,41,98,8,130,8,
+  228,24,49,116,17,108,200,49,41,58,102,41,167,49,199,41,167,41,199,49,
+  135,41,135,33,134,33,135,33,135,41,167,41,135,41,200,41,70,33,98,8,
+  33,0,65,8,65,8,98,8,97,8,33,0,98,8,134,41,9,58,9,50,
+  168,49,66,0,33,0,3,97,8,145,98,8,138,82,142,107,142,107,175,115,
+  240,123,16,132,208,115,110,99,143,107,240,115,49,116,82,124,82,124,114,124,
+  146,132,179,132,3,212,132,158,180,132,179,132,179,132,212,140,244,140,85,149,
+  248,173,150,157,52,149,240,115,170,82,235,90,170,82,231,57,134,41,8,58,
+  134,49,36,41,33,8,98,16,199,57,40,66,8,66,170,82,142,115,110,107,
+  142,107,110,107,110,107,142,107,4,110,107,141,142,107,110,107,81,148,52,173,
+  84,173,211,156,196,8,229,24,197,16,164,8,99,0,99,8,131,16,3,164,
+  16,140,196,16,229,16,6,25,6,25,38,25,6,25,6,25,6,17,38,17,
+  6,17,7,25,6,25,4,6,17,131,6,25,38,25,39,25,3,6,25,130,
+  6,17,6,17,3,6,25,136,229,24,229,24,5,17,229,16,197,16,196,16,
+  197,16,165,16,3,197,16,130,165,16,197,16,3,165,16,129,164,16,4,132,
+  8,3,132,0,4,100,0,130,99,0,99,0,11,67,0,130,131,8,4,33,
+  3,36,33,159,37,41,37,33,36,33,69,33,36,33,37,33,69,33,69,41,
+  37,41,69,41,69,41,37,41,36,33,195,24,195,24,36,41,133,89,133,97,
+  197,105,37,130,5,171,198,203,74,188,110,148,237,147,71,179,101,162,196,105,
+  100,97,100,97,101,97,3,100,97,150,68,97,104,106,203,131,9,204,202,187,
+  43,107,202,90,199,122,70,179,167,138,132,81,68,89,67,97,67,89,35,89,
+  35,81,35,81,3,81,3,73,2,73,2,65,227,64,3,195,48,130,194,56,
+  194,48,3,162,40,144,162,32,130,32,227,32,68,49,35,49,3,33,195,32,
+  194,24,162,24,162,16,162,16,130,16,130,16,162,16,130,16,162,16,3,163,
+  24,3,195,24,135,227,32,228,32,227,32,228,32,228,32,4,33,228,32,8,
+  4,33,129,228,32,5,4,33,135,228,32,228,32,4,33,227,32,227,32,4,
+  33,228,32,100,4,130,44,99,44,99,3,12,99,130,44,99,12,99,7,44,
+  99,129,12,91,6,44,99,133,45,99,12,91,44,99,44,99,12,91,8,44,
+  99,140,45,99,45,99,44,99,44,99,44,91,45,99,45,91,45,99,44,99,
+  44,99,45,99,44,99,9,45,99,135,45,91,77,99,45,99,77,99,45,99,
+  77,99,45,99,8,77,99,135,45,91,77,99,77,91,77,91,77,99,77,99,
+  77,91,5,77,99,3,77,91,129,77,99,3,77,91,134,77,99,77,91,77,
+  91,77,99,77,91,77,91,4,77,99,149,78,75,111,35,208,3,18,4,83,
+  4,180,12,245,20,212,36,16,52,143,43,176,19,82,12,147,12,212,20,244,
+  28,245,44,179,84,146,116,147,132,147,132,147,124,3,147,132,143,147,124,147,
+  132,179,132,179,132,82,124,175,107,171,74,134,33,130,16,98,8,4,17,171,
+  66,176,99,50,116,147,124,5,179,132,7,179,124,129,179,132,10,147,124,129,
+  179,124,5,179,132,6,180,132,130,179,132,180,132,3,211,132,130,212,132,180,
+  132,6,212,132,138,180,132,211,132,211,132,212,132,212,132,179,132,114,132,85,
+  157,110,115,73,74,3,105,74,142,73,74,73,74,40,66,73,74,73,74,40,
+  74,40,66,40,66,73,74,40,74,40,74,41,74,40,66,40,74,4,40,66,
+  154,40,74,8,66,40,66,8,66,232,65,232,65,8,66,8,66,232,65,231,
+  57,231,65,231,65,231,57,231,65,231,57,199,57,231,57,199,57,199,57,167,
+  49,166,49,166,49,134,41,102,41,102,41,101,33,3,69,33,185,37,25,9,
+  42,176,99,110,99,171,82,172,82,204,90,204,82,172,82,204,82,45,99,45,
+  99,78,107,77,107,236,90,8,66,70,33,204,82,208,115,179,140,146,140,49,
+  124,240,123,174,107,77,99,13,99,236,90,12,91,12,91,203,82,138,74,171,
+  82,13,91,45,99,77,99,110,99,208,107,86,141,217,157,90,166,123,166,221,
+  174,30,183,62,183,95,191,94,191,127,199,94,191,159,207,127,199,158,207,159,
+  207,159,215,159,207,126,207,159,215,158,207,4,126,207,131,158,207,126,207,126,
+  207,7,94,199,131,62,199,94,199,62,199,4,94,199,129,62,191,5,94,199,
+  132,62,199,62,199,94,199,126,207,3,94,199,137,61,191,62,191,61,191,62,
+  191,62,191,29,183,62,191,62,191,29,183,3,253,182,136,29,183,29,191,29,
+  183,29,183,253,182,253,182,29,183,29,183,6,253,182,132,221,182,221,182,220,
+  182,220,174,3,188,174,138,156,174,188,174,188,174,156,174,155,174,156,174,188,
+  174,156,174,155,174,155,174,3,188,174,137,155,174,156,174,155,174,155,174,156,
+  174,155,174,156,174,188,174,188,182,3,188,174,142,155,174,123,166,123,166,91,
+  166,123,166,155,166,156,174,124,166,155,166,123,166,155,174,123,174,155,174,155,
+  166,4,155,174,3,123,166,4,155,174,148,123,174,91,166,155,166,241,107,66,
+  8,130,8,98,8,228,24,81,124,207,107,232,49,232,57,41,58,199,49,200,
+  49,167,41,167,41,135,41,167,41,135,33,4,135,41,134,167,49,167,41,199,
+  49,4,25,65,8,33,8,3,65,8,151,65,0,0,0,196,16,200,49,41,
+  58,42,58,196,16,0,0,65,8,98,8,65,8,65,8,236,90,207,115,207,
+  115,240,123,16,132,240,123,110,99,143,107,240,115,49,124,82,124,3,114,124,
+  130,147,132,147,132,3,179,132,155,212,132,211,132,179,132,212,132,53,149,248,
+  173,118,157,244,148,16,124,171,82,203,82,170,82,231,57,134,49,232,57,134,
+  49,37,41,65,8,97,8,199,57,40,66,232,65,138,82,174,115,142,107,142,
+  107,110,107,3,142,107,3,110,107,145,142,107,110,107,81,148,52,173,52,173,
+  20,165,228,8,229,16,197,16,164,8,131,8,131,8,196,16,229,16,229,24,
+  229,16,5,17,4,38,25,142,38,33,38,25,38,25,6,25,38,25,6,25,
+  6,25,38,25,6,25,38,25,38,25,6,25,38,25,38,25,4,6,25,133,
+  5,25,6,25,6,25,229,24,229,24,3,229,16,10,197,16,133,165,16,165,
+  8,165,8,164,8,164,8,3,132,8,134,132,0,132,0,100,0,100,0,132,
+  0,100,0,3,99,0,3,67,0,129,68,0,6,67,0,161,131,8,4,33,
+  36,33,37,33,36,33,36,33,37,33,37,33,37,41,69,41,69,33,37,33,
+  69,41,37,41,69,41,69,41,36,33,36,33,227,24,195,24,4,33,101,81,
+  132,97,132,105,229,113,165,154,199,211,136,228,201,244,38,228,5,187,228,129,
+  100,97,4,68,89,147,36,89,35,81,35,81,35,73,99,73,195,97,100,89,
+  227,56,226,56,226,56,2,65,194,56,162,40,194,40,162,40,162,40,162,32,
+  130,32,130,32,3,130,24,130,162,16,130,24,3,130,16,129,162,24,3,163,
+  16,129,163,24,6,195,24,131,227,24,228,24,228,24,3,228,32,9,4,33,
+  129,228,32,6,4,33,129,228,32,3,4,33,129,228,32,6,4,33,129,228,
+  32,9,4,33,1,228,32,54,4,131,12,99,44,99,12,91,7,44,99,135,
+  12,99,12,91,44,99,44,99,45,99,44,99,45,99,4,44,99,3,45,99,
+  130,44,99,45,99,3,44,99,136,45,99,45,99,44,91,44,91,45,99,44,
+  99,45,99,44,99,8,45,99,129,44,91,4,45,99,129,77,91,8,45,99,
+  133,77,99,77,91,45,91,77,91,45,91,3,77,99,132,77,91,77,91,77,
+  99,45,91,13,77,99,130,77,91,77,91,4,77,99,157,77,91,77,91,77,
+  99,77,91,77,91,77,99,77,91,77,99,77,99,77,91,77,91,77,75,110,
+  51,176,11,18,4,82,4,147,12,244,20,21,37,179,44,49,44,241,11,50,
+  12,147,20,212,20,244,20,244,36,212,76,179,108,6,147,132,139,179,132,114,
+  124,175,107,203,74,134,33,130,8,98,8,228,16,171,66,175,99,82,116,7,
+  179,132,6,179,124,132,147,124,147,124,147,132,179,132,7,147,124,130,179,124,
+  179,124,4,179,132,130,211,132,179,132,6,180,132,131,212,132,211,132,180,132,
+  4,212,132,129,180,132,4,212,132,139,180,132,180,132,212,132,180,132,212,132,
+  211,132,211,140,85,157,235,98,73,74,105,82,4,73,74,138,40,74,40,74,
+  40,66,40,74,40,74,72,74,41,74,40,74,40,74,41,74,3,40,74,130,
+  40,66,41,74,3,40,74,4,8,66,134,232,65,8,66,232,65,7,66,231,
+  57,232,65,4,231,57,3,199,57,135,199,49,167,49,134,49,134,41,102,41,
+  102,41,101,41,3,69,33,153,4,25,204,66,46,83,110,99,13,91,143,99,
+  13,91,45,99,13,91,236,90,13,91,236,90,236,90,171,82,138,74,138,74,
+  105,66,73,66,74,66,73,66,74,66,139,74,171,74,203,82,236,90,3,12,
+  91,160,236,90,171,82,106,74,171,82,12,91,45,91,77,99,110,107,142,107,
+  208,107,82,116,245,132,87,141,217,149,91,166,253,182,29,183,29,183,94,191,
+  62,191,94,191,94,199,126,199,126,199,158,207,158,207,158,215,158,207,94,199,
+  126,207,126,207,158,215,3,126,207,130,94,199,94,199,3,126,207,132,126,199,
+  126,207,126,207,158,215,3,126,207,5,158,215,130,158,207,126,207,3,158,215,
+  133,158,207,158,215,158,215,159,215,158,215,3,126,207,137,94,199,126,199,126,
+  199,94,199,126,199,94,199,94,191,94,199,94,191,3,62,191,129,94,199,3,
+  62,191,136,29,191,62,191,29,183,29,191,29,183,29,191,29,183,29,183,3,
+  253,182,147,221,182,221,182,220,174,220,174,188,174,220,182,220,182,188,174,220,
+  174,220,174,188,174,188,174,220,174,188,174,220,182,220,174,188,174,188,174,156,
+  174,3,188,174,129,156,174,3,188,174,171,220,174,220,182,188,174,155,174,123,
+  166,123,166,156,166,156,166,156,174,155,174,156,174,156,174,155,174,155,174,123,
+  166,155,174,155,166,156,174,156,174,155,174,188,182,156,174,155,174,188,182,188,
+  182,156,174,155,174,123,174,123,174,123,166,25,150,103,49,196,16,37,17,232,
+  41,138,66,207,107,143,99,9,58,200,49,8,58,200,49,199,49,6,167,41,
+  129,167,33,6,167,41,132,135,41,195,16,33,0,33,8,3,65,8,181,32,
+  0,33,0,228,24,200,49,74,58,134,33,33,0,65,8,97,8,97,8,33,
+  0,170,82,16,124,207,115,16,132,208,123,142,99,143,107,240,115,49,124,82,
+  124,114,124,114,124,82,124,114,124,114,132,114,124,114,124,147,132,179,132,211,
+  132,212,132,212,132,53,149,248,173,118,157,244,148,49,124,171,82,236,90,171,
+  82,231,57,166,49,199,57,134,49,36,41,65,8,65,8,166,49,8,66,8,
+  66,105,74,142,115,3,142,107,129,110,107,3,142,107,129,110,107,3,142,107,
+  129,16,140,3,52,173,136,5,17,197,16,197,16,164,8,132,8,196,16,229,
+  16,6,25,3,5,25,5,6,25,129,5,25,5,6,25,136,38,25,6,25,
+  38,25,6,25,38,25,6,25,38,25,38,25,6,6,25,4,229,24,130,229,
+  16,229,16,6,197,16,130,197,8,197,8,3,165,8,3,164,8,8,132,8,
+  129,100,8,13,132,8,143,164,8,228,24,37,33,37,33,69,41,36,33,69,
+  41,37,33,37,41,69,41,37,33,69,33,37,33,69,41,69,41,3,37,41,
+  161,227,24,130,16,195,24,68,65,68,81,36,81,67,73,99,81,3,106,196,
+  138,228,138,67,114,66,73,226,56,195,48,195,40,194,40,162,32,163,40,162,
+  32,162,24,162,32,130,24,130,24,130,16,130,16,130,24,162,24,162,16,162,
+  16,162,24,163,24,163,24,5,195,24,137,227,24,195,24,228,24,4,33,228,
+  32,228,32,4,33,228,32,228,32,24,4,33,129,228,32,3,4,33,131,228,
+  32,4,33,228,32,5,4,33,130,227,32,228,32,4,4,33,129,228,32,10,
+  4,33,1,228,32,48,4,142,44,99,44,99,12,99,44,99,44,99,12,99,
+  44,99,44,91,12,91,44,99,44,99,45,99,12,99,45,99,4,44,99,129,
+  45,99,4,44,99,131,45,99,44,99,45,99,6,44,99,130,45,99,45,99,
+  3,44,99,133,45,99,45,91,45,91,45,99,12,91,5,45,99,134,44,99,
+  45,99,45,99,45,91,45,99,77,99,3,45,99,129,77,99,3,45,99,3,
+  45,91,12,77,99,132,77,91,77,99,77,99,45,99,11,77,99,130,77,91,
+  77,91,4,77,99,132,77,91,77,99,77,99,77,91,3,77,99,146,45,91,
+  13,51,111,27,241,11,50,4,147,12,180,20,244,20,245,28,179,28,50,4,
+  50,4,115,12,180,20,212,28,245,28,244,68,179,108,3,147,132,140,179,132,
+  114,124,207,107,236,82,166,41,130,8,98,8,228,16,171,58,175,91,50,116,
+  147,124,6,179,132,131,147,132,179,132,147,124,3,179,124,12,147,124,130,179,
+  124,179,124,6,179,132,139,211,132,179,132,179,132,212,132,180,132,179,132,179,
+  132,180,132,180,132,212,132,180,132,6,212,132,153,179,132,180,132,179,132,180,
+  132,211,132,212,132,114,132,178,140,85,165,170,90,73,74,105,74,73,74,73,
+  74,40,74,41,74,73,74,40,66,40,66,8,66,40,74,40,66,40,66,40,
+  74,8,66,3,40,66,130,40,74,40,74,3,40,66,6,8,66,132,231,57,
+  231,65,8,66,232,57,5,231,57,198,199,57,231,57,199,57,199,49,166,49,
+  166,49,134,41,134,41,101,41,101,33,101,41,69,33,69,33,4,25,45,83,
+  171,82,73,74,13,83,208,99,78,91,236,90,12,91,13,91,45,99,236,90,
+  236,90,138,74,106,74,73,66,73,66,171,74,106,74,106,74,138,74,171,74,
+  171,82,236,90,236,90,12,91,236,90,12,91,236,90,203,82,138,82,106,74,
+  236,90,13,99,77,99,77,107,110,107,175,107,17,116,147,124,21,133,119,141,
+  26,158,123,158,253,174,253,182,30,183,62,183,94,191,126,199,126,207,126,207,
+  158,207,126,207,62,191,29,191,158,207,3,126,207,147,94,199,94,199,126,199,
+  126,207,126,207,159,215,126,207,191,223,159,215,158,215,158,215,191,215,191,223,
+  158,215,159,215,159,215,191,215,191,215,191,223,3,159,215,129,191,215,5,191,
+  223,135,159,215,159,215,191,215,159,207,126,207,158,207,158,215,3,126,207,3,
+  126,199,129,94,199,3,126,199,130,94,199,126,199,4,94,199,136,94,191,94,
+  199,94,199,29,191,61,191,62,199,61,191,29,191,4,253,182,129,221,182,4,
+  253,182,148,220,182,220,182,253,182,253,182,221,182,220,182,220,174,220,182,220,
+  174,221,182,220,182,221,174,220,174,221,182,220,182,220,174,220,182,220,182,252,
+  182,220,174,4,156,166,141,188,174,188,174,220,182,156,174,156,174,188,174,156,
+  174,188,174,156,174,188,174,188,182,220,182,220,174,4,188,182,149,220,182,188,
+  182,187,182,155,174,123,166,59,158,123,166,208,99,9,58,200,41,74,50,236,
+  74,135,25,240,107,240,107,41,58,200,49,232,49,200,49,200,49,167,49,3,
+  167,41,131,200,49,135,41,135,33,3,167,41,3,135,41,132,167,41,167,41,
+  102,33,195,16,4,65,8,151,65,0,33,0,0,0,131,16,134,41,200,49,
+  98,8,65,8,97,8,97,8,0,0,73,74,81,132,240,123,240,123,143,107,
+  175,107,240,115,49,124,82,124,82,124,114,124,82,116,3,82,124,155,82,116,
+  82,124,114,124,147,124,179,132,180,132,21,149,248,173,150,165,85,149,114,124,
+  203,82,203,90,203,82,231,57,167,49,167,49,167,57,69,41,65,8,65,8,
+  134,49,40,66,8,66,105,74,174,115,142,115,5,142,107,129,110,107,4,142,
+  107,133,16,132,20,173,52,173,85,173,38,25,3,197,16,131,164,8,196,16,
+  229,16,7,6,25,136,5,25,5,25,229,24,229,24,5,25,6,25,6,25,
+  5,25,3,6,25,130,38,25,6,17,5,6,25,131,6,17,6,25,230,24,
+  3,6,25,130,230,24,230,24,3,229,16,5,197,16,129,197,8,6,197,16,
+  138,165,16,165,8,165,8,165,16,165,16,164,8,164,16,164,8,164,16,164,
+  8,4,164,16,159,164,8,164,16,164,8,164,16,164,16,164,8,164,16,164,
+  16,165,16,164,16,228,24,36,33,37,41,37,33,36,33,37,33,37,41,37,
+  41,37,33,69,41,69,33,37,33,36,33,37,33,36,41,36,33,37,33,36,
+  33,195,24,162,16,162,24,3,162,32,136,162,24,162,24,162,16,162,24,162,
+  16,163,16,163,24,162,24,6,195,24,132,228,24,195,24,228,24,228,24,9,
+  4,33,133,36,33,4,33,4,33,36,33,36,33,48,4,33,129,228,32,5,
+  4,33,132,228,32,4,33,4,33,228,32,3,4,33,1,228,32,30,4,142,
+  44,99,12,99,12,99,44,99,12,99,44,99,44,91,44,99,12,99,12,99,
+  44,99,45,99,44,99,45,99,4,44,99,130,45,99,45,99,3,44,99,129,
+  45,99,5,44,99,138,45,99,44,99,44,99,45,99,44,99,45,99,45,99,
+  44,99,44,99,44,91,4,45,99,129,45,91,3,45,99,131,44,91,44,99,
+  45,91,8,45,99,3,77,99,130,45,91,45,99,7,77,99,129,77,91,12,
+  77,99,130,77,91,77,91,5,77,99,130,77,91,77,91,8,77,99,4,77,
+  91,159,236,82,204,82,204,74,46,51,176,19,18,4,83,4,147,12,212,20,
+  244,28,180,28,50,12,18,4,114,12,180,20,212,20,245,28,245,52,212,92,
+  179,124,114,132,208,107,236,82,199,41,162,8,98,8,195,8,138,58,143,91,
+  49,116,147,124,5,179,132,134,179,124,147,132,179,124,179,132,179,124,179,124,
+  13,147,124,137,179,124,179,124,179,132,179,132,180,132,180,132,179,124,179,132,
+  179,132,3,180,132,134,179,124,180,132,180,132,179,132,180,132,179,132,6,212,
+  132,142,211,132,180,132,180,132,179,132,211,132,211,132,212,132,212,132,146,132,
+  178,132,85,157,72,74,73,74,105,74,3,73,74,146,40,66,40,74,40,74,
+  40,66,40,74,40,74,40,66,40,66,40,74,40,74,40,66,40,74,40,66,
+  40,74,40,74,8,66,40,74,40,74,5,8,66,130,232,65,8,66,3,232,
+  65,5,231,57,167,199,57,231,57,199,57,199,57,167,49,166,49,166,49,134,
+  41,102,41,102,41,101,41,69,41,69,33,101,33,106,74,73,66,138,82,138,
+  74,45,83,175,99,77,99,13,91,12,91,12,91,13,91,171,82,139,82,106,
+  74,105,74,106,74,171,74,171,82,106,74,138,74,203,82,203,82,204,82,236,
+  82,236,90,3,12,91,149,236,90,171,82,106,74,171,82,12,91,45,99,77,
+  99,77,99,142,99,240,115,82,124,212,132,54,141,151,141,250,149,123,158,189,
+  166,253,174,62,183,94,199,94,199,3,126,207,142,94,199,126,199,94,199,158,
+  207,159,215,94,199,126,207,159,207,158,207,126,207,159,207,159,215,126,207,62,
+  199,7,191,223,141,158,207,158,215,159,215,191,215,159,215,191,223,159,215,191,
+  223,191,231,191,223,191,223,223,231,223,223,4,191,223,134,191,215,191,223,191,
+  223,191,215,158,215,159,207,4,126,207,131,126,199,126,199,126,207,3,126,199,
+  4,94,199,130,62,191,126,199,3,94,199,139,62,199,62,199,62,191,61,191,
+  61,191,253,182,29,183,62,191,62,191,29,191,29,191,3,253,182,129,253,190,
+  4,253,182,129,221,182,6,253,182,142,221,182,220,174,188,174,220,174,188,174,
+  188,174,220,174,188,166,188,174,188,174,220,174,220,182,253,182,253,182,3,220,
+  182,3,188,174,136,220,182,221,182,220,182,188,182,188,174,188,182,188,174,188,
+  182,3,155,174,164,123,166,91,166,249,149,139,74,74,50,139,58,106,50,172,
+  66,106,50,143,99,175,99,9,58,200,49,200,49,199,49,232,49,167,41,200,
+  49,167,41,168,41,168,41,135,41,135,41,134,41,167,41,167,41,135,41,135,
+  33,135,41,167,41,135,41,167,41,168,41,70,33,130,16,33,0,3,65,8,
+  149,65,0,33,0,0,0,33,0,130,16,65,8,65,8,98,8,98,8,0,
+  0,232,65,113,140,240,123,143,107,175,107,240,115,17,116,49,124,49,124,82,
+  124,114,124,3,82,124,154,81,116,82,124,82,116,114,124,179,132,179,132,20,
+  141,24,174,150,157,52,149,81,124,203,90,235,90,203,82,231,57,73,74,138,
+  82,167,57,69,41,97,8,65,8,102,49,40,66,8,66,73,74,142,115,8,
+  142,107,142,143,107,142,107,142,115,239,131,20,173,52,173,117,173,103,33,165,
+  16,229,16,197,16,196,16,196,16,229,24,9,6,25,129,5,25,3,229,24,
+  3,6,25,130,230,16,229,16,4,230,16,130,230,24,6,17,3,230,16,133,
+  229,24,229,24,230,24,229,16,229,16,6,197,16,136,196,8,196,16,196,16,
+  197,16,196,8,197,8,165,16,165,8,3,197,16,4,165,16,133,164,8,197,
+  16,165,8,165,8,164,8,3,165,8,135,165,16,164,16,132,8,164,8,164,
+  16,164,8,164,8,4,132,8,154,228,24,36,33,37,33,37,33,36,33,69,
+  41,36,33,69,41,37,33,69,41,69,33,69,33,36,33,37,33,37,33,36,
+  33,37,33,69,41,36,33,228,32,228,24,228,32,227,24,4,33,4,33,228,
+  32,6,4,33,8,36,33,129,4,33,3,36,33,3,4,33,134,37,33,4,
+  33,36,33,4,33,4,33,36,33,46,4,33,129,228,32,5,4,33,131,228,
+  32,4,33,228,32,6,4,33,4,228,32,78,4,131,44,99,44,99,12,99,
+  6,44,99,132,12,99,44,99,12,99,13,99,5,44,99,135,12,91,44,99,
+  44,99,45,99,45,99,44,99,45,99,3,44,99,132,45,99,45,99,44,91,
+  44,99,3,45,99,3,44,99,134,45,99,45,99,44,99,44,99,45,99,77,
+  99,5,45,99,129,45,91,5,45,99,130,45,91,45,91,3,77,99,133,45,
+  99,45,99,77,99,77,99,77,91,3,77,99,129,77,91,9,77,99,130,45,
+  91,77,91,6,77,99,5,77,91,4,77,99,129,77,91,3,77,99,4,77,
+  91,159,45,91,236,82,203,82,204,82,236,90,12,91,45,75,143,51,209,27,
+  17,4,82,4,147,12,212,20,179,20,82,12,50,4,82,12,147,20,212,20,
+  244,28,21,45,212,68,142,67,200,41,130,8,65,8,163,8,74,50,143,91,
+  49,116,147,132,3,179,132,130,147,132,179,132,3,179,124,131,147,124,179,124,
+  179,124,3,147,124,129,179,124,10,147,124,7,179,132,134,180,132,179,132,211,
+  132,180,132,180,132,179,132,3,180,132,148,212,132,211,132,212,132,212,132,180,
+  132,212,132,180,132,180,132,212,132,211,132,179,132,179,132,180,132,212,132,212,
+  132,179,132,146,132,20,149,243,148,40,74,3,73,74,131,40,74,40,74,72,
+  74,3,40,66,131,8,66,40,74,40,66,3,8,66,140,40,66,40,66,8,
+  66,40,66,40,66,8,66,8,66,40,66,8,66,40,74,40,66,232,65,11,
+  231,57,136,232,65,199,57,199,57,199,49,167,49,167,49,134,41,134,41,4,
+  102,41,195,69,33,182,173,48,132,106,74,138,74,73,66,138,74,77,91,143,
+  99,13,91,12,91,236,90,236,90,203,82,139,82,106,74,106,74,73,66,41,
+  66,138,74,73,66,106,74,138,74,203,82,203,82,236,82,236,82,12,91,13,
+  91,13,91,236,90,204,90,171,82,106,74,203,82,45,91,45,99,77,99,110,
+  99,175,107,17,116,114,124,212,124,22,133,119,141,250,149,124,166,221,174,253,
+  182,29,183,62,191,94,199,94,191,126,199,126,199,126,207,126,207,158,215,126,
+  207,158,207,159,215,126,207,159,207,159,215,191,215,191,223,223,223,3,191,223,
+  129,191,215,3,191,223,131,191,215,191,223,223,223,3,191,223,130,223,231,191,
+  223,6,223,231,3,223,223,136,191,223,223,223,191,223,191,223,191,215,191,223,
+  158,215,158,215,3,126,207,132,126,199,126,207,94,199,94,199,4,126,199,129,
+  126,207,3,94,199,137,126,199,126,199,94,191,94,199,94,199,62,191,62,191,
+  29,183,29,191,3,62,191,130,61,191,30,191,4,29,191,129,29,183,4,29,
+  191,129,29,183,3,29,191,152,253,182,29,191,253,182,253,182,29,183,221,182,
+  221,174,253,182,29,183,253,182,253,182,29,183,29,191,62,191,253,190,29,191,
+  29,191,221,182,253,190,220,182,188,174,188,174,220,182,220,182,5,188,182,145,
+  155,174,155,174,123,166,123,166,91,166,155,166,82,116,107,66,74,50,74,50,
+  106,50,106,50,106,58,175,99,208,107,9,58,232,57,3,200,49,132,199,41,
+  200,49,167,41,200,41,3,167,41,135,135,33,167,41,135,41,167,41,135,41,
+  135,41,167,41,3,135,41,134,167,41,232,49,134,41,228,24,66,8,33,8,
+  4,65,8,143,33,8,33,0,65,8,65,8,98,8,97,8,0,0,134,49,
+  81,132,207,115,207,115,240,115,240,115,17,116,49,124,3,82,124,129,82,116,
+  3,82,124,154,82,116,114,124,147,124,179,132,244,148,248,173,118,157,52,157,
+  146,132,203,82,235,90,203,90,199,57,105,82,203,90,166,49,69,41,98,8,
+  33,8,101,49,40,66,8,66,41,74,142,115,175,115,142,115,3,142,107,140,
+  175,107,143,107,142,107,174,107,143,107,175,115,239,131,20,173,52,173,117,181,
+  168,41,165,16,3,197,16,130,196,16,197,16,3,6,25,129,230,24,4,229,
+  24,135,230,16,229,16,229,16,197,16,230,16,230,16,229,16,4,197,16,3,
+  198,16,153,198,8,198,16,197,16,165,8,165,8,165,16,164,16,196,16,197,
+  16,165,16,164,16,165,16,165,16,164,8,164,8,164,16,164,8,131,8,163,
+  8,164,8,164,16,164,8,164,8,165,8,165,16,4,165,8,131,133,8,165,
+  8,165,8,3,132,8,129,133,8,3,132,0,11,100,0,130,195,24,4,33,
+  3,37,33,151,36,33,37,33,37,33,69,33,69,33,69,41,37,33,37,33,
+  69,33,37,33,36,33,37,33,69,41,37,33,36,33,37,41,37,41,36,33,
+  37,41,36,33,36,33,37,33,37,33,11,36,33,4,4,33,129,36,33,4,
+  4,33,134,36,33,4,33,36,33,4,33,36,33,36,33,5,4,33,129,36,
+  33,21,4,33,129,228,32,10,4,33,130,228,24,228,32,7,4,33,145,228,
+  32,228,32,4,33,228,32,228,32,4,33,228,32,228,24,228,24,227,24,228,
+  32,3,33,228,32,3,33,35,41,4,41,36,41,124,4,140,44,99,44,99,
+  12,99,44,99,12,99,44,99,44,99,12,99,44,99,44,91,44,99,12,99,
+  3,44,99,131,12,91,45,99,45,99,3,44,99,138,45,99,45,91,45,99,
+  44,99,44,99,45,99,12,99,45,99,44,99,45,99,3,44,99,142,45,99,
+  45,99,45,91,45,99,45,99,44,91,45,99,44,99,45,91,45,99,44,99,
+  45,99,45,99,77,99,3,45,99,140,77,99,45,99,45,99,45,91,45,99,
+  77,99,45,99,77,99,77,99,45,99,77,99,45,99,4,77,99,132,77,91,
+  77,99,77,99,77,91,4,77,99,129,45,99,3,77,99,129,77,91,3,77,
+  99,133,45,99,77,99,77,99,77,91,77,99,4,77,91,131,77,99,77,91,
+  77,91,3,77,99,176,77,91,77,91,77,99,77,91,77,91,45,91,236,82,
+  203,82,236,82,12,91,45,91,77,99,175,107,16,108,17,100,241,67,208,35,
+  241,11,82,4,147,12,179,20,114,12,18,4,50,4,115,12,180,20,212,20,
+  54,29,211,28,139,10,228,0,233,41,111,91,49,116,147,124,179,132,147,124,
+  179,132,179,132,179,124,179,132,147,124,179,132,147,132,179,124,179,124,147,132,
+  179,124,3,147,124,129,179,124,7,147,124,130,179,124,179,124,7,179,132,132,
+  179,124,180,124,180,124,179,124,3,179,132,3,180,132,139,179,132,179,132,180,
+  132,180,132,212,132,180,132,212,132,179,132,180,132,179,124,179,132,3,180,132,
+  139,212,132,146,132,20,149,145,140,8,66,73,74,73,74,72,74,41,74,40,
+  74,40,74,3,40,66,138,40,74,8,66,40,66,40,74,8,66,40,66,8,
+  66,40,66,40,74,73,74,3,40,66,5,8,66,133,231,57,8,66,231,57,
+  231,57,199,57,4,231,57,131,199,57,231,57,231,57,3,199,57,133,167,49,
+  166,49,166,49,134,49,134,41,3,102,41,144,138,74,142,107,236,90,105,74,
+  105,74,73,66,105,74,171,74,110,91,110,91,13,91,236,82,236,82,204,82,
+  138,82,106,74,3,73,66,135,105,66,73,66,106,74,138,74,171,74,236,82,
+  236,90,3,12,91,152,13,99,12,91,236,90,203,90,138,74,138,74,12,91,
+  45,99,77,99,110,99,142,99,208,107,17,116,147,124,213,132,54,141,184,149,
+  58,158,156,166,221,182,29,183,29,191,62,191,94,191,3,126,199,133,159,207,
+  126,207,158,207,159,215,159,215,3,191,215,135,191,223,191,215,159,215,159,215,
+  191,223,191,223,191,215,3,191,223,132,223,223,223,231,223,223,223,223,7,223,
+  231,129,255,239,4,223,231,3,191,223,137,159,215,191,215,191,223,191,223,191,
+  215,159,207,159,215,159,215,158,207,7,126,207,138,159,215,126,207,126,199,94,
+  199,94,199,126,199,62,191,94,199,94,199,94,191,4,62,191,131,94,199,61,
+  191,62,191,3,94,199,130,62,191,61,191,3,29,191,129,61,191,3,29,191,
+  147,62,191,62,191,61,183,29,191,29,183,62,191,29,183,253,182,253,182,29,
+  191,29,191,61,191,61,191,62,199,61,199,61,191,61,199,61,199,29,191,3,
+  253,190,131,253,182,220,182,156,182,5,188,182,145,156,174,188,182,156,174,155,
+  174,155,174,91,166,123,166,25,158,139,74,41,50,106,58,233,33,41,42,74,
+  50,74,50,143,91,16,116,5,232,49,130,200,49,200,41,4,167,41,137,135,
+  41,134,41,134,41,167,41,167,41,135,41,135,33,167,41,103,33,3,135,41,
+  139,168,41,200,49,233,49,200,49,69,33,163,16,33,0,33,8,65,8,65,
+  8,33,0,3,65,8,140,97,8,65,8,0,0,4,33,16,124,207,115,241,
+  115,240,115,17,116,17,124,49,124,50,124,7,82,124,149,147,124,179,132,244,
+  140,248,173,150,157,52,149,179,132,203,90,235,90,203,90,199,57,137,82,12,
+  99,167,57,69,41,130,16,33,0,69,41,8,66,8,66,40,74,4,142,115,
+  147,142,107,174,107,142,115,174,115,142,107,175,107,175,115,175,115,207,123,52,
+  173,52,173,117,181,233,49,132,8,197,16,197,16,164,8,165,16,165,16,10,
+  197,16,131,197,8,197,16,165,16,6,165,8,142,166,8,165,8,166,8,166,
+  8,165,8,165,8,133,8,164,8,132,8,132,8,131,8,132,8,164,8,132,
+  8,4,164,8,137,132,8,131,8,131,8,131,16,131,8,131,8,164,8,132,
+  8,133,8,4,165,8,5,133,8,132,132,0,132,8,132,8,101,0,12,100,
+  0,142,100,8,164,16,4,33,36,33,36,33,37,33,36,33,36,33,37,41,
+  69,41,69,33,69,41,69,33,69,41,3,36,33,136,37,41,69,41,36,41,
+  37,33,69,41,36,33,37,41,37,33,3,36,33,129,37,33,3,36,33,129,
+  37,41,8,36,33,129,4,33,3,36,33,3,4,33,130,36,41,36,33,6,
+  4,33,129,36,33,3,4,33,129,36,33,22,4,33,129,228,32,3,4,33,
+  136,228,32,228,24,4,33,228,32,228,24,228,32,228,24,228,24,4,4,33,
+  148,4,41,36,41,67,41,36,49,68,49,100,57,132,65,132,65,165,73,196,
+  89,229,89,229,97,36,106,38,114,101,122,101,130,134,138,166,138,166,146,198,
+  154,84,4,130,44,99,12,99,14,44,99,129,12,91,4,44,99,142,12,91,
+  44,99,44,99,45,91,44,91,44,99,44,99,45,99,45,99,44,99,44,99,
+  44,91,44,99,44,99,6,45,99,136,45,91,44,91,44,99,45,99,45,91,
+  45,99,45,99,77,99,5,45,99,132,44,99,77,91,77,91,45,99,4,77,
+  99,132,45,99,77,99,45,91,77,91,3,77,99,129,45,91,11,77,99,135,
+  77,91,77,99,77,99,77,91,77,99,77,91,45,99,3,77,99,132,77,91,
+  77,99,77,99,77,91,3,77,99,5,77,91,166,12,91,204,82,203,82,204,
+  90,13,91,45,91,77,99,207,107,17,116,82,116,114,124,146,124,114,116,17,
+  84,241,51,241,19,50,4,115,12,115,12,50,12,17,4,82,12,147,20,244,
+  20,86,37,53,37,115,52,50,92,115,132,147,132,147,132,179,132,147,132,147,
+  124,147,124,179,124,147,124,147,124,3,179,124,133,147,124,147,132,147,124,147,
+  124,179,124,6,147,124,130,179,124,179,124,7,179,132,131,179,124,179,124,180,
+  132,5,179,132,140,211,132,179,132,180,132,211,132,212,132,180,132,180,132,212,
+  132,180,132,212,132,211,132,211,132,3,179,132,143,180,132,180,132,212,132,147,
+  132,211,140,53,149,239,123,8,66,40,74,41,74,40,74,41,74,41,74,40,
+  66,40,74,3,40,66,129,41,74,3,40,66,4,8,66,132,40,74,40,66,
+  8,66,40,74,4,8,66,132,231,57,232,57,231,57,232,65,6,231,57,134,
+  199,57,231,57,199,57,199,57,231,57,199,57,3,166,49,191,134,41,134,41,
+  102,41,101,41,41,66,105,74,73,66,73,74,105,74,73,74,73,66,73,66,
+  106,66,236,82,110,91,45,91,236,90,204,90,171,82,138,74,106,74,106,74,
+  73,66,73,66,106,66,106,74,138,74,106,74,171,82,236,82,236,90,12,91,
+  12,91,236,90,13,91,12,99,236,90,236,90,203,90,138,82,203,82,13,91,
+  77,99,45,99,110,99,175,107,208,107,241,115,115,124,245,132,86,141,184,149,
+  58,158,156,166,221,174,29,183,29,183,62,191,94,191,29,183,126,199,94,199,
+  158,207,3,159,215,132,158,207,159,215,191,215,191,215,5,191,223,132,223,223,
+  223,231,223,231,191,223,5,223,231,129,191,223,3,223,231,131,255,239,255,239,
+  223,239,6,223,231,129,223,223,4,191,223,129,191,215,7,159,215,3,126,207,
+  132,94,199,94,191,94,199,94,191,4,94,199,132,126,207,126,207,94,199,126,
+  199,8,94,199,155,62,191,94,199,94,199,62,199,62,191,94,199,30,191,29,
+  191,29,191,62,191,29,183,29,183,253,174,253,182,29,183,62,191,29,183,30,
+  191,29,191,29,191,62,199,61,199,94,199,62,199,29,191,61,199,61,199,3,
+  29,191,139,253,190,220,182,221,182,253,182,188,182,188,182,220,182,188,182,156,
+  174,123,174,156,174,4,155,174,174,90,166,90,166,115,116,168,41,9,50,41,
+  50,200,33,135,25,41,42,168,33,110,91,240,107,41,58,232,49,232,49,200,
+  49,232,49,200,49,232,49,167,41,167,41,232,49,168,41,168,41,135,41,167,
+  41,167,41,135,41,135,33,167,41,103,33,167,41,135,33,135,41,168,41,200,
+  41,200,41,200,49,232,49,232,41,236,74,73,58,4,25,98,8,33,0,33,
+  0,4,65,8,139,98,8,98,8,33,0,227,24,16,124,49,124,17,124,17,
+  116,17,124,49,124,50,124,6,82,124,136,114,124,114,124,147,132,244,140,248,
+  173,150,157,20,149,146,132,3,204,90,140,231,57,138,82,235,98,199,57,69,
+  41,130,16,32,0,69,41,40,66,8,66,40,66,142,107,3,142,115,142,142,
+  107,175,115,142,115,142,107,175,115,207,115,207,115,175,115,207,123,52,173,52,
+  165,117,181,74,66,133,0,7,165,8,133,197,16,165,8,197,8,166,8,166,
+  8,3,198,8,132,198,16,197,16,198,16,230,16,3,198,8,129,230,16,3,
+  231,16,3,7,17,132,231,16,230,16,197,16,197,16,3,164,16,134,196,16,
+  229,24,229,24,5,25,229,24,197,16,3,164,16,136,163,8,163,8,164,16,
+  196,16,165,16,197,16,197,16,197,8,3,197,16,5,165,8,131,132,8,133,
+  8,133,0,5,101,0,131,100,0,101,0,68,0,5,100,0,131,132,8,4,
+  33,36,33,4,37,33,141,36,33,37,33,69,41,69,33,37,33,37,33,69,
+  33,37,41,36,41,69,41,37,41,69,41,37,41,3,36,33,129,37,41,4,
+  36,33,131,37,33,37,33,4,33,4,36,33,129,37,33,7,36,33,130,4,
+  33,4,33,4,36,33,5,4,33,135,36,33,4,33,4,33,36,33,4,33,
+  4,33,36,33,20,4,33,3,36,41,153,68,57,100,57,100,57,133,65,165,
+  65,165,73,165,81,197,89,5,98,37,106,37,122,68,122,101,130,134,138,165,
+  138,165,146,198,146,197,154,230,154,230,162,231,162,7,171,231,170,7,171,7,
+  171,7,39,171,130,7,171,39,171,121,4,136,12,91,44,99,12,99,12,91,
+  44,99,44,99,12,99,45,99,3,44,99,145,12,99,45,99,44,99,12,99,
+  44,99,44,99,12,99,12,91,44,99,45,99,45,91,45,99,44,99,44,91,
+  45,99,44,99,44,99,3,45,99,135,44,91,44,99,45,99,45,99,44,91,
+  45,91,44,99,6,45,99,132,44,91,45,99,45,99,45,91,7,45,99,134,
+  45,91,45,99,77,99,77,99,45,99,45,99,12,77,99,131,109,99,77,91,
+  77,91,4,77,99,3,77,91,129,77,99,3,77,91,3,77,99,129,77,91,
+  3,77,99,130,77,91,77,99,4,77,91,143,77,99,45,91,45,91,236,82,
+  236,82,203,82,236,90,12,91,45,99,78,99,208,107,17,116,82,116,114,124,
+  114,124,3,147,132,147,147,124,50,100,241,67,240,35,17,12,114,12,50,12,
+  18,4,50,12,115,20,179,20,245,28,21,29,245,52,212,84,179,116,179,132,
+  147,132,147,132,3,147,124,132,179,124,147,124,147,124,179,124,13,147,124,9,
+  179,132,129,180,132,4,179,132,130,211,132,179,132,3,180,132,133,212,132,212,
+  132,180,132,212,132,180,132,7,179,132,137,212,132,212,132,114,124,146,132,85,
+  157,109,107,40,74,73,74,41,74,3,40,74,9,40,66,149,8,66,40,74,
+  8,66,40,66,40,66,40,74,8,66,40,66,40,74,40,74,8,66,232,65,
+  8,66,8,58,231,57,199,57,231,57,231,57,199,57,199,57,231,57,7,199,
+  57,136,199,49,166,49,134,49,134,49,134,41,134,41,105,74,106,74,3,73,
+  74,190,138,74,138,74,41,66,73,66,105,74,73,74,13,83,78,91,236,82,
+  13,91,110,107,138,74,106,74,74,74,73,66,106,74,138,74,106,74,138,74,
+  171,82,171,74,203,82,236,90,236,90,12,91,12,91,12,99,13,99,12,91,
+  12,91,236,90,236,90,171,82,235,90,45,99,77,99,110,99,110,99,175,107,
+  207,107,50,116,147,124,21,133,87,141,184,149,58,158,123,158,156,166,29,183,
+  29,183,30,183,126,199,126,199,29,191,158,207,191,215,126,207,126,207,159,215,
+  191,223,159,215,159,215,3,191,223,131,223,223,223,231,255,231,5,223,231,130,
+  255,239,255,239,7,223,231,129,255,239,5,223,231,3,191,223,129,223,223,7,
+  191,223,134,191,215,191,215,191,223,126,207,159,215,126,207,4,94,199,138,158,
+  207,158,207,126,207,158,207,159,207,158,207,126,207,126,207,126,199,126,207,3,
+  94,199,131,126,199,126,207,62,191,5,94,199,139,62,191,62,191,29,183,29,
+  183,253,182,221,174,253,182,29,183,61,191,62,191,94,199,3,94,207,150,94,
+  199,94,207,94,199,94,207,94,207,61,199,29,191,61,191,61,199,29,191,29,
+  191,253,190,253,182,221,182,220,182,220,174,188,182,188,182,156,174,155,174,155,
+  174,123,174,3,155,174,141,123,174,123,166,58,158,9,58,37,25,232,33,135,
+  25,131,8,98,0,102,25,196,8,12,83,240,107,5,232,49,138,200,49,232,
+  49,200,49,167,41,200,49,135,41,167,41,135,41,167,41,167,41,3,135,41,
+  146,135,33,135,41,135,33,135,33,135,41,167,41,168,41,200,49,200,41,135,
+  33,167,41,204,74,9,50,41,58,233,57,37,33,66,8,1,0,3,65,8,
+  141,97,8,97,8,33,0,162,16,207,115,114,132,49,124,49,116,17,116,49,
+  116,50,124,82,124,114,124,4,82,124,158,114,124,146,132,244,140,248,165,151,
+  157,52,149,211,140,236,90,204,90,236,90,231,57,105,74,77,107,232,57,69,
+  41,130,16,32,0,36,33,40,66,40,74,8,66,109,107,142,115,142,115,175,
+  115,175,115,174,115,175,115,207,115,175,115,3,207,115,147,174,123,20,173,52,
+  165,117,181,205,74,230,8,7,25,7,17,7,25,7,25,39,25,7,25,40,
+  17,39,25,72,25,40,17,40,17,40,25,40,25,3,72,25,157,72,33,104,
+  33,105,33,105,25,73,25,105,33,137,33,170,33,170,33,170,41,202,41,170,
+  41,170,33,169,41,105,33,104,33,71,33,38,25,5,25,5,33,70,33,102,
+  41,70,33,103,41,70,33,5,25,5,25,228,24,228,24,3,196,16,137,229,
+  16,197,16,229,16,229,16,230,16,198,16,230,16,197,16,198,16,5,165,8,
+  135,133,8,133,0,133,0,101,0,100,0,101,0,101,0,5,100,0,3,68,
+  0,143,132,8,4,25,37,33,37,33,36,33,69,33,37,33,37,33,69,33,
+  37,33,69,41,69,33,37,33,37,33,69,41,3,37,33,137,37,41,36,33,
+  69,41,36,33,37,41,69,41,36,33,37,33,37,33,5,36,33,129,37,41,
+  5,36,33,129,4,33,5,36,33,134,4,33,4,33,36,33,4,33,36,33,
+  36,33,3,4,33,129,36,33,3,4,33,131,36,33,4,33,36,33,5,4,
+  33,129,36,33,15,4,33,152,102,114,165,146,198,146,198,154,230,162,230,162,
+  6,163,6,171,6,171,7,171,39,171,39,171,39,179,39,171,38,171,71,171,
+  39,171,6,171,7,171,6,171,6,171,38,171,38,171,6,171,3,39,171,131,
+  7,171,39,171,6,171,5,7,171,130,39,163,39,171,86,4,3,44,99,3,
+  12,99,5,44,99,131,45,99,44,99,12,99,3,44,99,129,12,99,3,44,
+  99,130,45,99,44,91,5,44,99,129,12,99,4,45,99,129,44,91,7,45,
+  99,129,44,99,3,45,91,131,45,99,45,99,45,91,6,45,99,131,45,91,
+  45,91,77,99,6,45,99,129,45,91,5,77,99,129,77,91,11,77,99,130,
+  77,91,77,91,6,77,99,133,77,91,77,91,77,99,77,91,77,91,3,77,
+  99,6,77,91,167,236,82,204,82,203,82,236,90,236,90,45,91,143,99,208,
+  107,49,116,82,124,114,124,114,124,146,124,147,124,147,124,146,124,179,124,147,
+  132,208,107,204,74,41,18,45,3,17,12,50,4,241,3,17,4,82,12,147,
+  20,212,20,245,28,21,45,245,60,212,100,179,124,179,132,147,132,147,124,147,
+  124,179,132,3,147,124,129,179,124,9,147,124,132,179,124,179,132,179,132,180,
+  132,7,179,132,135,180,132,179,132,179,132,211,132,179,132,180,132,179,132,4,
+  180,132,132,179,132,179,124,180,132,180,132,6,179,132,141,211,132,211,132,212,
+  132,146,132,211,140,117,165,203,90,40,66,40,66,40,74,40,74,41,74,40,
+  74,3,40,66,132,8,66,40,66,8,66,8,66,3,40,66,133,8,66,40,
+  66,40,74,8,66,40,74,6,8,66,4,231,57,129,199,57,3,231,57,130,
+  199,57,199,49,4,199,57,153,199,49,166,49,167,49,166,49,166,49,134,49,
+  102,41,105,74,105,74,138,74,73,66,73,74,138,74,73,66,106,74,74,74,
+  73,74,106,74,73,74,74,66,13,83,13,83,171,82,171,82,138,82,3,106,
+  74,4,138,74,135,171,82,203,82,204,82,236,90,236,90,13,91,13,91,3,
+  12,91,165,13,91,13,91,236,90,171,82,171,82,236,90,45,99,45,99,110,
+  99,110,99,175,107,241,115,82,124,180,124,21,133,119,141,185,149,26,150,123,
+  158,188,174,253,182,62,191,62,191,94,199,126,199,158,207,94,199,127,207,159,
+  215,191,215,191,215,191,223,191,223,223,223,191,223,223,223,191,223,14,223,231,
+  129,255,231,3,255,239,135,223,231,255,239,223,231,191,223,191,223,223,223,223,
+  223,3,223,231,132,191,223,223,223,223,231,223,223,4,191,223,129,159,207,3,
+  159,215,130,126,207,126,199,3,159,207,131,126,207,159,215,159,207,4,126,207,
+  136,158,207,126,207,159,207,94,199,126,199,126,207,94,199,126,207,4,94,199,
+  135,62,191,62,191,62,183,30,183,62,191,30,183,29,183,3,94,199,139,126,
+  207,126,207,94,207,126,207,158,215,126,207,94,207,94,199,61,199,61,199,29,
+  199,3,29,191,140,253,190,253,182,253,182,221,182,220,182,188,174,220,182,188,
+  182,156,174,155,174,123,174,155,174,3,123,174,132,91,166,123,166,180,124,66,
+  16,6,65,0,144,33,0,45,91,240,107,9,58,8,50,200,49,232,49,232,
+  49,199,49,9,50,200,49,168,41,168,41,167,41,199,49,135,41,5,167,41,
+  195,135,41,135,41,135,33,167,41,135,33,167,41,167,41,200,49,168,41,103,
+  41,37,33,13,83,200,41,9,50,74,66,204,82,12,91,106,74,4,25,0,
+  0,1,0,65,8,98,8,98,8,65,8,33,0,167,49,17,124,147,132,49,
+  124,17,116,49,116,82,124,82,124,114,124,49,116,49,116,82,124,82,124,114,
+  124,211,140,215,165,183,165,85,149,20,141,12,91,236,90,236,90,8,66,138,
+  82,45,99,8,58,69,41,162,16,32,0,36,33,8,66,40,66,40,66,109,
+  107,175,115,142,115,174,115,174,115,175,115,207,115,175,115,3,207,115,141,239,
+  115,207,123,19,165,52,173,117,181,78,91,105,25,137,33,137,33,170,41,170,
+  41,169,41,170,41,3,202,41,162,170,41,170,33,138,33,137,33,169,41,170,
+  41,203,41,202,41,235,49,11,50,11,42,202,41,202,41,234,49,44,58,44,
+  58,76,58,76,58,44,50,43,58,11,50,234,49,169,41,169,41,104,33,71,
+  33,70,33,103,33,135,41,167,49,135,41,102,33,37,25,229,24,3,228,24,
+  135,196,16,229,16,6,25,229,16,230,24,230,24,230,16,3,197,16,129,197,
+  8,3,165,8,129,132,8,3,133,8,129,101,0,4,100,0,133,68,0,100,
+  0,100,0,67,0,100,0,3,68,0,135,100,0,228,24,36,33,37,33,69,
+  33,37,33,36,33,5,37,33,132,69,33,69,33,37,33,37,33,3,69,33,
+  141,36,33,37,33,69,33,36,33,69,41,36,33,37,33,36,33,36,33,37,
+  41,36,33,36,33,37,33,5,36,33,131,4,33,4,33,37,33,5,36,33,
+  5,4,33,134,36,33,36,33,4,33,4,33,36,33,36,33,7,4,33,129,
+  36,33,17,4,33,133,134,114,71,171,39,171,39,171,38,171,6,39,171,132,
+  7,171,39,171,38,171,38,171,3,6,171,135,7,171,6,171,6,171,7,171,
+  39,171,38,171,6,171,3,39,171,130,38,171,38,171,4,7,171,131,6,171,
+  198,154,230,162,169,4,137,236,90,12,99,44,99,12,99,44,99,44,99,12,
+  91,44,99,44,91,3,44,99,129,44,91,3,44,99,132,45,99,44,99,44,
+  99,45,99,8,44,99,143,45,99,45,91,45,99,45,91,45,99,45,99,44,
+  99,45,99,45,99,44,91,44,99,44,99,45,99,45,99,44,99,3,45,99,
+  141,45,91,45,91,45,99,44,99,45,99,77,99,45,99,45,99,45,91,77,
+  91,45,91,45,91,45,99,6,77,99,129,45,99,3,77,99,130,77,91,45,
+  91,4,77,99,129,77,91,6,77,99,130,77,91,77,91,5,77,99,130,77,
+  91,77,91,4,77,99,3,77,91,145,77,99,77,91,77,99,77,91,12,91,
+  236,82,203,82,204,82,236,90,12,99,45,99,143,107,240,107,49,116,82,124,
+  114,124,114,124,3,146,124,154,147,124,147,132,17,116,45,91,199,49,130,16,
+  32,8,228,0,236,34,208,43,241,27,209,3,241,3,50,4,115,12,180,20,
+  212,20,245,28,21,45,244,68,212,100,147,124,147,132,147,132,179,132,147,132,
+  11,147,124,132,147,132,179,132,179,132,180,132,3,179,132,131,180,132,179,132,
+  180,132,3,179,132,138,180,132,179,124,179,132,212,132,179,132,179,132,180,132,
+  180,132,179,132,212,132,3,211,132,144,179,132,179,132,180,132,180,132,179,132,
+  179,132,180,132,211,132,212,132,146,132,211,140,117,165,105,74,40,66,40,74,
+  40,74,3,40,66,136,73,74,40,66,41,74,40,66,8,66,40,66,40,74,
+  40,74,6,40,66,129,8,66,3,40,66,138,8,66,8,66,231,65,7,66,
+  231,65,231,57,199,57,199,57,231,57,231,57,5,199,57,172,167,49,199,57,
+  166,49,167,49,166,49,134,49,166,49,134,49,73,74,138,74,105,74,138,74,
+  170,82,171,82,204,82,203,82,73,74,73,74,105,74,73,74,105,74,73,66,
+  138,74,236,82,204,74,171,74,138,74,138,74,106,74,73,66,105,66,106,74,
+  106,74,138,74,171,82,171,74,204,82,204,90,236,90,12,91,12,91,236,90,
+  13,91,13,91,3,45,99,155,12,91,236,90,204,82,12,91,45,99,77,99,
+  110,99,143,107,176,107,240,107,114,124,212,132,21,133,119,141,249,149,91,158,
+  188,166,189,166,29,183,30,183,62,191,62,183,94,191,126,199,159,207,126,199,
+  191,215,4,191,223,138,223,223,191,223,191,223,223,231,223,231,191,223,223,231,
+  223,223,191,223,255,239,5,223,231,129,255,231,3,223,231,148,255,231,223,231,
+  255,231,223,223,191,223,223,231,223,231,191,223,223,223,223,223,191,223,223,223,
+  223,231,223,231,223,223,223,223,191,223,223,231,191,223,191,223,6,159,215,130,
+  191,223,191,223,3,159,215,141,126,199,158,207,159,207,126,207,126,207,158,207,
+  126,207,126,207,126,199,126,207,158,207,126,207,126,199,4,94,199,129,62,191,
+  3,94,199,147,94,207,126,199,94,199,94,199,94,207,94,207,94,199,126,207,
+  94,207,126,207,126,207,94,207,94,207,94,199,94,199,94,207,94,199,62,199,
+  29,191,3,253,190,146,253,182,221,182,220,182,188,182,188,182,156,174,155,174,
+  155,174,123,174,123,174,155,174,123,174,91,174,123,174,90,166,106,66,33,8,
+  97,8,5,98,8,134,66,8,207,107,143,107,41,58,232,49,232,57,3,232,
+  49,134,8,50,200,41,168,41,135,41,167,41,199,49,4,167,41,132,135,41,
+  167,41,135,41,135,41,3,135,33,156,168,41,167,41,168,41,168,41,103,33,
+  196,16,77,99,232,41,9,58,42,66,139,74,236,90,45,99,175,115,77,107,
+  199,49,1,0,0,0,98,8,98,8,65,8,33,0,0,0,167,49,17,116,
+  82,124,17,116,17,116,4,49,116,153,50,124,82,124,82,124,179,132,215,173,
+  215,165,53,149,211,140,13,91,236,90,236,90,8,66,105,74,77,107,8,66,
+  69,41,195,24,0,0,4,33,40,66,73,74,8,66,109,107,175,115,174,115,
+  4,175,115,3,207,115,139,240,115,240,123,175,115,243,164,52,173,85,181,176,
+  107,234,33,235,41,235,41,235,49,3,11,50,147,11,42,11,50,235,41,11,
+  50,203,41,234,41,202,33,170,33,202,33,203,33,11,42,12,50,235,49,235,
+  41,169,33,169,33,202,33,11,50,11,50,3,44,50,151,11,50,44,58,11,
+  50,234,41,169,41,136,41,104,33,71,33,103,33,103,33,70,33,70,33,38,
+  25,5,25,229,24,229,24,228,16,196,16,197,16,5,25,6,25,6,25,230,
+  16,5,197,16,138,165,8,165,8,132,8,164,8,133,0,133,0,132,8,132,
+  0,133,8,132,0,4,100,0,130,99,0,67,0,5,68,0,131,99,8,228,
+  24,36,33,3,37,33,144,36,33,36,33,37,33,37,33,69,41,69,33,69,
+  41,37,33,37,41,37,41,69,41,37,33,37,33,37,41,69,41,37,33,7,
+  36,33,129,37,33,6,36,33,129,37,33,5,36,33,129,4,33,3,36,33,
+  137,4,33,4,33,36,33,36,33,4,33,36,33,4,33,4,33,36,33,3,
+  4,33,130,36,33,36,33,20,4,33,130,228,24,197,81,7,39,171,157,7,
+  171,7,171,39,171,38,171,39,171,39,171,7,171,6,171,6,171,38,171,198,
+  162,6,171,198,154,38,171,164,146,6,163,230,170,100,138,5,122,198,146,68,
+  130,4,106,71,163,4,122,68,122,38,171,195,113,227,97,163,97,147,4,134,
+  40,58,138,74,203,90,12,99,12,99,45,99,4,44,99,131,12,99,44,91,
+  44,91,3,44,99,132,12,91,44,99,44,99,45,99,5,44,99,135,45,99,
+  12,91,44,99,44,99,44,91,45,91,45,99,3,44,99,134,44,91,45,91,
+  45,99,44,99,45,99,44,99,9,45,99,136,77,99,77,99,45,99,45,99,
+  45,91,45,99,45,91,44,91,3,77,99,129,77,91,8,77,99,129,45,99,
+  3,77,99,129,77,91,3,77,99,132,77,91,77,91,77,99,45,91,5,77,
+  99,3,77,91,131,77,99,77,91,77,91,7,77,99,141,77,91,77,91,12,
+  91,236,82,203,82,203,82,12,91,13,99,78,99,143,107,16,116,81,116,114,
+  116,3,114,124,155,146,124,147,124,147,124,81,116,110,99,73,58,195,16,97,
+  8,130,8,41,50,110,83,49,116,147,132,147,116,50,84,208,43,176,11,209,
+  3,50,4,147,12,180,20,212,28,21,29,21,45,244,76,180,108,147,124,3,
+  147,132,9,147,124,13,179,132,134,180,132,179,132,211,132,212,132,179,132,180,
+  132,3,179,132,132,212,132,179,132,180,132,179,124,3,179,132,131,180,132,179,
+  132,179,132,3,212,132,131,146,132,211,140,84,157,3,40,74,3,40,66,132,
+  40,74,40,66,40,66,40,74,4,40,66,130,40,74,40,74,3,40,66,134,
+  8,66,40,66,40,66,40,74,8,66,40,66,3,8,66,135,231,57,232,57,
+  232,57,231,57,199,57,199,57,231,57,3,199,57,147,166,49,167,49,199,57,
+  199,49,167,49,166,49,166,49,134,49,134,41,138,74,106,74,106,74,170,82,
+  171,82,138,74,138,74,105,74,73,66,105,74,4,73,66,136,73,74,106,74,
+  171,74,204,82,139,74,139,74,138,74,73,66,3,106,74,175,138,74,138,74,
+  139,82,203,82,204,82,204,82,236,90,236,90,13,91,13,91,45,99,13,99,
+  45,99,13,99,45,99,12,91,236,90,236,90,171,82,13,91,45,99,77,91,
+  110,99,208,107,208,107,82,116,147,124,212,132,86,141,119,141,249,149,91,158,
+  156,166,221,174,253,182,30,183,94,191,94,199,126,207,158,207,159,215,159,207,
+  191,215,191,223,191,223,223,223,191,223,3,223,231,129,191,223,5,223,231,129,
+  191,223,4,223,231,138,191,223,191,223,223,231,223,223,191,223,223,231,223,223,
+  223,231,223,223,223,223,8,223,231,130,223,223,223,231,3,223,223,133,191,215,
+  159,215,191,223,191,215,191,215,4,191,223,133,191,215,159,215,191,215,191,223,
+  191,215,3,159,215,129,190,215,3,159,215,134,158,215,159,207,159,215,126,207,
+  126,207,158,207,8,126,207,153,94,199,62,199,94,199,94,199,126,207,126,207,
+  126,215,126,207,126,215,94,207,126,207,62,199,62,199,94,207,94,207,61,199,
+  62,199,29,191,253,190,220,182,252,182,221,182,188,182,188,182,156,174,3,123,
+  174,130,155,174,155,174,3,123,174,133,155,174,21,141,163,24,66,8,98,8,
+  3,130,8,3,131,8,132,207,115,239,107,41,58,8,50,3,232,49,205,200,
+  49,232,49,200,41,200,49,167,41,167,41,199,41,135,41,167,41,167,41,135,
+  41,167,41,167,41,135,41,135,33,167,41,135,41,135,41,200,41,199,41,168,
+  41,200,41,103,33,131,0,204,82,200,41,167,41,41,58,139,74,204,90,12,
+  99,77,107,142,107,240,123,240,123,74,66,1,0,65,8,98,8,65,8,65,
+  8,33,8,0,0,8,58,49,124,114,124,49,116,49,116,50,116,50,116,49,
+  124,82,124,114,124,147,132,183,165,183,165,53,149,211,140,45,99,236,90,12,
+  99,8,66,105,74,77,107,8,66,69,41,195,24,33,0,228,32,8,66,40,
+  66,8,66,77,107,175,115,175,115,207,115,174,115,3,175,115,184,207,115,240,
+  115,240,115,49,132,207,115,210,164,52,173,117,181,241,115,202,33,235,41,202,
+  41,235,41,11,50,235,49,235,49,11,42,235,49,235,41,235,41,202,41,202,
+  41,170,33,137,33,137,25,170,33,203,41,235,41,170,33,105,25,72,25,72,
+  25,104,33,104,33,137,33,202,41,235,41,11,42,44,50,10,42,11,42,202,
+  41,169,41,137,33,104,33,72,25,72,25,71,33,39,25,38,25,6,25,6,
+  25,6,17,229,16,229,24,229,16,3,6,25,133,6,17,198,8,230,16,230,
+  16,197,8,4,165,8,134,132,8,165,8,132,8,133,8,132,8,132,8,7,
+  100,0,130,68,0,68,0,3,100,0,134,68,0,99,8,195,24,36,33,37,
+  33,37,41,5,37,33,130,69,41,69,33,3,37,33,146,69,33,69,33,37,
+  41,69,33,69,41,37,33,37,33,37,41,36,33,69,33,36,33,69,41,36,
+  33,36,33,36,41,36,33,36,33,37,33,3,36,33,133,36,41,36,33,36,
+  33,4,33,37,41,6,36,33,129,4,33,3,36,33,3,4,33,130,36,33,
+  36,33,3,4,33,134,36,33,4,33,4,33,36,33,4,33,36,33,4,4,
+  33,129,36,33,11,4,33,130,100,49,39,163,5,39,171,129,38,171,6,39,
+  171,151,38,171,227,121,69,114,39,171,98,97,230,138,67,97,68,106,35,81,
+  101,114,195,121,228,97,133,130,66,81,69,114,2,65,166,130,2,65,196,81,
+  68,106,2,57,8,155,134,146,134,4,134,69,33,134,41,231,57,105,74,170,
+  82,236,90,10,44,99,139,45,99,44,99,45,99,45,99,12,99,44,99,45,
+  99,44,99,44,99,45,99,45,99,3,44,99,140,45,91,45,99,44,99,45,
+  99,44,99,45,99,45,99,45,91,45,99,44,91,44,99,45,99,4,45,91,
+  130,44,91,45,91,3,45,99,143,77,99,45,99,45,99,77,99,44,99,44,
+  99,45,99,77,99,45,99,77,99,77,99,77,91,45,99,77,99,45,91,5,
+  77,99,129,77,91,12,77,99,129,77,91,3,77,99,152,77,91,77,99,77,
+  99,77,91,77,91,77,99,77,91,77,91,77,99,77,99,77,91,77,99,77,
+  99,77,91,12,91,203,82,203,82,204,90,12,91,45,99,78,99,175,107,16,
+  116,81,116,4,114,124,140,146,124,146,124,114,124,175,107,170,74,36,25,98,
+  8,97,8,135,33,78,83,17,108,146,124,3,179,132,146,180,132,179,124,82,
+  100,241,59,176,27,208,3,82,4,147,12,180,20,212,20,245,20,21,37,245,
+  60,212,100,179,124,147,132,147,132,146,124,5,147,124,129,179,124,7,179,132,
+  130,179,124,179,124,5,179,132,140,180,132,179,132,211,132,180,132,180,132,180,
+  124,180,132,179,132,179,132,211,132,180,132,179,124,3,179,132,139,180,132,179,
+  132,179,132,180,132,212,132,212,140,146,132,20,149,210,148,8,66,40,74,6,
+  40,66,3,8,66,130,40,66,72,74,10,40,66,130,40,74,41,74,3,8,
+  66,134,231,57,232,57,231,57,199,49,199,57,231,57,3,199,57,144,167,49,
+  199,57,199,49,167,49,199,49,167,49,166,49,134,49,167,49,171,82,203,82,
+  138,82,171,82,138,74,105,74,105,74,3,106,74,138,138,74,138,74,73,74,
+  73,66,73,66,73,74,106,74,138,74,171,82,203,82,3,106,74,136,138,74,
+  106,74,106,74,138,74,139,74,139,74,171,82,204,90,4,236,90,163,13,99,
+  13,91,13,91,12,91,13,91,12,91,45,99,13,99,236,90,235,90,204,82,
+  45,91,77,99,110,99,143,107,175,107,240,107,82,116,179,124,21,133,87,141,
+  184,149,26,158,156,166,221,174,253,174,30,183,62,191,94,199,126,199,159,207,
+  159,215,159,207,126,207,159,215,3,223,223,6,223,231,129,223,223,7,223,231,
+  133,191,223,191,223,223,223,191,223,191,223,3,223,231,129,191,223,3,223,231,
+  131,191,223,223,223,223,223,5,223,231,131,223,223,223,231,223,223,3,191,223,
+  133,191,215,191,223,223,231,223,223,223,223,5,191,223,130,223,223,191,223,3,
+  191,215,130,191,223,191,223,3,159,215,129,158,215,4,126,207,129,158,207,4,
+  126,207,141,158,207,126,207,126,199,94,199,62,199,94,199,126,199,126,207,94,
+  207,126,207,94,207,94,207,62,199,4,94,199,129,61,199,3,29,191,200,253,
+  190,253,190,252,190,220,182,220,182,187,182,252,182,219,182,187,182,187,174,187,
+  182,186,182,154,182,122,174,121,174,175,99,131,8,163,16,195,16,196,16,228,
+  16,196,16,196,16,228,16,5,25,207,107,207,107,8,58,9,58,232,57,8,
+  58,9,50,232,49,232,49,200,49,199,41,167,41,167,41,168,49,167,41,135,
+  41,167,41,135,33,135,33,135,41,135,33,135,33,135,41,135,41,103,41,168,
+  41,168,41,200,41,200,41,103,33,99,0,106,66,232,49,70,41,200,49,139,
+  74,236,90,13,99,77,107,142,107,175,115,207,115,17,124,13,91,1,0,65,
+  8,97,8,3,65,8,161,0,0,65,8,171,74,147,132,82,124,50,116,50,
+  116,49,116,114,124,115,124,147,132,183,165,182,165,20,149,178,132,77,99,236,
+  90,12,99,40,66,41,74,174,115,41,66,69,41,195,24,32,0,195,24,8,
+  66,40,66,8,66,77,107,174,115,175,115,174,115,4,175,115,141,239,115,240,
+  115,49,124,81,132,239,123,211,164,52,173,117,181,49,124,137,25,170,41,202,
+  33,202,41,3,235,41,133,234,41,11,50,11,50,235,41,202,33,3,170,33,
+  165,137,33,170,33,202,41,202,33,138,33,40,25,7,17,6,17,6,17,230,
+  8,6,17,72,25,169,33,235,49,11,50,11,42,234,41,202,41,169,41,169,
+  33,137,33,72,25,72,25,39,25,39,25,7,25,39,25,7,17,7,17,6,
+  25,6,25,7,25,7,25,39,25,7,17,230,16,198,16,3,230,16,131,198,
+  16,197,8,197,16,4,165,8,132,133,8,132,8,132,8,132,0,5,100,0,
+  129,100,8,4,100,0,132,68,0,68,0,99,0,195,24,3,37,33,146,37,
+  41,37,41,37,33,37,33,69,41,37,41,37,41,69,41,37,33,69,41,37,
+  33,37,41,69,41,37,33,37,41,37,33,69,33,36,33,3,37,41,8,36,
+  33,130,4,33,4,33,6,36,33,132,4,33,4,33,36,33,4,33,3,36,
+  33,132,4,33,4,33,36,33,36,33,3,4,33,132,36,33,4,33,36,33,
+  36,33,6,4,33,130,36,33,36,33,14,4,33,129,199,146,12,39,171,151,
+  230,162,35,81,99,65,165,130,99,97,69,114,2,65,34,57,226,48,68,65,
+  164,89,227,89,230,162,66,89,166,122,34,81,70,106,67,73,196,89,195,81,
+  4,106,227,97,195,97,114,4,139,102,33,102,33,69,25,134,41,167,41,40,
+  58,138,74,203,82,12,99,12,99,45,99,9,44,99,134,12,99,12,99,44,
+  99,45,99,45,99,12,99,4,44,99,129,45,91,3,45,99,130,44,99,44,
+  99,5,45,99,131,45,91,45,99,44,91,3,45,99,136,77,99,45,99,44,
+  99,77,99,77,99,45,99,45,99,77,99,3,45,99,134,77,99,45,99,45,
+  99,77,99,77,91,45,99,4,77,99,129,45,99,21,77,99,132,77,91,77,
+  91,77,99,77,99,4,77,91,159,77,99,77,99,45,91,77,91,236,82,203,
+  82,203,82,236,90,12,91,45,91,110,99,208,107,17,116,82,116,82,124,114,
+  124,114,124,146,124,147,124,147,132,16,116,236,82,166,41,98,8,97,8,5,
+  17,237,74,208,107,114,124,179,132,147,132,3,147,124,4,179,132,143,115,116,
+  50,84,241,51,241,19,50,12,115,12,179,12,244,20,245,28,21,29,21,45,
+  212,76,180,100,147,116,147,124,3,147,132,129,179,124,11,179,132,144,147,132,
+  147,124,179,124,180,132,179,132,179,132,180,132,179,132,179,132,180,132,179,132,
+  179,132,180,132,179,132,179,124,179,124,3,179,132,143,180,132,211,132,211,132,
+  212,132,179,132,114,132,20,149,80,132,8,66,40,66,8,66,40,74,40,74,
+  40,66,8,66,14,40,66,131,8,66,41,74,40,66,4,8,66,3,231,57,
+  4,199,57,134,199,49,167,49,166,49,166,49,167,49,199,49,3,166,49,145,
+  167,49,138,74,138,82,106,74,170,82,106,74,138,74,106,74,138,74,105,74,
+  105,74,138,74,138,74,106,74,105,74,138,74,138,74,3,106,74,131,138,74,
+  171,82,171,82,3,106,74,137,105,66,138,74,106,74,138,74,171,82,203,82,
+  203,82,236,82,236,90,4,13,91,164,13,99,13,91,45,99,13,91,45,99,
+  45,99,13,91,236,90,204,82,13,91,77,99,78,99,110,99,175,107,17,108,
+  49,116,115,124,245,132,86,141,151,149,25,158,91,166,156,166,188,174,30,183,
+  30,183,94,191,94,191,94,199,126,207,159,207,159,215,159,215,191,223,223,223,
+  223,223,6,223,231,136,191,223,223,231,223,223,223,231,223,223,223,231,223,223,
+  191,223,4,223,223,138,191,223,191,223,223,223,191,223,223,223,223,231,223,231,
+  223,223,223,231,255,231,4,223,231,129,223,223,3,223,231,132,223,223,191,223,
+  191,215,191,223,3,223,223,138,223,231,223,231,223,223,223,223,223,231,223,223,
+  223,223,223,231,223,223,223,231,5,191,223,146,159,215,159,207,191,215,191,215,
+  159,215,159,215,159,207,159,215,159,207,158,207,126,207,126,199,126,199,126,207,
+  126,207,94,199,126,199,94,207,7,93,199,152,60,199,60,191,28,191,252,190,
+  27,183,186,174,186,174,154,174,89,174,56,166,56,166,215,157,117,149,52,141,
+  212,132,114,116,49,116,207,107,110,91,45,91,236,82,107,66,74,58,70,33,
+  7,228,16,132,229,16,5,25,175,99,240,107,3,9,58,171,200,49,232,49,
+  200,49,232,49,200,41,200,41,167,41,168,41,200,49,167,41,135,41,167,41,
+  135,41,135,33,135,41,103,41,135,41,103,33,103,33,135,33,135,41,135,41,
+  200,41,167,41,102,33,98,0,232,49,41,58,37,33,102,41,106,74,204,82,
+  12,91,77,107,110,107,143,115,175,115,207,115,207,115,77,99,1,0,65,8,
+  98,8,4,65,8,157,0,0,163,16,45,91,147,132,50,124,49,116,82,124,
+  114,124,147,132,183,165,215,165,20,149,178,140,77,99,236,90,12,99,41,74,
+  40,66,142,115,73,74,101,49,227,32,0,0,195,24,8,66,73,74,8,66,
+  44,99,174,115,5,175,115,139,207,115,240,123,16,124,16,124,81,132,239,123,
+  178,156,84,173,85,181,114,132,170,33,3,202,41,135,235,41,202,41,235,41,
+  11,50,44,50,11,50,235,41,3,170,33,145,169,33,202,41,203,41,235,41,
+  235,41,170,33,105,25,40,25,39,25,39,17,6,17,39,17,104,25,137,33,
+  235,49,44,58,11,50,3,202,41,145,169,41,137,33,137,33,72,33,72,25,
+  72,25,40,25,39,25,39,25,40,25,39,25,39,25,40,25,40,25,8,25,
+  7,17,231,16,4,230,16,3,198,16,132,165,8,165,8,133,8,165,8,5,
+  132,8,8,100,0,133,68,0,100,0,68,0,67,0,164,16,3,36,33,136,
+  37,33,36,33,37,33,69,41,37,41,37,33,69,41,69,41,4,37,33,140,
+  69,33,69,41,37,41,36,33,36,33,37,33,37,33,69,41,37,33,37,33,
+  36,33,37,41,5,36,33,129,4,33,6,36,33,140,37,33,36,33,36,33,
+  4,33,4,33,36,33,36,33,4,33,36,33,37,33,36,33,36,33,3,37,
+  41,134,69,41,36,33,37,33,69,41,36,33,36,33,4,4,33,129,36,33,
+  14,4,33,131,228,32,102,106,71,179,9,39,171,153,7,171,39,179,69,138,
+  66,65,195,89,131,81,228,97,228,97,131,81,37,114,4,98,228,113,166,130,
+  68,122,228,105,36,106,39,163,101,146,197,146,165,154,101,130,230,154,39,171,
+  197,154,198,154,185,4,140,102,33,135,33,102,25,102,33,102,33,134,33,167,
+  41,232,49,73,66,170,74,203,90,12,91,4,44,99,131,12,99,44,99,45,
+  99,3,44,99,138,12,91,44,99,12,91,45,99,44,91,44,99,44,99,12,
+  91,45,99,44,99,3,45,99,131,44,99,45,99,45,91,4,45,99,130,44,
+  99,44,99,3,45,99,136,45,91,45,99,77,99,77,99,45,99,77,99,45,
+  99,77,99,3,45,99,136,77,99,45,99,45,91,77,99,45,91,77,99,45,
+  91,45,91,8,77,99,131,77,91,77,99,45,99,3,77,99,129,45,99,3,
+  77,99,129,45,99,9,77,99,130,77,91,77,91,3,77,99,141,77,91,77,
+  99,45,91,236,82,203,82,203,82,236,90,13,91,45,91,142,99,208,107,49,
+  116,82,116,3,114,124,168,146,124,147,124,81,124,77,91,40,58,195,16,98,
+  8,163,8,106,58,176,99,82,124,147,132,147,132,147,124,179,124,147,124,147,
+  132,147,132,147,124,147,124,147,132,147,132,179,132,179,132,147,124,82,100,17,
+  68,241,27,17,12,82,12,147,12,212,20,245,20,21,21,21,37,20,53,244,
+  76,212,100,179,116,179,124,6,179,132,130,179,124,179,124,3,179,132,134,147,
+  124,147,124,179,124,179,132,179,132,180,132,4,179,132,131,179,124,179,132,180,
+  132,7,179,132,136,211,132,211,132,212,132,114,124,146,132,85,157,174,115,8,
+  66,4,40,66,129,41,74,4,40,66,135,40,74,40,74,40,66,40,66,8,
+  66,40,66,40,74,4,40,66,131,8,66,8,66,41,74,5,8,66,130,231,
+  57,231,57,4,199,57,3,199,49,4,166,49,153,134,49,167,49,138,74,170,
+  82,106,74,138,74,170,82,138,74,138,74,170,82,106,74,138,82,138,74,138,
+  74,170,82,138,74,106,74,138,74,138,74,106,74,105,74,105,74,106,74,106,
+  74,138,74,5,106,74,146,138,74,138,74,171,82,203,82,204,82,236,90,13,
+  91,236,90,13,91,12,91,45,99,45,99,13,91,13,99,45,99,13,99,45,
+  99,45,99,3,12,91,156,45,91,77,99,110,99,208,107,240,107,17,116,50,
+  116,180,124,244,132,21,133,184,149,249,149,91,158,156,166,189,166,253,182,62,
+  183,94,191,94,199,126,207,126,199,159,207,191,215,191,215,223,223,223,223,223,
+  231,223,231,3,223,223,155,191,215,191,215,223,223,223,223,223,231,223,223,223,
+  231,223,223,191,223,191,223,191,215,191,223,191,223,191,215,191,223,191,215,191,
+  215,223,223,223,223,223,231,255,231,255,239,255,231,223,231,223,223,255,239,255,
+  231,7,223,231,3,223,223,7,223,231,142,223,223,223,223,223,231,223,223,223,
+  223,191,223,191,215,191,215,159,215,158,207,158,207,126,207,158,207,158,207,3,
+  126,199,157,93,191,93,199,61,199,60,183,28,191,60,191,219,182,154,182,154,
+  174,89,174,215,157,247,157,118,149,20,141,244,132,82,116,16,108,208,107,78,
+  99,13,83,204,82,106,66,9,58,233,49,167,49,70,41,37,33,5,25,196,
+  24,4,164,16,142,131,8,131,8,131,16,164,16,196,16,163,8,164,8,228,
+  16,37,17,5,17,228,16,228,16,5,17,5,17,3,228,16,147,208,107,207,
+  107,41,58,9,58,9,58,232,49,9,58,200,49,232,49,200,49,200,49,167,
+  41,168,41,168,41,135,41,167,41,167,41,135,41,135,33,4,135,41,154,135,
+  33,135,33,135,41,135,41,167,41,135,41,102,33,131,8,134,41,74,66,37,
+  25,70,33,74,66,204,82,13,91,77,99,110,107,143,115,207,115,175,115,142,
+  107,207,115,111,99,1,0,65,8,98,8,5,65,8,155,0,0,37,33,207,
+  107,114,132,82,124,82,124,114,124,150,165,248,173,85,149,179,140,110,99,236,
+  90,12,91,73,74,40,66,174,115,138,74,101,41,227,32,0,0,195,24,8,
+  66,40,66,8,66,12,99,207,115,4,175,115,3,207,115,137,239,123,16,124,
+  49,124,16,124,178,156,85,173,85,181,179,140,202,33,6,235,41,129,235,49,
+  3,235,41,3,170,33,155,202,41,235,41,235,41,12,50,12,50,235,41,170,
+  33,105,33,104,33,104,33,105,33,137,33,170,33,202,33,235,41,76,58,44,
+  58,234,49,202,41,202,41,170,41,137,33,137,33,105,33,73,25,73,25,72,
+  25,3,40,25,142,39,25,72,33,72,25,40,25,7,17,7,25,7,17,231,
+  16,7,17,231,16,230,8,230,8,198,16,197,8,3,165,8,5,132,8,132,
+  100,8,132,8,100,0,100,8,6,100,0,155,68,0,100,0,100,0,163,16,
+  4,33,37,33,69,33,37,33,69,33,37,33,69,33,37,33,37,33,69,33,
+  37,33,69,33,69,41,37,33,69,33,69,41,37,33,37,33,36,33,37,33,
+  37,41,69,41,37,41,3,69,41,132,37,33,36,33,36,33,37,41,3,69,
+  41,138,37,41,37,41,36,33,36,33,69,41,69,41,36,33,69,41,69,33,
+  37,41,3,36,33,140,4,33,69,41,101,41,36,33,4,33,69,41,69,41,
+  36,33,101,41,36,33,36,33,69,41,4,4,33,130,36,33,36,33,3,4,
+  33,132,36,33,4,33,4,33,36,33,8,4,33,133,228,32,197,65,71,171,
+  39,171,38,171,3,39,171,4,38,171,139,39,171,39,171,165,154,166,138,7,
+  171,198,154,230,154,230,154,230,162,7,171,38,163,3,39,171,131,7,171,39,
+  171,7,171,5,39,171,131,38,171,38,171,39,171,166,4,129,134,33,3,135,
+  33,129,134,33,4,135,33,134,200,41,8,58,106,74,171,82,236,90,12,91,
+  3,44,99,129,45,99,5,44,99,3,45,99,136,44,99,44,99,45,99,45,
+  99,44,99,45,99,45,99,44,91,3,45,99,129,44,99,3,45,91,130,45,
+  99,44,99,4,45,99,131,44,99,45,99,44,91,6,45,99,139,44,99,77,
+  99,45,99,77,99,45,91,77,99,45,91,45,91,77,99,45,91,45,99,8,
+  77,99,130,45,99,77,91,8,77,99,3,77,91,134,77,99,77,99,77,91,
+  77,99,77,99,77,91,3,77,99,142,77,91,45,91,77,91,45,91,236,82,
+  203,82,204,82,12,91,12,91,77,99,143,107,208,115,49,116,82,116,5,114,
+  124,141,175,107,170,66,36,25,98,8,97,8,200,33,78,83,49,116,147,124,
+  147,124,147,132,179,124,179,124,4,147,124,153,147,132,147,124,179,124,179,132,
+  147,124,147,124,147,132,179,132,147,124,114,116,50,76,241,43,17,12,50,4,
+  115,4,147,12,212,20,245,20,245,12,21,29,21,45,21,53,244,76,212,100,
+  212,124,8,179,132,130,179,124,179,124,4,179,132,132,180,132,179,132,179,132,
+  180,132,7,179,132,144,180,132,180,132,212,132,180,132,180,132,179,132,146,132,
+  117,157,44,99,40,66,41,66,40,66,40,66,8,66,40,74,40,74,3,40,
+  66,132,40,74,40,74,40,66,40,74,5,40,66,139,8,66,40,66,40,66,
+  40,74,40,66,8,66,40,66,8,66,232,65,231,57,231,57,5,199,57,131,
+  199,49,199,49,167,49,4,166,49,133,167,49,138,82,138,82,170,82,138,74,
+  3,170,82,137,138,74,138,82,138,74,138,82,138,74,138,74,106,74,138,74,
+  138,74,3,106,74,135,73,66,73,74,106,74,105,74,138,74,106,66,105,66,
+  3,106,74,136,138,74,138,74,139,74,171,82,204,82,236,90,236,90,13,91,
+  3,13,99,136,45,99,13,99,13,91,12,91,45,99,13,99,13,91,45,91,
+  3,12,91,155,78,99,110,99,142,99,143,99,175,107,49,116,114,124,245,132,
+  21,133,119,141,184,149,26,150,123,166,156,166,221,174,253,174,62,191,94,199,
+  126,207,126,207,159,207,159,207,191,215,191,215,191,223,159,215,159,215,4,191,
+  215,138,191,223,191,223,223,223,191,223,223,223,223,223,191,215,191,223,223,223,
+  223,231,5,191,223,133,191,215,191,223,223,231,255,231,255,231,5,255,239,135,
+  255,231,255,231,223,231,255,231,223,231,255,231,223,231,3,223,223,129,223,231,
+  4,223,223,157,158,207,191,215,191,215,158,207,158,207,126,199,93,191,61,191,
+  28,191,28,183,155,174,187,174,154,166,24,150,150,149,86,141,20,141,179,124,
+  146,124,17,108,111,99,13,91,204,82,139,74,9,58,200,57,135,41,70,41,
+  5,33,3,196,24,136,131,16,99,16,99,8,131,16,131,8,99,8,131,16,
+  163,16,4,163,8,138,196,16,196,16,164,16,196,16,228,8,228,16,196,8,
+  196,8,228,16,229,16,3,196,16,151,228,16,228,8,196,8,196,8,196,16,
+  228,16,228,8,196,8,196,8,228,16,228,16,196,8,196,16,17,116,175,107,
+  41,66,9,58,41,58,232,49,41,58,232,49,232,49,200,49,4,200,41,138,
+  135,33,167,41,167,41,135,41,135,33,135,41,167,41,103,33,167,41,135,33,
+  3,135,41,141,167,41,102,33,70,33,163,16,37,33,9,58,70,33,70,33,
+  74,66,204,82,237,90,77,99,110,107,3,175,115,136,110,107,142,107,208,115,
+  78,91,1,0,65,0,65,8,97,8,3,65,8,154,97,8,33,0,0,0,
+  167,49,81,124,147,132,114,124,150,165,247,173,118,157,52,149,142,99,236,90,
+  12,91,73,74,8,74,142,115,138,74,101,41,4,33,32,0,162,16,231,57,
+  41,74,8,66,12,99,4,175,115,140,207,115,207,115,207,123,207,115,239,115,
+  16,124,81,132,16,132,146,148,84,173,85,181,211,156,3,235,41,3,11,50,
+  162,11,42,235,41,202,41,203,33,203,33,202,41,202,41,203,41,235,41,12,
+  50,236,41,235,41,235,41,203,41,170,33,137,33,105,33,105,33,137,33,202,
+  41,203,41,202,41,11,42,12,50,11,50,235,41,235,41,202,41,137,33,137,
+  33,105,33,137,33,105,33,73,25,3,40,25,139,72,25,72,33,72,33,40,
+  25,8,17,7,17,231,16,7,17,231,16,231,16,231,8,4,198,8,132,165,
+  8,165,8,133,8,165,8,6,132,8,129,100,8,6,100,0,142,68,0,68,
+  0,100,0,67,0,163,8,4,33,69,33,37,33,37,33,69,33,37,33,36,
+  33,37,41,36,33,3,37,33,138,37,41,69,33,69,33,69,41,69,41,37,
+  41,36,33,69,33,69,41,102,49,4,69,41,129,102,41,3,69,41,130,102,
+  41,69,33,5,69,41,130,101,41,37,33,7,69,41,140,36,33,37,41,69,
+  41,36,33,4,33,69,41,37,41,36,33,69,41,36,41,69,41,69,41,4,
+  36,33,133,4,33,36,33,4,33,4,33,36,33,6,4,33,129,36,33,6,
+  4,33,133,68,49,39,163,39,171,39,171,38,171,6,39,171,140,7,171,38,
+  171,38,171,39,171,39,171,6,171,39,163,38,171,38,171,39,171,39,171,7,
+  171,3,39,171,133,38,171,6,171,39,171,6,171,38,171,3,39,171,130,6,
+  163,39,171,154,4,129,102,33,5,135,33,155,135,41,167,41,167,41,167,33,
+  167,33,199,33,232,49,41,58,138,74,203,82,236,90,44,99,44,99,44,91,
+  44,99,45,99,44,91,44,99,44,99,45,99,45,99,44,99,44,99,45,99,
+  44,99,45,99,45,99,3,45,91,5,45,99,133,45,91,45,99,45,91,45,
+  99,45,91,6,45,99,3,77,99,140,45,99,45,99,77,99,77,99,77,91,
+  45,99,45,99,77,99,45,99,45,91,45,91,77,91,10,77,99,133,77,91,
+  45,91,77,99,77,99,77,91,5,77,99,129,77,91,3,77,99,129,77,91,
+  6,77,99,141,77,91,45,91,77,91,12,91,236,82,203,82,203,82,12,91,
+  45,91,77,99,142,99,240,107,49,116,4,114,124,143,146,124,17,116,236,82,
+  199,41,130,8,97,8,37,17,13,75,241,107,115,124,179,124,147,124,147,124,
+  147,132,147,132,3,147,124,129,179,124,10,147,124,149,147,132,179,132,147,124,
+  82,100,17,68,210,43,241,3,50,4,114,12,147,12,180,20,212,20,244,20,
+  245,12,21,29,53,37,21,61,20,77,244,100,212,108,179,124,6,179,132,129,
+  180,132,11,179,132,129,179,124,3,180,132,139,179,132,211,132,146,132,179,140,
+  117,165,170,82,8,66,40,66,40,66,8,66,8,66,8,40,66,129,8,66,
+  6,40,66,162,41,74,40,66,40,74,40,66,40,66,8,66,232,65,231,57,
+  8,66,231,57,231,57,199,57,199,57,199,49,199,57,166,49,199,49,166,49,
+  134,49,166,49,134,41,199,57,170,82,171,82,170,82,203,82,171,82,138,74,
+  138,82,170,82,138,82,171,82,138,74,138,82,3,138,74,152,106,74,106,74,
+  105,74,105,74,73,74,105,74,73,66,73,66,41,66,73,66,106,74,106,66,
+  106,66,73,66,106,74,106,74,138,74,171,82,171,82,204,82,204,90,236,90,
+  13,91,13,91,3,45,99,163,45,91,45,99,45,91,45,91,45,99,13,91,
+  12,91,13,91,12,91,12,91,236,90,110,99,77,99,110,99,208,107,241,107,
+  49,116,147,124,245,132,54,141,119,141,249,149,91,158,156,166,221,174,30,183,
+  62,191,94,191,126,207,126,199,126,199,158,207,158,207,126,199,94,199,4,159,
+  207,129,191,223,4,223,223,3,191,223,136,223,223,223,223,223,231,223,231,191,
+  223,223,223,191,223,191,223,3,223,223,5,223,231,4,223,223,191,191,215,127,
+  207,255,223,191,215,223,215,191,207,158,207,126,199,93,199,93,199,252,182,219,
+  182,154,174,248,149,86,141,212,132,147,124,240,107,143,99,237,82,139,74,73,
+  66,232,57,168,49,70,41,5,33,196,24,163,16,164,16,131,16,98,8,98,
+  8,131,16,130,8,98,8,131,8,131,8,163,16,163,8,131,8,163,8,163,
+  8,164,16,163,8,163,8,195,8,228,16,195,8,163,16,163,8,196,16,196,
+  16,164,16,163,8,196,8,196,8,196,16,195,16,195,16,196,16,196,16,195,
+  8,195,8,3,196,8,130,164,8,196,16,5,196,8,132,195,8,195,16,196,
+  16,195,8,3,196,8,213,228,16,196,8,196,8,228,16,82,124,143,107,106,
+  66,41,58,9,58,8,50,9,58,200,49,232,49,232,49,200,41,168,41,167,
+  41,168,41,135,41,135,41,167,41,167,41,135,33,167,41,135,41,135,33,135,
+  41,135,33,135,33,135,41,135,33,135,41,102,33,38,25,164,16,196,16,102,
+  41,37,33,37,33,74,66,236,82,236,90,45,99,110,107,142,107,175,115,143,
+  107,110,107,111,107,175,107,240,115,78,91,0,0,65,8,98,8,65,8,65,
+  8,33,0,33,8,65,8,65,8,0,0,0,0,106,74,179,140,150,165,215,
+  165,86,157,85,149,142,107,236,90,44,99,105,74,232,65,175,115,138,82,102,
+  49,36,41,32,0,130,16,231,57,41,74,8,66,235,90,207,123,3,175,115,
+  4,207,115,136,240,123,16,124,81,132,48,132,146,148,85,173,85,181,20,157,
+  3,235,41,167,11,50,11,42,235,41,202,41,170,41,138,33,138,33,170,33,
+  170,33,202,41,235,41,203,41,235,41,203,33,170,33,170,33,138,33,137,33,
+  137,33,105,33,137,33,170,41,202,33,203,41,235,41,11,42,235,49,235,41,
+  203,41,202,41,170,33,137,33,105,33,137,33,105,33,72,33,72,25,40,25,
+  40,25,3,72,25,131,40,25,8,17,232,16,5,231,16,132,230,16,230,16,
+  198,8,198,16,5,165,8,135,133,8,132,8,132,8,100,8,100,0,100,0,
+  132,0,7,100,0,134,67,0,68,0,68,0,132,8,4,25,36,33,3,37,
+  33,129,69,33,6,37,33,138,69,33,37,33,69,41,101,41,69,33,37,41,
+  37,41,37,33,69,41,102,41,3,69,41,132,101,41,101,41,69,41,101,41,
+  4,69,41,133,101,41,69,41,69,41,101,41,101,41,5,69,41,134,37,33,
+  69,41,69,41,4,33,36,33,69,41,4,36,33,132,4,33,36,41,36,33,
+  37,33,3,36,33,5,4,33,130,36,33,36,33,9,4,33,129,4,41,4,
+  4,33,131,230,146,71,171,38,171,3,39,171,130,38,171,38,171,3,39,171,
+  140,38,171,6,171,7,171,6,171,6,171,39,171,38,171,6,171,38,171,39,
+  171,7,171,38,171,6,39,171,134,71,179,39,171,39,171,39,179,39,179,39,
+  171,158,4,131,70,33,102,33,135,33,3,135,41,133,167,33,168,33,167,33,
+  167,41,199,33,3,167,33,137,167,41,232,49,73,66,138,74,203,82,236,90,
+  44,99,45,99,45,99,3,44,99,135,45,99,45,99,44,99,44,99,45,99,
+  44,99,44,91,4,45,99,134,45,91,45,99,45,99,45,91,45,99,44,99,
+  4,45,99,134,77,99,44,99,45,99,77,99,77,99,45,99,4,77,99,129,
+  45,99,3,77,99,129,45,99,5,77,99,129,45,99,15,77,99,133,45,99,
+  45,99,77,99,77,91,77,91,4,77,99,4,77,91,130,77,99,77,99,3,
+  77,91,129,236,90,3,203,82,134,12,91,45,91,78,99,175,107,240,115,82,
+  124,3,114,124,139,146,124,82,124,110,99,41,58,195,8,98,8,163,8,106,
+  58,175,99,82,124,179,132,4,147,124,131,179,124,147,124,179,124,3,147,124,
+  129,147,132,11,147,124,151,147,132,179,132,147,132,147,124,81,92,241,59,177,
+  35,208,3,241,3,50,4,115,12,147,12,180,12,212,12,244,12,21,21,21,
+  21,53,37,54,45,21,69,245,92,212,108,211,124,6,179,132,132,179,124,179,
+  132,179,132,179,124,4,179,132,3,180,132,139,212,132,212,132,114,132,179,140,
+  85,157,72,74,40,74,40,66,40,66,8,66,8,66,3,40,66,129,8,66,
+  16,40,66,134,8,66,8,66,232,57,231,57,232,57,231,57,3,199,57,135,
+  199,49,199,57,167,49,166,49,167,49,134,41,231,57,9,170,82,142,171,82,
+  203,90,138,74,138,74,106,74,138,74,138,74,106,74,105,74,73,74,41,66,
+  73,66,41,66,41,66,3,73,66,150,106,74,106,74,105,74,106,74,106,74,
+  138,74,138,74,171,82,171,82,204,82,237,90,236,90,12,91,45,99,45,99,
+  13,99,13,99,45,99,13,99,13,99,13,91,13,99,3,13,91,151,13,99,
+  45,99,45,91,45,99,110,99,142,99,175,107,17,116,17,116,82,116,147,124,
+  21,133,86,141,216,149,26,158,123,166,156,174,253,182,29,183,30,191,94,191,
+  94,191,94,199,4,94,191,136,159,207,158,199,159,207,159,207,191,215,191,223,
+  191,215,191,223,3,223,223,134,191,223,159,215,223,223,191,223,191,223,191,215,
+  4,223,223,4,255,223,186,223,207,93,199,126,191,60,191,220,182,154,174,89,
+  166,118,149,21,133,115,124,208,107,78,91,205,82,74,66,9,58,135,41,38,
+  33,229,32,196,24,164,24,99,16,66,8,98,8,131,16,131,8,98,8,98,
+  8,131,16,163,16,163,16,163,8,163,16,195,16,163,8,163,8,195,8,196,
+  16,196,8,163,8,163,8,196,16,195,8,163,16,163,16,195,8,196,16,196,
+  16,163,8,163,16,196,16,196,16,195,16,163,16,163,16,195,16,195,8,195,
+  8,163,8,3,195,16,3,195,8,134,163,8,163,8,196,8,195,8,195,8,
+  196,8,3,195,8,131,196,8,196,16,196,16,3,195,16,136,196,8,164,16,
+  196,8,196,8,195,8,195,16,196,16,196,8,4,196,16,132,17,116,208,107,
+  73,66,41,58,3,9,58,144,200,49,233,49,232,49,200,49,167,41,200,49,
+  167,41,167,49,168,49,168,41,135,41,135,41,167,41,135,41,135,41,135,33,
+  6,135,41,155,70,33,228,24,228,16,69,41,102,33,37,33,41,66,204,82,
+  236,90,45,99,110,107,142,107,175,115,143,107,110,107,143,107,208,107,208,107,
+  17,108,13,83,0,0,65,8,98,16,65,8,130,16,228,24,0,0,3,65,
+  8,154,0,0,228,32,117,165,248,173,118,157,53,149,142,107,236,90,45,99,
+  105,74,8,66,174,115,171,82,102,49,36,33,33,0,130,16,231,65,41,74,
+  8,66,203,90,207,123,175,115,207,115,175,115,175,115,3,207,115,144,240,123,
+  17,124,81,132,49,132,113,148,85,181,85,173,85,173,10,42,203,41,203,41,
+  235,41,235,41,202,41,170,41,170,33,3,137,33,129,169,33,4,170,33,142,
+  138,33,137,33,105,33,137,33,137,33,105,33,137,33,105,33,137,33,170,33,
+  202,41,202,41,235,41,235,49,3,202,41,130,170,33,137,33,3,105,33,137,
+  72,25,72,25,40,25,40,25,72,25,72,25,40,25,7,25,7,17,5,231,
+  16,135,230,16,230,16,198,16,198,8,198,16,197,16,197,8,4,165,8,3,
+  132,8,129,100,8,7,100,0,136,100,8,68,0,68,0,100,0,68,0,99,
+  8,4,25,36,33,4,37,33,144,69,33,37,33,37,33,69,41,37,33,37,
+  33,69,33,69,33,36,33,37,33,69,41,37,41,37,41,69,41,37,41,101,
+  41,7,69,41,133,36,41,69,33,69,41,69,41,36,33,3,37,41,129,69,
+  41,4,36,33,130,36,41,36,41,3,36,33,136,4,33,36,33,36,33,4,
+  33,4,33,36,33,4,33,36,33,3,4,33,143,36,33,36,33,4,33,36,
+  33,4,33,36,33,4,33,36,33,36,33,4,33,4,33,36,33,4,33,36,
+  33,36,33,3,4,33,129,36,33,4,4,33,163,134,106,71,171,39,171,71,
+  171,39,179,39,171,39,171,38,171,71,179,71,179,38,171,38,171,71,179,38,
+  171,38,179,38,179,38,171,38,179,7,171,39,171,7,171,7,171,6,171,230,
+  170,230,162,198,162,166,154,166,146,165,146,133,138,101,138,69,130,37,122,36,
+  114,4,106,166,4,140,102,33,70,25,70,25,102,33,102,33,134,33,135,33,
+  167,33,200,33,167,33,200,41,200,41,5,167,33,137,199,41,8,58,73,66,
+  171,82,203,90,12,91,12,99,44,99,44,99,4,45,99,140,44,99,45,91,
+  12,99,45,99,44,99,45,99,44,99,44,99,45,99,44,91,44,91,45,99,
+  3,44,99,152,45,99,77,99,45,99,44,99,77,99,45,99,45,99,77,99,
+  45,99,45,99,77,99,45,91,45,91,45,99,45,99,77,99,45,99,77,99,
+  77,91,77,99,45,99,77,99,77,99,45,99,10,77,99,129,45,91,7,77,
+  99,130,77,91,45,91,6,77,91,130,77,99,77,99,3,77,91,140,45,91,
+  236,82,203,82,204,82,236,90,12,91,45,91,110,91,175,107,17,116,82,116,
+  82,124,3,114,124,140,207,107,170,74,36,25,98,8,98,8,167,33,110,83,
+  49,116,147,132,147,132,147,124,147,132,6,147,124,130,147,132,147,132,15,147,
+  124,154,179,132,179,132,180,132,179,132,179,124,50,100,241,67,176,27,177,11,
+  209,3,17,4,50,12,82,12,115,12,179,12,180,20,212,20,245,20,21,21,
+  53,29,53,37,53,61,245,76,244,92,212,116,179,124,5,179,132,132,147,132,
+  179,132,180,132,179,132,3,180,132,142,179,132,146,132,211,140,19,157,7,66,
+  40,74,40,74,8,66,8,66,40,66,8,66,8,66,40,74,73,74,4,40,
+  66,129,41,74,10,40,66,135,8,66,8,66,232,65,8,66,7,66,231,57,
+  231,57,3,199,57,138,199,49,167,49,167,49,134,49,134,41,232,57,171,82,
+  170,82,170,82,138,82,4,170,82,134,138,82,170,82,138,82,138,82,138,74,
+  105,74,3,73,74,3,73,66,149,41,66,41,66,73,66,73,66,73,74,73,
+  66,41,66,105,74,106,74,106,74,73,66,105,66,106,74,139,74,171,74,171,
+  82,204,82,236,90,12,91,12,91,13,91,4,45,99,130,13,99,45,99,4,
+  13,99,201,13,91,45,99,45,99,12,91,12,91,77,99,78,99,110,99,175,
+  107,240,107,81,116,82,116,212,124,21,133,86,141,184,149,58,158,123,166,189,
+  174,221,174,253,182,62,191,62,191,62,183,62,191,94,191,94,199,126,207,126,
+  207,191,215,191,223,191,223,191,215,223,223,223,223,255,223,255,223,191,207,255,
+  207,255,215,223,215,158,207,190,207,126,199,219,182,186,182,216,157,183,149,147,
+  124,50,116,240,115,237,82,204,74,233,57,135,49,5,33,196,24,132,16,98,
+  8,98,8,99,16,66,8,66,8,98,8,98,8,131,8,131,8,131,16,131,
+  8,163,8,131,16,163,8,163,8,5,163,16,157,196,16,164,16,163,8,163,
+  8,196,16,196,16,195,16,195,8,195,16,195,16,195,8,163,8,163,8,195,
+  16,195,16,195,8,163,8,195,16,195,16,164,16,195,16,196,16,195,16,163,
+  16,195,16,164,16,195,16,164,16,164,16,3,163,16,131,163,8,163,8,195,
+  16,5,163,8,138,195,8,195,8,196,16,196,16,196,8,195,16,195,8,163,
+  8,196,8,196,16,3,195,16,130,196,16,195,8,3,196,16,143,163,8,195,
+  8,195,8,196,8,195,16,195,8,163,8,228,24,240,115,143,99,74,66,41,
+  58,41,58,233,49,233,49,3,232,49,139,200,49,167,41,200,41,200,49,135,
+  41,167,41,167,41,135,41,135,33,135,33,167,41,3,135,41,129,103,41,3,
+  135,41,145,103,33,102,33,5,25,228,24,37,33,70,41,37,33,41,66,204,
+  82,13,91,45,99,78,107,142,107,143,115,143,107,78,99,110,99,3,175,107,
+  131,240,107,237,74,0,0,3,98,8,157,138,74,13,83,33,0,0,0,65,
+  8,33,8,130,16,243,148,24,174,85,157,20,149,175,107,236,90,44,99,138,
+  74,232,65,109,107,236,90,101,41,36,41,32,0,97,16,199,65,40,66,40,
+  66,203,90,207,123,207,115,175,115,4,207,115,155,240,123,240,123,16,124,81,
+  132,49,132,113,148,84,173,84,173,117,181,11,42,202,33,203,33,203,41,235,
+  41,202,41,202,41,170,41,137,33,105,33,137,33,105,33,137,33,137,33,170,
+  33,202,41,202,41,169,33,4,137,33,152,169,33,137,33,137,33,169,41,202,
+  41,202,41,235,41,235,49,202,41,170,41,170,33,170,33,137,33,105,33,73,
+  25,72,25,72,25,40,25,72,25,40,25,72,25,72,25,40,25,8,17,7,
+  231,16,131,230,16,198,16,198,16,3,198,8,3,165,8,135,133,8,133,0,
+  132,0,133,8,132,8,101,0,101,0,6,100,0,144,99,0,68,0,100,0,
+  100,0,100,8,228,24,37,33,37,33,69,33,37,33,69,41,69,33,37,33,
+  37,33,69,41,69,41,3,69,33,131,36,33,36,33,69,41,4,37,41,135,
+  69,41,37,41,37,33,36,33,69,41,69,41,37,33,7,36,33,129,37,41,
+  13,36,33,131,4,33,36,33,4,33,6,36,33,129,4,33,3,36,33,131,
+  4,33,36,33,4,33,3,36,33,4,4,33,131,36,33,4,33,36,33,6,
+  4,33,163,229,81,71,171,7,171,7,171,6,163,230,162,230,170,230,162,197,
+  154,165,154,133,146,133,146,132,138,69,130,70,122,5,122,4,106,228,105,228,
+  97,164,81,164,73,132,73,132,65,68,57,68,57,68,49,35,49,4,41,4,
+  41,3,41,3,33,3,33,227,32,3,33,4,33,162,4,137,9,50,200,41,
+  135,33,102,25,70,25,102,33,102,33,135,33,135,33,4,200,41,165,168,41,
+  200,41,200,33,200,33,135,33,167,33,167,41,232,49,41,58,138,74,203,82,
+  236,90,12,91,45,99,44,99,45,99,45,99,44,99,45,91,44,99,45,99,
+  44,99,44,91,45,99,45,99,45,91,45,99,44,99,44,91,45,99,44,99,
+  45,99,45,91,45,99,77,99,45,99,77,91,3,45,99,131,77,99,45,99,
+  45,91,3,77,99,129,45,91,4,77,99,136,45,91,77,99,45,99,45,91,
+  77,99,77,91,77,91,45,99,6,77,99,136,45,91,77,99,77,91,77,99,
+  77,91,77,91,45,91,45,91,4,77,99,4,77,91,159,77,99,77,99,77,
+  91,77,91,77,99,77,91,44,91,236,82,203,82,203,82,236,90,236,90,45,
+  91,110,99,208,107,17,116,82,124,114,124,114,124,146,124,49,116,44,83,231,
+  49,130,8,97,8,228,16,236,74,240,107,114,124,147,124,179,132,3,147,124,
+  130,147,132,147,132,4,147,124,129,147,132,13,147,124,177,147,132,147,124,147,
+  124,179,124,147,132,179,132,179,132,114,132,114,124,146,124,146,124,114,100,50,
+  68,241,35,177,11,208,3,241,3,17,4,17,4,82,12,115,12,147,12,179,
+  20,212,12,245,12,21,13,21,21,21,29,21,45,245,60,245,84,244,92,212,
+  116,212,124,180,132,179,140,180,140,180,132,180,132,212,140,179,132,146,132,20,
+  149,178,148,8,66,72,74,40,66,40,66,8,66,12,40,66,133,40,74,40,
+  66,72,74,40,66,72,66,4,40,66,132,8,66,8,58,232,65,232,57,3,
+  231,57,140,199,57,199,57,199,49,167,49,166,49,134,41,40,58,203,82,170,
+  82,203,90,170,82,170,82,4,138,82,132,170,82,138,74,138,82,138,74,3,
+  105,74,5,73,66,129,40,66,4,41,66,133,73,66,73,66,105,74,73,74,
+  106,74,3,138,74,131,170,74,171,82,203,82,3,236,90,143,13,91,13,91,
+  45,91,13,99,45,99,13,91,13,91,13,99,12,91,12,91,13,91,13,99,
+  13,91,13,91,45,99,3,12,91,170,45,99,110,99,78,99,111,99,175,107,
+  241,115,83,116,180,124,54,141,152,149,250,157,91,166,189,174,253,182,62,191,
+  94,199,159,207,159,207,191,207,223,215,255,215,255,223,255,223,158,207,61,191,
+  252,182,122,166,24,158,54,141,21,133,17,108,46,83,172,74,107,66,9,58,
+  70,41,5,33,196,24,131,16,99,16,34,8,34,8,4,66,8,140,98,8,
+  130,8,130,8,131,8,131,8,163,8,163,16,163,8,163,8,163,16,163,8,
+  195,8,4,163,16,129,163,8,4,163,16,131,163,8,163,16,163,16,3,163,
+  8,139,163,16,163,8,163,8,163,16,163,8,163,16,163,8,163,16,163,16,
+  163,8,163,16,4,163,8,142,163,16,162,8,162,8,163,16,163,16,195,8,
+  163,8,195,16,195,16,163,16,131,8,131,8,195,16,163,16,4,195,16,131,
+  195,8,195,8,195,16,5,163,8,131,131,8,131,8,130,8,3,131,8,129,
+  163,16,7,163,8,134,131,8,131,8,98,0,131,8,130,0,130,8,3,131,
+  8,136,163,8,16,116,143,99,74,66,9,58,9,58,232,49,9,58,4,232,
+  49,137,167,41,200,41,167,41,135,41,135,41,167,41,135,33,168,41,136,41,
+  4,135,41,129,103,41,4,135,41,145,167,41,70,33,228,24,37,33,70,33,
+  37,33,41,58,204,82,236,90,45,99,78,107,110,107,143,115,143,107,77,99,
+  78,91,143,99,3,175,107,160,17,116,204,74,0,0,97,8,130,16,0,0,
+  45,99,114,124,41,58,1,0,0,0,130,16,211,148,24,174,118,157,52,149,
+  207,107,12,91,44,99,171,82,232,65,174,115,236,90,134,41,68,41,33,0,
+  97,16,199,57,41,74,40,66,171,82,239,123,4,207,115,187,207,123,207,115,
+  240,123,240,123,16,124,81,132,81,132,81,140,84,181,84,173,117,181,75,50,
+  170,33,170,41,202,41,203,41,235,41,234,41,202,41,170,41,169,33,170,33,
+  169,33,202,41,170,41,234,41,235,41,234,41,170,41,169,33,169,41,137,33,
+  169,41,137,33,137,33,104,33,137,33,202,41,170,33,202,41,235,41,203,41,
+  170,41,170,33,170,33,138,33,105,25,105,33,72,25,73,25,73,25,72,25,
+  72,25,73,25,72,25,40,25,40,25,232,16,232,8,6,231,16,132,230,16,
+  198,16,198,8,198,8,3,166,8,135,133,8,165,8,133,0,132,8,133,0,
+  133,0,101,0,11,100,0,153,100,8,196,24,36,33,37,33,37,33,69,33,
+  37,33,69,41,69,33,69,33,69,41,69,41,69,33,37,33,37,41,37,33,
+  36,33,36,33,69,41,37,41,69,41,36,33,37,33,69,41,37,33,3,37,
+  41,141,37,33,69,41,37,41,36,33,36,33,37,33,37,33,36,33,36,33,
+  37,41,36,33,37,33,37,33,15,36,33,132,37,33,36,33,36,33,4,33,
+  4,36,33,129,4,33,3,36,33,8,4,33,129,36,33,3,4,33,142,36,
+  33,4,33,68,41,197,89,196,89,164,81,133,73,100,65,100,65,68,57,36,
+  49,36,49,36,41,4,41,3,4,33,131,228,32,228,32,4,33,3,228,32,
+  129,227,24,7,4,33,134,4,41,4,33,4,33,4,41,4,33,4,33,88,
+  4,134,41,58,74,50,41,50,9,42,168,33,135,33,3,102,33,148,103,33,
+  135,33,167,41,167,41,200,41,200,41,200,33,167,33,167,33,135,33,135,33,
+  167,33,167,33,199,41,8,50,73,66,138,74,203,82,12,91,12,99,6,44,
+  99,136,45,99,45,91,45,99,45,99,44,91,45,99,44,91,44,99,3,45,
+  99,135,45,91,45,99,44,99,45,91,77,99,77,99,44,91,3,77,99,139,
+  45,99,77,99,45,99,45,91,77,99,77,99,45,99,77,91,45,91,77,99,
+  45,99,5,77,99,129,45,91,5,77,99,132,77,91,77,91,77,99,77,99,
+  3,77,91,133,77,99,77,91,77,91,45,99,45,99,4,77,91,158,77,99,
+  77,91,77,99,77,99,45,99,77,99,12,91,236,82,203,82,203,90,236,90,
+  12,91,45,99,143,99,240,107,49,116,82,116,82,124,114,124,114,124,142,99,
+  105,66,228,16,97,8,130,8,42,50,143,91,81,116,147,132,147,132,15,147,
+  124,129,146,124,10,147,124,172,179,132,147,124,179,124,179,124,147,132,49,116,
+  49,116,82,116,147,124,179,132,179,132,180,132,179,132,147,116,82,84,49,60,
+  241,27,209,11,209,3,209,3,241,3,17,4,50,12,82,12,82,12,115,4,
+  115,4,147,4,147,4,180,4,180,12,212,20,212,20,212,36,212,44,212,60,
+  245,60,245,44,179,68,146,132,52,149,16,132,8,66,40,74,6,40,66,129,
+  41,66,5,40,66,131,72,66,40,66,41,74,5,40,66,134,8,66,40,66,
+  8,66,40,66,8,66,8,66,4,231,57,140,199,49,199,57,199,49,166,49,
+  199,49,134,41,73,66,235,90,171,82,203,82,203,82,170,82,3,138,82,138,
+  170,82,138,82,138,74,106,74,138,74,138,74,105,74,106,74,105,74,138,74,
+  5,73,74,137,41,66,138,74,73,66,41,66,73,66,73,66,73,74,73,66,
+  105,74,3,138,74,131,171,82,171,82,203,82,3,236,90,129,12,91,3,45,
+  99,134,45,91,45,99,12,91,12,91,236,90,236,90,4,204,90,163,237,90,
+  13,99,79,107,176,107,18,124,82,124,245,140,151,157,25,174,155,182,252,182,
+  126,199,223,207,191,207,126,199,126,199,125,199,252,182,122,166,183,149,21,133,
+  179,124,176,99,13,83,139,74,233,57,136,41,229,32,164,24,66,16,66,8,
+  34,8,33,8,33,8,65,8,3,66,8,141,98,8,130,8,131,8,130,8,
+  131,8,131,16,163,16,163,8,131,8,131,16,163,8,163,8,131,8,4,163,
+  8,130,163,16,163,16,3,163,8,10,163,16,3,163,8,130,130,8,130,16,
+  6,163,8,133,131,8,130,8,163,8,163,16,163,8,3,163,16,133,163,8,
+  163,16,163,8,131,8,163,8,3,131,8,130,130,8,130,8,3,131,8,133,
+  130,8,131,8,131,8,130,8,130,0,3,130,8,136,98,8,98,0,98,8,
+  98,8,130,8,130,8,131,8,131,8,3,130,8,131,131,8,131,8,130,0,
+  4,130,8,6,131,8,130,163,8,131,8,4,163,8,148,130,8,196,16,81,
+  124,110,99,74,66,9,58,9,58,232,49,9,58,232,49,200,49,232,49,200,
+  41,167,41,167,41,199,41,167,41,168,41,135,41,167,41,4,135,41,189,167,
+  41,135,41,135,33,167,41,167,41,135,41,167,41,136,41,102,33,5,17,4,
+  25,37,33,37,33,9,58,203,82,12,91,45,99,78,107,110,107,143,115,110,
+  107,45,91,78,91,111,99,175,107,175,107,207,107,208,107,82,124,74,58,0,
+  0,97,8,98,8,0,0,207,107,146,124,17,116,135,33,1,0,178,148,24,
+  174,118,157,53,149,207,107,236,90,45,99,171,82,231,65,174,115,13,99,166,
+  49,68,41,33,8,97,8,166,49,73,74,40,66,138,82,207,123,207,115,207,
+  115,3,207,123,159,239,123,240,123,16,124,48,124,81,132,114,132,48,140,84,
+  181,84,173,150,189,75,50,137,33,170,41,234,41,235,41,235,41,11,50,235,
+  41,202,33,170,33,170,41,202,41,202,41,170,33,202,41,235,49,235,41,202,
+  33,169,33,170,41,169,33,3,137,33,143,104,33,137,33,137,33,170,33,170,
+  33,203,41,170,41,138,33,138,33,170,33,106,25,105,25,105,25,105,33,105,
+  33,4,73,25,133,72,25,40,25,8,17,8,17,232,16,6,231,16,130,198,
+  16,198,16,3,198,8,131,165,8,166,8,165,8,3,133,8,133,133,0,133,
+  0,101,0,133,0,101,0,10,100,0,134,164,16,4,33,36,33,69,33,37,
+  33,69,41,3,37,33,152,69,41,37,41,36,33,37,33,69,41,69,33,36,
+  33,36,33,37,33,37,41,36,33,37,33,37,33,36,33,69,41,37,33,37,
+  33,36,33,37,33,36,33,37,41,37,33,36,33,37,41,4,36,33,3,37,
+  33,131,36,33,36,33,37,33,18,36,33,3,4,33,132,36,33,4,33,4,
+  33,36,33,33,4,33,129,36,33,4,4,33,129,36,33,3,4,33,134,36,
+  41,4,33,4,33,36,33,4,33,4,33,92,4,137,9,50,41,50,74,58,
+  74,50,73,58,9,50,233,41,167,33,135,33,3,102,33,137,135,33,167,33,
+  167,33,200,33,168,41,135,41,135,41,167,41,135,33,3,167,41,136,168,33,
+  232,41,9,58,106,66,171,74,236,90,12,91,12,91,4,44,99,131,45,99,
+  44,99,45,91,3,44,99,131,45,99,45,99,45,91,5,45,99,131,44,91,
+  45,99,45,91,3,45,99,140,45,91,45,99,77,99,45,99,77,99,77,91,
+  45,99,77,99,77,91,77,99,77,99,77,91,9,77,99,130,77,91,77,91,
+  3,77,99,129,45,91,3,77,91,132,77,99,45,91,77,99,77,99,3,77,
+  91,129,77,99,3,77,91,132,77,99,77,99,45,91,12,83,3,203,82,150,
+  12,91,12,91,77,99,175,99,240,107,49,124,82,124,114,124,114,124,240,115,
+  236,82,134,33,130,8,97,8,102,25,45,83,241,107,147,124,147,132,147,124,
+  147,132,147,132,8,147,124,135,146,124,147,124,146,124,146,124,147,124,146,124,
+  115,124,6,147,124,132,147,132,147,124,147,132,147,132,3,179,132,135,114,124,
+  240,107,16,108,49,108,147,124,179,132,179,124,3,179,132,3,180,132,140,179,
+  132,115,108,82,92,18,68,241,43,176,27,144,11,144,3,144,3,176,3,208,
+  3,209,3,3,241,3,146,240,3,208,3,208,3,241,3,241,3,144,3,50,
+  60,211,140,52,157,142,115,231,65,40,66,40,74,40,66,40,74,40,66,40,
+  66,41,74,9,40,66,130,41,74,40,74,6,40,66,4,8,66,145,231,65,
+  231,57,199,57,199,57,231,57,199,49,199,49,166,49,73,66,203,90,203,90,
+  203,82,203,90,203,90,171,82,170,82,138,74,5,138,82,131,105,74,138,74,
+  138,74,5,105,74,3,73,74,141,73,66,105,74,105,74,73,66,73,66,41,
+  66,41,66,73,66,73,66,106,74,106,74,138,74,138,74,3,171,82,6,204,
+  90,156,13,99,78,107,144,115,241,115,50,124,180,140,87,157,25,174,155,182,
+  61,191,223,207,190,199,255,215,255,215,255,207,125,191,251,174,57,166,85,141,
+  146,116,176,91,13,83,106,66,135,49,5,33,196,24,99,16,66,8,3,1,
+  0,141,33,0,34,0,66,8,98,8,98,8,130,8,130,8,131,16,131,16,
+  163,16,131,8,131,16,131,16,3,130,8,146,131,8,130,8,131,8,163,16,
+  131,8,130,8,130,8,163,16,131,8,131,16,131,8,163,8,131,8,131,8,
+  163,16,163,16,163,8,131,8,6,163,8,133,131,8,163,8,131,8,163,8,
+  163,16,3,131,8,129,163,8,14,130,8,5,98,8,129,98,0,4,98,8,
+  5,130,8,139,131,8,131,8,130,8,130,8,98,8,130,8,130,8,130,0,
+  130,0,131,8,130,8,10,131,8,131,130,8,130,8,131,8,9,130,8,165,
+  98,8,130,8,130,8,130,0,130,0,131,8,130,8,98,0,98,0,164,16,
+  48,116,207,107,74,66,42,58,41,58,9,58,9,58,200,49,232,49,9,50,
+  200,49,200,41,167,41,200,49,200,41,135,41,135,41,167,41,168,41,135,41,
+  167,41,135,41,135,41,168,41,135,41,135,41,167,41,3,135,41,130,135,33,
+  70,33,3,37,33,176,9,66,204,82,236,90,45,99,78,107,110,107,143,115,
+  110,107,45,99,77,91,111,99,143,99,175,107,176,99,240,107,240,107,114,124,
+  135,33,0,0,97,8,65,8,98,8,82,124,49,116,147,124,208,115,146,140,
+  24,174,85,157,20,149,240,115,236,90,44,99,203,82,232,65,77,107,109,107,
+  134,49,69,41,65,8,65,8,166,49,73,74,40,66,105,74,239,123,207,123,
+  207,115,3,240,123,3,16,124,150,49,124,81,132,114,132,16,132,84,173,84,
+  173,149,181,172,66,137,33,169,33,202,41,202,41,235,49,11,50,11,50,234,
+  41,203,41,203,41,235,41,235,41,170,33,170,33,3,202,41,144,170,33,170,
+  41,137,33,105,33,72,25,105,33,104,33,105,33,137,33,137,33,170,33,170,
+  33,138,33,105,25,138,33,138,33,6,105,25,137,73,25,73,25,105,25,73,
+  25,41,17,40,25,8,17,8,17,232,16,6,231,16,4,198,8,133,166,8,
+  165,8,165,8,133,8,133,8,3,133,0,129,101,0,4,100,0,129,101,0,
+  7,100,0,141,164,16,36,33,37,33,37,33,69,33,69,41,37,33,69,33,
+  37,33,69,41,37,33,69,41,69,33,4,37,33,133,37,41,69,33,69,33,
+  69,41,69,41,3,37,41,147,69,41,37,41,37,33,36,33,36,41,36,33,
+  37,33,36,33,36,33,37,33,37,41,36,33,36,33,37,33,37,33,36,33,
+  36,33,37,33,37,41,5,36,33,129,37,33,5,36,33,135,4,33,36,33,
+  36,33,4,33,4,33,36,33,36,33,4,4,33,130,36,33,36,33,3,4,
+  33,129,36,33,11,4,33,129,36,33,5,4,33,3,36,33,132,4,33,36,
+  33,4,33,36,33,7,4,33,129,36,33,6,4,33,134,36,33,4,33,4,
+  33,36,33,36,41,4,33,46,4,148,9,50,8,50,8,50,41,50,73,58,
+  74,58,74,58,41,58,41,50,232,41,167,33,134,33,102,33,102,25,134,25,
+  135,33,135,33,135,41,135,33,135,41,3,135,33,148,167,41,168,33,200,33,
+  200,41,200,41,8,42,73,58,139,74,203,82,236,90,12,99,12,91,44,99,
+  45,99,44,99,45,99,45,99,44,99,44,91,45,99,3,45,91,129,44,91,
+  5,45,99,129,45,91,3,45,99,3,77,99,135,44,99,45,99,45,91,77,
+  99,45,91,77,99,45,91,7,77,99,130,45,91,45,91,3,77,99,129,77,
+  91,4,77,99,129,77,91,3,77,99,131,45,91,77,99,77,99,4,77,91,
+  161,45,91,77,91,77,91,45,91,45,91,77,91,236,82,203,82,203,82,236,
+  82,236,90,12,91,77,99,175,107,240,115,49,116,114,124,114,124,82,124,110,
+  99,40,58,163,16,98,8,163,8,139,58,176,99,82,124,147,132,147,124,146,
+  124,147,124,147,124,147,132,10,147,124,130,146,124,146,124,10,147,124,138,179,
+  132,179,124,179,124,147,124,179,124,82,124,207,99,240,99,49,108,147,124,5,
+  179,132,3,179,124,153,179,132,179,132,211,140,211,140,212,140,180,132,179,132,
+  147,116,83,108,82,92,17,76,209,59,208,43,143,35,144,27,144,27,111,27,
+  111,27,111,19,78,11,14,3,17,84,178,140,85,157,235,98,3,8,66,5,
+  40,66,129,8,66,16,40,66,135,8,66,40,66,8,66,232,57,232,57,231,
+  57,231,57,3,199,57,195,167,49,105,74,235,90,203,90,171,82,203,90,170,
+  82,138,82,170,82,138,74,138,74,170,82,170,82,138,82,170,82,170,82,138,
+  82,138,74,105,74,138,74,106,74,106,74,73,74,105,74,105,74,73,74,73,
+  66,41,66,40,66,8,66,41,66,8,66,232,57,9,66,8,66,9,66,41,
+  66,74,74,139,82,237,90,78,99,209,115,83,132,245,140,119,157,25,166,155,
+  182,93,199,191,207,158,199,255,215,255,215,190,191,219,174,89,158,216,149,53,
+  133,82,116,143,91,204,74,233,57,103,41,5,33,98,16,66,16,33,8,1,
+  8,3,1,0,131,65,8,65,8,66,8,6,98,8,4,130,8,132,98,8,
+  130,8,131,8,131,16,13,130,8,129,98,8,6,130,8,134,131,8,130,16,
+  162,8,131,16,131,16,130,8,6,98,8,133,130,8,130,8,131,8,130,8,
+  130,8,6,98,8,4,130,8,137,163,8,163,16,163,16,163,8,131,8,163,
+  8,131,8,130,8,131,8,3,130,8,7,131,8,4,130,8,129,131,8,7,
+  130,8,136,130,0,98,0,130,8,98,0,130,8,130,8,98,8,98,0,7,
+  98,8,130,98,0,98,0,3,98,8,3,98,0,7,98,8,138,98,0,98,
+  0,131,8,131,8,98,0,196,16,81,124,240,115,74,66,41,58,3,9,58,
+  139,199,41,200,41,200,49,200,49,168,41,200,49,167,41,200,49,167,41,135,
+  33,167,41,10,135,41,184,167,41,135,41,135,33,135,33,135,41,69,33,5,
+  33,8,58,171,82,204,82,45,99,77,107,110,107,142,107,110,107,45,99,45,
+  99,110,99,143,99,175,107,208,107,176,107,208,107,241,107,82,116,196,8,33,
+  0,98,8,33,0,4,33,114,132,17,116,82,124,53,157,248,173,53,149,211,
+  140,207,115,236,98,45,99,235,90,199,57,195,24,134,49,134,49,101,49,65,
+  8,65,8,134,49,73,74,41,74,105,74,239,123,207,123,175,115,239,123,3,
+  240,123,150,16,124,16,124,49,124,81,132,81,132,16,132,84,173,85,173,150,
+  189,205,74,137,33,137,33,170,41,202,41,235,41,235,41,11,50,234,41,203,
+  33,235,41,235,41,202,41,3,170,33,138,202,41,170,41,170,33,170,33,169,
+  33,105,33,72,25,72,33,72,25,104,25,3,105,33,133,137,33,105,33,105,
+  33,105,25,138,33,4,105,25,159,105,33,105,33,73,25,105,25,73,25,41,
+  25,41,25,40,17,8,17,8,17,232,16,231,16,231,16,7,17,231,16,199,
+  8,198,16,198,16,198,8,198,8,166,8,166,8,165,8,165,8,133,0,133,
+  8,133,8,133,0,133,8,101,0,101,0,3,100,0,129,101,0,4,100,0,
+  133,68,0,100,0,68,0,99,8,4,33,3,37,33,3,69,41,147,37,33,
+  69,33,37,33,69,33,69,41,37,33,37,33,69,41,69,41,37,33,37,33,
+  69,33,37,33,37,41,69,41,37,41,37,41,37,33,37,41,3,36,33,130,
+  37,33,37,33,3,36,33,136,37,33,36,33,36,33,37,33,37,41,37,41,
+  37,33,37,33,13,36,33,130,4,33,4,33,10,36,33,5,4,33,138,36,
+  41,4,33,36,33,4,33,4,33,36,41,4,33,4,33,36,41,36,33,4,
+  4,33,3,36,33,17,4,33,129,36,33,7,4,33,1,36,33,44,4,130,
+  41,50,41,50,4,9,50,142,41,50,73,58,74,58,74,58,41,58,9,50,
+  232,41,167,33,103,25,102,25,102,33,103,33,135,33,134,33,4,135,33,150,
+  167,33,200,41,200,41,200,33,200,33,200,41,232,41,41,50,106,58,171,74,
+  203,82,236,90,12,91,45,99,45,91,45,99,45,99,44,91,45,99,45,99,
+  44,99,44,91,4,45,99,129,77,99,3,45,99,133,44,99,45,99,45,99,
+  77,99,45,99,3,77,99,3,45,99,132,77,99,45,91,77,99,45,99,3,
+  77,99,129,77,91,4,77,99,129,77,91,3,77,99,173,77,91,77,99,77,
+  91,45,91,77,99,77,99,45,91,45,99,77,91,77,99,77,91,77,91,77,
+  99,77,99,77,91,77,91,77,99,77,99,45,91,236,82,203,82,203,82,236,
+  90,12,91,45,91,78,99,175,107,17,116,50,116,114,124,114,124,240,115,203,
+  74,69,33,97,8,98,8,135,33,78,83,17,116,147,132,147,132,146,124,147,
+  124,147,132,147,132,6,147,124,134,146,124,147,124,147,124,146,124,147,124,147,
+  124,3,146,124,130,147,124,146,124,3,147,124,141,147,132,179,132,147,132,147,
+  132,179,132,179,124,179,132,147,132,49,116,175,99,208,99,49,116,147,132,8,
+  179,132,129,179,124,11,179,132,134,211,132,212,140,212,132,212,132,212,140,212,
+  140,3,244,132,135,146,140,179,140,117,165,137,82,8,66,40,74,8,66,3,
+  40,66,129,40,74,8,40,66,129,40,74,4,40,66,129,41,74,4,40,66,
+  3,8,66,129,232,57,4,231,57,135,199,57,199,57,138,74,203,90,203,90,
+  170,82,171,90,4,170,82,129,138,82,4,170,82,174,138,82,138,82,137,74,
+  105,74,105,74,73,74,73,74,40,74,41,74,8,66,9,66,41,74,74,74,
+  139,82,237,90,240,115,82,132,82,124,244,148,151,165,58,174,252,198,93,199,
+  158,199,223,199,255,215,223,207,223,207,93,199,154,174,183,157,211,132,176,99,
+  13,91,74,74,167,49,5,33,132,24,66,8,1,8,1,0,0,0,0,0,
+  1,0,33,8,33,8,4,65,8,130,98,8,130,8,3,98,8,4,130,8,
+  3,98,8,6,130,8,4,98,8,131,66,8,98,8,98,8,3,65,8,133,
+  97,8,97,8,65,8,65,8,97,8,6,65,8,131,98,8,98,8,97,8,
+  4,98,8,130,97,8,130,8,6,98,8,131,130,8,130,8,98,8,11,130,
+  8,129,130,16,4,130,8,129,131,8,4,130,8,3,98,8,133,130,8,98,
+  0,98,8,98,8,98,0,5,98,8,129,98,0,3,98,8,131,98,0,98,
+  8,98,8,7,98,0,12,98,8,129,98,0,7,98,8,129,98,0,4,98,
+  8,146,130,0,130,8,131,8,131,8,130,8,98,0,196,24,49,124,240,115,
+  138,66,41,58,9,58,232,57,8,50,199,41,232,49,232,49,200,49,4,168,
+  41,131,167,41,168,41,135,33,3,135,41,132,167,41,135,41,135,41,167,41,
+  7,135,41,173,168,41,167,49,70,41,8,58,171,82,236,90,45,99,78,107,
+  110,107,142,107,110,107,45,99,45,91,110,99,143,99,175,99,175,107,176,107,
+  176,107,175,99,208,107,17,116,65,0,65,8,97,8,0,0,9,66,114,132,
+  49,116,20,149,248,173,85,157,243,148,240,115,12,99,106,74,167,57,101,49,
+  228,32,195,24,162,24,195,24,130,16,98,8,134,49,3,73,74,129,207,123,
+  3,207,115,129,239,123,3,240,123,139,16,124,48,124,49,132,81,132,239,131,
+  52,173,84,173,150,189,14,83,137,33,137,33,3,170,33,131,202,41,203,41,
+  202,41,3,202,33,131,170,33,138,33,138,33,5,170,33,143,137,33,105,33,
+  72,25,72,33,72,25,72,25,105,33,72,25,105,33,105,25,104,33,40,25,
+  73,25,105,33,105,33,3,105,25,139,73,25,105,25,73,25,73,25,41,17,
+  40,17,41,25,40,17,8,17,232,8,8,17,4,231,16,131,199,8,199,8,
+  199,16,3,198,8,139,166,8,166,8,134,0,133,0,133,8,133,0,101,0,
+  132,0,100,0,101,0,101,0,7,100,0,142,68,0,100,0,68,0,99,8,
+  228,24,36,33,69,33,69,33,36,33,37,41,69,41,69,41,69,33,69,33,
+  5,37,33,129,69,41,3,37,33,147,36,33,69,41,37,41,36,33,37,41,
+  36,33,36,33,37,41,36,33,36,33,69,41,36,33,36,33,37,41,37,33,
+  37,33,36,33,36,41,37,33,6,36,33,129,4,33,14,36,33,131,4,33,
+  4,33,36,33,4,4,33,129,36,41,3,4,33,3,36,33,3,4,33,133,
+  36,33,4,33,36,33,4,33,36,33,6,4,33,129,36,33,6,4,33,129,
+  36,33,4,4,33,129,4,41,3,4,33,129,36,33,6,4,33,3,228,32,
+  130,4,33,227,32,55,4,3,41,58,145,41,50,41,50,9,50,8,42,9,
+  50,41,58,41,58,74,58,106,66,74,58,41,50,9,42,200,33,167,33,102,
+  33,102,25,103,33,4,135,33,149,167,33,200,33,200,41,200,41,200,33,232,
+  41,233,41,233,41,232,41,41,50,74,58,139,66,171,74,204,82,12,91,12,
+  91,44,99,45,91,45,91,44,91,44,99,3,45,99,132,44,99,45,99,45,
+  99,45,91,3,45,99,138,44,99,45,99,45,91,45,99,77,99,45,99,45,
+  99,45,91,77,99,45,99,3,77,99,143,45,91,77,99,45,99,77,99,77,
+  99,45,91,45,91,77,99,77,99,45,99,77,99,45,91,77,99,77,99,45,
+  99,3,77,99,134,77,91,77,99,77,99,77,91,45,91,45,99,7,77,91,
+  151,45,91,203,82,203,82,171,74,236,82,12,91,45,91,110,99,208,107,17,
+  116,82,116,114,124,82,124,110,99,8,58,162,16,97,8,195,16,204,74,208,
+  107,114,124,147,124,147,132,5,147,124,129,147,132,5,147,124,138,114,124,147,
+  124,146,124,115,124,147,124,146,124,146,124,147,124,147,124,146,124,4,147,124,
+  159,147,132,179,132,147,132,179,132,147,132,147,124,147,132,17,116,175,99,240,
+  99,82,116,147,132,179,132,179,132,147,124,179,124,179,132,179,132,179,124,179,
+  132,179,132,179,124,179,124,179,132,179,132,147,124,179,124,147,132,179,132,179,
+  132,179,124,3,179,132,138,179,124,180,124,179,132,179,132,180,132,211,132,211,
+  132,146,132,211,140,52,157,4,40,74,8,40,66,135,41,74,40,66,40,66,
+  72,74,40,66,40,66,40,74,4,40,66,129,41,74,3,40,66,132,8,66,
+  232,57,231,57,231,57,4,199,57,130,138,82,203,90,4,170,82,3,138,82,
+  165,105,82,105,82,105,74,105,74,73,74,105,82,106,74,171,82,204,90,13,
+  91,110,107,240,115,114,132,53,149,215,165,187,190,93,199,126,207,223,223,255,
+  223,255,223,190,207,93,199,186,182,90,182,183,165,212,140,49,116,204,82,233,
+  57,70,41,229,32,99,16,34,8,1,0,0,0,1,0,3,0,0,133,33,
+  8,65,0,33,8,65,8,66,8,7,98,8,137,130,8,98,8,98,16,97,
+  8,130,8,163,16,98,8,65,8,97,8,13,98,8,132,97,8,98,8,98,
+  8,66,8,3,65,8,129,97,8,3,65,8,129,97,8,15,65,8,129,65,
+  0,5,65,8,137,65,0,97,8,98,8,98,0,98,0,97,8,98,8,97,
+  0,97,8,5,98,8,129,66,8,8,98,8,134,98,0,98,8,98,8,97,
+  8,98,8,97,8,3,98,8,130,97,8,65,8,6,98,8,131,98,0,98,
+  8,97,8,9,98,8,131,98,0,98,8,98,0,4,98,8,129,98,0,10,
+  98,8,129,130,8,4,98,8,129,130,0,3,130,8,149,130,0,130,8,130,
+  8,131,8,130,8,98,0,4,25,49,124,175,107,138,66,41,58,41,58,232,
+  49,9,58,200,49,232,49,233,49,200,49,168,41,200,49,200,41,4,167,41,
+  6,135,41,3,167,41,129,135,41,3,167,41,137,168,41,200,49,232,49,233,
+  57,41,66,171,74,236,90,13,91,77,99,3,110,107,135,13,99,13,91,78,
+  99,111,99,143,99,175,107,176,107,3,143,99,162,208,107,110,91,0,0,97,
+  8,98,8,0,0,13,99,49,124,244,148,248,173,85,157,52,149,16,116,199,
+  57,166,49,166,57,69,41,162,24,130,16,228,32,4,33,228,32,163,24,227,
+  24,166,49,40,66,73,74,239,123,240,123,207,115,207,115,239,115,207,115,239,
+  123,3,240,123,136,49,132,81,132,16,132,84,173,85,181,150,181,79,91,105,
+  33,9,170,33,133,169,33,137,33,138,33,137,33,138,33,4,170,33,144,137,
+  33,105,33,72,25,39,25,71,25,72,25,72,25,40,25,72,25,104,25,72,
+  25,40,25,40,25,105,25,105,33,106,25,4,105,25,136,73,25,40,25,40,
+  17,41,17,40,25,8,17,8,17,8,9,6,231,16,136,199,8,199,16,166,
+  8,198,8,166,0,166,0,166,8,134,0,3,133,0,132,101,0,133,0,101,
+  0,133,0,4,101,0,8,100,0,140,163,16,4,33,37,33,37,33,69,33,
+  37,33,69,41,69,33,69,41,37,33,37,33,69,33,3,37,33,142,37,41,
+  37,33,37,33,69,33,69,41,37,41,36,33,36,33,37,41,37,41,36,33,
+  37,33,36,33,37,41,3,36,33,134,37,33,36,33,37,33,36,33,37,33,
+  37,33,4,36,33,129,37,41,23,36,33,129,36,41,7,36,33,138,36,41,
+  36,33,36,33,4,33,37,41,36,33,36,33,4,33,36,33,36,33,3,4,
+  33,129,36,33,6,4,33,134,228,32,4,33,228,32,227,24,227,24,227,32,
+  5,195,24,138,163,24,163,24,162,24,162,24,130,16,162,16,130,16,162,16,
+  130,16,130,16,55,4,132,106,66,106,58,74,58,42,58,3,41,50,150,9,
+  50,9,58,9,50,9,50,41,58,74,58,106,58,107,58,74,58,42,50,233,
+  41,200,33,135,33,102,25,135,33,134,33,135,33,167,33,167,33,200,33,200,
+  41,200,41,4,232,41,3,233,41,136,9,42,41,50,106,66,171,74,236,82,
+  12,91,44,91,45,91,3,45,99,134,44,99,45,99,45,99,45,91,45,99,
+  44,99,3,45,99,135,45,91,44,99,45,99,45,91,45,99,45,99,77,99,
+  6,45,99,137,77,99,45,99,45,99,77,99,45,91,77,99,77,91,77,99,
+  77,99,3,45,91,133,77,99,77,91,45,99,45,91,45,91,5,77,91,132,
+  77,99,77,91,77,91,77,99,4,77,91,129,12,91,3,203,82,145,236,82,
+  12,91,45,91,142,99,240,115,49,116,82,116,114,124,240,115,203,74,69,33,
+  97,8,97,8,200,41,110,91,49,116,147,132,3,147,124,129,146,124,6,147,
+  124,129,146,124,3,147,124,133,146,124,147,124,115,124,147,124,146,124,7,147,
+  124,130,179,132,147,124,3,179,132,146,179,124,179,132,147,132,17,116,240,107,
+  17,108,114,124,179,132,179,132,179,124,147,124,147,124,179,132,179,132,179,124,
+  179,124,179,132,179,124,3,179,132,129,179,124,3,147,124,131,179,132,179,132,
+  179,124,3,179,132,141,179,124,179,124,179,132,180,132,212,132,179,132,114,132,
+  243,140,243,156,8,66,40,74,40,74,8,66,4,40,66,129,40,74,3,40,
+  66,129,41,66,3,40,66,131,73,74,40,66,41,74,4,40,66,130,40,74,
+  40,66,4,8,66,3,231,57,131,199,49,167,49,138,74,3,171,82,158,204,
+  90,12,91,45,99,142,107,207,115,239,115,16,124,82,132,211,140,85,149,183,
+  165,57,166,90,174,187,182,187,182,122,174,154,166,57,166,183,149,244,132,81,
+  116,208,107,45,91,106,74,200,49,70,41,196,24,98,16,34,8,1,8,3,
+  1,0,134,33,0,33,8,65,8,66,8,98,8,66,8,5,98,8,129,66,
+  8,3,98,8,133,66,8,66,8,98,8,98,8,66,8,5,98,8,129,130,
+  8,3,98,8,133,130,8,196,24,98,8,97,8,97,8,18,98,8,130,65,
+  8,97,8,12,65,8,3,65,0,8,65,8,129,65,0,6,65,8,133,97,
+  8,98,8,65,8,97,0,97,8,7,65,8,139,66,8,65,8,66,8,65,
+  8,65,8,97,8,65,8,66,0,65,8,65,8,97,8,3,65,8,137,66,
+  8,66,8,65,8,65,8,66,8,98,8,66,8,98,8,98,0,3,98,8,
+  129,98,0,6,98,8,129,98,0,16,98,8,130,98,0,98,0,5,98,8,
+  130,130,8,130,8,4,98,8,151,130,0,131,0,131,8,131,8,130,8,98,
+  0,37,33,49,124,77,91,73,66,73,66,41,66,9,58,9,58,168,41,200,
+  49,232,49,200,49,200,41,200,49,135,41,168,41,167,41,4,135,41,148,167,
+  41,135,41,167,41,135,41,135,41,168,41,135,41,135,41,167,41,167,41,168,
+  41,168,49,168,41,232,49,233,49,74,66,139,74,236,82,13,99,77,99,3,
+  110,107,162,13,91,13,91,78,99,110,99,110,99,143,99,143,99,111,99,143,
+  99,175,99,176,107,17,116,139,66,0,0,98,16,65,8,33,8,207,115,244,
+  148,24,174,85,157,20,149,240,115,166,57,134,49,37,41,4,33,130,16,0,
+  0,65,8,130,16,162,16,4,33,228,32,3,195,24,131,8,66,44,99,207,
+  115,3,16,124,4,240,123,138,17,124,81,132,16,132,84,173,117,181,182,189,
+  143,99,137,25,137,33,169,33,4,170,33,137,137,33,137,33,138,33,137,33,
+  105,25,137,33,137,25,105,25,138,33,3,170,33,134,137,25,72,25,72,25,
+  39,25,39,25,40,25,5,72,25,141,39,25,40,25,137,33,104,33,72,33,
+  137,33,137,33,73,25,73,25,41,17,41,17,40,17,40,25,3,8,17,129,
+  7,17,6,231,16,132,199,8,199,16,198,8,199,8,4,166,0,5,133,0,
+  6,101,0,8,100,0,137,132,8,195,24,36,33,69,33,69,41,37,33,37,
+  33,37,41,69,41,3,69,33,143,37,33,36,33,36,33,69,33,37,33,37,
+  41,69,33,37,33,69,41,36,33,69,33,36,33,37,33,37,41,37,33,3,
+  37,41,136,36,33,37,41,36,33,37,41,36,33,36,33,37,33,37,33,6,
+  36,33,129,37,41,8,36,33,144,37,41,36,33,4,33,36,33,36,33,37,
+  41,37,33,36,41,36,33,36,33,4,33,36,33,36,33,4,33,4,33,36,
+  33,5,4,33,5,228,32,132,227,24,228,32,195,24,227,32,5,195,24,3,
+  163,24,131,162,24,163,16,162,16,4,163,16,137,163,24,163,16,163,16,195,
+  16,195,24,196,24,195,24,228,24,195,24,4,228,24,132,4,25,4,33,228,
+  24,4,25,251,3,138,171,74,171,74,139,66,139,66,106,58,74,58,73,50,
+  73,50,41,50,41,50,3,9,50,145,41,50,73,50,74,58,106,58,107,58,
+  73,50,9,50,200,41,135,33,135,33,102,33,135,33,167,33,168,33,168,33,
+  200,41,232,41,6,233,41,142,200,33,168,33,232,41,9,50,74,58,138,74,
+  203,74,236,82,12,91,44,99,44,99,45,99,45,91,45,91,3,45,99,129,
+  77,99,3,45,91,129,45,99,5,45,91,147,77,99,77,91,45,99,45,99,
+  45,91,77,99,77,99,45,99,77,99,77,91,77,99,45,91,77,99,77,91,
+  45,91,77,99,45,91,77,99,45,91,5,77,91,161,77,99,77,91,45,91,
+  77,91,77,99,77,91,45,91,77,91,77,91,45,91,77,91,45,91,12,91,
+  203,82,171,82,203,82,236,90,236,90,45,99,175,107,240,115,49,116,114,124,
+  81,124,109,99,8,58,162,16,97,8,196,16,204,66,208,107,114,124,146,124,
+  5,147,124,129,147,132,4,147,124,129,115,124,3,147,124,132,146,124,146,124,
+  147,124,114,124,4,147,124,135,147,132,147,132,147,124,147,132,147,132,179,124,
+  179,132,4,147,124,138,114,124,17,108,49,108,49,116,147,124,179,124,179,124,
+  147,124,179,124,179,124,6,179,132,3,179,124,4,147,124,129,147,132,9,179,
+  132,139,212,132,179,132,146,140,243,148,113,140,231,65,40,66,40,74,40,74,
+  40,66,40,74,3,40,66,129,40,74,4,40,66,130,41,74,73,74,7,40,
+  66,129,40,74,5,8,66,156,231,57,231,57,199,57,40,66,179,140,20,149,
+  53,149,53,149,85,157,53,149,53,149,244,148,211,140,146,132,113,124,16,108,
+  207,107,142,99,77,91,171,74,74,66,8,58,135,41,70,33,196,24,171,66,
+  110,91,164,16,3,66,8,137,98,8,131,8,131,16,98,8,130,8,130,8,
+  131,8,131,8,130,8,14,98,8,7,66,8,10,98,8,130,130,16,196,24,
+  3,98,8,129,66,8,5,98,8,129,97,8,10,98,8,3,65,8,129,97,
+  8,13,65,8,3,65,0,12,65,8,137,97,8,65,8,65,8,98,8,98,
+  8,65,8,97,8,66,8,97,8,8,65,8,133,65,0,65,8,66,8,65,
+  8,65,0,11,65,8,130,66,8,66,8,9,98,8,129,98,0,5,98,8,
+  129,98,0,19,98,8,129,130,8,5,98,8,130,98,0,98,0,3,98,8,
+  149,66,8,228,24,81,124,174,107,106,66,41,58,41,58,9,58,232,49,232,
+  49,200,41,232,49,200,49,200,41,167,41,200,41,167,41,167,41,135,41,167,
+  41,167,41,3,135,41,137,167,41,135,41,135,41,167,49,135,41,135,41,167,
+  41,168,41,168,41,3,200,49,139,233,49,74,66,171,74,204,82,13,99,45,
+  99,78,107,110,107,78,107,13,99,13,91,3,78,91,3,111,99,177,110,99,
+  175,107,208,107,208,107,49,116,102,33,33,0,98,8,65,0,163,16,20,157,
+  24,174,117,157,20,149,16,124,69,41,36,41,4,33,36,41,12,91,236,90,
+  163,16,65,8,65,8,97,8,130,16,227,32,4,33,228,32,4,33,130,16,
+  130,16,36,33,231,57,170,82,110,107,239,123,49,132,81,132,81,124,114,140,
+  48,140,85,181,117,181,182,189,208,107,137,25,137,33,169,33,4,170,33,130,
+  137,33,169,33,4,137,33,140,105,25,72,25,105,25,137,33,138,33,137,33,
+  105,25,105,25,71,25,39,25,39,25,40,25,3,72,25,140,104,33,70,33,
+  5,33,5,33,4,33,36,33,69,41,102,41,135,41,104,33,73,25,41,25,
+  3,40,17,134,41,17,8,17,8,17,232,8,231,8,199,8,3,231,8,137,
+  199,8,231,8,199,8,198,8,198,8,166,8,166,8,134,0,134,0,3,133,
+  0,135,101,0,133,0,133,0,101,0,101,0,100,0,101,0,8,100,0,143,
+  101,0,100,0,132,8,227,24,36,33,69,41,69,41,37,33,69,41,36,33,
+  69,33,69,33,69,41,36,33,69,41,3,37,33,136,37,41,37,41,69,41,
+  37,41,37,41,36,33,69,41,37,33,3,37,41,131,36,33,36,33,69,41,
+  4,36,33,135,37,33,69,41,36,33,37,41,36,33,37,33,36,41,3,36,
+  33,133,37,41,37,33,36,33,36,41,36,33,7,4,33,4,228,32,130,227,
+  24,227,24,9,195,24,134,163,24,195,16,163,16,195,24,195,24,195,16,4,
+  195,24,130,228,24,196,24,3,228,24,133,4,25,4,33,4,33,4,25,4,
+  33,11,37,33,129,37,25,4,37,33,132,4,33,4,33,37,33,4,33,3,
+  5,33,14,4,140,236,82,236,82,204,74,204,74,171,74,171,66,138,66,106,
+  58,74,58,73,50,41,50,41,50,3,9,50,144,41,50,41,50,74,58,106,
+  58,106,58,74,58,42,50,9,42,200,41,167,33,135,33,167,33,167,33,200,
+  41,200,41,232,41,3,233,41,144,9,42,233,41,232,33,232,41,200,33,200,
+  41,232,41,9,42,73,50,106,66,171,74,203,82,12,91,44,99,45,99,77,
+  99,4,45,99,134,77,99,45,91,45,91,77,99,45,91,45,99,3,45,91,
+  137,77,99,45,99,45,99,77,99,45,91,77,91,77,99,77,99,45,99,4,
+  77,99,129,77,91,3,77,99,148,77,91,77,99,45,99,77,99,45,91,77,
+  99,45,91,77,91,77,91,45,91,77,99,77,91,77,91,77,99,45,91,77,
+  91,77,91,45,91,45,91,236,82,3,203,82,146,236,90,13,91,78,91,175,
+  107,240,115,50,116,114,124,239,115,203,82,101,33,97,8,97,8,200,41,111,
+  91,50,116,147,124,146,124,146,124,10,147,124,132,146,124,146,124,147,124,146,
+  124,5,147,124,129,146,124,5,147,124,130,147,132,147,132,4,147,124,142,114,
+  124,82,116,17,108,82,116,82,116,147,132,147,132,179,132,179,124,179,132,179,
+  124,179,132,179,132,179,124,5,179,132,3,147,124,152,147,132,147,124,179,124,
+  179,132,179,124,179,124,180,132,180,132,179,132,180,132,180,132,212,132,212,132,
+  179,132,146,132,20,149,239,123,231,65,40,74,40,66,40,74,40,66,40,66,
+  8,66,5,40,66,129,41,74,4,40,66,134,41,66,40,66,40,66,40,74,
+  40,66,40,66,5,8,66,157,231,57,232,65,231,57,199,57,231,57,236,82,
+  203,82,106,74,40,66,8,58,167,49,134,41,102,41,69,33,69,41,69,33,
+  69,33,36,25,36,25,4,25,37,25,36,25,37,25,37,25,69,33,5,25,
+  171,66,204,74,164,16,3,163,16,132,163,8,163,16,163,16,131,8,4,130,
+  8,11,98,8,130,97,8,98,8,9,66,8,6,98,8,129,130,8,3,98,
+  8,130,163,16,195,24,21,98,8,129,97,8,33,65,8,132,97,8,98,8,
+  65,8,98,8,3,66,8,4,65,8,132,65,0,65,8,65,8,65,0,11,
+  65,8,130,97,8,65,8,4,66,8,134,98,8,98,8,97,8,98,8,98,
+  8,66,0,4,98,8,134,98,0,98,8,98,0,98,8,98,0,98,0,26,
+  98,8,129,97,8,3,98,8,144,66,8,98,8,175,115,175,107,106,66,41,
+  58,41,58,9,58,232,57,232,49,200,49,232,49,200,49,200,49,168,41,168,
+  41,3,167,41,132,135,41,167,41,135,33,167,41,4,135,41,129,167,41,3,
+  135,41,203,167,41,168,41,168,41,200,49,232,57,233,49,74,66,139,74,204,
+  82,12,91,45,99,77,99,110,107,78,107,13,91,237,90,45,91,46,91,78,
+  91,110,91,110,99,111,99,143,99,143,99,175,99,176,107,208,107,49,116,131,
+  8,65,8,130,8,0,0,207,123,24,174,117,157,52,149,240,115,69,41,199,
+  57,138,74,166,57,77,107,16,124,232,57,101,41,130,16,65,8,65,8,33,
+  8,65,8,98,16,162,24,227,32,4,33,4,33,195,32,163,24,130,16,130,
+  16,195,24,102,41,8,58,171,82,44,99,178,156,150,181,55,206,114,132,169,
+  33,169,41,169,41,170,33,170,33,202,33,169,33,4,137,33,166,105,33,137,
+  33,104,33,72,25,73,25,105,33,137,33,105,33,105,33,104,33,71,25,39,
+  25,38,25,5,25,229,24,196,24,228,24,195,24,130,16,162,16,162,16,163,
+  24,227,24,69,41,69,41,36,33,4,33,103,33,72,33,40,25,8,17,40,
+  25,40,17,8,17,8,17,8,9,232,16,232,8,3,231,8,138,199,8,231,
+  8,199,8,199,8,198,8,198,8,166,8,166,0,166,0,134,0,6,133,0,
+  6,101,0,130,100,0,100,0,5,101,0,146,100,0,164,8,227,24,4,33,
+  36,33,37,33,37,33,36,33,69,33,37,33,69,41,69,41,69,33,69,41,
+  37,41,37,33,69,33,37,41,3,69,41,137,69,33,37,41,69,41,36,33,
+  37,41,37,41,36,33,36,33,37,33,8,4,33,134,228,32,228,32,228,24,
+  228,32,228,24,228,24,3,195,24,132,227,24,195,24,196,24,196,24,6,195,
+  24,130,228,24,227,24,3,228,24,3,4,25,130,37,33,4,33,5,37,33,
+  134,69,33,69,33,69,41,69,33,69,33,70,41,3,69,41,5,70,41,3,
+  69,33,131,69,41,69,33,37,33,3,69,33,132,37,33,37,33,69,33,69,
+  33,4,37,33,134,5,33,4,33,4,33,4,25,5,33,4,25,5,228,24,
+  31,4,143,13,83,13,91,13,83,13,83,12,83,236,82,204,74,204,66,171,
+  66,139,66,106,58,74,58,73,50,41,58,41,50,3,9,50,143,41,50,42,
+  50,74,58,107,50,106,58,74,58,41,50,233,41,200,33,167,33,135,33,135,
+  33,167,33,232,41,200,41,3,233,41,149,232,41,232,33,232,41,200,41,232,
+  33,233,41,233,41,232,41,9,42,73,50,106,66,171,74,204,82,12,91,45,
+  99,77,99,77,99,45,99,45,99,45,91,77,91,3,45,91,130,77,99,77,
+  99,4,45,99,131,45,91,77,91,77,91,5,77,99,144,45,91,45,99,45,
+  91,45,99,77,99,45,91,77,99,77,91,45,91,77,91,77,91,45,91,77,
+  99,77,91,77,91,77,99,4,77,91,5,45,91,150,236,82,203,82,171,82,
+  236,90,236,90,13,91,110,99,207,107,17,116,50,124,81,124,110,99,41,66,
+  162,16,65,8,163,8,204,66,208,107,114,132,146,124,147,124,146,124,3,147,
+  124,129,147,132,3,146,124,140,147,124,146,124,147,124,146,124,146,124,114,124,
+  146,124,114,124,146,124,147,124,147,124,146,124,3,147,124,129,147,132,5,147,
+  124,136,179,124,179,132,146,124,114,124,82,116,49,116,114,124,114,124,3,179,
+  124,131,179,132,147,132,179,124,7,179,132,131,179,124,147,124,147,132,3,147,
+  124,4,179,124,3,179,132,137,179,124,180,132,180,132,212,132,114,132,114,132,
+  85,157,109,107,8,66,3,40,66,132,8,66,41,74,40,66,40,74,4,40,
+  66,131,41,74,40,66,40,74,8,40,66,130,8,66,40,66,3,8,66,134,
+  232,65,232,65,231,57,199,57,199,49,167,49,3,166,49,7,134,41,130,102,
+  41,101,33,3,69,33,135,69,25,37,25,69,33,69,33,5,25,204,66,46,
+  91,3,163,16,133,163,8,164,16,163,16,163,8,163,8,5,130,8,10,98,
+  8,133,66,8,66,8,98,8,66,8,65,8,5,66,8,131,98,8,66,8,
+  66,8,8,98,8,132,163,16,163,16,98,8,98,8,3,97,8,16,98,8,
+  131,97,8,65,8,97,8,29,65,8,3,97,8,133,65,8,66,8,98,8,
+  98,8,66,8,6,65,8,144,66,8,66,8,65,8,65,8,97,8,97,8,
+  65,8,66,8,66,8,97,8,97,8,66,8,66,8,97,8,66,8,65,8,
+  3,66,8,130,98,8,98,8,4,66,8,135,98,8,98,8,66,8,98,8,
+  98,8,66,0,98,0,3,66,8,129,98,0,5,98,8,129,98,0,11,98,
+  8,132,98,0,98,0,98,8,98,8,3,66,8,130,97,8,65,8,5,66,
+  8,132,33,0,110,107,207,115,74,66,3,41,58,137,9,58,232,49,232,49,
+  233,49,232,49,200,49,168,49,168,41,167,41,4,135,41,249,135,33,135,41,
+  167,41,135,41,167,41,136,41,135,41,135,41,168,41,167,41,135,41,200,49,
+  200,41,200,49,233,49,233,49,41,58,139,74,203,82,13,99,45,99,78,107,
+  110,107,78,107,13,91,236,82,13,91,46,91,78,91,110,99,110,99,143,99,
+  143,99,175,107,176,99,176,107,208,107,208,107,142,99,0,0,97,8,33,8,
+  77,107,24,174,85,157,52,149,240,115,171,82,12,91,12,91,232,57,236,98,
+  175,115,8,58,101,49,162,16,32,0,37,41,167,49,228,24,65,8,0,0,
+  0,0,65,8,98,16,163,24,163,24,195,24,227,32,195,32,227,32,195,32,
+  130,16,130,16,65,8,97,16,163,24,195,24,163,16,228,24,228,24,229,24,
+  5,25,38,33,6,25,39,33,38,33,38,33,38,25,39,33,6,25,5,25,
+  229,24,229,24,197,16,196,16,163,24,196,24,195,24,130,16,130,16,98,16,
+  98,16,65,8,97,8,65,8,98,8,97,8,97,8,98,16,130,16,195,24,
+  69,41,37,41,195,24,228,24,36,41,36,33,5,25,40,17,40,17,3,8,
+  17,142,232,8,232,16,232,8,231,8,232,8,231,8,232,8,231,8,199,8,
+  231,8,198,8,199,8,166,8,166,8,3,166,0,3,134,0,3,133,0,131,
+  101,0,133,0,133,0,8,101,0,142,133,0,101,0,165,0,229,16,5,25,
+  227,24,228,32,4,33,36,33,36,33,37,41,36,33,37,33,36,33,5,4,
+  33,136,228,32,4,33,4,25,228,24,228,32,228,32,228,24,228,24,4,227,
+  24,3,228,24,129,227,24,5,228,24,4,4,25,129,4,33,4,37,33,132,
+  69,33,69,33,70,41,70,33,5,102,41,13,134,41,131,102,41,102,41,134,
+  41,6,102,41,136,70,33,102,41,69,33,69,33,70,41,69,33,37,33,69,
+  33,4,37,33,133,5,33,5,33,37,33,4,25,4,33,6,228,24,131,196,
+  24,196,16,228,24,6,196,16,131,196,24,196,16,196,16,51,4,3,45,91,
+  4,45,83,139,13,83,13,75,204,74,171,66,171,66,139,58,106,58,74,58,
+  41,50,9,50,41,58,3,9,50,143,41,50,42,50,74,58,106,58,107,58,
+  42,50,9,42,232,41,167,33,135,33,135,33,168,33,200,41,200,41,233,49,
+  3,233,41,132,232,41,232,41,232,33,232,33,3,200,33,151,232,33,233,41,
+  41,50,106,66,171,74,235,82,12,91,45,99,45,99,44,99,45,91,45,99,
+  45,91,77,91,44,99,45,99,45,99,77,99,45,99,77,99,77,91,77,99,
+  45,91,6,77,99,143,45,91,45,91,77,99,45,91,77,99,45,91,77,99,
+  45,91,77,91,45,91,77,99,77,91,45,91,77,91,77,99,3,77,91,153,
+  45,91,77,91,77,91,45,99,45,91,45,91,203,82,203,82,171,82,236,90,
+  236,90,45,91,110,99,208,107,17,116,82,124,16,116,236,82,134,33,97,8,
+  65,8,167,33,78,91,17,116,147,132,3,147,124,133,146,124,147,124,146,124,
+  147,124,147,124,3,146,124,130,147,124,147,124,3,146,124,131,147,124,146,124,
+  146,124,7,147,124,142,179,124,147,124,179,132,147,124,147,132,147,132,147,124,
+  114,124,82,116,82,116,82,124,114,116,147,124,147,132,3,147,124,138,179,132,
+  179,132,179,124,179,124,179,132,179,124,179,124,179,132,179,124,179,124,5,147,
+  124,129,179,124,5,179,132,152,180,132,179,132,179,132,180,132,212,132,146,132,
+  146,132,85,157,203,90,8,66,8,66,40,66,8,66,40,66,40,74,40,66,
+  41,74,40,66,40,74,73,74,40,66,40,66,41,74,41,74,4,40,66,137,
+  41,74,40,66,40,66,8,66,8,66,40,66,40,66,8,66,232,65,4,231,
+  57,134,199,49,199,57,199,57,199,49,167,49,166,49,4,134,41,4,102,41,
+  3,69,33,137,69,25,70,33,69,25,37,33,38,25,143,91,139,66,131,8,
+  163,16,3,163,8,137,163,16,163,16,130,8,130,8,131,16,130,8,98,8,
+  98,8,130,8,7,98,8,132,65,8,98,8,97,8,98,8,11,66,8,8,
+  98,8,135,163,16,163,16,98,8,97,8,98,8,66,8,97,8,11,98,8,
+  130,97,8,97,8,4,98,8,29,65,8,130,97,8,65,8,5,66,8,130,
+  65,8,66,8,3,65,8,137,97,8,97,8,65,8,65,8,97,8,65,8,
+  66,8,97,8,65,8,3,98,8,136,97,8,98,0,98,8,98,8,66,8,
+  98,8,66,8,97,8,5,66,8,138,98,8,98,8,66,8,66,8,98,8,
+  66,8,98,8,98,0,66,0,66,0,3,98,8,129,66,8,26,98,8,3,
+  66,8,135,98,8,66,8,66,8,98,8,77,99,175,107,106,66,3,41,58,
+  145,232,49,232,49,200,49,232,49,232,49,167,41,200,49,135,41,200,41,135,
+  41,135,41,167,41,167,41,135,41,167,41,135,41,135,41,4,167,41,130,168,
+  49,167,41,3,168,41,193,200,49,9,50,233,57,41,66,139,74,203,82,12,
+  91,45,99,77,99,110,107,110,107,13,91,236,82,13,91,78,91,110,91,78,
+  91,111,99,143,91,143,99,143,99,176,107,208,107,208,107,207,107,240,107,204,
+  66,0,0,33,8,45,99,24,174,85,157,244,148,49,124,204,90,12,91,45,
+  99,8,66,235,90,207,115,8,66,101,49,195,24,32,0,4,33,105,74,170,
+  82,73,74,236,90,105,74,102,41,130,16,0,0,0,0,32,0,65,8,65,
+  8,65,16,130,16,163,24,162,24,195,24,163,24,195,24,227,32,3,195,24,
+  133,227,32,195,24,162,16,130,16,195,24,5,130,16,136,163,24,98,16,98,
+  16,97,16,98,16,98,16,97,16,97,8,8,65,8,142,97,16,98,16,130,
+  16,163,16,4,33,36,33,228,32,195,24,228,32,228,32,162,24,195,24,39,
+  25,8,9,3,8,17,3,232,8,139,231,8,232,8,8,9,8,9,232,8,
+  231,8,231,0,199,0,199,0,198,8,199,8,3,198,0,4,166,0,8,133,
+  0,133,101,0,133,0,101,0,133,0,101,0,3,133,0,134,230,16,70,33,
+  102,33,37,33,228,24,227,24,3,228,24,129,227,24,5,228,24,4,4,25,
+  140,4,33,4,33,37,33,37,25,37,33,37,33,70,33,69,33,69,33,102,
+  33,102,33,102,41,4,134,41,136,135,41,134,41,167,41,167,41,167,49,167,
+  41,167,49,167,41,5,167,49,136,167,41,167,49,167,41,167,41,135,49,135,
+  41,135,49,167,49,5,134,41,4,102,41,135,69,41,69,41,70,33,69,33,
+  70,33,70,33,69,33,4,37,33,132,5,25,5,33,5,25,5,25,4,4,
+  25,141,228,24,228,24,4,25,228,24,228,16,228,24,5,25,228,16,5,25,
+  228,24,5,25,5,25,4,25,6,5,25,137,5,17,38,25,5,25,37,25,
+  5,25,5,25,6,25,5,25,5,25,62,4,131,77,91,45,91,77,91,5,
+  78,91,3,45,83,136,13,83,236,74,204,74,171,66,139,58,106,58,74,50,
+  42,50,3,41,50,147,9,42,9,42,9,50,42,50,74,58,106,58,106,58,
+  41,50,9,42,200,41,167,33,135,33,135,33,167,33,200,41,232,41,233,41,
+  233,41,232,41,3,200,33,139,200,41,200,41,200,33,168,33,135,25,168,33,
+  232,41,41,58,139,66,203,74,236,90,3,45,99,143,77,99,77,91,45,91,
+  77,99,77,99,45,99,77,99,45,99,77,99,77,91,77,91,45,99,77,99,
+  77,99,45,91,3,77,99,145,45,91,77,91,77,99,77,91,77,91,77,99,
+  77,99,45,91,45,99,77,91,45,99,45,91,77,91,45,99,45,99,45,91,
+  45,99,3,77,91,156,45,91,45,91,12,91,203,82,171,82,171,82,236,90,
+  236,90,45,91,142,99,240,107,49,116,82,124,142,99,105,66,195,16,65,8,
+  130,8,139,58,208,99,82,124,146,124,146,124,147,124,146,124,146,124,147,124,
+  146,124,6,147,124,136,115,124,146,124,115,124,115,124,146,124,146,124,114,124,
+  146,124,6,147,124,129,179,124,5,147,124,147,146,124,114,124,82,124,81,116,
+  114,124,146,124,179,132,179,124,179,132,179,132,147,132,147,124,147,124,179,132,
+  179,132,179,124,179,132,179,124,179,132,5,147,124,5,179,132,144,147,132,147,
+  124,179,124,179,124,180,132,180,132,179,132,212,132,81,124,146,132,85,165,73,
+  74,8,66,40,66,8,66,40,74,3,40,66,134,41,66,40,74,40,74,40,
+  66,40,74,41,74,3,40,66,129,73,74,5,40,66,137,8,66,40,66,8,
+  66,8,66,231,57,8,66,232,57,231,57,231,57,3,199,57,132,199,49,167,
+  49,167,49,166,49,6,134,41,130,102,41,102,33,4,69,33,144,37,33,69,
+  25,37,25,167,33,78,83,106,58,131,8,163,8,163,8,131,8,163,16,163,
+  8,131,8,163,8,131,8,130,16,11,98,8,132,97,8,66,8,97,8,97,
+  8,12,66,8,7,98,8,130,163,16,163,16,3,98,8,3,66,8,134,98,
+  8,97,8,98,8,98,8,66,8,66,8,3,98,8,134,97,8,97,8,98,
+  8,97,8,65,8,66,8,3,65,8,129,66,8,7,65,8,129,65,0,11,
+  65,8,129,98,8,5,65,8,131,66,8,65,8,65,8,4,66,8,148,65,
+  8,65,8,66,8,65,8,97,8,65,8,97,8,65,8,66,8,65,8,97,
+  8,66,8,66,8,98,8,66,8,98,0,98,8,66,8,98,8,98,8,3,
+  66,8,131,98,8,98,8,66,8,3,98,8,130,66,8,66,8,4,98,8,
+  134,66,8,98,8,66,8,66,8,98,0,98,0,3,66,8,8,98,8,129,
+  98,0,8,98,8,129,98,0,10,98,8,4,130,8,145,98,8,98,8,236,
+  90,142,99,74,66,73,66,41,58,41,58,9,58,233,49,232,49,232,49,200,
+  49,200,41,200,41,168,41,200,49,3,135,41,130,168,41,135,41,3,167,41,
+  133,168,41,168,41,168,49,167,41,167,41,3,168,41,3,200,49,140,9,58,
+  41,58,139,74,204,82,12,91,45,99,77,99,110,107,110,107,13,99,236,82,
+  13,83,3,78,91,129,110,99,3,143,99,166,175,99,175,99,175,107,175,107,
+  207,107,49,116,167,41,0,0,12,99,24,174,118,157,52,157,114,132,12,91,
+  13,99,45,99,8,66,236,90,174,107,73,66,101,49,195,24,0,0,4,33,
+  105,74,138,82,73,74,142,115,16,124,16,124,49,132,207,115,13,99,105,74,
+  167,49,228,24,66,8,32,0,4,0,0,134,33,8,65,8,98,16,130,8,
+  98,16,98,16,6,130,16,130,162,24,130,16,5,98,16,130,65,8,97,8,
+  8,65,8,146,98,16,131,16,196,24,227,24,195,24,130,16,36,33,4,33,
+  195,24,228,32,195,24,130,16,130,16,195,24,39,25,41,9,8,9,232,8,
+  3,8,9,130,231,8,232,8,4,8,9,136,231,0,231,0,199,8,199,0,
+  198,0,198,0,166,0,198,0,5,166,0,129,165,0,4,133,0,133,101,0,
+  132,0,133,0,133,0,101,0,7,133,0,135,230,16,103,33,168,49,168,41,
+  134,41,134,41,102,33,3,102,41,133,134,41,134,41,135,41,135,41,167,41,
+  3,167,49,146,167,41,167,41,167,49,200,49,167,41,199,49,200,49,167,49,
+  199,49,200,49,199,49,167,49,167,49,199,49,167,49,167,49,167,41,167,49,
+  9,135,41,133,102,41,102,41,134,41,102,41,102,33,3,70,33,129,69,33,
+  3,70,33,130,69,33,37,33,3,37,25,129,37,33,3,37,25,131,5,25,
+  5,25,37,25,8,5,25,134,37,25,5,25,5,25,37,25,38,25,37,25,
+  5,38,25,129,37,25,5,38,25,131,38,33,38,25,38,25,5,37,25,133,
+  38,25,37,25,38,25,37,25,37,25,3,38,25,1,37,17,66,4,137,78,
+  91,78,91,78,99,78,99,110,91,110,91,78,91,78,91,77,91,4,78,91,
+  160,46,83,13,83,13,75,204,74,172,66,106,58,106,58,42,58,9,50,9,
+  50,8,42,232,41,9,42,233,41,41,50,74,58,106,58,106,58,74,58,41,
+  50,232,41,200,33,167,33,135,25,167,33,167,33,200,41,232,41,232,41,200,
+  33,200,41,200,33,3,168,33,139,167,33,135,33,102,25,135,25,200,33,9,
+  50,73,58,171,74,236,82,12,83,45,91,3,45,99,131,77,99,45,99,77,
+  99,4,45,99,8,77,99,3,45,91,139,45,99,77,99,45,91,77,99,77,
+  91,45,99,45,91,77,91,45,91,45,91,77,91,3,45,91,129,77,91,3,
+  45,91,129,236,90,3,203,82,144,236,90,12,91,45,99,143,107,240,115,49,
+  124,17,116,45,91,167,41,98,8,97,8,37,17,45,75,17,116,146,124,146,
+  124,3,147,124,132,146,124,147,124,146,124,146,124,4,147,124,132,146,124,146,
+  124,114,124,147,124,3,146,124,130,147,124,146,124,3,147,124,131,147,132,147,
+  132,179,124,6,147,124,134,114,124,114,124,82,124,82,124,147,124,147,124,3,
+  147,132,3,179,124,135,147,124,179,132,179,132,179,124,179,124,179,132,179,132,
+  6,147,124,143,179,132,179,132,147,132,179,132,179,132,179,124,179,132,180,132,
+  180,132,179,132,212,132,179,132,146,132,211,140,52,157,5,40,66,130,40,74,
+  41,66,3,40,66,129,40,74,5,40,66,130,41,74,40,74,5,40,66,3,
+  8,66,3,232,65,145,8,58,232,57,231,57,199,57,199,57,167,49,199,57,
+  167,49,167,49,134,41,134,41,102,41,134,41,134,41,102,41,134,41,102,33,
+  5,69,33,144,37,33,69,25,4,25,8,42,110,83,200,49,130,8,163,8,
+  163,8,131,16,163,16,163,16,130,8,130,8,131,8,130,8,10,98,8,4,
+  66,8,129,65,8,5,66,8,132,65,8,66,8,65,8,65,8,3,66,8,
+  130,98,8,97,8,8,98,8,141,130,16,130,8,65,8,65,8,66,8,98,
+  8,66,8,97,8,66,8,66,8,65,8,98,8,98,8,6,65,8,129,65,
+  0,10,65,8,129,97,8,3,65,8,129,97,8,6,65,8,131,66,8,65,
+  8,97,8,3,65,8,3,66,8,132,97,8,66,8,66,8,65,8,3,66,
+  8,129,97,8,3,66,8,134,65,8,97,8,98,8,66,8,65,8,97,8,
+  3,66,8,135,98,8,98,8,97,8,66,8,98,8,98,8,97,8,3,66,
+  8,130,98,8,98,8,4,66,8,134,98,8,66,8,66,8,98,8,66,8,
+  98,8,3,66,8,130,98,8,98,8,7,66,8,8,98,8,3,98,0,17,
+  98,8,135,98,0,66,8,203,82,110,99,74,66,41,66,74,66,3,9,58,
+  151,233,49,233,49,232,49,168,41,168,41,200,49,167,41,135,41,135,41,167,
+  41,167,41,135,41,168,41,135,41,167,41,168,41,200,49,168,41,135,41,168,
+  49,168,41,167,41,167,41,3,200,49,144,233,57,42,66,107,74,204,82,237,
+  90,45,99,77,99,110,107,78,107,45,99,236,82,13,83,46,91,78,99,110,
+  99,110,99,3,143,99,177,175,99,175,107,175,99,208,107,176,107,208,107,49,
+  124,99,8,171,90,24,174,150,165,53,149,146,132,13,99,45,99,77,107,8,
+  66,203,90,207,123,73,74,102,49,227,24,0,0,228,32,105,74,138,82,73,
+  74,109,107,240,123,207,115,207,115,240,115,240,123,49,124,114,132,114,132,49,
+  132,207,115,109,107,235,90,170,90,138,82,231,57,36,33,98,8,66,8,98,
+  16,98,8,65,0,9,65,8,132,33,8,65,8,65,8,33,8,3,65,8,
+  166,98,8,130,8,132,16,196,16,229,16,230,24,6,25,38,25,196,16,98,
+  8,65,8,163,24,4,33,227,24,163,24,195,24,195,24,130,16,162,24,4,
+  33,40,17,8,17,232,8,231,0,231,0,231,8,199,8,231,8,199,0,231,
+  8,231,8,7,9,231,0,231,0,199,0,198,8,166,0,166,8,6,166,0,
+  130,133,0,165,8,7,133,0,133,132,0,100,0,132,8,132,0,133,8,4,
+  133,0,136,132,0,132,0,197,16,38,25,103,33,167,41,167,41,200,41,3,
+  167,41,146,199,49,167,49,200,49,167,41,200,49,167,41,167,41,167,49,167,
+  41,167,41,135,41,135,41,167,41,135,41,135,41,134,41,102,41,135,41,4,
+  102,41,130,102,33,102,41,3,102,33,5,70,33,131,70,25,37,25,37,25,
+  3,38,33,131,37,33,38,25,38,25,4,37,25,136,6,25,38,25,5,25,
+  6,17,5,25,37,17,37,25,5,25,5,38,25,131,37,25,38,25,38,33,
+  3,38,25,136,37,25,37,25,70,25,70,25,38,25,38,25,37,25,70,25,
+  4,38,25,129,70,25,3,38,25,130,38,17,70,25,11,38,25,129,37,25,
+  6,38,25,1,37,25,110,4,133,110,99,110,91,110,91,110,99,142,99,4,
+  110,91,129,78,91,4,110,91,3,78,83,142,45,83,237,74,204,74,139,66,
+  106,58,74,50,9,50,9,50,9,42,9,42,233,41,9,50,41,50,41,50,
+  3,106,58,134,41,50,9,42,200,41,167,33,135,33,135,33,3,167,33,152,
+  168,33,168,33,167,33,200,33,168,33,167,33,135,33,135,33,135,25,135,33,
+  103,25,135,33,200,41,41,50,138,66,203,74,236,82,44,91,45,91,77,99,
+  45,91,45,91,77,99,77,99,3,45,99,131,45,91,77,99,45,91,4,77,
+  99,131,45,91,45,91,77,99,4,45,99,4,77,91,157,45,91,45,91,77,
+  91,45,91,45,91,77,91,45,91,45,91,77,91,45,91,236,82,203,82,171,
+  82,203,82,236,82,12,91,77,99,175,107,240,115,82,124,208,107,170,74,4,
+  25,97,8,97,8,41,50,143,91,82,124,146,124,3,147,124,138,146,124,147,
+  124,146,124,147,124,147,124,146,124,146,124,147,124,115,124,114,124,3,146,124,
+  130,147,124,146,124,5,147,124,129,179,124,3,147,124,130,147,132,179,132,3,
+  147,124,133,179,132,146,124,146,124,114,124,115,124,3,147,124,133,147,132,147,
+  132,147,124,147,124,179,124,3,179,132,132,179,124,179,132,179,132,179,124,6,
+  147,124,133,179,132,179,132,147,124,147,124,179,124,3,179,132,3,180,132,134,
+  179,132,146,132,211,148,211,148,231,65,8,66,3,40,66,134,8,66,40,66,
+  40,74,40,66,40,66,40,74,11,40,66,3,8,66,134,232,57,8,66,231,
+  57,232,57,231,57,231,57,4,199,57,131,167,49,199,49,167,49,4,134,41,
+  132,102,33,134,41,102,41,102,33,6,69,33,141,37,25,37,25,9,50,143,
+  91,135,41,130,8,163,8,163,16,131,16,131,8,131,8,163,16,130,8,10,
+  98,8,7,66,8,129,65,8,3,66,8,4,65,8,3,66,8,151,65,8,
+  97,8,98,8,97,8,98,8,130,8,97,8,97,8,98,8,98,8,97,8,
+  65,8,65,8,65,0,65,8,65,8,66,8,66,8,65,8,65,8,66,8,
+  65,8,65,0,3,65,8,129,65,0,4,65,8,129,65,0,4,65,8,129,
+  65,0,4,65,8,129,97,8,7,65,8,151,97,8,65,8,65,8,97,8,
+  66,8,97,8,65,8,97,8,66,8,66,8,65,8,97,8,97,8,65,8,
+  65,8,66,8,66,8,65,8,65,8,97,8,66,8,98,8,66,8,3,97,
+  8,131,66,8,66,8,98,8,4,97,8,5,98,8,133,97,8,98,8,66,
+  8,66,8,98,8,3,66,8,132,98,8,66,8,66,8,98,8,3,66,8,
+  129,98,0,4,66,8,130,65,8,65,8,3,66,8,132,66,0,66,8,65,
+  8,66,0,3,65,0,3,33,0,134,65,8,33,0,33,0,65,0,33,0,
+  33,8,12,33,0,138,65,0,66,8,98,8,98,8,65,0,8,58,236,82,
+  74,66,41,58,41,58,3,9,58,142,233,49,200,49,232,49,168,49,168,41,
+  200,41,200,41,167,41,167,41,135,41,135,41,135,33,167,41,167,49,4,167,
+  41,151,168,49,168,49,168,41,168,41,200,49,200,49,233,49,232,49,233,57,
+  42,66,139,74,171,82,236,90,45,99,77,99,110,107,110,107,45,99,237,90,
+  13,91,45,91,78,91,110,99,4,143,99,158,175,99,207,107,207,107,208,107,
+  176,107,175,107,240,107,143,99,106,74,247,173,85,157,244,148,146,132,45,99,
+  13,99,77,107,40,66,235,90,81,132,73,66,134,49,227,32,0,0,227,24,
+  73,74,170,82,73,74,77,107,16,124,240,123,3,239,115,130,240,115,17,124,
+  3,16,124,182,49,132,179,148,211,156,214,197,247,197,215,189,104,25,39,25,
+  39,25,6,25,6,25,229,16,229,24,197,24,197,16,197,16,196,16,197,16,
+  164,16,164,16,197,16,229,16,229,16,230,24,230,16,7,25,7,17,7,17,
+  7,9,7,9,231,8,231,16,231,8,197,16,98,8,33,8,65,8,65,8,
+  228,32,195,24,163,24,163,24,195,24,130,16,130,16,195,24,38,33,231,8,
+  199,0,198,0,166,0,166,0,198,0,198,8,3,198,0,153,231,8,198,8,
+  198,0,198,0,166,0,165,0,165,0,133,8,133,0,133,0,133,8,165,0,
+  133,0,133,0,165,8,133,8,165,8,133,0,133,8,165,8,133,8,165,0,
+  132,8,164,8,165,16,5,165,8,137,197,8,197,16,197,16,197,8,197,16,
+  196,8,196,8,229,16,5,17,3,38,25,129,70,25,9,70,33,132,70,25,
+  70,33,38,25,5,25,5,37,25,135,38,25,37,25,37,25,5,25,37,17,
+  5,17,5,25,4,37,25,131,38,33,70,25,70,25,4,38,25,4,38,33,
+  134,38,25,38,25,70,25,38,25,38,25,38,33,5,38,25,3,70,25,140,
+  38,25,70,25,38,25,70,25,70,25,38,25,70,33,38,25,70,25,38,25,
+  70,33,70,33,3,38,25,4,70,25,131,70,33,70,33,38,25,8,70,25,
+  129,70,33,3,70,25,6,38,25,129,70,25,4,38,25,130,38,17,37,17,
+  91,4,136,110,91,110,99,110,99,143,99,110,99,142,99,110,91,110,99,4,
+  110,91,165,142,91,111,91,143,91,110,91,110,91,111,91,78,83,78,83,45,
+  83,236,74,171,66,106,58,74,50,41,50,9,50,9,50,9,42,9,50,9,
+  50,41,50,41,50,74,58,74,58,106,58,74,58,41,58,233,41,200,41,167,
+  33,135,25,102,25,135,25,135,33,135,33,168,33,167,33,167,33,7,135,33,
+  138,167,33,200,33,41,50,106,58,171,74,203,82,12,91,44,91,45,99,77,
+  99,3,45,99,5,77,99,130,45,91,77,91,3,77,99,133,45,91,77,99,
+  45,91,77,99,77,99,5,45,91,133,77,99,45,91,77,91,45,91,77,91,
+  3,45,91,150,12,83,236,82,171,74,203,82,203,82,236,90,13,91,78,99,
+  175,107,17,116,49,116,110,99,41,58,130,8,65,8,195,16,204,66,208,107,
+  114,124,147,124,146,124,146,124,3,147,124,140,146,124,147,124,147,124,146,124,
+  114,124,147,124,146,124,114,124,146,124,114,124,146,124,114,124,9,147,124,131,
+  147,132,147,124,179,124,3,147,124,129,147,132,5,147,124,139,147,132,179,132,
+  147,124,179,132,147,124,179,124,147,124,147,124,179,132,179,124,179,124,9,147,
+  124,148,179,124,147,124,179,132,179,124,179,124,179,132,179,132,180,132,179,132,
+  179,132,180,132,179,132,179,140,20,149,113,140,231,65,40,66,40,66,8,66,
+  8,66,6,40,66,135,40,74,40,66,41,74,41,74,40,66,40,66,41,74,
+  3,40,66,4,8,66,134,7,58,8,58,8,66,231,65,199,57,199,49,3,
+  199,57,133,199,49,167,49,166,49,166,49,167,49,3,134,41,132,102,41,134,
+  41,102,41,102,41,5,69,33,145,37,33,37,33,4,25,9,50,78,83,167,
+  41,98,8,131,8,131,8,163,16,131,8,131,8,131,16,130,8,98,8,130,
+  8,130,8,3,98,8,129,66,8,7,98,8,7,65,8,129,66,8,6,65,
+  8,130,97,8,66,8,4,98,8,134,66,8,65,8,97,8,65,8,65,8,
+  97,8,3,65,8,129,97,8,3,66,8,3,65,8,132,65,0,65,0,65,
+  8,65,8,3,65,0,9,65,8,129,66,8,5,65,8,3,97,8,3,66,
+  8,129,97,8,3,98,8,130,97,8,98,8,8,97,8,131,98,8,66,8,
+  66,8,9,98,8,3,66,8,132,98,8,65,8,65,8,98,8,3,66,8,
+  133,98,8,65,8,65,8,65,0,65,0,3,65,8,129,65,0,3,65,8,
+  132,33,8,65,8,65,8,65,0,3,66,8,3,98,8,141,130,8,130,16,
+  130,16,163,16,163,24,195,24,228,24,228,24,4,33,36,33,69,41,134,41,
+  134,49,3,199,57,157,8,66,40,66,40,66,8,66,105,74,105,74,138,74,
+  170,82,235,90,235,90,45,99,141,107,77,107,207,123,142,115,109,107,174,115,
+  239,123,243,156,171,82,1,0,232,57,45,91,138,74,73,58,41,58,41,58,
+  9,58,9,58,3,232,49,163,200,41,168,41,200,41,199,41,167,41,167,41,
+  135,41,167,41,135,41,135,41,167,41,168,49,200,49,199,49,167,41,200,49,
+  167,41,168,41,135,41,168,49,200,49,233,49,233,49,233,57,42,66,139,74,
+  171,82,12,91,45,99,77,107,110,107,110,107,45,99,236,82,13,91,3,78,
+  91,130,110,91,111,99,4,143,99,154,176,107,176,107,175,107,175,107,208,107,
+  17,116,240,115,183,165,117,157,211,148,81,132,13,99,77,99,77,107,41,66,
+  203,90,239,115,106,74,101,41,228,32,0,0,195,24,105,74,170,82,73,74,
+  44,107,3,240,123,131,16,124,16,124,240,115,3,16,124,143,240,115,17,124,
+  17,132,113,148,117,181,117,181,150,181,39,17,231,16,231,16,230,16,199,8,
+  230,8,198,8,231,16,4,231,8,134,230,8,198,8,199,8,198,8,198,8,
+  166,8,7,198,8,145,230,16,164,16,65,8,33,8,65,8,65,8,130,16,
+  4,33,227,24,163,24,130,16,163,24,98,16,163,24,37,33,165,8,165,8,
+  3,165,0,135,166,8,165,8,165,8,166,0,166,0,197,0,165,0,6,165,
+  8,131,165,0,165,8,165,8,4,197,8,132,165,8,197,8,165,8,197,16,
+  3,229,16,129,230,16,3,229,16,139,230,16,229,24,229,16,229,24,229,16,
+  6,17,6,25,5,25,6,25,5,25,5,25,3,229,16,136,5,17,5,25,
+  5,17,5,17,5,25,38,25,38,25,5,25,5,38,25,134,70,25,37,25,
+  37,25,5,17,6,25,37,25,5,38,25,3,70,25,129,38,25,3,70,25,
+  3,70,33,129,70,25,7,70,33,148,103,33,71,33,70,25,70,33,70,25,
+  70,25,70,33,70,33,71,33,70,33,70,25,70,25,71,33,70,33,70,33,
+  70,25,70,25,70,33,70,33,71,25,6,70,25,129,37,25,3,70,25,129,
+  38,33,4,70,25,129,70,33,13,70,25,134,38,33,38,25,69,25,38,25,
+  38,33,37,25,3,38,25,3,37,25,130,70,25,38,25,69,4,157,143,91,
+  143,99,142,99,142,91,143,99,143,99,111,99,142,99,143,99,143,99,110,91,
+  142,99,143,99,143,99,142,91,142,91,110,91,111,91,142,91,111,91,111,91,
+  78,83,45,83,237,74,172,66,139,58,106,58,74,50,41,50,3,9,50,141,
+  9,42,9,50,9,42,41,50,42,50,74,58,74,58,74,50,9,50,200,41,
+  167,33,167,33,135,33,3,102,25,6,135,33,129,103,33,3,135,33,143,167,
+  33,168,33,232,41,9,50,73,58,138,74,203,90,12,91,45,91,45,99,77,
+  99,45,91,77,99,45,91,45,91,4,77,99,130,77,91,77,99,3,77,91,
+  134,45,91,77,91,45,91,45,91,77,91,77,91,3,45,91,129,77,91,5,
+  45,91,147,12,83,203,82,171,74,203,82,236,82,236,90,12,91,110,99,208,
+  107,17,116,17,116,236,90,134,33,98,0,97,8,102,33,78,83,50,116,115,
+  124,3,146,124,5,147,124,3,146,124,132,114,124,114,124,146,124,114,124,3,
+  146,124,130,147,124,147,132,4,147,124,130,179,124,179,132,3,147,124,129,179,
+  124,10,147,124,3,147,132,5,147,124,131,147,132,179,132,179,132,8,147,124,
+  136,179,132,147,124,179,132,179,132,147,124,179,132,179,124,179,132,3,180,132,
+  133,146,124,81,124,52,149,206,123,231,65,3,8,66,134,40,66,8,66,40,
+  66,40,66,8,66,8,66,9,40,66,130,8,66,40,66,5,8,66,132,8,
+  58,232,57,231,57,231,57,4,199,57,132,199,49,167,49,199,49,166,49,7,
+  134,41,7,69,33,134,69,25,5,25,171,58,45,83,69,33,130,8,5,131,
+  8,3,98,8,129,99,8,11,98,8,138,65,8,97,8,97,8,66,8,66,
+  8,65,8,66,8,65,8,66,8,66,8,4,65,8,131,66,8,66,8,97,
+  8,4,98,8,4,65,8,129,97,8,4,65,8,132,98,8,66,8,65,8,
+  66,8,15,65,8,131,97,8,66,8,66,8,4,97,8,12,98,8,132,66,
+  8,66,8,97,8,66,8,3,65,8,130,66,8,66,8,3,65,8,3,66,
+  8,130,98,8,66,8,5,98,8,130,130,16,130,16,3,163,16,163,195,24,
+  195,24,228,24,4,33,4,33,37,33,69,33,69,33,101,33,101,41,134,41,
+  134,41,134,49,199,49,167,49,232,57,232,57,8,58,41,66,8,58,41,66,
+  73,66,105,74,105,74,170,74,170,74,138,74,138,74,171,74,171,82,203,82,
+  236,82,235,82,138,74,171,74,3,203,82,185,235,82,236,90,235,82,235,82,
+  170,74,138,74,171,82,170,74,203,82,138,74,106,74,41,66,73,66,106,66,
+  41,66,73,66,106,66,106,66,73,58,73,66,9,58,232,57,200,49,200,57,
+  9,58,41,58,163,16,73,66,175,107,236,82,41,58,41,58,9,58,9,58,
+  233,49,9,58,232,49,232,49,168,41,200,41,167,41,167,41,200,41,167,33,
+  168,41,167,41,167,41,135,41,167,41,167,41,200,49,167,49,167,41,200,49,
+  135,41,167,41,168,41,3,200,49,196,232,49,233,57,74,66,139,74,204,82,
+  236,90,45,99,77,99,110,107,110,107,45,99,236,82,237,82,78,91,79,91,
+  78,91,78,91,110,91,143,99,175,99,143,99,143,99,175,99,176,107,176,107,
+  175,107,240,107,17,116,114,132,215,173,150,157,244,148,146,140,45,99,45,99,
+  77,99,73,74,170,82,49,124,138,74,134,49,4,33,0,0,163,24,73,74,
+  170,82,105,74,12,99,16,124,240,123,240,123,16,124,16,124,240,123,240,123,
+  16,124,16,124,16,116,17,124,17,124,113,148,117,181,117,181,182,181,71,17,
+  133,0,166,8,165,8,3,165,0,133,165,8,165,8,165,0,133,0,166,0,
+  6,165,0,136,165,8,166,8,166,0,198,8,197,16,230,16,197,16,98,8,
+  4,65,8,138,97,8,228,24,195,24,163,16,195,24,163,16,130,16,162,16,
+  4,25,229,16,4,197,8,133,229,16,198,8,198,16,230,8,198,16,14,230,
+  16,4,6,17,130,38,25,39,25,7,38,25,132,70,25,38,33,70,25,38,
+  25,3,70,25,129,71,33,3,70,33,3,38,25,134,70,25,70,25,38,25,
+  70,33,70,25,70,25,3,70,33,139,102,33,70,33,102,33,102,25,102,25,
+  102,33,102,33,70,33,71,33,71,33,102,33,5,103,33,133,102,33,102,25,
+  71,33,103,33,70,33,9,103,33,146,71,33,71,33,102,33,70,33,103,33,
+  103,33,102,33,70,33,71,25,102,25,71,33,70,33,70,33,103,33,70,33,
+  70,25,71,33,71,25,5,70,25,130,70,33,70,25,4,70,33,140,70,25,
+  70,25,70,33,70,33,70,25,70,33,38,25,70,25,70,33,38,25,70,25,
+  38,25,3,70,25,140,70,33,38,25,70,25,38,25,70,25,70,25,38,25,
+  70,33,38,33,37,25,70,25,37,25,3,38,25,135,37,25,37,25,38,33,
+  37,25,38,25,38,25,37,25,121,4,3,142,99,156,143,99,143,99,142,91,
+  142,99,143,99,142,99,143,99,111,99,142,91,142,91,143,99,143,91,143,91,
+  111,99,143,91,110,91,111,99,143,91,111,91,111,91,78,83,78,83,45,83,
+  236,74,204,74,171,66,107,58,73,50,3,9,50,151,232,41,200,41,232,41,
+  200,41,9,42,9,42,74,50,41,50,9,50,233,41,200,41,168,33,102,25,
+  102,25,70,25,102,25,102,25,103,25,135,33,135,33,102,33,103,33,102,25,
+  4,135,33,139,102,25,69,25,102,33,8,58,138,74,203,82,12,91,45,91,
+  45,91,77,91,45,91,3,77,99,130,77,91,77,99,3,77,91,133,77,99,
+  45,91,77,99,77,91,77,91,5,45,91,129,77,91,6,45,91,168,12,83,
+  203,74,171,82,203,82,236,82,12,91,45,99,110,99,240,107,49,116,175,107,
+  138,74,228,16,65,8,98,8,74,50,176,99,82,124,115,124,147,124,146,124,
+  147,124,147,124,146,124,147,124,146,124,114,124,146,124,114,124,146,124,146,124,
+  115,124,147,124,114,124,147,124,146,124,146,124,147,124,146,124,147,132,5,147,
+  124,133,147,132,147,124,147,124,147,132,147,132,5,147,124,129,147,132,3,147,
+  124,132,147,132,147,132,179,124,179,124,5,147,124,131,179,132,147,132,147,132,
+  6,147,124,133,179,124,147,124,179,132,147,124,147,124,3,179,124,140,179,132,
+  180,132,180,124,180,132,179,132,178,140,85,157,76,107,7,66,8,66,40,66,
+  40,74,3,40,66,129,41,74,3,8,66,5,40,66,134,8,66,40,66,8,
+  66,8,66,40,66,40,66,3,8,66,130,232,65,232,65,4,231,57,129,199,
+  57,3,199,49,3,166,49,5,134,41,3,102,41,5,69,33,134,37,25,69,
+  33,4,25,171,66,78,91,196,24,3,131,8,133,98,8,130,8,130,8,98,
+  8,130,8,10,98,8,131,66,8,98,8,66,8,3,65,8,4,66,8,130,
+  65,8,66,8,5,65,8,131,97,8,65,8,66,8,3,98,8,134,65,8,
+  66,8,65,8,97,8,98,8,98,8,4,65,8,131,98,8,66,8,97,8,
+  7,65,8,133,66,8,65,0,65,8,65,8,66,8,4,65,8,133,65,0,
+  65,0,65,8,65,8,65,0,3,65,8,3,66,8,3,98,8,175,130,8,
+  130,8,130,16,163,16,163,16,195,24,228,24,228,24,4,33,37,33,69,41,
+  69,33,101,41,134,41,134,41,166,49,199,49,232,57,231,57,199,49,232,57,
+  8,58,8,58,40,66,40,58,8,58,40,58,8,58,8,58,232,57,232,57,
+  231,49,232,49,199,49,231,49,232,49,167,49,199,41,166,41,134,41,135,41,
+  102,41,134,41,102,33,102,33,134,33,134,33,12,102,33,150,102,25,102,33,
+  102,25,102,25,70,25,102,33,70,33,70,33,102,33,102,25,70,33,70,33,
+  70,25,102,25,102,25,70,33,70,33,70,25,70,33,70,25,70,33,70,33,
+  4,70,25,3,38,25,141,70,25,70,25,102,25,103,33,70,25,103,33,103,
+  33,135,33,135,41,171,74,49,124,236,82,73,66,3,41,58,141,9,50,233,
+  49,232,49,232,49,200,49,168,41,200,49,200,41,168,41,167,41,135,41,167,
+  41,135,41,4,167,41,157,200,49,167,41,200,49,168,41,168,41,135,41,200,
+  49,200,49,232,49,233,49,9,58,74,66,139,74,203,82,12,91,45,99,77,
+  99,110,107,110,107,45,99,236,82,204,82,46,83,45,91,45,91,78,91,110,
+  99,142,99,175,99,3,143,99,160,175,107,176,107,176,107,208,107,16,116,114,
+  132,247,173,150,157,20,149,211,140,77,99,45,99,77,99,73,74,170,82,207,
+  115,171,82,134,49,36,33,32,0,162,24,73,74,170,82,105,74,12,99,16,
+  124,240,123,240,123,239,115,240,123,240,115,240,115,3,16,124,141,49,124,48,
+  124,145,148,117,181,117,181,182,189,136,33,198,8,230,16,198,8,198,8,230,
+  8,230,8,3,198,8,142,230,8,198,8,230,16,198,8,230,8,198,8,198,
+  8,230,8,6,17,230,16,7,17,6,17,39,25,196,16,5,65,8,144,130,
+  16,36,33,4,33,163,16,163,16,130,16,195,24,130,16,4,25,70,25,38,
+  17,38,25,39,25,39,25,38,25,38,25,4,39,25,131,38,17,39,17,39,
+  17,3,39,25,134,38,17,71,25,39,25,38,25,70,25,38,25,3,71,25,
+  131,70,25,71,25,70,25,5,103,33,129,71,25,6,103,33,129,102,33,3,
+  103,33,129,102,33,3,103,33,130,102,33,70,33,6,103,33,129,135,33,4,
+  103,33,132,135,33,103,33,103,33,136,33,3,135,33,3,103,33,131,135,33,
+  103,33,135,33,9,103,33,132,71,33,135,33,103,33,103,25,15,103,33,140,
+  70,25,103,33,71,33,103,33,71,33,71,33,103,33,71,33,102,33,102,25,
+  70,25,70,25,4,70,33,133,102,33,70,33,71,33,70,33,70,25,3,70,
+  33,131,70,25,70,33,70,25,4,70,33,141,70,25,71,25,38,25,70,25,
+  70,33,70,25,70,33,70,25,38,25,70,33,38,33,70,33,38,33,3,38,
+  25,132,38,33,38,33,38,25,37,25,3,38,25,110,4,135,142,99,142,99,
+  143,99,142,99,143,99,143,99,111,99,5,143,99,166,142,91,143,99,143,91,
+  143,99,111,99,143,99,143,91,143,99,143,99,143,91,143,99,111,91,111,91,
+  110,91,110,91,78,91,46,83,13,75,204,66,171,66,74,58,9,50,200,41,
+  168,33,167,41,200,41,200,41,167,33,200,41,232,41,9,42,42,50,42,50,
+  233,41,232,41,167,33,135,25,102,25,4,70,25,163,102,33,102,33,103,33,
+  135,33,135,33,136,33,135,33,69,25,4,25,228,16,69,33,199,49,41,58,
+  106,66,203,74,236,82,12,91,45,99,77,99,45,91,77,91,77,99,45,99,
+  77,91,45,91,45,99,45,99,45,91,45,91,77,99,77,91,77,91,45,91,
+  45,91,77,91,8,45,91,147,236,82,203,74,171,74,171,82,236,82,236,90,
+  77,91,143,99,240,115,49,116,110,99,40,58,130,8,97,8,196,16,236,74,
+  240,107,114,124,114,124,4,146,124,136,147,124,146,124,147,124,114,124,114,124,
+  146,124,146,124,114,124,4,146,124,130,147,124,146,124,8,147,124,129,147,132,
+  10,147,124,133,179,124,147,124,147,132,147,124,147,132,4,147,124,132,179,124,
+  147,124,179,124,179,124,4,147,124,139,146,124,147,124,147,124,147,132,147,124,
+  179,124,147,124,179,124,179,124,179,132,180,132,5,179,132,138,114,132,114,132,
+  117,165,170,90,8,66,40,66,8,66,40,74,40,66,8,66,9,40,66,134,
+  73,74,40,74,8,66,40,66,8,66,40,66,4,8,66,137,231,57,232,57,
+  231,57,231,57,199,57,199,49,199,57,199,57,199,49,3,167,49,6,134,41,
+  132,102,41,102,33,101,33,101,33,5,69,33,136,37,33,4,25,106,58,110,
+  91,228,24,131,8,130,8,98,8,5,130,8,10,98,8,130,65,8,97,8,
+  9,66,8,132,65,8,65,8,66,8,65,8,3,66,8,130,65,8,65,8,
+  3,98,8,130,65,8,66,8,5,65,8,3,33,8,130,65,8,33,8,3,
+  33,0,129,33,8,4,65,8,169,66,8,98,8,98,16,130,16,163,16,195,
+  16,195,24,228,24,4,25,37,33,37,33,69,41,134,41,134,41,166,49,167,
+  49,199,49,8,58,8,58,232,49,8,58,231,57,232,57,231,57,231,49,199,
+  49,199,49,166,49,134,41,134,41,102,41,102,33,102,33,70,33,101,33,37,
+  33,37,33,4,25,4,25,228,24,228,24,3,195,16,134,163,16,163,8,163,
+  16,131,16,163,16,131,16,5,163,16,140,163,8,163,16,195,16,163,16,164,
+  16,195,16,196,16,195,16,196,16,228,16,228,16,228,24,3,4,17,134,5,
+  25,5,17,37,25,37,17,38,25,37,25,3,70,25,132,102,33,102,25,70,
+  25,102,25,7,70,25,129,102,33,3,102,25,133,71,25,102,25,70,25,102,
+  33,102,25,3,70,25,161,71,25,70,25,70,25,102,25,102,33,103,33,70,
+  33,70,25,70,25,102,25,70,25,70,25,102,25,102,25,70,25,102,33,102,
+  25,70,25,139,74,240,115,204,82,106,66,41,58,9,58,41,58,41,58,232,
+  49,9,50,233,49,200,49,167,41,168,41,168,49,4,167,41,194,168,41,135,
+  41,167,41,200,41,200,41,200,49,168,41,200,49,168,41,167,41,167,41,200,
+  41,233,49,232,49,9,58,233,57,74,66,138,74,204,82,237,90,45,99,77,
+  99,110,107,110,107,78,99,204,82,204,82,13,83,45,83,45,91,78,91,143,
+  99,143,99,175,99,143,99,111,99,143,99,175,99,176,107,175,99,207,107,240,
+  115,114,132,215,165,150,165,211,148,146,132,77,99,45,99,77,107,105,74,138,
+  82,142,107,171,82,134,49,36,41,32,0,130,16,41,74,170,82,138,82,236,
+  98,16,124,240,123,240,123,208,115,5,240,115,145,240,123,16,124,16,124,113,
+  148,117,181,117,181,182,189,10,50,6,17,39,25,39,17,39,25,39,25,39,
+  17,38,17,38,17,39,17,3,39,25,129,39,17,3,39,25,130,71,25,39,
+  17,3,71,25,129,131,8,5,65,8,142,228,24,135,33,70,33,163,24,130,
+  16,163,16,163,16,195,24,227,24,167,41,135,33,103,33,103,33,103,25,3,
+  103,33,137,104,33,104,25,103,25,104,33,136,33,103,25,103,33,103,25,104,
+  33,3,103,25,140,103,33,103,33,103,25,103,25,103,33,103,25,104,33,103,
+  25,104,33,103,33,103,33,136,33,6,103,33,130,135,33,103,33,7,135,33,
+  129,167,33,4,135,33,129,136,41,3,135,33,129,135,41,4,135,33,129,135,
+  41,12,135,33,130,135,41,136,33,3,135,33,136,103,33,103,33,135,41,135,
+  33,136,33,103,33,136,41,135,41,7,135,33,129,136,33,8,135,33,129,103,
+  33,4,135,33,134,103,33,135,41,103,41,103,33,135,33,102,33,3,103,33,
+  150,102,33,102,33,103,33,103,33,71,33,70,33,102,33,70,33,102,33,71,
+  33,102,33,70,25,70,33,102,33,70,33,70,33,102,33,70,33,102,25,70,
+  25,70,33,70,25,7,70,33,129,70,25,5,70,33,134,38,33,38,33,70,
+  33,38,25,70,25,70,33,110,4,131,142,99,143,99,142,99,3,143,99,131,
+  143,91,143,99,110,91,3,143,99,135,143,91,143,99,143,91,143,99,143,99,
+  143,91,143,91,3,143,99,130,143,91,143,99,6,111,91,185,78,91,46,83,
+  237,74,171,66,74,50,41,50,233,49,200,41,200,41,168,33,168,41,167,33,
+  199,33,200,33,233,41,9,42,9,50,9,50,232,41,167,33,135,33,102,25,
+  102,25,70,25,38,25,70,25,102,25,103,33,135,33,135,25,135,33,37,25,
+  4,17,4,25,70,33,167,41,199,49,200,49,8,50,105,66,170,74,203,82,
+  12,91,45,91,77,91,45,99,45,91,45,91,77,91,45,91,77,99,77,91,
+  77,91,77,99,77,91,45,91,77,91,3,45,91,129,77,91,6,45,91,145,
+  236,82,203,74,171,82,204,90,236,90,12,91,77,99,175,107,240,115,17,116,
+  13,91,167,41,97,8,65,8,102,25,78,83,49,116,3,146,124,137,114,124,
+  147,124,146,124,147,124,146,124,114,124,146,124,146,124,114,124,6,146,124,5,
+  147,124,129,179,132,18,147,124,137,147,132,147,132,147,124,147,124,179,132,147,
+  132,147,132,147,124,179,132,9,147,124,131,147,132,179,124,147,124,3,179,132,
+  147,179,124,179,132,180,132,180,132,179,132,179,132,146,132,178,140,52,157,73,
+  74,8,66,8,66,40,66,40,66,8,66,40,66,40,66,8,66,40,66,3,
+  40,74,3,40,66,132,8,66,40,66,8,66,40,66,5,8,66,129,232,57,
+  4,231,57,132,199,57,199,57,199,49,166,49,3,167,49,129,166,49,6,134,
+  41,131,101,41,102,41,101,33,5,69,33,134,69,25,69,33,4,25,41,50,
+  45,83,98,8,8,130,8,9,98,8,140,66,8,97,8,65,8,66,8,66,
+  8,65,8,66,8,65,8,65,0,65,8,33,8,65,0,8,33,0,130,65,
+  0,33,0,3,66,8,142,98,8,130,16,163,16,195,16,196,24,4,25,4,
+  33,37,33,69,41,102,41,166,49,199,49,199,49,232,57,7,8,58,145,231,
+  57,231,49,199,49,199,49,167,41,134,41,102,33,101,33,69,33,37,25,4,
+  25,4,25,195,24,195,16,163,16,163,16,162,8,6,130,8,129,98,8,11,
+  130,8,3,130,16,132,130,8,163,16,163,8,131,8,9,163,16,130,195,16,
+  195,16,3,196,16,133,195,16,195,16,196,16,195,16,196,16,4,228,16,146,
+  4,17,5,25,37,25,5,25,5,25,37,25,37,25,38,25,38,25,70,25,
+  70,25,37,25,37,17,5,17,37,17,37,25,38,25,38,25,5,70,25,130,
+  102,25,70,25,3,103,25,131,70,25,70,25,38,25,3,37,25,155,70,25,
+  38,25,103,33,70,25,135,33,70,25,135,33,38,25,70,25,70,33,70,25,
+  103,25,102,25,102,25,102,33,102,25,102,25,103,25,70,25,236,82,16,116,
+  236,90,74,66,106,66,41,58,9,58,9,58,3,232,49,140,200,49,167,41,
+  200,49,168,49,167,41,168,41,167,41,135,41,168,41,135,41,167,41,168,41,
+  4,200,49,152,232,49,168,41,200,41,200,49,232,49,200,49,9,50,9,50,
+  74,66,139,74,204,82,236,90,45,99,78,107,110,107,110,107,77,99,236,82,
+  204,82,13,83,45,91,78,91,110,99,110,91,3,143,99,182,111,99,175,99,
+  208,107,175,107,175,99,208,107,241,123,114,132,150,165,182,165,20,149,178,140,
+  78,99,45,99,110,107,105,74,138,82,239,123,203,90,166,49,36,41,32,0,
+  130,16,40,74,170,82,138,82,203,90,16,132,240,123,240,123,240,115,240,115,
+  240,123,240,115,208,115,240,123,240,123,16,124,16,124,81,140,117,181,117,181,
+  214,197,139,74,104,25,136,25,104,25,136,33,104,33,136,33,104,33,104,33,
+  136,25,136,25,3,136,33,3,104,33,142,136,25,136,33,136,33,70,25,65,
+  8,65,8,97,8,97,8,65,8,228,24,38,33,200,33,168,33,228,24,3,
+  130,16,140,195,24,195,24,135,41,136,33,168,33,136,33,168,33,136,33,136,
+  33,168,33,136,33,168,33,9,136,33,129,135,33,3,136,33,130,136,25,136,
+  25,9,136,33,132,136,41,136,33,168,33,168,41,3,168,33,146,168,41,167,
+  33,168,33,168,33,167,33,168,41,168,41,167,33,168,33,135,33,167,41,167,
+  33,167,33,168,33,136,33,168,41,168,41,168,33,3,168,41,143,136,33,168,
+  33,168,33,168,41,167,33,135,41,167,41,168,33,167,41,168,33,168,41,167,
+  33,167,33,168,41,136,33,3,167,33,168,135,41,167,41,167,41,135,41,168,
+  41,168,41,136,41,168,41,167,33,168,33,136,33,168,41,168,41,167,33,167,
+  33,168,41,168,41,167,33,168,41,167,33,167,33,167,41,167,33,167,41,167,
+  33,167,33,135,41,135,33,135,41,135,33,135,33,135,41,135,41,135,33,135,
+  41,103,33,135,33,103,33,135,33,135,33,3,103,33,129,135,33,4,103,33,
+  130,102,33,103,33,3,102,33,135,70,33,102,33,102,33,103,33,70,33,70,
+  33,102,33,3,70,33,130,102,33,70,25,11,70,33,131,70,25,70,33,70,
+  33,60,4,9,143,99,129,143,91,6,143,99,5,143,91,129,143,99,4,143,
+  91,3,111,91,141,143,91,143,91,111,91,110,91,13,83,204,66,172,66,171,
+  66,107,58,74,50,41,50,233,49,232,41,4,200,41,165,232,41,233,41,9,
+  42,9,50,232,41,200,41,200,33,135,33,103,25,102,25,70,25,70,25,103,
+  25,135,33,103,33,37,25,228,16,4,17,102,33,167,41,199,41,167,41,167,
+  41,199,41,232,49,41,58,138,66,171,74,236,82,12,91,45,91,45,91,77,
+  91,77,99,77,99,45,91,45,99,14,45,91,148,204,82,171,82,171,82,204,
+  90,236,90,45,91,78,99,175,107,17,116,208,115,203,74,36,25,97,8,98,
+  8,9,42,175,99,82,124,147,132,147,124,146,124,3,147,124,140,146,124,146,
+  124,115,124,146,124,114,124,114,124,115,124,146,124,146,124,114,124,146,124,146,
+  124,7,147,124,134,147,132,147,132,147,124,147,124,147,132,147,132,9,147,124,
+  132,147,132,147,124,147,132,147,132,3,147,124,131,179,124,147,124,179,132,9,
+  147,124,151,179,132,147,124,179,124,179,132,147,124,179,132,179,132,180,132,179,
+  124,180,132,179,124,179,132,179,132,146,132,243,148,19,157,8,74,8,66,8,
+  66,40,66,8,66,40,66,8,66,10,40,66,130,8,66,40,66,6,8,66,
+  143,231,57,232,57,231,57,231,57,199,57,199,57,199,49,199,57,199,49,199,
+  49,167,49,166,49,167,49,134,41,134,49,3,134,41,132,102,41,101,41,102,
+  41,102,33,5,69,33,134,37,33,69,33,4,25,171,66,236,82,66,8,4,
+  98,8,133,66,0,66,8,65,0,66,0,34,0,11,33,0,171,33,8,65,
+  8,98,8,130,16,131,16,163,16,196,24,4,25,37,33,69,33,102,41,134,
+  41,199,49,199,57,8,58,73,66,73,66,138,74,138,74,73,66,105,74,105,
+  74,73,66,73,66,40,66,8,58,200,49,199,49,102,41,102,41,70,41,134,
+  41,167,41,134,33,4,25,228,24,163,16,163,16,130,16,130,16,98,8,98,
+  8,130,8,4,98,8,133,130,8,130,8,98,8,130,8,98,8,12,130,8,
+  3,130,16,138,162,16,130,8,130,16,162,16,130,16,130,8,162,8,162,8,
+  162,16,162,16,3,131,16,129,162,16,10,163,16,132,195,16,163,16,195,16,
+  195,16,5,196,16,131,195,16,196,16,196,16,5,228,16,156,5,17,4,17,
+  5,25,5,25,37,25,37,25,38,25,38,25,37,25,37,25,37,17,5,17,
+  37,17,37,25,37,17,6,25,38,25,38,25,37,17,70,25,102,25,70,25,
+  103,33,70,25,102,25,102,25,103,25,103,33,3,70,25,144,38,25,37,25,
+  69,25,70,25,70,25,103,25,102,25,102,25,70,25,102,25,102,25,103,25,
+  102,25,103,25,103,33,103,25,4,103,33,182,103,25,38,25,110,99,16,116,
+  236,82,106,74,106,74,41,58,41,58,9,58,41,58,8,50,9,50,232,49,
+  200,49,200,41,200,49,167,41,168,41,168,41,167,41,135,41,135,41,168,41,
+  200,49,200,49,232,49,168,49,200,41,232,49,200,49,200,41,200,49,232,49,
+  233,49,9,58,9,58,74,66,171,74,204,82,12,91,45,99,77,99,110,107,
+  110,107,78,99,236,82,204,74,13,91,77,91,78,91,110,99,143,99,110,99,
+  3,143,99,129,175,107,3,208,107,153,240,115,241,115,82,132,150,165,182,165,
+  52,149,244,140,110,99,45,99,110,107,106,74,105,82,142,107,235,90,166,49,
+  68,41,33,8,98,16,40,66,170,82,138,82,203,90,16,124,240,123,240,115,
+  5,240,123,148,240,115,240,123,16,124,49,132,48,140,149,181,117,181,214,197,
+  204,82,136,25,169,33,136,33,136,33,136,25,136,33,168,33,137,33,168,33,
+  168,33,169,33,4,168,33,169,136,33,168,33,200,33,5,25,33,0,65,8,
+  98,16,97,8,65,8,163,16,135,41,201,41,201,33,69,33,195,24,162,16,
+  163,24,163,16,228,32,167,41,201,33,201,41,168,41,169,33,201,41,201,33,
+  200,33,168,33,200,41,169,33,168,41,169,41,200,33,201,41,168,33,201,41,
+  200,41,200,41,200,33,201,41,200,41,4,201,33,152,201,41,201,41,201,33,
+  201,33,201,41,201,41,200,41,201,41,201,49,201,41,200,41,200,41,201,41,
+  233,41,232,41,200,41,233,41,200,41,200,41,232,41,232,41,200,41,200,41,
+  232,41,6,200,41,132,168,41,200,41,200,41,168,41,26,200,41,129,168,41,
+  17,200,41,144,167,33,168,41,200,41,168,41,168,41,167,41,168,41,167,41,
+  167,41,135,41,135,41,135,33,135,41,135,41,167,33,135,33,3,135,41,8,
+  135,33,3,103,33,3,102,33,3,103,33,129,102,33,3,103,33,129,102,33,
+  3,103,33,3,102,33,137,103,33,70,33,70,33,102,33,70,33,70,33,102,
+  33,70,33,102,33,119,4,132,142,99,111,99,143,99,143,91,3,143,99,134,
+  143,91,143,91,143,99,143,91,143,99,143,99,5,143,91,4,143,99,129,111,
+  91,9,143,91,131,110,83,46,75,14,75,3,13,75,133,237,74,236,66,171,
+  58,106,50,41,50,3,9,42,133,232,41,232,41,233,41,9,50,9,42,3,
+  41,50,139,9,42,201,33,200,33,135,25,135,25,103,25,102,33,37,25,4,
+  25,69,25,135,41,4,232,49,3,8,50,141,73,58,73,58,170,74,203,82,
+  44,91,45,91,77,99,77,91,77,91,77,99,45,91,45,91,77,91,11,45,
+  91,154,13,91,203,82,171,82,171,82,203,90,236,90,12,91,110,99,208,107,
+  17,116,175,107,138,66,195,16,65,8,131,8,139,58,208,107,114,124,147,124,
+  147,124,115,124,146,124,147,124,146,124,147,124,146,124,5,114,124,131,146,124,
+  114,124,146,124,4,147,124,137,147,132,147,124,147,124,147,132,147,124,147,132,
+  147,132,147,124,147,132,13,147,124,129,179,124,5,147,124,129,179,124,5,147,
+  124,131,146,124,147,124,147,124,3,147,132,132,147,124,179,124,147,124,179,124,
+  3,179,132,140,180,132,180,132,179,132,179,124,179,132,114,132,244,148,178,148,
+  231,65,8,66,40,66,8,66,4,40,66,129,8,66,3,40,66,131,8,66,
+  40,66,40,66,10,8,66,3,231,57,3,199,57,130,167,49,199,49,4,166,
+  49,193,134,49,166,49,166,41,134,41,134,41,101,41,102,41,102,41,102,33,
+  101,33,69,33,69,33,69,25,37,33,69,33,69,33,37,33,195,8,13,75,
+  135,41,66,8,131,16,196,24,37,33,102,41,199,49,232,57,41,66,138,74,
+  171,74,236,82,204,82,171,74,138,74,106,74,139,74,170,74,203,82,236,82,
+  204,82,236,90,203,82,236,82,203,82,171,74,138,74,106,74,73,58,41,58,
+  232,57,232,49,167,41,134,41,70,41,69,33,37,33,36,25,4,25,228,24,
+  163,16,163,16,131,16,131,16,130,8,130,8,3,130,16,131,131,16,131,16,
+  130,8,4,130,16,129,162,16,3,130,16,131,162,16,130,16,131,16,3,130,
+  16,133,130,8,162,8,130,16,130,16,131,16,4,130,16,130,130,8,130,8,
+  6,130,16,130,131,16,130,8,3,130,16,141,131,16,130,16,130,8,162,16,
+  130,16,130,8,131,8,163,16,162,8,130,8,162,16,131,16,131,16,10,163,
+  16,131,195,16,163,16,163,16,5,195,16,131,196,16,196,16,228,16,4,196,
+  16,3,228,16,130,4,17,4,17,3,5,17,135,37,25,38,25,70,25,38,
+  25,37,25,5,17,37,25,4,5,25,222,37,17,37,17,70,25,70,25,102,
+  25,102,25,70,17,103,25,102,25,102,25,135,25,102,25,135,33,135,33,102,
+  25,102,25,103,33,102,33,70,25,38,25,70,25,102,25,70,25,102,25,103,
+  25,70,25,135,33,135,33,103,25,102,33,135,33,135,33,136,33,136,33,167,
+  33,200,33,167,33,135,33,175,107,16,116,139,74,146,140,178,148,41,66,8,
+  50,9,58,41,58,9,50,232,49,200,41,200,41,167,41,200,49,167,41,167,
+  41,168,41,167,41,200,49,167,49,168,49,200,41,168,49,232,49,200,49,200,
+  49,232,49,200,49,200,49,232,49,233,49,233,49,9,58,9,58,74,66,171,
+  74,172,82,13,91,45,99,78,107,110,107,142,107,78,99,237,90,236,82,46,
+  83,78,91,78,91,110,91,143,99,143,99,110,99,143,99,175,107,207,107,3,
+  208,107,151,240,115,17,116,50,124,183,165,183,165,244,148,179,140,110,107,77,
+  99,110,107,138,74,73,74,207,115,12,91,167,49,69,41,33,8,97,8,40,
+  66,171,82,138,82,138,82,16,132,4,240,123,3,240,115,139,240,123,240,123,
+  16,124,49,124,48,132,117,181,117,181,214,197,46,91,169,33,201,33,3,169,
+  33,130,201,33,169,33,3,201,33,166,201,41,201,41,201,33,201,33,201,41,
+  233,41,233,41,196,8,33,0,98,8,98,8,97,8,65,8,4,25,9,50,
+  9,42,41,42,37,33,195,24,130,16,163,16,163,24,228,24,200,41,9,50,
+  233,41,9,50,10,50,10,50,10,42,10,42,10,50,9,50,9,50,10,50,
+  10,42,10,50,10,50,3,42,50,131,74,50,42,50,42,50,3,74,50,14,
+  42,50,129,10,50,3,42,50,3,9,50,129,41,50,7,9,50,131,9,42,
+  9,50,9,50,4,233,41,146,233,49,233,49,233,41,9,42,232,41,233,49,
+  233,49,9,50,233,41,233,41,233,49,233,49,9,50,233,49,9,42,233,49,
+  233,49,233,41,4,9,50,143,9,42,9,50,9,50,233,49,9,50,9,50,
+  233,41,233,41,9,50,233,49,233,49,233,41,232,41,233,41,233,49,3,232,
+  41,130,233,49,200,41,3,232,41,130,232,49,232,41,3,200,41,129,201,49,
+  3,200,41,141,168,41,200,41,200,41,168,41,167,41,168,41,168,41,167,41,
+  168,41,167,41,135,33,167,41,167,33,3,135,41,3,135,33,129,167,41,3,
+  135,33,3,135,41,132,135,33,103,33,135,33,135,33,12,103,33,133,102,33,
+  102,33,103,33,102,33,102,33,87,4,131,142,99,143,99,142,99,6,143,99,
+  132,143,91,143,99,143,91,143,99,3,143,91,4,143,99,130,143,91,143,99,
+  3,143,91,130,143,99,143,99,5,143,91,161,78,83,46,75,14,75,46,75,
+  78,83,78,83,79,91,78,83,13,67,237,66,172,66,172,58,107,50,74,50,
+  74,42,74,50,73,50,74,50,106,58,106,58,106,50,107,58,107,58,107,50,
+  107,58,42,50,9,42,200,33,200,33,232,49,232,57,41,58,73,66,4,138,
+  74,129,170,74,5,171,74,141,203,82,12,91,45,91,77,99,45,99,77,99,
+  77,91,45,91,77,91,45,91,45,91,77,91,77,91,8,45,91,145,12,91,
+  203,74,171,74,203,82,204,90,236,90,45,91,142,99,208,107,49,116,110,99,
+  40,58,130,8,65,8,228,16,13,75,240,107,3,146,124,3,147,124,130,146,
+  124,146,124,6,114,124,3,146,124,9,147,124,130,147,132,147,132,7,147,124,
+  130,146,124,147,132,9,147,124,129,147,132,6,147,124,129,146,124,5,147,124,
+  129,179,124,3,147,124,129,179,124,3,179,132,129,179,124,3,179,132,139,147,
+  124,179,132,113,132,20,149,48,132,231,65,8,66,40,66,8,66,40,66,8,
+  66,4,40,66,133,8,66,40,66,40,66,8,66,40,66,3,8,66,129,40,
+  66,4,8,66,132,231,57,232,57,231,57,199,57,3,231,57,133,199,57,199,
+  57,167,49,199,49,167,49,3,166,49,5,134,41,131,102,41,102,33,102,33,
+  7,69,33,156,4,25,52,149,183,165,182,173,215,173,183,173,117,157,20,149,
+  179,140,81,124,16,108,207,107,110,99,236,82,171,74,73,66,106,66,232,49,
+  135,41,70,33,37,25,4,25,4,25,228,24,196,16,196,16,163,16,163,8,
+  4,163,16,130,131,16,131,16,3,163,16,129,131,16,12,163,16,129,162,16,
+  6,163,16,131,162,16,131,16,131,16,3,163,16,3,130,16,136,131,16,131,
+  16,130,16,162,16,130,16,130,16,131,16,131,16,4,130,16,129,130,8,7,
+  130,16,144,131,16,130,16,130,16,131,16,163,16,130,16,130,16,163,16,131,
+  8,131,16,162,8,131,8,163,16,163,16,131,8,131,16,3,163,16,132,163,
+  8,163,8,162,16,162,16,6,163,16,4,195,16,3,196,16,130,195,16,196,
+  16,7,228,16,135,5,25,37,25,37,17,37,17,37,25,38,25,38,25,3,
+  70,25,6,37,25,131,38,25,37,25,38,25,3,70,25,136,103,25,135,25,
+  103,25,103,33,135,33,135,33,103,33,103,33,14,135,33,157,168,33,168,33,
+  135,33,168,41,168,33,168,33,200,41,232,41,201,41,200,33,168,33,237,82,
+  208,107,204,90,16,132,24,190,106,74,41,58,9,50,9,50,9,58,8,50,
+  200,41,200,41,167,41,200,49,199,41,200,49,135,41,3,168,41,129,135,41,
+  5,200,49,185,232,49,232,49,200,49,200,49,9,58,233,57,9,50,41,58,
+  74,66,171,74,204,82,13,91,45,99,77,99,110,107,110,107,77,107,13,91,
+  236,82,45,83,78,91,78,91,111,91,143,99,110,99,78,91,143,99,143,99,
+  175,107,176,107,208,107,240,107,241,115,240,115,49,124,183,165,183,165,53,149,
+  211,140,110,107,77,99,110,107,171,82,232,65,228,32,77,107,199,57,101,41,
+  33,8,97,8,8,66,171,82,170,82,170,82,16,132,16,124,240,123,3,240,
+  115,149,240,123,240,123,16,124,16,116,16,124,49,124,240,123,117,181,117,181,
+  215,197,143,107,201,33,10,42,233,41,234,33,10,42,10,42,233,41,10,42,
+  10,50,10,50,4,42,50,148,75,50,234,41,99,8,65,8,98,8,98,8,
+  98,16,65,8,135,41,107,58,75,50,107,58,70,33,163,24,163,16,130,16,
+  162,16,162,16,167,49,139,58,3,107,58,133,107,50,107,58,107,58,139,58,
+  107,58,3,139,58,146,140,58,139,58,140,58,140,58,139,58,139,58,140,66,
+  172,66,172,66,171,66,172,66,172,66,172,58,140,58,172,66,140,66,139,66,
+  140,58,3,139,58,8,107,58,133,106,58,107,58,107,58,74,58,106,58,3,
+  74,58,130,74,50,106,58,3,74,58,132,74,50,74,50,42,50,42,50,3,
+  41,50,132,74,58,74,50,42,58,42,50,3,42,58,158,42,50,42,50,41,
+  50,74,50,74,58,74,58,42,50,74,58,42,58,74,58,74,58,73,50,74,
+  58,42,50,74,58,42,58,73,58,73,50,74,58,41,50,41,50,41,58,41,
+  58,41,50,42,50,41,50,41,50,9,50,41,50,41,50,7,9,50,154,232,
+  49,9,50,233,49,233,49,232,49,233,49,232,41,232,41,233,49,200,41,200,
+  41,200,49,200,41,200,41,201,41,200,41,200,49,200,49,167,41,200,41,200,
+  41,167,41,200,41,168,41,167,41,168,41,5,167,41,136,135,41,167,41,135,
+  41,135,41,135,33,167,41,135,41,135,33,3,135,41,130,135,33,103,33,3,
+  135,41,132,135,33,103,33,103,33,135,41,3,103,41,130,102,33,102,33,135,
+  4,130,143,99,142,99,8,143,99,139,143,91,110,91,143,91,142,91,143,91,
+  143,99,143,99,143,91,143,91,111,91,110,91,8,143,91,151,143,99,143,91,
+  143,91,111,83,46,75,46,75,78,75,111,83,111,91,111,91,111,83,78,83,
+  78,75,46,75,14,75,205,66,172,58,139,58,171,66,139,66,139,58,172,66,
+  172,66,3,172,58,138,172,66,204,66,237,66,204,66,139,58,171,66,203,82,
+  171,82,204,82,236,90,4,12,91,130,44,91,12,91,6,45,91,130,45,99,
+  45,91,3,45,99,134,77,99,77,91,77,91,45,91,45,91,77,91,8,45,
+  91,160,236,82,203,82,171,74,203,82,236,90,236,90,77,91,143,99,240,115,
+  17,108,77,91,199,49,98,8,65,8,70,25,78,83,49,116,147,124,146,124,
+  147,124,146,124,147,124,146,124,146,124,114,124,146,124,146,124,114,124,146,124,
+  114,124,146,124,114,124,3,146,124,133,147,132,147,124,147,132,179,132,147,132,
+  5,147,124,129,147,132,23,147,124,129,146,124,4,147,124,129,147,132,5,147,
+  124,132,179,124,179,132,179,124,179,124,3,179,132,145,180,132,179,124,146,132,
+  146,140,20,149,174,115,8,66,8,66,40,66,8,66,40,66,40,66,8,66,
+  40,66,8,66,40,66,40,66,3,8,66,129,40,66,5,8,66,135,7,66,
+  8,66,232,57,8,58,232,57,231,57,231,57,3,199,57,133,199,49,199,57,
+  199,49,167,49,167,49,3,166,49,5,134,41,131,102,41,101,33,102,33,5,
+  69,33,135,37,33,69,33,37,25,73,50,204,74,167,41,4,25,3,196,16,
+  139,163,16,163,16,195,16,195,16,195,24,196,24,4,25,228,24,5,25,195,
+  16,163,16,3,195,16,3,196,16,129,196,24,3,196,16,136,195,16,195,24,
+  195,16,196,16,195,16,195,16,163,16,195,16,10,163,16,130,162,16,162,16,
+  5,163,16,130,131,16,163,16,4,162,16,141,163,16,163,16,131,16,130,16,
+  131,16,163,16,163,16,130,16,130,16,130,8,130,16,130,16,130,8,3,130,
+  16,134,131,8,130,16,130,8,130,16,130,16,130,8,3,130,16,134,130,8,
+  163,16,131,16,130,8,130,8,163,16,3,130,8,129,163,8,3,163,16,129,
+  163,8,4,163,16,132,163,8,163,16,163,16,163,8,7,163,16,138,195,16,
+  163,16,163,16,195,16,196,16,196,16,195,16,196,16,228,24,196,16,3,228,
+  16,130,229,24,5,25,3,5,17,4,37,25,129,38,25,4,70,25,5,38,
+  25,3,70,25,134,102,25,102,25,135,33,103,33,135,25,135,25,4,167,33,
+  130,135,33,168,41,3,135,33,146,168,33,168,33,167,33,135,33,135,33,200,
+  33,168,33,168,33,167,33,167,33,168,33,168,33,200,41,200,41,168,41,201,
+  41,200,41,233,41,3,232,41,157,200,41,45,91,13,83,236,90,236,90,20,
+  157,78,99,233,57,232,57,41,58,9,58,9,50,200,41,168,41,200,41,200,
+  49,200,41,168,41,200,41,200,41,167,41,200,41,168,49,200,49,168,41,232,
+  49,233,57,232,49,232,49,3,200,49,186,233,49,9,58,41,58,41,58,106,
+  66,171,74,236,82,13,91,77,99,77,99,110,107,110,107,77,99,13,91,236,
+  82,45,91,46,91,78,91,110,91,110,91,78,91,78,91,110,91,110,99,143,
+  99,175,99,208,107,208,107,241,115,240,115,49,124,150,165,183,165,53,149,243,
+  140,142,107,45,99,110,107,171,82,134,49,163,24,228,32,8,66,101,41,65,
+  8,65,8,8,66,171,82,170,82,138,82,16,124,240,123,240,123,240,115,240,
+  115,240,123,240,123,16,124,3,240,115,139,17,124,16,132,85,181,149,181,247,
+  197,240,123,74,50,107,58,75,50,107,58,108,58,3,107,58,130,140,58,108,
+  58,3,140,58,131,173,66,233,41,66,0,3,98,16,165,97,8,98,8,74,
+  66,237,66,173,66,205,66,135,33,98,16,163,24,130,16,162,16,130,16,195,
+  24,171,66,205,66,205,66,204,66,237,66,205,66,205,66,205,74,204,66,237,
+  66,204,66,237,74,204,66,237,74,237,66,237,66,237,74,237,74,237,66,237,
+  74,237,66,237,66,237,74,205,74,3,237,74,135,205,66,204,66,205,74,205,
+  66,204,66,204,66,172,58,3,172,66,142,171,58,172,66,171,66,171,58,172,
+  58,139,66,172,66,139,66,140,66,140,66,139,66,140,66,139,58,139,66,3,
+  139,58,132,107,58,139,66,139,58,138,58,3,106,58,140,107,58,139,58,139,
+  58,107,66,107,58,139,66,107,58,107,58,139,58,139,66,139,58,106,58,4,
+  139,58,139,107,66,107,66,139,58,139,66,139,58,139,58,139,66,107,58,138,
+  58,139,58,107,58,4,106,58,131,107,58,107,58,106,58,5,74,58,139,74,
+  50,74,58,41,50,42,58,41,50,42,50,41,50,41,50,41,58,41,50,9,
+  58,7,9,50,137,233,49,232,49,233,49,232,49,233,41,200,41,232,41,200,
+  49,200,49,5,200,41,132,168,41,168,41,167,41,167,41,3,168,41,3,167,
+  41,129,168,41,4,167,41,143,136,41,136,41,135,41,167,41,135,41,135,41,
+  135,33,135,33,135,41,135,41,103,41,135,41,103,33,135,33,135,33,101,4,
+  152,110,99,142,99,143,99,110,91,142,91,142,91,143,99,143,91,143,91,142,
+  91,143,91,143,91,143,99,143,91,142,91,143,91,142,91,143,99,143,91,143,
+  91,143,99,143,99,143,91,143,99,8,143,91,143,111,91,110,83,78,83,111,
+  83,111,83,111,91,111,91,110,83,110,83,78,83,78,83,78,75,46,75,237,
+  66,205,66,3,204,66,134,237,66,237,66,205,66,205,66,204,58,237,66,4,
+  13,75,154,78,91,77,99,236,90,12,83,45,91,45,91,45,99,45,99,45,
+  91,77,99,45,99,77,99,45,91,77,91,45,91,45,91,77,91,77,99,45,
+  91,45,91,77,99,45,99,77,99,77,91,45,91,77,91,10,45,91,150,203,
+  82,203,82,171,82,203,82,236,82,12,91,77,91,175,107,16,108,16,116,12,
+  91,134,41,65,8,65,8,199,33,143,91,82,116,146,124,114,124,146,124,146,
+  124,114,124,3,146,124,130,114,124,146,124,3,114,124,5,147,124,135,147,132,
+  147,124,147,124,147,132,147,124,147,124,146,124,20,147,124,129,147,132,6,147,
+  124,130,146,124,146,124,7,147,124,132,147,132,147,124,179,132,147,132,4,179,
+  132,143,179,124,179,124,179,132,146,132,146,132,84,157,44,99,8,66,40,74,
+  40,66,8,66,40,66,40,66,40,74,40,66,3,8,66,129,40,66,4,8,
+  66,135,40,66,8,66,8,66,7,58,8,58,8,66,232,65,3,231,57,136,
+  199,57,199,57,231,57,199,57,199,49,167,49,166,49,199,49,4,166,49,4,
+  134,41,3,102,41,8,69,33,146,37,25,135,33,142,91,102,33,5,33,228,
+  24,228,24,4,25,228,24,4,25,4,25,228,24,4,25,5,25,37,33,37,
+  33,69,33,195,24,3,195,16,136,195,24,196,16,195,16,196,16,196,24,163,
+  16,195,16,195,16,3,163,16,133,195,16,195,16,196,16,163,16,195,16,14,
+  163,16,131,131,16,163,16,162,16,3,163,16,141,162,16,163,16,162,16,163,
+  16,163,16,130,16,131,16,130,16,163,16,163,16,162,16,130,16,162,16,3,
+  130,8,130,130,16,130,16,5,130,8,143,131,8,130,8,130,8,130,16,130,
+  16,131,16,131,16,130,8,131,16,130,16,130,16,163,16,163,8,131,8,131,
+  8,3,163,16,133,163,8,163,16,163,16,162,16,163,8,11,163,16,5,195,
+  16,4,196,16,4,228,16,130,5,25,5,25,4,37,25,130,38,25,38,25,
+  7,70,25,130,37,17,37,25,3,70,25,136,102,25,102,25,103,25,102,25,
+  135,33,135,33,167,33,135,33,4,167,33,136,200,33,167,33,168,33,168,41,
+  167,33,167,33,168,33,168,33,3,167,33,131,168,33,200,41,200,33,4,200,
+  41,159,168,41,135,33,136,33,135,33,167,33,200,41,232,41,233,41,200,41,
+  143,107,239,115,12,91,170,82,207,115,49,124,74,66,232,49,9,58,233,49,
+  232,49,200,49,200,41,167,41,200,49,200,41,167,41,200,49,200,41,168,41,
+  200,41,200,41,3,200,49,154,233,49,9,58,233,49,232,49,233,49,232,49,
+  9,50,9,58,41,58,42,58,106,66,171,74,204,90,13,91,45,99,78,107,
+  110,107,110,107,45,99,13,83,236,82,13,83,45,83,46,91,78,91,110,91,
+  3,110,99,3,143,99,155,175,107,208,107,17,116,16,116,49,124,118,165,183,
+  165,53,157,244,140,142,107,77,99,110,107,8,58,166,49,162,24,162,24,228,
+  32,134,49,65,8,65,8,231,57,171,82,171,82,138,74,240,123,16,124,240,
+  123,3,240,115,142,240,123,16,124,240,115,240,123,17,124,17,124,239,123,84,
+  181,117,181,214,189,81,132,172,66,205,74,173,66,5,205,66,158,237,66,205,
+  66,237,66,237,66,46,75,135,33,33,0,130,16,130,16,98,8,65,8,4,
+  25,236,74,14,75,14,75,46,83,135,41,98,8,130,16,163,24,130,16,162,
+  16,130,16,167,41,78,75,13,75,14,75,46,75,13,67,14,75,5,13,75,
+  129,46,75,3,14,75,142,46,75,13,75,14,75,46,75,14,75,14,75,45,
+  75,46,83,46,75,14,75,14,75,13,75,13,75,13,83,3,13,75,3,237,
+  74,135,237,66,237,74,236,66,237,66,205,66,237,66,236,66,3,204,66,133,
+  205,74,204,66,204,74,204,66,172,66,3,204,66,130,172,66,204,66,5,172,
+  66,132,171,66,172,66,204,66,171,66,3,172,66,4,171,66,4,172,66,129,
+  172,74,3,172,66,141,204,66,171,66,204,66,171,66,172,66,171,66,171,66,
+  172,66,172,66,171,66,172,66,172,66,171,66,5,139,66,132,139,58,139,66,
+  106,58,139,58,4,106,58,130,75,58,106,58,4,74,58,136,42,50,41,50,
+  41,58,41,50,9,50,9,50,41,50,41,50,4,9,50,156,233,41,9,50,
+  233,49,233,49,232,49,232,41,232,49,232,49,200,49,232,41,200,41,200,49,
+  200,49,200,41,168,41,168,41,200,41,200,41,168,41,200,41,168,41,167,41,
+  168,41,168,41,167,41,167,33,167,41,167,33,4,167,41,5,135,41,130,135,
+  33,135,41,57,4,143,110,99,110,91,142,91,143,91,143,91,142,91,143,99,
+  142,91,143,91,143,91,143,99,111,91,111,91,110,91,110,91,3,143,91,129,
+  111,91,9,143,91,129,143,99,4,143,91,134,111,91,110,83,110,83,78,83,
+  110,83,111,91,3,110,83,132,78,83,78,75,46,75,14,67,3,237,66,129,
+  237,74,4,237,66,5,13,75,147,13,83,110,99,78,107,203,90,203,82,44,
+  91,45,99,45,99,45,91,45,99,45,99,45,91,45,99,45,91,45,91,45,
+  99,45,91,45,91,45,99,4,45,91,131,77,91,45,91,77,91,10,45,91,
+  149,13,91,203,82,171,74,171,82,203,82,236,90,12,91,77,99,175,107,17,
+  108,240,107,203,82,36,25,65,8,98,8,41,50,175,99,114,124,146,124,146,
+  124,114,124,4,146,124,5,114,124,134,146,124,114,124,147,124,146,124,147,124,
+  147,132,5,147,124,129,147,132,27,147,124,132,146,124,146,124,147,124,146,124,
+  7,147,124,130,179,124,179,124,4,179,132,139,179,124,179,124,179,132,179,124,
+  114,124,146,132,85,165,170,90,7,66,40,66,40,66,3,8,66,136,40,66,
+  8,66,8,66,40,66,40,66,8,66,40,66,40,66,6,8,66,132,8,58,
+  232,57,232,57,199,57,3,231,57,129,199,57,4,199,49,133,167,49,166,49,
+  167,49,166,49,134,49,3,134,41,3,102,41,131,101,33,102,33,101,33,3,
+  69,33,129,69,25,3,69,33,137,36,25,106,58,240,107,232,49,228,24,228,
+  24,228,16,4,17,4,25,3,228,24,133,4,25,37,25,37,25,37,33,37,
+  33,5,195,16,132,196,16,195,8,195,16,196,16,3,195,16,130,163,16,163,
+  16,4,195,16,22,163,16,129,130,16,4,163,16,135,130,16,163,16,163,16,
+  162,16,130,16,162,16,162,16,3,130,16,138,131,16,130,16,130,16,130,8,
+  131,16,130,8,130,8,130,16,130,16,130,8,3,130,16,3,131,8,142,130,
+  8,163,8,130,16,130,8,163,16,163,16,163,8,163,8,163,16,162,16,163,
+  8,163,8,163,16,130,16,13,163,16,135,195,16,195,16,196,16,195,16,196,
+  16,228,16,228,24,4,228,16,132,4,25,5,25,5,17,5,17,4,37,25,
+  3,70,25,134,102,25,103,25,102,25,102,25,103,25,135,25,3,102,25,143,
+  103,25,135,25,135,33,135,33,135,25,135,33,103,33,135,33,135,33,167,33,
+  167,33,135,33,167,33,168,33,168,33,3,135,33,129,135,25,5,135,33,130,
+  168,33,168,33,4,200,41,135,168,33,135,33,135,33,135,25,103,25,135,33,
+  135,33,3,168,33,140,110,99,16,116,45,91,138,74,106,74,211,140,13,91,
+  41,58,9,58,9,50,8,50,232,49,3,200,49,196,199,41,232,49,200,41,
+  167,41,200,41,200,41,200,49,232,49,233,49,200,49,233,57,9,58,9,58,
+  233,49,232,49,233,49,9,50,9,58,41,58,41,58,106,66,171,74,204,82,
+  13,91,45,99,77,99,110,107,77,99,236,90,236,90,236,82,13,91,45,91,
+  45,91,46,91,110,99,143,99,111,99,143,99,175,99,175,107,143,107,175,99,
+  175,99,240,115,17,116,49,124,118,165,215,165,20,149,211,140,175,107,110,107,
+  106,74,231,57,101,41,97,8,195,24,162,24,228,32,97,8,65,8,199,57,
+  170,82,171,90,106,74,239,123,16,124,4,240,115,140,240,123,240,115,16,116,
+  240,115,16,124,49,124,240,123,84,173,117,181,182,189,146,140,237,66,4,14,
+  75,129,46,75,3,14,75,155,46,75,78,75,78,75,228,16,65,8,130,16,
+  130,16,98,16,33,8,167,41,111,91,78,75,78,83,79,83,167,33,66,8,
+  98,8,163,16,163,24,163,16,130,16,130,16,236,74,78,83,79,83,78,83,
+  78,75,3,78,83,134,78,75,78,83,78,75,78,83,78,75,79,83,3,78,
+  75,133,79,83,78,83,46,75,79,83,79,83,7,78,83,129,46,83,3,46,
+  75,134,46,83,46,75,46,75,14,75,13,75,45,75,10,13,75,3,237,74,
+  142,13,75,237,74,13,75,236,74,236,74,237,74,237,74,236,74,237,74,237,
+  66,205,74,204,74,236,74,204,74,3,237,74,134,205,74,204,74,236,74,204,
+  74,204,66,237,74,3,204,74,132,205,74,204,66,204,66,236,74,3,204,74,
+  131,204,66,236,74,204,66,3,204,74,129,204,66,4,172,66,137,171,66,172,
+  66,172,66,171,66,171,66,139,58,171,66,139,66,171,66,3,139,66,131,139,
+  58,139,58,138,58,5,106,58,4,74,58,133,74,50,41,50,41,58,41,58,
+  41,50,3,9,50,140,9,58,9,50,9,50,233,49,9,50,233,49,233,41,
+  232,41,201,49,232,49,200,41,201,49,4,200,41,140,200,49,200,41,168,41,
+  168,41,200,41,168,41,167,41,167,41,168,41,168,41,167,41,168,41,3,167,
+  41,4,135,41,80,4,5,110,91,135,110,99,110,91,142,91,143,91,110,91,
+  110,91,143,99,5,110,91,137,142,91,111,91,143,91,143,99,143,91,143,99,
+  143,91,143,99,142,91,7,143,91,131,110,91,78,83,46,83,3,78,83,130,
+  79,83,79,83,3,78,83,131,78,75,14,75,13,75,4,237,66,152,237,58,
+  237,66,13,75,13,75,14,75,46,75,14,75,13,75,13,83,77,99,77,107,
+  236,90,236,90,44,99,45,99,44,91,45,91,45,99,45,91,77,91,45,91,
+  77,99,45,91,77,99,3,45,99,129,77,91,16,45,91,151,12,91,203,82,
+  171,82,171,82,236,90,236,90,45,91,110,99,207,107,49,116,207,107,170,74,
+  4,17,65,8,98,8,138,58,176,99,114,124,114,124,146,124,114,124,146,124,
+  146,124,3,114,124,134,146,124,146,124,114,124,114,124,146,124,114,124,4,147,
+  124,131,147,132,146,124,146,124,4,147,124,132,146,124,147,124,147,124,147,132,
+  9,147,124,130,147,132,147,132,9,147,124,134,146,124,147,124,146,124,146,124,
+  147,124,146,124,7,147,124,130,179,124,179,124,4,179,132,147,179,124,147,132,
+  179,132,179,132,146,132,179,140,85,157,105,82,40,66,8,66,8,66,40,66,
+  8,66,8,66,40,66,40,66,8,66,8,66,40,66,6,8,66,132,8,58,
+  8,66,8,58,232,65,4,231,57,130,199,57,199,57,4,199,49,129,167,49,
+  3,166,49,129,167,49,5,134,41,132,102,41,102,33,102,33,70,33,6,69,
+  33,148,37,33,69,33,4,17,46,83,143,99,135,41,69,33,4,25,4,25,
+  37,25,36,25,36,25,228,24,4,25,4,25,37,33,70,33,70,33,37,33,
+  163,16,3,195,16,129,196,16,4,195,16,131,196,16,195,16,195,16,5,163,
+  16,132,195,16,163,16,163,16,195,16,18,163,16,129,130,8,4,163,16,135,
+  130,16,131,16,163,16,163,16,130,16,162,16,130,8,3,162,16,147,130,16,
+  163,16,130,8,131,8,130,8,130,16,163,16,130,8,130,16,131,16,130,16,
+  130,8,130,16,130,8,131,8,163,8,130,8,162,8,131,8,3,163,8,134,
+  162,8,163,16,131,8,162,8,162,8,163,8,14,163,16,130,195,16,163,16,
+  5,196,16,130,228,16,196,16,3,228,16,146,228,24,4,17,5,25,5,17,
+  5,17,37,25,38,25,37,25,70,25,37,25,102,25,70,25,70,25,102,25,
+  102,25,103,25,135,33,102,25,3,135,33,129,102,25,3,103,25,133,135,25,
+  135,33,103,33,103,25,135,25,3,135,33,139,167,33,167,33,168,33,135,33,
+  135,33,103,33,102,25,102,25,103,33,135,33,135,33,3,168,33,194,200,41,
+  200,41,232,41,233,41,232,41,168,33,135,33,135,33,103,33,135,33,168,33,
+  200,41,200,41,168,33,171,74,13,91,77,99,106,74,102,41,85,157,46,91,
+  171,66,9,50,9,50,9,58,200,49,167,41,168,41,200,41,199,41,200,41,
+  200,49,167,41,167,41,200,49,200,49,232,49,200,49,233,57,9,58,232,49,
+  233,49,233,49,9,50,232,49,9,58,9,58,41,58,74,58,106,66,171,82,
+  204,82,12,91,45,99,78,107,110,107,45,99,171,74,236,82,204,82,13,83,
+  45,91,45,91,78,91,110,99,111,99,3,143,99,173,176,107,175,107,143,107,
+  175,107,240,115,241,115,17,124,118,157,215,165,53,157,20,149,240,115,171,82,
+  231,57,199,57,36,41,65,8,65,8,162,24,163,24,130,16,65,8,167,57,
+  203,82,171,82,137,74,207,123,16,124,240,123,240,115,240,123,240,115,240,123,
+  240,115,240,115,240,123,16,124,49,124,240,123,52,173,149,181,182,189,178,148,
+  14,75,78,83,3,79,83,156,47,75,79,83,78,75,79,83,144,91,205,66,
+  99,8,98,16,130,16,98,16,98,8,65,8,138,66,176,91,111,83,111,83,
+  143,91,168,41,98,8,98,8,98,16,163,24,195,24,195,24,130,16,102,41,
+  143,91,111,91,9,111,83,129,143,83,13,111,83,138,111,91,143,83,111,83,
+  111,83,110,83,79,83,78,83,78,83,79,83,79,83,4,78,83,131,46,83,
+  46,75,46,83,3,46,75,138,46,83,46,83,46,75,46,75,45,75,13,75,
+  45,75,45,75,13,75,45,83,8,13,75,129,237,74,3,13,75,130,237,74,
+  13,75,6,237,74,140,13,75,237,74,237,74,13,83,13,75,13,75,237,74,
+  236,74,13,75,237,74,13,75,236,74,3,237,74,131,236,74,237,74,237,74,
+  3,204,74,3,204,66,131,172,66,204,66,172,58,3,172,66,132,171,66,172,
+  66,172,66,171,66,3,139,66,134,139,58,139,66,106,58,107,58,107,58,107,
+  66,4,74,58,130,42,58,74,58,4,41,50,5,9,50,150,10,50,9,50,
+  233,49,233,49,232,49,9,42,232,49,232,49,200,41,200,49,200,49,200,41,
+  200,49,200,49,200,41,200,41,168,41,168,41,167,41,167,41,168,41,168,41,
+  6,167,41,130,135,41,135,41,100,4,129,111,91,4,110,91,134,111,99,110,
+  91,111,99,143,99,143,91,142,91,5,110,91,132,111,91,143,99,111,91,111,
+  91,3,143,91,129,111,91,3,143,91,130,111,91,111,91,3,143,91,146,111,
+  91,111,91,78,83,46,75,46,75,78,83,78,75,46,75,46,83,78,83,78,
+  83,78,75,78,75,46,75,13,67,237,66,237,74,13,75,3,237,66,141,13,
+  75,46,75,78,75,46,83,46,83,13,75,13,83,45,99,45,99,12,91,12,
+  91,45,91,45,99,4,45,91,131,44,91,45,91,77,99,4,45,91,129,45,
+  99,16,45,91,151,44,91,12,91,171,74,171,82,203,82,236,90,236,90,45,
+  91,110,91,208,107,49,116,175,107,138,66,195,16,65,8,131,8,172,66,209,
+  107,115,124,146,124,114,124,114,124,146,124,3,114,124,129,146,124,3,114,124,
+  132,115,124,146,124,147,124,147,124,3,147,132,131,147,124,147,124,146,124,5,
+  147,124,129,146,124,20,147,124,134,115,124,146,124,114,124,146,124,147,124,146,
+  124,9,147,124,142,179,124,179,124,180,132,179,132,179,132,179,124,179,124,147,
+  132,179,124,147,132,146,132,243,140,19,149,40,66,5,8,66,130,40,66,40,
+  66,4,8,66,129,8,58,6,8,66,131,232,65,8,66,232,65,4,231,57,
+  135,199,57,231,57,199,49,199,49,199,57,167,49,199,49,4,166,49,3,134,
+  41,135,102,41,102,41,101,33,102,33,102,33,102,41,70,33,5,69,33,155,
+  69,25,69,25,228,16,207,91,13,83,102,41,37,33,4,25,37,25,69,33,
+  135,41,167,49,5,33,4,25,4,25,37,33,102,41,167,49,4,25,163,16,
+  195,16,196,16,196,16,228,16,196,16,195,16,195,16,3,196,16,134,195,16,
+  163,16,195,16,163,16,163,16,195,16,21,163,16,165,162,16,162,16,163,16,
+  163,16,131,16,162,16,130,16,163,16,163,16,162,16,162,16,130,16,162,8,
+  162,16,163,16,131,8,162,16,130,16,130,16,131,8,130,8,130,8,131,16,
+  131,8,131,16,131,16,130,16,131,16,131,16,163,8,131,8,163,8,163,16,
+  131,8,163,16,163,16,163,8,3,163,16,132,163,8,163,16,163,16,163,8,
+  3,163,16,129,162,16,7,163,16,132,195,16,163,16,195,16,163,16,4,195,
+  16,130,196,16,196,16,5,228,16,132,5,25,5,17,5,25,5,17,4,37,
+  25,5,70,25,135,103,25,102,25,102,33,103,33,135,33,102,25,103,33,3,
+  135,33,136,103,25,102,25,103,25,135,25,135,33,103,33,135,33,135,25,3,
+  135,33,132,167,33,168,41,167,33,167,33,4,135,33,131,167,33,167,33,200,
+  33,3,200,41,159,232,41,233,41,233,41,232,41,233,41,233,41,200,41,168,
+  33,168,33,200,41,200,41,200,33,200,41,77,99,13,91,110,99,138,74,164,
+  24,85,157,110,99,236,74,232,49,41,58,233,49,232,49,200,49,168,41,200,
+  49,167,41,200,41,232,49,3,200,41,206,199,41,200,49,232,49,9,58,9,
+  58,232,49,9,58,9,50,9,50,233,49,9,50,41,58,41,58,74,58,106,
+  66,139,74,236,82,13,91,45,99,78,107,110,107,45,99,138,74,204,82,204,
+  82,13,83,45,91,78,91,78,91,110,99,110,99,143,99,143,99,111,99,143,
+  99,143,107,175,107,208,107,240,115,240,115,17,124,85,157,215,165,85,157,20,
+  149,142,107,231,65,231,65,133,49,4,33,69,41,0,0,97,8,162,24,163,
+  24,130,16,167,57,203,82,171,82,138,74,207,115,16,124,240,115,16,116,240,
+  115,240,115,16,116,16,124,16,124,49,124,48,124,17,124,16,124,243,164,150,
+  189,182,189,20,157,79,83,4,111,83,160,111,91,111,83,143,91,208,91,201,
+  41,33,8,162,16,130,16,98,8,65,8,163,16,78,91,208,91,111,83,143,
+  91,208,91,201,41,98,16,130,16,98,8,162,16,163,16,163,24,163,24,163,
+  16,171,74,176,91,143,83,144,91,143,91,143,83,176,91,3,144,91,130,144,
+  83,144,91,4,143,91,134,144,91,143,91,143,83,143,91,144,91,144,91,6,
+  143,91,131,143,83,143,83,143,91,8,111,83,129,110,83,8,78,83,152,78,
+  75,78,83,78,83,46,83,78,83,78,83,46,75,46,83,46,83,46,75,46,
+  75,46,83,46,83,13,75,45,75,45,75,14,75,13,75,46,75,13,75,13,
+  83,13,75,13,83,13,83,3,13,75,134,13,83,13,75,45,83,13,75,45,
+  75,13,83,4,13,75,134,13,83,13,75,13,75,237,74,237,74,13,75,7,
+  237,74,4,204,74,139,172,74,204,66,172,66,204,66,172,66,171,66,172,66,
+  139,66,172,66,139,66,171,66,4,139,66,132,107,58,106,58,106,58,107,58,
+  5,74,58,150,73,58,42,58,10,58,41,58,41,50,9,50,9,58,9,50,
+  233,49,9,50,233,49,9,50,233,49,232,41,232,49,232,41,233,49,200,49,
+  232,49,200,49,200,41,200,41,4,200,49,132,168,41,200,49,168,41,168,41,
+  4,167,41,132,135,41,135,41,167,41,135,41,65,4,131,110,91,111,99,143,
+  91,6,110,91,131,143,91,143,91,110,91,3,111,91,134,110,91,110,91,111,
+  91,111,91,143,91,142,91,3,143,91,3,111,91,3,143,91,136,111,91,111,
+  91,143,83,111,83,78,83,13,75,46,75,78,83,3,46,75,130,78,83,78,
+  83,3,78,75,129,14,75,3,13,75,144,13,67,13,67,237,66,13,67,46,
+  75,46,83,46,75,46,75,45,83,236,82,12,99,12,99,13,91,13,91,45,
+  99,45,99,4,45,91,131,77,91,45,99,45,99,6,45,91,131,45,99,45,
+  91,45,99,13,45,91,146,236,82,203,82,171,74,203,82,236,82,236,90,45,
+  91,143,99,240,107,49,116,143,99,105,66,162,8,65,8,195,16,236,74,240,
+  107,114,124,3,146,124,140,114,124,146,124,114,124,114,124,114,116,114,116,114,
+  124,146,124,146,124,147,124,147,124,146,124,4,147,124,133,147,132,147,124,146,
+  124,147,124,147,132,3,147,124,129,146,124,15,147,124,129,179,124,4,147,124,
+  132,146,124,114,124,114,124,146,124,9,147,124,134,179,124,179,124,179,132,179,
+  132,179,124,147,132,4,147,124,135,179,132,146,132,211,140,178,140,7,66,8,
+  66,8,66,4,40,66,151,8,66,8,66,40,66,8,66,8,66,40,66,8,
+  66,8,66,40,66,8,66,231,57,8,66,8,66,232,57,231,57,231,57,232,
+  65,231,57,231,57,199,57,199,57,199,49,199,49,3,167,49,140,166,49,166,
+  49,167,49,166,49,134,41,102,41,134,41,102,41,102,41,101,41,101,33,101,
+  33,7,69,33,150,69,25,69,33,228,16,208,99,106,66,37,33,37,33,37,
+  25,69,25,37,25,37,25,69,33,70,33,37,33,4,25,37,33,134,41,199,
+  49,195,24,196,16,195,16,195,16,3,196,16,4,228,16,129,196,16,4,195,
+  16,133,196,16,195,16,163,16,195,16,195,16,5,163,16,131,162,16,163,16,
+  163,8,12,163,16,129,162,16,5,163,16,154,130,16,162,16,163,16,163,16,
+  162,8,162,16,130,16,131,16,131,8,163,8,163,16,131,16,130,8,130,8,
+  131,16,130,8,163,8,131,8,162,16,130,16,163,16,163,8,130,16,163,8,
+  130,8,162,8,4,163,16,134,163,8,163,8,163,16,163,8,163,16,163,8,
+  6,163,16,129,163,8,4,163,16,139,195,16,195,16,163,16,195,16,195,16,
+  196,16,196,16,228,16,196,16,196,16,228,24,5,228,16,131,5,25,4,25,
+  5,25,4,37,25,129,70,33,4,102,25,3,103,25,143,135,33,103,33,135,
+  33,135,25,135,33,135,33,167,33,135,33,135,25,135,25,102,25,102,33,103,
+  33,135,33,135,33,3,167,33,136,168,41,168,41,200,41,168,41,200,41,168,
+  33,200,33,168,41,4,200,41,4,232,41,129,9,42,4,233,41,150,9,50,
+  9,42,9,50,233,41,167,33,200,41,16,124,16,124,45,99,138,74,34,8,
+  244,148,208,107,45,83,9,50,8,50,9,58,233,49,200,49,200,41,200,49,
+  232,49,3,200,41,163,200,49,200,49,200,41,200,49,232,49,9,50,9,58,
+  233,57,9,58,41,58,9,50,233,49,74,58,41,58,74,58,74,66,106,66,
+  172,82,236,90,13,91,45,99,77,99,110,107,45,99,73,66,204,82,236,82,
+  45,91,46,91,78,99,78,91,78,91,110,99,110,99,110,91,3,143,99,158,
+  175,99,208,107,208,107,240,115,240,115,85,157,215,165,53,157,20,149,77,99,
+  231,65,167,57,69,41,69,41,207,115,232,49,0,0,97,8,162,16,162,16,
+  195,24,171,90,235,90,138,82,175,115,16,124,240,123,240,123,240,115,17,124,
+  3,16,124,138,49,124,16,124,81,132,49,132,243,164,150,181,182,189,53,165,
+  111,83,144,91,4,176,91,153,241,99,46,83,196,8,98,16,195,24,130,16,
+  98,8,33,0,167,41,241,99,208,91,176,91,176,91,241,91,10,50,98,16,
+  130,16,98,16,98,8,163,16,130,16,163,24,195,24,4,33,175,91,25,176,
+  91,131,175,91,176,91,175,91,4,143,91,5,143,83,4,111,83,136,110,83,
+  111,83,79,83,111,83,78,83,79,83,78,83,79,83,6,78,83,134,46,83,
+  78,75,46,75,78,83,46,75,78,75,3,46,83,144,45,83,46,83,46,83,
+  45,75,45,83,45,75,45,83,45,83,46,83,45,75,45,75,45,83,45,83,
+  45,75,46,75,14,83,3,13,75,131,45,75,45,83,13,83,4,13,75,8,
+  237,74,133,205,74,236,74,204,74,204,66,204,74,3,172,66,130,171,66,172,
+  66,3,171,66,129,139,58,4,139,66,130,106,58,107,66,4,106,58,3,74,
+  58,134,42,58,42,50,42,58,9,58,9,50,41,50,4,9,50,3,233,49,
+  134,232,49,233,49,233,49,232,49,200,41,168,41,6,200,41,129,168,41,3,
+  200,41,137,167,41,168,41,167,41,168,41,167,41,168,41,167,41,135,41,135,
+  41,16,4,129,111,91,8,110,91,132,143,91,110,91,142,91,111,91,3,110,
+  91,136,142,91,143,91,111,91,110,91,143,91,143,91,111,83,111,91,3,143,
+  91,129,111,91,3,143,91,141,111,91,111,91,111,83,78,75,46,75,45,75,
+  46,75,46,83,46,75,46,75,46,83,78,83,78,83,3,46,75,130,13,75,
+  13,67,5,237,66,4,46,75,133,13,83,204,82,203,90,235,90,12,91,3,
+  45,99,130,45,91,45,99,26,45,91,146,44,91,203,82,203,74,171,74,203,
+  82,236,82,12,91,77,91,175,107,240,107,49,116,142,99,41,58,130,8,65,
+  8,227,16,13,75,17,108,4,146,124,6,114,124,130,146,124,146,124,10,147,
+  124,144,146,124,147,124,146,124,147,124,147,132,147,124,147,124,147,132,147,124,
+  147,132,147,124,147,124,147,132,147,124,147,124,146,124,3,147,124,130,146,124,
+  146,124,5,147,124,134,115,124,146,124,115,124,147,124,146,124,147,124,3,146,
+  124,6,147,124,133,179,124,179,124,147,124,179,124,179,124,3,147,124,135,147,
+  132,146,132,146,132,244,148,48,132,231,65,40,66,3,8,66,129,40,66,10,
+  8,66,133,232,65,8,58,232,65,8,66,232,57,3,231,57,140,199,57,199,
+  57,231,57,199,49,199,49,199,57,166,49,198,49,166,49,167,49,134,49,166,
+  49,3,134,41,3,102,41,132,102,33,101,33,101,33,102,33,4,69,33,141,
+  37,33,69,33,69,33,37,33,4,17,241,99,200,41,37,33,37,25,37,33,
+  5,25,37,33,37,25,3,37,33,139,138,74,134,41,102,41,232,57,163,16,
+  196,16,196,24,228,16,228,24,196,16,196,16,5,228,16,129,196,16,4,195,
+  16,129,196,16,11,163,16,129,163,8,14,163,16,129,163,8,5,163,16,149,
+  163,8,163,16,163,16,130,16,162,16,163,16,130,16,130,16,162,16,130,16,
+  130,8,130,16,163,16,163,8,163,8,162,16,162,16,131,8,163,8,163,8,
+  131,8,5,163,16,134,163,8,163,16,163,16,131,8,163,16,163,8,4,163,
+  16,140,163,8,163,16,163,16,195,16,163,16,163,16,195,16,195,16,163,16,
+  196,16,163,16,195,16,5,196,16,5,228,16,137,229,16,4,17,5,25,4,
+  25,5,25,5,25,5,17,37,25,37,25,3,70,25,3,102,25,3,103,33,
+  6,135,33,130,167,33,167,33,9,135,33,3,168,33,130,168,41,168,33,4,
+  200,41,130,201,41,200,41,3,233,41,168,232,41,233,41,232,41,9,50,233,
+  41,9,50,9,50,9,42,9,50,9,50,9,42,232,41,200,41,142,107,175,
+  107,45,99,138,74,98,8,16,124,49,116,78,83,42,58,9,50,9,58,200,
+  49,200,49,167,41,200,49,200,49,199,41,232,49,167,41,200,41,200,49,200,
+  49,232,49,233,49,232,49,232,49,9,58,3,41,58,147,9,50,42,58,74,
+  58,41,58,74,66,139,66,171,74,236,90,13,91,13,91,77,99,110,107,45,
+  99,41,58,171,82,237,82,13,83,46,91,46,91,3,78,91,211,110,91,110,
+  99,110,99,111,99,143,107,175,107,176,107,208,107,208,115,16,116,53,157,215,
+  165,20,149,211,140,77,99,199,57,134,49,101,49,199,57,77,99,142,99,4,
+  25,32,0,97,8,130,16,163,24,162,24,170,82,170,82,174,115,16,124,240,
+  123,240,115,240,123,240,123,16,124,240,123,240,123,81,132,114,132,114,132,81,
+  132,210,164,150,181,182,189,117,173,143,91,208,99,208,91,208,91,241,99,241,
+  99,200,41,33,8,163,24,195,24,130,16,65,8,65,8,204,74,17,100,208,
+  91,209,91,209,91,17,100,107,58,98,16,130,16,98,8,98,16,130,16,163,
+  16,162,16,195,24,163,24,9,58,241,99,209,91,208,99,208,91,209,91,209,
+  91,209,99,8,208,91,138,176,91,208,91,208,91,176,91,208,91,176,91,208,
+  91,208,91,176,91,208,91,7,176,91,138,175,91,143,91,144,91,144,91,143,
+  91,143,91,143,83,111,91,143,83,111,91,7,111,83,130,110,83,110,83,10,
+  78,83,4,46,83,129,78,83,3,46,83,132,46,75,78,83,46,83,46,83,
+  5,46,75,129,45,75,3,46,83,131,46,75,45,83,45,75,6,13,75,5,
+  237,74,3,236,74,138,204,74,204,74,205,66,204,66,172,66,172,66,204,66,
+  171,66,172,66,172,66,3,171,66,5,139,66,130,107,66,107,58,5,106,58,
+  134,74,58,74,58,42,58,42,58,41,58,41,50,6,9,50,135,233,49,9,
+  50,233,49,232,49,233,49,233,49,232,49,3,200,41,138,200,49,200,41,201,
+  41,200,41,200,49,200,41,200,41,168,41,200,41,200,49,5,168,41,3,167,
+  41,23,4,9,110,91,129,143,91,3,110,91,129,111,91,3,110,91,140,142,
+  91,143,91,143,91,111,91,111,91,143,91,111,91,111,91,143,91,111,91,143,
+  91,143,91,4,111,91,131,111,83,78,83,46,83,4,46,75,132,13,75,46,
+  75,46,75,78,83,3,46,75,130,13,67,13,75,3,237,66,146,13,75,237,
+  66,14,75,14,75,46,75,46,75,237,74,170,74,105,74,138,82,236,82,45,
+  99,45,99,44,91,44,91,45,99,45,99,44,91,5,45,91,129,77,91,11,
+  45,91,132,44,91,45,91,45,91,44,91,3,45,91,149,12,91,203,82,171,
+  82,171,82,203,82,236,90,12,91,77,99,175,107,240,115,49,116,142,99,41,
+  50,130,8,65,8,4,17,13,75,17,116,146,124,114,124,146,124,6,114,124,
+  142,146,124,114,124,146,124,146,124,147,132,146,132,147,124,147,132,147,132,146,
+  124,147,124,147,124,115,132,116,124,3,115,124,138,83,124,83,124,115,124,115,
+  124,147,124,147,132,147,124,147,124,147,132,147,124,3,146,124,8,147,124,129,
+  146,124,4,114,124,129,146,124,10,147,124,3,179,124,5,147,124,138,179,132,
+  114,124,146,132,52,157,174,115,231,65,8,66,40,66,8,66,40,66,4,8,
+  66,129,40,66,7,8,66,129,232,57,4,231,57,129,232,57,4,199,57,3,
+  199,49,130,167,49,198,49,3,166,49,129,134,49,4,134,41,132,102,41,102,
+  33,102,41,101,33,9,69,33,146,37,25,37,25,208,99,232,49,4,25,69,
+  33,69,33,37,25,69,33,37,33,37,25,37,25,37,33,37,33,134,41,167,
+  49,134,49,228,24,8,228,16,131,228,24,228,16,196,16,17,163,16,129,163,
+  8,12,163,16,129,163,8,4,163,16,132,131,16,163,16,163,16,163,8,4,
+  163,16,132,162,8,163,16,130,8,162,8,3,163,16,138,131,8,162,8,163,
+  8,162,16,162,8,163,8,162,8,163,16,163,8,163,8,5,163,16,129,163,
+  8,4,163,16,129,163,8,9,163,16,134,195,16,196,16,195,16,195,16,196,
+  16,195,16,4,196,16,5,228,16,132,4,17,5,17,4,17,228,16,3,5,
+  25,3,37,25,130,70,25,70,25,3,102,25,132,103,25,135,33,135,33,103,
+  33,10,135,33,4,167,33,130,135,33,167,33,5,135,33,129,136,33,3,200,
+  33,157,200,41,200,41,200,33,232,33,232,41,232,41,233,41,232,41,9,42,
+  233,41,233,41,233,49,233,41,232,41,9,42,233,49,233,49,9,42,200,41,
+  207,115,81,132,77,99,106,74,163,16,236,90,211,132,78,91,139,66,232,41,
+  3,232,49,3,200,49,139,232,49,200,41,200,49,200,41,168,41,232,49,200,
+  49,233,49,9,58,9,58,232,49,3,41,58,146,9,50,9,50,42,58,41,
+  50,74,58,139,74,204,82,236,82,13,91,45,99,77,99,110,107,45,99,41,
+  58,171,82,45,91,78,99,78,99,3,78,91,5,110,99,155,111,99,143,99,
+  175,107,240,115,240,115,17,124,53,157,215,165,52,149,211,148,78,99,167,57,
+  134,49,138,82,199,57,77,99,142,107,105,66,195,24,33,8,97,8,130,16,
+  130,24,97,8,199,57,207,115,16,124,3,240,115,183,16,124,240,115,240,123,
+  16,124,114,132,114,132,49,124,49,132,210,164,149,189,150,189,150,181,13,75,
+  111,83,176,91,17,108,140,66,98,8,97,16,195,24,162,16,97,16,65,8,
+  37,33,208,99,17,100,241,99,209,91,241,91,17,100,205,74,98,16,130,16,
+  130,16,97,8,130,16,134,41,130,16,195,24,195,24,163,24,110,91,241,99,
+  209,91,208,91,208,91,241,99,209,99,209,99,209,91,241,99,209,91,209,99,
+  208,99,208,99,3,209,99,132,209,91,208,91,208,91,176,91,3,208,91,129,
+  208,99,4,208,91,131,176,91,208,91,208,91,5,176,91,131,144,91,143,91,
+  175,91,3,143,91,130,143,83,143,83,6,111,83,135,110,83,111,83,78,83,
+  111,83,78,83,78,83,79,83,3,78,83,135,78,75,78,83,46,83,78,83,
+  78,83,46,83,78,83,4,46,83,3,46,75,129,46,83,4,45,75,135,46,
+  83,45,83,13,83,46,75,14,83,14,75,13,83,4,13,75,144,13,83,13,
+  75,237,74,237,74,13,75,237,74,237,74,236,74,236,74,204,74,204,66,204,
+  74,204,66,204,74,204,74,204,66,4,172,66,130,139,66,171,66,3,139,66,
+  137,107,58,107,66,107,66,139,58,139,58,106,58,107,58,106,58,106,58,3,
+  74,58,3,42,58,130,9,50,41,50,8,9,50,131,233,49,233,49,232,41,
+  3,200,49,133,232,49,200,49,200,41,200,41,200,49,4,200,41,4,168,41,
+  3,167,41,130,135,41,135,41,32,4,4,110,91,133,78,91,78,91,78,83,
+  110,91,142,91,4,110,91,129,110,83,4,110,91,131,111,91,143,91,142,91,
+  10,111,91,133,110,91,111,91,110,83,111,83,78,83,3,46,75,131,14,75,
+  45,75,14,75,4,46,75,130,13,75,13,67,4,237,66,3,13,67,136,13,
+  75,46,75,46,75,236,82,73,74,40,74,106,74,12,91,6,45,91,129,45,
+  99,5,45,91,134,77,99,45,91,77,91,45,91,45,91,45,99,10,45,91,
+  150,44,91,45,91,45,91,12,91,203,74,171,74,171,82,236,82,236,90,12,
+  91,110,99,175,107,17,116,49,124,110,99,8,50,98,8,65,8,5,17,45,
+  83,17,116,146,124,5,114,124,130,114,116,114,124,3,146,124,157,147,124,115,
+  124,115,124,51,124,21,108,213,99,182,91,150,83,119,75,87,67,55,59,24,
+  51,248,58,248,50,248,50,248,58,248,50,24,51,23,59,55,67,87,75,118,
+  75,181,91,245,107,84,116,115,124,147,132,146,124,146,124,5,147,124,3,146,
+  124,134,114,124,114,116,114,124,114,124,147,124,146,124,7,147,124,133,179,124,
+  179,132,179,124,147,124,179,124,6,147,124,132,146,132,114,132,52,157,44,99,
+  8,40,66,6,8,66,132,7,66,8,66,232,65,8,66,4,231,57,138,199,
+  57,231,57,199,57,199,49,199,57,167,49,199,49,199,49,167,49,167,49,3,
+  166,49,129,166,41,3,134,41,134,102,41,102,41,69,33,102,33,102,41,101,
+  33,5,69,33,152,69,25,69,33,69,25,37,33,135,33,111,91,200,41,5,
+  25,37,25,37,33,37,33,37,25,37,25,37,33,37,25,69,33,69,33,102,
+  33,232,57,138,74,163,16,195,16,228,24,163,8,3,228,16,3,228,24,130,
+  228,16,196,16,29,163,16,130,162,8,163,8,6,163,16,131,162,16,163,16,
+  162,16,4,163,16,146,163,8,163,8,130,8,163,8,131,8,163,8,163,8,
+  163,16,163,8,163,16,163,16,163,8,163,16,163,8,163,8,163,16,163,16,
+  163,8,3,163,16,129,163,8,4,163,16,130,163,8,163,8,6,163,16,132,
+  195,16,163,16,196,16,163,16,3,195,16,131,196,16,196,16,195,16,5,196,
+  16,4,228,16,132,5,25,5,17,5,25,4,25,3,37,25,134,38,25,70,
+  25,102,25,102,25,103,33,135,25,10,135,33,129,103,33,10,135,33,129,167,
+  33,3,135,33,146,167,41,135,41,167,33,167,33,168,41,167,33,102,25,103,
+  33,135,33,103,33,103,33,102,33,102,33,38,33,70,33,70,25,70,33,37,
+  33,3,5,25,147,4,25,228,24,110,107,113,140,45,99,106,74,196,16,200,
+  49,21,149,78,91,204,66,9,50,9,50,232,49,232,49,200,49,200,41,200,
+  49,232,49,3,200,41,132,168,49,200,49,232,49,232,49,3,9,58,148,41,
+  58,41,58,42,58,9,50,41,58,74,58,74,58,74,66,107,66,172,74,236,
+  82,13,91,45,99,78,99,110,107,45,99,9,58,171,74,45,91,77,91,3,
+  78,99,133,110,91,110,99,111,99,110,91,110,99,4,143,99,179,208,107,240,
+  115,17,124,53,149,215,165,53,157,211,140,109,99,134,49,236,90,204,82,231,
+  65,110,107,109,99,73,66,134,49,162,16,65,8,97,8,130,16,130,16,98,
+  16,167,57,81,132,16,124,240,123,240,115,240,123,240,115,240,123,16,116,81,
+  124,16,116,17,124,16,124,178,156,181,181,149,189,214,189,9,42,74,50,41,
+  50,164,16,65,8,162,24,163,24,162,16,65,8,98,8,171,74,50,108,4,
+  241,99,142,17,100,79,83,131,16,130,16,130,16,65,8,66,8,12,75,135,
+  33,130,16,228,32,195,24,70,41,17,108,9,241,99,132,209,91,241,99,240,
+  99,241,99,4,209,99,132,208,99,209,99,176,91,176,91,4,208,91,129,209,
+  91,3,208,91,7,176,91,138,144,91,144,91,175,91,143,83,143,83,143,91,
+  111,83,143,83,111,83,143,83,3,111,91,134,111,83,110,83,111,91,111,83,
+  78,83,110,83,9,78,83,135,77,83,46,83,46,83,45,83,46,75,46,83,
+  46,83,3,46,75,141,45,75,45,75,13,75,45,83,45,83,14,83,13,83,
+  13,75,13,83,45,83,13,83,13,83,45,75,7,13,75,4,237,74,131,204,
+  74,204,74,236,74,3,204,74,130,204,66,204,66,5,172,66,141,171,66,172,
+  66,139,66,171,66,139,66,139,66,138,66,139,58,139,58,106,58,107,58,106,
+  58,106,58,4,74,58,133,41,58,41,58,42,50,42,58,41,50,4,9,50,
+  130,233,49,9,50,3,233,49,141,232,41,232,41,233,49,232,49,232,49,200,
+  49,200,49,200,41,200,49,200,49,200,41,200,41,200,49,3,168,41,5,167,
+  41,1,135,41,120,4,3,110,91,132,78,91,78,91,78,83,78,91,3,110,
+  91,129,142,91,3,110,91,129,110,83,3,110,91,7,111,91,147,110,91,110,
+  91,111,91,143,91,111,91,111,83,111,91,111,91,110,91,78,83,46,75,46,
+  75,13,75,13,67,14,67,13,75,13,75,46,75,46,75,4,13,75,3,237,
+  66,129,13,75,3,13,67,136,237,66,13,75,13,83,171,74,8,66,8,66,
+  138,74,12,91,6,45,91,136,45,99,44,91,45,91,45,91,45,99,45,91,
+  44,91,44,91,10,45,91,129,44,91,6,45,91,147,236,82,203,82,171,74,
+  171,82,236,82,236,90,45,91,110,99,208,107,17,108,50,124,78,99,8,50,
+  98,8,97,8,5,17,45,83,17,116,146,124,6,114,124,162,115,124,83,124,
+  20,116,245,99,182,91,87,67,24,59,248,50,216,42,184,34,185,26,152,34,
+  120,26,119,26,87,26,87,26,87,18,87,18,86,18,87,26,87,18,87,18,
+  119,26,120,26,120,26,152,34,152,26,184,34,216,42,23,59,118,75,213,99,
+  83,116,147,132,4,147,124,131,114,124,115,124,146,124,3,114,124,132,146,124,
+  146,124,147,124,146,124,3,147,124,135,147,132,147,132,147,124,179,132,147,132,
+  179,132,179,132,7,147,124,152,146,132,179,140,85,157,170,90,40,66,40,74,
+  40,74,40,66,8,66,8,66,40,66,8,66,40,66,8,66,8,66,231,57,
+  8,66,8,66,232,65,8,66,232,57,231,57,231,57,232,65,3,231,57,129,
+  199,57,5,199,49,133,167,49,199,49,167,49,166,49,166,49,4,134,41,134,
+  102,41,101,41,102,41,101,41,101,41,102,33,6,69,33,141,37,33,37,33,
+  69,33,37,33,200,41,49,108,236,82,228,24,69,33,37,25,37,25,5,33,
+  37,33,3,37,25,135,37,33,167,41,232,49,106,74,131,16,196,16,195,16,
+  4,228,24,133,228,16,228,24,4,25,228,24,196,16,9,163,16,130,163,8,
+  195,16,20,163,16,129,162,16,6,163,16,137,162,16,162,16,163,8,131,16,
+  163,16,163,16,131,16,131,8,130,8,3,163,16,138,163,8,130,8,163,16,
+  163,16,163,8,162,8,163,16,163,16,163,8,163,8,4,163,16,133,163,8,
+  163,8,163,16,163,8,163,8,3,163,16,131,163,8,163,16,163,16,4,163,
+  8,4,163,16,133,195,16,195,16,228,16,228,24,5,25,3,37,25,145,70,
+  33,37,33,69,33,69,33,37,33,196,16,196,16,228,16,228,24,228,16,5,
+  25,5,25,37,25,5,25,5,25,37,25,70,25,6,102,33,135,135,33,135,
+  33,134,33,167,41,135,33,135,33,168,41,3,167,33,149,167,41,168,41,167,
+  41,200,41,199,41,200,41,232,49,232,49,200,49,200,49,232,49,232,49,9,
+  50,9,50,41,58,74,66,106,58,138,66,139,66,139,74,172,74,5,171,74,
+  130,138,66,138,66,3,106,66,186,41,58,41,58,9,58,175,107,113,132,77,
+  99,106,74,228,24,70,33,85,157,78,91,45,83,233,49,233,49,200,41,232,
+  49,232,49,200,49,232,41,200,41,167,41,200,41,200,49,232,49,200,49,9,
+  50,9,50,9,58,9,58,233,49,41,58,9,58,42,58,41,58,41,58,74,
+  58,74,58,74,66,139,66,171,74,204,82,13,91,45,99,78,99,110,107,45,
+  99,41,58,171,74,45,91,13,91,78,91,45,91,45,91,110,99,142,99,110,
+  99,78,91,110,91,3,143,99,146,175,107,208,107,240,107,17,124,20,157,215,
+  165,85,157,20,149,110,99,171,82,45,91,236,82,232,57,77,99,142,107,73,
+  66,134,49,195,24,3,65,8,158,97,8,130,16,97,16,130,16,236,90,81,
+  132,17,124,16,124,241,115,17,116,16,116,49,124,17,116,240,115,17,124,146,
+  156,214,189,247,197,247,189,4,17,130,8,65,8,130,16,195,24,162,16,98,
+  16,33,8,102,41,240,107,50,108,4,241,99,143,17,100,241,91,196,24,130,
+  16,130,16,98,16,33,8,170,74,175,83,98,16,195,24,227,24,130,16,171,
+  74,17,100,3,241,99,129,240,99,7,241,99,135,240,99,241,99,209,91,241,
+  91,208,91,208,99,241,99,3,176,91,137,209,91,209,99,209,99,208,91,209,
+  91,208,91,208,91,176,91,208,91,3,176,91,134,143,91,144,91,144,91,176,
+  91,144,91,144,91,4,143,91,133,111,83,111,83,143,91,110,91,111,91,3,
+  111,83,134,79,83,111,83,110,83,110,83,78,83,110,83,7,78,83,132,77,
+  83,78,83,46,83,45,83,8,46,83,138,45,83,46,75,45,75,13,75,45,
+  75,46,83,45,83,13,75,13,75,45,83,9,13,75,3,237,74,132,205,74,
+  204,74,204,74,236,66,3,204,66,130,204,74,204,66,4,172,66,130,139,66,
+  171,66,6,139,66,135,106,58,107,58,107,66,107,58,106,58,74,58,106,58,
+  3,74,58,140,42,58,41,50,41,58,41,58,41,50,9,50,9,50,233,41,
+  9,50,233,49,9,50,9,50,4,233,49,141,232,49,200,49,200,41,200,49,
+  200,41,232,49,200,49,200,41,200,49,200,41,200,41,168,41,167,41,3,135,
+  41,131,167,41,168,41,136,41,53,4,16,110,91,6,111,91,130,110,91,110,
+  91,8,111,91,146,111,83,110,83,78,83,46,75,14,67,13,67,14,75,14,
+  75,13,75,14,75,13,75,45,75,13,75,45,75,45,75,13,75,13,75,13,
+  67,3,13,75,3,237,66,136,13,75,237,74,106,66,231,57,8,58,170,82,
+  12,91,44,91,5,45,91,129,45,99,5,45,91,134,45,99,45,99,45,91,
+  45,91,12,91,12,91,6,45,91,129,44,91,6,45,91,166,236,82,203,74,
+  171,74,203,82,203,82,236,90,45,91,110,99,240,107,49,116,49,124,110,99,
+  232,49,98,8,65,8,4,25,45,83,17,116,146,124,146,124,114,124,114,124,
+  83,124,52,116,213,99,118,83,56,59,248,50,185,42,152,26,120,26,55,18,
+  245,17,212,9,147,1,114,1,81,1,48,1,3,15,1,148,14,1,14,1,
+  13,1,14,1,47,1,48,1,81,1,114,1,147,1,212,1,245,17,54,18,
+  120,18,152,26,153,34,185,26,215,42,86,67,244,99,115,124,3,146,124,3,
+  114,124,131,146,124,147,124,146,124,11,147,124,129,179,132,6,147,124,137,146,
+  124,147,124,146,132,178,140,52,157,73,74,40,66,40,66,40,74,4,8,66,
+  130,40,66,40,66,9,8,66,129,231,65,4,231,57,133,199,57,199,57,199,
+  49,166,49,199,49,4,167,49,3,166,49,3,134,41,134,102,41,102,41,102,
+  33,70,33,101,33,102,33,4,69,33,129,37,33,4,69,33,135,36,25,41,
+  50,175,99,106,74,37,33,69,33,37,33,6,37,25,136,37,33,167,41,135,
+  49,138,74,163,16,195,8,196,16,196,8,3,196,16,134,163,8,228,16,5,
+  25,5,25,196,16,131,8,16,163,16,129,163,8,9,163,16,132,130,8,162,
+  16,162,16,130,16,3,163,16,140,162,16,130,16,162,16,163,16,163,16,163,
+  8,131,8,163,16,131,8,162,16,163,16,163,16,6,195,16,143,163,16,131,
+  16,130,8,130,8,131,8,130,8,131,8,130,8,130,8,162,8,130,8,195,
+  16,228,24,4,33,228,24,5,4,25,130,4,33,228,24,7,163,16,129,195,
+  16,3,196,16,132,228,16,228,24,4,25,4,25,3,5,25,184,4,25,37,
+  25,4,25,36,25,37,33,37,25,4,25,69,33,70,33,103,33,135,41,167,
+  41,232,49,41,50,41,50,73,58,106,66,106,58,106,66,106,66,106,58,107,
+  58,138,66,139,66,74,58,106,66,171,66,106,66,106,66,106,58,74,58,74,
+  58,73,50,73,58,41,50,9,50,232,49,200,49,167,41,167,41,135,33,102,
+  33,70,25,37,25,37,25,4,25,228,16,196,16,196,8,163,8,131,8,98,
+  0,98,0,66,0,66,0,34,0,6,33,0,159,1,0,33,0,33,0,1,
+  0,142,107,142,107,45,99,73,66,70,33,5,25,20,149,17,124,78,91,42,
+  58,9,50,9,50,8,50,8,50,200,49,232,49,232,49,200,49,200,41,232,
+  49,232,49,200,49,233,49,9,50,41,58,9,50,9,50,4,9,58,129,41,
+  58,3,74,58,148,107,66,171,74,236,82,237,90,45,99,77,99,78,107,78,
+  99,106,66,139,74,237,90,13,83,78,91,13,91,46,91,110,99,110,99,111,
+  99,78,99,111,99,3,143,99,178,175,107,240,107,241,115,17,124,244,148,183,
+  165,53,157,244,148,16,116,236,90,45,91,12,91,8,66,12,99,110,107,105,
+  66,134,49,227,24,32,0,4,33,163,16,33,8,98,16,130,16,130,16,65,
+  8,228,24,236,90,49,132,82,124,49,124,49,124,82,124,49,124,49,124,114,
+  132,178,148,113,148,41,66,65,8,97,8,162,24,195,24,195,24,130,16,65,
+  8,130,16,41,58,176,99,208,99,5,241,99,142,50,100,136,33,98,16,163,
+  24,130,16,33,8,9,58,82,108,9,50,130,16,227,24,227,24,195,24,208,
+  99,4,241,99,129,240,99,5,241,99,139,208,91,209,91,241,99,241,91,241,
+  91,209,91,209,91,241,91,209,91,176,91,144,83,3,208,91,135,209,91,208,
+  91,208,99,208,91,208,91,176,91,208,99,5,176,91,3,144,91,4,143,91,
+  132,143,83,143,83,111,83,143,83,4,111,83,132,110,83,111,83,111,83,110,
+  91,9,78,83,6,46,83,132,45,83,46,83,45,75,46,75,3,46,83,3,
+  45,75,135,46,75,46,83,46,75,13,83,13,75,13,75,13,83,8,13,75,
+  3,237,74,129,236,74,3,205,74,130,237,74,204,74,3,204,66,137,172,66,
+  172,66,171,66,171,66,172,66,172,66,171,66,139,66,171,66,4,139,66,134,
+  107,66,107,58,106,58,107,58,106,58,106,58,6,74,58,136,41,50,41,50,
+  41,58,41,50,9,50,9,50,232,49,232,49,5,233,49,141,232,49,233,49,
+  233,49,232,49,200,49,200,41,200,41,200,49,200,49,168,41,200,41,200,41,
+  200,49,7,167,41,73,4,16,110,91,4,111,91,129,111,83,3,110,91,131,
+  78,83,111,83,110,91,6,111,91,143,78,83,78,75,46,75,45,75,14,75,
+  13,75,13,75,13,67,13,67,13,75,13,75,237,66,14,75,46,75,46,75,
+  3,13,75,139,13,67,237,66,205,66,204,58,172,58,237,66,172,66,41,66,
+  199,57,8,66,171,82,3,44,99,3,45,91,132,45,99,45,91,45,91,45,
+  99,3,45,91,133,45,99,44,99,45,91,45,91,44,91,5,45,91,129,44,
+  91,3,45,91,204,44,91,45,91,45,91,12,91,45,91,203,82,171,74,171,
+  74,203,82,236,90,236,90,45,91,142,99,240,107,17,116,49,124,110,99,7,
+  50,98,8,65,8,4,17,45,83,17,116,146,124,83,124,19,108,182,83,87,
+  75,248,50,184,34,119,34,54,18,245,17,147,1,81,1,15,1,237,0,13,
+  1,44,1,140,17,237,33,45,50,109,58,141,66,173,74,206,74,205,74,205,
+  82,205,74,173,74,140,66,76,58,44,50,236,49,172,33,140,25,109,17,79,
+  1,146,1,212,9,55,18,119,26,152,34,184,26,184,34,22,59,244,99,115,
+  124,146,124,114,124,146,124,147,124,114,124,146,124,114,124,146,124,7,147,124,
+  130,147,132,179,124,10,147,124,138,146,132,211,140,243,148,8,74,40,66,40,
+  66,8,66,73,74,40,66,40,66,3,8,66,129,40,66,4,8,66,131,232,
+  65,8,66,8,58,4,231,57,4,199,57,4,199,49,3,166,49,6,134,41,
+  130,102,41,102,41,4,102,33,7,69,33,148,37,33,69,33,4,25,139,58,
+  110,91,135,41,37,33,37,25,37,33,69,33,69,33,37,25,37,25,37,33,
+  37,33,69,33,199,41,69,33,106,74,163,16,6,196,16,134,4,25,5,25,
+  228,16,4,25,195,16,131,16,3,163,16,6,195,16,11,163,16,138,195,16,
+  163,16,195,16,196,16,196,24,196,24,195,16,195,24,195,24,227,24,4,163,
+  16,129,162,16,4,163,16,136,163,8,163,16,195,16,195,24,227,16,228,16,
+  228,16,228,24,3,196,16,136,195,16,163,16,163,16,195,16,195,16,163,16,
+  195,16,163,16,5,195,16,138,163,16,196,16,196,16,195,16,195,16,228,16,
+  196,16,228,16,228,24,228,16,5,228,24,131,228,16,228,16,4,25,3,228,
+  24,129,228,16,4,228,24,148,196,24,228,24,228,24,228,16,196,16,196,16,
+  195,16,195,16,196,16,196,16,228,16,229,16,5,17,228,16,196,16,196,8,
+  163,8,131,8,131,8,98,0,4,66,0,131,33,0,33,0,34,0,16,33,
+  0,133,65,8,65,0,33,0,65,0,65,0,5,65,8,3,66,8,131,98,
+  8,65,8,65,8,7,98,8,153,66,8,33,0,77,99,142,107,45,99,73,
+  66,70,33,228,16,16,116,178,140,110,91,106,58,9,58,9,50,9,50,232,
+  49,200,41,232,49,200,41,232,49,200,41,200,41,232,49,232,49,233,49,5,
+  9,58,146,42,58,41,58,42,58,41,58,106,58,74,58,74,66,139,66,172,
+  74,236,82,12,91,45,99,77,99,110,107,78,107,204,82,139,74,236,82,4,
+  45,91,228,78,99,111,99,110,99,111,99,111,99,143,107,143,99,110,99,143,
+  99,208,107,240,115,241,115,20,149,215,165,53,157,243,148,240,115,12,91,45,
+  99,44,99,8,66,77,107,142,107,106,74,166,49,227,24,33,0,4,33,203,
+  90,69,41,0,0,65,8,98,16,130,16,163,24,65,8,162,16,232,57,171,
+  74,13,91,45,91,204,82,106,66,102,41,98,8,32,0,98,16,163,24,195,
+  24,162,24,98,16,33,8,163,16,69,25,4,17,102,33,41,50,237,74,143,
+  91,209,99,241,99,241,99,50,108,140,58,98,16,162,16,162,16,65,8,69,
+  33,49,108,241,99,229,24,162,24,228,32,163,24,200,57,17,100,241,99,240,
+  91,241,99,209,99,240,99,241,99,241,99,209,99,209,99,241,99,241,99,209,
+  91,241,99,209,99,209,91,209,91,208,91,241,91,176,91,176,83,144,83,176,
+  91,209,91,6,208,91,130,176,91,208,91,5,176,91,130,175,91,143,91,3,
+  143,83,134,143,91,143,83,111,91,111,83,111,91,111,91,4,111,83,133,110,
+  83,111,91,78,83,110,83,111,83,3,78,83,129,78,75,3,78,83,149,46,
+  75,78,83,46,83,78,83,46,83,46,83,46,75,46,83,46,75,46,75,46,
+  83,14,83,13,83,46,83,45,83,45,75,46,75,46,75,13,83,13,75,45,
+  75,11,13,75,6,237,74,129,205,74,4,204,74,134,204,66,204,66,172,66,
+  172,66,171,66,172,66,4,171,66,4,139,66,130,107,58,138,58,5,106,58,
+  3,74,58,134,42,58,73,50,41,58,41,58,41,50,41,50,3,9,50,3,
+  233,49,131,232,41,233,49,232,49,4,233,49,141,200,49,233,49,200,41,200,
+  49,232,49,200,41,200,49,168,41,200,49,168,41,200,41,200,41,168,41,3,
+  167,41,97,4,6,110,91,129,78,83,6,110,91,132,78,83,110,91,110,91,
+  111,91,3,110,91,130,110,83,78,91,4,78,83,139,78,91,110,83,110,83,
+  110,91,111,91,110,91,111,91,78,83,78,83,46,75,46,75,3,13,75,3,
+  13,67,133,14,67,14,75,46,75,46,75,45,75,3,13,75,142,237,66,237,
+  66,204,66,172,58,140,58,204,66,139,66,8,58,166,49,41,66,203,90,45,
+  91,44,91,44,91,5,45,91,131,44,91,45,91,44,99,3,45,91,130,44,
+  91,44,91,3,45,91,133,12,91,44,91,44,91,12,91,45,91,4,12,91,
+  200,45,91,44,91,45,91,12,91,203,82,171,74,170,74,203,82,236,82,12,
+  91,45,91,175,107,240,107,49,116,49,116,110,99,8,50,97,0,65,8,228,
+  16,14,75,178,107,182,99,88,67,248,50,184,34,87,18,245,9,147,1,16,
+  1,206,0,237,0,108,17,13,42,206,74,79,91,143,99,143,107,78,99,236,
+  82,171,74,73,66,8,58,200,49,135,41,134,41,102,41,70,33,102,33,102,
+  41,135,41,135,41,167,49,200,49,232,57,9,58,10,58,137,33,234,8,237,
+  0,114,1,245,9,119,18,152,26,153,26,152,34,22,59,244,99,49,124,81,
+  132,114,132,147,132,3,147,124,129,146,124,14,147,124,136,146,124,147,124,147,
+  124,114,124,113,132,243,148,146,140,8,66,3,40,74,142,8,66,8,66,40,
+  74,8,66,40,66,8,66,8,66,40,66,8,66,8,66,7,66,8,66,231,
+  57,8,66,5,231,57,138,199,49,199,57,199,49,199,49,167,49,166,49,166,
+  49,167,49,166,49,166,49,5,134,41,130,102,41,101,41,3,102,33,131,69,
+  33,101,33,101,33,4,69,33,150,69,25,37,33,37,33,69,33,228,24,175,
+  91,240,107,102,41,69,33,69,33,37,33,69,33,69,33,37,25,69,33,37,
+  25,37,25,70,33,199,49,4,25,138,74,163,16,5,196,16,4,228,16,131,
+  196,16,131,8,131,16,4,195,16,129,228,24,3,195,16,130,195,24,195,24,
+  10,163,16,129,195,16,9,163,16,7,195,16,129,196,16,3,195,16,138,196,
+  16,195,16,163,16,195,16,163,16,195,16,195,16,163,16,163,16,195,16,4,
+  163,16,3,163,8,144,163,16,163,8,163,8,131,8,163,8,130,8,98,8,
+  98,0,66,0,66,0,66,8,66,8,97,0,66,0,65,0,66,0,5,65,
+  0,130,65,8,33,0,3,65,0,134,33,0,65,0,65,0,65,8,65,8,
+  33,0,8,65,0,4,65,8,129,65,0,6,65,8,137,66,8,66,8,65,
+  8,65,8,66,8,66,8,66,0,66,0,65,8,8,98,8,130,97,8,98,
+  8,3,66,8,132,97,8,97,8,98,8,66,8,5,98,8,129,97,8,3,
+  98,8,129,66,8,11,98,8,152,65,0,236,90,48,124,12,91,41,66,135,
+  33,5,25,13,91,211,140,143,99,171,66,9,50,9,50,8,50,200,49,168,
+  41,233,49,232,49,232,49,200,41,232,49,200,49,200,49,232,49,3,9,58,
+  4,41,58,150,74,58,41,58,74,58,74,66,106,66,139,74,172,74,236,82,
+  13,91,45,99,77,99,78,107,110,107,45,99,236,90,236,82,45,91,46,99,
+  78,99,45,91,78,99,78,99,3,110,99,202,142,99,143,99,110,99,143,99,
+  175,107,208,115,240,115,212,148,215,165,85,157,52,157,16,116,13,91,77,91,
+  77,99,40,66,236,90,110,107,138,74,134,49,4,33,32,0,227,32,170,82,
+  12,99,73,66,98,16,0,0,65,8,98,16,163,16,162,16,97,16,97,8,
+  33,8,98,8,97,8,65,8,130,16,130,16,195,24,163,24,130,16,65,8,
+  32,8,4,33,203,74,110,83,172,66,232,41,37,17,228,8,134,25,106,58,
+  46,83,176,91,17,100,144,83,131,16,162,16,162,16,98,8,163,24,208,99,
+  18,100,237,66,98,16,195,24,227,24,130,16,45,83,241,91,241,99,240,99,
+  3,241,99,129,209,91,3,241,99,130,209,99,209,99,3,209,91,134,209,99,
+  208,99,241,91,208,91,176,91,144,83,3,208,91,134,208,99,208,99,208,91,
+  208,91,208,99,208,91,6,176,91,133,175,91,143,91,175,91,143,91,143,91,
+  3,143,83,131,143,91,111,91,111,91,5,111,83,132,110,83,111,83,78,83,
+  110,83,3,78,83,129,78,75,6,78,83,3,46,83,129,46,75,4,46,83,
+  143,46,75,46,75,46,83,46,75,45,83,45,75,46,75,45,83,13,75,45,
+  75,13,75,45,75,13,75,13,83,45,83,6,13,75,6,237,74,139,236,74,
+  236,74,204,74,204,74,204,66,204,66,172,66,204,66,172,74,172,66,172,66,
+  5,171,66,3,139,66,136,107,58,139,66,107,58,139,66,106,58,106,66,106,
+  58,106,58,6,74,58,144,41,50,41,50,41,58,42,58,9,58,41,50,9,
+  50,9,50,233,49,232,49,232,41,200,41,233,49,233,49,232,41,233,49,4,
+  200,49,132,200,41,200,41,200,49,200,49,4,168,41,132,200,41,200,49,167,
+  41,168,41,104,4,4,110,91,131,78,83,78,83,78,91,3,110,91,131,78,
+  83,110,91,78,83,7,110,91,130,110,83,110,91,3,78,83,146,78,91,110,
+  91,110,83,110,83,110,91,110,83,111,91,78,83,110,83,78,83,78,83,46,
+  75,46,75,14,75,13,67,13,67,13,75,14,75,5,46,75,152,13,75,13,
+  75,13,67,237,66,204,66,172,58,139,58,107,50,172,66,106,66,199,57,166,
+  49,73,74,236,90,45,91,44,91,12,91,44,91,12,91,44,91,45,91,45,
+  91,44,91,44,91,6,45,91,136,44,91,45,91,44,91,45,91,45,91,13,
+  91,12,91,44,91,4,45,91,170,13,91,12,91,44,91,12,91,203,82,171,
+  74,170,74,203,82,204,82,12,91,78,91,175,99,16,108,49,116,82,116,110,
+  99,8,50,66,0,133,8,240,25,246,58,248,50,184,34,86,26,245,9,82,
+  1,239,0,205,0,108,17,77,50,47,83,208,107,240,115,143,107,236,82,41,
+  58,166,41,37,25,228,24,162,16,162,16,130,8,7,98,8,153,130,8,130,
+  16,130,16,163,16,163,16,195,16,227,24,4,33,37,33,4,33,164,16,101,
+  0,169,0,80,1,244,9,119,26,152,26,185,34,184,26,179,66,171,98,168,
+  114,43,123,206,123,81,124,4,147,124,129,147,132,12,147,124,136,146,124,147,
+  124,146,124,146,132,20,149,48,132,8,66,73,74,3,40,74,133,40,66,40,
+  66,8,66,8,66,40,66,6,8,66,133,231,57,8,58,231,57,199,57,231,
+  57,5,199,57,136,199,49,199,49,167,49,167,49,166,49,166,49,167,49,134,
+  49,3,134,41,3,102,41,132,101,33,102,33,102,33,101,41,8,69,33,155,
+  37,25,37,25,4,25,236,74,240,107,69,33,102,33,102,41,102,33,37,25,
+  69,33,69,33,37,33,69,25,69,33,69,33,167,41,195,16,139,82,163,16,
+  196,16,196,16,195,16,196,16,196,16,228,16,196,16,3,228,16,135,163,16,
+  131,16,131,8,163,16,195,16,195,16,196,24,10,195,16,134,163,16,196,16,
+  163,16,195,16,163,16,195,16,3,163,16,140,162,16,163,8,163,16,163,8,
+  131,8,163,8,163,8,131,8,131,8,130,8,163,16,130,16,6,130,8,3,
+  98,8,136,130,8,130,8,98,8,130,8,98,8,130,8,98,8,130,8,6,
+  98,8,129,130,8,6,98,8,138,65,8,65,0,66,8,66,8,65,8,66,
+  8,65,8,97,8,65,8,66,8,4,65,8,133,66,8,65,8,65,8,66,
+  8,66,8,5,65,8,130,66,8,97,8,3,65,8,131,66,8,66,8,65,
+  8,4,66,8,131,65,8,65,8,97,8,3,65,8,3,98,8,129,66,8,
+  28,98,8,133,130,8,130,8,98,8,130,8,98,8,3,130,8,129,130,16,
+  4,130,8,156,131,8,130,8,130,8,66,8,138,74,113,132,171,74,73,66,
+  135,41,102,33,135,33,233,49,78,99,13,83,232,49,41,58,232,49,9,50,
+  200,49,232,49,200,49,232,49,200,49,200,41,200,49,232,49,9,58,233,49,
+  3,9,58,152,41,58,42,58,41,58,74,58,41,58,74,58,74,66,106,66,
+  139,74,171,74,236,82,13,91,45,99,77,99,77,107,110,107,110,107,45,99,
+  236,90,13,83,46,91,78,91,77,91,78,99,3,110,99,160,78,99,110,99,
+  142,99,110,91,143,99,208,107,208,115,240,115,244,148,215,173,118,157,52,149,
+  49,124,45,91,110,99,110,99,40,66,12,91,142,107,138,74,166,57,4,33,
+  32,0,195,24,170,82,235,90,170,82,109,107,45,99,163,16,0,0,65,8,
+  3,130,16,189,162,16,130,16,162,16,130,16,130,16,98,8,33,8,0,0,
+  162,24,8,58,143,99,82,116,18,100,241,91,176,91,78,83,204,66,232,41,
+  37,17,4,9,232,41,204,66,143,91,70,33,130,16,163,24,162,16,98,16,
+  12,83,17,100,17,100,168,33,163,24,228,32,195,24,37,33,208,99,241,91,
+  209,91,208,99,241,99,241,99,240,91,241,99,209,91,241,99,209,99,208,91,
+  209,91,209,99,209,99,241,91,209,99,209,91,240,91,176,91,176,83,176,83,
+  208,91,208,91,208,99,5,208,91,6,176,91,133,143,91,175,91,175,83,175,
+  91,143,91,4,143,83,132,143,91,111,91,111,83,143,91,7,111,83,132,78,
+  83,110,83,78,83,79,83,6,78,83,131,46,83,78,83,46,75,4,46,83,
+  130,46,75,46,83,3,45,75,139,46,83,13,75,46,75,45,75,13,75,45,
+  75,46,75,45,75,13,75,13,75,45,75,9,13,75,135,237,74,237,74,236,
+  74,237,74,237,74,204,74,205,74,3,204,74,3,204,66,3,172,66,132,171,
+  66,139,66,171,66,171,66,4,139,66,146,139,58,139,66,107,66,138,58,106,
+  58,106,58,74,58,74,58,74,50,106,58,74,58,42,50,74,58,42,50,41,
+  50,42,58,41,50,42,50,3,9,50,135,233,49,9,50,232,49,232,49,233,
+  49,232,49,232,49,3,233,49,132,232,49,200,49,232,49,232,49,5,200,49,
+  133,168,41,200,49,200,41,168,49,168,49,135,4,135,110,91,110,91,78,91,
+  78,83,78,83,78,91,78,91,3,110,91,141,78,83,78,91,78,83,78,83,
+  78,91,110,91,110,83,110,83,110,91,110,83,110,83,110,91,111,83,3,78,
+  83,145,110,83,79,91,78,91,110,91,111,91,111,83,110,83,110,83,46,83,
+  78,75,46,75,78,75,14,75,13,67,14,75,13,67,14,75,3,46,75,145,
+  45,75,46,75,45,75,13,75,237,66,204,66,172,58,139,58,106,58,74,50,
+  139,66,74,58,167,49,167,49,138,74,12,91,44,91,4,12,91,135,44,91,
+  45,91,44,91,45,91,44,91,45,91,44,91,3,45,91,178,44,91,45,91,
+  12,91,45,91,12,91,12,91,45,91,13,91,12,91,44,91,12,91,44,91,
+  45,91,12,91,12,83,45,91,236,82,171,74,171,74,171,82,204,90,236,82,
+  13,91,78,91,207,99,17,108,49,116,82,124,110,99,109,50,50,34,216,50,
+  249,50,119,34,245,9,114,1,239,0,204,0,141,17,142,66,176,107,17,116,
+  240,107,13,83,41,58,102,33,227,16,130,8,98,8,97,8,8,65,8,133,
+  65,0,65,8,65,8,65,0,33,0,6,65,8,148,98,8,130,16,163,16,
+  196,24,195,24,162,16,100,8,170,0,113,1,22,10,152,26,184,42,185,34,
+  150,42,11,82,195,113,35,122,102,122,10,123,240,123,17,147,124,135,146,124,
+  178,140,52,157,174,115,231,65,73,74,72,74,3,40,74,129,8,66,3,40,
+  66,6,8,66,141,231,65,232,57,232,57,8,58,199,57,199,57,231,57,199,
+  57,199,49,167,49,199,49,199,49,167,49,3,166,49,132,134,41,134,49,134,
+  41,134,41,3,102,41,135,101,41,102,41,101,33,101,33,69,33,69,33,101,
+  33,4,69,33,139,37,33,69,33,37,33,69,33,4,17,240,107,110,99,37,
+  33,70,33,102,41,70,33,3,69,33,138,37,25,37,33,69,33,69,33,167,
+  41,163,16,138,74,163,16,195,16,195,16,4,196,16,133,228,16,228,16,228,
+  24,4,25,196,16,4,163,16,129,196,16,3,195,16,3,163,16,129,195,16,
+  4,163,16,130,163,8,163,16,3,163,8,144,163,16,130,16,131,8,98,8,
+  130,8,130,16,130,16,131,8,131,8,130,16,131,8,163,8,130,8,131,16,
+  130,8,131,16,4,130,8,134,131,16,130,8,98,8,130,8,130,8,131,8,
+  3,130,8,129,131,8,4,130,8,129,98,8,5,130,8,130,98,8,130,8,
+  4,98,8,139,66,8,65,0,66,8,65,0,66,8,66,8,65,8,97,8,
+  65,8,65,8,66,8,4,65,8,3,66,8,144,65,8,65,8,66,8,97,
+  8,65,8,65,8,97,8,65,8,97,8,97,8,66,8,66,8,97,8,97,
+  8,66,8,66,8,20,98,8,3,130,8,131,98,8,130,8,98,8,4,130,
+  8,147,130,16,130,16,130,8,130,16,130,8,130,8,130,16,131,16,131,8,
+  131,8,130,8,131,8,163,16,131,8,163,8,163,8,163,16,163,8,163,16,
+  5,163,8,185,163,16,163,16,131,16,233,57,207,115,138,74,73,66,167,41,
+  103,33,167,41,9,50,74,66,110,99,9,58,9,50,232,49,8,50,200,49,
+  232,49,200,41,232,49,232,49,200,41,200,49,233,49,9,50,233,49,9,58,
+  9,58,41,58,42,58,74,58,73,58,74,66,42,58,74,58,74,66,106,66,
+  139,74,171,74,236,82,13,91,45,99,77,99,78,107,110,107,110,107,45,99,
+  237,90,236,82,45,91,45,91,77,91,78,91,78,91,110,99,110,99,3,111,
+  99,171,110,99,111,99,208,107,240,115,240,115,243,148,248,173,53,157,20,149,
+  49,124,77,99,110,99,110,99,41,66,12,99,142,107,138,82,134,49,4,33,
+  33,0,163,24,138,82,235,90,203,90,236,90,82,132,82,132,77,99,199,57,
+  131,16,33,0,33,0,33,8,32,0,0,0,0,0,65,8,228,32,170,98,
+  113,156,56,214,178,124,17,100,5,241,99,157,176,91,78,83,139,66,167,33,
+  228,8,102,25,200,41,130,16,163,24,162,16,65,8,167,49,49,100,241,99,
+  144,83,131,16,163,24,4,33,162,16,106,66,241,99,240,91,241,99,241,99,
+  240,99,241,91,241,91,241,99,241,99,3,209,91,139,209,99,209,91,209,99,
+  208,99,209,99,208,91,208,91,176,91,176,83,208,91,209,91,7,208,91,131,
+  176,91,208,91,208,91,4,176,91,133,144,91,143,91,143,91,143,83,143,91,
+  4,143,83,8,111,83,131,110,83,79,83,110,83,7,78,83,130,46,83,78,
+  83,4,46,83,129,45,75,3,46,83,138,45,83,45,83,46,75,45,75,46,
+  83,45,75,46,83,46,75,45,83,45,83,4,13,75,129,45,75,3,13,75,
+  130,13,83,13,83,4,13,75,3,237,74,135,205,66,204,74,237,74,236,74,
+  204,66,204,74,204,74,3,204,66,131,172,66,171,66,204,66,3,171,66,136,
+  139,58,139,66,139,66,171,66,138,58,139,58,139,58,107,58,5,106,58,6,
+  74,58,134,42,58,41,50,41,50,42,50,9,50,41,50,4,9,50,136,201,
+  49,233,49,232,41,200,41,232,49,232,49,233,49,232,49,6,200,49,132,168,
+  41,200,41,200,41,200,49,3,168,41,92,4,131,78,91,110,91,78,91,3,
+  78,83,140,78,91,110,91,78,91,110,91,78,91,78,83,78,83,46,83,78,
+  83,79,91,78,91,78,83,3,110,83,129,111,83,5,78,83,134,110,83,110,
+  83,78,91,110,83,110,83,78,83,3,78,75,134,46,75,46,75,13,75,46,
+  75,46,75,13,75,6,46,75,150,13,75,237,66,237,66,172,58,139,50,106,
+  50,73,58,73,50,74,66,41,66,134,49,231,57,170,74,44,91,45,91,13,
+  91,12,91,12,91,44,91,12,91,44,91,44,91,3,45,91,144,44,91,45,
+  91,45,91,44,91,45,91,12,91,12,91,44,91,12,91,44,91,45,91,12,
+  83,13,91,44,91,44,91,45,91,3,44,91,158,45,91,236,82,203,74,171,
+  74,171,82,203,82,236,82,45,91,110,91,208,107,17,116,50,116,19,108,117,
+  75,24,59,216,42,87,26,212,9,48,1,205,0,76,17,110,58,176,99,50,
+  124,208,107,204,74,199,41,4,25,163,16,97,8,9,65,8,140,33,8,65,
+  8,65,0,33,0,65,0,65,8,65,8,33,0,65,0,65,8,65,8,97,
+  8,7,65,8,147,66,8,98,16,130,16,65,8,100,0,235,0,211,9,119,
+  34,184,34,185,34,185,34,14,50,100,81,226,105,36,122,69,130,42,123,82,
+  132,179,124,5,147,124,129,146,124,8,147,124,139,114,132,146,140,52,157,44,
+  99,8,66,40,74,40,66,40,66,40,74,40,66,40,74,4,40,66,6,8,
+  66,129,232,57,4,231,57,140,199,57,199,57,199,49,199,57,199,49,166,49,
+  167,49,167,49,134,49,166,49,134,49,134,49,3,134,41,3,102,41,130,102,
+  33,101,41,3,101,33,7,69,33,139,37,33,37,33,102,25,175,99,45,83,
+  37,33,70,33,69,33,70,33,102,33,70,33,4,69,33,136,70,33,167,41,
+  131,16,138,74,163,16,195,16,196,16,195,16,5,196,16,3,195,16,130,163,
+  16,163,16,9,195,16,130,163,16,195,16,6,163,16,130,163,8,162,8,3,
+  163,16,148,131,16,131,16,163,16,162,16,131,16,163,8,163,16,130,8,131,
+  8,163,8,131,16,130,8,163,16,163,8,130,8,130,16,131,16,163,8,131,
+  8,130,16,3,130,8,130,131,16,163,8,3,131,8,131,131,16,130,8,98,
+  8,3,130,8,129,130,16,4,130,8,5,98,8,131,65,0,65,8,97,8,
+  3,66,8,140,97,8,65,8,65,8,66,8,98,8,65,8,65,8,97,8,
+  98,8,98,8,65,8,97,8,3,98,8,129,97,8,12,98,8,145,98,16,
+  130,8,98,8,130,8,130,8,130,16,130,8,130,8,130,16,131,16,130,8,
+  130,8,131,8,131,16,130,8,131,8,163,8,16,163,16,134,163,8,163,8,
+  195,16,163,16,196,16,196,8,4,196,16,130,195,16,196,16,5,228,16,149,
+  229,16,228,16,5,25,5,17,5,17,228,16,41,58,207,115,204,82,74,66,
+  232,49,167,41,168,41,41,58,232,49,204,74,42,58,9,50,8,58,9,58,
+  200,49,4,200,41,136,200,49,233,49,233,49,9,50,9,50,9,58,41,58,
+  9,58,3,41,58,177,106,66,74,58,74,66,106,66,106,66,139,74,171,82,
+  236,82,12,91,45,99,45,99,78,107,110,107,110,107,45,99,236,82,237,82,
+  45,91,45,91,78,91,78,91,78,99,110,91,78,99,110,99,143,99,110,99,
+  110,99,142,99,175,107,208,107,208,115,212,148,248,173,85,157,244,148,81,124,
+  78,99,110,99,110,99,73,66,235,90,45,99,138,74,134,57,36,41,33,0,
+  162,24,138,74,3,203,90,145,17,124,17,116,17,116,82,124,114,124,241,115,
+  110,107,45,99,45,99,207,123,179,140,20,157,146,148,214,197,182,189,215,197,
+  114,124,4,241,99,179,17,100,241,99,241,99,240,99,143,99,13,75,41,50,
+  37,25,130,8,162,16,163,24,98,8,228,24,207,99,17,100,17,100,107,58,
+  130,16,195,24,227,24,163,24,143,91,241,99,209,99,209,99,241,99,209,99,
+  208,99,209,99,209,99,241,99,241,91,209,91,209,99,240,99,208,99,209,99,
+  208,91,208,91,240,91,209,91,176,83,176,83,208,91,209,91,208,91,208,91,
+  209,91,208,91,208,91,176,91,3,208,91,4,176,91,131,175,83,176,91,176,
+  91,5,143,91,131,111,83,143,91,143,83,8,111,83,3,110,83,131,78,83,
+  78,83,110,83,3,78,83,8,46,83,129,45,75,4,45,83,139,46,83,45,
+  75,13,83,45,83,45,75,45,83,45,83,13,75,46,83,13,83,46,75,10,
+  13,75,137,237,74,236,74,237,74,237,74,236,74,237,74,204,74,204,74,204,
+  66,3,204,74,138,204,66,172,66,172,66,171,66,172,66,171,66,172,66,139,
+  66,139,66,171,66,4,139,66,129,107,58,5,106,58,4,74,58,3,42,58,
+  4,41,58,129,41,50,4,9,50,138,233,49,9,50,232,41,232,49,200,41,
+  200,41,232,41,232,49,233,49,200,41,5,200,49,134,168,41,168,41,200,49,
+  168,49,200,41,167,41,105,4,138,78,83,78,83,78,91,78,83,78,83,78,
+  91,110,91,110,91,78,91,110,83,3,78,83,150,46,83,77,83,78,83,78,
+  91,78,83,110,83,110,83,78,83,78,83,110,83,110,91,110,83,78,83,110,
+  91,78,83,110,91,110,91,78,83,110,83,78,83,78,83,78,75,5,46,75,
+  150,45,75,46,75,45,75,46,75,46,75,13,75,14,75,13,75,13,75,205,
+  66,172,58,139,58,106,58,73,58,41,50,106,58,42,66,200,49,134,41,8,
+  58,203,82,44,91,4,12,91,132,44,91,44,91,13,91,45,91,4,44,91,
+  142,12,91,45,91,12,91,45,91,12,91,45,91,12,91,12,91,12,83,44,
+  91,12,83,44,91,44,91,45,91,3,12,91,156,13,91,12,91,203,82,170,
+  74,171,74,171,82,235,82,236,82,45,91,142,91,207,107,242,99,182,83,88,
+  67,184,34,54,18,180,1,16,1,204,0,42,9,206,74,50,124,17,116,45,
+  83,8,50,4,25,162,16,97,8,17,65,8,130,97,8,98,8,3,97,8,
+  129,98,16,5,130,16,130,98,8,98,16,6,65,8,143,33,8,135,0,113,
+  1,54,18,152,34,185,34,186,26,17,42,3,57,131,97,4,122,36,130,134,
+  122,239,123,179,124,10,147,124,138,115,124,147,124,147,124,146,132,178,140,84,
+  165,170,82,40,74,40,74,40,66,3,40,74,134,40,66,8,66,40,66,40,
+  66,8,66,40,66,3,8,66,130,231,57,8,66,3,231,57,130,199,57,231,
+  57,3,199,57,134,167,49,167,49,166,49,167,49,166,49,166,49,3,134,41,
+  130,102,41,134,41,4,102,41,133,69,33,69,33,101,41,69,33,101,33,7,
+  69,33,156,37,25,37,25,200,41,78,83,78,91,70,41,102,41,69,33,70,
+  33,69,33,70,33,69,33,37,25,37,33,69,33,102,33,199,49,98,8,170,
+  82,163,16,163,8,195,16,163,16,163,8,195,16,195,16,196,16,163,8,4,
+  163,16,132,195,16,195,16,195,24,228,24,3,195,16,130,196,16,228,16,3,
+  195,16,130,163,16,195,16,4,163,8,5,163,16,129,130,16,3,163,16,129,
+  130,16,3,163,8,144,131,8,131,16,130,16,131,16,163,16,163,8,163,8,
+  163,16,131,16,131,8,131,8,130,8,130,8,131,16,131,8,131,8,3,130,
+  8,138,131,16,131,16,130,16,131,8,130,16,130,8,131,16,130,8,131,8,
+  131,8,6,130,8,131,98,8,66,8,66,8,11,98,8,137,130,8,98,8,
+  130,8,98,8,130,8,98,8,130,8,130,8,131,16,3,130,8,141,130,16,
+  131,16,131,8,130,8,131,16,131,8,130,8,163,8,163,16,131,8,130,8,
+  163,8,131,8,4,163,8,3,163,16,130,163,8,195,8,4,195,16,6,196,
+  16,132,228,16,196,16,196,16,228,16,3,196,16,3,228,16,3,4,17,5,
+  5,25,5,37,25,150,70,25,38,25,70,25,70,33,102,33,70,33,102,33,
+  103,33,103,33,102,33,139,74,240,115,203,74,106,66,41,66,200,49,232,49,
+  74,58,41,58,232,49,41,58,41,50,3,232,49,138,200,49,200,41,200,49,
+  200,41,200,41,232,49,232,49,200,49,233,49,9,58,4,41,58,182,73,58,
+  41,58,74,58,74,66,106,66,107,66,139,66,171,74,236,82,236,90,45,91,
+  45,99,77,99,78,107,110,107,45,99,204,82,236,82,13,91,45,91,78,99,
+  78,99,110,99,110,99,111,99,110,99,78,91,78,91,110,99,143,107,176,107,
+  208,107,240,115,211,148,248,173,118,157,20,149,114,132,78,99,78,99,110,99,
+  73,66,12,99,207,115,171,82,166,49,69,41,33,8,130,16,105,74,236,90,
+  203,90,203,90,17,124,5,17,116,139,50,124,17,124,82,132,82,124,81,116,
+  49,124,15,124,149,189,150,189,215,197,146,132,9,241,99,167,208,91,111,83,
+  70,33,130,16,195,24,162,16,65,8,106,66,17,100,241,99,241,91,38,25,
+  162,24,228,32,195,24,167,49,17,100,209,91,208,91,209,99,209,91,241,99,
+  209,99,208,91,241,99,209,99,208,91,209,91,209,99,241,99,209,91,209,91,
+  209,99,209,91,208,91,176,91,176,83,208,91,209,91,11,208,91,4,176,91,
+  138,143,91,143,91,144,91,143,91,143,83,143,91,111,83,143,83,143,91,110,
+  83,6,111,83,133,78,83,111,83,78,83,78,83,111,83,6,78,83,131,46,
+  83,46,83,78,83,5,46,83,147,46,75,45,83,45,75,45,75,46,75,45,
+  75,46,83,45,83,13,83,13,75,45,83,13,75,45,83,13,75,46,83,14,
+  75,13,75,13,75,13,83,8,13,75,139,237,74,237,74,236,74,237,74,204,
+  74,237,74,204,74,236,74,204,74,204,74,204,66,4,172,66,4,171,66,131,
+  139,66,139,66,139,58,3,139,66,129,107,58,5,106,58,6,74,58,135,42,
+  58,42,58,41,50,41,50,9,50,9,50,9,58,3,9,50,130,233,49,233,
+  49,3,232,49,135,200,41,200,49,200,49,232,49,200,49,200,49,200,41,3,
+  200,49,134,200,41,168,49,200,49,168,41,167,41,168,41,82,4,5,78,83,
+  133,110,91,78,91,78,83,78,83,110,83,10,78,83,134,110,83,78,91,110,
+  83,78,83,110,83,110,91,6,78,83,130,78,75,46,83,4,46,75,132,13,
+  75,13,75,45,75,45,75,3,13,75,144,45,75,13,75,13,75,204,66,171,
+  58,107,58,106,58,73,58,41,58,73,50,106,58,41,58,199,49,134,49,73,
+  66,236,90,6,12,91,9,45,91,129,44,91,3,45,91,131,12,91,12,91,
+  13,91,3,12,91,158,13,91,12,83,12,91,44,91,12,83,12,91,12,91,
+  203,82,171,74,171,74,203,82,203,82,235,90,45,91,112,91,117,83,56,67,
+  216,42,54,18,146,1,15,1,171,0,135,0,132,0,74,58,237,82,106,66,
+  102,25,163,16,98,8,17,65,8,131,98,8,98,16,97,16,3,98,8,130,
+  97,8,97,8,4,98,8,3,130,16,151,162,16,130,16,130,16,98,16,98,
+  8,98,8,97,8,65,8,33,0,35,0,13,1,245,17,120,26,185,34,186,
+  34,84,34,229,40,66,81,227,113,36,122,69,122,141,123,147,132,4,147,124,
+  131,115,124,147,124,147,124,3,115,124,134,146,124,146,124,81,124,179,140,52,
+  157,73,74,3,40,74,139,40,66,40,74,40,74,40,66,40,74,40,66,8,
+  66,40,66,8,66,8,66,40,66,3,8,66,129,7,66,4,231,57,133,199,
+  57,199,49,199,57,199,49,199,49,5,166,49,140,134,41,134,41,102,41,102,
+  41,134,41,101,33,102,41,102,41,101,33,102,41,101,33,102,33,9,69,33,
+  147,37,33,167,33,240,107,110,99,4,33,102,41,70,41,70,33,70,33,102,
+  33,37,25,69,33,37,25,69,33,69,33,199,49,98,8,203,82,130,16,3,
+  163,16,129,195,16,6,163,16,143,195,16,195,16,163,16,195,16,196,16,196,
+  16,228,24,196,16,196,16,228,24,163,8,195,16,196,16,163,16,195,16,4,
+  163,16,129,163,8,10,163,16,133,163,8,163,8,163,16,163,8,163,8,3,
+  163,16,129,163,8,6,163,16,142,131,8,131,8,163,16,163,16,163,8,163,
+  8,131,8,163,8,131,8,131,8,163,8,163,8,131,8,163,8,3,163,16,
+  137,131,8,130,16,130,8,131,16,130,8,131,16,131,16,130,16,98,8,4,
+  130,8,131,131,8,131,16,130,8,4,131,8,136,163,16,163,16,131,8,131,
+  8,130,8,163,16,163,8,131,8,3,163,8,7,163,16,134,196,16,195,16,
+  163,16,196,16,196,16,195,16,3,196,16,10,228,16,134,5,17,5,25,4,
+  17,5,25,5,25,5,17,3,5,25,152,5,17,5,25,5,25,37,25,37,
+  25,37,17,37,25,38,25,70,25,38,25,69,25,69,25,70,25,70,25,102,
+  25,70,25,71,25,71,25,70,25,102,25,102,25,103,33,134,25,135,33,3,
+  103,25,3,135,33,178,103,33,13,91,81,124,171,74,106,66,41,58,9,58,
+  232,49,41,58,41,58,73,58,9,58,9,50,232,49,9,58,200,41,200,49,
+  232,41,232,49,167,41,9,50,232,49,9,58,233,49,232,49,41,58,41,58,
+  9,58,41,58,42,58,42,58,74,58,74,66,74,58,106,66,107,66,139,66,
+  171,74,236,82,236,90,45,91,45,99,45,99,78,107,78,107,45,99,204,82,
+  204,82,13,91,13,91,3,78,91,159,78,99,143,99,143,99,78,91,78,91,
+  110,91,143,99,175,107,208,107,240,115,179,140,247,165,117,157,243,148,114,132,
+  78,99,110,99,110,99,73,74,236,90,175,115,203,82,167,49,101,41,33,8,
+  130,16,105,74,236,90,203,90,138,82,17,124,7,17,116,138,17,124,17,116,
+  17,116,49,124,240,123,117,181,150,189,214,197,211,140,209,91,8,241,99,152,
+  17,100,111,83,131,16,163,24,195,24,130,16,162,16,138,58,110,83,17,100,
+  14,75,99,16,195,24,4,33,130,24,204,74,241,99,241,91,241,99,209,91,
+  241,99,209,91,209,99,208,91,3,209,99,132,241,99,208,91,208,91,208,99,
+  4,208,91,131,176,91,176,91,209,91,3,208,91,129,208,99,8,208,91,3,
+  176,91,130,144,91,176,91,3,143,91,133,143,83,143,91,143,91,143,83,111,
+  91,4,111,83,134,110,83,111,83,111,83,110,83,110,83,79,83,10,78,83,
+  3,46,83,3,45,83,147,46,83,46,83,45,83,46,83,46,83,45,83,45,
+  75,13,75,13,75,45,83,45,75,13,83,13,83,13,75,45,83,45,75,45,
+  75,13,75,13,83,7,13,75,3,237,74,153,236,74,236,74,204,74,236,74,
+  205,74,204,74,204,66,204,74,171,66,204,66,204,66,171,66,172,66,171,66,
+  172,66,171,66,171,66,107,58,41,50,232,41,74,58,138,58,106,58,106,66,
+  107,66,3,106,58,141,74,58,106,58,106,58,74,58,42,58,42,58,41,58,
+  42,58,41,50,41,58,41,50,9,50,41,50,7,9,50,3,233,49,132,200,
+  41,200,49,200,41,232,49,6,200,41,133,200,49,168,41,200,41,200,49,168,
+  41,115,4,130,78,83,77,83,8,78,83,129,110,91,5,78,83,129,78,91,
+  4,78,83,135,78,91,78,83,78,83,110,83,110,83,78,83,110,83,3,78,
+  83,132,78,75,78,83,46,83,46,83,3,46,75,129,13,67,3,13,75,130,
+  13,67,45,75,3,13,75,142,237,66,172,58,106,50,106,58,106,58,73,58,
+  73,50,106,58,138,58,41,58,167,49,167,49,105,74,236,90,6,12,91,144,
+  45,91,12,91,44,91,44,91,12,91,45,91,45,91,44,91,45,91,12,91,
+  45,91,45,91,12,91,45,91,12,91,12,83,3,12,91,155,13,91,12,83,
+  12,91,13,91,12,83,45,91,12,83,171,74,170,74,170,74,203,82,203,82,
+  238,82,51,75,56,67,216,42,86,26,147,1,206,0,12,1,105,33,229,16,
+  98,8,195,16,37,33,228,24,130,8,18,65,8,137,97,8,65,8,97,8,
+  97,8,98,8,130,8,130,8,130,16,130,16,3,162,16,138,130,16,98,8,
+  97,8,65,8,65,8,98,16,130,16,162,16,162,16,130,16,3,98,8,152,
+  97,8,65,8,33,0,202,0,244,9,120,26,185,34,186,26,118,34,165,16,
+  1,65,195,105,36,130,35,130,75,115,147,124,147,124,115,124,147,124,147,124,
+  115,124,146,116,147,124,147,124,3,146,124,131,146,132,211,148,243,148,4,40,
+  74,142,40,66,40,66,40,74,40,66,40,66,40,74,8,66,40,66,8,66,
+  40,66,8,66,8,66,232,65,232,65,3,231,57,5,199,57,146,166,49,199,
+  49,166,49,166,49,134,41,134,41,134,49,134,41,134,41,102,41,134,41,102,
+  41,102,41,101,41,101,33,101,33,69,33,102,33,3,101,33,3,69,33,130,
+  37,33,69,33,3,37,33,131,41,50,208,99,171,74,3,102,41,129,102,33,
+  3,70,33,140,69,33,70,33,70,33,134,41,167,49,66,8,235,90,130,16,
+  195,16,163,16,163,8,163,8,7,163,16,163,195,16,195,16,228,16,196,16,
+  228,16,228,16,195,16,196,16,163,16,196,16,196,16,163,16,163,16,195,16,
+  195,16,163,16,163,16,195,16,163,16,163,8,195,16,163,16,163,16,163,8,
+  163,16,131,16,163,8,163,8,163,16,163,8,163,8,163,16,195,16,163,16,
+  131,8,3,163,8,5,163,16,133,163,8,131,8,163,8,163,16,163,8,7,
+  163,16,129,162,8,3,163,16,134,163,8,163,16,130,16,163,16,163,16,131,
+  16,3,163,16,134,162,16,130,8,98,8,130,8,130,16,130,16,4,131,16,
+  3,131,8,133,163,16,131,16,131,16,131,8,131,16,6,163,8,3,163,16,
+  130,195,16,195,16,4,196,16,129,195,16,6,196,16,4,228,16,6,5,17,
+  133,37,17,5,17,5,17,37,17,5,17,3,37,25,130,70,25,70,25,3,
+  102,33,133,135,33,135,33,167,33,135,33,135,33,3,167,33,143,168,41,200,
+  41,232,41,9,42,9,50,233,41,9,50,9,50,41,50,74,58,106,58,106,
+  58,139,66,139,58,139,66,3,171,66,136,171,74,13,91,207,107,203,74,106,
+  66,74,66,41,58,9,58,3,73,58,130,9,58,41,58,5,232,49,4,200,
+  49,190,232,49,233,49,233,49,41,58,41,58,9,50,9,58,41,58,42,58,
+  74,58,74,58,42,58,106,66,138,66,139,74,171,74,204,82,236,90,13,91,
+  45,99,77,99,78,107,110,107,45,99,203,74,172,74,13,91,45,91,78,91,
+  78,99,45,91,45,91,110,91,111,91,110,99,111,99,143,99,176,107,208,107,
+  208,107,240,115,147,140,215,165,118,157,20,149,81,132,110,99,110,99,142,107,
+  73,66,203,82,110,107,203,82,167,57,101,41,33,8,98,16,105,74,236,90,
+  203,90,138,82,16,124,6,17,116,139,49,124,17,124,17,116,17,116,50,124,
+  240,123,84,173,150,189,182,197,211,148,208,91,8,241,99,165,49,100,136,41,
+  131,24,228,32,163,24,130,16,4,25,69,25,74,58,111,83,168,41,162,24,
+  4,33,227,32,228,32,208,99,241,99,241,99,208,91,208,99,209,99,209,91,
+  208,91,208,91,209,99,209,91,208,91,209,91,208,91,208,99,209,91,240,91,
+  208,91,208,91,176,91,176,91,209,91,4,208,91,129,208,99,7,208,91,3,
+  176,91,138,144,91,176,83,176,83,175,91,143,83,143,91,143,83,143,91,111,
+  83,143,83,4,111,83,136,110,83,111,83,111,83,110,83,110,83,78,83,78,
+  83,111,83,9,78,83,5,46,83,129,45,75,3,46,83,139,13,75,14,83,
+  45,83,45,75,46,83,46,83,13,83,46,75,13,75,13,83,45,75,3,13,
+  75,131,13,83,13,75,13,83,4,13,75,131,236,74,236,74,13,75,4,237,
+  74,129,236,74,3,204,74,4,204,66,131,172,66,171,66,172,66,3,171,66,
+  136,139,66,139,58,232,41,102,25,200,41,106,58,139,66,106,66,6,106,58,
+  3,74,58,129,41,58,3,42,58,132,41,50,41,58,41,58,41,50,5,9,
+  50,130,9,58,9,50,3,233,49,143,232,41,232,49,200,49,200,49,200,41,
+  232,49,200,49,200,41,200,49,200,41,200,41,168,41,168,49,168,41,167,41,
+  124,4,3,78,83,138,78,91,78,83,78,83,78,91,78,83,78,83,78,91,
+  110,83,78,83,46,83,4,78,83,129,46,83,5,78,83,132,79,83,78,83,
+  78,83,110,83,4,78,83,129,46,83,5,46,75,133,14,75,13,75,13,67,
+  14,75,13,75,3,13,67,146,13,75,13,75,237,66,139,58,41,50,74,58,
+  73,58,74,58,106,58,139,58,139,58,8,50,134,41,199,49,138,74,12,91,
+  12,91,13,91,8,12,91,129,45,91,3,12,91,3,45,91,4,12,91,3,
+  12,83,154,12,91,12,83,44,91,44,91,12,91,13,91,12,83,236,82,171,
+  74,170,74,138,82,171,82,241,74,55,67,249,50,87,26,147,1,238,0,235,
+  0,110,50,144,107,203,82,102,33,228,24,228,32,130,16,9,65,8,139,33,
+  8,33,8,33,0,33,0,33,8,65,8,98,16,130,16,98,16,130,16,98,
+  16,7,130,16,129,130,8,3,130,16,138,163,16,195,16,228,24,4,25,5,
+  25,4,25,195,16,65,8,33,0,98,8,3,130,16,146,98,8,97,8,65,
+  8,65,8,0,0,136,0,212,9,119,26,185,34,185,34,118,34,133,8,225,
+  56,194,105,36,130,35,130,10,123,146,124,4,147,124,139,115,124,114,124,147,
+  124,114,124,146,124,114,124,146,132,243,148,145,140,8,74,72,74,6,40,74,
+  130,8,66,8,66,4,40,66,4,8,66,132,231,57,231,57,199,57,231,57,
+  5,199,57,136,167,49,167,49,166,49,134,49,166,49,134,41,102,41,134,41,
+  4,102,41,134,101,41,102,41,101,33,102,41,70,33,102,33,5,69,33,140,
+  37,33,69,33,37,33,37,33,5,25,106,58,110,91,138,74,70,41,70,33,
+  134,41,102,41,3,69,33,136,37,33,69,33,38,33,135,41,134,41,98,8,
+  12,91,130,8,3,163,8,142,163,16,163,8,163,8,163,16,163,16,131,16,
+  162,16,196,16,228,16,195,16,196,16,228,24,228,24,228,16,3,195,16,139,
+  228,16,196,16,195,16,163,16,196,16,196,16,163,16,163,16,163,8,163,16,
+  163,16,3,195,16,130,163,8,163,8,7,163,16,129,195,16,3,163,16,129,
+  195,16,5,163,16,129,163,8,4,163,16,134,163,8,163,16,195,16,195,8,
+  195,16,196,16,4,163,16,130,195,16,195,16,3,163,16,130,131,8,163,8,
+  3,163,16,143,163,8,163,16,163,16,98,8,130,8,131,16,130,8,130,16,
+  130,16,131,8,131,8,131,16,163,8,131,8,163,8,9,163,16,129,163,8,
+  3,163,16,161,196,16,228,24,228,16,228,16,4,17,37,25,70,33,70,33,
+  102,33,135,33,135,33,167,41,168,41,200,41,200,41,232,49,41,58,42,58,
+  74,58,74,58,106,58,106,58,107,58,106,58,138,58,139,58,139,66,171,74,
+  172,74,171,74,204,74,237,74,237,82,3,13,83,139,46,91,46,83,78,83,
+  45,83,78,91,78,91,111,91,79,99,111,91,143,91,143,99,5,176,99,131,
+  208,99,208,99,240,107,4,241,107,138,17,108,241,107,241,99,241,107,237,82,
+  143,99,13,83,139,66,106,66,73,58,4,41,58,142,9,58,41,58,232,49,
+  9,58,232,49,232,49,233,49,200,41,200,49,232,49,9,50,233,49,200,49,
+  9,50,3,9,58,187,41,66,42,58,42,58,41,58,74,58,74,66,106,66,
+  138,66,139,74,139,74,204,82,236,90,13,91,46,99,77,99,78,107,78,107,
+  45,91,171,82,171,74,13,83,45,91,78,91,78,99,78,91,45,91,78,99,
+  111,99,143,99,143,107,175,107,176,107,208,107,240,115,240,115,147,140,215,165,
+  118,157,20,149,114,132,110,99,110,99,142,99,105,74,203,82,142,107,236,90,
+  167,49,101,49,33,0,98,16,73,74,236,90,236,90,138,74,16,124,17,116,
+  49,124,49,124,3,17,116,139,17,124,240,115,17,116,17,116,49,116,16,132,
+  52,173,150,181,214,197,243,156,208,91,7,241,99,160,17,100,46,75,98,16,
+  195,24,228,32,98,16,167,49,106,58,37,17,37,17,41,42,228,24,163,24,
+  4,33,131,16,41,66,17,100,208,99,209,99,208,91,240,91,209,91,208,91,
+  209,99,209,99,208,91,208,91,208,99,209,99,208,91,209,99,208,99,3,208,
+  91,132,176,91,176,91,208,91,208,99,7,208,91,130,176,91,208,91,7,176,
+  91,145,175,91,143,91,143,83,143,91,143,91,143,83,143,83,111,83,143,83,
+  111,83,111,83,110,83,111,91,111,83,110,83,78,83,111,83,10,78,83,4,
+  46,83,136,46,75,46,83,46,83,45,83,45,75,46,83,46,75,46,75,3,
+  46,83,132,45,75,46,83,13,75,13,75,3,45,75,3,13,75,129,13,83,
+  7,13,75,130,237,74,236,74,4,237,74,4,204,74,3,204,66,132,172,66,
+  204,66,172,66,172,66,4,171,66,136,139,66,74,58,134,33,102,25,41,50,
+  139,66,107,58,139,58,5,106,58,144,74,58,74,58,41,50,73,50,41,50,
+  42,58,42,50,42,58,41,50,41,50,9,50,9,58,9,50,41,50,9,50,
+  9,50,7,233,49,130,200,49,200,49,3,200,41,129,200,49,3,200,41,132,
+  200,49,200,41,168,41,168,41,168,4,7,78,83,135,78,91,78,91,78,83,
+  78,83,46,83,46,75,46,83,3,78,83,129,46,83,12,78,83,132,78,75,
+  78,83,46,75,14,75,3,46,75,130,13,75,13,67,4,13,75,3,13,67,
+  143,237,66,237,66,139,58,41,50,73,50,41,58,106,58,139,58,172,58,106,
+  58,232,49,134,41,8,58,171,82,44,91,9,12,91,134,45,91,44,91,44,
+  91,45,91,12,91,45,91,6,12,91,155,12,83,12,83,12,91,12,83,13,
+  91,12,91,12,91,44,91,13,91,12,91,203,74,171,74,138,74,173,74,21,
+  67,57,59,151,34,212,9,48,1,204,0,13,42,209,107,114,132,110,99,199,
+  49,195,24,130,16,7,65,8,138,33,8,33,0,32,0,33,0,33,8,65,
+  8,98,16,130,16,162,24,163,24,6,195,24,193,162,16,162,16,195,16,4,
+  25,102,41,232,49,74,58,171,74,13,83,110,99,175,107,208,115,240,115,17,
+  116,17,116,49,124,49,116,110,99,9,58,195,16,33,0,65,8,130,16,163,
+  16,163,16,130,16,65,8,65,8,0,0,102,0,179,9,120,26,153,34,185,
+  34,150,42,101,8,225,48,194,105,68,130,36,130,201,114,241,107,115,116,147,
+  124,147,124,146,124,147,124,115,124,115,124,146,124,114,124,146,132,20,149,15,
+  132,231,65,40,74,40,74,40,66,40,74,8,66,40,74,40,74,40,66,72,
+  66,40,66,3,8,66,131,40,66,8,66,8,66,4,231,57,134,199,57,231,
+  57,231,57,199,57,199,57,199,49,3,166,49,130,134,49,134,49,4,134,41,
+  135,102,41,101,41,101,41,102,41,101,33,101,41,101,33,6,69,33,137,37,
+  33,69,33,37,25,37,25,69,33,4,25,138,58,142,99,41,58,3,134,41,
+  158,102,41,70,33,102,33,102,33,37,33,102,33,70,33,135,41,102,41,98,
+  8,77,99,130,16,163,8,163,8,163,16,163,8,163,8,131,8,163,8,163,
+  16,162,16,162,16,163,8,196,16,196,16,228,16,228,16,195,16,228,24,196,
+  24,3,196,16,130,163,16,195,16,4,196,16,133,163,16,163,8,163,16,163,
+  16,196,16,3,195,16,7,163,16,131,196,16,195,16,195,16,7,163,16,130,
+  195,16,195,16,3,163,16,148,195,16,195,16,163,16,195,16,196,16,195,16,
+  196,16,196,16,195,16,196,16,196,16,195,16,196,24,196,16,163,16,163,16,
+  195,16,163,16,163,16,164,16,5,195,16,187,163,16,195,16,195,16,228,16,
+  228,24,228,24,196,16,163,16,130,16,196,16,102,33,135,41,199,41,167,49,
+  167,41,232,49,233,49,233,49,168,49,4,25,163,8,163,8,163,16,163,16,
+  228,24,37,25,102,33,168,41,8,50,106,58,13,75,111,91,143,99,144,99,
+  176,99,143,91,144,91,111,91,111,91,78,83,111,83,111,91,144,91,144,91,
+  208,99,208,99,241,99,241,99,17,108,17,108,49,108,50,108,18,108,17,108,
+  17,108,49,108,18,108,17,108,17,108,3,241,107,3,241,99,134,241,107,241,
+  99,241,107,241,99,241,99,241,107,5,241,99,129,241,107,4,17,108,216,241,
+  107,17,108,17,108,241,99,241,99,17,108,45,83,110,99,171,74,139,66,106,
+  66,41,58,74,58,41,58,41,58,73,58,41,58,9,58,200,49,232,49,200,
+  41,9,50,233,49,232,49,232,49,200,41,200,41,232,49,232,49,233,57,232,
+  49,41,58,41,58,74,58,74,58,74,66,42,58,74,58,74,66,107,66,106,
+  74,139,66,139,66,204,74,13,91,13,91,45,99,77,99,110,107,77,107,45,
+  99,171,74,171,74,13,83,45,91,78,91,78,99,78,99,110,99,110,99,78,
+  99,142,99,143,107,143,107,143,99,208,107,208,107,208,115,114,132,215,165,150,
+  157,244,148,114,132,110,99,110,99,143,107,105,74,170,82,175,115,235,90,199,
+  57,134,49,65,8,97,8,40,66,236,90,203,90,106,74,4,17,124,4,17,
+  116,138,240,115,17,116,17,124,17,124,16,124,20,173,150,181,182,189,52,165,
+  208,99,7,241,99,147,18,100,102,33,162,16,227,24,163,24,163,24,143,99,
+  78,83,107,58,69,25,228,16,163,16,227,32,228,32,163,24,110,91,241,91,
+  208,99,208,99,3,209,99,136,208,91,209,91,209,99,209,91,209,99,208,99,
+  208,99,240,99,4,208,91,130,176,91,176,91,5,208,91,134,209,99,208,91,
+  208,91,208,99,208,91,208,91,7,176,91,137,144,91,175,91,143,91,143,91,
+  144,91,143,91,143,91,111,83,143,83,7,111,83,133,79,83,111,83,111,83,
+  78,83,110,83,5,78,83,131,78,75,46,83,78,83,3,46,83,149,45,75,
+  45,75,46,83,46,83,45,83,46,83,45,75,46,83,46,83,45,83,13,75,
+  46,75,13,75,46,83,13,75,13,83,13,83,45,75,45,75,13,75,13,83,
+  9,13,75,5,237,74,142,236,74,236,74,205,74,204,74,204,74,204,66,204,
+  74,204,66,172,66,171,66,171,66,172,66,171,66,171,66,3,139,66,136,9,
+  50,102,33,167,41,74,66,106,66,107,58,106,58,106,66,3,106,58,5,74,
+  58,136,41,50,42,50,41,58,41,58,41,50,41,50,41,58,9,58,3,9,
+  50,133,233,49,233,49,9,50,232,49,233,49,3,232,49,140,200,49,200,49,
+  200,41,200,41,200,49,200,49,200,41,200,49,200,49,168,41,168,41,167,41,
+  155,4,131,45,83,45,83,77,83,9,78,83,135,46,83,45,75,78,83,78,
+  83,46,83,46,75,46,75,10,78,83,159,46,83,46,83,46,75,46,75,13,
+  75,46,75,46,75,13,75,13,67,14,75,13,75,14,75,13,67,237,66,237,
+  66,13,67,237,66,237,66,172,58,106,58,73,50,73,50,106,58,138,58,172,
+  58,204,66,74,58,199,49,135,49,73,66,203,82,12,12,91,129,44,91,4,
+  12,91,133,45,91,12,91,12,91,44,91,44,91,4,12,83,149,13,91,12,
+  91,12,91,12,83,236,82,12,91,203,82,171,74,209,66,56,59,216,50,22,
+  18,114,1,205,0,172,25,112,99,82,124,208,107,73,58,228,24,130,8,5,
+  65,8,4,33,8,134,65,8,65,8,130,16,162,24,195,24,195,24,3,227,
+  32,140,228,32,228,24,227,24,227,24,195,24,163,24,195,24,102,41,138,74,
+  175,107,49,116,82,124,6,147,132,4,147,124,169,146,124,114,124,147,124,147,
+  132,82,124,45,91,101,41,65,8,65,8,130,16,163,16,130,16,98,8,65,
+  8,0,0,69,0,178,9,87,18,185,34,186,34,118,34,101,8,193,48,195,
+  105,36,130,36,130,70,106,171,74,175,99,114,116,147,124,146,124,114,124,115,
+  124,115,124,114,124,113,132,52,157,142,115,7,66,72,74,6,40,74,134,40,
+  66,40,74,8,66,40,66,8,66,40,66,3,8,66,134,231,65,231,57,231,
+  57,232,65,231,57,231,57,3,199,57,133,166,49,167,49,166,49,166,49,134,
+  49,5,134,41,137,101,41,102,41,101,41,101,41,102,33,101,41,101,33,69,
+  33,101,33,5,69,33,150,37,33,69,33,69,33,37,25,4,25,171,66,45,
+  83,135,41,102,41,134,41,102,41,134,41,134,41,102,33,70,33,69,33,69,
+  33,70,33,102,33,102,41,130,16,199,49,7,163,16,154,131,8,163,8,163,
+  16,162,8,163,16,228,16,228,24,228,16,228,16,228,24,228,24,228,16,228,
+  16,228,24,228,16,195,16,195,16,163,16,195,16,195,16,196,16,163,16,195,
+  16,163,16,195,16,196,16,3,195,16,4,163,16,130,195,16,195,8,3,196,
+  16,3,195,16,4,163,16,3,195,16,133,164,16,164,16,196,16,195,16,196,
+  16,3,195,16,3,196,16,132,195,16,196,16,228,16,228,24,7,196,16,174,
+  228,16,228,24,228,24,4,25,4,25,37,33,5,33,5,25,4,25,37,25,
+  37,33,5,25,5,25,163,16,98,8,228,24,9,58,42,58,106,58,106,66,
+  106,58,140,66,172,66,172,66,107,58,70,25,130,8,130,8,131,16,163,16,
+  196,16,5,25,102,33,200,33,41,50,139,66,46,75,144,83,176,91,176,91,
+  143,91,143,83,144,83,144,91,143,91,143,91,3,111,83,140,78,83,46,75,
+  78,75,110,75,144,83,175,91,176,91,209,99,17,100,49,100,17,108,50,108,
+  3,17,108,131,17,100,17,108,241,107,4,241,99,137,209,99,208,99,208,91,
+  208,99,209,99,208,99,241,99,208,99,209,99,4,241,99,133,17,108,17,108,
+  241,107,241,107,17,108,3,241,107,148,17,108,45,91,45,99,139,74,139,74,
+  106,66,73,58,41,58,74,58,41,58,41,58,9,58,41,50,9,50,232,49,
+  232,49,200,49,232,49,232,49,200,41,3,200,49,133,8,58,9,58,41,58,
+  41,58,9,58,3,41,58,182,42,58,74,58,74,58,74,66,106,74,139,74,
+  41,58,41,58,13,91,13,91,45,99,77,99,77,99,78,107,45,99,171,74,
+  171,74,237,82,45,91,78,99,110,99,110,99,143,99,110,99,78,91,110,99,
+  111,99,143,99,143,99,175,107,175,107,208,107,114,132,215,165,150,157,243,148,
+  114,132,142,99,110,99,143,107,106,74,203,82,175,115,12,91,199,57,134,49,
+  65,8,65,8,8,66,235,90,235,90,138,74,16,124,241,115,3,17,116,130,
+  240,115,241,115,5,17,116,137,240,123,19,173,150,189,182,189,53,165,208,99,
+  241,99,241,99,241,91,3,241,99,150,17,100,205,66,98,16,195,24,195,24,
+  66,8,41,66,49,108,209,99,111,91,74,50,130,8,163,24,4,33,162,24,
+  102,49,241,99,241,91,208,91,209,99,208,99,208,91,3,209,99,137,208,91,
+  208,91,209,91,209,91,208,99,208,91,208,99,208,91,208,91,3,176,91,129,
+  209,91,4,208,91,135,209,91,209,91,208,91,208,99,176,91,208,91,208,91,
+  7,176,91,4,143,91,132,143,83,143,91,143,83,143,83,7,111,83,129,79,
+  83,5,78,83,129,110,83,6,78,83,8,46,83,148,46,75,46,83,45,75,
+  45,75,46,75,13,75,13,75,45,83,13,75,45,83,13,83,45,83,13,75,
+  45,75,13,75,13,83,13,75,13,75,13,83,13,83,5,13,75,3,237,74,
+  136,236,74,236,74,237,74,236,74,204,74,204,66,204,74,204,74,3,204,66,
+  147,172,74,204,74,172,66,139,66,171,66,171,66,139,66,139,66,106,58,200,
+  49,102,33,9,50,107,66,107,58,106,58,106,66,107,58,106,58,106,58,3,
+  74,58,144,42,58,74,58,41,50,41,58,42,58,41,58,41,50,42,58,9,
+  50,41,50,9,58,9,50,9,50,233,49,9,50,8,50,3,232,49,130,168,
+  41,168,41,6,200,49,134,200,41,200,49,168,49,200,49,168,41,135,41,178,
+  4,131,45,83,77,83,45,83,6,78,83,133,78,91,78,83,78,83,45,83,
+  45,83,4,46,83,130,46,75,46,75,9,78,83,130,46,75,46,75,6,13,
+  75,133,13,67,13,67,237,66,13,75,13,75,4,237,66,142,204,58,139,58,
+  73,50,41,50,106,58,139,58,171,58,172,58,172,58,41,58,167,49,167,49,
+  105,66,236,82,7,12,91,129,12,83,6,12,91,159,45,91,12,91,44,91,
+  45,91,12,91,12,91,12,83,12,83,12,91,12,91,12,83,12,91,12,91,
+  13,91,12,91,12,83,12,91,236,90,205,74,21,67,25,51,119,34,180,9,
+  239,0,236,0,142,66,241,115,240,107,171,74,36,33,130,8,5,65,8,134,
+  32,0,32,0,33,8,97,8,162,16,195,24,4,4,33,143,228,32,227,32,
+  227,32,228,32,227,24,227,32,195,32,162,24,162,32,36,41,73,66,110,107,
+  49,124,147,132,147,132,3,147,124,4,114,124,133,147,124,115,124,114,116,114,
+  124,114,116,5,114,124,162,147,132,147,132,142,107,102,41,98,8,131,16,195,
+  24,163,16,130,16,98,8,32,8,69,0,146,9,87,18,153,26,185,34,118,
+  34,132,8,225,48,227,105,68,130,68,130,71,106,231,57,138,58,143,91,114,
+  116,146,124,147,124,146,124,146,132,146,140,52,157,12,99,5,40,74,135,8,
+  66,40,74,40,74,40,66,40,74,40,66,40,66,3,8,66,136,232,65,8,
+  66,7,66,7,66,232,57,231,57,199,57,231,57,3,199,57,129,199,49,4,
+  166,49,3,134,41,138,102,41,134,41,134,41,102,41,101,41,101,33,70,33,
+  70,33,69,33,101,41,6,69,33,149,37,33,69,33,37,25,69,33,4,25,
+  171,66,110,91,199,49,102,41,135,41,134,41,135,41,102,41,70,33,102,33,
+  69,33,102,33,70,33,69,33,69,33,36,33,7,163,16,147,163,8,163,16,
+  163,8,163,16,163,16,195,16,228,24,4,25,228,24,228,24,5,25,228,24,
+  228,16,196,16,195,16,196,24,228,24,196,16,163,8,4,195,16,134,196,16,
+  196,16,195,16,163,16,163,16,195,16,5,163,16,130,196,16,195,8,5,195,
+  16,129,196,16,3,195,16,131,196,16,196,16,195,16,5,196,16,132,195,16,
+  196,16,196,16,228,16,3,196,16,4,228,16,130,4,25,228,16,3,228,24,
+  156,228,16,228,24,229,24,229,24,5,25,5,25,37,25,5,25,5,33,5,
+  25,37,25,37,25,4,25,196,16,195,16,163,16,98,8,228,24,9,50,41,
+  50,41,50,74,58,74,58,139,58,140,66,140,66,10,50,228,16,3,98,8,
+  141,131,8,131,8,164,16,229,16,70,25,135,25,41,42,237,66,79,83,143,
+  83,144,91,176,91,176,99,3,209,99,149,241,99,209,99,241,99,241,99,209,
+  99,176,99,143,91,111,91,78,83,46,83,46,83,78,83,111,83,111,83,143,
+  91,176,91,241,107,17,108,17,100,17,100,241,99,3,241,107,137,241,99,241,
+  99,209,99,241,99,208,99,209,99,209,99,241,99,241,107,6,241,99,133,17,
+  108,17,108,241,107,17,108,17,108,4,241,107,143,207,107,142,107,236,82,106,
+  66,106,66,73,58,41,58,74,58,41,58,41,58,9,58,9,50,9,50,9,
+  58,200,41,3,232,49,210,200,49,200,49,232,49,232,49,233,57,9,58,9,
+  50,9,50,9,58,42,58,42,58,41,58,41,58,74,58,106,66,74,66,74,
+  66,139,66,42,58,168,41,45,99,13,91,13,91,77,99,77,107,77,99,45,
+  99,171,74,171,74,13,91,78,99,78,99,110,99,110,99,143,99,143,99,110,
+  99,142,99,111,99,143,99,143,107,143,107,175,107,176,107,82,132,215,165,150,
+  165,20,149,146,132,142,99,110,99,143,107,138,74,170,82,78,107,236,90,231,
+  57,134,49,65,8,65,8,8,66,235,90,236,90,105,74,207,123,17,116,17,
+  116,240,115,17,116,17,116,241,115,240,115,241,115,241,107,241,115,17,124,240,
+  123,243,164,149,181,150,189,117,173,208,91,6,241,99,135,17,92,229,16,163,
+  24,36,33,163,24,163,16,208,99,3,241,99,140,74,58,130,16,228,32,4,
+  33,130,16,9,58,209,99,208,91,208,91,209,91,208,91,208,91,3,208,99,
+  4,208,91,133,209,99,208,91,208,99,208,91,208,91,3,176,91,130,208,99,
+  209,99,3,208,91,136,176,91,208,91,208,91,176,91,208,91,208,91,176,91,
+  208,91,5,176,91,136,143,91,143,91,143,83,143,91,143,91,144,91,143,83,
+  143,83,7,111,83,134,79,83,78,83,111,83,110,83,78,83,79,83,7,78,
+  83,4,46,83,129,45,83,5,46,83,145,46,75,46,75,13,75,46,83,46,
+  75,45,83,13,75,13,75,45,75,13,75,13,75,45,75,13,75,13,83,13,
+  83,13,75,13,83,5,13,75,144,237,74,13,75,13,75,237,74,237,74,236,
+  74,237,74,205,74,236,74,204,74,205,74,204,66,204,74,204,74,172,66,204,
+  66,3,172,66,147,171,66,171,66,139,66,171,66,139,66,139,66,74,58,135,
+  33,167,33,74,58,139,66,106,58,106,58,74,58,106,58,74,58,106,58,74,
+  58,74,58,5,42,58,134,41,58,9,58,41,58,9,50,41,50,9,58,3,
+  9,50,147,233,49,9,50,233,49,233,49,200,49,103,33,102,33,135,33,200,
+  49,232,49,200,49,200,41,200,41,168,41,200,41,200,41,200,49,167,41,103,
+  33,116,4,130,45,83,45,83,7,78,83,133,78,91,78,83,46,83,45,83,
+  45,75,3,46,83,3,46,75,129,46,83,8,78,83,131,45,75,46,75,46,
+  75,3,13,75,135,46,75,13,75,13,67,237,66,13,67,13,75,13,75,4,
+  237,66,147,172,58,106,50,41,50,74,58,139,66,172,58,204,66,204,66,172,
+  66,9,50,134,41,199,49,138,74,12,91,12,91,12,83,12,91,12,91,12,
+  83,10,12,91,129,12,83,8,12,91,4,12,83,143,12,91,12,91,12,83,
+  17,75,56,67,216,42,21,18,114,1,204,0,139,25,13,83,175,107,13,91,
+  134,41,163,16,4,65,8,141,33,8,32,0,65,8,130,16,4,33,69,41,
+  101,41,101,41,36,33,4,33,4,33,227,24,227,24,3,227,32,143,195,40,
+  194,40,161,32,226,32,166,57,12,91,16,116,114,124,179,124,146,124,147,124,
+  146,124,114,124,115,124,114,124,3,82,116,130,114,124,146,124,5,114,124,129,
+  114,116,5,114,124,165,147,124,146,132,207,115,240,115,207,115,142,115,175,115,
+  142,107,110,107,77,107,46,99,81,91,114,91,115,91,116,91,210,66,100,8,
+  226,56,195,105,36,130,36,130,202,106,235,90,203,82,110,99,240,115,17,108,
+  17,108,114,132,146,140,85,165,170,90,41,74,40,74,72,74,40,74,40,66,
+  4,40,74,138,40,66,8,66,40,66,40,66,8,66,8,66,40,66,8,66,
+  231,65,7,58,3,231,57,4,199,57,133,198,57,166,49,199,49,166,49,166,
+  49,5,134,41,131,102,41,102,41,101,41,3,102,33,4,69,33,133,69,25,
+  37,25,69,33,69,33,37,33,3,69,33,152,4,25,172,74,208,107,134,49,
+  102,41,134,41,134,41,102,41,102,41,70,33,70,33,69,33,70,33,102,41,
+  37,33,69,33,37,33,37,33,4,33,228,24,195,24,163,16,163,16,195,16,
+  5,163,16,131,228,16,4,25,4,25,3,228,24,141,228,16,228,16,196,16,
+  228,16,196,16,196,16,228,16,163,8,195,16,196,24,195,8,195,16,228,24,
+  5,195,16,129,163,8,3,163,16,134,195,16,196,16,163,16,195,16,195,16,
+  228,16,4,196,16,131,195,16,196,16,163,16,9,196,16,133,228,24,228,24,
+  228,16,196,16,228,16,4,228,24,129,5,25,3,228,24,132,228,16,228,24,
+  228,16,228,16,7,5,25,163,37,25,37,25,4,25,131,8,130,8,98,8,
+  66,8,196,16,233,49,42,58,9,50,41,50,74,58,107,58,107,58,75,58,
+  103,33,130,8,65,8,66,8,98,8,98,0,66,0,66,0,163,16,70,33,
+  233,41,171,66,78,83,143,83,176,91,176,83,176,91,144,91,176,83,9,176,
+  91,158,144,91,144,91,143,91,111,83,111,91,46,83,13,83,237,74,78,83,
+  176,99,241,107,241,107,241,99,241,107,241,99,241,99,241,107,241,99,241,99,
+  241,107,241,99,241,99,241,107,241,107,241,99,241,107,17,108,241,99,241,107,
+  241,99,7,17,108,138,17,100,241,107,241,107,17,108,78,91,45,91,74,66,
+  106,66,106,66,74,66,4,41,58,146,9,58,9,50,233,49,232,49,232,49,
+  200,41,200,41,8,50,200,41,200,41,200,49,200,49,9,58,9,58,41,58,
+  9,58,9,58,74,58,4,41,58,153,74,58,106,66,107,66,139,66,41,58,
+  102,33,45,91,13,91,45,99,77,99,77,107,77,107,45,99,171,82,171,74,
+  13,83,78,99,110,99,142,99,110,99,110,99,143,99,143,107,143,99,142,99,
+  3,143,99,156,143,107,208,115,82,132,215,165,182,157,53,149,211,140,143,99,
+  110,99,143,107,138,74,170,82,239,115,45,99,231,57,134,49,65,8,65,8,
+  199,57,236,90,235,90,105,74,207,123,17,116,16,116,17,116,17,116,240,115,
+  3,240,107,137,241,107,241,115,241,123,240,115,211,164,149,181,149,181,118,181,
+  208,99,5,241,99,146,18,100,107,58,98,16,228,32,228,32,65,16,106,66,
+  17,100,241,99,241,99,17,100,103,33,163,24,4,33,228,32,162,16,232,49,
+  46,83,4,209,99,130,208,91,208,99,10,208,91,130,176,91,176,91,8,208,
+  91,3,176,91,133,208,91,208,91,176,91,176,91,175,91,3,176,91,136,144,
+  83,143,91,143,83,143,83,143,91,143,83,143,91,143,83,8,111,83,132,79,
+  83,78,83,78,83,110,83,7,78,83,130,46,83,78,83,6,46,83,129,45,
+  83,3,45,75,141,46,75,13,75,13,75,46,75,13,75,13,75,46,83,13,
+  75,45,75,13,75,45,83,13,83,45,83,7,13,75,131,237,74,13,75,13,
+  75,6,237,74,3,204,74,150,205,74,204,66,204,74,204,66,204,66,172,66,
+  172,66,171,66,171,66,172,66,171,66,139,66,171,66,139,66,139,66,106,58,
+  232,49,102,33,232,49,106,58,106,58,107,58,3,106,58,4,74,58,138,42,
+  58,74,58,41,58,74,58,42,58,41,58,9,50,41,58,9,50,9,58,3,
+  9,50,147,9,58,9,50,233,49,233,49,200,49,168,41,102,33,103,33,200,
+  49,200,49,232,49,200,49,199,41,200,41,168,41,200,41,200,41,167,41,70,
+  33,174,4,3,45,83,132,78,83,78,83,78,91,78,91,3,78,83,138,77,
+  83,45,83,46,83,46,75,46,83,45,75,46,75,46,75,46,83,46,75,3,
+  46,83,130,78,83,46,83,3,78,83,140,46,75,46,75,46,83,46,75,13,
+  75,13,75,46,75,13,75,13,75,13,67,237,66,237,66,3,13,67,144,237,
+  66,205,66,237,66,171,58,74,50,74,58,139,66,171,66,204,66,237,66,237,
+  66,139,58,232,49,102,41,232,57,170,82,20,12,91,3,12,83,129,12,91,
+  3,12,83,144,12,91,12,83,12,91,13,83,52,75,57,59,151,34,212,9,
+  15,1,203,0,11,50,13,91,45,91,232,57,227,24,98,16,3,65,8,156,
+  33,0,65,8,162,16,37,33,166,57,167,57,134,49,69,41,36,33,228,32,
+  227,24,227,32,3,33,3,41,3,49,227,56,226,56,161,40,194,40,101,49,
+  170,82,207,107,114,132,147,132,147,132,146,124,146,124,147,124,3,146,124,133,
+  147,124,114,124,114,124,82,116,82,116,6,114,124,129,114,116,7,114,124,164,
+  82,124,240,115,49,124,49,132,49,124,240,123,240,123,207,115,175,115,143,115,
+  175,115,240,123,176,115,177,107,147,91,177,66,168,49,8,82,103,106,135,122,
+  141,123,142,115,109,115,142,107,109,107,142,107,142,107,114,132,178,140,52,157,
+  73,74,40,74,40,74,72,74,40,74,72,74,4,40,74,5,40,66,132,8,
+  66,40,66,231,65,231,65,5,231,57,4,199,57,143,199,49,166,49,166,49,
+  134,41,166,49,134,41,134,41,102,41,134,41,101,41,102,41,101,33,102,41,
+  101,33,101,33,8,69,33,156,37,33,69,33,37,33,37,33,4,25,204,74,
+  111,99,134,49,134,41,102,41,134,41,102,41,102,33,102,41,70,33,102,33,
+  69,33,37,33,37,33,69,33,69,33,37,33,37,33,5,25,4,25,228,24,
+  228,24,195,16,5,163,16,141,228,16,228,24,228,24,5,25,4,25,228,24,
+  228,24,196,16,228,16,228,24,228,16,196,16,195,16,4,196,16,132,195,16,
+  196,16,228,16,195,16,3,196,16,7,195,16,146,228,16,195,16,196,16,228,
+  24,228,16,195,16,196,16,228,16,228,16,196,16,196,16,196,24,196,16,228,
+  16,196,16,196,16,195,16,195,16,6,228,16,134,228,24,228,24,228,16,4,
+  25,4,25,5,25,3,228,24,133,228,16,228,24,228,16,228,16,4,17,3,
+  228,16,147,229,16,5,17,5,17,5,25,4,25,196,24,130,16,98,8,65,
+  0,163,16,232,49,73,58,41,58,9,58,9,50,42,50,9,50,135,33,163,
+  8,3,65,0,3,98,0,142,130,8,37,33,232,49,42,58,106,58,139,58,
+  205,66,237,74,205,66,204,58,13,75,45,75,46,75,45,75,3,46,75,154,
+  13,67,237,66,172,58,74,42,201,33,167,25,167,25,199,25,199,25,167,33,
+  200,33,200,33,233,41,41,42,74,50,139,58,172,58,205,66,237,66,13,75,
+  78,83,111,83,144,91,176,91,208,99,208,99,4,241,99,146,17,108,241,107,
+  241,99,241,99,17,108,241,107,17,108,17,108,241,99,17,108,241,107,241,99,
+  241,99,208,99,17,100,78,91,45,99,138,74,3,106,66,141,74,58,41,58,
+  41,58,73,58,41,58,41,50,9,50,232,49,200,41,9,50,232,49,9,50,
+  232,41,4,232,49,154,9,58,41,58,9,50,41,58,41,58,74,58,73,58,
+  41,58,74,58,74,58,106,66,106,66,139,66,41,58,70,25,13,91,45,91,
+  45,99,77,99,78,107,77,99,45,99,171,82,171,82,13,91,78,91,4,110,
+  99,158,143,107,175,107,143,99,143,99,111,99,111,99,143,99,142,107,175,107,
+  49,132,183,165,182,165,53,149,178,140,143,107,142,99,175,107,170,74,138,82,
+  110,107,45,99,231,57,134,49,97,8,65,8,166,49,235,90,236,90,106,74,
+  175,115,5,240,115,140,240,107,240,107,208,107,208,107,208,115,240,115,207,115,
+  178,156,149,189,149,189,117,181,208,99,5,241,99,135,208,91,164,16,163,24,
+  227,24,130,16,228,32,240,99,3,241,99,144,78,75,131,16,227,24,4,33,
+  163,24,4,25,4,17,41,50,46,83,209,99,176,91,208,91,208,99,208,91,
+  208,91,208,99,5,208,91,136,208,99,208,91,208,91,176,91,176,83,176,91,
+  208,91,208,99,3,208,91,3,176,91,139,208,91,176,91,208,91,176,91,208,
+  91,176,91,176,91,208,91,176,91,176,91,175,91,4,143,91,145,143,83,143,
+  91,111,83,111,83,111,91,111,83,111,83,110,83,110,83,111,83,79,83,111,
+  83,78,83,78,83,79,83,78,75,110,83,6,78,83,132,46,83,46,83,78,
+  83,46,75,3,46,83,140,45,75,46,83,13,75,46,83,45,75,13,75,45,
+  75,14,83,13,75,13,83,46,83,13,83,5,13,75,129,13,83,6,13,75,
+  146,237,74,237,74,13,75,237,74,237,74,205,74,237,74,204,66,204,66,236,
+  74,204,74,236,74,204,66,204,66,204,74,172,66,172,74,172,66,7,171,66,
+  137,139,66,171,66,139,66,41,50,135,33,167,41,41,50,139,58,107,58,3,
+  106,58,4,74,58,138,41,58,74,58,42,58,42,58,41,50,41,58,41,58,
+  9,50,9,58,9,58,4,9,50,3,233,49,132,9,50,233,49,168,41,200,
+  49,4,232,49,135,200,49,200,49,168,41,200,41,168,41,167,41,103,33,148,
+  4,134,45,83,45,83,46,83,78,83,78,83,77,83,3,78,83,3,46,83,
+  150,45,83,46,83,46,83,45,83,46,75,45,75,46,75,46,83,78,83,46,
+  75,46,83,78,83,78,83,46,75,78,83,46,83,46,75,45,75,46,83,46,
+  75,13,75,237,74,3,13,75,4,237,66,146,13,67,13,67,237,66,237,66,
+  204,58,138,58,74,58,138,58,172,66,204,66,237,74,13,75,13,75,171,66,
+  232,49,134,41,41,66,203,82,5,12,91,131,12,83,12,91,236,90,9,12,
+  91,129,12,83,4,12,91,148,12,83,12,91,12,91,12,83,12,91,12,83,
+  12,91,14,83,54,67,249,50,86,26,146,1,237,0,75,25,107,74,236,90,
+  106,74,69,33,130,16,97,8,3,65,8,156,130,16,36,33,231,57,8,66,
+  199,57,101,41,4,33,4,33,195,24,227,24,4,41,100,57,100,73,67,73,
+  2,65,193,56,161,40,36,49,73,74,110,107,82,124,147,132,179,132,146,124,
+  146,116,146,124,146,124,147,124,4,146,124,136,114,124,114,124,82,116,82,116,
+  114,116,114,124,114,124,147,124,3,114,124,131,114,116,114,124,114,116,3,114,
+  124,136,114,116,114,124,82,116,207,115,49,132,113,132,114,132,81,132,4,16,
+  124,161,240,123,240,115,208,115,209,115,241,115,242,115,243,107,177,107,143,107,
+  143,107,142,107,174,115,174,115,142,115,142,107,142,107,207,115,178,140,211,148,
+  243,148,40,74,40,66,72,74,72,74,40,74,40,66,40,74,40,74,41,74,
+  40,74,40,74,40,66,40,66,6,8,66,4,231,57,143,199,57,199,57,199,
+  49,199,57,199,49,167,49,166,49,166,49,134,49,134,49,134,41,134,41,102,
+  41,102,41,101,41,3,102,41,14,69,33,131,228,16,110,91,240,115,4,134,
+  41,145,102,41,102,41,134,41,70,33,102,41,70,33,37,33,37,33,102,41,
+  69,33,69,33,37,33,5,25,37,33,37,33,4,25,4,25,3,228,24,131,
+  196,24,228,16,228,16,6,228,24,152,228,16,196,16,228,24,228,16,228,16,
+  195,16,228,24,228,16,228,16,196,16,196,24,228,24,196,16,196,16,228,24,
+  228,16,195,16,196,16,163,8,196,16,196,16,195,16,195,16,228,16,4,196,
+  16,133,195,16,196,16,196,16,196,24,196,16,3,228,24,136,196,16,196,16,
+  228,16,196,16,228,16,196,16,196,24,228,24,7,228,16,131,4,25,228,24,
+  229,24,3,228,16,129,196,16,6,228,16,132,228,24,228,16,228,24,228,16,
+  3,4,25,141,228,24,130,8,33,0,130,8,200,49,9,50,232,49,232,49,
+  200,41,232,41,168,41,228,16,66,0,3,65,0,142,66,0,98,0,131,8,
+  4,25,103,41,200,41,167,41,168,41,200,41,41,50,74,50,74,50,139,58,
+  236,74,3,13,75,164,237,74,172,66,106,50,232,33,102,25,5,17,196,16,
+  163,16,195,16,163,16,131,8,130,8,131,8,163,16,163,8,163,16,163,16,
+  163,8,163,8,195,8,196,8,228,16,228,16,37,17,70,17,167,25,232,33,
+  42,42,107,42,204,58,13,67,46,75,111,83,176,91,176,91,209,99,7,241,
+  99,148,208,99,208,91,208,99,208,99,209,99,143,107,240,123,45,91,106,66,
+  106,66,74,66,74,66,73,58,41,58,41,58,9,50,41,58,9,50,232,41,
+  199,41,3,232,49,136,199,41,232,49,232,41,8,50,233,49,233,49,41,58,
+  9,58,3,41,58,148,74,66,42,58,74,58,73,58,74,58,106,66,139,74,
+  41,58,69,25,13,91,78,99,45,99,45,99,78,107,77,99,45,99,171,82,
+  172,82,13,91,46,91,4,110,99,4,143,99,3,110,99,157,142,107,175,107,
+  49,124,150,165,150,157,20,149,211,140,143,107,110,99,175,107,170,74,170,82,
+  77,99,12,91,8,66,166,49,98,8,65,8,166,49,203,90,236,90,138,74,
+  142,107,240,115,240,115,208,115,240,107,240,115,208,115,3,208,107,137,208,115,
+  207,115,207,115,178,156,149,181,149,189,182,189,208,91,241,91,3,241,99,158,
+  17,100,201,41,130,16,227,24,227,32,98,16,204,82,17,100,209,91,241,99,
+  17,92,168,33,162,24,4,33,228,32,228,32,41,50,228,16,4,17,73,50,
+  78,83,208,99,208,99,209,99,208,99,208,91,209,91,208,91,208,99,209,99,
+  3,208,91,132,208,99,208,91,176,91,176,91,8,208,91,4,176,91,132,208,
+  91,176,91,176,91,208,91,4,176,91,129,144,91,5,143,91,5,111,83,132,
+  110,83,111,83,110,83,110,83,12,78,83,5,46,83,129,46,75,3,46,83,
+  137,45,83,45,83,13,83,13,75,45,75,13,75,13,75,13,83,45,75,4,
+  13,75,133,204,66,204,66,237,74,13,75,13,83,6,13,75,3,237,74,129,
+  13,75,5,236,74,135,204,66,204,66,205,74,204,74,204,74,204,66,204,66,
+  3,172,66,144,140,66,171,66,139,66,171,66,171,66,139,66,139,66,106,58,
+  232,49,134,33,232,41,74,50,106,58,74,58,74,58,106,58,3,74,58,137,
+  74,66,74,58,74,58,73,50,41,58,42,58,41,58,41,50,41,50,4,9,
+  50,129,232,49,3,9,50,129,233,41,3,233,49,4,232,49,129,200,49,3,
+  200,41,132,168,41,167,41,200,41,103,33,160,4,3,45,83,7,78,83,129,
+  46,83,3,45,83,138,46,83,46,83,45,83,45,75,45,75,46,83,46,75,
+  46,75,46,83,45,75,3,46,75,130,45,75,46,83,3,46,75,3,13,75,
+  132,237,74,13,75,237,66,13,67,4,237,66,144,13,67,237,66,171,58,139,
+  58,106,58,139,58,204,66,237,66,237,74,13,75,13,75,138,58,200,49,167,
+  49,74,66,235,90,17,12,91,130,12,83,12,83,3,12,91,4,12,83,142,
+  12,91,12,91,16,75,56,67,216,42,21,18,49,1,204,0,170,41,171,82,
+  203,82,232,57,228,24,130,8,3,65,8,166,195,24,166,49,40,66,8,66,
+  134,49,36,33,228,32,227,24,228,24,36,41,132,65,164,81,131,81,66,73,
+  225,64,160,48,194,40,198,57,12,91,17,116,114,132,147,132,147,124,114,124,
+  146,124,146,124,114,124,146,124,114,124,146,124,114,124,114,124,147,124,146,124,
+  114,116,82,124,82,116,82,116,6,114,124,131,114,116,114,124,114,116,7,114,
+  124,161,49,116,48,124,114,132,146,132,146,140,81,124,49,124,49,132,49,132,
+  17,124,16,124,16,124,17,124,17,124,18,124,242,115,242,115,241,115,207,115,
+  175,115,174,115,175,115,207,123,207,115,174,115,239,115,146,140,243,148,113,140,
+  40,74,73,74,40,74,72,74,3,40,74,133,40,66,40,74,40,74,8,66,
+  40,66,5,8,66,139,231,65,8,66,231,57,231,57,199,57,231,57,231,57,
+  199,57,199,57,199,49,199,49,5,166,49,3,134,41,131,101,41,102,41,101,
+  41,3,69,33,129,70,41,8,69,33,137,37,33,37,25,36,25,37,33,228,
+  24,82,124,142,107,102,41,102,41,4,134,41,3,102,41,131,69,33,70,33,
+  70,33,3,69,33,146,37,33,5,33,70,33,37,33,5,33,37,33,4,25,
+  228,24,4,25,228,24,228,16,37,25,5,25,5,25,228,24,196,16,228,24,
+  4,25,3,228,16,134,196,24,196,24,228,16,228,24,228,16,228,16,5,196,
+  16,147,228,16,228,16,195,16,195,16,196,16,195,16,195,16,163,16,196,16,
+  196,24,228,16,228,24,196,16,196,16,196,24,196,16,196,16,196,24,228,24,
+  3,228,16,135,228,24,228,16,228,16,196,16,228,16,228,24,196,16,4,228,
+  24,132,228,16,228,24,228,16,228,16,5,228,24,131,228,16,196,16,196,16,
+  5,228,16,162,196,16,228,16,228,24,228,16,228,24,228,24,228,16,4,25,
+  163,16,33,0,163,16,200,49,200,41,134,33,70,25,135,25,200,33,70,25,
+  195,16,131,8,65,0,33,0,33,0,65,0,98,8,163,16,102,33,135,41,
+  135,33,135,33,200,49,74,58,139,58,172,66,3,204,66,175,237,66,172,66,
+  74,50,200,33,38,17,164,8,98,0,130,8,195,16,228,24,195,16,163,16,
+  131,16,163,16,130,8,163,8,195,16,228,24,4,25,37,33,37,33,5,25,
+  5,33,37,25,5,33,4,33,4,25,4,33,4,33,36,25,37,25,5,25,
+  37,17,37,25,102,25,167,25,9,34,106,50,204,66,14,75,78,83,111,83,
+  176,91,209,99,209,99,209,91,209,99,4,176,91,141,175,99,16,124,45,91,
+  106,66,138,66,106,66,41,58,73,58,42,58,41,58,9,50,41,58,233,49,
+  6,232,49,194,9,50,200,41,232,41,233,49,9,50,9,50,42,58,41,58,
+  42,58,41,58,74,66,41,58,74,58,74,66,74,58,106,66,139,66,41,58,
+  37,25,13,91,78,99,45,99,45,99,78,99,77,99,45,99,204,82,204,82,
+  13,91,46,91,78,91,78,99,110,99,110,99,175,99,143,99,175,99,143,99,
+  110,99,110,91,110,99,143,107,175,107,17,124,150,165,150,157,243,148,178,140,
+  175,107,110,99,143,107,171,74,170,82,12,91,236,90,8,66,166,57,98,8,
+  65,0,134,49,235,90,236,90,138,82,109,107,240,115,207,115,3,208,107,140,
+  175,107,175,107,208,107,207,107,207,107,240,115,239,115,178,156,149,181,149,181,
+  214,189,208,99,3,241,99,152,17,100,46,75,131,16,227,24,4,33,130,16,
+  37,41,16,108,241,91,209,91,241,99,79,83,131,16,195,24,37,41,195,24,
+  232,57,78,83,232,41,163,8,36,17,106,58,79,91,208,99,5,208,91,129,
+  208,99,4,208,91,4,176,91,131,208,91,208,91,208,99,3,208,91,144,176,
+  91,208,91,208,91,176,91,208,91,176,91,176,91,176,99,176,91,176,91,175,
+  91,176,91,176,91,175,91,143,83,143,83,4,143,91,6,111,83,131,79,83,
+  111,83,111,83,10,78,83,132,46,83,46,83,78,83,78,83,5,46,83,131,
+  45,83,45,83,13,75,3,45,83,142,45,75,13,75,13,75,13,83,45,75,
+  45,75,13,83,45,75,237,74,139,58,139,58,236,74,13,75,13,83,3,13,
+  75,4,237,74,129,13,75,3,237,74,135,205,74,237,74,236,74,236,74,204,
+  66,204,74,204,74,3,204,66,5,172,66,131,139,66,171,66,171,66,3,139,
+  66,138,107,58,74,58,200,41,135,33,9,50,106,58,107,66,107,58,74,58,
+  106,58,5,74,58,139,42,58,73,58,41,50,41,58,9,50,42,50,9,50,
+  41,50,9,50,233,49,233,49,3,9,50,6,233,49,138,232,49,200,49,200,
+  49,200,41,200,49,200,41,200,41,167,41,200,49,135,41,197,4,3,45,83,
+  134,77,83,78,83,46,83,46,83,78,83,78,83,3,45,83,151,46,83,46,
+  83,78,83,77,83,78,83,46,83,46,83,78,83,46,75,46,83,45,75,46,
+  75,46,75,45,75,45,75,13,75,13,75,46,75,46,83,46,75,13,75,237,
+  66,13,75,4,237,66,151,13,67,237,66,237,66,13,67,237,66,171,58,106,
+  50,139,50,171,58,172,66,237,66,237,74,13,75,13,75,12,75,106,58,167,
+  49,232,57,138,74,12,91,12,91,12,83,12,83,8,12,91,129,236,90,9,
+  12,91,131,12,83,12,83,13,83,3,12,83,162,18,75,56,59,184,42,244,
+  17,15,1,11,9,9,58,170,82,138,74,134,41,163,16,97,8,33,8,65,
+  8,228,24,231,57,73,66,231,57,69,41,4,33,227,24,195,24,4,33,132,
+  65,165,81,196,89,98,81,1,65,160,48,161,40,100,49,138,74,207,107,114,
+  124,3,147,124,138,146,124,114,124,114,124,146,124,146,124,114,124,146,124,114,
+  124,114,124,146,124,3,114,124,132,82,116,82,116,50,116,82,116,4,114,124,
+  131,114,116,114,116,114,124,3,114,116,3,114,124,150,114,116,114,124,114,124,
+  82,116,17,116,81,124,146,132,178,140,178,140,81,124,81,132,113,132,114,132,
+  81,132,49,132,49,132,49,124,81,124,50,124,17,124,17,124,17,116,3,240,
+  115,148,240,123,16,124,239,123,16,124,146,140,243,148,15,124,8,74,72,74,
+  40,74,72,74,72,74,41,74,72,74,40,74,40,74,40,66,40,74,8,66,
+  40,66,3,8,66,129,40,66,3,231,65,133,231,57,231,57,232,65,199,57,
+  231,57,3,199,57,129,167,49,3,166,49,130,134,41,134,49,3,134,41,132,
+  102,41,102,41,102,33,101,33,8,69,33,3,37,33,155,37,25,37,33,4,
+  25,9,50,49,116,45,99,69,41,167,49,134,41,135,41,135,41,134,41,135,
+  41,134,41,102,41,102,41,102,33,70,41,70,41,102,41,69,33,37,33,69,
+  33,37,33,5,33,37,33,37,25,3,5,25,133,4,25,4,25,228,24,4,
+  25,4,25,3,228,24,4,228,16,130,228,24,4,25,3,228,24,147,228,16,
+  228,24,228,24,196,16,196,16,195,16,228,16,196,16,228,16,196,16,195,16,
+  195,16,163,16,195,16,196,16,196,16,228,24,228,16,195,16,3,196,16,134,
+  196,24,196,16,196,24,196,24,228,24,228,24,4,196,16,135,228,16,228,16,
+  196,16,228,16,228,16,228,24,196,16,5,228,16,132,228,24,228,16,228,16,
+  228,24,8,228,16,169,196,16,228,16,196,16,228,16,228,24,228,24,5,25,
+  228,24,163,16,33,0,163,16,199,41,200,49,5,25,163,8,70,33,199,41,
+  167,41,134,41,37,25,130,8,65,0,65,0,98,8,98,8,195,16,102,33,
+  135,41,135,41,233,49,74,58,172,66,171,66,204,66,204,66,171,58,74,50,
+  200,33,37,9,163,0,33,0,3,0,0,144,98,8,37,25,102,33,70,25,
+  5,25,228,24,4,25,37,33,69,33,102,33,134,41,135,41,102,41,37,33,
+  4,25,228,24,6,228,16,153,4,17,37,25,102,33,135,41,134,41,102,41,
+  70,33,69,33,37,25,37,25,70,25,167,33,9,42,106,50,107,50,139,58,
+  205,66,46,75,111,83,176,91,176,99,208,99,175,99,143,107,236,82,3,106,
+  66,130,73,66,73,58,3,41,58,202,9,50,232,49,9,58,233,49,200,49,
+  9,50,232,41,232,49,232,49,200,49,232,49,9,50,9,58,232,49,41,58,
+  74,58,41,58,73,58,74,58,74,58,42,58,74,58,107,66,139,74,139,66,
+  74,58,37,25,236,82,110,99,13,91,77,99,77,99,45,99,45,99,236,90,
+  236,82,45,91,45,91,77,91,78,91,110,99,143,99,143,107,175,99,143,99,
+  111,99,110,99,110,99,142,99,175,107,176,107,49,124,150,165,182,165,20,149,
+  178,140,143,107,110,99,143,107,171,82,138,74,12,91,45,99,8,58,198,57,
+  130,16,65,8,101,41,203,90,235,90,138,82,77,107,207,115,207,107,3,175,
+  107,129,207,107,3,175,107,168,207,115,16,116,16,124,145,148,149,181,117,181,
+  182,189,240,107,209,99,209,91,241,99,241,99,38,25,162,24,4,33,195,24,
+  98,16,45,83,17,100,241,99,241,99,241,91,232,49,163,24,4,33,4,33,
+  195,24,77,91,176,91,237,74,167,33,162,0,37,25,139,66,111,91,208,99,
+  208,91,176,91,208,99,176,91,6,208,91,3,176,91,130,208,91,176,91,4,
+  208,91,11,176,91,136,175,91,176,83,143,83,143,91,143,91,144,91,143,91,
+  143,83,8,111,83,132,110,83,110,83,78,83,110,83,10,78,83,130,46,83,
+  45,83,4,46,83,138,13,75,45,75,13,75,46,75,46,83,46,75,45,75,
+  45,75,13,75,13,75,3,45,75,134,13,75,13,75,237,74,139,58,139,58,
+  204,74,4,13,75,138,13,83,237,74,13,75,237,74,13,75,236,74,13,75,
+  237,74,236,74,237,74,3,236,74,143,204,74,204,66,204,74,204,74,204,66,
+  204,74,172,66,204,66,171,66,171,66,172,66,171,66,171,66,139,66,171,66,
+  3,139,66,136,106,66,9,50,167,41,167,41,41,50,75,66,107,58,106,58,
+  7,74,58,132,41,50,74,50,9,58,41,50,5,9,50,148,233,49,9,50,
+  9,50,232,49,9,50,200,49,233,49,233,49,232,41,232,49,201,49,200,49,
+  200,49,200,41,232,49,200,41,200,49,200,41,200,49,167,41,145,4,3,45,
+  83,131,77,83,78,83,78,83,3,45,83,131,78,83,77,83,45,83,3,46,
+  83,135,45,83,46,83,78,83,46,83,46,83,46,75,46,75,3,45,75,4,
+  13,75,138,45,75,46,75,14,75,13,75,237,66,237,66,205,66,237,66,237,
+  66,13,67,4,237,66,146,204,66,139,58,106,50,139,58,172,66,204,66,237,
+  66,237,66,13,75,13,75,204,66,41,58,199,49,8,58,171,74,12,91,12,
+  91,236,82,3,12,91,129,12,83,3,12,91,129,236,90,6,12,91,129,12,
+  83,5,12,91,169,12,83,13,83,12,83,12,91,19,75,57,59,151,42,211,
+  17,206,0,108,25,107,66,170,74,232,57,37,33,130,16,65,8,33,8,163,
+  16,231,57,73,66,167,49,69,41,228,32,195,24,227,24,69,49,198,81,197,
+  89,131,81,2,65,225,56,160,48,194,40,8,66,110,99,49,124,147,132,147,
+  124,146,124,146,124,114,124,4,146,124,142,114,124,114,124,146,124,114,124,146,
+  124,146,124,114,124,146,124,146,124,114,124,82,116,50,116,49,116,82,116,3,
+  114,124,131,114,116,114,116,82,116,7,114,124,161,114,116,114,124,146,124,240,
+  107,143,107,114,132,114,132,146,140,179,140,178,140,113,132,146,132,146,132,146,
+  140,114,132,114,132,146,132,114,132,114,132,82,132,50,124,50,124,17,124,17,
+  116,16,124,240,123,16,124,240,123,81,132,114,132,20,157,142,115,7,66,3,
+  72,74,130,40,74,73,74,4,40,74,129,40,66,6,8,66,136,40,66,8,
+  66,231,65,8,66,199,57,199,57,231,57,231,57,3,199,57,4,166,49,3,
+  134,41,135,102,41,102,41,101,41,102,41,101,33,69,41,70,33,8,69,33,
+  138,69,25,69,33,37,33,37,33,228,24,110,91,49,116,236,90,135,49,135,
+  49,3,167,49,140,102,41,134,41,134,41,102,33,102,41,102,33,102,41,102,
+  41,37,33,70,41,69,33,69,33,3,37,33,134,37,25,37,33,5,25,4,
+  25,5,25,228,24,4,4,25,130,228,24,4,25,4,228,24,133,228,16,228,
+  24,228,24,196,24,228,16,3,228,24,130,196,16,195,16,5,196,16,152,195,
+  16,195,16,196,16,196,16,195,16,196,16,228,24,228,16,196,16,228,24,196,
+  24,196,16,228,24,228,16,196,24,196,16,228,16,228,24,228,16,196,16,196,
+  16,228,24,228,16,196,16,5,228,16,133,228,24,228,16,196,16,228,16,196,
+  16,16,228,16,162,228,24,228,24,4,25,4,25,131,16,33,0,195,16,232,
+  49,41,58,135,41,4,25,167,41,232,49,200,41,200,49,200,49,37,33,130,
+  8,130,8,162,16,163,16,5,25,102,33,200,49,9,58,9,50,42,50,9,
+  42,200,33,232,33,168,33,102,25,196,8,65,0,6,0,0,135,33,0,131,
+  8,37,25,103,33,135,41,135,41,167,41,3,200,41,173,200,49,167,41,37,
+  25,227,8,4,17,37,25,70,17,135,25,135,25,103,17,70,25,69,17,37,
+  17,4,9,37,17,167,33,200,41,232,49,200,41,199,41,199,49,167,41,135,
+  41,167,41,102,33,228,16,98,0,33,0,65,0,163,0,37,9,168,25,74,
+  42,204,66,143,99,45,91,204,82,106,66,106,66,41,58,74,66,74,58,41,
+  58,41,58,41,50,3,9,50,171,233,49,232,49,233,49,200,41,232,49,200,
+  41,200,49,9,50,232,49,41,58,9,50,9,50,41,58,73,58,73,58,74,
+  58,41,58,42,58,74,66,106,66,139,66,106,66,41,58,37,25,204,82,78,
+  99,45,99,77,99,78,99,13,91,12,91,12,91,13,91,45,91,45,91,78,
+  99,110,99,143,99,143,99,175,99,176,107,143,99,111,99,3,110,99,155,143,
+  107,175,107,49,124,118,157,182,165,53,157,211,140,143,107,110,99,143,107,203,
+  82,138,74,45,99,12,91,41,66,166,57,162,16,33,8,101,41,203,90,236,
+  90,138,82,44,99,207,115,142,107,143,107,142,107,4,175,107,147,208,115,240,
+  115,240,115,207,115,113,148,149,181,117,181,214,197,17,108,209,99,241,99,17,
+  100,107,58,130,16,228,32,4,33,130,16,134,49,17,108,3,241,99,148,111,
+  83,164,16,228,32,4,33,163,24,134,41,240,91,209,99,144,91,204,66,102,
+  25,130,8,102,25,172,66,143,91,209,99,176,91,208,91,208,91,176,91,4,
+  208,91,4,176,91,3,208,91,134,176,91,176,91,208,91,176,91,176,91,176,
+  99,11,176,91,129,144,91,5,143,91,133,143,83,143,83,111,83,143,83,110,
+  83,3,111,83,132,110,83,78,83,78,83,111,83,8,78,83,7,46,83,141,
+  45,83,13,83,46,75,45,83,14,83,13,75,45,83,13,83,45,83,13,83,
+  13,83,45,83,13,75,3,13,83,132,205,66,204,66,237,74,13,83,7,13,
+  75,134,237,74,13,75,237,74,236,74,236,74,237,74,3,236,74,129,205,74,
+  4,204,74,131,204,66,204,74,172,74,6,171,66,4,139,66,138,107,66,107,
+  66,8,50,134,33,232,41,74,58,106,66,74,58,74,58,106,58,4,74,58,
+  135,41,50,74,58,41,50,42,58,41,50,41,58,42,58,7,9,50,129,232,
+  49,4,233,49,133,232,49,232,49,200,49,201,49,201,49,3,200,49,131,168,
+  41,200,49,168,41,167,4,130,45,75,45,83,3,78,83,4,45,83,133,46,
+  83,46,83,45,83,46,83,45,83,3,46,83,132,46,75,45,75,46,83,46,
+  75,5,13,75,139,13,67,14,75,14,67,13,75,46,75,46,75,13,75,237,
+  66,204,66,204,66,205,66,4,237,66,145,205,66,172,58,139,58,106,58,106,
+  58,171,58,204,66,236,66,237,66,13,75,237,74,13,75,172,66,41,50,200,
+  49,73,66,203,82,10,12,91,136,236,90,236,82,12,91,12,83,12,91,12,
+  83,12,91,12,91,4,12,83,164,12,91,12,91,12,83,12,83,20,67,57,
+  59,151,42,179,17,205,0,203,33,204,82,170,74,134,41,195,24,130,16,65,
+  8,65,8,4,25,40,66,199,57,36,33,227,24,227,24,227,32,100,57,165,
+  73,132,81,34,73,224,56,192,48,193,48,162,40,4,33,172,82,17,116,147,
+  132,3,146,124,3,114,124,154,146,124,146,124,114,124,146,124,114,124,114,124,
+  114,116,146,124,114,124,146,124,114,124,146,124,146,124,82,116,49,116,17,108,
+  17,108,82,116,114,124,114,124,114,116,114,116,114,124,114,124,114,116,114,124,
+  3,114,116,4,114,124,134,82,124,113,132,49,124,113,132,146,132,146,132,6,
+  211,140,4,179,140,143,179,132,147,132,114,132,114,124,82,124,82,124,49,124,
+  81,124,114,124,146,132,114,132,146,140,84,157,44,107,8,74,4,72,74,135,
+  40,74,73,74,40,66,40,74,40,66,40,74,40,66,5,8,66,132,7,66,
+  7,66,8,66,8,66,4,231,57,136,199,57,231,57,167,49,199,57,167,49,
+  167,49,166,49,134,49,3,134,41,134,102,41,102,41,101,41,102,41,102,41,
+  69,41,8,69,33,4,37,33,147,4,25,175,99,49,124,106,74,135,41,134,
+  41,167,49,70,33,102,41,135,41,134,41,69,33,102,41,70,41,102,33,70,
+  33,70,41,70,33,70,33,3,69,33,131,37,25,70,33,37,33,3,5,25,
+  141,37,25,5,33,4,25,5,25,228,16,5,25,4,25,4,25,228,24,5,
+  25,4,25,228,24,228,16,3,228,24,135,228,16,228,16,196,16,228,24,196,
+  24,196,16,196,24,3,228,16,138,196,16,195,16,195,16,196,16,196,16,228,
+  16,228,24,228,24,228,16,196,16,5,228,16,129,196,16,6,228,16,131,228,
+  24,196,16,196,16,3,228,16,129,228,24,5,228,16,129,196,16,4,228,16,
+  133,196,16,228,16,228,16,228,24,228,24,3,228,16,130,228,24,228,16,3,
+  228,24,140,228,16,4,25,228,24,131,16,33,0,228,16,167,41,9,50,232,
+  49,135,41,9,58,41,58,3,232,49,137,200,49,134,41,102,41,102,33,135,
+  41,135,41,167,41,200,49,200,41,3,70,25,133,37,17,5,17,37,25,196,
+  16,65,0,8,0,0,163,1,0,65,0,195,16,69,25,168,41,233,49,200,
+  41,167,41,232,49,232,41,200,41,200,25,74,34,172,42,237,58,238,58,238,
+  58,173,50,205,58,205,58,237,58,205,58,139,42,42,34,233,33,233,49,232,
+  49,200,49,200,41,232,49,232,49,135,33,37,33,163,8,33,0,7,0,0,
+  133,34,0,78,99,78,99,204,90,106,74,3,74,66,129,74,58,3,41,58,
+  247,9,50,9,50,232,49,9,50,232,49,9,50,200,49,200,49,232,49,232,
+  49,233,49,9,50,9,50,9,58,41,58,41,58,106,66,73,58,74,58,42,
+  58,41,58,74,58,107,66,139,66,139,66,42,58,37,25,139,74,78,99,45,
+  99,77,99,77,99,237,90,204,90,45,99,45,99,13,91,46,91,110,99,142,
+  99,142,99,175,107,175,107,143,99,175,99,175,99,110,99,110,99,111,99,143,
+  107,175,107,49,124,118,165,182,165,52,157,211,140,175,107,142,99,143,99,203,
+  82,138,74,45,99,12,91,41,66,166,57,162,24,33,8,69,41,203,90,235,
+  90,138,82,12,99,142,107,110,107,142,107,143,107,174,107,175,107,176,107,240,
+  115,208,107,175,107,175,107,175,115,80,140,117,181,117,181,214,189,49,116,209,
+  99,241,99,79,75,164,16,195,24,228,32,163,24,163,24,143,91,241,99,209,
+  99,209,99,241,99,233,41,163,24,4,33,4,33,130,16,236,74,241,91,208,
+  91,208,99,111,91,139,58,4,17,130,8,135,33,204,74,176,91,208,99,7,
+  208,91,131,176,91,176,83,176,91,3,208,91,131,176,91,208,91,176,91,3,
+  208,91,129,176,99,8,176,91,138,175,91,175,91,176,91,175,91,175,91,143,
+  91,143,91,143,83,143,91,143,83,7,111,83,135,79,83,110,83,78,83,111,
+  83,79,83,78,83,110,83,5,78,83,5,46,83,130,45,83,46,83,3,45,
+  83,132,46,83,45,75,45,83,13,83,4,13,75,129,13,83,4,13,75,141,
+  237,74,237,74,13,75,13,83,13,75,13,83,13,75,13,75,237,74,13,75,
+  237,74,13,75,237,74,3,236,74,129,237,74,3,236,74,132,204,74,204,74,
+  204,66,204,66,4,172,66,131,171,66,172,74,172,66,3,171,66,140,139,66,
+  139,58,139,66,107,58,139,66,139,66,74,58,200,41,167,41,9,50,106,58,
+  106,58,5,74,58,137,74,50,74,58,74,58,41,50,42,50,9,50,41,50,
+  9,50,9,58,4,9,50,130,233,49,9,50,6,233,49,138,232,49,232,49,
+  200,41,200,41,200,49,200,41,200,49,200,41,200,41,200,49,126,4,137,45,
+  83,45,83,78,83,78,83,46,83,45,83,45,83,45,75,46,83,3,45,83,
+  4,46,83,134,78,83,46,75,46,83,46,75,46,83,14,75,4,13,75,3,
+  13,67,146,13,75,13,75,46,75,13,67,204,66,204,66,172,66,204,66,205,
+  66,205,66,237,66,204,66,172,58,139,58,73,50,74,50,139,58,172,58,4,
+  237,66,141,13,75,237,74,171,66,41,58,9,58,106,74,235,82,12,91,236,
+  82,12,91,236,90,12,83,12,83,5,12,91,129,236,90,9,12,91,164,236,
+  82,12,91,12,91,236,82,21,67,57,59,150,42,146,17,205,0,11,50,44,
+  91,138,74,69,33,195,24,130,16,65,8,65,8,4,25,134,49,37,33,227,
+  32,227,24,227,32,3,49,67,65,35,73,225,56,160,48,162,40,68,49,68,
+  41,195,24,163,24,228,24,204,66,208,107,6,114,124,129,146,124,3,114,124,
+  149,146,124,114,124,114,124,115,124,114,124,114,124,146,124,114,124,146,124,114,
+  124,81,116,49,116,241,107,49,108,82,116,114,116,114,124,114,124,114,116,82,
+  116,82,116,8,114,124,140,82,124,81,124,146,140,114,140,81,132,146,132,179,
+  140,243,148,243,148,211,140,179,140,179,140,5,211,140,143,211,132,179,140,179,
+  132,146,132,114,132,82,124,81,116,114,124,146,132,179,140,114,132,178,140,52,
+  157,170,90,40,74,3,72,74,3,40,74,132,40,66,8,66,40,66,40,66,
+  5,8,66,132,40,66,7,66,231,65,232,65,4,231,57,4,199,57,132,199,
+  49,167,49,166,49,166,49,3,134,49,134,134,41,134,41,102,41,102,41,69,
+  33,69,41,7,69,33,156,37,33,69,33,37,25,69,25,37,25,37,33,4,
+  25,110,91,175,99,167,49,167,49,135,41,167,49,134,41,134,41,167,41,134,
+  41,70,33,102,41,134,41,134,41,70,33,102,41,70,33,69,33,37,33,69,
+  33,69,33,6,37,33,145,5,25,37,25,37,25,5,25,4,25,5,25,37,
+  25,37,25,4,25,229,24,4,25,5,25,228,24,4,25,228,16,228,16,228,
+  24,10,228,16,130,196,16,228,16,3,196,16,145,228,24,196,16,196,24,196,
+  16,228,16,196,16,196,16,228,16,196,16,196,16,228,16,228,24,228,16,228,
+  16,228,24,228,16,196,16,3,228,24,136,196,16,228,16,228,16,196,16,228,
+  16,196,16,228,16,196,16,4,228,16,129,196,16,3,228,16,6,228,24,129,
+  228,16,5,228,24,159,196,16,130,8,33,0,195,16,102,33,135,33,167,41,
+  102,33,232,49,73,58,9,50,8,50,8,50,9,50,41,50,200,41,102,33,
+  103,33,135,33,70,33,4,25,196,16,195,16,195,16,228,16,4,25,37,25,
+  37,33,196,16,65,8,1,0,4,0,0,129,32,0,3,0,0,152,1,0,
+  0,0,98,0,228,16,103,33,135,33,167,41,200,41,232,41,233,49,139,50,
+  14,67,79,59,79,59,47,59,238,50,173,42,205,42,47,59,79,67,80,67,
+  111,67,238,58,75,50,3,232,49,134,200,41,167,41,102,33,196,8,65,0,
+  1,0,3,0,0,129,32,0,5,0,0,133,45,99,175,107,203,82,106,66,
+  106,66,3,74,58,3,41,58,131,9,50,9,58,200,41,3,232,49,130,233,
+  49,232,41,3,232,49,161,9,50,9,58,9,50,41,58,41,58,74,66,74,
+  58,74,58,41,58,42,58,74,66,107,66,139,66,139,66,106,66,135,41,41,
+  66,236,90,45,99,77,99,78,107,237,90,171,82,45,99,45,99,45,91,46,
+  91,110,99,110,99,142,99,143,99,143,107,142,99,4,143,99,161,143,107,175,
+  107,175,107,49,132,85,165,117,165,243,156,146,140,142,107,143,99,175,99,203,
+  82,105,74,45,99,45,91,41,66,198,57,195,24,33,8,36,33,203,90,236,
+  90,138,82,203,90,142,107,142,107,110,107,110,107,142,107,208,107,208,107,143,
+  99,110,99,3,110,107,162,16,140,117,181,117,181,214,197,49,116,240,99,241,
+  91,6,33,163,24,4,33,195,24,65,8,106,74,17,100,209,99,208,91,241,
+  99,111,75,196,24,228,32,4,33,195,24,69,41,207,99,240,99,208,91,209,
+  91,208,99,46,83,74,50,196,8,163,8,232,41,13,75,5,176,91,133,208,
+  91,208,91,176,91,176,91,176,83,5,176,91,131,208,91,176,91,208,91,14,
+  176,91,5,143,91,129,143,83,3,111,91,5,111,83,132,110,83,78,83,110,
+  83,110,83,7,78,83,13,46,83,143,14,83,46,83,13,75,45,83,13,75,
+  13,83,13,83,13,75,13,75,45,75,13,75,13,83,237,74,13,83,13,83,
+  4,13,75,5,237,74,137,236,74,237,74,237,74,236,74,205,74,237,74,236,
+  74,204,66,204,74,3,204,66,133,172,66,171,66,172,66,171,66,172,66,3,
+  171,66,140,139,66,139,66,139,58,139,66,138,66,139,66,139,66,107,58,41,
+  58,168,41,168,41,41,50,4,74,58,142,42,58,42,58,74,58,41,58,74,
+  58,41,58,41,50,41,50,41,58,41,50,10,58,233,57,9,50,41,50,3,
+  9,50,130,233,49,232,49,3,233,49,4,232,49,129,200,49,3,200,41,131,
+  168,41,200,41,200,41,152,4,5,45,83,129,45,75,4,13,75,131,45,75,
+  45,83,45,83,5,46,83,129,46,75,7,13,75,149,237,66,13,67,13,67,
+  14,75,13,75,13,75,237,66,237,66,172,58,139,58,172,58,205,66,205,66,
+  204,66,172,66,139,58,74,50,42,50,139,58,171,58,205,66,3,237,66,142,
+  237,74,13,75,237,74,171,58,41,58,41,58,139,74,236,82,12,91,236,82,
+  236,82,12,91,12,91,12,83,3,12,91,130,12,83,236,90,9,12,91,3,
+  12,83,164,236,82,21,67,57,59,182,42,178,9,204,0,76,58,44,91,106,
+  66,5,25,195,16,98,16,65,8,65,8,195,24,36,33,228,32,227,24,227,
+  32,227,40,2,57,226,56,161,48,161,32,36,49,105,74,110,99,110,99,105,
+  66,227,24,162,24,163,24,41,50,143,99,82,124,146,124,5,114,124,129,146,
+  124,4,114,124,129,146,124,5,114,124,159,146,124,114,124,49,116,17,108,240,
+  107,49,116,82,116,114,124,114,124,114,116,114,124,82,116,114,116,114,116,114,
+  124,114,124,82,116,114,124,82,116,114,116,114,124,81,116,81,124,145,132,146,
+  140,113,132,81,124,179,140,243,140,243,148,179,140,4,211,140,146,178,132,179,
+  140,179,140,212,140,211,140,211,140,179,132,178,132,146,124,114,124,114,124,178,
+  132,178,140,178,140,211,140,20,157,105,82,40,74,4,72,74,131,40,66,40,
+  66,40,74,8,8,66,136,231,57,8,66,231,57,231,57,232,65,231,57,199,
+  57,231,57,3,199,57,130,167,49,167,49,3,166,49,129,134,49,3,134,41,
+  4,102,41,129,101,41,7,69,33,148,37,33,69,33,69,33,37,25,37,33,
+  37,33,4,25,45,91,139,66,200,49,102,41,134,41,134,41,135,49,134,41,
+  134,41,135,41,135,41,101,41,135,41,3,102,41,131,70,33,37,33,70,33,
+  3,69,33,132,69,25,70,33,69,33,37,33,3,5,25,129,37,25,3,5,
+  25,130,4,25,4,25,3,5,25,135,228,24,228,24,5,17,228,16,228,16,
+  228,24,228,24,3,228,16,136,228,24,228,16,228,16,228,24,228,16,195,16,
+  196,16,196,24,3,196,16,139,228,16,228,16,228,24,196,16,228,16,228,16,
+  228,24,196,16,228,24,228,16,228,24,4,228,16,145,228,24,196,16,228,24,
+  228,16,196,24,228,24,228,16,196,16,228,16,228,24,228,16,196,16,196,16,
+  228,24,228,16,228,16,228,24,4,228,16,129,196,16,4,228,16,140,228,24,
+  228,16,228,24,228,16,228,24,228,24,196,16,196,16,130,8,65,0,163,16,
+  4,25,3,37,25,156,102,33,9,50,73,58,41,58,9,50,233,49,232,41,
+  70,25,196,16,164,16,196,16,163,16,163,8,163,8,195,16,228,24,228,24,
+  5,25,37,25,37,25,228,24,130,16,65,8,33,0,32,0,0,0,33,8,
+  32,0,6,0,0,140,32,0,98,0,163,8,4,17,37,25,70,33,135,33,
+  200,41,9,42,107,42,140,42,172,50,3,140,50,141,173,50,172,42,140,42,
+  75,42,9,42,199,41,102,33,70,33,37,25,4,17,163,8,65,0,1,0,
+  6,0,0,129,0,8,3,0,0,134,33,0,236,90,175,107,236,82,106,66,
+  139,74,3,74,66,204,74,58,9,58,41,50,233,49,9,50,232,41,9,50,
+  232,49,9,50,232,41,232,41,232,49,232,49,233,49,232,49,41,58,9,58,
+  41,58,9,58,41,58,74,58,74,58,42,58,74,58,74,58,107,66,106,66,
+  106,66,139,74,9,58,74,74,171,82,13,91,77,99,78,107,204,82,139,74,
+  45,99,45,99,45,91,45,91,78,99,110,99,110,99,175,107,143,107,111,99,
+  110,99,111,99,142,99,110,99,110,99,143,99,208,115,81,132,85,173,85,165,
+  243,156,113,132,110,99,142,99,143,107,236,90,138,74,12,91,77,99,41,66,
+  199,57,195,24,33,8,4,33,203,90,235,90,170,82,170,82,142,115,3,110,
+  107,131,175,107,143,107,110,99,3,77,99,165,78,99,175,115,48,140,117,181,
+  149,181,214,197,114,124,241,99,233,41,163,24,36,33,228,32,98,16,102,41,
+  240,99,209,91,209,99,208,91,17,100,233,41,163,24,4,33,228,32,130,16,
+  171,74,241,99,208,91,209,91,209,99,176,99,176,91,237,74,200,41,162,8,
+  228,8,41,50,78,83,16,176,91,129,144,91,13,176,91,135,143,91,144,91,
+  143,91,143,91,143,83,143,83,143,91,3,111,83,134,111,91,110,83,111,83,
+  79,83,78,83,110,83,10,78,83,131,46,83,46,83,78,83,3,46,83,152,
+  45,75,46,83,45,75,46,75,46,83,45,83,13,75,13,75,13,83,45,83,
+  13,75,13,75,45,83,13,75,13,75,45,83,13,75,13,75,13,83,237,74,
+  237,74,13,75,13,75,13,83,5,13,75,4,237,74,139,236,74,236,74,237,
+  74,236,74,204,74,204,74,204,66,204,74,204,66,171,66,171,58,3,171,66,
+  144,139,66,172,66,139,66,171,66,171,66,139,66,139,66,139,58,138,58,139,
+  66,107,66,106,58,106,58,9,50,135,33,232,41,8,74,58,137,41,58,42,
+  58,42,58,41,58,41,58,9,50,9,50,9,58,9,58,4,9,50,6,233,
+  49,138,200,49,200,41,200,49,200,49,200,41,200,49,200,41,200,41,168,41,
+  200,41,91,4,137,45,83,45,83,77,83,45,83,46,83,45,75,13,75,13,
+  75,13,83,5,45,83,133,78,83,46,83,77,83,46,83,45,75,8,13,75,
+  147,13,67,237,74,237,66,237,66,237,74,237,66,237,66,172,58,139,58,172,
+  58,172,58,172,66,172,58,139,50,74,50,41,50,74,58,171,58,204,66,7,
+  237,66,138,171,66,74,58,74,58,171,74,236,90,235,90,12,91,12,91,236,
+  82,12,83,4,12,91,137,236,90,12,83,12,91,236,90,12,91,12,91,236,
+  82,12,91,12,83,3,12,91,166,12,83,236,82,21,67,57,59,182,50,145,
+  9,236,0,107,66,44,91,40,58,4,25,195,16,98,8,65,8,65,8,195,
+  24,228,32,228,32,227,24,227,32,226,40,161,40,161,40,3,41,40,66,77,
+  99,17,116,82,116,114,124,240,107,236,82,69,25,162,16,162,24,134,33,45,
+  75,17,116,146,124,3,114,124,132,146,124,114,124,146,124,146,124,4,114,124,
+  129,114,116,5,114,124,141,82,116,17,108,240,107,17,108,49,116,82,116,114,
+  124,114,124,114,116,114,124,82,116,82,116,114,116,3,114,124,142,114,116,114,
+  124,114,116,114,124,49,116,81,124,113,132,178,140,114,132,114,132,146,132,179,
+  132,243,140,211,148,6,211,140,131,179,132,179,132,178,132,3,179,132,139,147,
+  132,114,124,146,132,179,140,178,140,146,132,211,148,211,148,40,74,40,74,72,
+  74,3,40,74,129,40,66,12,8,66,5,231,57,3,199,57,137,167,49,199,
+  57,199,49,167,49,166,49,166,49,134,49,134,49,166,49,3,134,41,134,102,
+  41,101,41,101,33,102,33,69,33,70,41,4,69,33,146,37,33,69,33,37,
+  33,69,33,37,33,37,33,228,24,45,91,42,66,232,49,134,41,134,41,167,
+  49,135,49,135,49,135,41,135,49,135,41,6,102,41,132,70,33,69,33,102,
+  33,69,33,3,70,33,132,37,33,37,25,37,33,37,33,5,37,25,4,4,
+  25,133,5,25,4,25,4,25,228,24,5,25,3,228,24,130,228,16,196,16,
+  5,228,24,136,196,16,195,16,195,16,196,16,196,16,228,16,196,16,228,24,
+  4,228,16,130,228,24,228,16,5,228,24,135,228,16,228,16,228,24,228,24,
+  228,16,228,16,228,24,3,228,16,131,196,16,228,16,228,24,4,228,16,131,
+  196,16,228,16,228,24,4,228,16,130,196,16,196,16,4,228,16,129,196,16,
+  3,228,24,3,196,16,131,98,8,65,0,163,16,4,228,24,145,37,25,135,
+  33,73,50,74,58,74,58,9,50,8,50,200,49,69,25,196,16,131,8,130,
+  8,131,8,163,8,163,16,195,16,4,25,3,37,25,133,4,25,195,16,130,
+  16,97,8,65,8,3,32,0,4,0,0,129,32,0,4,0,0,149,33,0,
+  65,0,98,0,131,0,163,8,195,8,196,8,229,8,5,17,5,17,37,17,
+  37,17,38,17,5,9,228,8,196,8,195,8,162,8,130,8,66,8,33,0,
+  15,0,0,133,12,91,45,91,236,82,106,66,106,66,3,41,58,133,9,58,
+  9,58,232,49,200,49,232,49,4,200,49,144,232,49,232,49,200,49,200,49,
+  232,49,9,66,41,66,41,66,74,66,74,66,74,74,106,74,139,74,106,74,
+  107,74,139,74,3,204,82,145,236,90,236,90,45,99,77,99,110,107,175,115,
+  207,115,143,107,110,107,207,123,207,123,240,123,16,124,16,124,49,132,49,132,
+  81,132,5,114,132,190,146,140,114,140,114,140,146,140,211,148,85,165,84,165,
+  211,148,16,116,45,91,143,99,143,99,236,90,105,74,77,99,45,99,73,66,
+  166,57,227,24,33,8,228,32,203,90,236,90,171,82,170,82,110,115,77,107,
+  109,107,142,107,110,107,45,99,44,91,45,99,45,99,109,99,142,107,77,99,
+  239,131,117,181,149,181,182,189,179,132,172,66,130,16,227,24,4,33,130,16,
+  130,24,110,91,241,99,208,91,208,91,241,99,79,83,132,16,228,24,36,33,
+  195,24,69,41,208,99,209,99,209,99,3,208,91,136,208,99,144,91,204,66,
+  70,25,130,0,5,17,74,58,79,83,27,176,91,133,144,91,144,83,176,83,
+  144,83,143,83,4,143,91,138,111,91,111,83,111,83,110,83,111,91,111,91,
+  79,83,111,83,110,83,79,83,11,78,83,129,46,75,4,46,83,3,46,75,
+  139,46,83,45,75,45,75,46,75,45,75,13,83,13,75,46,83,13,83,13,
+  75,45,75,4,13,75,137,237,74,237,74,13,75,13,75,13,83,13,75,13,
+  75,236,74,13,75,6,237,74,130,236,74,236,74,3,204,74,132,204,66,204,
+  74,204,74,204,66,3,172,66,3,171,66,131,172,66,171,66,171,66,4,139,
+  66,147,106,58,107,66,107,66,139,66,74,58,168,41,167,33,9,50,74,58,
+  74,58,42,50,74,58,41,58,42,58,74,58,41,50,74,58,41,50,41,50,
+  5,9,58,3,9,50,139,233,49,233,49,9,50,232,49,9,50,233,49,232,
+  49,232,49,200,41,200,49,200,49,4,200,41,130,168,41,168,49,122,4,5,
+  45,83,146,45,75,45,83,45,75,13,75,13,75,45,75,45,83,45,83,78,
+  83,45,83,77,83,77,83,78,83,45,75,13,75,13,75,13,67,237,74,3,
+  237,66,130,13,67,13,67,5,237,66,141,236,66,204,66,172,58,139,58,171,
+  58,172,58,139,50,106,50,41,50,74,58,139,58,172,58,236,66,4,237,66,
+  155,13,67,13,67,237,66,139,58,74,58,139,66,204,82,12,91,236,90,12,
+  91,236,82,236,82,236,90,236,90,236,82,12,91,236,82,12,91,12,83,12,
+  91,236,82,12,91,12,83,12,91,236,82,12,91,236,90,3,12,91,164,244,
+  66,57,59,214,66,145,17,236,0,108,74,12,91,199,49,228,24,195,16,98,
+  16,65,8,65,8,163,24,195,24,228,32,227,24,162,24,129,32,195,40,199,
+  57,236,90,240,115,82,124,114,124,82,116,82,116,49,116,49,116,77,91,232,
+  49,162,16,162,24,228,24,172,66,208,107,5,114,124,134,146,124,114,124,114,
+  124,146,124,114,124,146,124,7,114,124,141,49,116,17,108,240,107,17,108,50,
+  116,114,116,114,124,114,116,82,124,82,124,114,116,114,116,82,124,4,114,124,
+  144,114,116,114,124,114,124,16,116,81,124,113,132,146,140,178,140,114,132,146,
+  132,179,132,211,140,243,148,243,140,211,140,243,140,9,211,140,139,179,132,146,
+  132,146,132,179,132,146,140,113,132,243,148,113,140,40,74,40,74,72,74,4,
+  40,74,6,8,66,129,40,66,5,8,66,132,232,57,232,57,231,57,231,57,
+  6,199,57,134,167,49,167,49,166,49,166,49,134,49,166,49,3,134,41,135,
+  101,41,101,41,102,41,101,41,102,33,69,33,70,33,3,69,33,130,37,33,
+  69,33,5,37,33,167,228,24,208,107,45,91,199,49,134,41,167,41,135,41,
+  167,41,135,41,134,41,135,41,134,41,134,41,102,41,102,41,134,41,102,41,
+  102,41,102,33,102,41,70,33,69,33,70,41,70,41,37,33,37,33,37,25,
+  37,33,5,25,37,33,37,25,4,25,37,33,5,25,4,25,37,33,37,33,
+  5,25,4,25,4,5,25,4,228,24,131,228,16,228,24,228,16,3,228,24,
+  4,196,16,135,228,16,196,16,228,16,196,16,4,17,228,24,4,25,4,228,
+  16,3,228,24,129,228,16,3,228,24,136,228,16,228,16,228,24,228,24,228,
+  16,228,24,228,24,4,25,5,228,16,139,228,24,228,24,228,16,228,16,228,
+  24,228,16,228,16,196,16,196,16,228,16,228,24,4,228,16,131,228,24,228,
+  16,228,16,3,196,16,131,98,8,33,0,163,8,4,228,24,154,228,16,69,
+  25,232,41,42,58,73,58,9,50,41,50,9,50,232,41,134,33,4,25,163,
+  16,130,8,98,8,98,8,131,8,163,8,228,16,228,24,5,25,4,25,196,
+  16,163,16,98,8,65,8,33,0,27,0,0,129,0,8,3,1,8,169,33,
+  8,66,16,66,16,98,16,98,16,131,24,131,24,163,32,195,32,196,32,228,
+  32,4,41,37,41,37,41,69,49,102,49,110,107,207,123,175,115,77,99,77,
+  107,109,107,110,107,110,107,142,107,142,107,142,115,175,115,175,115,207,115,207,
+  115,240,123,16,124,16,124,48,132,49,132,81,132,113,140,113,140,146,140,178,
+  148,3,211,148,129,243,156,3,20,157,130,52,157,52,157,5,85,165,142,118,
+  173,117,173,117,165,117,173,149,173,150,173,150,173,150,165,150,173,150,173,150,
+  165,150,173,150,173,118,173,3,150,173,133,182,173,182,173,150,173,117,173,84,
+  157,3,20,157,147,211,148,113,132,45,99,12,91,143,99,143,99,236,82,105,
+  74,77,107,77,99,73,66,166,57,227,32,33,8,195,24,171,82,236,90,171,
+  82,138,82,3,77,107,161,12,91,12,91,236,90,236,90,12,91,77,99,77,
+  99,45,99,45,99,207,131,117,181,117,181,215,189,208,107,163,16,195,24,4,
+  33,163,24,65,16,138,74,241,99,208,91,209,91,208,91,241,99,168,41,131,
+  16,4,33,4,33,163,24,235,82,240,99,208,91,3,176,91,138,208,91,176,
+  91,208,99,78,83,107,58,228,16,130,8,69,25,171,66,143,91,12,176,91,
+  132,175,91,176,91,176,91,143,83,4,176,91,132,143,91,175,91,176,91,175,
+  91,3,176,91,130,144,91,175,91,4,143,91,10,111,83,131,110,83,78,83,
+  110,83,3,78,83,131,78,91,78,83,46,83,3,78,83,135,46,83,46,83,
+  78,83,46,75,45,75,46,83,46,75,3,45,83,133,13,75,13,75,46,75,
+  13,75,13,83,3,13,75,133,13,83,13,75,13,75,45,83,13,83,9,13,
+  75,138,237,74,13,75,236,74,237,74,236,74,236,74,237,74,236,74,236,74,
+  237,74,4,204,74,136,172,74,172,66,204,66,204,66,172,66,171,66,139,66,
+  139,66,3,171,66,129,172,66,3,139,66,140,107,66,139,66,107,58,106,58,
+  106,58,9,58,167,41,200,41,41,50,74,58,74,58,74,50,3,74,58,3,
+  41,58,132,41,50,41,58,41,50,41,58,7,9,50,137,233,49,232,49,9,
+  50,233,49,232,49,232,49,200,49,232,49,232,49,3,200,49,131,200,41,200,
+  41,200,49,131,4,129,46,83,5,45,83,133,45,75,13,83,13,75,13,83,
+  45,75,3,46,83,137,45,83,46,83,45,83,46,83,45,75,45,75,13,75,
+  13,67,13,75,11,237,66,150,204,66,172,58,139,58,172,58,171,58,106,58,
+  73,58,41,50,106,58,203,66,204,66,205,66,237,66,237,66,13,67,13,67,
+  13,75,237,74,204,66,139,66,106,58,139,66,4,236,82,161,12,91,236,90,
+  12,83,236,90,236,90,236,82,12,91,236,82,236,90,12,91,12,91,236,90,
+  12,83,12,91,236,82,12,91,12,83,12,91,12,91,243,66,58,59,247,66,
+  146,25,236,0,108,66,12,91,134,41,195,24,195,24,130,16,65,8,97,8,
+  163,16,3,195,24,136,162,24,68,41,138,82,175,107,49,116,82,124,82,116,
+  114,116,3,82,116,138,49,116,50,116,175,99,105,66,195,16,162,16,163,24,
+  9,50,143,91,82,124,9,114,124,132,114,116,114,124,114,124,114,116,3,114,
+  124,141,114,116,49,116,17,108,240,99,17,108,50,116,114,116,114,124,82,124,
+  82,124,82,116,114,116,82,116,3,114,124,130,114,116,114,116,3,114,124,139,
+  240,107,49,124,113,132,114,132,178,140,178,140,146,132,179,140,211,140,243,140,
+  243,148,3,211,140,132,243,140,244,148,244,140,243,140,3,211,140,141,243,140,
+  243,140,179,140,178,132,211,132,146,140,113,132,19,149,48,132,40,74,72,74,
+  72,74,40,74,3,8,66,129,40,74,5,8,66,141,231,65,8,66,231,65,
+  8,66,231,57,231,65,231,65,7,66,231,57,231,57,232,65,231,65,231,57,
+  3,199,57,135,167,57,167,49,166,49,167,49,166,49,134,49,134,49,3,134,
+  41,134,102,41,134,41,101,41,102,33,101,33,102,33,4,69,33,148,37,33,
+  37,33,69,33,37,33,69,33,37,25,4,25,171,66,106,58,200,49,167,49,
+  167,41,167,41,199,49,135,41,167,49,167,41,135,41,102,41,102,41,4,134,
+  41,136,102,41,102,33,70,33,69,33,102,33,70,33,70,33,69,33,6,37,
+  33,138,4,25,5,25,4,25,5,25,69,33,37,25,5,25,4,25,5,33,
+  5,25,3,4,25,130,228,24,196,16,3,228,16,132,5,25,228,16,228,24,
+  196,24,6,196,16,130,228,16,4,25,3,228,24,135,196,16,228,16,228,24,
+  228,16,196,16,196,16,228,16,3,196,16,131,228,24,196,24,196,24,3,196,
+  16,129,228,24,7,196,16,134,195,16,196,16,196,16,163,16,164,16,164,16,
+  4,163,16,5,164,16,4,163,16,142,98,8,33,8,0,0,98,16,196,24,
+  195,24,195,24,196,24,196,24,37,33,168,49,233,57,232,57,9,58,4,41,
+  66,139,232,57,167,49,134,49,69,41,37,41,37,33,69,41,69,41,70,41,
+  102,41,135,49,3,167,57,3,199,57,170,200,65,200,65,232,65,8,74,8,
+  74,41,74,73,74,73,82,138,82,170,90,170,90,235,90,235,98,12,99,44,
+  107,77,107,109,107,142,115,142,115,174,123,239,123,16,132,16,132,48,132,81,
+  140,113,140,113,140,146,148,178,148,178,148,211,156,243,156,243,156,20,157,52,
+  157,52,157,52,165,85,165,85,165,117,165,117,165,117,173,3,150,173,131,182,
+  173,150,173,150,173,5,182,173,134,214,181,182,173,182,173,182,181,214,181,182,
+  181,3,182,173,130,183,173,214,173,12,182,173,7,150,173,136,117,165,149,173,
+  150,173,117,165,117,165,85,165,85,165,85,173,3,85,165,135,52,157,84,157,
+  84,157,52,157,52,157,52,165,52,165,3,52,157,131,20,157,19,157,243,148,
+  3,211,148,155,113,140,142,107,171,82,236,90,110,99,175,107,12,91,73,74,
+  12,91,109,99,106,74,198,57,4,33,33,8,195,24,170,82,236,90,203,82,
+  105,74,45,107,44,99,203,90,203,90,236,90,203,90,236,90,12,99,3,236,
+  90,155,44,99,207,131,85,181,182,181,85,173,228,32,195,24,4,33,195,24,
+  97,16,167,49,240,99,208,91,208,99,208,99,241,99,14,67,131,16,195,24,
+  4,33,163,24,102,41,208,99,176,91,208,91,176,91,176,91,4,208,91,136,
+  176,91,46,83,232,41,163,8,130,8,167,33,237,74,176,99,14,176,91,129,
+  175,91,10,176,91,130,144,91,175,91,6,143,91,129,143,83,4,111,83,133,
+  110,83,111,83,79,83,79,83,111,83,5,78,83,133,78,91,78,83,78,83,
+  46,83,78,83,4,46,83,140,46,75,46,75,45,75,46,83,13,75,45,83,
+  45,83,13,83,13,75,45,75,45,83,13,83,3,45,83,130,13,83,45,83,
+  4,13,75,129,13,83,5,13,75,135,237,74,13,75,237,74,236,74,236,74,
+  13,75,237,74,3,236,74,137,237,74,236,74,237,74,205,74,204,66,204,74,
+  172,74,172,66,172,66,4,171,66,134,139,66,171,66,139,66,140,66,139,66,
+  171,66,4,139,66,136,107,58,107,58,138,66,74,58,9,58,168,41,200,41,
+  74,50,5,74,58,136,41,50,42,58,74,50,41,50,42,58,41,58,9,58,
+  9,58,4,9,50,137,233,49,9,50,9,50,233,49,232,49,233,49,233,49,
+  232,49,200,49,3,232,49,133,168,41,200,49,200,41,200,41,102,41,137,4,
+  6,45,83,133,13,83,45,83,13,75,13,75,45,75,3,46,83,133,78,83,
+  45,75,46,83,45,83,46,75,3,13,75,131,237,66,237,66,205,66,9,237,
+  66,166,205,66,204,66,172,58,139,58,106,58,41,50,41,50,106,58,171,66,
+  204,66,204,66,237,66,237,66,237,74,237,66,13,67,237,66,13,67,204,66,
+  139,58,106,58,172,74,236,82,236,90,236,82,236,82,236,90,236,82,236,82,
+  236,90,236,90,236,82,236,90,12,91,236,90,236,90,12,91,236,82,3,12,
+  91,155,12,83,12,91,235,90,242,74,57,59,23,75,210,25,205,0,108,66,
+  203,82,70,33,195,24,195,16,130,16,97,8,97,8,163,24,195,24,163,16,
+  227,24,134,41,171,82,175,107,17,116,49,116,50,116,81,116,5,82,116,139,
+  49,116,49,116,240,107,236,82,102,33,130,16,162,24,102,33,45,75,17,108,
+  146,124,4,114,124,129,146,124,10,114,124,134,82,116,49,108,17,108,16,108,
+  49,108,82,116,4,82,124,3,82,116,140,114,124,114,116,114,116,114,124,114,
+  116,82,116,114,116,114,116,16,108,49,116,114,132,114,132,3,178,140,130,178,
+  132,211,140,3,243,148,4,211,140,132,243,148,244,148,211,140,211,140,3,243,
+  140,140,211,140,179,140,179,140,146,132,81,132,243,148,76,107,72,74,72,74,
+  40,74,8,74,7,66,6,8,66,131,231,65,8,66,8,66,3,231,65,131,
+  232,65,231,65,231,65,6,231,57,138,199,57,199,57,167,57,167,57,166,49,
+  166,49,134,49,134,49,166,49,134,41,3,102,41,129,69,41,3,69,33,3,
+  37,33,144,36,33,37,33,37,25,37,33,4,25,4,25,5,25,4,25,4,
+  25,228,24,41,58,139,74,232,57,135,49,135,41,135,41,5,102,41,131,70,
+  41,70,41,70,33,3,70,41,148,37,33,5,33,37,33,4,25,5,25,5,
+  33,4,25,5,25,228,24,4,25,4,33,228,24,228,24,4,25,228,24,228,
+  24,196,24,228,24,196,24,228,24,6,196,24,137,228,24,163,24,164,16,195,
+  16,196,24,196,24,228,24,196,24,228,24,4,196,24,133,228,24,228,32,228,
+  32,4,33,4,33,3,37,33,141,37,41,38,41,70,41,102,41,102,41,103,
+  49,102,49,134,49,102,41,134,49,167,57,167,49,199,57,3,232,57,133,200,
+  57,199,57,232,65,8,66,9,66,3,41,66,144,73,74,74,74,106,74,138,
+  82,236,90,236,98,236,98,12,99,44,99,77,107,77,107,109,107,142,115,142,
+  115,207,123,207,123,3,239,123,145,48,132,16,132,48,132,113,140,113,140,146,
+  140,146,148,178,148,146,148,243,148,19,157,243,156,20,157,20,157,52,157,52,
+  157,84,165,4,85,165,160,117,173,150,173,182,173,182,181,182,173,150,173,182,
+  173,182,173,182,181,214,181,182,173,214,173,182,181,214,173,214,173,215,181,215,
+  181,247,181,247,181,215,181,247,181,215,181,247,181,215,181,247,181,215,181,215,
+  181,214,173,214,173,215,173,215,181,215,181,3,214,173,129,215,181,5,182,173,
+  129,150,173,3,182,173,4,150,165,133,150,173,150,165,150,165,149,165,150,165,
+  6,117,165,12,85,165,132,84,157,85,157,53,157,53,157,11,52,157,129,20,
+  157,3,52,157,130,20,157,20,157,3,52,157,6,20,157,145,52,157,52,157,
+  20,157,20,157,243,148,244,148,244,148,20,149,20,149,19,149,19,149,20,157,
+  20,157,19,157,19,149,243,148,243,148,3,211,148,150,178,140,81,132,142,99,
+  203,82,171,82,236,82,110,99,175,107,12,91,73,74,110,107,110,107,105,74,
+  166,57,36,33,33,0,195,24,170,82,235,90,203,82,105,74,76,107,4,203,
+  90,131,235,90,203,90,203,90,3,235,90,151,236,98,174,123,117,181,84,165,
+  167,49,163,24,228,32,4,33,130,16,36,33,176,99,209,91,208,91,208,91,
+  209,99,209,91,103,33,163,24,4,33,228,32,163,16,204,74,208,99,4,176,
+  91,141,208,99,176,91,208,91,208,91,176,91,144,91,237,74,102,33,98,8,
+  163,8,9,42,46,83,176,99,5,176,91,142,144,83,175,91,143,91,176,91,
+  175,91,144,91,143,91,143,91,176,91,143,91,176,91,176,91,175,91,175,91,
+  6,176,91,146,144,91,143,83,143,83,143,91,143,91,143,83,111,83,110,83,
+  111,83,143,91,111,83,111,91,111,83,110,83,110,83,111,83,111,83,110,83,
+  9,78,83,7,46,83,139,14,83,45,83,45,83,13,83,13,83,45,83,13,
+  83,13,75,45,83,13,83,45,83,3,13,75,129,45,83,5,13,75,133,13,
+  83,13,75,13,83,13,75,13,75,3,237,74,130,13,75,13,75,3,237,74,
+  147,236,74,204,74,236,74,204,74,236,74,204,74,204,66,172,66,172,66,171,
+  66,171,66,139,58,171,66,171,66,139,66,140,66,172,66,139,66,171,66,4,
+  139,66,137,106,66,106,58,107,66,106,58,107,66,74,66,232,41,167,41,233,
+  49,4,74,58,144,42,50,74,58,41,50,74,58,41,58,41,50,41,50,42,
+  58,42,58,9,50,9,50,41,50,9,50,233,49,233,49,9,50,5,233,49,
+  137,232,49,233,49,232,49,200,41,200,41,200,49,200,49,69,33,130,16,122,
+  4,7,45,83,132,13,75,45,75,13,75,13,75,7,45,83,132,45,75,13,
+  75,13,75,237,74,3,237,66,133,205,66,205,58,237,66,237,66,13,67,4,
+  237,66,137,204,66,204,66,171,58,106,58,74,58,41,50,74,58,139,58,172,
+  66,4,237,66,139,237,74,237,66,237,74,237,66,237,66,172,66,139,58,139,
+  66,171,74,236,82,236,90,3,236,82,131,236,90,236,90,12,91,3,236,82,
+  134,236,90,12,91,12,91,236,90,236,82,236,90,4,236,82,153,208,74,57,
+  59,56,67,19,34,173,0,11,66,170,82,37,33,195,16,195,24,130,16,65,
+  8,97,8,163,16,195,24,162,16,69,33,138,74,12,91,110,99,208,99,17,
+  108,49,116,49,116,50,116,5,82,116,3,49,116,135,78,91,8,50,162,16,
+  130,16,195,24,171,66,208,99,7,114,124,129,114,116,8,114,124,152,81,116,
+  49,108,241,107,17,108,49,108,82,116,82,124,82,116,82,124,82,116,82,116,
+  114,116,114,116,114,124,114,124,82,116,82,116,82,124,114,116,114,116,49,116,
+  240,107,49,116,114,124,3,178,140,136,179,140,178,132,179,132,211,140,243,140,
+  243,140,211,140,179,140,4,211,140,142,243,148,211,140,243,140,243,140,211,140,
+  243,140,211,140,211,140,114,132,16,124,81,132,141,107,170,90,72,74,4,40,
+  74,129,8,74,6,40,74,129,41,74,4,40,74,140,8,66,40,66,40,74,
+  8,66,40,66,40,74,40,74,40,66,40,66,41,74,40,66,40,66,6,8,
+  66,3,40,66,151,8,66,8,66,40,66,8,66,8,66,41,74,73,66,73,
+  74,105,74,106,74,105,74,106,74,138,82,138,82,170,82,170,82,138,82,12,
+  91,207,115,110,107,45,99,77,99,45,99,3,77,107,161,109,107,109,107,110,
+  107,142,107,142,107,142,115,207,115,207,123,142,115,207,123,207,123,175,115,175,
+  115,207,123,207,115,207,115,239,123,240,123,16,124,16,132,16,132,48,132,48,
+  132,49,132,81,132,81,140,113,140,113,140,114,140,146,140,113,140,178,148,178,
+  148,3,211,148,131,243,148,243,156,243,156,3,20,157,3,52,165,130,85,165,
+  84,165,3,117,165,131,117,173,117,173,149,173,3,150,173,129,182,181,4,182,
+  173,129,214,181,3,182,173,129,214,181,3,215,181,129,214,173,3,214,181,3,
+  215,181,133,214,181,247,181,215,181,214,181,215,181,8,247,181,129,215,181,3,
+  247,181,137,215,173,214,173,214,173,215,173,215,173,214,173,215,173,214,173,215,
+  173,5,182,173,142,150,165,182,173,182,173,150,165,182,173,150,165,150,165,150,
+  173,149,173,117,165,150,173,150,165,118,165,118,165,3,117,165,129,85,165,3,
+  117,165,131,118,165,117,165,117,165,3,85,165,142,85,157,85,157,85,165,85,
+  157,85,157,85,165,85,157,85,165,85,165,84,157,52,157,85,157,52,157,85,
+  157,4,52,157,129,53,157,3,52,157,138,20,157,20,157,52,157,52,157,53,
+  157,52,157,20,157,52,157,20,157,20,149,3,20,157,143,52,157,20,157,52,
+  157,20,157,20,157,52,157,20,149,20,157,20,157,244,148,20,149,20,157,20,
+  157,20,149,20,149,3,243,148,129,52,157,3,20,157,132,20,149,52,157,20,
+  157,52,157,4,20,149,146,19,149,244,148,20,149,20,157,52,157,19,149,20,
+  149,52,157,19,149,243,148,20,149,244,148,243,148,20,149,20,149,243,148,211,
+  140,211,148,3,211,140,130,243,148,243,140,4,211,140,132,146,132,178,132,146,
+  132,178,132,5,146,132,189,114,132,114,132,81,124,16,116,240,115,239,115,110,
+  99,236,82,171,82,203,82,171,82,203,82,78,91,175,107,45,91,105,74,12,
+  91,142,107,106,74,166,57,69,41,33,8,130,16,138,82,236,90,203,82,73,
+  74,12,99,235,98,203,90,170,90,235,90,235,90,203,90,235,90,203,90,203,
+  90,170,82,12,99,174,115,52,165,167,57,130,16,228,32,4,33,162,16,228,
+  32,110,91,209,99,208,99,208,91,176,91,241,99,204,66,131,16,228,32,4,
+  33,163,24,166,49,208,99,208,91,10,176,91,135,111,83,139,58,5,17,98,
+  8,228,24,41,50,46,83,5,176,91,132,175,83,143,83,176,91,143,91,7,
+  176,91,129,175,91,6,176,91,149,208,91,175,91,143,91,143,91,143,83,144,
+  91,143,83,143,91,111,91,143,83,111,83,143,83,111,83,111,83,110,83,111,
+  83,110,83,110,83,111,83,79,83,110,83,9,78,83,5,46,83,132,45,75,
+  45,83,46,83,45,83,6,13,75,133,45,75,13,75,45,83,13,75,13,83,
+  5,13,75,129,13,83,4,13,75,130,13,83,13,83,4,13,75,3,237,74,
+  3,236,74,137,237,74,236,74,236,74,204,74,204,74,204,66,171,66,172,66,
+  139,58,3,171,66,129,139,66,3,171,66,5,139,66,137,107,66,106,58,107,
+  66,106,58,107,66,9,50,167,41,135,41,9,50,3,74,58,135,73,50,74,
+  58,41,50,41,58,42,58,41,58,9,58,3,9,50,129,9,58,5,9,50,
+  129,9,58,4,233,49,137,200,49,200,49,232,49,200,49,233,49,200,49,37,
+  33,130,16,130,16,89,4,6,45,83,133,13,75,13,75,45,75,13,83,46,
+  83,3,45,83,133,45,75,46,83,46,83,13,75,45,75,3,13,75,149,237,
+  74,237,66,205,66,205,66,204,66,236,66,237,66,13,75,13,67,237,66,237,
+  66,205,66,204,66,172,58,139,58,74,58,41,50,74,58,138,58,172,66,236,
+  66,9,237,66,135,204,66,139,66,171,66,203,82,236,82,235,82,235,82,3,
+  236,82,130,236,90,204,82,3,236,82,131,204,82,236,82,236,82,3,236,90,
+  156,12,99,12,99,45,99,47,99,87,75,119,83,179,74,174,33,10,74,105,
+  98,69,49,228,32,196,24,130,16,33,8,33,8,98,16,163,24,130,16,102,
+  41,170,74,204,82,12,83,142,91,208,99,17,108,49,116,49,116,4,82,116,
+  141,81,116,82,116,49,108,49,116,82,116,175,107,139,66,228,16,130,16,130,
+  16,232,41,110,91,82,116,9,114,124,145,114,116,114,124,114,124,146,124,114,
+  124,82,124,49,116,17,108,240,107,17,108,49,116,82,116,82,124,114,116,82,
+  116,82,116,114,116,5,82,116,138,114,116,82,116,114,116,114,124,17,108,175,
+  99,81,116,114,132,178,140,179,140,3,178,140,137,178,132,211,140,243,140,211,
+  140,211,140,179,140,146,132,179,140,179,140,4,211,140,129,211,132,4,211,140,
+  136,178,140,239,123,16,124,113,132,210,148,19,157,20,157,20,157,7,52,157,
+  129,84,157,3,52,157,152,85,165,85,165,52,165,243,156,85,165,85,165,52,
+  165,84,165,85,165,85,165,117,165,117,173,85,165,117,173,117,165,117,165,149,
+  173,117,173,149,173,150,173,150,173,149,173,149,173,182,173,3,150,173,130,182,
+  173,150,173,3,182,173,145,214,181,182,173,214,173,182,173,182,181,182,173,215,
+  181,215,181,214,181,214,173,182,173,182,173,214,181,215,173,182,173,214,173,182,
+  173,4,215,181,129,214,173,5,182,173,129,215,173,5,182,173,129,214,173,25,
+  182,173,137,150,173,182,173,150,173,182,165,150,173,182,173,150,165,150,173,150,
+  165,3,150,173,140,150,165,150,165,150,173,150,173,150,165,118,165,150,165,117,
+  165,117,165,150,165,117,165,149,165,8,117,165,134,85,165,85,157,117,165,117,
+  165,85,165,117,165,5,85,165,3,85,157,134,85,165,85,165,85,157,85,157,
+  85,165,85,157,4,52,157,132,53,157,52,157,52,157,85,157,8,52,157,130,
+  20,157,20,157,3,52,157,132,20,157,20,157,52,157,52,157,6,20,157,156,
+  52,157,20,157,52,157,20,157,20,149,19,157,20,157,52,157,20,157,20,157,
+  19,149,52,157,52,157,20,157,20,149,20,157,20,149,20,149,20,157,20,149,
+  20,157,20,149,243,148,19,149,19,149,20,149,20,149,19,149,3,20,149,135,
+  52,157,243,148,244,148,244,148,20,149,20,149,19,149,4,243,148,135,211,140,
+  20,149,243,148,243,148,211,148,243,148,244,140,3,211,140,134,179,140,178,140,
+  178,132,211,140,179,132,178,132,4,146,132,152,113,132,114,132,114,132,113,132,
+  113,124,81,124,113,124,113,124,81,124,49,124,48,124,49,124,48,124,16,116,
+  240,115,16,116,16,116,240,115,207,107,207,107,239,107,207,107,175,107,175,107,
+  4,142,99,140,110,99,110,99,110,91,77,91,77,91,77,99,77,91,45,91,
+  45,91,12,91,13,91,12,91,3,12,83,6,236,82,158,203,74,203,74,203,
+  82,203,74,171,74,171,82,203,82,203,82,171,74,171,82,170,74,203,82,45,
+  91,143,99,45,91,73,74,109,107,175,115,105,74,166,57,69,41,65,8,130,
+  16,138,82,235,90,235,90,73,74,44,107,203,90,171,90,3,203,90,143,170,
+  82,203,90,170,90,170,90,171,90,236,98,77,99,167,49,130,16,195,24,195,
+  24,130,16,195,24,45,83,240,99,4,208,91,139,176,83,5,25,163,24,4,
+  33,227,24,163,24,77,83,209,91,176,91,176,91,176,99,3,176,91,129,176,
+  99,5,176,91,138,46,83,9,42,163,8,98,8,37,25,107,58,79,83,176,
+  91,176,91,144,91,11,176,91,129,143,91,8,176,91,131,143,91,176,91,176,
+  91,3,143,91,140,111,91,111,83,111,91,111,83,111,83,110,83,143,91,111,
+  83,111,83,110,83,111,83,110,83,9,78,83,3,46,83,129,46,75,3,46,
+  83,131,46,75,46,83,14,83,4,13,75,149,13,83,13,83,13,75,13,83,
+  13,83,13,75,13,75,13,83,13,83,13,75,14,83,13,75,13,75,13,83,
+  13,75,13,75,13,83,13,75,13,75,13,83,13,75,4,237,74,140,236,74,
+  236,74,204,74,237,74,204,74,236,74,204,74,204,74,204,66,204,74,204,66,
+  204,66,5,171,66,132,139,66,171,66,139,66,171,66,4,139,66,130,107,58,
+  107,58,3,106,58,134,74,58,106,66,9,50,135,41,200,41,42,58,5,74,
+  58,5,42,58,130,9,58,42,58,6,9,50,3,233,49,139,232,49,233,49,
+  233,49,200,49,233,49,233,49,135,49,228,24,130,16,130,16,195,24,46,4,
+  6,45,83,3,45,75,133,13,75,45,75,46,83,13,83,13,75,3,45,75,
+  138,45,83,45,83,13,75,13,75,237,74,13,75,237,66,237,66,204,66,205,
+  66,3,237,66,141,237,74,237,66,205,66,204,66,172,58,107,58,74,58,41,
+  50,73,58,139,66,171,58,204,66,204,66,9,237,66,177,172,66,172,66,172,
+  74,204,82,235,90,235,82,235,82,204,82,203,82,203,82,236,90,236,90,45,
+  99,110,107,175,115,16,124,81,140,178,148,211,156,20,165,52,165,85,173,117,
+  173,117,181,118,173,151,173,118,173,85,173,84,181,84,181,51,173,19,165,211,
+  164,178,156,48,140,175,123,45,107,171,90,8,74,41,66,171,90,171,82,171,
+  74,13,83,110,91,208,107,17,116,49,116,49,116,6,82,116,139,49,116,49,
+  116,82,116,17,116,12,83,134,33,130,16,130,16,37,33,237,74,240,107,14,
+  114,124,135,82,116,17,116,17,108,240,107,17,108,50,116,82,124,11,82,116,
+  142,114,116,82,116,114,116,82,124,142,91,17,116,114,124,178,140,179,140,179,
+  140,178,140,178,140,178,132,179,132,4,211,140,131,178,140,178,140,179,140,7,
+  211,140,144,243,140,211,140,243,148,81,132,207,115,49,132,113,140,146,140,178,
+  140,178,140,146,140,178,140,178,140,178,148,210,148,178,148,4,178,140,131,210,
+  148,211,148,210,148,6,211,148,130,243,148,211,148,4,243,148,140,243,156,243,
+  156,243,148,243,156,243,148,243,148,19,157,243,148,19,149,19,157,243,156,243,
+  156,7,20,157,4,52,157,130,20,157,52,165,7,52,157,129,84,157,5,52,
+  157,137,84,157,52,157,20,157,52,157,85,157,84,157,52,157,53,157,53,157,
+  4,52,157,137,84,157,84,157,52,157,52,157,84,157,20,157,52,157,52,157,
+  84,165,5,52,157,134,84,157,85,157,84,157,84,165,84,157,84,157,4,52,
+  157,135,85,157,84,157,85,165,85,165,52,157,52,157,85,165,4,52,157,133,
+  85,165,85,165,52,157,52,157,84,157,10,52,157,139,84,157,52,157,20,157,
+  52,157,20,157,20,157,52,157,20,157,52,157,52,157,52,149,6,52,157,130,
+  85,157,20,149,3,52,157,141,243,148,19,149,52,157,20,157,52,157,20,149,
+  20,149,117,165,117,157,53,149,20,149,52,157,19,149,5,20,149,134,52,149,
+  20,149,20,149,243,148,20,149,211,140,3,243,148,129,19,149,4,211,140,130,
+  243,148,243,148,3,211,140,132,243,140,179,140,178,140,178,140,3,146,132,143,
+  178,140,178,132,146,132,146,132,178,132,114,132,113,132,81,124,113,124,49,124,
+  49,124,48,124,49,124,81,124,49,124,3,16,116,132,240,115,16,116,239,107,
+  240,115,4,207,107,132,175,107,175,99,174,99,175,107,3,142,99,132,110,99,
+  110,99,109,91,110,99,3,77,91,3,45,91,133,13,91,45,91,13,91,45,
+  91,12,91,3,12,83,5,236,82,131,236,74,236,82,236,82,4,203,74,133,
+  203,82,203,82,203,74,203,74,203,82,8,203,74,138,203,82,203,74,203,74,
+  203,82,203,82,203,74,203,74,203,82,203,82,203,74,3,203,82,5,203,74,
+  130,171,74,203,82,3,203,74,133,203,82,171,74,203,74,171,74,171,74,3,
+  203,74,131,203,82,171,74,203,74,3,171,74,3,171,82,163,12,91,143,99,
+  45,91,73,66,44,99,110,107,138,74,166,57,101,41,65,8,130,16,105,74,
+  235,90,235,90,105,74,11,99,203,98,203,90,203,98,203,90,170,90,138,82,
+  170,82,138,82,170,82,171,82,73,74,228,32,163,24,195,24,195,24,130,16,
+  163,24,203,74,208,99,4,176,91,136,241,99,42,50,130,16,4,33,37,41,
+  130,16,8,58,240,99,3,176,91,129,208,91,9,176,91,136,144,91,205,74,
+  135,33,130,8,98,8,102,33,172,66,143,91,13,176,91,132,175,91,176,91,
+  176,91,143,91,5,176,91,131,143,91,176,91,143,83,3,143,91,131,143,83,
+  143,83,111,91,6,111,83,134,78,83,78,83,110,83,78,83,79,83,111,83,
+  5,78,83,130,46,83,78,83,4,46,83,135,14,83,46,83,45,83,46,83,
+  14,75,13,83,13,83,3,13,75,132,13,83,13,83,13,75,13,83,6,13,
+  75,130,13,83,13,83,6,13,75,130,13,83,13,83,5,237,74,4,236,74,
+  4,204,74,138,172,66,204,66,204,74,204,66,172,74,171,66,172,66,172,74,
+  171,66,171,66,5,139,66,152,107,66,107,58,107,58,107,66,106,58,106,58,
+  106,66,107,66,74,58,200,49,135,41,9,50,42,50,74,58,74,58,42,58,
+  74,58,41,50,42,58,42,58,41,50,42,58,10,58,42,58,4,9,50,131,
+  9,58,9,58,9,50,4,233,49,137,232,49,233,49,233,49,135,41,195,24,
+  130,16,162,16,227,24,36,33,155,4,4,45,83,136,45,75,45,75,45,83,
+  13,75,45,83,45,83,45,75,45,83,3,13,75,131,45,75,13,75,45,75,
+  5,13,75,145,237,74,237,74,237,66,237,66,237,74,237,74,13,67,237,66,
+  237,66,204,66,172,58,107,58,74,58,41,50,73,50,106,58,171,66,4,204,
+  66,129,237,74,6,237,66,143,237,74,204,74,171,66,171,74,203,74,203,82,
+  203,82,12,91,110,107,207,123,113,140,211,148,52,165,117,173,150,181,4,214,
+  181,135,182,181,150,181,149,181,117,181,117,181,85,173,85,173,5,84,173,147,
+  117,181,117,181,149,181,150,181,182,189,182,189,214,189,182,189,182,189,117,181,
+  19,165,146,148,240,131,175,115,175,107,208,107,17,116,49,116,49,116,4,82,
+  116,145,81,116,50,116,49,116,49,108,82,116,81,116,142,91,73,58,163,8,
+  130,16,163,16,74,58,143,99,82,116,114,124,114,124,114,116,9,114,124,135,
+  114,116,49,116,17,108,240,107,240,107,17,108,49,116,3,82,116,129,50,116,
+  8,82,116,143,114,116,82,124,114,124,114,124,49,116,175,99,114,124,146,132,
+  178,132,178,132,178,140,178,140,114,124,178,132,179,132,3,211,140,131,178,140,
+  146,132,178,132,3,179,140,129,178,140,7,211,140,133,48,124,239,123,16,124,
+  80,132,113,132,3,113,140,129,114,140,6,146,140,137,113,140,146,140,114,140,
+  145,140,146,140,114,140,146,140,146,140,210,148,3,146,140,133,178,140,146,140,
+  145,140,178,148,178,140,3,210,148,140,178,140,211,148,243,148,178,140,243,148,
+  210,148,210,148,211,148,210,148,211,148,243,148,211,148,3,243,148,159,20,157,
+  19,157,20,157,19,157,19,157,243,156,210,148,19,149,19,149,20,149,243,148,
+  20,157,20,157,19,149,20,149,20,157,19,149,243,148,20,149,243,148,243,156,
+  243,148,20,149,52,157,20,149,52,157,20,149,20,157,19,149,20,149,19,149,
+  3,52,157,190,243,148,20,149,19,149,20,157,84,157,243,148,20,149,52,149,
+  19,149,20,149,19,149,52,157,52,157,20,149,19,149,52,157,20,149,52,157,
+  243,148,20,149,19,149,20,149,84,157,243,148,20,149,52,149,20,149,19,149,
+  243,148,243,148,243,140,211,140,243,148,20,149,211,140,211,140,243,140,211,140,
+  211,140,243,148,211,140,243,140,178,140,178,140,179,140,211,140,146,132,146,132,
+  210,140,178,140,146,132,243,140,56,174,24,174,24,174,215,165,52,149,114,132,
+  146,132,178,132,146,132,114,132,3,81,124,149,16,116,207,107,16,116,240,107,
+  175,107,207,107,16,116,48,124,49,124,16,116,48,116,48,116,244,140,179,132,
+  240,107,175,107,207,107,239,107,207,107,174,99,175,107,3,142,99,132,110,99,
+  109,91,110,91,110,91,3,77,91,130,45,91,77,91,5,45,91,130,12,91,
+  45,83,8,12,83,5,236,82,136,235,74,203,74,235,82,235,82,203,74,235,
+  74,203,74,203,82,3,203,74,130,203,82,203,82,5,203,74,136,235,82,203,
+  74,203,82,203,74,203,74,203,82,203,74,203,74,3,203,82,140,203,74,235,
+  82,203,74,203,82,203,82,235,74,203,82,203,74,203,74,203,82,203,82,235,
+  82,6,203,82,135,235,82,203,74,203,82,203,74,203,74,203,82,203,74,3,
+  203,82,137,203,74,235,82,203,82,203,74,235,82,203,74,235,82,203,74,203,
+  82,3,203,74,4,203,82,142,235,82,203,82,203,82,203,74,235,82,235,74,
+  235,82,203,74,203,74,235,82,203,82,203,74,203,82,203,82,5,203,74,182,
+  203,82,171,74,203,74,171,74,203,74,171,74,203,74,171,74,203,82,203,74,
+  203,74,171,74,171,82,203,74,203,82,171,82,171,74,171,74,170,74,170,74,
+  236,82,110,99,77,99,73,66,12,91,175,115,138,74,199,57,101,49,65,0,
+  98,16,105,74,236,90,12,99,73,74,235,98,11,99,11,99,235,98,170,90,
+  170,90,170,82,138,82,170,82,170,90,231,57,163,24,163,24,227,32,227,32,
+  98,16,228,32,203,82,208,99,4,176,91,137,209,91,46,75,164,16,195,24,
+  4,33,195,24,228,32,110,83,208,91,4,176,91,129,208,91,3,176,91,130,
+  144,91,144,91,3,176,91,142,143,91,111,91,140,58,37,17,98,8,130,16,
+  167,33,204,74,143,91,176,91,176,91,175,91,176,91,175,91,14,176,91,135,
+  175,91,175,91,144,91,143,91,175,91,143,91,143,91,3,143,83,8,111,83,
+  12,78,83,5,46,83,146,45,83,45,75,46,83,45,83,13,83,13,83,46,
+  83,13,75,45,75,13,75,13,83,45,83,13,75,13,83,13,75,45,75,13,
+  83,13,83,8,13,75,146,237,74,13,75,13,75,237,74,236,74,13,75,13,
+  75,237,74,237,74,236,74,236,74,205,74,237,74,204,74,205,74,204,74,204,
+  66,204,66,3,204,74,130,172,66,172,66,4,171,66,134,139,66,139,66,171,
+  66,139,66,107,66,106,58,3,107,66,136,106,58,106,66,106,58,106,58,9,
+  50,135,33,200,41,41,50,3,74,58,156,41,58,42,58,41,50,41,50,41,
+  58,42,58,41,50,41,50,9,50,9,58,9,58,233,49,9,50,9,50,232,
+  49,9,50,233,49,233,49,232,49,233,49,233,49,102,41,130,16,130,16,195,
+  24,228,24,36,41,195,32,77,4,5,45,83,130,45,75,45,75,3,45,83,
+  129,46,83,4,13,75,135,45,75,13,75,13,75,45,75,13,75,13,75,237,
+  66,5,13,75,145,237,66,237,66,237,74,205,66,204,66,171,58,107,58,74,
+  50,41,50,73,50,106,58,171,58,172,58,172,58,204,66,172,58,204,58,6,
+  237,66,137,13,75,236,74,171,66,171,74,236,90,142,107,49,132,211,148,85,
+  165,4,182,181,144,117,181,85,173,52,173,20,165,211,164,178,156,146,148,146,
+  148,113,148,113,148,81,148,81,140,113,140,113,148,114,148,114,148,3,146,148,
+  149,210,156,210,156,211,156,211,156,243,164,243,164,19,165,52,173,84,173,85,
+  181,149,181,182,189,182,189,150,181,85,173,244,164,179,148,114,140,49,124,82,
+  116,81,116,3,82,116,3,49,116,138,50,116,82,116,208,107,203,74,4,17,
+  130,8,130,16,134,33,46,83,17,116,9,114,124,129,114,116,3,82,116,134,
+  49,108,17,108,240,107,17,108,49,108,49,116,10,82,116,137,114,116,82,124,
+  114,116,114,124,114,116,114,116,114,124,49,116,114,124,3,146,132,137,178,140,
+  114,132,16,108,146,124,178,132,179,140,179,140,211,140,178,140,4,146,132,134,
+  178,132,178,132,146,132,178,132,178,132,178,140,3,179,140,134,178,140,114,132,
+  49,124,142,107,109,99,77,99,4,142,107,129,174,107,6,142,107,131,109,107,
+  142,107,174,107,4,142,107,156,174,107,142,99,142,107,142,107,109,107,142,107,
+  174,107,109,99,142,107,174,107,142,107,109,99,142,107,174,107,142,107,174,107,
+  142,107,174,107,174,107,142,99,142,107,174,107,142,107,174,107,207,107,174,107,
+  206,107,207,115,3,207,107,132,207,115,174,107,207,107,207,115,6,207,107,130,
+  175,107,206,107,7,174,107,129,175,107,3,174,107,136,142,99,175,107,174,107,
+  142,107,142,99,142,99,142,107,142,107,7,142,99,133,109,99,109,99,142,107,
+  141,99,110,99,9,109,99,130,77,99,109,99,4,77,91,131,45,91,77,91,
+  77,91,4,44,91,134,45,83,44,91,12,91,12,83,44,91,12,91,3,12,
+  83,131,44,91,12,91,12,91,3,44,91,133,12,83,77,91,77,83,45,83,
+  45,83,5,12,83,132,12,91,12,91,12,83,12,83,5,12,91,13,12,83,
+  130,12,91,12,91,5,12,83,132,12,91,12,83,12,83,236,82,5,12,83,
+  136,236,82,12,83,236,82,12,83,236,82,235,82,236,82,236,82,4,235,82,
+  141,236,82,235,82,235,82,203,82,235,82,203,82,235,82,203,82,203,74,203,
+  74,235,82,203,82,203,82,3,203,74,131,203,82,203,74,203,82,4,203,74,
+  131,203,82,235,82,203,82,4,235,82,133,203,82,235,82,203,82,235,82,203,
+  82,4,235,82,130,203,74,235,82,3,203,82,132,203,74,235,82,203,74,203,
+  74,3,203,82,140,203,74,235,82,203,82,236,82,235,82,236,82,235,74,203,
+  82,236,82,235,82,235,82,236,82,3,203,82,6,235,82,133,203,82,203,74,
+  235,82,203,74,203,82,4,203,74,139,203,82,203,74,203,82,203,82,203,74,
+  203,82,203,82,203,74,203,82,203,82,235,82,3,203,82,137,203,74,203,74,
+  235,82,203,74,203,82,203,74,203,82,203,74,203,74,3,171,74,130,203,74,
+  171,82,4,171,74,154,203,74,203,74,171,82,170,82,170,82,138,74,236,90,
+  78,99,77,99,41,74,12,91,110,107,171,82,166,49,101,49,65,8,98,16,
+  73,74,236,90,236,90,73,74,12,107,12,99,11,99,202,98,202,90,3,170,
+  90,151,138,74,134,49,162,16,195,24,227,32,163,24,66,8,228,40,178,156,
+  175,91,175,91,144,91,176,91,144,91,144,91,176,83,103,33,162,16,4,33,
+  228,32,130,16,171,74,208,91,8,176,91,132,144,91,144,91,143,83,144,91,
+  3,176,91,149,144,91,78,83,74,50,228,16,98,8,163,16,200,41,237,74,
+  143,91,176,91,175,91,176,91,176,91,144,91,144,91,143,91,144,91,144,91,
+  143,91,144,91,175,83,6,176,91,131,175,91,176,91,176,91,3,143,91,137,
+  143,83,143,83,144,83,143,83,143,91,111,83,111,91,111,83,111,83,3,110,
+  83,129,111,83,10,78,83,130,46,83,78,83,4,46,83,135,45,83,46,83,
+  46,83,13,83,13,83,14,83,13,83,7,13,75,131,13,83,13,75,13,83,
+  10,13,75,134,13,83,13,75,13,75,237,74,237,74,236,74,7,237,74,130,
+  204,74,204,66,4,204,74,130,204,66,172,66,5,171,66,145,139,66,140,66,
+  139,66,139,66,107,58,139,58,106,58,139,66,106,66,107,66,107,58,107,66,
+  107,66,41,58,167,41,102,33,233,49,4,74,58,155,42,58,42,50,42,58,
+  42,58,41,50,41,58,9,50,9,50,9,58,9,58,9,50,9,58,9,50,
+  233,49,9,50,9,50,233,49,9,50,9,50,70,33,130,16,163,16,227,24,
+  4,33,36,41,195,24,97,16,96,4,9,45,83,12,13,75,129,237,74,5,
+  13,75,3,237,66,142,204,58,172,58,106,58,74,58,41,50,41,50,138,58,
+  171,66,172,58,171,58,171,58,172,58,204,58,205,66,4,237,66,145,204,66,
+  204,74,14,83,78,99,208,115,146,148,85,173,215,181,24,190,24,190,247,189,
+  247,189,215,189,214,189,182,189,182,181,182,181,3,150,181,182,149,181,117,181,
+  117,173,85,173,52,173,20,165,243,156,211,156,146,148,114,140,81,140,81,132,
+  49,140,81,140,81,140,114,140,114,140,146,148,211,156,211,156,243,156,243,164,
+  243,156,243,156,211,156,211,164,243,164,52,173,117,181,149,189,150,189,149,181,
+  85,173,244,156,146,140,82,132,50,124,50,116,82,116,49,108,50,116,50,116,
+  82,116,49,116,45,91,199,41,130,8,130,16,228,24,171,66,176,99,114,124,
+  114,124,114,116,3,114,124,131,114,116,114,116,114,124,3,82,116,130,50,116,
+  49,116,3,17,108,129,49,108,10,82,116,137,114,124,82,116,114,124,82,124,
+  114,124,114,116,114,116,114,124,114,116,3,146,124,137,146,132,146,132,81,124,
+  207,107,49,116,146,124,179,132,178,140,178,140,4,114,132,132,81,124,49,132,
+  81,132,81,132,3,113,132,142,81,132,113,132,114,132,178,132,146,132,146,132,
+  114,132,239,115,12,91,106,74,105,74,106,74,138,74,106,74,6,138,74,129,
+  106,74,4,138,74,131,138,66,138,74,170,74,3,138,74,3,170,74,132,138,
+  74,138,74,170,82,138,74,3,170,74,129,170,82,4,170,74,140,171,74,170,
+  74,170,74,171,82,203,82,235,82,203,82,235,82,236,82,12,83,236,82,12,
+  91,9,44,91,132,45,91,44,99,44,99,45,91,6,44,91,133,77,91,44,
+  91,44,91,44,99,44,99,4,44,91,129,76,91,5,44,91,130,77,91,44,
+  91,3,45,91,142,44,91,76,91,77,91,77,99,45,99,45,91,45,91,77,
+  91,77,91,76,91,76,91,77,91,45,91,77,99,3,77,91,138,45,91,44,
+  91,45,91,44,91,45,91,45,91,44,91,76,91,44,91,45,91,4,44,91,
+  144,12,91,12,83,12,91,44,91,12,91,12,91,44,91,44,91,12,91,44,
+  91,44,91,12,91,44,91,12,91,12,91,45,91,3,44,91,129,12,91,4,
+  44,91,131,12,91,44,91,12,83,7,44,91,3,12,91,129,45,91,4,12,
+  91,131,12,83,12,83,12,91,8,12,83,135,236,82,12,83,236,82,12,83,
+  12,83,12,91,12,83,4,236,82,3,235,82,132,236,82,236,82,235,82,203,
+  74,3,235,82,132,203,82,235,82,236,82,236,82,4,203,82,130,203,74,203,
+  82,3,203,74,146,171,74,170,74,203,74,203,82,170,74,203,74,203,74,203,
+  82,203,74,203,82,203,74,203,82,235,82,203,82,235,82,203,82,203,82,235,
+  82,3,203,82,133,235,82,235,82,203,74,203,82,203,82,4,203,74,3,203,
+  82,136,235,82,203,74,203,82,203,74,203,74,236,82,236,82,235,82,4,203,
+  82,150,236,82,203,82,235,82,203,74,236,82,203,74,203,74,203,82,203,82,
+  235,82,203,74,235,82,203,82,235,82,236,82,236,82,203,74,203,74,203,82,
+  203,82,235,82,203,74,3,203,82,131,203,74,203,74,203,82,7,203,74,142,
+  171,74,203,74,203,74,203,82,203,74,203,74,170,74,171,74,170,74,171,74,
+  203,74,170,74,170,74,171,82,4,171,74,3,170,74,154,138,74,171,82,45,
+  99,77,99,73,74,44,99,207,115,171,74,166,49,134,49,65,8,98,8,40,
+  66,235,90,236,90,73,74,236,98,203,98,235,98,235,98,203,90,170,90,203,
+  90,73,74,4,33,163,24,3,195,24,134,98,16,37,49,210,164,182,189,143,
+  91,176,91,3,144,91,135,176,91,139,58,98,16,195,24,228,32,130,16,134,
+  49,10,176,91,131,144,91,144,83,143,91,3,176,91,139,144,91,176,91,144,
+  91,14,83,9,42,163,8,98,8,195,16,232,41,13,75,143,91,3,176,91,
+  130,144,91,143,83,4,143,91,132,143,83,143,91,175,91,143,91,7,176,91,
+  3,143,91,133,143,83,143,83,143,91,143,91,111,91,5,111,83,134,110,83,
+  111,83,79,83,111,83,78,83,79,83,9,78,83,138,46,83,78,83,46,83,
+  45,83,46,83,46,83,45,83,46,83,13,83,46,83,3,13,83,134,13,75,
+  13,75,13,83,13,83,13,75,45,83,3,13,75,3,13,83,6,13,75,132,
+  237,74,237,74,13,75,13,75,3,237,74,135,236,74,237,74,237,74,204,74,
+  236,74,204,74,204,66,4,204,74,138,204,66,204,66,171,66,171,66,172,66,
+  171,66,139,66,139,58,139,66,172,66,3,139,66,141,107,66,106,58,138,66,
+  106,66,139,66,107,66,106,58,75,58,74,66,232,49,102,33,167,41,41,50,
+  4,74,58,132,74,50,74,58,41,58,41,50,3,41,58,133,9,58,233,49,
+  233,49,9,58,9,58,4,9,50,132,9,58,37,33,130,16,163,16,3,4,
+  33,131,162,24,97,16,66,8,87,4,137,13,83,13,83,45,83,13,83,45,
+  83,45,75,45,83,13,83,45,83,11,13,75,160,45,75,13,75,13,75,14,
+  75,13,75,237,74,237,74,237,66,204,58,172,58,172,66,107,58,73,58,41,
+  50,73,58,106,58,139,58,172,58,172,58,139,58,139,58,172,58,173,58,204,
+  66,204,66,205,66,237,74,46,91,240,123,147,140,52,165,150,173,3,182,181,
+  133,117,181,85,173,84,173,52,165,20,165,4,243,164,134,20,165,20,165,52,
+  165,52,173,52,173,84,173,3,117,181,4,150,181,171,182,181,118,181,117,181,
+  117,173,52,173,20,165,243,164,179,156,146,148,114,148,113,140,114,148,146,148,
+  179,148,211,156,243,156,243,156,179,148,146,148,178,148,210,156,243,164,52,173,
+  117,181,149,189,149,181,85,173,20,165,178,140,82,124,50,116,49,108,50,108,
+  82,116,82,116,175,107,138,66,195,8,130,16,130,16,232,41,111,91,49,116,
+  4,114,124,4,114,116,131,82,116,82,116,81,116,3,49,116,132,17,116,49,
+  108,50,116,82,124,6,82,116,129,114,116,4,82,116,156,82,124,114,124,114,
+  116,114,116,114,124,114,124,82,116,114,124,146,124,146,124,114,132,146,132,16,
+  108,207,99,16,108,49,116,146,124,178,132,179,132,81,124,49,124,81,132,81,
+  132,114,132,114,140,114,140,146,140,146,140,3,146,132,133,146,140,178,140,178,
+  132,146,140,146,132,3,114,132,139,81,124,142,107,171,82,106,74,106,74,138,
+  74,138,74,170,74,138,74,138,74,170,74,6,138,74,131,170,74,170,74,138,
+  74,6,170,74,129,170,82,3,170,74,130,171,82,138,74,4,170,74,140,203,
+  82,171,82,171,82,203,82,203,74,171,82,203,82,235,82,235,82,236,82,236,
+  82,235,82,4,12,91,3,44,91,130,45,91,45,91,3,44,91,136,77,91,
+  45,99,45,91,44,91,45,99,44,91,44,91,45,91,3,45,99,139,44,91,
+  45,99,45,91,44,91,45,99,45,91,77,99,44,91,77,91,77,91,77,99,
+  3,77,91,133,45,99,77,99,45,91,77,99,44,99,3,77,99,3,77,91,
+  3,77,99,3,77,91,134,44,91,44,91,44,99,77,99,77,99,77,91,3,
+  45,91,130,77,91,45,91,4,44,91,3,12,91,130,12,83,12,91,7,44,
+  91,134,12,91,44,91,12,91,12,91,44,91,12,83,3,12,91,151,44,91,
+  44,91,12,91,44,91,12,91,44,91,12,91,12,91,44,91,12,91,44,91,
+  12,91,44,91,44,83,236,82,44,91,12,91,12,91,12,83,12,91,12,83,
+  12,83,12,91,6,12,83,131,236,82,12,83,12,83,3,236,82,133,12,83,
+  235,82,235,82,236,82,12,83,3,235,82,4,236,82,129,235,82,4,236,82,
+  4,235,82,132,203,82,235,82,203,82,203,74,4,203,82,145,203,74,203,82,
+  203,74,203,74,171,74,203,74,203,74,171,74,171,74,203,74,171,74,171,74,
+  203,82,203,74,171,74,203,82,203,74,4,203,82,130,203,74,203,74,3,235,
+  82,4,203,82,129,235,82,10,203,74,131,203,82,203,74,203,74,4,203,82,
+  129,203,74,3,203,82,4,203,74,134,203,82,203,74,203,82,203,82,203,74,
+  203,74,3,203,82,130,203,74,203,74,4,203,82,136,203,74,171,74,203,74,
+  170,74,203,74,203,74,203,82,203,82,3,203,74,136,171,74,203,74,171,74,
+  170,74,203,74,171,74,171,74,203,74,7,170,74,129,170,82,3,171,74,130,
+  203,74,170,74,3,138,74,161,170,82,45,99,45,99,41,66,12,99,207,107,
+  171,82,166,57,134,49,65,8,97,8,8,66,236,90,236,90,73,74,203,98,
+  235,98,170,90,235,98,235,98,203,90,167,57,195,24,163,24,195,24,195,24,
+  162,16,98,16,69,49,52,181,150,189,150,181,143,91,3,144,91,137,176,91,
+  111,83,228,24,163,24,4,33,195,24,163,24,13,83,208,91,10,176,91,129,
+  144,91,5,176,91,147,176,83,176,91,143,91,237,74,168,33,130,8,98,16,
+  195,16,232,41,237,74,143,91,176,91,176,91,144,91,176,91,176,91,144,91,
+  143,91,143,83,3,143,91,7,176,91,4,143,91,133,143,83,143,91,143,83,
+  143,83,111,91,3,111,83,129,111,91,4,111,83,129,110,83,7,78,83,129,
+  78,91,4,78,83,5,46,83,136,45,83,46,83,45,83,46,83,45,75,46,
+  83,13,75,13,75,3,13,83,3,13,75,3,13,83,130,13,75,13,83,4,
+  13,75,129,13,83,3,237,74,5,13,75,3,237,74,3,236,74,129,237,74,
+  3,204,74,136,236,74,204,66,204,74,172,74,204,74,172,66,172,66,171,66,
+  5,139,66,142,171,66,139,66,107,66,106,66,106,58,139,66,107,66,106,58,
+  106,58,106,66,41,58,168,41,135,33,41,50,5,74,58,3,41,58,136,41,
+  50,41,58,42,58,9,58,233,49,233,49,9,58,9,58,4,9,50,138,37,
+  33,130,16,228,24,37,33,228,32,195,32,130,24,65,8,65,8,70,33,40,
+  4,142,13,75,13,83,45,83,45,83,13,75,13,75,45,83,13,83,45,75,
+  45,83,13,75,13,75,237,74,237,66,3,13,75,130,237,74,237,66,3,13,
+  75,142,237,74,13,75,13,75,237,66,237,66,205,66,204,66,172,58,107,58,
+  74,58,41,58,41,50,74,58,171,58,3,172,58,157,140,50,107,50,139,50,
+  140,58,204,74,78,99,17,124,211,148,85,173,150,173,117,173,85,173,20,165,
+  211,156,211,156,178,156,146,148,113,148,49,140,48,140,48,140,81,148,178,156,
+  243,164,52,165,243,156,210,156,114,148,81,140,3,48,140,147,81,140,81,148,
+  114,148,146,148,211,156,243,164,20,173,52,173,85,181,117,181,150,181,182,189,
+  182,189,182,181,150,181,117,173,85,173,243,156,179,148,3,146,148,155,178,148,
+  211,156,243,156,243,156,19,157,243,164,243,156,243,156,243,164,52,173,85,181,
+  149,181,117,181,84,173,211,156,114,140,49,124,50,116,82,116,17,116,12,83,
+  102,33,98,8,130,16,37,25,237,74,240,107,6,114,124,3,114,116,139,82,
+  116,82,116,81,116,49,108,49,116,49,116,50,116,50,116,82,116,82,116,82,
+  124,10,82,116,3,114,116,150,82,116,114,116,114,116,82,116,49,116,82,116,
+  147,132,146,132,207,99,175,99,240,107,240,115,81,116,146,132,146,132,81,124,
+  48,124,48,124,81,132,146,140,178,140,178,140,3,179,140,130,178,140,178,140,
+  4,179,140,3,146,132,4,114,124,133,207,115,12,91,138,74,106,66,138,66,
+  19,138,74,141,170,74,138,74,170,74,170,74,170,82,170,74,170,74,138,74,
+  138,74,170,74,171,74,170,74,170,82,4,170,74,139,170,82,203,82,203,82,
+  235,82,12,91,236,90,12,83,12,91,12,91,12,83,12,91,8,44,91,129,
+  45,99,5,44,91,132,44,99,44,91,44,91,45,99,4,44,91,140,45,91,
+  45,91,77,99,44,91,77,91,44,91,77,91,45,91,44,91,44,99,45,99,
+  76,91,5,44,91,130,77,99,44,91,3,45,99,132,44,91,45,91,77,91,
+  45,91,3,44,91,129,45,91,3,44,91,4,45,91,8,44,91,130,12,91,
+  44,91,4,12,91,129,44,91,3,12,91,4,12,83,8,12,91,4,44,91,
+  129,12,83,5,12,91,6,12,83,129,236,82,3,12,83,133,12,91,236,82,
+  12,83,235,82,12,83,3,236,82,134,12,83,236,82,235,82,236,82,12,83,
+  12,83,6,236,82,3,235,82,129,203,82,6,235,82,146,203,82,203,74,203,
+  82,235,82,203,82,203,74,203,74,171,74,171,82,203,74,171,74,203,74,171,
+  74,203,74,170,74,171,74,203,74,203,82,6,203,74,131,203,82,203,74,203,
+  82,3,203,74,134,203,82,203,74,235,74,203,74,203,82,235,82,3,203,82,
+  132,203,74,203,74,235,82,203,74,3,203,82,130,203,74,203,74,4,203,82,
+  132,203,74,203,82,203,82,203,74,6,203,82,9,203,74,140,203,82,203,82,
+  203,74,171,82,203,82,203,74,203,74,171,74,171,74,203,74,203,82,203,74,
+  4,203,82,132,203,74,203,74,203,82,171,74,4,203,74,130,170,74,171,74,
+  10,170,74,151,171,74,170,74,171,74,171,74,138,74,105,74,105,74,170,74,
+  12,91,45,99,40,74,235,90,240,115,203,82,166,49,166,49,65,8,97,8,
+  231,57,236,90,12,99,105,74,203,98,3,170,90,153,73,74,36,33,162,16,
+  163,24,195,24,195,24,130,16,130,16,37,41,80,148,150,181,117,181,182,189,
+  143,91,176,91,144,91,143,91,176,91,201,41,98,16,195,24,227,24,98,16,
+  9,58,175,91,15,176,91,130,175,91,144,91,3,176,91,137,111,91,172,66,
+  102,33,98,8,97,8,195,16,232,41,237,74,143,91,8,176,91,133,175,91,
+  176,91,143,91,176,91,175,91,5,176,91,131,144,91,143,91,143,83,5,143,
+  91,129,143,83,5,111,83,134,110,83,111,83,111,83,78,83,78,83,110,83,
+  6,78,83,4,46,83,129,78,83,6,46,83,136,13,83,45,83,45,83,13,
+  75,13,83,13,83,13,75,45,83,4,13,75,131,45,83,13,75,13,83,4,
+  13,75,133,13,83,13,75,13,75,237,74,237,74,3,13,75,131,13,83,13,
+  75,13,75,3,237,74,162,236,74,237,74,205,74,204,74,204,74,236,74,204,
+  66,204,74,204,74,172,74,172,66,204,66,204,74,172,66,171,66,139,66,106,
+  58,106,66,139,66,139,66,171,66,139,66,138,66,106,58,139,66,107,66,106,
+  58,107,58,139,66,106,66,200,49,135,41,9,50,106,58,6,74,58,136,41,
+  58,42,58,41,58,41,58,42,58,42,50,233,49,233,49,3,9,50,140,9,
+  58,70,33,130,16,37,33,101,41,4,33,163,24,97,16,65,8,65,8,102,
+  25,232,41,19,4,146,13,83,13,75,45,75,13,83,13,75,45,75,45,75,
+  45,83,45,75,13,75,13,75,237,74,237,66,237,74,13,75,237,74,13,75,
+  237,66,4,13,75,129,237,74,3,237,66,132,204,66,204,66,171,58,139,58,
+  3,41,50,171,106,58,139,58,171,66,172,66,172,58,172,58,107,50,107,58,
+  173,82,176,107,179,148,85,165,117,173,117,173,20,165,178,156,113,148,81,148,
+  178,148,243,156,211,148,146,148,49,132,48,132,81,140,178,148,20,165,52,165,
+  19,157,178,148,81,140,48,140,16,132,48,140,48,140,81,140,49,140,81,140,
+  81,140,113,148,114,148,178,156,211,156,4,243,164,172,211,164,243,164,19,165,
+  52,173,84,173,117,181,182,181,182,181,150,181,117,181,85,173,52,173,243,164,
+  179,156,146,156,178,156,210,156,243,164,243,164,19,165,20,165,52,165,20,165,
+  243,164,19,165,52,173,84,181,117,181,117,181,20,165,178,148,114,132,49,124,
+  110,99,41,58,162,8,130,16,162,16,41,50,143,91,82,116,114,124,114,116,
+  114,124,4,114,116,136,114,124,114,116,82,116,82,116,49,116,49,108,49,116,
+  49,116,3,82,116,129,82,124,7,82,116,129,82,124,3,82,116,129,114,116,
+  6,82,116,136,241,107,82,116,179,132,110,91,143,91,207,99,239,107,48,116,
+  3,81,124,132,48,124,16,124,49,124,146,140,4,146,132,130,114,132,146,132,
+  4,114,124,132,113,124,146,132,49,116,16,116,3,16,108,143,49,116,207,107,
+  208,99,142,99,12,83,138,74,106,66,138,74,105,66,138,66,138,66,138,74,
+  138,66,138,74,105,74,3,138,74,129,106,74,9,138,74,132,170,74,170,74,
+  138,74,138,74,10,170,74,3,170,82,135,203,82,171,82,203,82,235,82,235,
+  82,236,82,235,82,3,12,91,4,44,91,131,12,91,44,91,12,91,7,44,
+  91,3,12,91,8,44,91,129,45,91,11,44,91,129,44,99,7,44,91,134,
+  45,91,44,91,44,91,12,91,44,91,45,91,7,44,91,130,12,91,12,91,
+  3,44,91,8,12,91,129,12,83,3,12,91,4,12,83,9,12,91,133,44,
+  91,12,91,12,91,44,91,12,83,3,12,91,8,12,83,129,44,91,7,12,
+  83,129,11,83,3,235,82,130,12,83,235,82,4,236,82,3,235,82,146,236,
+  82,235,82,235,82,203,82,235,82,203,82,204,82,235,82,235,82,203,74,235,
+  82,203,82,203,82,235,82,235,82,203,82,203,74,235,82,5,203,74,4,203,
+  82,129,171,74,4,203,82,3,203,74,144,171,74,203,82,203,74,170,74,171,
+  74,203,74,203,74,171,74,170,74,171,74,203,74,203,74,203,82,203,74,171,
+  74,203,82,3,203,74,146,203,82,203,74,203,82,203,82,203,74,203,82,203,
+  82,203,74,203,82,171,74,203,74,171,74,203,82,171,74,203,74,171,74,202,
+  74,203,82,4,203,74,129,203,82,3,203,74,136,203,82,203,74,203,74,203,
+  82,170,74,171,74,170,74,170,74,3,203,74,139,171,74,203,82,203,82,171,
+  74,203,74,203,82,203,74,171,74,203,74,171,74,203,82,4,171,74,5,170,
+  74,132,138,74,138,74,170,74,170,74,6,138,74,181,170,74,138,74,106,74,
+  105,66,73,66,138,74,12,91,44,99,40,66,203,90,17,124,236,90,199,57,
+  166,57,65,8,65,8,199,57,236,90,235,90,105,74,203,98,170,90,138,82,
+  134,49,163,24,163,16,195,24,227,24,162,16,130,16,130,16,102,49,235,98,
+  113,148,117,181,117,181,182,189,175,99,144,91,144,91,208,91,205,66,99,16,
+  195,24,227,24,162,16,4,33,110,83,143,83,143,91,144,91,176,91,175,83,
+  14,176,91,140,175,91,176,91,176,91,79,91,172,66,69,25,97,8,65,8,
+  163,8,199,33,236,74,111,83,16,176,91,130,175,91,175,91,7,143,91,131,
+  143,83,143,91,143,91,5,111,83,134,111,91,111,83,78,83,111,83,110,83,
+  111,83,8,78,83,6,46,83,139,13,83,45,83,45,83,45,75,45,83,13,
+  83,14,83,46,83,45,83,13,83,13,75,3,13,83,132,13,75,13,83,13,
+  75,13,75,3,13,83,129,13,75,3,237,74,5,13,75,130,237,74,13,75,
+  3,237,74,131,236,74,236,74,237,74,6,204,74,137,204,66,172,66,204,66,
+  172,74,172,66,172,66,139,66,74,58,106,58,8,139,66,138,107,58,139,66,
+  139,66,9,58,135,41,9,50,106,58,106,58,74,66,107,66,3,74,58,151,
+  41,58,42,58,42,58,41,50,41,50,9,50,233,49,9,50,9,50,9,58,
+  41,58,102,41,98,16,4,33,102,41,227,24,162,24,98,16,65,8,65,8,
+  103,33,233,41,200,41,48,4,131,13,83,13,75,45,75,8,13,75,135,237,
+  66,205,66,237,66,237,74,13,75,13,75,13,67,3,13,75,130,13,67,13,
+  75,3,237,66,175,204,66,171,58,107,58,73,58,41,50,41,50,106,58,139,
+  58,204,66,204,66,172,58,172,58,172,66,14,91,17,132,244,156,117,173,85,
+  173,20,165,178,156,48,140,16,132,81,140,178,148,243,156,211,148,113,140,48,
+  132,49,140,146,148,211,148,211,156,146,148,48,132,207,123,207,123,81,140,178,
+  148,211,156,211,156,210,156,178,148,178,156,178,156,211,156,211,156,243,156,6,
+  243,164,151,211,156,211,156,210,156,178,156,146,148,178,148,178,156,211,156,19,
+  165,85,173,149,181,182,181,182,189,182,189,117,181,85,173,20,173,243,164,20,
+  173,19,173,20,173,19,173,19,165,4,20,165,157,19,165,19,165,52,173,84,
+  181,117,181,84,173,243,164,114,140,13,91,5,25,65,8,98,16,102,33,13,
+  75,241,115,114,124,114,124,114,116,114,124,114,124,82,116,114,124,114,116,114,
+  116,82,116,50,116,49,108,49,116,49,116,9,82,116,129,50,116,5,82,116,
+  129,114,124,8,82,116,156,50,116,82,116,240,107,110,83,175,99,207,107,16,
+  116,240,115,49,116,49,124,16,116,16,116,49,124,146,132,114,124,114,124,146,
+  132,146,132,114,124,146,124,81,116,81,124,81,116,82,124,81,124,146,132,16,
+  116,240,107,3,16,108,152,49,116,175,99,143,91,143,91,110,91,142,99,12,
+  91,231,49,138,66,138,66,105,66,105,74,105,66,105,66,106,74,106,74,105,
+  74,106,74,106,74,105,74,106,74,106,66,138,74,105,74,8,138,74,129,170,
+  74,3,138,74,131,170,74,170,74,171,74,5,170,74,139,138,74,170,82,170,
+  74,170,74,171,82,203,82,203,82,235,82,235,82,235,90,236,90,5,12,91,
+  131,44,91,12,91,12,91,5,44,91,129,12,91,11,44,91,132,45,91,44,
+  91,44,91,76,91,4,44,91,129,12,91,11,44,91,129,45,91,10,44,91,
+  129,12,91,3,44,91,132,12,91,12,91,44,91,44,91,6,12,91,131,12,
+  83,12,83,12,91,3,12,83,135,44,91,12,91,12,83,12,91,12,83,12,
+  91,12,83,6,12,91,3,12,83,133,12,91,12,91,12,83,12,83,12,91,
+  6,12,83,131,12,91,12,83,12,91,6,12,83,136,235,82,236,82,12,83,
+  236,82,236,82,235,82,236,82,235,82,4,236,82,132,235,82,203,82,235,82,
+  236,82,4,235,82,134,203,82,203,82,203,74,203,82,203,74,203,74,4,203,
+  82,132,235,82,203,82,203,74,203,74,3,203,82,130,203,74,203,74,3,171,
+  74,144,203,74,171,82,203,74,170,74,203,74,171,82,170,74,170,74,203,82,
+  171,74,171,74,170,74,170,74,203,82,170,74,171,74,6,170,74,131,203,74,
+  203,74,203,82,3,170,74,143,203,74,171,74,170,74,203,74,171,74,170,74,
+  171,74,170,74,170,74,171,74,203,82,170,74,170,74,171,74,170,74,4,171,
+  74,129,170,74,4,171,74,4,170,74,132,171,74,170,74,170,74,171,74,4,
+  170,74,134,171,74,170,74,170,74,203,74,170,74,171,74,3,170,74,134,138,
+  74,170,74,170,74,138,74,138,74,170,74,3,138,74,131,138,66,105,66,138,
+  74,3,138,66,156,138,74,106,66,138,74,138,74,106,74,138,74,105,66,105,
+  66,73,66,106,74,236,82,77,99,41,66,203,90,207,115,236,90,199,57,166,
+  49,65,8,65,8,199,57,236,90,12,91,138,74,203,90,8,66,3,33,163,
+  24,3,195,24,155,130,16,98,16,195,24,199,57,138,82,235,98,113,148,117,
+  181,117,181,182,189,240,107,144,91,176,91,143,83,5,25,162,16,4,33,195,
+  24,163,24,204,74,176,91,144,83,144,91,143,91,144,91,176,91,175,91,14,
+  176,91,140,175,91,143,91,176,91,79,83,139,66,37,25,65,0,65,8,162,
+  16,167,33,172,66,111,83,17,176,91,5,143,91,130,143,83,143,91,6,111,
+  91,132,111,83,110,83,111,83,111,83,5,110,83,6,78,83,130,46,83,45,
+  83,4,46,83,131,14,83,46,83,46,75,4,45,83,144,13,83,46,83,45,
+  83,13,75,13,83,45,83,13,83,45,83,13,83,13,83,13,75,13,83,13,
+  83,45,83,13,75,13,83,3,13,75,130,13,83,13,83,3,13,75,3,237,
+  74,129,236,74,3,237,74,130,236,74,236,74,3,204,74,130,236,74,236,74,
+  4,204,74,130,172,74,172,74,10,139,66,141,107,66,107,66,139,66,139,66,
+  41,58,167,41,200,41,106,66,106,58,74,58,74,66,74,58,74,58,5,42,
+  58,130,41,58,9,58,3,9,50,142,41,58,167,49,130,16,228,24,37,33,
+  195,24,130,16,98,16,65,8,65,8,70,33,232,41,232,41,200,41,246,3,
+  129,236,74,6,13,75,129,45,75,3,13,75,135,236,66,237,66,237,66,237,
+  74,237,74,13,75,13,67,3,13,75,204,237,66,237,74,237,66,237,66,204,
+  66,172,58,106,58,73,58,41,50,41,58,106,58,139,58,171,66,204,66,172,
+  66,204,74,111,99,114,140,53,165,117,173,84,173,210,156,81,148,239,131,239,
+  123,81,140,211,148,243,156,178,148,49,140,16,132,48,140,113,140,114,140,48,
+  132,207,123,142,115,77,107,77,115,16,132,211,156,211,156,146,148,113,148,81,
+  140,49,140,81,140,81,148,81,148,81,140,16,140,48,140,113,148,146,156,146,
+  148,146,148,81,140,16,140,239,131,207,131,207,131,239,131,240,139,16,140,16,
+  140,49,140,81,148,114,148,146,156,243,164,52,173,117,181,150,181,182,189,150,
+  189,117,181,5,85,181,131,84,181,52,173,20,173,4,20,165,154,243,164,19,
+  173,52,173,84,181,84,181,52,165,207,123,37,41,97,16,131,16,106,58,175,
+  99,82,124,114,124,114,124,114,116,114,124,114,124,114,116,114,124,114,116,82,
+  116,50,116,49,108,49,108,49,116,23,82,116,129,50,116,3,82,116,139,175,
+  99,110,91,208,107,240,115,240,115,17,116,49,116,16,124,16,116,81,124,146,
+  132,6,114,124,131,81,116,81,116,49,116,3,81,124,6,240,107,142,175,99,
+  143,91,143,91,110,91,175,99,110,99,134,33,195,16,135,41,73,58,105,66,
+  106,74,105,66,73,66,4,105,66,130,73,66,105,66,4,105,74,131,106,74,
+  138,74,105,74,3,138,74,129,106,74,10,138,74,131,170,74,138,74,138,74,
+  4,170,74,131,170,82,170,82,171,82,3,203,82,134,235,82,235,82,235,90,
+  12,91,12,91,44,91,13,12,91,138,44,91,12,91,44,91,12,91,44,91,
+  12,91,12,91,44,91,12,91,12,91,5,44,91,4,12,91,134,44,91,44,
+  91,12,91,44,91,44,91,12,91,5,44,91,130,12,91,44,91,3,12,91,
+  137,44,91,44,91,12,91,12,83,12,91,44,91,12,91,12,91,12,83,5,
+  12,91,139,12,83,12,91,12,83,12,83,12,91,236,82,12,83,235,82,236,
+  82,235,82,11,83,3,12,91,129,236,82,3,12,83,132,235,82,12,91,12,
+  83,236,82,3,12,83,135,12,91,12,83,236,82,236,82,12,83,235,82,235,
+  82,4,12,83,131,236,82,235,82,236,82,5,235,82,134,203,82,235,82,203,
+  82,203,74,203,74,203,82,3,203,74,134,203,82,203,82,203,74,203,74,235,
+  82,171,74,7,203,74,4,171,74,131,203,74,203,74,171,74,7,170,74,129,
+  203,74,8,170,74,129,170,82,3,170,74,129,171,74,12,170,74,131,138,74,
+  170,74,138,74,14,170,74,129,138,74,7,170,74,130,138,74,138,74,6,170,
+  74,3,138,74,129,138,66,6,138,74,129,170,74,11,138,74,135,138,66,137,
+  66,138,66,105,66,138,66,105,66,106,66,5,105,66,132,106,66,106,66,105,
+  66,105,66,5,73,66,146,41,66,106,74,203,82,77,99,105,74,203,90,16,
+  124,12,91,199,57,199,57,97,8,65,8,166,49,203,90,12,99,105,74,101,
+  41,162,24,3,195,24,153,162,16,130,16,97,8,4,33,170,82,170,90,137,
+  82,170,90,113,148,117,181,117,181,182,189,241,107,144,91,176,91,233,41,130,
+  16,4,33,4,33,130,16,200,49,175,91,144,91,143,91,143,91,3,144,91,
+  129,143,91,12,176,91,148,144,91,176,91,176,91,144,91,176,91,176,91,79,
+  83,139,58,37,25,65,0,65,8,130,8,102,25,138,58,78,83,143,91,176,
+  91,144,91,144,83,144,83,9,176,91,129,175,91,8,143,91,130,143,83,143,
+  91,3,111,91,129,110,91,5,111,83,133,110,83,111,83,78,83,78,83,78,
+  91,5,78,83,7,46,83,165,45,83,45,83,13,75,45,83,13,75,13,75,
+  45,83,13,83,13,75,13,83,13,83,45,83,13,75,13,75,13,83,13,75,
+  13,75,13,83,13,83,45,83,13,83,13,75,13,83,13,75,13,75,13,83,
+  13,75,13,83,13,83,13,75,13,83,237,74,237,74,236,74,237,74,236,74,
+  236,74,11,204,74,131,172,74,172,74,172,66,3,171,66,131,139,66,139,66,
+  171,66,5,139,66,144,138,66,139,66,74,66,135,41,232,49,75,58,75,58,
+  106,58,106,58,74,58,74,58,74,66,42,66,42,58,74,58,42,58,3,41,
+  58,140,233,49,41,58,232,57,163,16,195,16,4,25,163,24,130,16,98,16,
+  65,8,66,8,70,33,3,232,41,1,200,41,86,4,129,12,75,10,13,75,
+  134,237,74,236,66,237,74,237,74,237,66,237,66,5,13,75,216,237,74,237,
+  66,236,66,172,66,107,58,41,50,9,50,41,50,74,58,139,58,171,66,172,
+  74,237,82,175,115,179,148,85,173,85,173,20,165,146,148,48,140,207,123,207,
+  123,114,140,243,156,243,148,146,140,48,132,240,131,48,132,49,140,16,132,174,
+  115,77,107,45,107,77,107,142,115,207,131,81,148,113,148,113,148,81,140,48,
+  140,239,131,16,132,178,148,178,156,113,148,16,132,239,131,113,148,210,164,210,
+  156,113,148,239,131,109,115,45,107,109,115,207,131,48,148,146,156,243,164,85,
+  173,150,181,182,189,215,189,215,189,247,189,215,189,182,181,117,181,52,173,52,
+  173,84,173,117,181,150,189,150,189,117,181,85,181,52,181,52,173,84,181,116,
+  181,116,181,84,181,52,181,19,173,243,164,244,164,3,243,164,153,52,173,84,
+  181,117,181,19,165,77,115,69,49,102,33,45,83,17,116,114,124,114,124,114,
+  116,114,124,114,116,114,116,114,124,114,116,82,116,49,116,17,108,17,108,49,
+  116,81,116,82,116,81,116,11,82,116,130,82,124,82,124,12,82,116,150,143,
+  91,175,99,240,115,207,107,16,116,240,115,16,116,16,116,114,132,146,132,113,
+  124,114,132,114,132,81,124,114,124,114,124,49,116,49,116,81,116,49,116,81,
+  124,81,116,4,240,107,144,16,116,240,107,175,99,143,99,142,91,110,91,175,
+  99,236,74,204,74,171,74,37,33,163,8,37,25,232,49,105,66,105,66,4,
+  73,66,130,105,66,105,66,3,73,66,3,105,66,5,105,74,133,106,74,105,
+  66,138,74,138,74,106,74,3,138,74,132,105,74,138,74,138,74,106,74,6,
+  138,74,3,170,74,130,203,82,171,82,5,203,82,137,235,82,203,82,235,82,
+  12,91,235,90,236,82,236,90,235,82,236,90,3,235,82,143,236,82,235,90,
+  235,82,12,91,236,90,235,82,236,90,12,91,235,82,12,91,12,91,236,82,
+  235,82,236,82,12,83,9,12,91,130,236,82,12,83,4,12,91,144,12,83,
+  12,91,12,91,12,83,44,99,44,91,12,91,12,91,12,83,235,82,12,91,
+  12,83,235,82,236,90,12,91,12,91,9,235,82,130,203,82,235,82,4,203,
+  82,9,235,82,131,203,74,235,82,236,82,6,235,82,132,236,82,203,82,235,
+  82,203,82,3,235,82,149,203,82,235,82,235,74,203,74,203,82,235,74,203,
+  74,203,82,203,74,203,82,203,82,203,74,203,74,171,74,203,74,170,74,171,
+  74,171,74,170,74,170,74,171,74,15,170,74,134,138,74,170,74,138,74,170,
+  74,138,74,138,74,3,170,74,4,138,74,130,138,66,138,66,4,138,74,129,
+  138,66,3,138,74,129,170,74,3,138,74,130,138,66,138,66,5,138,74,129,
+  138,66,5,138,74,131,138,66,138,66,138,74,3,138,66,163,138,74,138,74,
+  137,74,138,74,138,66,138,66,138,74,138,66,138,74,138,74,138,66,137,66,
+  138,74,138,74,138,66,138,74,138,66,138,74,138,66,138,66,138,74,138,74,
+  138,66,105,66,138,66,138,74,138,66,138,74,138,66,138,66,105,66,105,74,
+  105,66,106,66,106,66,3,105,66,131,106,74,106,66,106,66,5,105,66,134,
+  106,66,106,66,105,66,73,66,73,66,105,66,5,73,66,129,73,58,4,73,
+  66,173,41,66,40,58,41,66,40,66,106,74,203,82,45,91,171,74,170,82,
+  142,107,236,90,199,57,199,57,98,8,65,8,134,49,203,90,166,49,163,16,
+  163,24,227,24,228,24,195,24,162,16,130,16,163,24,199,57,170,90,235,90,
+  170,90,137,82,138,82,16,140,85,181,117,181,182,189,17,116,176,91,204,58,
+  130,8,195,24,4,33,163,24,228,32,46,83,4,143,91,136,144,91,143,91,
+  144,91,144,91,143,83,176,91,144,91,176,99,9,176,91,148,144,91,176,91,
+  143,91,175,91,176,91,144,91,79,83,172,58,102,25,98,8,65,8,65,8,
+  4,25,9,50,236,66,111,83,144,83,144,91,144,83,144,83,5,176,91,131,
+  175,91,176,91,176,91,12,143,91,140,111,91,111,83,110,83,111,91,111,91,
+  111,83,111,83,110,83,111,83,78,91,110,83,110,91,7,78,83,7,46,83,
+  140,45,83,46,83,13,83,45,83,45,83,13,75,45,83,45,83,13,83,13,
+  83,45,83,45,83,3,13,83,134,13,75,13,83,45,83,45,83,13,83,13,
+  75,3,13,83,132,237,74,237,74,13,75,13,75,3,13,83,139,237,74,13,
+  75,236,74,236,74,237,74,204,74,236,74,236,74,237,74,236,74,236,74,7,
+  204,74,132,172,74,172,66,172,74,171,74,4,171,66,5,139,66,136,171,66,
+  106,66,167,41,200,49,74,66,139,66,106,66,106,66,3,74,58,129,74,66,
+  3,74,58,147,42,58,74,58,9,58,233,49,9,58,227,24,98,16,228,24,
+  163,24,98,16,97,8,65,8,33,8,70,25,233,49,200,49,200,49,232,41,
+  200,41,254,3,129,237,74,3,13,75,129,12,75,6,13,75,129,237,74,4,
+  237,66,130,237,74,13,75,4,237,74,186,237,66,204,66,172,66,139,58,74,
+  58,41,50,41,50,74,58,139,58,171,66,237,82,175,107,179,148,85,165,84,
+  173,243,164,146,148,16,140,207,123,239,131,114,140,243,156,243,156,146,148,16,
+  132,239,131,240,131,239,123,175,115,110,107,77,107,109,107,207,123,16,140,113,
+  148,146,156,145,156,145,148,48,140,206,123,45,107,77,107,81,140,150,181,84,
+  173,145,148,239,131,81,148,178,156,145,156,208,123,42,74,102,49,232,65,171,
+  90,240,131,211,156,85,173,3,117,181,134,85,173,52,173,20,165,243,164,211,
+  156,178,156,4,146,148,141,178,148,146,148,178,156,243,164,52,173,117,181,149,
+  181,117,181,85,181,20,173,243,164,52,173,84,181,3,117,189,143,84,181,20,
+  173,243,164,243,164,211,164,211,164,19,173,84,181,117,181,19,173,109,115,171,
+  82,143,99,82,116,82,124,3,114,124,137,114,116,82,116,114,116,49,108,17,
+  108,240,99,241,99,17,108,49,116,22,82,116,129,50,116,4,82,116,146,17,
+  108,143,91,240,107,207,107,240,115,207,107,240,115,16,116,146,132,113,132,81,
+  124,114,124,114,124,113,124,113,124,81,124,49,116,49,116,3,81,124,129,49,
+  116,4,240,107,148,16,108,208,107,175,99,142,99,143,99,143,99,175,99,139,
+  66,106,58,45,75,143,91,172,74,102,33,130,8,131,8,70,33,9,58,105,
+  66,73,66,41,66,13,73,66,131,73,74,105,66,105,66,7,105,74,129,106,
+  74,5,105,74,134,138,66,105,74,106,74,137,74,138,74,138,74,4,170,74,
+  135,170,82,170,82,171,82,171,82,203,82,171,82,170,74,20,203,82,4,235,
+  82,4,203,82,12,235,82,132,203,82,44,91,44,99,203,82,3,235,82,129,
+  203,82,3,235,82,134,203,82,235,82,203,74,203,82,203,82,202,74,6,203,
+  82,135,170,74,203,82,203,82,203,74,203,74,202,74,170,74,4,203,74,130,
+  203,82,171,74,4,203,74,4,203,82,6,203,74,135,171,74,203,74,171,74,
+  203,74,171,74,203,74,203,74,3,171,74,130,203,74,203,74,10,170,74,129,
+  171,74,7,170,74,137,138,74,138,74,170,74,138,74,138,74,138,66,170,66,
+  138,74,138,66,3,138,74,130,138,66,138,66,3,138,74,4,105,66,132,137,
+  74,105,66,138,66,138,66,8,105,66,137,138,66,106,66,105,66,137,66,105,
+  66,105,66,138,66,105,66,138,66,3,105,66,130,105,74,105,74,17,105,66,
+  131,106,66,105,66,106,66,11,105,66,134,106,66,105,66,105,66,73,66,73,
+  66,105,66,4,73,66,135,105,66,73,66,73,66,105,66,73,66,73,66,73,
+  58,5,73,66,129,41,58,6,73,66,189,40,66,40,58,40,58,41,58,40,
+  58,41,58,41,66,40,58,41,58,8,58,40,58,8,58,8,58,40,66,105,
+  74,138,74,12,91,204,82,171,82,142,107,12,91,199,57,199,57,98,8,98,
+  8,69,41,195,24,130,16,195,24,4,33,195,24,162,16,98,16,98,16,36,
+  41,40,66,138,82,138,82,203,90,170,82,105,82,105,74,239,131,52,173,84,
+  173,150,189,49,124,79,75,196,16,130,16,227,32,195,24,163,24,106,66,111,
+  83,143,83,143,91,143,91,111,91,144,91,143,91,4,144,91,133,176,91,144,
+  91,176,91,176,91,144,91,9,176,91,147,144,91,176,91,143,91,176,91,79,
+  91,172,66,135,33,130,8,65,8,65,8,162,16,134,25,139,50,46,75,143,
+  83,176,91,144,83,176,91,143,91,3,176,91,129,143,91,5,176,91,131,175,
+  91,143,91,144,91,8,143,91,4,111,83,145,111,91,110,91,78,83,110,91,
+  111,83,79,91,110,83,110,83,110,91,78,83,78,91,78,83,78,83,46,83,
+  78,83,46,83,78,83,6,46,83,4,45,83,149,46,83,45,83,13,75,13,
+  75,13,83,13,83,13,75,13,83,45,83,45,83,46,83,13,75,13,75,46,
+  83,45,83,13,83,13,83,13,75,237,74,13,83,45,83,3,13,83,131,13,
+  75,237,74,237,74,5,236,74,131,204,74,204,74,236,74,7,204,74,151,172,
+  74,172,66,172,66,171,66,171,66,172,66,171,66,139,66,139,66,171,66,139,
+  66,139,74,139,66,106,66,106,66,233,49,200,49,42,58,106,58,106,58,74,
+  58,106,58,106,58,4,74,58,144,42,58,74,58,74,58,41,58,42,58,37,
+  33,98,16,162,16,163,16,98,16,97,16,65,8,33,8,37,25,9,42,233,
+  49,4,200,41,28,4,10,13,75,132,237,74,237,74,237,66,237,66,4,237,
+  74,195,13,75,237,66,237,66,236,66,204,66,172,66,171,66,74,58,41,50,
+  9,50,74,58,106,66,204,82,143,107,179,148,84,165,84,165,211,156,146,148,
+  16,140,239,131,240,131,113,140,243,156,243,156,146,148,48,140,239,131,207,123,
+  174,115,110,107,77,107,142,115,239,131,81,140,146,148,178,156,178,156,145,148,
+  80,140,206,131,11,107,105,82,171,90,49,140,150,181,182,181,243,164,239,131,
+  239,131,113,148,81,140,178,115,82,58,13,33,43,82,81,140,85,173,182,181,
+  150,181,150,173,117,173,85,173,85,173,84,173,84,173,85,173,3,117,173,165,
+  117,181,84,173,20,165,178,156,114,148,113,140,114,148,146,148,146,148,178,148,
+  211,156,20,165,85,173,117,181,149,181,85,181,19,165,178,156,178,156,243,164,
+  84,181,149,181,150,189,149,189,117,181,84,181,20,165,211,164,178,156,210,164,
+  52,181,116,181,243,164,239,131,16,124,114,124,82,116,4,114,116,135,82,116,
+  17,108,240,107,175,91,176,99,241,107,17,108,24,82,116,154,50,116,50,116,
+  49,116,82,116,240,107,208,107,240,107,240,107,207,107,207,107,240,115,146,132,
+  114,124,114,132,114,132,114,124,146,124,81,124,81,116,81,116,81,124,82,124,
+  82,124,49,116,16,108,17,108,4,240,107,158,175,99,175,99,143,91,143,99,
+  143,99,110,91,138,66,138,58,106,50,13,67,143,91,110,83,114,116,143,99,
+  106,66,102,33,228,16,134,33,41,58,41,66,73,66,40,66,40,66,41,66,
+  73,66,41,66,41,66,73,66,41,66,41,66,19,73,66,3,105,74,139,105,
+  66,105,74,105,74,138,74,137,74,137,74,138,74,138,74,137,74,138,74,105,
+  74,20,170,74,132,171,82,203,82,171,82,203,74,3,171,74,130,203,82,170,
+  82,3,170,74,155,171,82,170,82,203,74,170,74,170,74,202,74,202,74,171,
+  74,170,74,170,82,170,82,170,74,170,82,170,74,203,82,171,82,202,74,170,
+  74,171,82,171,74,203,82,203,82,170,74,170,74,170,82,170,74,170,82,12,
+  170,74,129,171,74,11,170,74,129,171,74,6,170,74,129,138,74,5,170,74,
+  129,171,74,7,170,74,156,138,74,170,74,138,74,170,74,138,74,138,66,170,
+  74,138,66,138,74,138,66,138,66,138,74,138,74,138,66,137,66,106,66,138,
+  66,138,66,137,66,138,74,138,66,138,74,138,66,138,66,137,66,105,66,138,
+  66,106,66,6,105,66,138,73,66,105,66,73,66,105,66,73,66,105,66,73,
+  66,105,66,73,58,73,66,3,105,66,137,73,66,73,66,105,66,73,66,73,
+  66,105,66,73,66,105,66,73,66,3,105,66,131,73,66,73,66,105,66,9,
+  73,66,129,73,58,3,105,66,129,73,58,4,73,66,129,105,66,6,73,66,
+  130,73,58,73,58,7,73,66,152,41,66,73,58,73,58,73,66,41,58,40,
+  58,73,58,40,58,73,58,41,58,41,58,73,58,40,66,73,66,40,58,73,
+  58,73,66,73,66,40,58,41,58,40,66,40,58,40,58,41,66,3,40,58,
+  135,8,58,40,58,8,58,40,58,8,58,8,58,8,50,4,8,58,142,8,
+  50,232,57,8,58,232,57,232,57,41,66,106,74,204,82,13,91,138,74,239,
+  123,45,99,232,57,166,57,3,163,24,158,195,24,228,32,195,24,163,24,130,
+  16,98,16,195,24,199,57,73,74,72,74,40,74,40,74,170,82,170,82,73,
+  74,105,74,239,131,84,173,84,173,150,189,114,132,136,33,98,16,195,24,195,
+  24,130,16,200,49,111,83,143,83,143,91,3,144,91,5,143,91,130,144,91,
+  144,91,18,176,91,140,111,91,237,74,232,41,195,8,65,0,33,0,98,8,
+  36,17,9,42,237,74,110,83,144,91,5,176,91,137,175,91,143,91,176,91,
+  176,91,175,91,175,91,144,91,143,91,175,91,6,143,91,146,111,91,111,83,
+  111,91,111,83,111,91,111,91,110,91,111,91,111,91,110,83,111,83,78,83,
+  110,91,110,91,78,83,78,83,78,91,78,91,4,78,83,129,46,83,3,78,
+  83,133,45,83,46,83,45,83,46,83,46,83,3,45,83,132,45,75,13,75,
+  13,75,13,83,3,13,75,3,13,83,5,13,75,131,13,83,237,74,236,74,
+  4,13,75,132,237,74,236,74,237,74,205,74,12,204,74,130,172,74,172,74,
+  4,172,66,3,171,66,4,139,66,144,107,66,107,66,106,66,106,58,106,58,
+  9,58,200,49,9,50,106,58,74,58,74,58,74,66,74,58,74,58,74,66,
+  74,66,3,74,58,132,42,58,74,58,167,41,98,16,3,130,16,133,97,8,
+  65,8,33,8,4,25,41,50,4,232,49,130,200,41,200,49,101,4,6,13,
+  75,129,236,74,4,13,75,199,237,74,237,66,237,74,237,74,237,66,237,74,
+  237,74,236,66,237,66,204,66,204,66,172,58,139,58,74,58,41,50,41,50,
+  42,58,139,74,110,107,146,140,52,165,52,165,211,156,113,148,81,140,16,132,
+  240,131,81,140,211,156,19,157,178,148,48,140,239,131,174,123,142,115,109,107,
+  109,107,239,131,81,140,146,148,178,156,146,156,145,156,113,148,48,140,174,131,
+  233,130,102,114,73,82,207,123,117,173,182,181,117,181,146,148,174,123,16,140,
+  81,148,239,131,144,115,146,107,83,140,85,173,182,181,117,173,52,165,19,165,
+  211,156,211,156,210,156,178,156,178,156,5,146,148,134,178,156,211,156,243,164,
+  52,173,85,173,150,181,4,182,181,168,117,173,85,173,85,173,20,165,243,164,
+  52,173,85,181,117,181,117,181,20,173,178,156,113,148,114,148,211,156,52,173,
+  117,181,150,189,182,189,150,189,117,181,243,164,146,156,243,172,52,181,84,181,
+  243,164,178,148,114,132,82,124,82,116,82,116,114,116,82,116,16,108,208,99,
+  143,99,143,91,240,99,17,108,49,116,11,82,116,129,82,124,9,82,116,130,
+  49,116,82,116,3,50,116,133,49,108,82,116,17,108,208,107,240,107,3,207,
+  107,129,114,132,5,240,107,130,49,116,207,99,3,175,99,130,207,107,240,107,
+  3,110,91,143,110,99,110,91,175,99,45,83,45,83,13,75,172,74,171,66,
+  12,83,33,0,98,0,130,0,163,0,232,33,46,75,4,212,124,146,82,116,
+  46,91,70,33,37,33,232,49,41,58,40,58,8,66,40,66,40,66,41,66,
+  9,66,41,66,41,66,40,66,73,66,40,66,41,66,9,40,66,3,41,66,
+  5,73,66,130,41,66,73,66,3,105,66,130,105,74,73,66,9,105,74,133,
+  105,66,137,74,138,74,138,74,105,74,6,138,74,129,137,74,9,138,74,133,
+  170,74,138,74,138,74,170,74,170,74,3,138,74,133,170,74,138,74,138,74,
+  170,74,170,74,4,138,74,4,170,74,137,138,74,170,74,138,74,138,74,170,
+  74,170,74,138,74,170,74,170,74,7,138,74,130,106,66,138,74,4,105,74,
+  132,137,74,105,66,137,66,138,66,5,138,74,131,137,66,138,74,138,66,3,
+  138,74,3,138,66,129,138,74,4,138,66,133,138,74,138,74,138,66,138,74,
+  137,66,3,138,66,129,138,74,4,138,66,134,105,66,105,66,138,66,105,66,
+  105,66,138,66,5,105,66,129,106,66,3,105,66,151,106,66,105,66,105,66,
+  106,66,105,66,105,66,73,66,105,66,73,66,105,66,73,66,105,66,105,66,
+  73,66,73,66,73,58,73,58,105,66,73,66,73,58,41,58,73,66,40,58,
+  3,73,58,148,41,58,73,58,41,58,73,58,73,58,73,66,73,66,41,58,
+  73,58,73,66,41,58,73,66,41,58,41,58,73,58,40,58,73,58,41,58,
+  41,58,73,66,3,73,58,141,40,58,73,66,73,58,41,58,73,58,41,58,
+  40,58,41,58,41,58,41,66,40,58,41,58,41,58,4,40,58,132,41,58,
+  40,58,41,58,41,58,4,40,58,133,41,58,41,58,40,58,40,58,41,58,
+  6,40,58,129,41,58,4,40,58,139,8,58,8,58,40,58,40,58,8,58,
+  40,58,8,58,41,66,8,58,40,58,40,58,7,8,58,131,231,49,8,50,
+  232,49,4,231,49,129,231,57,3,231,49,154,199,49,199,49,231,57,232,57,
+  199,49,8,58,106,74,203,82,45,91,171,82,16,124,12,91,101,41,227,24,
+  195,24,196,24,195,24,227,24,163,24,130,16,98,16,195,24,199,57,105,82,
+  73,74,40,74,3,8,66,146,105,74,170,90,105,82,105,82,206,123,85,181,
+  117,181,246,189,236,82,98,8,195,24,195,24,162,16,69,41,110,91,176,91,
+  144,91,176,91,7,143,91,129,176,91,3,143,91,6,176,91,130,175,91,175,
+  91,3,176,91,154,143,91,176,91,175,91,143,91,144,91,176,91,176,91,175,
+  91,13,83,74,58,37,25,98,8,65,8,65,8,163,16,102,33,106,58,13,
+  75,111,91,176,91,176,91,143,91,175,91,175,91,176,91,143,91,3,176,91,
+  7,143,91,139,111,91,143,91,143,91,111,91,111,83,111,83,111,91,111,91,
+  110,91,78,91,78,91,9,78,83,5,46,83,138,45,83,46,83,46,75,45,
+  75,45,83,45,83,13,83,13,75,13,83,13,83,3,13,75,130,237,74,237,
+  74,3,13,75,130,237,74,237,74,3,13,75,132,237,74,237,74,13,75,13,
+  75,3,237,74,139,236,74,236,74,237,74,237,74,204,66,205,66,204,66,204,
+  74,204,74,172,66,172,66,6,204,74,136,172,74,172,66,172,74,171,66,172,
+  74,172,66,171,66,172,66,3,171,66,4,139,66,129,171,66,3,139,66,138,
+  106,58,41,58,232,49,9,58,74,58,107,66,106,66,107,66,74,58,107,66,
+  3,106,66,3,74,58,145,41,58,163,16,97,8,130,16,98,16,98,16,65,
+  8,33,8,163,16,9,50,9,58,9,58,233,57,200,49,232,41,232,49,232,
+  49,96,4,140,13,75,237,74,237,74,12,75,13,75,13,75,237,74,13,75,
+  13,75,237,74,237,74,13,75,3,237,66,162,237,74,237,74,237,66,236,66,
+  237,66,204,66,172,66,106,58,74,58,41,58,41,58,106,74,45,99,82,132,
+  20,165,52,165,211,156,146,148,113,140,81,140,48,132,49,140,178,148,243,156,
+  210,156,81,140,239,131,174,115,110,115,77,107,142,115,16,132,146,148,178,156,
+  4,146,156,148,113,148,15,132,12,107,133,122,68,138,168,138,211,156,150,181,
+  85,173,117,173,210,156,114,148,211,164,20,173,52,173,85,173,150,173,149,173,
+  85,173,52,165,12,20,165,179,19,165,243,164,211,156,146,148,113,148,113,148,
+  81,140,114,148,211,156,20,165,85,173,117,181,85,173,243,164,146,148,81,140,
+  81,140,113,140,146,148,243,156,52,173,117,181,117,181,84,173,211,156,113,148,
+  49,140,113,148,210,156,20,165,117,181,149,189,182,189,149,189,84,181,19,173,
+  19,173,52,181,84,181,52,173,179,148,82,132,82,124,82,116,82,116,17,108,
+  175,99,111,91,143,91,240,99,17,108,6,82,116,129,49,116,9,82,116,131,
+  50,116,49,116,82,116,3,50,116,144,49,116,50,116,50,108,49,116,50,116,
+  49,116,49,108,81,116,240,107,240,107,207,107,175,107,240,115,81,124,240,107,
+  208,107,3,240,107,129,49,116,4,175,99,130,175,107,240,107,3,110,91,159,
+  110,99,110,99,175,99,45,83,45,83,13,83,237,74,13,83,171,66,98,8,
+  98,8,131,16,163,16,163,8,227,8,74,42,241,91,179,116,212,124,180,124,
+  180,124,212,132,204,82,98,8,37,25,134,41,8,58,40,58,40,66,8,66,
+  40,66,5,8,58,133,8,66,8,66,232,57,8,58,232,57,5,8,58,131,
+  40,58,40,66,40,66,3,40,58,130,40,66,40,66,3,41,66,3,73,66,
+  136,41,66,73,66,73,66,40,66,73,66,73,66,72,66,40,66,10,73,66,
+  134,105,66,73,66,105,66,73,66,73,66,105,74,6,105,66,130,73,66,105,
+  74,5,105,66,129,105,74,6,105,66,147,105,74,105,74,105,66,105,74,105,
+  74,105,66,138,74,105,66,105,74,105,74,105,66,105,74,105,74,137,74,105,
+  74,105,74,105,66,105,74,105,74,4,105,66,129,73,66,3,105,66,134,73,
+  66,105,66,73,66,73,66,105,66,73,66,3,105,66,129,73,66,4,105,66,
+  129,106,66,3,105,66,129,106,66,7,105,66,129,106,66,3,105,66,129,106,
+  66,3,105,66,129,105,58,6,105,66,155,73,66,73,66,105,58,106,66,73,
+  66,73,66,73,58,105,66,105,58,105,58,73,58,73,66,73,58,73,58,73,
+  66,73,66,73,58,73,58,41,58,73,58,73,66,41,66,73,66,73,58,41,
+  58,73,66,41,66,3,73,58,3,40,58,131,73,58,40,58,73,58,11,40,
+  58,132,41,58,40,58,40,58,8,58,5,40,58,131,41,58,40,58,8,58,
+  4,40,58,129,41,58,6,40,58,129,8,58,3,40,58,131,8,58,8,58,
+  8,50,3,8,58,129,40,58,5,8,58,132,40,58,8,58,8,58,8,50,
+  5,8,58,131,8,50,8,58,8,50,6,8,58,130,232,57,8,50,4,8,
+  58,129,232,57,5,8,58,133,232,49,231,57,232,57,8,50,232,49,3,231,
+  49,138,199,49,199,49,231,49,199,49,167,49,199,49,199,41,167,49,166,41,
+  166,41,3,199,49,147,8,58,73,74,203,82,77,91,138,74,41,58,228,24,
+  130,16,227,24,228,32,196,24,195,24,130,16,98,16,163,24,134,49,202,90,
+  137,82,105,82,5,40,74,143,138,82,235,90,138,82,105,74,142,123,84,181,
+  149,181,210,156,163,24,163,24,4,33,163,24,195,24,12,83,208,99,3,176,
+  91,129,175,91,6,143,91,139,144,91,143,83,143,91,176,91,175,91,143,91,
+  176,91,143,91,176,91,176,91,143,91,5,176,91,132,143,91,143,83,143,83,
+  144,91,3,176,91,147,144,91,78,83,139,66,134,33,163,16,65,0,65,8,
+  97,8,195,16,167,41,107,58,13,75,78,83,111,83,144,91,143,91,143,83,
+  144,91,143,91,4,143,83,135,143,91,111,91,143,91,143,91,110,83,111,83,
+  111,91,3,111,83,132,110,83,78,83,78,83,78,91,9,78,83,5,46,83,
+  135,46,75,46,83,13,83,46,75,13,83,13,75,45,75,7,13,75,4,237,
+  74,129,13,75,6,237,74,4,13,75,150,237,74,237,74,236,74,237,74,237,
+  74,236,74,237,74,237,74,205,66,204,66,237,74,204,74,204,74,172,66,204,
+  74,236,74,236,74,204,74,237,74,236,74,204,74,236,74,6,204,74,135,172,
+  74,172,74,172,66,171,74,139,66,171,74,172,74,4,171,66,145,139,66,106,
+  66,9,58,9,58,41,58,107,66,107,66,106,66,106,58,107,66,106,66,106,
+  66,74,66,74,66,74,58,74,66,37,33,3,98,16,141,97,8,65,8,65,
+  8,98,8,233,41,9,50,9,58,9,58,233,57,232,49,232,49,200,41,232,
+  41,84,4,132,237,74,237,74,13,75,236,74,4,13,75,129,12,75,3,13,
+  75,196,237,66,237,74,237,74,237,66,237,74,237,66,204,66,204,66,171,66,
+  106,58,74,58,9,58,73,66,236,90,49,132,20,157,52,165,243,164,146,148,
+  114,148,146,148,113,148,81,140,113,148,211,156,211,156,145,148,16,132,174,123,
+  109,115,109,115,207,123,49,140,178,156,178,156,113,148,81,148,243,164,20,165,
+  211,156,113,140,109,107,203,82,138,74,228,105,42,155,85,173,117,173,52,173,
+  117,173,85,173,20,165,243,164,243,164,52,173,85,173,85,173,85,165,52,165,
+  52,165,20,165,211,156,178,148,113,140,81,140,81,140,49,132,48,140,3,81,
+  140,181,113,140,113,148,146,148,210,156,211,156,243,164,19,165,243,164,211,156,
+  146,148,81,140,48,140,81,140,178,148,20,165,84,173,85,173,243,164,114,140,
+  17,124,240,123,240,123,49,132,146,148,19,165,85,181,117,181,84,181,243,164,
+  113,140,16,132,49,140,146,148,210,156,19,165,84,181,149,189,181,189,149,189,
+  84,181,52,181,84,181,84,181,20,173,178,148,82,132,49,116,240,107,175,99,
+  110,91,175,99,240,107,49,116,15,82,116,131,49,116,82,116,82,116,3,50,
+  116,149,49,116,50,116,50,108,50,108,49,108,49,116,50,116,49,116,49,116,
+  49,108,240,107,208,107,175,107,16,116,49,124,208,107,240,107,208,107,208,107,
+  240,107,16,116,4,175,99,130,207,99,207,99,4,110,91,130,142,99,143,99,
+  3,45,83,152,13,83,77,83,45,83,204,74,5,33,98,8,130,16,163,16,
+  195,24,163,16,131,8,37,9,107,50,143,83,115,108,212,116,21,133,175,99,
+  131,16,163,16,228,24,37,25,199,49,231,57,4,8,58,141,232,57,232,57,
+  231,49,231,57,231,57,199,49,199,57,231,57,231,57,232,57,231,57,8,58,
+  8,58,4,232,57,3,231,57,13,8,58,129,40,58,3,8,58,135,40,66,
+  8,58,40,58,8,66,40,58,40,66,8,58,3,40,58,135,73,66,41,66,
+  41,66,73,66,73,66,41,66,41,66,15,73,66,130,105,66,73,66,12,105,
+  66,129,105,74,4,105,66,132,73,66,105,66,73,66,105,66,4,73,66,129,
+  105,66,9,73,66,130,105,66,73,66,4,105,66,133,106,66,105,66,105,66,
+  73,66,105,66,3,73,66,132,105,66,105,66,73,66,73,66,3,105,66,154,
+  73,66,73,66,105,66,73,58,73,58,73,66,73,58,73,58,73,66,73,58,
+  73,58,73,66,73,58,73,58,41,58,73,58,73,58,41,58,73,58,41,58,
+  73,58,73,58,40,58,73,58,73,58,41,58,3,40,58,131,73,58,40,58,
+  41,58,3,40,58,137,41,58,40,58,40,58,8,58,40,58,8,58,8,58,
+  41,58,40,58,3,8,58,133,40,58,8,58,8,58,8,50,8,50,11,8,
+  58,130,8,50,8,50,4,8,58,129,8,50,3,8,58,129,232,49,4,8,
+  58,129,232,57,5,8,58,136,232,49,8,58,8,50,8,50,232,49,8,58,
+  232,49,8,58,3,8,50,155,231,49,231,49,8,50,232,57,8,50,8,58,
+  8,50,8,50,232,49,231,57,8,50,8,50,232,49,8,50,232,57,8,58,
+  8,50,231,49,231,57,231,49,232,57,8,50,8,50,232,49,232,57,8,58,
+  8,50,3,232,49,133,231,49,199,49,232,57,231,49,232,49,4,231,49,9,
+  199,49,172,166,41,167,49,199,49,232,57,232,57,8,58,106,74,106,74,167,
+  49,163,16,130,16,228,32,4,33,228,24,163,16,130,16,98,16,130,16,102,
+  49,138,82,138,82,12,99,202,90,105,82,40,74,40,74,41,74,8,66,40,
+  74,170,82,235,90,203,90,73,74,109,115,84,181,211,156,69,41,162,24,227,
+  24,228,24,130,16,73,66,208,99,208,99,5,176,91,3,143,91,4,144,91,
+  3,143,91,3,176,91,131,144,91,176,91,175,91,5,176,91,3,143,91,156,
+  144,91,176,91,176,91,144,91,144,83,144,91,111,91,237,74,42,58,70,25,
+  130,8,65,8,65,8,97,8,195,16,134,33,73,50,172,66,46,75,111,91,
+  144,91,111,91,111,83,111,75,111,83,111,83,111,91,143,83,3,111,83,129,
+  110,83,3,111,83,16,78,83,6,46,83,130,46,75,14,75,3,46,83,134,
+  45,75,45,83,13,83,13,75,13,75,13,83,8,13,75,137,237,74,237,74,
+  13,75,13,83,46,83,13,75,13,83,237,74,13,83,7,237,74,129,205,74,
+  3,237,74,136,204,74,172,74,236,74,236,74,237,74,236,74,237,74,237,74,
+  4,236,74,5,204,74,145,172,74,172,74,171,66,172,66,172,74,171,74,171,
+  74,171,66,172,66,171,66,171,66,139,66,73,58,9,58,73,58,139,66,139,
+  66,4,106,66,150,107,66,106,66,74,66,74,66,199,49,130,16,97,8,98,
+  16,97,8,97,8,65,8,65,0,167,41,42,50,9,58,9,58,232,49,9,
+  50,233,49,232,49,232,49,232,41,167,4,132,237,74,236,74,13,83,237,74,
+  6,13,75,130,237,74,13,75,3,237,74,188,236,66,236,74,204,66,204,66,
+  171,58,106,58,42,58,9,58,171,82,207,115,211,148,52,165,19,165,146,148,
+  113,148,146,148,178,148,113,148,81,148,146,148,178,148,146,148,48,140,175,123,
+  109,115,142,115,239,131,81,140,146,148,146,156,80,140,175,123,16,132,85,173,
+  84,173,178,148,239,123,235,90,138,74,138,74,236,90,142,131,85,173,85,173,
+  19,165,211,156,146,148,48,140,81,140,243,156,85,165,85,173,85,165,85,165,
+  20,157,178,148,81,140,16,132,207,123,207,123,3,239,123,133,207,123,142,115,
+  12,99,45,99,77,107,4,44,99,178,109,107,174,115,239,123,81,140,146,148,
+  178,156,211,156,211,156,146,148,81,140,16,140,81,148,211,156,52,165,85,173,
+  52,165,243,156,179,140,114,132,49,124,49,132,114,140,211,156,52,173,117,181,
+  85,181,243,164,114,148,48,140,48,132,81,140,114,148,178,156,20,165,85,181,
+  149,189,149,189,117,189,84,181,84,181,84,173,243,156,114,140,208,107,110,91,
+  110,83,175,99,17,108,49,116,82,124,13,82,116,131,50,116,81,116,81,116,
+  3,50,116,130,49,116,50,116,3,50,108,139,49,116,49,116,50,108,50,116,
+  49,116,82,108,49,116,208,107,207,107,81,124,49,116,3,240,107,131,208,107,
+  240,107,240,107,4,175,99,131,207,107,207,99,143,99,3,110,91,154,143,99,
+  142,99,78,83,45,83,46,83,45,83,110,91,237,74,237,74,78,91,74,58,
+  228,24,98,8,130,16,163,16,195,16,195,16,131,16,98,8,164,8,135,25,
+  171,58,17,100,81,108,4,25,163,16,3,195,16,133,69,33,167,41,231,49,
+  231,57,199,49,3,167,49,138,166,49,166,49,167,49,166,49,167,49,166,49,
+  166,49,167,49,166,49,167,49,4,166,49,132,167,49,199,49,167,49,167,49,
+  7,199,49,130,199,57,199,49,4,231,57,138,231,49,231,57,231,57,232,57,
+  231,57,231,57,8,58,8,58,40,58,8,66,3,40,58,129,41,58,4,40,
+  66,138,41,66,41,66,73,66,73,66,41,66,73,66,40,66,73,66,40,66,
+  41,66,8,73,66,3,105,66,130,73,66,73,66,10,105,66,132,73,66,73,
+  66,73,58,73,58,6,73,66,133,41,58,73,66,41,58,73,58,41,58,6,
+  73,66,129,105,66,4,73,66,139,105,66,73,58,73,66,73,66,105,66,73,
+  66,41,58,73,66,73,58,105,66,73,66,3,73,58,130,73,66,105,66,3,
+  73,58,130,73,66,73,66,3,73,58,133,73,66,40,58,41,58,73,58,73,
+  58,3,41,58,129,40,58,4,41,58,136,40,58,40,58,8,50,41,58,8,
+  58,40,58,40,58,8,50,6,8,58,132,8,50,8,58,40,58,8,50,3,
+  8,58,4,8,50,138,8,58,8,58,232,49,8,50,232,49,232,49,8,50,
+  232,49,231,49,231,57,3,8,50,132,8,58,231,49,232,49,8,50,4,232,
+  49,136,8,50,232,49,7,58,231,57,231,49,8,50,232,49,8,50,4,232,
+  49,133,231,49,232,49,232,49,231,49,232,57,4,232,49,153,231,57,232,49,
+  231,49,231,49,232,49,199,49,231,49,232,57,232,49,231,49,8,50,232,49,
+  232,57,231,49,232,49,232,57,231,49,231,49,232,57,232,49,232,49,231,49,
+  231,49,232,49,232,49,3,231,49,129,199,49,5,231,49,3,232,49,135,231,
+  49,231,57,231,49,199,49,231,49,199,49,231,49,7,199,49,144,167,41,199,
+  49,199,49,167,49,167,49,199,49,8,58,41,66,232,49,69,33,162,16,130,
+  16,195,24,228,32,228,32,163,24,3,130,16,137,163,24,73,74,236,90,203,
+  90,73,74,12,107,138,82,105,82,105,82,3,73,74,150,40,66,170,82,236,
+  98,235,98,170,90,109,107,19,165,199,57,98,16,195,24,195,24,162,16,199,
+  49,208,99,208,91,208,91,176,91,176,99,176,99,176,91,176,91,144,91,5,
+  143,91,134,144,91,143,91,143,91,176,91,176,91,176,99,7,176,91,155,176,
+  99,176,91,176,91,144,91,176,91,176,91,144,91,176,91,144,91,143,83,144,
+  91,176,91,176,99,111,91,237,74,41,50,37,25,98,8,65,0,65,8,97,
+  8,163,16,69,25,41,50,204,66,78,83,143,91,3,144,83,3,143,83,129,
+  143,91,3,143,83,129,111,91,4,111,83,138,110,83,111,83,111,91,111,83,
+  111,91,111,83,111,83,110,83,111,83,110,83,4,78,83,130,78,91,78,91,
+  3,78,83,130,46,83,78,83,3,46,83,129,45,83,4,46,83,130,45,83,
+  45,83,3,13,83,148,13,75,45,83,45,83,13,83,45,83,237,74,237,74,
+  13,83,46,83,46,83,13,83,13,83,13,75,13,83,13,75,13,75,237,82,
+  237,74,13,75,13,83,3,237,74,134,237,82,237,74,204,74,204,74,236,74,
+  236,74,3,237,74,135,236,74,237,82,237,82,204,82,236,74,204,74,236,74,
+  5,204,74,129,204,66,5,171,74,163,171,66,171,74,171,74,171,66,139,66,
+  41,58,74,66,106,66,139,74,139,66,107,66,107,66,106,66,74,66,107,66,
+  106,66,106,66,227,24,97,8,97,8,98,8,65,8,65,8,33,0,70,25,
+  42,58,10,58,41,58,41,58,9,58,233,49,233,49,200,49,200,49,201,49,
+  143,4,3,236,74,131,13,75,13,75,237,74,3,13,75,201,237,74,13,75,
+  13,67,237,66,237,74,237,66,205,66,205,66,172,66,139,58,74,58,41,58,
+  106,74,110,107,146,148,52,165,19,165,146,148,81,140,114,148,178,148,178,148,
+  81,140,113,148,146,148,146,148,48,140,207,123,110,115,142,115,16,132,113,148,
+  146,148,113,148,16,140,110,115,12,99,49,132,117,173,19,165,80,140,110,107,
+  171,82,138,74,45,99,81,132,52,165,52,173,178,156,48,140,16,140,239,131,
+  207,123,178,148,85,165,85,173,117,165,52,165,211,148,81,140,240,123,207,123,
+  175,123,207,123,239,123,174,115,12,99,138,82,134,49,4,33,69,41,228,32,
+  171,82,3,236,82,178,171,74,106,74,73,66,106,74,171,82,171,90,12,99,
+  142,107,240,123,81,140,146,148,178,156,178,148,113,148,48,140,49,140,178,148,
+  20,165,84,173,84,173,52,165,20,157,146,140,49,124,49,124,81,132,178,156,
+  20,173,85,181,85,181,19,165,146,148,49,140,48,140,81,140,113,148,146,148,
+  210,156,52,173,117,181,149,189,149,189,85,181,84,181,52,173,178,148,207,115,
+  143,91,208,99,17,108,6,82,116,129,81,116,7,82,116,6,50,116,130,49,
+  116,49,108,4,50,116,180,49,116,49,108,50,116,50,116,49,116,50,108,50,
+  108,17,108,207,107,81,124,16,116,17,116,16,116,240,107,240,107,17,116,240,
+  107,207,99,207,107,207,107,207,99,208,107,175,99,175,99,143,99,143,99,142,
+  99,143,99,110,99,110,91,78,91,78,91,77,91,78,91,237,74,13,83,13,
+  83,46,91,78,91,106,66,134,41,98,8,65,8,130,16,195,24,163,16,162,
+  16,98,16,98,8,98,0,4,9,102,33,3,163,16,137,195,16,196,24,195,
+  16,4,25,4,25,69,33,101,41,69,41,37,33,7,69,33,130,69,41,69,
+  41,3,101,41,130,134,41,134,49,3,134,41,131,166,49,167,49,167,49,6,
+  199,49,130,231,57,231,49,4,231,57,136,8,58,232,57,7,58,231,57,232,
+  57,8,58,8,58,8,66,3,8,58,141,40,66,8,58,40,66,41,66,41,
+  58,40,58,41,66,41,58,40,58,41,66,41,66,73,66,41,66,3,40,66,
+  129,40,58,6,73,66,129,41,66,3,73,66,138,41,66,73,66,73,58,73,
+  66,41,58,41,58,73,66,41,58,41,66,41,58,6,40,58,7,8,58,129,
+  40,58,4,8,58,145,40,58,8,58,8,58,40,58,8,58,40,58,40,58,
+  41,58,40,58,41,58,41,58,73,58,41,58,73,58,41,58,73,58,73,58,
+  3,41,58,5,73,58,141,73,66,73,58,41,58,73,58,41,58,73,66,41,
+  58,41,58,73,58,41,58,41,58,40,58,40,58,7,41,58,133,40,58,8,
+  50,8,58,40,58,41,58,3,8,58,131,8,50,8,58,8,58,9,8,50,
+  134,232,57,232,49,8,50,232,49,231,49,8,58,3,231,49,130,232,49,232,
+  49,5,231,49,137,199,49,231,49,231,49,199,49,232,49,231,49,231,49,232,
+  49,231,49,4,232,49,136,231,49,199,49,232,49,231,49,199,49,231,49,231,
+  49,231,57,4,231,49,140,232,49,231,49,231,49,8,58,231,49,231,49,232,
+  49,232,49,231,49,231,49,199,49,232,49,7,231,49,142,199,49,231,49,231,
+  49,232,49,232,57,231,49,232,49,232,49,231,49,231,49,232,49,231,49,231,
+  49,232,49,3,231,49,131,232,49,231,49,199,49,7,231,49,3,199,49,132,
+  231,49,199,49,231,49,232,49,4,199,49,129,167,49,6,199,49,179,231,49,
+  199,49,4,25,98,16,130,16,195,24,227,32,227,32,195,24,130,16,98,16,
+  162,24,195,24,97,8,228,24,171,90,203,90,203,90,73,74,236,98,138,90,
+  105,82,73,82,105,74,41,74,41,74,73,74,170,90,236,98,44,107,170,90,
+  109,107,73,74,98,16,163,24,163,24,130,16,37,41,142,91,209,99,208,91,
+  176,99,176,99,176,91,176,99,176,91,176,91,176,99,176,91,176,99,175,91,
+  4,143,91,129,176,99,3,176,91,129,144,91,13,176,91,130,144,91,144,91,
+  3,176,91,145,208,99,208,99,176,99,111,91,205,74,233,49,37,25,130,8,
+  65,0,65,8,65,8,131,16,70,33,41,50,204,74,46,83,111,83,3,176,
+  91,131,143,91,143,91,175,91,6,143,91,9,111,91,136,110,83,110,91,110,
+  83,111,83,79,83,111,91,110,91,110,83,3,78,91,3,78,83,133,78,91,
+  78,91,45,83,46,83,46,83,4,45,83,131,46,83,13,83,14,83,4,46,
+  83,133,45,83,13,83,13,83,13,75,45,83,3,13,83,146,237,74,13,83,
+  13,83,237,74,237,82,13,83,237,74,237,74,13,83,237,74,237,74,236,74,
+  204,74,204,74,236,74,237,74,237,74,13,83,4,236,82,129,237,74,3,237,
+  82,6,204,74,169,172,74,204,74,204,74,171,74,172,74,172,74,171,66,171,
+  66,171,74,171,74,139,66,41,58,9,50,74,58,139,74,139,74,139,66,139,
+  66,106,66,139,66,106,66,139,66,199,49,98,16,65,8,97,8,65,8,65,
+  8,33,8,196,16,42,58,41,58,41,58,9,58,41,58,9,58,9,58,9,
+  50,232,49,200,49,200,49,148,4,209,236,74,236,74,237,74,237,74,13,75,
+  13,75,237,74,13,75,237,74,237,74,13,75,13,75,237,66,237,74,237,74,
+  236,66,204,66,139,58,74,58,74,74,45,99,113,140,20,157,20,165,178,156,
+  48,140,81,140,146,148,178,148,113,148,81,140,81,140,113,140,49,140,207,131,
+  142,123,174,123,240,131,113,148,146,148,81,148,239,131,109,107,236,90,204,90,
+  146,140,117,173,178,148,239,123,13,99,204,82,78,107,146,140,52,165,211,156,
+  81,140,240,131,174,123,49,140,243,156,211,156,53,165,117,173,117,173,20,165,
+  146,148,48,132,207,123,174,123,207,123,239,123,109,107,203,90,199,57,228,32,
+  163,24,163,24,33,8,195,24,36,41,69,41,3,236,82,180,203,82,171,74,
+  106,66,73,66,106,74,138,74,171,82,203,82,45,91,143,99,207,107,240,115,
+  17,124,49,132,113,140,146,148,113,140,48,132,48,132,146,148,243,164,52,165,
+  52,173,84,173,52,165,179,148,81,132,17,124,81,132,178,148,19,165,84,173,
+  52,181,243,164,113,148,49,140,81,140,113,140,113,148,146,148,146,156,211,164,
+  52,181,117,189,149,189,117,189,84,181,20,165,81,140,240,115,18,116,50,116,
+  3,82,116,130,50,116,50,116,7,82,116,138,50,116,50,116,49,116,49,116,
+  50,116,50,108,49,116,50,116,49,116,49,108,3,50,116,140,49,108,49,108,
+  50,108,50,108,50,116,50,108,50,108,50,116,240,107,81,124,81,124,49,116,
+  3,17,116,131,16,108,240,107,240,107,4,208,107,139,175,99,175,99,143,99,
+  143,99,175,99,142,99,110,91,110,99,110,99,110,91,110,99,4,78,91,155,
+  78,83,111,83,111,83,179,124,49,116,139,74,37,25,66,8,33,0,98,8,
+  98,8,130,16,131,16,130,16,130,8,163,16,163,16,162,16,163,16,195,24,
+  36,33,163,16,130,16,65,0,97,8,163,16,4,25,3,36,33,140,37,33,
+  37,33,69,33,69,33,101,41,69,33,101,41,69,41,101,41,101,41,102,41,
+  101,41,3,102,41,9,134,41,134,166,49,166,41,166,49,166,49,199,49,166,
+  49,5,199,49,143,199,57,231,49,231,49,231,57,232,57,231,57,232,57,232,
+  57,8,58,232,57,232,49,8,58,8,58,8,50,232,57,23,8,58,129,232,
+  57,3,8,58,131,232,57,8,58,232,49,12,231,49,154,232,49,199,49,231,
+  49,231,49,232,49,231,49,231,49,232,49,8,58,8,50,8,58,8,50,8,
+  50,9,50,8,50,8,50,9,50,41,50,9,50,8,50,8,58,8,50,41,
+  58,8,58,8,50,40,58,3,41,58,142,40,58,40,50,41,58,40,58,40,
+  58,8,58,8,58,40,58,41,58,40,58,8,58,8,58,40,58,41,58,6,
+  8,50,134,40,58,8,58,8,58,8,50,40,58,8,58,3,8,50,130,8,
+  58,8,50,3,232,49,129,232,57,4,232,49,135,231,49,8,50,232,49,231,
+  49,8,58,231,49,231,57,5,232,49,136,231,49,231,49,232,49,199,49,232,
+  49,231,49,231,49,232,49,4,199,49,138,231,49,232,49,199,49,231,49,199,
+  49,199,49,231,49,199,49,231,49,199,49,7,231,49,130,199,49,231,49,3,
+  199,49,132,231,49,199,49,231,49,231,49,3,199,49,131,231,49,231,49,199,
+  49,3,231,49,132,199,49,199,49,231,49,199,49,3,231,49,136,199,49,231,
+  49,199,49,231,49,199,49,231,49,231,49,232,49,3,199,49,131,232,49,231,
+  49,199,49,3,231,49,132,232,49,231,49,199,49,231,57,3,231,49,12,199,
+  49,170,232,57,232,49,134,41,4,25,98,8,98,16,162,24,195,24,195,24,
+  163,24,98,16,65,8,195,24,69,41,199,57,227,24,33,8,195,24,138,82,
+  203,90,203,90,40,66,203,98,170,90,171,90,105,82,105,74,106,82,73,74,
+  138,82,203,90,235,98,12,99,170,82,101,41,130,16,195,24,195,24,130,16,
+  196,24,45,91,240,99,6,208,99,5,176,99,5,143,91,135,144,99,143,91,
+  176,91,176,91,143,91,143,91,175,91,5,176,91,149,208,99,175,91,176,91,
+  208,99,176,99,176,99,176,91,176,91,175,91,176,91,176,91,176,99,176,99,
+  176,91,208,99,176,99,78,91,172,74,9,50,69,25,163,8,3,65,8,138,
+  130,8,5,17,232,41,139,66,13,83,111,91,143,99,176,99,175,91,175,91,
+  6,143,91,3,111,91,129,143,91,5,111,91,150,110,91,111,91,111,91,110,
+  91,111,91,110,91,111,83,111,83,78,91,110,91,78,91,78,91,110,83,78,
+  91,78,91,78,83,77,83,78,83,78,83,78,91,45,83,46,83,5,45,83,
+  3,46,83,140,13,83,13,83,46,83,45,83,13,83,13,75,13,83,13,83,
+  13,75,237,74,13,75,13,75,5,13,83,145,237,82,236,74,236,74,237,74,
+  236,74,236,74,237,74,237,82,236,74,237,82,204,74,236,82,236,74,237,82,
+  237,82,204,74,237,74,3,236,74,6,204,74,132,172,74,171,74,172,74,204,
+  74,3,171,74,134,139,66,73,58,8,58,74,58,139,66,139,74,3,139,66,
+  134,139,74,106,66,106,74,227,24,65,8,65,16,4,65,8,133,233,49,74,
+  58,41,66,41,66,41,58,3,9,58,132,9,50,232,49,232,49,200,49,95,
+  4,3,236,74,134,13,75,237,74,13,75,236,74,13,75,13,75,5,237,74,
+  142,237,66,204,66,139,66,139,74,236,90,16,132,244,156,20,165,178,156,49,
+  140,48,140,146,148,178,148,146,148,3,81,140,150,48,140,239,131,174,123,174,
+  123,240,131,113,148,113,148,81,140,207,123,77,107,204,82,139,74,13,91,243,
+  148,84,165,113,148,142,115,236,90,78,99,146,140,20,165,178,148,3,16,132,
+  208,142,115,175,123,52,165,117,173,117,173,85,173,20,165,146,148,48,132,207,
+  123,206,123,239,123,208,115,47,99,103,49,227,32,69,41,195,24,130,16,4,
+  33,97,16,65,8,228,32,227,32,166,41,12,83,236,82,203,82,203,82,171,
+  74,106,66,73,66,138,74,138,74,171,82,236,82,77,91,143,99,240,107,16,
+  108,17,108,17,116,17,116,17,124,81,132,113,140,81,140,48,132,48,140,146,
+  148,243,164,20,165,52,165,85,173,52,165,211,148,50,124,49,116,113,132,178,
+  148,19,165,52,173,51,173,210,164,113,148,81,140,113,140,113,148,146,148,146,
+  148,146,156,178,156,19,173,117,181,149,189,117,181,84,181,211,156,82,132,49,
+  124,4,82,116,131,49,116,82,116,50,116,5,82,116,138,50,116,50,116,49,
+  108,81,116,50,116,50,116,50,108,50,116,49,116,49,108,3,50,116,133,49,
+  108,49,116,50,108,50,108,49,108,3,50,108,129,241,107,7,240,107,129,207,
+  99,5,208,107,133,175,99,207,99,175,99,175,99,176,99,3,175,99,177,143,
+  99,175,99,175,99,143,91,111,99,143,99,143,99,175,91,208,99,176,91,115,
+  116,115,116,179,124,180,124,82,108,13,91,200,49,195,16,33,0,1,0,65,
+  8,130,8,131,16,163,16,163,16,131,16,162,16,195,24,162,16,163,16,98,
+  8,97,8,97,8,130,8,195,16,4,25,36,33,4,33,4,25,228,24,228,
+  24,4,25,4,33,4,25,4,25,36,33,36,33,37,33,37,33,3,69,33,
+  133,101,33,134,41,69,41,37,33,37,33,3,36,33,133,37,33,36,33,36,
+  33,69,33,37,33,3,69,33,3,101,41,134,102,41,134,41,134,41,166,41,
+  134,41,167,49,7,199,49,131,231,49,231,49,199,49,4,231,49,172,231,57,
+  231,49,231,49,232,57,231,57,231,49,232,49,8,50,232,57,8,58,232,49,
+  8,58,232,57,232,49,232,49,231,49,8,58,232,49,8,58,232,57,232,57,
+  8,50,232,49,231,57,232,57,232,49,231,49,231,49,8,58,231,49,231,49,
+  232,49,231,49,232,57,232,49,231,49,232,49,232,57,231,57,232,49,231,49,
+  231,49,232,49,232,49,23,8,50,129,232,49,3,8,50,131,232,49,8,50,
+  8,58,10,8,50,129,8,58,7,8,50,10,232,49,129,231,49,5,232,49,
+  135,231,49,232,49,199,49,232,49,231,49,231,49,232,49,5,199,49,131,231,
+  49,199,49,199,41,3,199,49,133,231,49,199,49,231,49,200,49,231,49,3,
+  199,49,129,231,57,3,231,49,142,199,49,231,49,199,49,231,49,199,49,231,
+  49,232,49,232,49,199,49,231,49,231,49,232,49,199,49,231,49,3,199,49,
+  139,231,49,231,49,199,49,231,49,199,49,199,49,231,49,199,49,231,49,199,
+  49,199,49,7,231,49,130,199,49,199,49,3,231,49,133,199,49,232,49,232,
+  49,231,49,231,49,3,199,49,134,231,49,231,49,199,49,199,49,231,49,231,
+  49,11,199,49,175,231,49,199,49,199,49,231,57,231,49,134,41,228,24,98,
+  8,130,16,162,16,195,24,227,24,162,16,97,8,98,16,195,24,105,74,142,
+  107,41,66,231,57,227,32,65,0,195,24,138,82,203,90,203,90,40,66,235,
+  98,203,90,170,82,105,82,105,82,138,82,170,90,170,82,171,90,44,107,203,
+  90,37,33,98,16,195,24,195,24,130,16,196,32,171,82,241,99,208,91,6,
+  208,99,4,176,99,3,144,99,135,143,91,144,99,176,99,143,91,176,99,144,
+  91,143,91,6,176,91,9,176,99,129,175,99,4,176,91,151,176,99,176,99,
+  208,91,176,91,176,91,176,99,78,91,236,74,74,58,134,33,196,16,98,8,
+  65,0,65,0,98,0,228,16,167,33,74,58,236,74,78,91,143,91,143,91,
+  176,91,8,143,91,6,111,91,134,110,91,111,91,111,91,110,91,110,91,111,
+  91,4,110,91,130,78,91,78,91,3,78,83,130,78,91,78,91,3,78,83,
+  131,45,83,46,83,46,83,9,45,83,137,13,83,45,83,13,75,13,83,45,
+  83,45,83,13,75,237,74,13,75,6,13,83,134,237,74,237,82,237,82,13,
+  83,237,74,236,74,4,237,74,129,236,82,3,237,82,132,237,74,236,74,236,
+  82,236,82,3,236,74,6,204,74,132,172,74,172,74,171,74,172,74,3,171,
+  74,140,139,74,9,58,42,58,106,66,171,74,139,74,139,66,139,74,139,66,
+  139,74,200,57,98,16,4,65,8,142,33,8,37,25,74,58,74,58,41,58,
+  73,58,42,58,42,66,41,58,9,58,9,50,232,49,232,49,200,49,85,4,
+  129,237,74,5,236,74,6,237,74,255,237,66,236,66,204,74,172,74,13,91,
+  240,123,211,156,52,165,211,156,81,140,48,140,114,148,178,148,178,148,81,148,
+  48,140,81,140,48,132,240,131,175,123,175,123,16,132,113,148,113,148,48,140,
+  207,123,77,99,204,82,172,66,140,66,45,91,244,148,20,165,80,140,77,107,
+  45,99,82,132,244,156,178,148,16,132,109,115,114,140,211,148,207,123,49,140,
+  52,165,117,173,85,173,20,165,146,148,16,132,207,123,207,131,239,131,176,115,
+  84,91,84,42,172,0,0,0,199,49,163,16,195,24,130,16,4,33,196,32,
+  75,90,108,98,106,82,232,57,236,82,204,82,204,82,203,82,138,74,105,66,
+  74,66,138,74,138,74,171,82,236,82,77,91,175,107,240,107,17,108,17,108,
+  49,108,49,116,17,108,49,116,49,116,49,124,81,132,81,140,48,140,81,140,
+  178,148,19,165,20,165,20,165,84,173,52,165,146,140,49,124,49,116,114,132,
+  178,148,243,164,51,173,19,173,178,156,114,148,113,140,145,148,146,148,178,156,
+  178,156,146,156,178,156,19,173,84,181,117,189,117,181,52,173,178,148,82,124,
+  50,116,81,116,130,82,116,49,116,6,82,116,3,50,116,143,49,116,49,116,
+  49,108,49,108,49,116,49,116,50,116,49,108,50,108,50,116,50,116,50,108,
+  50,116,50,108,49,108,4,50,108,129,49,108,6,82,116,134,49,116,49,116,
+  49,108,49,108,49,116,49,116,4,49,108,130,82,108,82,116,4,50,108,4,
+  82,108,3,82,116,131,82,108,114,108,114,116,3,115,108,150,147,108,147,116,
+  180,124,212,124,50,116,13,83,167,41,131,16,33,0,65,8,131,16,131,16,
+  195,16,163,16,130,8,130,16,98,8,130,16,98,8,97,8,65,8,65,8,
+  3,97,8,134,130,8,162,16,162,8,195,16,195,16,227,24,5,228,16,134,
+  4,25,4,25,37,25,36,33,37,33,37,33,3,69,33,129,102,41,3,134,
+  41,130,166,41,166,49,6,134,41,131,166,49,166,41,166,41,3,199,49,129,
+  231,49,3,199,49,139,231,49,199,49,199,49,231,49,199,49,231,49,231,49,
+  232,57,232,49,231,49,232,57,3,231,49,134,231,57,232,57,8,58,8,58,
+  232,57,8,50,3,8,58,131,8,50,8,58,8,50,5,8,58,137,8,50,
+  8,58,232,49,8,50,8,58,8,58,232,57,231,57,231,49,3,232,49,132,
+  231,49,231,57,231,49,232,49,3,231,49,132,232,49,232,49,232,57,232,49,
+  4,8,50,133,8,58,8,58,9,50,8,58,41,58,13,8,50,129,232,49,
+  3,8,50,7,232,49,130,8,50,231,49,7,232,49,132,8,50,231,49,232,
+  49,199,41,3,232,49,146,199,49,232,49,231,49,232,49,199,49,199,49,232,
+  49,231,49,231,49,199,49,199,41,199,49,199,49,231,49,231,49,199,49,199,
+  41,231,49,4,199,49,129,199,41,5,199,49,130,232,49,199,41,10,199,49,
+  132,199,41,199,49,199,49,199,41,30,199,49,129,199,41,10,199,49,131,231,
+  49,199,49,231,49,5,199,49,129,231,49,6,199,49,133,199,41,166,41,199,
+  49,199,49,199,41,7,199,49,176,231,49,167,41,4,25,98,8,98,8,162,
+  24,195,24,195,24,162,16,130,16,162,16,195,24,231,57,203,82,207,115,142,
+  107,41,66,199,57,228,32,33,8,162,16,138,74,203,90,203,82,40,66,12,
+  99,171,90,137,82,105,82,203,90,12,99,236,90,170,90,170,82,105,74,4,
+  33,130,16,163,24,163,24,130,16,163,32,16,132,207,99,208,99,208,91,208,
+  99,208,99,176,99,5,208,99,139,176,99,176,99,144,99,144,91,144,91,143,
+  91,143,91,176,91,175,91,144,99,144,91,3,176,91,136,143,91,176,99,176,
+  91,176,91,176,99,176,91,176,99,176,91,5,176,99,130,208,99,208,99,3,
+  176,99,154,176,91,176,91,176,99,176,91,208,99,176,99,208,99,175,99,111,
+  91,13,83,139,66,200,41,37,25,131,8,65,0,33,0,65,0,163,8,101,
+  25,41,50,203,66,46,83,143,99,143,99,176,91,143,99,5,143,91,3,111,
+  91,129,143,91,4,111,91,133,110,91,110,83,111,91,78,91,78,83,3,110,
+  91,146,78,91,110,91,110,91,78,83,78,83,78,91,78,83,78,91,78,91,
+  46,83,78,83,45,83,78,83,45,83,78,83,45,83,45,83,77,83,8,45,
+  83,134,46,83,45,83,45,83,236,74,237,74,237,82,5,13,83,152,237,82,
+  13,83,13,83,237,82,237,74,237,74,13,83,237,82,13,75,13,83,237,82,
+  236,82,13,83,237,82,237,82,236,74,236,82,236,74,236,82,236,82,236,74,
+  236,74,204,82,204,82,4,204,74,6,172,74,133,138,66,9,58,232,49,106,
+  66,171,74,3,139,74,132,139,66,171,74,4,33,65,16,4,65,8,142,98,
+  8,9,50,41,58,74,58,74,58,41,58,42,58,42,58,41,58,9,58,9,
+  58,8,50,232,49,232,49,163,4,133,204,74,236,74,236,74,204,66,236,74,
+  4,237,74,255,13,75,236,66,236,74,237,74,205,82,237,90,207,123,178,148,
+  20,165,243,156,113,148,48,140,113,140,178,148,178,148,113,148,49,140,48,140,
+  48,132,239,131,207,123,175,123,240,131,81,148,113,148,48,140,207,123,77,99,
+  236,82,204,74,172,66,172,74,78,99,244,148,243,156,16,132,77,107,175,115,
+  211,148,178,148,15,132,109,107,236,98,142,115,20,157,146,148,20,157,118,173,
+  117,173,52,165,178,148,16,140,207,123,207,123,240,131,174,115,237,90,213,58,
+  183,42,180,1,71,0,228,24,102,41,195,24,98,8,4,33,41,74,140,98,
+  205,114,108,106,107,90,203,82,203,74,203,82,235,82,203,74,106,66,105,66,
+  73,66,138,74,171,82,171,82,12,83,110,91,175,107,240,107,16,108,17,108,
+  49,108,49,116,49,116,49,108,49,116,81,116,50,124,49,124,49,132,49,132,
+  48,132,113,148,243,156,19,165,243,164,19,165,52,173,243,156,49,132,16,116,
+  81,124,114,132,146,148,243,164,19,173,243,164,178,156,146,148,113,148,114,148,
+  114,148,178,156,210,164,210,164,178,164,19,173,84,181,149,181,117,181,131,20,
+  165,146,140,82,124,7,82,116,147,50,116,82,116,50,108,49,108,49,116,50,
+  116,49,116,49,116,50,108,49,108,49,108,50,108,50,116,50,108,50,108,49,
+  116,50,116,50,108,50,108,3,49,108,9,50,108,8,82,108,135,114,116,114,
+  116,114,108,82,108,83,108,114,116,83,116,3,114,116,129,114,108,3,114,116,
+  4,114,108,3,115,108,145,115,116,115,116,115,108,147,116,147,116,212,124,179,
+  132,175,107,41,58,228,24,65,8,65,8,98,8,131,16,130,16,131,16,130,
+  8,3,98,8,139,130,16,98,8,97,8,97,8,98,8,98,8,97,8,97,
+  8,65,8,65,8,65,0,3,33,0,3,65,8,129,33,8,4,33,0,139,
+  65,0,33,8,65,8,65,8,97,8,98,8,130,8,195,16,228,24,37,33,
+  134,41,3,199,49,138,231,49,231,49,199,49,231,49,232,49,232,49,231,49,
+  231,49,199,49,232,49,3,231,49,144,232,57,231,49,231,49,8,58,8,50,
+  231,49,232,57,232,49,232,49,231,49,231,57,8,50,232,57,232,57,8,58,
+  8,58,3,232,49,130,8,58,232,49,3,8,50,129,8,58,3,8,50,132,
+  232,49,8,58,232,49,232,49,9,231,49,3,232,49,129,231,49,3,199,49,
+  5,232,49,131,8,50,232,49,232,49,3,8,50,129,9,50,4,8,50,134,
+  8,58,8,50,9,50,8,58,8,50,8,58,8,8,50,134,232,49,232,49,
+  8,50,232,49,232,49,8,50,4,232,49,138,231,49,232,49,232,49,231,49,
+  232,49,199,49,231,49,199,49,200,41,200,41,4,199,41,158,199,49,199,41,
+  199,41,199,49,166,41,167,41,199,41,199,49,167,41,199,41,199,41,167,41,
+  199,41,167,41,167,41,166,41,166,41,199,41,167,41,199,41,167,41,167,41,
+  166,41,166,41,199,49,199,49,167,41,199,41,167,41,199,41,3,166,41,145,
+  199,41,199,49,199,49,199,41,199,49,199,49,167,41,199,41,199,41,167,41,
+  167,41,167,49,199,41,199,49,199,41,199,41,167,41,3,199,49,132,167,49,
+  167,49,199,49,167,41,3,199,41,137,167,49,199,49,199,49,167,41,167,41,
+  199,49,167,41,199,49,199,49,4,199,41,132,199,49,167,49,199,41,199,49,
+  3,199,41,148,167,41,199,49,167,41,199,49,199,49,199,41,199,49,199,49,
+  167,41,167,49,199,49,199,41,166,49,199,49,199,41,167,41,199,49,166,41,
+  167,41,199,49,3,167,41,131,199,49,167,49,167,41,3,199,49,159,134,41,
+  4,25,130,8,130,16,162,16,163,24,195,24,130,16,98,16,98,16,228,32,
+  167,49,73,66,170,74,138,82,174,115,142,107,40,66,199,57,4,33,33,0,
+  162,16,105,74,203,90,235,90,41,66,203,90,170,90,137,82,105,82,138,82,
+  3,170,82,138,8,66,163,24,162,16,195,24,130,16,130,16,130,24,174,131,
+  149,181,176,91,9,208,99,130,176,99,208,91,3,176,99,143,175,99,175,99,
+  144,99,144,99,176,99,176,91,143,91,176,91,175,91,176,99,144,91,176,91,
+  143,99,175,91,176,91,9,176,99,138,208,99,176,99,176,99,208,99,208,99,
+  176,99,208,99,208,99,176,99,176,99,4,208,99,143,143,99,78,91,204,74,
+  41,50,134,33,228,16,98,8,65,8,65,0,130,8,4,25,199,41,139,66,
+  13,83,111,91,8,143,91,7,111,91,4,110,91,135,78,91,110,91,110,91,
+  78,91,78,91,110,91,78,83,4,78,91,132,78,83,78,83,78,91,46,91,
+  3,78,83,133,45,83,45,83,77,83,77,83,45,75,5,45,83,129,45,91,
+  3,45,83,131,13,83,237,74,236,74,7,13,83,129,237,82,5,13,83,131,
+  13,75,237,74,13,83,4,237,82,132,236,82,236,82,237,74,237,82,3,236,
+  74,130,236,82,236,82,5,204,74,131,172,74,204,74,204,74,3,171,74,138,
+  106,66,41,58,106,66,139,74,171,74,139,74,139,74,171,74,74,66,130,16,
+  4,65,8,143,33,8,135,33,41,50,41,58,74,58,74,58,42,58,74,58,
+  41,58,41,58,9,58,233,49,8,50,232,49,232,41,143,4,129,204,66,3,
+  236,74,131,236,66,236,74,237,74,5,236,74,255,13,91,207,115,146,148,20,
+  157,243,156,114,148,48,140,81,140,178,148,178,148,113,148,49,140,81,140,81,
+  140,16,132,207,123,174,123,239,131,49,140,113,148,48,140,207,123,78,99,237,
+  82,204,74,204,66,204,66,205,74,110,99,244,156,211,148,239,123,110,107,81,
+  132,211,148,48,140,142,115,13,99,171,82,236,90,243,156,85,165,117,173,118,
+  173,52,165,178,156,48,140,206,123,174,123,239,131,207,131,169,114,170,82,111,
+  50,215,42,150,34,113,9,4,0,40,66,130,8,195,24,135,57,74,90,201,
+  81,205,114,140,114,10,98,42,82,171,82,235,82,236,82,235,82,171,74,138,
+  66,73,66,105,74,138,74,138,74,203,82,13,83,110,99,208,107,240,107,17,
+  108,17,108,49,116,49,108,49,108,49,116,81,108,81,116,82,116,81,116,81,
+  116,49,116,49,132,48,132,49,140,178,148,19,165,243,164,211,164,20,165,52,
+  165,114,148,175,115,175,115,16,124,175,115,146,148,19,165,19,173,243,164,146,
+  148,146,148,114,148,81,148,113,148,243,164,52,181,243,172,210,164,19,173,116,
+  181,117,181,84,181,243,156,130,114,140,49,116,10,82,116,130,50,116,82,116,
+  8,50,116,137,82,116,50,116,50,116,49,116,49,108,82,108,82,116,50,108,
+  50,116,3,50,108,129,18,108,3,50,108,4,82,108,3,82,116,131,82,108,
+  82,108,82,116,6,82,108,134,114,108,114,108,82,108,82,108,114,116,114,116,
+  3,114,108,135,115,108,82,108,114,108,115,116,114,116,114,108,115,108,3,114,
+  116,138,147,116,147,116,180,124,212,124,17,108,172,74,102,41,98,8,33,8,
+  66,8,3,98,8,130,65,8,130,16,4,98,8,138,98,16,98,8,98,16,
+  130,8,130,16,98,8,98,8,98,16,98,8,98,16,3,98,8,129,97,8,
+  8,65,8,140,97,8,65,8,65,8,65,0,65,8,65,8,97,8,130,8,
+  195,16,37,33,167,41,231,49,3,8,58,150,232,49,232,49,8,58,231,57,
+  232,49,232,49,8,58,231,49,232,49,232,49,231,49,231,49,232,49,232,57,
+  231,49,231,57,231,57,8,58,8,50,8,58,8,58,232,49,3,8,58,140,
+  8,50,8,50,8,58,8,50,8,50,8,58,232,57,8,50,8,58,232,49,
+  232,49,8,50,3,232,49,133,231,49,231,49,199,49,231,49,232,41,3,231,
+  49,140,199,49,231,49,199,49,232,49,231,49,232,49,231,49,199,41,200,49,
+  199,49,231,49,231,49,11,232,49,7,8,50,134,232,49,8,50,232,49,8,
+  50,232,49,8,50,12,232,49,133,200,49,199,49,232,49,199,41,199,41,3,
+  199,49,3,199,41,130,199,49,199,49,3,199,41,133,167,41,199,41,167,41,
+  166,41,166,41,4,167,41,4,166,41,134,167,41,167,41,166,41,134,41,167,
+  41,167,41,5,166,41,139,134,41,166,41,166,41,134,41,134,41,166,41,166,
+  41,134,33,166,41,134,41,166,41,4,134,41,129,166,41,3,134,41,3,166,
+  41,130,167,41,167,41,3,166,41,129,167,41,3,166,41,136,167,41,167,41,
+  134,41,167,41,134,41,166,41,166,41,134,41,4,166,41,152,167,49,167,41,
+  134,41,167,41,166,41,167,41,167,41,166,41,134,41,166,41,167,41,167,41,
+  167,49,167,41,167,41,167,49,166,41,166,41,167,41,166,41,166,41,167,49,
+  166,41,166,41,3,167,41,130,166,49,134,41,3,167,41,140,166,41,166,41,
+  167,41,199,41,199,49,166,41,36,33,130,8,98,8,162,16,195,24,162,16,
+  3,130,16,164,228,24,134,41,41,66,106,74,73,66,106,74,171,82,16,124,
+  207,115,41,66,166,57,4,33,33,8,130,16,105,74,203,90,203,90,40,66,
+  170,90,138,90,170,82,171,82,203,90,203,90,171,82,134,49,163,24,130,16,
+  195,24,163,16,130,16,130,24,174,131,149,181,150,181,175,99,12,208,99,3,
+  176,99,144,175,99,176,99,175,99,176,91,176,91,144,91,175,91,175,99,175,
+  91,176,91,143,91,175,99,176,99,176,99,175,99,175,99,3,176,99,129,208,
+  99,3,176,99,131,208,99,208,99,176,99,4,208,99,156,176,99,208,99,176,
+  99,208,99,176,99,208,99,176,99,208,99,208,99,176,99,143,99,13,83,139,
+  66,232,49,69,25,163,16,65,0,33,0,97,0,195,16,135,33,106,58,237,
+  74,78,83,143,91,175,91,143,91,111,91,4,143,91,130,110,91,143,91,4,
+  111,91,130,110,91,111,91,3,110,91,132,78,91,110,91,78,91,78,83,5,
+  78,91,130,78,83,78,83,4,78,91,133,78,83,45,83,78,91,78,83,78,
+  83,5,45,83,129,46,83,4,45,83,137,13,83,237,74,204,74,236,74,236,
+  74,13,75,237,82,13,83,13,75,5,13,83,129,13,75,6,13,83,129,237,
+  82,4,13,83,129,237,82,4,236,82,134,236,74,236,74,204,74,204,82,236,
+  74,236,74,3,204,74,135,172,82,204,74,204,74,139,74,41,58,41,58,138,
+  74,4,171,74,129,167,49,5,65,8,143,98,8,74,58,74,58,41,58,73,
+  66,74,58,74,66,74,66,42,58,41,58,41,58,9,58,9,58,233,49,200,
+  41,77,4,132,204,66,204,66,237,66,236,66,3,236,74,220,204,74,236,74,
+  236,74,13,91,175,107,146,140,19,157,19,165,146,148,81,140,81,140,146,148,
+  146,148,80,140,16,140,81,140,113,140,81,140,240,131,207,123,207,131,48,140,
+  81,148,48,140,207,123,77,99,237,82,204,74,205,66,205,66,204,66,204,74,
+  78,99,243,148,211,148,240,131,207,123,211,148,178,148,207,123,45,107,236,82,
+  204,82,142,115,211,156,118,173,117,173,85,173,211,156,48,140,207,123,174,123,
+  239,131,239,131,16,132,42,139,67,138,38,98,114,34,215,50,53,26,14,1,
+  229,24,101,41,228,32,74,90,42,90,71,65,173,114,141,122,10,106,233,89,
+  200,65,105,66,236,82,235,82,203,82,170,74,106,66,73,66,106,74,138,82,
+  171,74,171,82,45,91,142,99,208,99,16,108,17,108,17,116,49,108,49,108,
+  3,49,116,129,81,116,3,82,116,200,81,116,81,116,49,124,17,124,49,132,
+  113,140,243,156,19,165,211,156,211,156,20,165,243,156,81,140,175,115,142,115,
+  12,99,207,123,211,156,19,165,19,173,210,164,146,148,146,148,113,148,49,140,
+  178,156,84,173,84,181,243,172,210,164,19,173,84,181,117,189,84,181,211,156,
+  17,132,208,107,240,99,240,107,240,107,207,99,175,99,143,91,143,91,110,91,
+  78,91,77,83,13,75,236,74,204,74,171,66,171,58,171,58,171,66,171,58,
+  203,66,204,66,236,74,12,75,45,83,78,83,111,83,175,99,208,99,240,99,
+  17,108,17,100,18,100,50,108,50,108,82,108,82,116,6,82,108,131,82,116,
+  82,108,82,116,4,82,108,136,114,108,82,108,114,116,82,116,114,116,114,108,
+  82,108,82,108,4,114,108,136,114,116,114,108,115,116,114,108,114,108,115,108,
+  115,108,114,116,5,115,116,147,147,116,179,116,212,124,147,124,208,107,204,74,
+  232,57,69,33,4,25,130,16,65,8,0,0,0,0,65,8,98,8,130,16,
+  130,8,130,16,130,8,3,98,8,129,98,16,3,98,8,4,130,16,129,162,
+  16,4,130,16,131,98,8,130,16,130,16,3,130,8,155,98,8,98,8,65,
+  8,97,8,98,8,65,8,33,0,98,8,196,16,69,33,199,41,8,50,232,
+  57,232,49,231,49,232,49,232,49,8,58,232,49,232,57,8,58,231,57,232,
+  49,8,50,232,57,231,49,232,49,7,231,49,137,232,57,8,50,232,57,232,
+  49,8,58,232,49,8,50,8,58,8,58,6,232,49,3,231,49,4,199,49,
+  129,231,49,10,199,49,132,231,49,232,49,231,49,231,49,9,232,49,138,8,
+  50,8,50,232,49,232,49,8,50,8,50,232,49,232,41,232,49,8,50,7,
+  232,49,140,232,41,200,49,200,41,200,49,199,41,199,49,199,41,199,41,199,
+  49,199,49,199,41,199,49,3,199,41,130,199,49,199,49,5,199,41,130,199,
+  49,199,41,3,167,41,129,199,41,9,167,41,135,134,41,166,41,166,33,134,
+  41,166,41,166,41,167,41,7,134,41,130,134,33,166,41,22,134,41,129,134,
+  33,20,134,41,129,166,41,3,134,41,130,166,41,166,41,6,134,41,129,166,
+  41,5,134,41,133,166,41,134,41,166,41,134,41,134,41,5,166,41,182,167,
+  41,166,41,167,41,167,41,199,49,69,33,163,16,130,16,162,16,195,24,195,
+  24,130,16,130,16,98,16,228,24,102,41,199,49,199,49,232,57,105,66,106,
+  74,41,66,77,99,48,132,240,123,73,74,166,57,36,33,33,8,130,16,105,
+  74,203,90,235,90,40,66,137,90,170,90,203,90,12,99,12,99,105,74,4,
+  33,97,16,162,16,163,24,130,16,131,16,130,16,44,115,149,181,117,181,150,
+  189,207,107,208,99,208,107,11,208,99,5,176,99,145,144,99,144,99,176,99,
+  176,99,175,91,176,99,176,91,176,99,143,99,176,99,175,99,144,99,175,99,
+  176,99,176,99,208,99,208,99,3,176,99,134,208,99,208,99,176,99,208,99,
+  176,99,176,99,4,208,99,151,176,99,208,99,208,99,207,99,208,99,208,107,
+  208,99,208,99,176,99,175,99,78,91,237,74,74,58,167,41,228,16,130,8,
+  65,8,65,8,163,8,134,25,73,50,236,74,78,91,4,143,91,129,143,99,
+  6,143,91,4,111,91,138,110,91,78,91,78,91,110,91,78,91,110,91,110,
+  91,78,91,78,91,110,91,7,78,91,141,78,83,78,83,78,91,77,83,78,
+  91,46,83,45,83,46,83,78,91,78,91,45,83,78,91,45,83,3,13,83,
+  129,237,74,3,236,74,3,13,83,129,45,83,3,13,83,131,45,83,13,83,
+  45,83,3,13,83,129,13,91,8,13,83,130,237,82,12,83,4,236,82,132,
+  204,74,236,82,204,82,236,74,3,204,82,140,204,74,172,74,204,82,139,74,
+  73,66,41,58,138,66,171,74,139,74,171,74,172,82,4,33,4,65,8,131,
+  33,8,37,25,107,66,7,74,66,134,42,58,41,58,9,58,9,50,232,49,
+  200,49,245,3,4,204,66,222,236,74,204,74,204,66,205,74,237,82,143,107,
+  114,140,243,156,20,157,178,156,81,148,81,140,146,148,146,148,48,140,239,131,
+  16,140,146,148,146,148,48,140,239,131,207,131,16,140,81,140,48,140,207,131,
+  77,107,236,82,204,66,204,66,205,66,204,66,205,66,205,74,78,99,211,148,
+  211,148,16,132,49,132,243,148,81,140,109,115,236,90,236,90,175,115,211,148,
+  85,173,117,173,85,173,243,156,113,148,207,123,174,123,207,131,207,123,174,123,
+  16,140,141,131,198,146,132,146,228,121,82,50,150,34,244,17,171,0,8,58,
+  167,65,75,98,168,81,5,49,42,98,205,130,75,114,201,89,200,73,4,33,
+  73,66,236,82,203,82,203,82,170,74,106,66,73,66,106,74,138,74,170,74,
+  235,82,45,91,143,99,208,107,240,107,17,108,49,116,17,108,4,49,116,171,
+  81,116,49,116,82,116,82,116,81,116,82,116,82,116,49,116,17,116,16,124,
+  81,140,211,156,19,165,211,156,178,156,243,164,20,165,178,156,81,140,207,123,
+  77,107,142,115,178,148,243,164,243,172,243,164,178,156,146,148,146,148,81,148,
+  81,148,243,164,117,181,117,181,243,172,210,164,19,165,84,181,117,181,51,173,
+  239,131,105,74,70,33,5,4,17,129,4,9,3,4,17,157,37,25,37,25,
+  69,25,69,25,102,25,102,25,69,25,69,25,37,25,37,17,5,17,4,17,
+  4,9,4,9,5,9,37,17,69,17,134,25,200,33,9,42,107,50,237,66,
+  143,83,241,99,50,108,82,108,114,116,82,116,82,116,9,82,108,136,83,116,
+  83,108,114,108,83,116,82,108,114,108,82,108,82,108,4,114,108,132,114,116,
+  115,108,115,108,115,116,3,115,108,130,114,108,115,116,3,115,108,158,114,108,
+  114,108,115,108,115,108,147,116,179,116,212,124,212,124,180,124,147,124,114,116,
+  17,108,13,83,232,57,196,24,33,8,65,8,65,8,98,8,97,8,98,8,
+  98,8,130,16,130,16,98,16,98,16,97,8,98,8,98,8,130,8,5,130,
+  16,129,162,16,7,130,16,141,162,16,130,16,130,16,98,8,97,8,65,8,
+  65,0,33,0,33,0,162,16,36,33,199,49,8,58,3,232,49,140,199,49,
+  231,49,232,49,232,57,231,57,231,57,231,49,232,57,232,49,232,49,231,49,
+  232,57,3,231,49,135,232,57,232,49,232,57,232,49,232,49,199,49,232,49,
+  4,231,49,3,232,49,5,231,49,10,199,49,3,199,41,3,199,49,131,199,
+  41,231,49,231,49,4,232,49,130,8,50,8,50,11,232,49,129,8,50,5,
+  232,49,132,199,41,232,49,199,41,232,41,3,199,41,130,231,49,199,49,5,
+  199,41,132,167,41,199,41,199,41,167,41,7,199,41,129,167,41,4,199,41,
+  131,167,41,167,41,199,41,5,167,41,129,166,41,3,167,41,22,134,41,132,
+  134,33,134,41,134,41,102,33,53,134,41,188,166,41,134,41,166,41,167,41,
+  166,41,167,49,135,41,167,41,167,41,134,33,227,24,130,16,130,16,163,24,
+  195,24,163,24,130,16,98,16,195,24,102,41,199,49,199,49,167,49,167,49,
+  199,49,73,66,170,82,105,74,211,148,48,124,239,123,73,66,166,57,36,33,
+  33,8,130,16,73,74,203,90,235,90,40,74,170,90,170,82,203,90,138,74,
+  69,41,130,16,130,16,163,16,162,16,130,16,98,16,163,24,8,74,210,164,
+  85,181,84,181,182,189,208,107,209,107,208,99,6,241,99,7,208,99,4,176,
+  99,130,144,99,143,99,7,176,99,130,175,91,175,99,5,176,99,130,208,99,
+  176,99,10,208,99,129,176,99,6,208,99,130,176,99,176,99,3,208,99,144,
+  176,99,111,99,13,83,139,66,232,41,69,33,130,16,66,8,65,0,163,8,
+  101,25,73,58,237,74,78,91,143,91,143,99,7,143,91,131,111,91,78,91,
+  78,91,4,110,91,134,78,91,78,91,110,91,110,91,78,91,110,91,8,78,
+  91,130,77,83,78,83,3,78,91,3,46,83,134,77,91,78,91,46,91,46,
+  83,45,83,45,83,6,13,83,136,236,74,13,83,13,83,45,83,45,91,13,
+  83,13,83,45,83,3,13,83,132,45,83,13,83,13,91,13,91,7,13,83,
+  132,236,82,13,83,13,83,237,82,3,236,82,141,204,82,236,82,236,82,204,
+  82,204,82,171,74,236,82,204,74,204,74,203,82,138,74,74,66,106,66,3,
+  171,74,130,139,74,130,16,4,65,8,133,33,0,232,41,107,66,106,66,106,
+  66,6,74,66,133,41,58,41,58,8,50,9,50,232,49,28,4,129,237,66,
+  3,13,59,157,46,59,46,59,78,59,110,67,17,100,211,132,52,149,244,148,
+  146,140,113,124,146,124,146,132,146,132,48,124,16,116,81,116,211,132,178,132,
+  81,124,16,116,16,124,49,132,81,140,239,123,142,107,13,91,205,66,172,58,
+  172,58,3,204,66,191,204,74,46,91,211,148,243,156,49,140,146,148,243,156,
+  16,132,45,107,13,99,208,115,243,156,85,165,85,173,85,173,20,165,146,148,
+  239,131,174,123,207,131,239,131,174,123,206,123,207,131,16,132,136,106,100,138,
+  230,154,67,138,77,82,119,18,179,9,43,25,106,98,10,90,103,65,196,40,
+  103,65,238,130,108,122,234,97,168,73,134,49,228,32,73,66,236,82,203,82,
+  203,74,138,74,106,66,73,66,138,74,170,82,171,82,236,82,77,91,143,99,
+  240,107,17,108,17,108,17,116,49,108,49,108,6,49,116,4,82,116,3,49,
+  116,204,17,116,49,132,178,148,20,165,243,164,211,156,243,156,20,165,211,156,
+  113,140,81,140,16,132,239,131,178,148,243,164,243,164,243,172,243,164,178,156,
+  178,156,146,156,81,148,178,156,52,173,117,181,84,181,210,164,178,156,243,172,
+  84,181,117,181,52,173,80,140,77,99,13,91,45,91,78,91,111,99,111,99,
+  143,99,143,99,208,107,208,107,240,107,240,107,241,115,240,107,240,107,241,107,
+  240,107,240,107,208,107,208,107,175,99,143,99,110,91,45,83,236,74,171,66,
+  106,66,41,50,199,41,102,25,37,17,228,8,37,17,200,25,139,50,78,75,
+  240,91,50,108,82,116,114,116,82,116,82,108,82,116,3,82,108,129,114,108,
+  6,82,108,136,114,108,82,108,82,108,114,108,83,108,82,108,83,108,83,108,
+  4,115,108,160,114,108,115,108,114,108,115,108,115,108,114,108,115,116,115,108,
+  115,108,115,116,115,108,114,108,114,108,115,116,115,108,147,108,115,116,147,116,
+  180,116,212,124,244,132,147,124,176,107,12,91,9,58,102,41,163,16,66,8,
+  65,8,33,8,65,8,65,8,3,98,16,129,98,8,3,130,16,129,98,8,
+  12,130,16,129,163,16,3,130,16,130,97,8,97,8,3,65,8,138,163,16,
+  102,33,199,49,8,50,232,49,199,49,199,49,231,49,199,49,232,49,3,231,
+  49,132,232,57,231,49,199,49,231,57,3,232,49,131,232,57,232,49,231,49,
+  3,232,49,133,231,49,232,49,199,49,231,49,231,49,8,199,49,136,166,49,
+  167,49,199,49,167,41,166,41,166,41,199,49,199,49,3,167,41,132,199,41,
+  167,41,167,41,199,41,3,199,49,129,231,49,3,232,49,136,232,41,232,41,
+  8,50,232,41,232,41,232,49,232,49,232,41,7,232,49,132,232,41,232,49,
+  232,49,200,49,9,199,41,139,167,41,199,41,199,41,167,41,167,41,199,41,
+  199,41,167,41,199,41,167,41,199,41,3,167,41,3,199,41,129,199,49,5,
+  167,41,139,166,41,167,41,134,41,134,41,166,41,134,41,134,41,166,33,134,
+  41,166,41,167,41,9,134,41,129,134,33,8,134,41,129,134,33,9,134,41,
+  129,102,41,3,134,41,129,134,33,19,134,41,129,134,33,32,134,41,139,166,
+  41,37,33,163,16,130,16,130,16,163,16,163,16,130,16,97,8,162,16,37,
+  33,3,166,41,154,166,49,166,49,167,49,167,49,232,57,170,82,142,115,178,
+  148,16,124,142,107,73,74,166,49,36,33,65,8,130,16,41,74,235,90,235,
+  90,40,66,235,98,105,74,102,41,162,16,98,16,162,16,162,16,3,130,16,
+  147,4,33,40,66,235,90,145,156,84,181,84,173,149,181,240,115,208,99,241,
+  99,241,99,241,107,208,99,241,107,240,107,208,99,240,99,241,107,208,107,4,
+  208,99,130,176,99,208,99,4,176,99,129,175,99,3,176,99,129,175,99,7,
+  176,99,131,208,91,176,99,208,99,3,176,99,11,208,99,129,176,99,8,208,
+  99,149,176,99,208,99,176,99,143,99,77,83,204,74,41,58,102,33,163,8,
+  65,8,65,0,162,8,102,25,41,58,236,74,78,91,143,99,143,99,143,91,
+  143,99,143,91,3,111,91,129,79,91,10,110,91,130,78,91,110,91,7,78,
+  91,129,77,91,4,78,91,131,78,83,46,83,78,83,4,78,91,135,46,91,
+  13,83,13,83,45,83,45,83,78,91,45,91,5,13,83,132,45,91,13,83,
+  45,83,45,83,3,13,83,130,45,91,45,83,8,13,83,135,12,83,13,83,
+  13,83,237,82,13,83,237,82,12,83,4,236,82,130,204,82,236,82,3,204,
+  82,138,236,82,204,82,171,74,41,58,41,58,138,66,172,74,204,74,41,66,
+  98,16,5,65,8,129,106,58,5,106,66,3,74,66,134,74,58,41,58,41,
+  58,9,58,232,49,232,49,80,4,231,143,51,176,43,176,43,208,43,208,43,
+  208,35,17,52,114,76,20,109,20,117,211,108,146,100,146,92,179,92,179,92,
+  146,100,114,84,82,76,147,76,211,92,179,92,146,84,82,84,114,92,114,100,
+  114,108,49,92,240,67,176,51,143,51,111,51,79,51,46,51,46,51,13,59,
+  237,66,46,83,147,140,243,156,81,140,146,148,211,148,239,123,110,115,240,123,
+  244,156,85,165,52,165,85,173,84,173,210,156,48,140,174,123,207,123,207,131,
+  48,132,48,132,142,115,174,123,207,131,142,115,40,74,3,122,7,155,132,146,
+  5,114,85,42,239,49,10,98,168,81,38,65,164,40,164,40,205,122,173,130,
+  10,106,104,81,102,57,4,33,228,32,41,66,235,82,203,74,203,82,106,66,
+  105,66,73,66,106,74,170,74,171,74,236,82,110,91,175,99,240,107,17,108,
+  17,108,49,108,49,108,49,116,49,108,49,108,49,116,49,116,3,81,116,4,
+  82,116,145,49,116,49,116,240,107,143,107,142,107,81,140,19,165,19,165,210,
+  156,211,156,20,165,243,156,81,140,16,132,81,140,81,140,211,156,3,243,164,
+  152,19,165,210,156,178,156,178,164,145,156,114,148,211,156,84,181,117,181,19,
+  181,113,156,146,156,19,165,84,181,84,181,20,173,146,148,50,124,82,116,50,
+  116,50,116,50,108,49,116,50,108,3,50,116,159,49,116,49,108,49,116,49,
+  116,50,116,49,108,50,108,50,116,50,108,50,108,50,116,50,116,82,116,82,
+  116,50,116,50,116,18,108,241,107,208,107,110,91,236,74,41,50,134,25,4,
+  9,37,9,200,25,204,58,176,91,50,108,114,108,114,116,3,82,108,129,114,
+  108,6,82,108,132,114,108,82,108,82,108,83,108,4,82,108,129,115,108,3,
+  114,108,132,115,108,115,108,115,116,115,108,4,115,116,135,115,108,115,116,115,
+  108,82,108,82,108,115,108,115,116,4,115,108,145,115,116,147,108,147,116,147,
+  116,180,116,180,116,212,124,212,124,147,124,17,108,110,99,171,74,8,58,69,
+  41,196,24,130,16,98,16,4,130,16,133,162,16,130,16,130,16,98,8,98,
+  8,4,130,16,131,163,16,162,16,163,16,3,162,16,145,163,16,130,16,163,
+  16,130,16,98,8,65,8,65,8,65,0,98,0,4,17,167,41,231,49,199,
+  49,232,49,200,49,199,41,199,41,4,199,49,136,231,49,231,49,232,49,232,
+  49,231,49,232,49,199,49,231,49,5,232,49,130,199,57,231,49,3,232,49,
+  129,231,49,5,199,49,133,199,41,167,49,166,49,166,41,167,41,4,166,41,
+  7,167,41,137,199,41,199,41,199,49,199,49,232,49,232,41,232,49,232,41,
+  232,41,5,232,49,132,200,49,200,49,232,41,200,49,3,232,49,134,200,49,
+  232,41,200,49,232,49,231,49,199,49,5,199,41,134,167,41,199,41,199,41,
+  167,41,167,41,199,41,13,167,41,134,166,41,167,41,167,41,166,41,167,41,
+  166,41,3,134,41,129,166,41,11,134,41,135,134,33,102,33,134,33,134,33,
+  102,33,134,33,134,41,3,134,33,136,102,33,134,33,101,33,102,33,134,41,
+  134,33,102,33,102,33,3,102,41,3,134,41,129,102,41,4,134,41,129,102,
+  33,10,134,41,130,134,33,134,33,3,134,41,132,134,33,134,41,134,41,134,
+  33,16,134,41,132,102,41,134,41,134,41,102,41,11,134,41,138,102,41,228,
+  24,130,16,162,16,195,24,163,16,163,16,130,16,130,16,228,24,7,134,41,
+  150,102,41,134,41,231,57,109,107,206,123,146,148,239,123,207,115,73,66,166,
+  49,36,41,33,8,98,8,8,66,235,90,235,90,40,66,199,57,195,24,130,
+  16,163,24,163,24,3,130,16,143,162,16,195,24,8,66,171,90,236,98,113,
+  148,84,181,85,181,149,189,16,124,241,107,241,99,241,99,240,99,241,99,5,
+  241,107,131,240,107,241,99,209,99,3,208,99,129,208,107,6,176,99,138,175,
+  99,176,99,175,91,176,99,175,91,144,99,176,99,176,99,175,99,176,99,4,
+  208,99,130,176,99,176,99,17,208,99,129,208,107,5,208,99,148,175,99,208,
+  99,143,99,78,91,236,82,74,58,134,41,163,16,65,0,65,8,130,8,134,
+  33,74,58,13,83,110,91,143,99,143,99,143,91,142,91,143,91,3,111,91,
+  130,110,91,142,91,7,110,91,130,78,91,110,91,11,78,91,132,110,91,46,
+  83,78,91,78,83,4,78,91,141,45,83,45,83,45,91,45,91,46,91,46,
+  91,45,91,45,83,13,83,13,75,45,83,13,83,13,83,3,45,83,138,13,
+  83,45,83,45,83,45,91,45,83,13,83,45,91,13,83,45,83,13,83,3,
+  13,91,130,13,83,13,91,5,13,83,129,237,82,5,236,82,129,204,74,3,
+  204,82,137,236,82,171,74,106,66,73,66,139,74,171,74,204,82,232,57,65,
+  16,4,65,8,130,163,16,139,66,5,106,66,137,74,66,74,66,106,66,74,
+  66,73,58,41,58,9,58,9,50,201,49,101,4,226,50,36,50,28,82,36,
+  82,28,114,36,147,36,179,60,244,76,244,76,212,68,179,60,179,52,179,52,
+  179,60,179,52,179,44,147,36,180,44,180,52,179,52,147,44,179,44,147,52,
+  179,60,179,60,146,52,115,36,82,36,82,28,82,28,50,36,17,44,241,35,
+  208,43,208,51,176,67,147,116,19,149,113,140,146,140,178,148,16,132,49,140,
+  20,157,84,165,243,164,243,164,53,173,20,165,113,148,207,123,207,123,239,131,
+  174,123,109,115,113,140,239,123,110,115,142,123,207,123,203,90,106,74,196,97,
+  166,146,7,155,34,130,232,89,201,89,71,73,229,48,164,32,99,24,107,106,
+  111,147,43,114,169,89,103,65,195,24,4,33,4,33,8,58,236,82,203,82,
+  171,74,138,66,73,58,105,66,105,74,138,74,171,74,13,91,110,91,207,107,
+  240,107,17,108,17,116,49,108,49,108,4,49,116,5,82,116,179,17,108,175,
+  99,13,83,138,66,199,41,37,25,228,16,37,33,232,65,175,115,211,156,19,
+  165,210,156,210,156,20,165,19,165,48,132,203,90,207,115,114,140,243,156,52,
+  173,211,164,243,164,19,173,243,172,178,156,178,156,210,164,178,156,146,156,20,
+  165,85,181,84,181,210,164,81,148,146,156,19,165,52,181,52,173,178,156,81,
+  132,17,116,17,108,49,108,17,108,49,108,49,108,17,108,49,116,49,108,6,
+  17,108,131,49,108,50,108,49,108,9,50,108,143,82,108,82,116,82,116,17,
+  108,175,99,236,82,9,50,37,17,4,9,167,25,13,67,241,99,82,108,114,
+  108,114,108,3,82,108,131,114,108,82,108,83,108,4,82,108,130,83,108,115,
+  108,3,82,108,6,114,108,3,115,108,3,115,116,130,114,108,114,108,3,82,
+  108,134,114,108,115,116,115,116,115,108,115,108,147,108,3,115,108,131,115,116,
+  115,116,115,108,3,147,116,145,179,116,180,116,212,116,212,116,244,124,212,132,
+  239,123,232,57,69,33,4,33,4,33,195,24,163,16,163,16,130,16,130,16,
+  163,16,8,130,16,131,162,16,162,16,163,16,3,162,16,147,163,16,130,16,
+  162,16,130,16,98,8,98,8,98,0,163,16,102,41,199,49,231,49,199,49,
+  231,49,199,41,200,49,199,49,199,49,232,49,199,49,7,232,49,134,199,49,
+  231,49,232,49,199,49,232,49,199,49,3,232,49,129,231,49,9,199,49,134,
+  167,41,199,49,167,49,167,41,166,41,166,41,5,167,41,144,199,41,167,41,
+  199,41,199,49,232,49,199,41,232,41,200,41,232,49,232,41,199,41,232,49,
+  232,41,232,49,232,49,199,41,3,200,49,129,231,41,4,199,41,129,199,49,
+  11,199,41,5,167,41,129,199,41,5,167,41,129,135,41,4,167,41,135,134,
+  41,134,41,167,41,134,41,134,41,134,33,166,41,8,134,41,136,102,33,102,
+  41,134,41,134,33,102,41,134,41,134,33,134,33,4,102,33,138,134,41,102,
+  33,134,33,102,33,101,33,102,41,102,41,134,41,102,33,134,33,3,102,33,
+  130,101,33,69,33,3,102,41,134,102,33,101,41,102,41,102,41,102,33,134,
+  33,3,102,41,132,101,41,102,41,101,33,134,41,3,102,33,130,134,33,102,
+  33,3,102,41,140,134,41,134,41,134,33,102,33,101,33,134,41,102,41,134,
+  41,134,33,102,33,134,41,101,41,5,134,41,129,102,33,3,102,41,142,134,
+  33,102,41,134,41,102,33,102,41,134,41,102,41,101,33,134,41,134,41,102,
+  41,134,41,134,41,37,33,3,163,16,163,195,24,162,16,130,16,130,16,227,
+  24,69,41,102,41,102,41,101,41,102,41,102,41,102,33,102,41,102,41,69,
+  33,69,33,36,33,138,82,16,132,48,140,48,132,207,115,73,66,134,49,36,
+  41,65,8,98,8,7,66,105,74,134,41,163,16,130,16,162,24,163,24,162,
+  16,4,130,16,140,163,16,195,24,101,41,44,107,12,99,81,148,85,181,85,
+  181,149,189,49,124,241,99,241,99,3,241,107,129,241,99,3,241,107,129,241,
+  99,3,241,107,130,208,99,240,107,3,208,99,130,176,99,175,99,4,176,99,
+  129,175,99,3,176,99,4,175,99,131,176,99,208,99,176,99,3,208,99,129,
+  176,99,7,208,99,130,208,107,208,107,8,208,99,130,208,107,208,107,5,208,
+  99,146,176,99,176,99,175,99,175,99,110,91,237,82,74,66,134,33,195,16,
+  65,8,65,0,195,8,166,33,106,58,13,83,110,91,143,91,143,91,4,110,
+  91,129,111,91,6,110,91,129,110,99,3,110,91,13,78,91,129,78,83,4,
+  78,91,3,45,83,139,78,91,45,83,77,91,45,91,45,91,45,83,13,83,
+  13,75,45,83,13,83,13,83,5,45,83,4,45,91,136,45,83,45,91,13,
+  91,45,83,13,83,13,91,13,91,45,83,7,13,83,5,236,82,129,204,82,
+  3,236,82,136,204,82,204,82,138,74,41,66,106,66,171,74,204,82,134,49,
+  4,65,8,137,33,0,5,17,171,66,107,74,106,66,106,66,73,66,73,66,
+  106,74,3,106,66,133,73,66,41,58,41,58,233,49,200,41,198,4,156,115,
+  28,147,20,147,20,147,28,179,28,179,36,212,44,179,44,179,36,179,28,179,
+  28,180,28,179,28,179,28,147,28,179,20,179,20,147,28,179,28,147,28,147,
+  28,115,20,115,20,115,28,115,28,115,20,115,20,147,20,5,147,28,248,147,
+  36,115,44,179,68,244,92,179,108,179,108,211,116,146,124,243,140,52,157,243,
+  156,146,148,179,156,52,165,211,156,16,140,174,123,239,131,239,123,142,115,44,
+  99,109,107,48,132,109,115,109,115,142,115,142,115,105,74,138,66,40,82,68,
+  138,72,163,99,138,163,105,6,65,229,48,164,32,98,16,71,65,209,147,173,
+  122,201,97,39,65,73,74,195,24,4,33,4,33,166,49,236,82,203,82,171,
+  74,106,66,73,66,105,74,138,74,138,74,203,82,45,91,142,99,208,99,240,
+  107,16,108,17,116,49,108,49,108,49,116,49,116,82,116,82,116,49,116,16,
+  108,110,91,203,74,9,50,69,25,4,17,36,25,135,33,41,50,204,74,78,
+  91,175,99,208,107,241,115,49,132,178,148,19,165,210,156,178,156,19,165,52,
+  165,113,140,102,49,200,57,175,115,20,165,84,173,211,156,210,156,243,164,243,
+  172,210,164,178,164,19,173,19,173,178,164,178,164,52,173,84,181,52,181,146,
+  156,81,140,178,156,52,173,51,173,243,164,113,140,17,116,50,108,81,116,3,
+  49,108,141,49,116,49,108,17,108,50,108,17,108,49,108,49,108,17,108,49,
+  108,50,108,49,108,50,108,49,108,4,50,108,129,17,108,3,50,108,142,82,
+  108,50,108,82,108,82,108,114,116,82,116,241,107,45,91,8,50,4,9,37,
+  9,106,42,176,83,50,108,8,82,108,131,114,108,82,108,83,108,4,82,108,
+  133,114,108,114,108,82,108,114,108,114,108,6,115,108,130,115,116,114,108,4,
+  82,108,3,114,108,3,115,116,135,115,108,115,108,115,116,147,116,115,108,115,
+  108,147,108,3,147,116,151,147,108,147,108,147,116,115,116,146,124,110,107,9,
+  66,166,49,166,49,134,41,134,41,101,41,69,41,36,33,4,25,195,24,195,
+  16,162,16,130,16,162,16,163,16,162,16,163,16,3,130,16,135,162,16,130,
+  16,162,16,130,16,162,16,163,16,163,16,3,195,24,156,195,16,163,16,163,
+  16,195,24,36,25,37,33,69,25,69,33,101,33,101,33,134,33,102,33,102,
+  33,134,41,134,41,134,33,134,41,134,41,134,33,134,33,102,33,102,33,69,
+  33,101,33,69,33,69,33,37,33,37,25,3,4,25,176,37,33,228,24,227,
+  16,227,16,195,16,228,24,228,16,4,25,227,24,4,25,4,25,36,25,69,
+  33,69,33,102,33,134,33,134,41,134,41,167,41,199,49,199,49,199,41,232,
+  49,232,49,200,49,200,49,232,49,232,41,200,41,200,41,199,41,232,49,231,
+  41,199,41,232,49,200,49,200,49,199,49,199,41,199,41,232,49,199,41,199,
+  41,167,41,199,41,199,49,199,41,199,49,5,199,41,129,167,41,3,199,41,
+  7,167,41,137,166,41,167,41,167,41,134,41,167,41,134,41,134,41,166,41,
+  134,33,7,134,41,135,102,41,134,41,134,41,102,41,134,33,134,41,134,33,
+  5,102,33,134,101,33,102,33,102,41,134,41,134,41,101,33,3,102,33,154,
+  102,41,101,33,101,33,102,41,102,41,102,33,102,33,101,33,102,33,102,33,
+  102,41,102,33,101,33,102,33,102,33,101,33,102,33,102,33,101,33,134,33,
+  101,33,102,33,102,41,101,33,102,33,102,41,5,102,33,145,101,33,102,41,
+  102,33,102,33,134,41,101,33,101,33,102,33,102,33,102,41,102,33,102,41,
+  102,33,102,33,102,41,101,41,101,41,3,102,41,130,102,33,134,33,3,102,
+  41,152,102,33,102,41,101,41,134,41,102,41,134,41,101,33,101,33,102,41,
+  101,41,102,41,134,41,101,41,228,24,162,16,163,16,163,24,195,24,162,16,
+  130,16,163,24,36,33,134,41,101,41,4,101,33,4,69,33,146,37,33,69,
+  33,36,25,166,49,239,123,110,115,146,148,240,123,73,66,134,49,36,41,65,
+  8,162,16,227,32,163,24,130,16,162,16,163,16,4,130,16,141,162,16,130,
+  16,98,8,98,16,195,24,4,33,77,107,45,107,48,140,84,181,84,173,149,
+  189,49,124,8,241,107,129,17,108,4,241,107,135,240,107,208,99,208,107,208,
+  99,208,99,176,99,208,99,4,176,99,3,175,99,3,176,99,129,175,99,3,
+  176,99,3,208,99,129,176,99,8,208,99,130,208,107,208,107,4,208,99,129,
+  240,107,8,208,99,131,175,99,176,99,176,99,3,175,99,149,176,99,143,99,
+  111,99,237,82,74,66,102,33,163,16,65,0,65,0,227,16,199,41,171,66,
+  45,83,143,99,143,91,111,91,111,91,143,91,110,91,110,91,143,91,6,110,
+  91,129,78,91,5,110,91,130,78,91,110,91,6,78,91,131,78,83,45,83,
+  46,83,3,78,91,136,45,91,77,91,78,91,77,91,77,83,45,83,78,91,
+  78,91,4,45,83,140,13,83,13,83,45,83,45,91,45,83,78,91,45,83,
+  45,83,45,91,45,91,77,91,45,83,4,45,91,132,13,83,45,83,45,91,
+  13,83,3,13,91,137,13,83,12,83,237,82,13,83,13,83,237,82,236,82,
+  236,82,236,90,5,236,82,135,139,74,41,66,73,66,171,74,204,82,69,41,
+  33,8,3,65,8,136,32,0,167,33,139,66,139,66,106,74,139,74,73,66,
+  74,66,3,106,66,134,74,66,73,58,41,58,9,58,9,58,232,49,176,4,
+  136,114,20,114,12,114,12,115,12,147,20,115,20,147,20,147,12,3,147,20,
+  132,147,12,147,20,147,12,147,12,3,147,20,3,115,12,255,115,20,82,20,
+  82,12,82,12,82,20,50,12,82,12,82,12,82,20,114,20,147,20,147,20,
+  147,28,179,36,211,52,211,60,211,60,244,68,212,84,20,93,244,108,179,108,
+  114,116,178,124,20,149,178,148,16,132,207,123,239,131,174,123,77,107,44,107,
+  235,90,142,115,239,123,77,107,77,107,142,115,12,99,73,66,138,74,74,74,
+  227,113,39,163,198,146,226,113,164,40,131,32,98,16,99,24,79,131,79,139,
+  10,106,103,81,167,65,236,90,228,24,4,33,4,33,101,41,236,82,203,82,
+  138,66,105,66,73,66,105,74,138,74,138,74,203,82,77,91,143,99,240,107,
+  16,108,16,108,17,116,49,116,82,116,81,116,17,108,175,99,236,74,9,50,
+  102,25,228,16,37,25,232,41,171,66,78,91,240,107,49,116,82,116,82,116,
+  50,116,50,116,49,108,17,108,17,116,49,124,178,148,243,164,210,156,114,148,
+  243,156,52,165,146,148,134,57,98,16,236,98,52,165,84,173,210,156,179,156,
+  243,164,19,173,243,172,210,164,19,173,84,181,19,173,178,156,211,164,52,173,
+  84,181,243,172,81,148,114,148,243,156,137,51,173,19,165,17,140,145,82,146,
+  58,146,91,82,108,81,116,81,108,5,49,108,131,17,108,17,108,50,108,4,
+  49,108,6,50,108,133,49,108,50,108,82,108,50,108,50,108,4,82,108,139,
+  82,116,82,116,208,107,171,66,70,17,228,0,9,34,143,75,50,108,114,116,
+  114,108,3,82,108,129,83,108,4,82,108,129,114,108,4,82,108,130,114,108,
+  82,108,3,114,108,129,83,108,3,115,108,130,114,108,114,108,4,82,108,130,
+  114,108,114,108,3,115,108,137,115,116,115,108,115,116,115,116,147,116,115,108,
+  147,108,115,108,115,116,3,147,116,133,147,108,147,116,147,124,113,132,12,91,
+  3,134,41,145,134,49,102,41,101,41,134,41,101,41,101,41,102,41,101,41,
+  69,41,4,33,4,25,228,24,195,24,163,16,162,16,130,16,162,16,3,163,
+  16,133,130,16,98,8,130,16,130,16,98,8,4,130,16,139,162,16,130,16,
+  130,8,130,16,130,16,130,8,130,16,130,8,130,8,98,8,163,16,3,130,
+  8,129,130,16,3,130,8,140,130,16,130,8,130,8,130,16,130,8,130,16,
+  130,16,98,16,130,16,162,16,162,16,163,16,3,130,16,135,162,16,162,16,
+  130,16,130,8,162,16,162,16,130,16,3,162,16,138,163,16,162,16,163,16,
+  163,16,195,16,228,24,36,25,101,33,167,33,199,41,3,232,49,143,232,41,
+  232,49,200,41,231,41,199,41,199,41,200,41,199,41,200,41,200,41,199,41,
+  200,41,199,41,199,41,199,49,6,199,41,135,167,41,199,41,167,41,199,41,
+  167,41,167,41,199,41,6,167,41,129,167,33,6,167,41,143,134,41,166,41,
+  134,41,134,41,134,33,134,41,134,41,166,41,134,41,134,41,134,33,134,41,
+  102,33,134,41,134,41,5,102,33,129,102,41,4,102,33,131,101,33,102,33,
+  102,41,3,102,33,3,101,33,132,101,41,101,33,101,33,102,41,5,102,33,
+  143,102,41,101,33,101,33,102,41,101,33,101,33,101,41,102,33,102,33,69,
+  33,102,33,102,33,101,33,101,33,102,33,4,101,33,133,102,41,102,41,101,
+  33,102,33,102,41,3,102,33,144,102,41,102,33,101,33,102,33,102,33,102,
+  41,102,33,102,41,101,41,102,41,101,33,102,41,102,41,102,33,102,41,101,
+  33,3,102,41,133,102,33,102,41,102,41,101,41,101,41,3,102,41,148,101,
+  33,102,41,134,41,69,33,195,16,162,16,163,16,195,24,163,24,130,16,130,
+  16,228,24,102,41,101,41,69,41,101,41,69,33,101,33,102,33,70,33,6,
+  69,33,137,37,25,101,41,109,107,77,107,48,132,16,124,41,66,69,41,195,
+  24,3,130,16,149,163,24,162,16,130,16,130,16,98,16,130,16,130,16,195,
+  24,228,32,162,16,98,8,130,16,162,16,4,33,77,107,44,99,16,140,84,
+  181,84,181,149,189,81,132,15,241,107,130,208,107,208,107,3,208,99,4,176,
+  99,129,175,99,5,176,99,129,175,99,3,176,99,130,208,99,176,99,9,208,
+  99,134,209,107,208,99,208,99,240,99,208,99,208,107,9,208,99,159,208,107,
+  208,99,208,99,175,99,175,99,176,99,176,99,175,99,175,99,176,99,175,99,
+  110,91,237,82,42,58,69,33,162,8,65,0,97,8,4,17,232,49,204,74,
+  78,91,111,91,143,91,143,91,111,91,111,99,110,99,142,91,110,91,110,99,
+  4,110,91,136,78,91,110,91,110,91,78,91,110,91,78,91,78,91,110,91,
+  3,78,91,134,110,91,46,91,78,91,78,91,46,91,77,91,4,78,91,129,
+  77,91,3,78,91,139,46,91,78,91,77,83,45,83,77,91,77,91,45,91,
+  13,83,13,83,45,83,77,91,4,45,91,132,77,91,45,91,45,91,46,91,
+  5,45,91,132,45,83,45,83,13,83,45,83,7,13,83,133,236,82,13,83,
+  237,82,236,82,237,82,3,236,82,135,204,82,139,74,106,74,171,74,236,82,
+  4,33,33,8,3,65,8,136,33,0,42,58,171,66,139,66,139,66,138,66,
+  106,66,74,66,4,106,66,133,74,66,42,58,9,58,233,49,232,49,72,4,
+  156,82,28,50,28,49,28,17,20,49,28,49,28,49,20,50,20,49,12,49,
+  12,82,12,82,20,82,12,114,12,114,12,115,12,114,12,115,12,115,12,147,
+  20,114,12,114,20,114,20,82,20,82,20,50,20,49,20,17,20,4,241,19,
+  207,17,20,114,52,147,52,115,36,114,36,147,36,179,44,211,52,212,52,211,
+  52,212,60,212,68,20,93,211,100,114,92,81,100,82,108,16,108,142,99,77,
+  99,12,99,171,82,174,115,174,115,77,107,77,107,142,115,170,82,73,66,74,
+  82,200,81,164,97,198,154,73,163,2,130,4,49,34,8,33,16,74,98,209,
+  147,75,114,168,89,70,57,171,82,236,82,69,33,227,32,4,33,4,33,203,
+  82,236,74,138,66,73,66,73,66,105,74,138,74,171,74,203,82,77,91,143,
+  99,240,107,17,108,49,116,49,116,240,107,110,91,138,66,134,33,228,8,4,
+  17,200,41,172,74,111,91,17,116,82,124,114,124,82,124,82,116,82,116,4,
+  49,108,173,17,108,17,108,49,108,49,108,49,124,146,140,211,156,210,156,113,
+  148,211,156,52,165,178,148,8,74,131,24,110,107,52,165,52,173,178,156,178,
+  156,211,156,243,164,19,173,210,164,210,164,84,173,117,181,19,181,178,164,244,
+  172,52,181,52,181,178,164,113,148,178,156,19,173,19,173,211,164,18,107,49,
+  41,49,17,82,58,178,91,82,116,49,116,49,108,3,17,108,133,49,108,49,
+  108,50,108,50,108,49,108,4,50,108,130,49,108,49,108,4,50,108,129,82,
+  108,3,50,108,142,82,108,82,108,50,108,82,108,82,116,114,124,17,116,13,
+  83,167,33,228,0,9,26,111,75,50,100,114,108,7,82,108,130,114,108,114,
+  108,3,82,108,139,114,108,115,108,82,108,114,116,114,108,82,108,115,108,115,
+  108,114,108,114,108,115,108,3,82,108,131,114,108,115,108,114,108,7,115,108,
+  129,115,116,4,115,108,130,147,108,147,108,3,115,116,131,179,124,81,124,12,
+  99,3,101,41,136,102,41,134,41,102,41,102,41,101,41,101,41,69,33,69,
+  41,4,101,41,136,102,41,101,41,101,41,69,33,4,33,228,24,163,24,163,
+  16,19,130,16,3,162,16,3,130,16,137,162,16,163,16,162,16,130,16,163,
+  16,162,16,163,16,162,16,162,16,3,195,16,129,195,24,4,163,16,133,195,
+  16,195,24,163,16,195,24,195,16,7,163,16,147,195,16,163,16,163,16,162,
+  16,130,16,130,16,98,8,130,8,163,16,228,24,69,25,135,33,167,41,232,
+  41,232,41,232,49,200,41,199,41,232,41,5,199,41,134,200,41,199,41,200,
+  41,199,41,199,41,167,41,4,199,41,7,167,41,129,199,41,6,167,41,129,
+  135,41,4,167,41,130,135,41,166,41,9,134,41,3,102,33,130,102,41,102,
+  41,6,102,33,132,101,33,101,33,102,33,101,33,4,102,33,134,101,33,69,
+  33,102,33,101,33,101,33,102,33,3,101,33,130,102,33,69,33,5,102,33,
+  131,101,33,102,33,69,33,3,101,33,133,69,33,102,41,101,33,101,33,102,
+  33,5,101,33,132,102,33,101,33,102,41,102,33,3,102,41,141,102,33,101,
+  33,102,33,102,33,101,33,101,33,102,41,101,33,102,41,101,33,101,33,101,
+  41,102,41,3,102,33,133,102,41,102,41,101,41,101,41,102,33,3,101,41,
+  3,102,41,146,102,33,102,41,69,33,162,8,163,16,163,16,195,24,163,16,
+  98,8,162,16,37,33,101,41,69,33,101,41,101,33,69,33,69,33,102,41,
+  8,69,33,139,37,25,69,33,77,107,44,99,77,99,40,66,163,16,130,16,
+  130,16,163,16,163,16,4,130,16,133,98,16,227,24,40,74,69,41,98,8,
+  4,130,16,138,97,8,231,65,45,107,12,99,16,140,84,181,84,181,117,181,
+  81,140,240,107,4,241,107,129,17,108,4,241,107,135,240,99,240,107,241,107,
+  241,107,240,107,240,107,208,107,4,208,99,132,176,99,208,99,208,99,175,99,
+  9,176,99,8,208,99,129,208,107,3,208,99,129,208,107,5,208,99,133,240,
+  107,208,107,208,107,208,99,208,107,7,208,99,4,176,99,4,175,99,145,143,
+  99,78,91,204,82,41,58,37,33,130,8,32,0,130,8,69,25,74,58,13,
+  83,110,91,143,99,143,91,110,99,142,99,111,99,7,110,91,131,78,91,110,
+  91,78,91,3,110,91,10,78,91,132,110,91,110,91,78,91,110,91,6,78,
+  91,145,77,83,78,91,45,83,77,83,77,91,45,91,45,83,13,83,45,83,
+  45,91,46,91,45,91,46,91,46,91,45,91,45,91,46,91,8,45,91,135,
+  13,83,13,83,13,91,13,83,13,91,13,83,12,83,3,13,83,140,236,82,
+  12,83,236,82,237,82,236,82,237,82,236,82,138,74,74,66,106,66,203,82,
+  195,24,5,65,8,130,74,58,171,74,3,139,74,131,139,66,138,74,138,66,
+  3,106,66,133,74,66,74,66,9,58,9,50,232,49,227,4,148,16,68,208,
+  59,240,67,16,68,16,60,240,51,207,43,175,19,143,11,175,19,240,43,82,
+  52,49,52,50,36,17,28,50,28,50,20,82,12,114,12,114,12,4,115,20,
+  216,114,28,82,28,50,28,17,28,241,27,241,27,209,27,176,43,50,76,179,
+  108,82,92,16,68,49,68,82,52,82,36,114,36,114,36,179,36,211,44,244,
+  52,244,52,212,52,212,52,211,68,211,76,147,76,49,76,240,75,110,75,110,
+  83,239,115,142,115,77,107,77,107,109,107,106,82,42,90,201,81,38,65,36,
+  81,132,138,169,163,67,130,133,73,1,0,5,49,176,147,205,122,233,97,38,
+  73,232,65,236,82,236,82,199,49,195,24,36,33,228,32,138,74,203,74,106,
+  74,73,66,41,66,105,74,138,74,170,74,236,82,110,91,207,107,240,107,208,
+  107,45,91,73,58,69,25,195,8,37,25,73,58,45,83,240,107,49,116,82,
+  124,82,116,81,116,81,116,49,116,49,116,81,116,49,108,49,116,3,49,108,
+  3,17,108,171,49,108,49,116,49,116,114,140,211,156,178,156,81,140,178,148,
+  20,165,210,156,106,82,5,33,240,123,20,165,20,173,81,148,16,132,211,148,
+  243,156,19,173,210,164,113,148,211,156,117,189,117,189,19,173,211,164,19,173,
+  52,181,19,173,146,156,113,148,210,164,19,173,19,173,243,164,82,115,81,49,
+  176,8,145,25,82,75,82,108,81,108,5,49,108,134,17,108,50,108,50,108,
+  18,108,50,108,49,108,5,50,108,129,82,108,3,50,108,8,82,108,136,114,
+  116,17,108,45,91,167,33,228,0,9,26,143,75,50,108,9,82,108,131,83,
+  108,114,108,114,108,5,82,108,164,83,108,115,108,115,108,115,116,115,108,114,
+  108,114,108,82,108,114,108,115,108,115,108,82,108,115,116,115,108,114,108,115,
+  108,115,108,115,116,115,108,114,108,115,108,115,108,115,116,147,108,115,108,115,
+  116,147,108,115,116,146,124,48,124,44,99,101,41,134,49,134,49,102,49,134,
+  41,3,101,41,130,134,41,102,41,3,101,41,147,69,41,101,41,101,41,101,
+  33,167,41,199,41,199,41,199,49,167,49,167,41,102,41,101,41,36,33,4,
+  25,227,24,195,24,163,24,163,16,163,16,3,162,16,138,163,16,163,16,162,
+  16,163,16,163,24,163,16,195,24,195,24,163,16,162,16,3,130,16,131,162,
+  16,130,16,130,16,3,163,16,129,130,16,4,163,16,130,130,16,130,16,4,
+  163,16,4,130,16,138,163,16,130,16,195,16,195,16,163,16,195,24,163,16,
+  195,24,195,24,163,16,3,195,24,133,163,16,162,16,162,16,130,16,130,16,
+  3,98,8,143,131,8,228,24,69,25,166,33,199,41,232,49,200,49,199,49,
+  200,41,199,41,200,41,200,41,199,41,199,41,200,49,3,200,41,3,199,41,
+  131,167,41,199,41,199,41,7,167,41,130,135,41,135,41,5,167,41,132,135,
+  41,134,41,134,41,167,41,4,134,41,3,134,33,141,102,33,134,41,102,33,
+  102,41,102,41,102,33,102,33,101,33,102,33,134,33,101,33,101,33,102,41,
+  4,102,33,140,101,33,102,41,102,33,102,33,102,41,69,33,102,33,101,33,
+  102,33,69,33,102,33,101,33,4,69,33,156,102,33,69,33,101,33,70,33,
+  101,33,101,33,70,33,69,33,101,41,101,41,69,33,102,41,102,33,69,33,
+  70,33,101,33,101,33,69,33,101,33,69,33,101,33,101,33,102,41,102,41,
+  102,33,102,41,102,33,69,33,4,102,33,173,101,33,101,33,102,41,102,41,
+  101,33,101,41,102,41,101,41,102,41,102,41,102,33,101,33,101,33,69,41,
+  102,41,101,33,101,41,101,41,102,41,101,41,101,33,101,41,102,41,4,25,
+  162,16,162,16,163,16,163,16,162,16,130,16,195,24,69,33,102,41,102,33,
+  102,33,101,41,101,33,101,33,69,41,69,33,69,41,70,41,102,41,69,41,
+  69,41,3,69,33,153,37,33,228,24,167,49,228,24,98,16,98,16,131,16,
+  162,16,163,24,162,16,162,16,130,16,98,16,130,16,4,33,199,57,203,90,
+  235,90,203,90,228,32,65,8,98,8,97,8,65,8,36,41,3,12,99,137,
+  16,140,84,181,84,181,117,181,145,140,240,107,241,107,241,107,17,108,4,241,
+  107,132,240,107,241,107,17,108,16,108,4,241,107,144,240,107,208,107,208,99,
+  208,99,208,107,208,99,176,99,208,99,208,99,175,99,176,99,208,99,175,99,
+  176,99,176,99,175,99,3,176,99,145,176,107,208,99,208,99,176,99,208,99,
+  208,107,208,107,208,99,208,107,208,107,208,99,240,107,240,107,208,99,208,99,
+  240,107,208,99,3,208,107,132,208,99,240,99,208,99,208,99,4,208,107,135,
+  208,99,176,99,176,107,176,99,176,99,175,99,176,99,4,175,99,145,143,99,
+  46,91,204,74,232,49,4,17,98,8,65,0,195,8,166,41,139,66,45,91,
+  111,99,143,99,143,99,111,99,110,91,111,91,4,110,91,133,110,99,110,99,
+  110,91,110,91,111,91,4,110,91,129,77,91,3,78,91,133,110,91,110,99,
+  110,91,78,91,78,91,3,110,91,3,78,91,129,77,91,5,78,91,134,77,
+  91,78,91,46,91,45,91,45,83,45,83,3,78,91,133,46,91,78,91,45,
+  91,46,91,46,91,8,45,91,137,13,83,13,83,13,91,13,83,13,83,13,
+  91,13,83,13,83,13,91,3,13,83,130,236,82,12,83,3,236,82,133,171,
+  74,74,66,138,74,203,82,162,24,4,65,8,131,98,8,139,58,171,74,3,
+  139,74,139,138,74,139,74,106,66,138,74,106,66,106,66,74,66,74,66,41,
+  58,9,58,232,49,165,4,230,240,99,240,99,16,108,240,107,174,91,77,67,
+  236,42,236,34,237,42,176,75,114,100,81,108,240,75,208,67,240,67,16,60,
+  240,43,241,35,241,19,17,20,82,12,50,12,82,12,114,20,114,20,115,20,
+  147,28,114,28,82,28,49,36,49,44,114,76,244,108,179,116,49,100,240,91,
+  240,91,240,75,240,59,240,43,17,44,82,60,147,52,146,44,179,44,212,44,
+  212,36,244,44,244,44,244,52,211,52,179,52,114,52,82,68,114,92,240,91,
+  175,99,142,115,77,107,74,90,168,81,38,57,196,40,163,40,36,130,202,171,
+  100,138,163,97,34,16,237,122,79,139,43,114,103,81,228,40,232,57,236,82,
+  235,82,105,58,195,24,4,33,227,32,232,57,203,82,106,74,73,66,73,66,
+  106,74,138,74,171,82,12,91,77,91,236,82,41,58,37,25,195,8,69,25,
+  74,58,110,91,17,108,50,116,82,116,50,116,8,49,116,130,50,116,81,116,
+  3,49,108,3,17,108,178,49,108,17,108,49,108,49,116,81,132,178,148,178,
+  156,48,140,146,148,243,156,210,156,203,98,134,49,207,123,52,165,243,164,45,
+  115,138,82,16,132,211,156,19,165,178,156,16,140,113,148,52,173,149,189,84,
+  189,243,172,210,164,51,173,51,181,210,164,113,148,178,156,243,172,242,172,19,
+  173,19,165,178,123,145,49,144,8,113,25,82,83,82,116,49,108,17,108,17,
+  108,49,108,50,108,17,108,8,50,108,129,49,108,3,50,108,131,82,108,50,
+  108,50,108,8,82,108,137,83,116,49,108,45,83,167,33,228,0,74,34,208,
+  83,82,108,115,108,11,82,108,140,114,108,82,108,82,108,115,108,82,108,114,
+  108,114,108,82,108,83,108,115,108,115,108,114,108,4,115,108,166,114,108,115,
+  116,115,108,115,108,115,116,115,108,115,108,114,108,115,108,147,108,115,108,115,
+  116,115,108,115,108,115,116,146,124,239,115,12,91,101,41,134,49,134,41,134,
+  49,134,49,101,41,101,41,69,41,69,41,101,41,134,41,102,41,101,41,69,
+  41,101,41,69,33,101,41,167,41,167,41,199,49,5,199,41,4,199,49,138,
+  167,49,134,41,134,41,102,41,69,41,4,33,163,24,163,16,195,24,195,24,
+  3,163,16,134,195,24,163,24,195,24,195,24,195,16,163,24,4,195,24,145,
+  4,25,195,24,228,32,228,24,4,25,4,33,228,24,228,32,36,33,36,33,
+  4,33,4,33,36,33,36,33,4,33,36,33,4,33,3,228,24,4,195,24,
+  130,163,16,162,16,3,163,16,3,195,24,134,228,24,195,24,195,24,163,24,
+  163,24,163,16,3,130,16,137,98,8,130,8,196,16,37,25,134,33,199,41,
+  232,41,199,41,232,41,4,199,41,131,167,41,167,41,199,41,8,167,41,129,
+  166,41,4,167,41,129,135,41,5,167,41,129,134,33,3,134,41,137,134,33,
+  135,41,134,41,134,33,134,41,134,41,134,33,102,41,102,41,6,102,33,134,
+  101,33,101,33,102,33,101,41,70,33,69,33,3,101,33,3,102,33,140,69,
+  33,102,33,102,33,70,33,69,33,102,33,69,33,69,33,102,33,69,33,102,
+  33,102,33,4,69,33,129,101,33,8,69,33,129,101,33,5,69,33,138,101,
+  33,69,33,69,41,69,33,70,41,102,41,69,33,102,33,101,33,101,33,4,
+  102,33,143,102,41,102,41,101,33,101,33,102,33,101,33,101,33,102,33,101,
+  41,102,41,101,33,101,41,101,33,102,33,101,41,3,102,41,192,101,33,101,
+  41,101,33,102,33,228,24,162,16,162,16,163,24,163,24,130,16,130,16,4,
+  33,69,41,101,41,101,41,69,33,102,33,102,33,102,41,101,33,101,33,70,
+  33,102,33,102,41,102,33,102,41,70,33,69,33,4,25,195,24,162,16,130,
+  8,98,8,130,16,163,24,162,16,163,16,162,16,162,16,163,16,162,16,163,
+  16,101,49,73,74,105,74,138,74,235,98,138,82,171,82,171,90,231,65,69,
+  41,69,41,232,65,235,90,236,90,235,90,236,98,239,131,52,173,84,181,117,
+  181,146,148,240,107,6,241,107,132,17,108,241,107,241,107,17,108,3,241,107,
+  135,208,99,240,107,240,107,208,99,208,107,240,107,208,107,4,208,99,130,176,
+  99,208,99,3,176,99,3,175,99,131,207,99,175,99,176,99,4,208,99,147,
+  208,107,208,99,240,107,208,107,208,107,240,107,240,99,241,107,240,107,208,107,
+  240,107,208,107,240,107,208,107,240,107,240,99,240,107,208,107,208,99,3,208,
+  107,132,208,99,208,99,208,107,176,99,9,175,99,141,143,107,111,99,45,91,
+  139,74,167,41,195,16,65,0,65,0,228,16,8,50,204,74,78,91,143,99,
+  4,110,91,132,111,91,110,91,110,91,110,99,5,110,91,130,110,99,110,91,
+  5,78,91,130,110,91,110,91,5,78,91,129,110,91,3,78,91,129,77,91,
+  7,78,91,143,77,91,78,91,45,83,13,83,45,91,46,91,78,99,46,91,
+  78,91,77,91,45,91,77,91,46,91,45,91,46,91,7,45,91,148,12,91,
+  45,91,13,91,12,91,13,83,12,83,12,83,13,83,13,83,237,82,12,83,
+  12,83,236,90,13,83,236,82,236,82,139,74,171,74,171,82,162,24,4,65,
+  8,134,130,8,171,66,139,74,139,74,171,74,171,66,3,139,74,136,107,74,
+  106,66,106,66,74,66,74,66,41,58,9,58,233,49,104,4,225,16,124,48,
+  124,15,124,142,107,12,83,106,58,73,50,171,66,175,99,146,132,146,140,16,
+  124,207,107,240,107,207,99,174,91,175,67,143,51,143,35,176,27,208,27,241,
+  19,17,20,49,20,82,20,82,20,114,20,114,20,115,28,147,36,179,52,212,
+  76,212,92,146,84,82,76,49,84,49,92,240,75,240,75,143,67,175,75,175,
+  75,175,51,207,43,49,52,82,44,114,36,179,44,211,44,212,36,212,36,244,
+  36,212,36,212,52,179,68,146,68,114,76,49,92,175,91,107,74,103,49,196,
+  32,131,24,38,41,4,114,105,163,165,138,130,97,168,89,112,147,140,122,201,
+  89,38,65,98,16,73,66,204,82,203,74,203,74,228,24,228,32,4,33,69,
+  41,171,74,105,66,73,66,73,74,106,74,139,74,74,74,199,49,4,25,163,
+  8,37,25,106,58,110,91,17,108,81,116,4,49,116,199,17,108,50,116,50,
+  116,49,108,50,116,49,116,49,108,81,108,49,108,49,116,50,116,49,108,49,
+  108,17,108,49,108,49,108,17,108,17,108,49,108,17,108,49,108,82,116,146,
+  140,210,156,178,156,16,140,113,140,211,156,178,148,44,107,37,41,174,115,52,
+  165,243,164,73,82,66,16,73,74,146,148,243,156,178,156,16,140,16,132,211,
+  156,85,181,117,189,19,181,178,164,243,172,19,173,243,172,113,156,113,148,210,
+  164,210,172,178,164,19,173,51,173,18,140,240,73,143,16,145,33,178,91,114,
+  116,49,108,17,108,17,108,49,108,17,108,17,108,49,108,18,108,9,50,108,
+  134,82,108,82,108,50,108,82,108,82,108,50,108,3,82,108,140,50,108,82,
+  108,82,108,83,116,49,108,13,83,102,25,5,1,171,50,17,92,82,108,114,
+  108,14,82,108,134,115,116,82,108,114,108,82,108,114,108,114,108,4,115,108,
+  136,115,116,115,116,115,108,115,108,114,108,115,108,115,108,82,108,8,115,108,
+  131,178,124,239,115,235,90,4,101,41,137,102,41,134,41,134,41,134,49,101,
+  41,69,41,69,41,101,41,69,41,4,101,41,130,166,41,167,41,3,199,41,
+  129,199,49,5,199,41,137,200,41,199,41,200,41,199,41,199,49,199,49,199,
+  41,102,41,228,24,3,130,16,134,98,16,98,8,97,8,65,8,162,16,69,
+  33,6,199,49,137,167,41,167,49,167,41,167,49,199,41,199,49,167,41,167,
+  49,167,49,14,134,41,142,102,41,101,41,69,41,37,33,36,33,4,25,228,
+  24,195,24,163,16,163,24,195,24,195,16,227,24,227,24,5,195,24,141,162,
+  16,130,16,130,8,130,8,163,16,195,16,37,25,102,33,167,41,200,41,199,
+  41,167,41,199,41,7,167,41,144,167,33,167,41,167,41,135,41,167,41,167,
+  41,167,33,167,33,167,41,167,41,134,41,167,41,134,41,134,41,134,33,134,
+  41,3,134,33,129,134,41,4,134,33,138,102,33,102,33,102,41,102,41,102,
+  33,102,33,102,41,101,33,102,33,102,41,4,102,33,134,69,33,69,33,101,
+  33,102,33,70,33,70,33,3,69,33,132,101,33,69,33,69,33,101,33,8,
+  69,33,129,69,41,10,69,33,154,101,33,69,33,101,33,69,33,69,33,101,
+  33,69,33,69,33,101,33,69,33,101,41,101,33,69,33,70,33,69,33,69,
+  33,101,41,101,33,69,33,69,33,102,41,101,33,102,33,101,33,69,33,102,
+  33,6,101,33,149,101,41,101,33,101,41,101,33,101,41,101,33,101,33,102,
+  33,102,33,196,16,130,16,163,16,195,24,162,16,130,16,162,16,37,33,101,
+  41,102,41,102,41,101,33,4,102,41,173,102,33,134,41,102,41,102,41,101,
+  33,37,33,228,24,163,16,130,16,130,8,98,8,130,16,162,24,162,24,163,
+  16,195,24,163,16,130,16,130,16,163,24,195,24,130,16,69,41,170,82,203,
+  90,105,74,73,74,203,90,138,82,138,82,170,82,171,90,203,90,171,82,138,
+  82,138,82,170,82,203,90,235,90,174,123,52,173,84,181,117,181,178,148,208,
+  107,9,241,107,129,17,108,3,241,107,6,240,107,4,208,107,130,176,99,207,
+  107,9,208,99,132,207,99,176,99,208,99,207,99,3,208,99,3,240,107,130,
+  208,107,240,99,3,240,107,129,208,107,6,240,107,129,240,99,3,208,99,135,
+  208,107,208,107,176,99,208,99,207,99,208,99,208,99,6,175,99,4,143,99,
+  143,110,99,13,91,74,66,102,33,130,8,33,0,98,8,69,25,73,58,237,
+  82,110,91,143,99,110,91,110,99,111,91,6,110,91,129,78,91,3,110,91,
+  3,78,91,129,78,99,5,110,91,131,78,91,78,91,110,91,7,78,91,129,
+  110,91,4,78,91,130,77,91,78,91,4,45,91,138,78,91,78,91,45,91,
+  77,91,46,91,77,91,77,91,45,91,45,91,78,91,9,45,91,130,13,91,
+  13,91,3,13,83,132,12,83,12,91,13,83,237,82,3,236,82,133,204,82,
+  106,74,106,74,138,74,130,24,4,65,8,129,163,16,3,171,74,132,139,74,
+  171,74,139,74,139,74,3,138,74,134,106,66,106,66,74,66,41,66,9,58,
+  233,49,111,4,203,15,124,239,123,109,107,170,82,40,58,8,58,105,74,109,
+  107,113,140,113,140,239,123,174,115,207,123,206,123,142,107,142,99,77,83,13,
+  67,13,51,45,43,46,35,110,35,143,27,143,27,208,19,240,19,17,28,82,
+  36,82,28,114,36,147,44,147,44,147,52,147,52,147,60,146,68,114,68,82,
+  68,17,76,175,67,45,67,171,58,138,50,204,58,13,59,45,35,143,35,17,
+  52,49,36,82,28,146,20,147,28,179,28,212,36,212,44,212,44,211,60,179,
+  60,82,52,175,35,236,18,172,26,233,33,167,41,165,89,40,163,231,138,195,
+  105,237,130,46,139,74,106,70,73,228,40,65,8,138,74,3,203,82,149,134,
+  41,227,24,4,33,4,33,73,66,106,66,41,66,41,66,199,49,36,33,163,
+  16,195,16,199,41,13,83,240,107,17,116,49,116,49,116,17,108,49,116,49,
+  108,8,49,116,129,49,108,3,49,116,130,49,108,49,116,3,49,108,4,17,
+  108,177,50,108,114,116,45,83,231,57,142,115,178,148,178,148,16,132,49,140,
+  178,148,146,148,171,90,196,32,240,123,52,165,210,156,166,65,0,8,167,57,
+  113,140,210,148,146,148,48,140,239,131,81,148,52,165,117,181,52,181,178,164,
+  178,164,243,172,19,173,178,164,81,148,178,164,210,164,177,164,178,156,19,165,
+  51,173,114,148,80,82,174,24,49,50,50,108,50,108,49,108,17,108,17,108,
+  5,49,108,12,50,108,131,82,108,82,108,50,100,3,82,108,139,50,108,50,
+  108,82,108,114,116,17,108,171,74,4,17,70,9,14,67,18,100,114,108,7,
+  82,108,129,114,108,3,82,108,133,115,108,82,108,82,108,114,108,82,108,3,
+  114,108,143,83,108,114,108,83,108,115,108,115,108,114,108,115,116,114,108,114,
+  108,115,108,82,108,115,108,82,108,115,108,115,116,5,115,108,132,146,132,207,
+  115,170,82,69,33,7,101,41,131,102,41,101,41,101,41,3,69,41,3,101,
+  41,138,199,41,233,41,41,50,41,50,200,41,167,41,199,41,200,49,200,41,
+  200,41,6,199,41,134,167,41,199,41,199,41,199,49,134,41,228,24,3,130,
+  16,134,98,8,98,8,65,8,65,8,98,8,4,25,4,167,41,131,166,41,
+  167,41,166,41,3,167,41,6,134,41,136,134,33,134,41,134,33,134,41,102,
+  33,102,41,102,41,134,41,5,102,41,139,101,41,102,41,134,41,166,41,167,
+  41,199,41,199,41,134,41,37,33,4,25,195,24,3,130,16,131,195,24,163,
+  16,163,16,3,195,24,139,163,24,162,16,163,16,130,16,98,8,131,16,195,
+  16,37,25,102,33,167,41,199,41,6,167,41,129,167,33,3,167,41,135,167,
+  33,134,41,167,41,167,33,167,41,134,33,135,41,5,134,41,131,134,33,134,
+  33,134,41,4,134,33,8,102,33,134,101,33,70,33,102,33,101,33,69,33,
+  102,33,4,69,33,131,102,33,69,33,102,33,8,69,33,129,70,33,8,69,
+  33,132,102,33,69,33,69,33,101,33,7,69,33,132,37,33,69,33,69,33,
+  101,33,4,69,33,150,69,41,101,41,69,33,70,33,102,33,69,33,102,33,
+  69,33,101,33,69,33,70,41,102,41,102,33,102,33,69,33,69,33,101,33,
+  101,33,102,33,69,33,69,33,102,41,3,69,33,155,102,33,69,33,69,33,
+  102,41,70,33,195,16,130,16,130,16,162,16,163,16,130,16,162,16,69,33,
+  102,41,102,41,102,33,102,33,134,41,102,41,134,41,102,41,134,41,101,33,
+  69,33,4,33,227,24,195,24,3,130,16,130,162,16,162,16,3,163,16,3,
+  130,16,158,98,16,228,32,69,41,101,41,97,8,65,8,69,41,170,82,203,
+  82,138,74,40,66,203,90,171,82,138,82,170,82,105,74,138,82,138,82,106,
+  74,105,74,106,74,138,82,170,82,77,107,243,164,52,173,84,181,211,156,208,
+  107,17,108,6,241,107,135,17,116,241,107,17,108,241,107,240,107,17,108,241,
+  107,5,240,107,136,240,99,208,99,208,107,208,107,207,99,208,107,208,99,208,
+  99,3,208,107,133,208,99,175,99,208,107,208,99,176,99,5,208,99,135,208,
+  107,208,107,240,99,240,107,240,107,208,99,240,99,6,240,107,137,208,107,240,
+  107,208,107,208,99,240,99,208,107,240,107,208,107,208,107,3,208,99,131,176,
+  99,207,99,176,99,4,175,99,130,143,99,175,99,5,143,99,140,78,99,204,
+  82,8,50,36,25,97,8,65,0,163,16,167,33,139,66,45,91,110,99,110,
+  99,6,110,91,145,78,91,78,91,110,91,110,91,78,91,78,91,78,99,78,
+  91,110,91,78,91,110,99,110,91,110,99,110,91,110,91,78,91,78,91,4,
+  110,91,130,78,91,78,91,3,110,91,5,78,91,130,45,91,77,91,3,45,
+  91,129,77,91,4,78,91,132,78,99,45,91,45,91,78,91,10,45,91,5,
+  13,91,131,13,83,12,83,13,83,4,236,82,133,171,74,106,74,171,82,163,
+  24,33,8,3,65,8,130,163,16,172,66,4,171,74,139,139,74,139,74,74,
+  66,74,66,138,74,106,66,106,66,74,66,41,66,41,58,233,49,75,4,184,
+  142,115,44,99,137,74,231,57,199,57,73,66,44,99,15,124,48,132,174,123,
+  109,115,142,115,174,115,109,107,109,107,45,99,203,74,138,58,171,50,204,50,
+  171,50,204,50,236,42,13,43,78,43,143,51,17,76,17,76,17,52,49,44,
+  49,36,49,36,82,36,114,36,114,44,114,52,114,52,82,52,49,60,175,51,
+  12,43,138,42,41,42,232,33,199,33,8,34,138,42,236,58,236,42,78,35,
+  143,27,208,19,240,19,49,20,82,20,146,28,3,179,36,169,146,36,146,44,
+  82,52,110,27,204,34,73,74,232,146,231,138,73,122,46,131,204,122,168,89,
+  37,57,163,24,130,8,171,74,171,82,203,82,203,82,73,66,195,24,228,32,
+  228,32,166,49,8,58,101,41,195,24,130,16,4,25,232,57,12,83,175,99,
+  240,107,240,107,16,108,17,108,17,108,49,116,49,116,49,108,49,108,3,49,
+  116,129,49,108,5,49,116,131,49,108,81,116,49,116,5,49,108,179,17,108,
+  17,108,114,116,142,91,69,33,195,24,195,24,163,24,13,99,178,148,178,148,
+  16,132,48,132,178,148,146,148,170,90,167,57,114,140,19,165,81,148,232,65,
+  70,41,42,66,81,132,210,156,178,148,48,140,207,123,48,140,210,156,84,181,
+  84,181,210,172,113,156,210,164,19,173,210,164,113,156,145,156,210,164,113,156,
+  80,148,113,148,210,164,51,173,179,156,176,98,79,41,49,83,50,108,49,100,
+  3,49,108,129,17,108,9,50,108,129,82,108,4,50,108,131,82,108,50,108,
+  82,108,3,50,108,5,82,108,137,114,108,208,99,73,58,228,0,200,17,111,
+  75,50,108,83,108,83,108,13,82,108,133,114,108,82,108,114,116,82,108,114,
+  108,6,115,108,134,83,108,82,108,50,108,82,108,115,108,115,108,3,115,116,
+  135,115,108,115,108,82,108,146,132,16,116,73,74,69,41,4,101,41,150,69,
+  41,69,41,101,41,69,41,69,41,101,41,69,41,101,41,69,41,69,41,69,
+  33,135,41,237,66,205,66,13,67,46,75,46,75,203,66,9,50,167,41,167,
+  33,200,41,6,199,41,148,167,41,199,41,167,41,199,41,199,41,199,49,134,
+  41,228,24,130,16,130,16,130,8,130,16,98,16,97,8,65,8,98,8,228,
+  24,134,41,167,41,166,41,5,167,41,4,134,41,139,102,41,101,33,102,41,
+  102,41,102,33,102,33,102,41,102,41,102,33,102,33,134,33,4,101,41,134,
+  101,33,102,41,102,41,134,41,167,41,167,41,3,200,41,138,232,41,200,49,
+  167,49,134,41,37,33,228,24,163,16,98,16,130,16,130,16,3,163,16,142,
+  195,24,163,16,4,33,163,16,162,16,130,16,130,16,163,16,195,16,5,25,
+  69,25,167,41,167,41,199,41,7,167,41,137,166,33,167,41,135,41,135,41,
+  167,41,135,41,135,41,134,33,134,41,4,134,33,129,102,33,3,134,33,8,
+  102,33,133,69,33,102,33,69,33,101,33,70,33,3,69,33,129,101,33,12,
+  69,33,129,101,33,7,69,33,129,37,33,18,69,33,129,101,33,6,69,33,
+  129,102,33,6,69,33,133,101,33,69,33,102,33,101,33,69,33,3,102,33,
+  129,69,33,3,101,33,140,70,33,102,33,102,41,69,25,195,8,130,16,130,
+  16,163,16,162,16,130,16,163,24,69,33,6,102,41,139,69,33,37,33,4,
+  25,195,16,163,16,130,16,130,16,162,16,195,24,163,16,195,24,3,163,16,
+  147,130,16,163,16,130,16,163,24,36,41,138,82,235,90,73,74,8,66,134,
+  49,97,8,65,8,36,33,170,82,171,82,138,74,8,66,235,90,171,90,3,
+  138,82,132,171,90,203,90,171,82,106,82,3,138,82,141,44,107,243,164,52,
+  173,84,181,243,164,208,107,240,107,241,107,241,107,240,107,241,107,241,107,240,
+  107,9,241,107,4,240,107,3,208,107,131,208,99,208,99,208,107,3,208,99,
+  135,208,107,208,99,208,99,175,99,208,99,208,99,176,99,3,208,107,132,208,
+  99,208,99,208,107,208,107,3,240,107,130,208,99,241,107,4,240,107,129,208,
+  107,5,240,107,137,208,107,208,99,240,107,208,99,208,107,208,107,176,99,208,
+  107,208,99,4,175,99,132,143,99,175,99,143,99,175,99,5,143,99,142,111,
+  99,46,91,139,74,200,49,228,16,65,0,65,0,228,24,199,49,171,74,46,
+  91,143,99,142,91,111,99,5,110,91,131,78,91,110,91,110,91,3,78,91,
+  136,110,91,110,91,110,99,111,99,78,99,110,91,78,91,45,91,11,110,91,
+  130,110,99,78,99,5,78,91,136,45,91,77,91,46,91,78,91,78,99,78,
+  91,78,99,78,99,3,77,91,130,78,91,46,91,11,45,91,3,13,91,139,
+  236,90,13,91,13,83,236,82,13,83,236,82,203,82,106,74,171,74,195,24,
+  66,8,3,65,8,130,130,8,171,66,4,171,74,139,139,74,106,74,74,66,
+  106,66,106,74,138,66,106,66,106,66,74,66,41,58,232,49,59,4,223,202,
+  90,40,66,199,49,166,49,7,58,170,82,141,107,174,115,76,107,44,99,77,
+  107,76,107,44,99,76,107,12,99,170,82,40,58,8,50,41,50,73,50,105,
+  50,106,58,138,58,171,58,77,83,16,108,15,108,239,99,16,92,239,75,175,
+  43,175,27,208,27,208,27,240,35,16,36,49,28,17,36,16,36,240,27,143,
+  35,45,35,171,34,41,34,167,33,166,33,198,41,166,41,232,41,41,34,106,
+  26,171,18,236,18,45,11,110,11,208,19,17,28,82,28,114,36,147,44,147,
+  44,146,44,82,44,240,43,110,59,43,107,10,123,204,114,237,122,107,114,70,
+  65,228,40,195,24,195,24,203,82,170,74,171,74,171,74,203,74,36,33,4,
+  33,36,33,36,33,4,33,195,24,101,41,8,58,138,74,236,82,45,91,110,
+  99,207,99,208,107,240,107,240,107,3,16,108,5,17,108,196,49,108,17,108,
+  17,108,49,108,17,108,49,116,49,108,49,108,49,116,17,108,49,108,49,108,
+  17,108,17,108,49,108,49,108,232,49,97,8,130,16,98,16,98,8,97,16,
+  98,16,203,90,178,148,178,148,239,131,48,132,146,148,113,140,110,107,240,123,
+  178,148,243,164,146,148,82,124,50,116,241,115,81,132,211,156,178,148,81,140,
+  240,131,240,131,146,148,20,173,84,181,19,173,145,156,178,156,243,172,243,172,
+  145,156,113,156,210,164,146,156,113,148,80,148,80,148,178,164,242,164,179,156,
+  239,106,142,74,242,107,49,108,49,108,17,108,3,49,108,16,50,108,145,50,
+  100,50,100,82,108,50,108,50,108,82,108,82,108,50,108,83,108,82,116,111,
+  91,199,41,228,0,74,34,176,91,82,108,114,108,13,82,108,134,114,108,114,
+  108,82,108,115,108,115,108,114,108,4,115,108,4,82,108,7,115,108,133,82,
+  108,114,124,207,107,8,58,69,41,5,101,41,140,69,33,69,41,69,41,69,
+  33,69,41,69,41,69,33,69,33,69,41,37,33,74,58,209,99,3,241,99,
+  135,18,108,50,108,49,108,110,91,106,58,232,41,167,41,4,199,41,140,167,
+  41,199,41,199,41,200,41,167,41,199,41,199,41,199,49,199,49,166,49,4,
+  33,130,16,3,98,16,4,97,8,130,195,16,101,33,4,167,41,129,135,41,
+  4,134,41,134,102,33,101,33,102,33,102,41,134,41,102,33,4,102,41,182,
+  102,33,101,41,102,33,101,33,101,33,102,33,101,41,102,41,134,33,135,33,
+  167,41,167,41,200,41,200,41,168,41,200,41,199,41,200,41,199,41,200,49,
+  199,41,134,41,69,33,4,33,163,16,130,8,98,8,98,16,130,16,162,16,
+  195,16,195,16,195,24,163,24,162,16,162,16,130,8,130,8,195,16,195,16,
+  4,25,69,33,135,33,167,41,167,33,167,41,135,33,135,33,167,41,135,41,
+  135,33,134,41,135,41,135,41,7,134,33,143,135,33,102,33,134,33,102,33,
+  102,33,134,41,102,33,102,33,101,33,102,33,102,33,70,33,70,33,69,33,
+  70,33,54,69,33,129,101,33,4,69,33,136,101,33,69,33,101,33,101,33,
+  69,33,101,33,101,33,101,41,3,69,33,147,102,33,102,41,69,33,69,33,
+  163,8,131,16,162,16,163,16,162,16,130,16,195,24,101,41,102,41,102,41,
+  101,33,69,33,4,33,195,24,163,16,5,130,16,6,163,16,173,162,16,130,
+  16,130,16,163,24,227,24,4,33,203,90,45,107,239,123,174,115,105,74,8,
+  66,134,49,97,8,65,8,4,33,138,82,171,82,138,74,8,66,235,90,170,
+  82,138,82,170,82,170,82,171,90,171,90,106,82,106,74,106,82,106,74,138,
+  82,12,99,210,164,52,173,84,181,52,165,208,99,241,107,240,107,208,99,208,
+  99,208,91,208,99,208,99,4,241,107,131,17,108,240,107,241,107,6,240,107,
+  130,208,107,208,99,11,208,107,131,175,99,208,99,208,99,3,208,107,130,208,
+  99,208,107,3,240,107,130,208,107,208,107,5,240,107,129,208,107,5,240,107,
+  130,240,99,240,99,4,208,107,135,208,99,208,107,208,107,176,99,208,99,176,
+  99,176,99,5,175,99,7,143,99,159,111,99,13,91,74,66,102,41,163,16,
+  33,0,98,8,37,25,9,58,204,74,45,91,110,91,110,99,110,91,110,99,
+  110,91,110,91,110,99,110,91,110,99,78,91,110,99,78,91,78,91,110,91,
+  111,99,110,91,110,91,78,91,110,91,78,91,3,110,91,132,110,99,78,91,
+  110,91,110,91,4,110,99,131,110,91,78,91,110,91,8,78,91,129,110,91,
+  3,78,91,130,45,91,45,91,5,77,91,131,45,91,45,91,77,91,5,45,
+  91,3,13,91,129,12,91,3,13,91,141,12,83,236,82,236,82,204,82,138,
+  74,138,74,228,32,65,8,97,8,65,8,65,8,98,8,171,66,6,171,74,
+  137,138,74,106,74,138,74,106,66,138,74,106,66,74,66,41,58,9,50,87,
+  4,221,231,57,166,49,133,41,198,49,40,66,235,90,44,99,202,90,170,82,
+  202,90,202,90,170,90,202,90,202,90,105,74,8,58,199,49,199,41,199,41,
+  231,49,8,50,40,58,73,66,44,91,174,115,141,115,141,107,206,115,174,107,
+  44,83,203,58,236,34,77,43,77,43,77,27,142,27,142,27,175,27,207,27,
+  175,27,175,35,143,27,110,35,12,35,138,34,7,34,166,33,101,33,133,33,
+  134,33,199,25,8,26,8,18,41,18,105,18,170,26,13,19,110,19,175,27,
+  240,27,49,36,81,36,81,36,81,44,17,52,207,75,109,83,12,99,12,115,
+  134,73,37,49,227,32,227,24,68,33,170,74,138,74,138,74,105,74,231,49,
+  36,33,4,33,36,33,36,33,133,41,40,66,105,74,105,74,137,74,203,82,
+  44,91,110,99,142,99,175,99,3,207,99,135,208,107,207,107,208,99,240,107,
+  208,99,240,107,240,99,4,240,107,129,240,99,4,240,107,155,16,108,240,107,
+  240,107,240,99,17,108,143,91,4,25,130,16,162,16,162,16,130,16,130,16,
+  98,16,99,16,165,24,205,90,113,140,113,148,207,123,239,131,113,140,48,132,
+  77,107,240,123,146,148,178,156,16,132,3,240,107,145,49,132,178,148,146,148,
+  81,140,16,132,239,131,81,140,211,156,52,173,19,173,113,156,113,148,210,164,
+  242,172,145,164,113,156,178,164,3,145,156,135,16,148,48,148,145,156,210,164,
+  114,148,79,107,176,107,3,17,100,135,17,108,17,100,17,108,18,108,49,108,
+  50,108,49,108,6,50,108,3,82,108,3,50,108,129,50,100,4,50,108,141,
+  82,108,50,108,82,108,82,108,115,116,50,116,13,83,134,33,5,9,172,50,
+  241,91,82,108,114,108,9,82,108,129,83,108,5,82,108,134,114,108,114,108,
+  115,108,114,108,115,108,115,108,4,82,108,149,115,108,114,108,114,108,115,108,
+  114,108,83,108,50,108,49,108,81,124,16,124,199,57,69,41,101,41,69,41,
+  69,41,101,41,101,41,69,41,101,41,69,41,69,41,5,69,33,143,36,33,
+  237,66,147,116,115,108,115,116,115,108,115,108,147,108,147,108,148,116,147,116,
+  17,100,13,75,41,50,200,41,5,199,41,141,200,41,167,41,167,41,199,41,
+  167,41,199,49,200,49,232,49,199,49,36,33,130,16,98,16,130,16,3,98,
+  8,134,97,8,65,8,163,16,37,33,167,41,167,41,4,134,41,138,102,41,
+  102,41,101,33,102,33,101,33,102,33,101,33,102,33,102,33,101,33,3,102,
+  33,140,101,33,70,33,69,33,102,33,102,33,102,41,134,41,134,41,167,41,
+  199,41,200,41,199,33,3,200,41,146,199,41,199,41,200,41,168,41,199,41,
+  199,41,167,41,199,41,134,41,69,33,227,24,130,16,98,8,98,8,130,16,
+  162,16,130,16,162,16,3,163,16,141,162,16,162,16,163,16,130,8,130,16,
+  163,16,228,16,37,25,70,25,134,33,135,33,167,33,167,33,3,167,41,5,
+  134,33,134,135,33,102,33,134,33,102,33,134,33,134,33,5,102,33,136,69,
+  33,70,33,102,33,70,33,69,33,102,33,69,33,102,33,4,69,33,129,101,
+  33,35,69,33,129,37,33,9,69,33,129,101,33,5,69,33,129,101,41,4,
+  69,33,156,70,33,101,33,69,33,69,33,101,33,102,41,69,33,102,33,102,
+  33,37,33,163,16,131,16,162,16,163,16,163,16,130,16,163,24,4,25,227,
+  16,195,16,130,16,130,8,98,8,98,16,130,16,162,16,162,16,163,24,5,
+  163,16,4,130,16,131,195,24,4,33,69,33,3,134,41,142,138,82,44,99,
+  207,115,142,107,73,74,40,66,198,57,97,16,65,8,228,32,138,82,171,82,
+  138,82,8,66,6,203,90,151,12,99,203,90,203,90,138,82,106,74,170,82,
+  236,98,210,164,84,181,52,173,52,165,208,107,241,107,208,107,208,99,176,91,
+  176,91,208,91,241,99,241,107,209,107,241,107,16,108,8,240,107,131,208,107,
+  208,107,240,107,3,208,107,130,208,99,208,99,3,208,107,135,240,107,208,107,
+  208,107,208,99,208,107,208,99,208,107,4,208,99,3,208,107,5,240,107,129,
+  241,107,9,240,107,4,208,107,4,208,99,7,175,99,10,143,99,139,78,99,
+  237,90,41,58,70,33,130,8,65,0,130,8,37,25,41,58,204,74,78,91,
+  5,110,99,140,110,91,110,99,110,91,110,91,78,91,110,91,110,99,110,91,
+  78,91,110,91,110,99,78,91,3,110,91,141,110,99,110,99,110,91,110,91,
+  110,99,110,99,110,91,110,99,110,91,110,91,78,91,110,91,78,91,3,78,
+  99,4,78,91,132,77,91,110,99,78,91,78,99,3,77,91,137,77,99,78,
+  99,77,99,78,91,45,91,77,91,45,91,45,91,46,91,5,45,91,133,13,
+  91,45,91,13,83,13,91,12,91,3,13,91,138,236,90,138,82,138,74,4,
+  33,65,8,130,16,65,8,65,8,98,8,171,66,6,171,74,4,138,74,133,
+  107,74,106,74,74,66,42,58,233,49,85,4,3,133,41,165,198,49,40,66,
+  105,74,72,74,39,66,40,74,72,74,39,74,39,66,72,74,39,66,231,57,
+  166,49,165,41,166,41,166,41,166,49,198,49,7,58,170,82,11,99,234,98,
+  202,90,43,99,44,99,170,82,72,66,72,58,170,66,234,66,169,50,170,34,
+  171,26,235,26,235,26,12,35,44,35,3,77,35,185,44,35,235,34,170,34,
+  40,42,198,41,133,33,166,41,166,33,198,33,198,33,166,25,166,25,198,33,
+  231,25,73,26,170,26,12,27,77,27,142,27,175,35,207,35,240,51,239,51,
+  207,59,142,75,203,74,231,57,36,33,36,33,3,33,101,41,72,66,230,49,
+  133,41,35,33,4,33,133,41,68,33,36,33,68,41,68,41,231,57,72,66,
+  40,66,105,66,170,74,235,82,44,91,77,91,109,91,109,99,110,99,142,99,
+  142,91,175,99,174,99,142,99,7,175,99,8,207,99,133,240,107,203,74,195,
+  24,227,24,227,24,3,195,24,176,196,24,230,24,8,25,8,33,7,33,236,
+  90,80,132,48,140,174,115,239,123,48,132,239,123,77,99,78,107,113,140,48,
+  140,206,115,175,99,207,99,207,107,239,123,113,140,113,148,48,132,16,132,207,
+  123,239,123,113,140,243,164,242,164,113,156,48,140,145,156,178,164,145,156,80,
+  148,112,156,80,148,112,148,113,148,80,148,239,131,206,131,80,148,113,148,239,
+  131,207,115,241,99,3,17,100,133,17,108,49,100,49,100,49,108,49,100,3,
+  49,108,130,17,108,17,108,5,17,100,131,17,108,49,100,50,100,4,50,108,
+  3,82,108,138,50,108,50,100,50,108,82,108,241,107,204,74,102,17,69,9,
+  171,50,240,91,3,82,108,131,50,108,82,108,50,108,11,82,108,130,114,108,
+  114,108,6,82,108,142,114,108,114,108,82,108,82,108,49,100,241,91,176,83,
+  240,99,48,124,142,107,134,49,69,33,101,41,101,41,9,69,41,3,69,33,
+  131,4,33,45,75,147,116,4,114,108,3,115,108,135,147,108,147,108,180,108,
+  51,108,143,75,139,34,233,41,3,200,41,3,199,41,150,199,49,199,49,199,
+  41,199,41,200,49,232,49,232,49,199,49,69,33,163,16,130,16,98,8,97,
+  8,130,16,98,8,98,8,65,8,130,8,37,25,134,41,134,33,134,41,3,
+  102,33,136,69,33,69,33,102,33,101,33,102,33,102,33,101,41,101,33,3,
+  102,33,3,69,33,135,101,33,69,33,102,41,102,33,134,41,167,41,167,41,
+  3,200,41,132,199,33,200,41,199,41,199,41,5,167,41,143,199,41,167,33,
+  199,41,199,41,167,49,134,41,69,33,228,24,163,16,98,8,65,8,97,16,
+  98,8,130,16,162,16,4,163,16,146,162,16,162,16,130,16,131,16,195,16,
+  163,8,228,16,228,16,37,25,69,33,102,33,102,41,134,33,135,41,134,41,
+  134,41,135,33,167,33,3,134,33,8,102,33,4,69,33,134,102,33,69,33,
+  101,33,102,33,69,33,101,33,7,69,33,3,37,33,130,36,25,36,25,3,
+  36,33,10,4,25,129,228,24,4,4,25,133,4,33,4,33,36,25,36,25,
+  36,33,6,37,33,3,69,33,129,37,33,12,69,33,129,102,33,3,69,33,
+  136,37,33,69,33,36,25,36,25,4,25,195,16,130,8,162,16,3,163,16,
+  137,130,16,65,8,97,8,97,8,98,16,130,16,163,16,162,16,163,24,3,
+  163,16,139,163,24,162,16,130,16,98,16,130,16,163,16,195,24,228,24,37,
+  33,101,41,102,41,4,134,41,163,102,41,203,90,44,99,207,123,207,115,73,
+  74,40,66,199,57,97,16,65,8,228,32,138,82,170,82,138,82,199,57,203,
+  90,236,90,171,90,170,82,138,74,235,90,109,107,236,90,170,82,138,74,138,
+  82,171,90,236,98,178,156,52,173,19,173,52,173,175,107,240,107,241,107,3,
+  208,99,129,240,99,6,241,107,129,16,108,5,240,107,130,241,107,241,107,4,
+  208,107,129,176,107,8,208,107,136,208,99,208,99,208,107,208,107,208,99,176,
+  99,208,99,208,99,4,208,107,5,240,107,129,241,107,5,240,107,129,208,107,
+  3,240,107,3,208,107,136,208,99,208,107,208,107,208,99,175,107,175,99,175,
+  99,176,99,4,175,99,131,143,99,143,99,175,99,8,143,99,140,78,91,204,
+  82,9,50,37,25,130,8,65,0,130,8,69,25,41,58,171,74,45,91,110,
+  91,5,110,99,4,110,91,140,78,91,110,91,110,91,110,99,110,91,78,99,
+  110,91,110,99,110,99,111,99,110,91,110,91,5,110,99,136,110,91,110,99,
+  78,91,110,91,78,99,78,99,78,91,78,91,3,78,99,129,46,99,5,78,
+  99,133,77,91,78,99,77,91,45,91,78,91,3,77,91,130,45,91,45,99,
+  5,45,91,134,13,91,45,91,45,91,13,91,13,91,13,83,3,13,91,133,
+  171,74,171,82,69,41,65,8,98,16,3,65,8,133,139,66,204,74,172,74,
+  171,74,171,82,4,171,74,3,139,74,132,106,66,106,66,41,58,9,58,142,
+  4,182,100,41,100,33,133,41,165,49,197,57,197,57,165,49,165,49,197,57,
+  165,49,165,49,198,49,198,57,165,49,133,41,133,41,132,41,133,41,100,41,
+  133,41,165,49,7,58,72,74,7,66,6,66,71,74,72,74,6,66,197,57,
+  197,49,6,58,71,66,7,58,230,49,230,41,39,34,72,34,71,34,104,34,
+  104,34,137,34,137,34,169,42,170,34,170,34,137,34,104,42,39,42,230,41,
+  165,41,165,41,165,33,133,33,133,33,3,132,33,165,165,33,198,33,7,34,
+  72,34,169,26,203,34,11,35,44,35,77,43,109,51,77,51,12,51,137,42,
+  230,33,133,33,68,33,68,33,100,33,68,33,133,41,198,49,39,58,72,66,
+  231,57,68,33,100,41,100,41,133,41,7,58,8,58,40,66,105,66,170,74,
+  203,82,203,82,235,90,235,82,3,236,82,139,204,82,204,74,204,74,172,74,
+  172,74,139,74,139,74,139,66,108,74,107,66,107,66,3,75,66,3,75,58,
+  131,75,66,8,50,3,25,3,3,33,221,3,25,4,25,5,25,39,33,72,
+  33,71,33,37,25,37,33,167,49,171,82,239,123,239,123,77,107,174,115,239,
+  123,142,115,42,74,13,99,48,132,206,123,77,99,46,91,78,91,46,91,110,
+  107,48,132,80,140,15,132,239,123,174,115,142,115,239,123,146,148,177,156,80,
+  148,15,132,48,140,145,156,112,156,79,148,80,148,47,148,48,148,47,140,47,
+  140,15,132,173,123,174,123,15,140,15,132,239,123,44,83,138,58,105,58,105,
+  58,40,50,8,42,231,41,199,33,167,33,134,33,102,33,101,33,69,33,69,
+  25,68,25,69,25,69,33,69,33,101,33,134,33,166,33,199,41,8,42,41,
+  50,106,58,139,58,236,66,77,75,175,83,240,99,49,100,49,100,49,108,49,
+  108,240,107,235,74,134,33,69,17,138,50,175,91,17,108,49,100,3,17,100,
+  130,49,100,17,100,4,49,100,136,49,108,49,100,49,108,50,100,49,100,50,
+  100,50,100,49,100,4,50,108,142,50,100,17,100,240,91,175,83,143,75,46,
+  75,236,58,143,91,239,107,109,107,134,41,101,41,134,41,134,41,12,101,41,
+  131,36,33,143,83,114,108,4,82,100,142,50,92,50,84,50,76,18,60,242,
+  51,241,35,210,19,210,19,177,11,47,19,205,58,138,58,8,50,200,41,5,
+  232,49,3,8,50,137,232,49,8,50,8,50,167,49,69,41,195,24,163,16,
+  163,16,162,16,3,130,16,155,98,8,130,8,4,25,102,33,134,41,102,41,
+  102,33,101,33,102,33,102,41,102,33,134,41,101,33,102,33,134,33,102,33,
+  134,33,102,33,101,33,102,33,101,33,101,33,102,41,102,33,134,33,167,33,
+  199,41,7,200,41,7,167,41,147,199,41,167,41,167,41,199,41,199,41,167,
+  41,199,41,167,41,134,41,69,33,228,24,130,16,98,8,98,8,98,16,130,
+  16,162,16,163,16,163,16,5,195,24,142,163,16,195,16,162,16,163,16,130,
+  16,163,16,163,16,195,16,228,16,228,24,228,24,4,25,37,25,37,25,3,
+  69,25,3,69,33,137,37,25,69,33,37,33,37,25,37,25,37,33,36,25,
+  4,25,4,25,3,228,24,3,195,16,133,163,16,195,16,162,16,163,16,130,
+  16,3,130,8,130,98,8,98,8,5,130,16,140,130,8,130,8,130,16,162,
+  16,130,8,130,16,162,16,130,16,130,16,162,16,163,16,131,16,4,130,16,
+  7,130,8,169,130,16,130,16,130,8,130,16,130,16,162,8,131,16,131,16,
+  162,16,163,16,162,16,162,16,163,16,163,16,130,16,162,16,130,8,130,8,
+  130,16,130,16,130,8,98,8,130,16,98,8,98,8,162,16,130,16,162,16,
+  163,16,162,16,162,16,130,16,98,16,130,16,130,16,162,16,195,24,195,24,
+  163,16,163,16,163,24,4,130,16,134,162,16,195,24,228,32,69,33,101,41,
+  102,41,8,134,41,145,101,41,203,82,77,107,175,115,207,123,105,74,40,66,
+  231,65,98,16,65,8,227,24,138,82,170,82,170,82,199,57,236,98,203,90,
+  3,138,82,131,203,90,12,99,171,82,3,138,74,135,170,82,203,90,178,156,
+  52,173,20,173,20,173,175,107,14,241,107,131,240,107,240,107,208,107,3,240,
+  107,9,208,107,129,240,107,4,208,107,135,208,99,208,107,208,107,208,99,208,
+  107,208,107,208,99,3,208,107,7,240,107,129,208,107,8,240,107,3,208,107,
+  129,208,99,3,208,107,129,176,99,9,175,99,5,143,99,129,175,99,3,143,
+  99,146,175,99,143,99,46,91,172,74,232,49,37,33,130,8,65,0,130,8,
+  36,25,232,49,171,74,13,91,110,99,143,99,110,99,110,91,78,91,3,110,
+  91,129,78,91,3,110,91,3,110,99,135,110,91,110,99,110,99,110,91,110,
+  99,142,99,110,91,9,110,99,133,78,99,110,99,78,99,78,99,78,91,3,
+  78,99,142,110,99,78,99,78,99,78,91,78,91,77,91,77,91,78,99,78,
+  99,45,91,77,99,77,91,78,91,77,91,8,45,91,145,13,91,45,91,13,
+  91,13,91,12,91,204,90,171,82,134,49,65,16,98,16,65,8,65,8,33,
+  0,9,50,204,74,171,74,171,82,5,171,74,129,139,74,3,138,74,131,106,
+  66,73,66,9,58,100,4,130,68,33,67,41,8,100,41,130,132,41,132,41,
+  3,100,41,130,100,33,100,33,3,100,41,148,132,49,164,49,132,49,132,49,
+  164,49,196,57,164,49,100,41,100,41,164,49,197,49,165,49,132,41,132,41,
+  165,41,164,41,165,41,165,41,197,41,197,41,3,229,41,4,6,42,131,230,
+  41,229,41,197,41,5,132,41,3,100,33,146,100,41,132,33,165,33,197,33,
+  230,33,38,34,71,34,104,34,137,42,169,42,169,42,136,34,39,34,230,41,
+  165,41,133,41,197,49,198,49,4,230,49,130,6,58,165,41,3,132,41,133,
+  165,49,166,49,166,49,199,49,166,49,3,167,49,130,134,41,134,41,3,102,
+  41,131,102,33,134,33,102,33,5,135,41,3,167,41,130,168,41,168,41,3,
+  200,41,129,102,41,6,68,33,181,102,33,103,33,102,41,68,41,68,33,68,
+  33,69,33,201,49,235,57,139,74,109,107,109,107,11,99,76,107,141,107,77,
+  107,41,74,12,99,141,115,76,107,9,66,201,49,234,49,10,58,171,82,174,
+  115,206,123,174,115,174,115,141,107,12,99,77,107,15,132,80,140,15,132,206,
+  123,238,131,47,140,47,140,14,132,238,131,238,131,14,132,238,123,206,123,206,
+  123,173,123,108,115,141,115,206,123,173,115,104,74,67,33,5,68,33,131,67,
+  33,68,33,67,33,5,68,33,134,67,33,67,33,68,33,67,33,68,33,35,
+  33,6,68,33,142,101,33,166,41,8,50,138,58,12,75,110,91,207,99,16,
+  108,239,107,12,83,198,41,101,25,73,50,77,83,3,240,99,132,240,91,240,
+  91,240,99,16,100,4,240,99,3,16,100,145,17,100,16,100,17,100,16,100,
+  17,100,16,92,208,91,175,91,110,83,45,75,236,66,171,58,106,50,73,42,
+  142,91,174,107,12,91,4,166,49,129,166,41,5,166,49,129,166,41,5,166,
+  49,154,166,41,176,67,18,68,241,59,209,43,176,43,145,35,144,19,111,19,
+  112,19,111,35,112,35,144,43,176,59,176,75,241,83,241,91,16,100,16,108,
+  207,107,77,91,138,66,73,58,73,58,105,66,105,66,3,73,66,131,105,66,
+  73,58,73,58,3,8,58,140,166,49,69,41,36,33,4,33,4,33,4,25,
+  4,33,4,25,228,24,4,25,36,33,134,41,3,199,49,132,231,49,199,49,
+  199,49,231,57,4,231,49,130,199,49,231,49,3,199,49,131,231,49,232,49,
+  8,50,4,41,50,3,41,58,130,41,50,41,50,4,8,50,132,232,49,232,
+  49,8,50,8,50,5,232,49,6,231,49,148,199,49,134,41,36,33,195,24,
+  195,24,162,16,163,16,162,16,195,24,195,24,227,24,228,24,227,24,227,24,
+  228,24,228,24,227,24,228,24,195,24,227,24,3,195,24,134,195,16,162,16,
+  195,16,195,16,163,16,163,16,3,195,16,133,195,24,195,16,195,24,195,16,
+  195,16,3,195,24,3,195,16,135,195,24,195,24,163,16,195,24,195,24,227,
+  24,195,16,6,195,24,130,195,16,195,16,3,195,24,133,195,16,195,24,227,
+  24,227,24,195,24,4,227,24,132,195,24,195,16,195,24,195,24,3,195,16,
+  132,195,24,195,16,163,16,195,16,8,130,16,136,163,16,130,8,130,16,163,
+  16,130,16,162,16,130,16,162,16,4,130,16,130,162,16,162,16,4,130,16,
+  151,130,8,130,16,162,16,162,16,130,16,163,16,163,16,130,16,163,16,163,
+  16,163,24,162,16,163,16,130,16,163,16,162,16,130,16,130,16,163,16,163,
+  24,227,24,4,33,37,33,3,102,41,136,134,41,134,41,102,41,102,41,134,
+  41,102,41,134,41,102,41,3,134,41,165,101,41,170,82,77,107,174,115,239,
+  123,105,74,8,66,73,74,98,8,65,8,195,24,106,74,171,82,170,82,199,
+  57,203,90,138,82,138,82,170,82,170,82,203,90,12,91,203,82,171,82,138,
+  82,138,82,171,82,171,82,178,156,52,173,19,173,20,173,208,107,240,107,241,
+  107,241,107,240,107,5,241,107,140,240,107,241,107,240,107,241,107,241,107,240,
+  107,241,107,241,107,240,107,241,107,240,107,241,107,16,208,107,133,208,99,208,
+  107,208,107,207,99,208,99,4,208,107,4,240,107,129,241,107,6,240,107,132,
+  241,107,240,107,208,107,240,107,4,208,107,131,208,99,208,107,207,99,6,175,
+  99,132,143,99,143,99,175,99,175,99,9,143,99,144,175,99,143,99,143,99,
+  77,91,172,74,8,50,69,33,130,8,65,0,97,8,4,25,199,49,138,66,
+  13,83,78,91,143,99,3,110,99,137,110,91,110,91,110,99,110,91,110,91,
+  110,99,111,99,110,99,110,91,4,110,99,131,110,91,110,99,111,99,4,110,
+  99,129,110,91,6,110,99,133,78,99,110,99,110,99,78,91,78,99,3,110,
+  99,130,77,91,78,91,3,78,99,135,77,99,78,99,77,91,78,99,45,91,
+  45,91,77,91,8,45,91,4,13,91,138,204,90,171,82,199,57,97,16,98,
+  16,66,8,65,8,32,0,167,33,236,82,7,171,74,135,139,74,139,74,138,
+  74,139,74,74,66,73,58,9,58,58,4,152,67,33,67,41,67,33,67,41,
+  67,33,68,33,100,41,68,33,68,41,68,33,100,41,67,33,100,33,99,33,
+  99,33,67,33,100,33,68,33,67,33,99,41,99,41,68,33,100,41,67,41,
+  8,99,41,129,100,41,4,99,41,3,99,33,131,131,33,131,41,131,41,9,
+  132,41,144,100,41,100,41,99,33,99,41,99,33,131,41,99,33,99,33,100,
+  41,100,33,132,41,132,41,164,41,165,33,197,41,197,33,3,229,41,129,197,
+  41,5,165,41,130,165,49,197,49,3,165,41,4,132,41,144,133,41,101,41,
+  101,41,133,41,133,41,165,41,165,41,166,49,198,49,198,49,230,49,231,49,
+  7,58,7,58,39,58,39,58,3,40,58,3,72,66,134,104,66,72,66,72,
+  66,104,66,137,66,39,58,4,132,41,185,165,41,165,41,133,41,166,41,165,
+  41,165,41,132,41,133,41,167,41,233,49,200,49,135,49,166,49,40,66,202,
+  90,202,90,169,82,202,90,235,90,170,82,72,74,234,90,43,99,201,82,230,
+  49,39,50,137,74,235,82,235,90,43,99,76,107,108,107,76,107,76,99,235,
+  90,202,90,141,115,205,123,205,123,108,115,108,115,173,115,205,123,205,115,140,
+  115,140,115,173,123,140,115,108,107,140,107,141,107,108,107,75,107,140,107,173,
+  115,43,99,229,49,6,197,49,136,197,41,197,49,165,49,164,41,197,49,165,
+  49,164,41,196,41,3,164,41,153,165,41,165,49,165,41,165,41,164,41,164,
+  41,165,41,165,41,164,41,165,41,164,41,165,41,198,49,230,49,72,58,203,
+  74,109,91,174,99,43,83,7,50,101,33,231,41,170,66,110,91,207,91,6,
+  175,91,129,207,91,3,175,91,145,207,91,207,91,175,91,175,91,142,91,109,
+  75,45,75,236,74,171,66,105,58,73,50,73,50,138,50,203,66,109,99,76,
+  99,202,82,9,198,49,129,230,49,7,198,49,155,13,27,46,27,78,35,78,
+  35,110,43,143,59,175,75,175,83,240,91,240,99,16,100,49,108,49,108,81,
+  108,81,108,49,108,49,100,16,108,16,108,48,116,207,115,109,99,11,83,170,
+  74,137,66,137,66,138,66,3,137,66,136,105,66,73,58,72,58,40,58,73,
+  66,40,58,7,58,198,49,5,101,41,136,101,33,101,41,101,41,133,41,199,
+  41,7,50,40,58,72,66,13,40,58,139,73,58,105,58,138,66,138,66,106,
+  58,106,58,105,66,105,66,106,66,105,58,105,58,6,73,58,132,40,58,41,
+  58,41,50,40,58,3,40,50,129,8,58,5,8,50,137,231,49,8,50,8,
+  50,231,49,199,49,134,41,69,33,36,33,3,25,4,227,24,135,36,33,4,
+  33,4,33,36,33,36,33,4,33,4,33,5,36,33,135,4,33,4,25,4,
+  33,4,25,4,33,36,33,4,25,4,36,33,129,68,33,7,36,33,5,4,
+  33,149,3,25,4,33,36,33,4,33,4,25,3,25,4,25,4,25,4,33,
+  4,25,4,25,36,25,4,25,36,33,36,33,4,33,36,33,4,33,4,25,
+  3,25,3,33,10,227,24,130,163,24,163,16,3,130,16,130,162,16,130,16,
+  3,162,16,131,130,16,163,16,163,16,5,162,16,131,130,16,162,16,163,16,
+  3,162,16,138,130,16,130,8,98,8,130,16,162,16,163,16,163,16,162,16,
+  162,16,163,16,5,130,16,137,163,16,195,16,195,24,4,33,37,33,69,33,
+  102,41,101,41,134,41,3,102,41,131,102,33,102,41,134,41,3,102,41,131,
+  134,41,134,41,102,41,3,134,41,144,101,41,138,82,77,107,174,115,239,123,
+  73,74,41,66,105,74,130,16,65,8,195,24,105,74,170,82,171,82,167,49,
+  203,90,4,170,82,3,203,90,138,171,82,106,74,138,82,171,82,171,82,146,
+  156,20,173,19,173,52,173,207,107,4,241,107,129,240,107,3,241,107,129,240,
+  107,4,241,107,133,240,107,240,107,241,107,240,107,240,107,3,208,107,130,240,
+  107,240,107,3,208,107,129,208,99,11,208,107,131,207,107,208,107,175,99,4,
+  208,107,3,240,107,129,208,107,10,240,107,6,208,107,133,208,99,207,99,175,
+  99,208,99,207,99,6,175,99,131,143,99,143,99,175,99,11,143,99,144,175,
+  99,143,99,77,91,203,74,41,58,69,33,163,16,65,0,65,0,228,16,167,
+  41,106,66,13,83,78,91,110,99,110,99,3,110,91,135,110,99,111,99,110,
+  99,110,99,142,99,142,99,111,99,4,110,99,130,143,99,143,99,4,110,99,
+  129,142,99,13,110,99,141,78,99,78,99,77,91,110,99,110,99,77,99,78,
+  99,78,99,77,91,77,99,77,91,78,99,77,91,9,45,91,155,13,99,45,
+  91,13,91,12,91,203,82,73,74,130,16,98,16,65,8,65,8,33,8,4,
+  17,236,74,171,74,171,74,172,82,171,82,171,74,171,74,139,74,106,74,106,
+  66,139,66,138,74,106,66,73,66,41,58,115,4,130,67,33,66,33,4,67,
+  33,129,67,41,3,67,33,129,68,33,5,67,33,134,99,33,68,33,99,33,
+  67,33,68,33,67,33,3,68,33,132,67,33,100,33,67,33,99,33,3,67,
+  33,131,99,33,67,33,67,41,3,67,33,138,99,33,67,33,99,33,98,33,
+  99,41,99,41,98,33,99,41,99,41,99,33,3,99,41,130,98,33,131,41,
+  3,99,33,130,98,41,99,33,3,99,41,5,99,33,136,99,41,99,33,131,
+  33,131,33,131,41,132,41,132,41,100,41,7,132,41,132,131,41,132,41,131,
+  41,131,41,5,132,41,133,164,41,132,41,164,41,132,41,132,49,5,164,49,
+  130,197,49,165,49,6,197,49,133,198,49,197,49,197,49,230,49,197,49,4,
+  164,41,180,165,41,197,49,165,41,197,41,197,49,165,49,132,41,165,41,198,
+  49,166,49,166,41,198,49,230,57,39,58,230,49,230,57,39,66,39,66,7,
+  66,40,74,71,74,39,66,71,74,168,82,200,82,103,66,6,58,6,50,39,
+  58,6,58,39,66,169,82,202,82,202,82,201,82,201,82,168,82,168,82,42,
+  99,75,107,75,107,42,99,42,99,75,107,107,107,107,107,75,107,43,99,107,
+  107,75,99,10,91,10,91,5,42,99,134,42,91,103,66,38,58,38,58,70,
+  58,70,58,4,38,58,129,37,58,4,38,58,134,37,58,37,58,38,58,5,
+  50,38,58,5,58,3,5,50,129,5,58,3,5,50,175,5,58,229,49,229,
+  49,5,50,229,49,229,49,6,50,71,58,170,74,11,83,11,83,72,58,197,
+  41,198,41,7,50,71,58,137,66,12,83,109,91,109,91,76,83,77,83,109,
+  83,109,83,77,83,77,83,45,83,44,83,235,74,203,66,138,58,105,58,72,
+  50,40,50,40,50,137,58,235,66,77,83,109,83,76,91,234,82,137,66,198,
+  49,230,49,198,49,230,49,198,49,6,230,49,141,6,50,230,49,230,49,6,
+  50,230,49,7,50,109,83,174,91,175,91,175,91,207,91,239,99,207,99,3,
+  239,99,132,240,99,207,99,240,99,240,91,3,240,99,155,207,99,207,99,207,
+  107,174,107,174,107,206,107,44,91,105,66,105,58,170,66,170,66,170,74,169,
+  74,137,66,105,66,105,66,105,58,72,58,104,66,72,66,72,58,72,66,39,
+  58,7,50,230,49,230,49,230,41,3,230,49,132,230,41,231,49,39,50,104,
+  58,6,137,66,132,105,66,104,66,105,66,105,66,3,137,66,135,169,66,169,
+  66,170,66,170,74,170,66,170,74,170,66,3,170,74,132,170,66,137,66,170,
+  66,170,66,7,137,66,133,105,66,137,66,105,58,104,58,104,58,11,72,58,
+  149,40,58,39,58,7,50,230,49,198,41,165,41,101,41,100,41,101,41,101,
+  33,100,33,133,41,100,33,132,41,133,41,100,33,132,41,100,33,133,41,100,
+  33,101,41,3,100,41,140,133,41,100,33,133,41,100,33,133,41,100,33,132,
+  41,100,41,132,41,100,33,101,41,100,33,6,68,33,133,100,33,101,33,100,
+  33,100,33,101,41,6,100,33,130,101,33,101,33,3,100,33,130,68,33,101,
+  41,3,68,33,130,36,33,36,33,3,3,25,129,35,25,3,3,25,147,227,
+  24,195,24,195,16,162,16,130,16,130,16,97,8,98,16,97,8,130,16,98,
+  8,98,8,98,16,98,8,98,16,65,8,97,8,98,8,98,16,4,98,8,
+  143,97,8,98,16,65,8,97,8,130,16,130,16,162,16,163,16,162,16,163,
+  24,227,24,196,24,228,24,4,33,37,33,3,69,33,130,102,33,134,33,11,
+  102,41,131,134,41,134,41,102,41,7,134,41,170,101,41,105,74,77,107,174,
+  115,239,123,105,74,41,74,137,82,130,16,65,8,162,16,73,74,171,82,171,
+  82,199,57,203,90,170,90,138,82,171,90,171,82,138,74,106,66,73,66,138,
+  74,138,82,171,90,171,82,203,82,113,148,19,165,19,165,52,173,208,115,240,
+  107,241,107,240,107,241,107,240,107,241,107,241,107,240,107,16,108,3,240,107,
+  133,241,107,240,107,240,107,241,107,209,107,3,240,107,131,208,107,240,107,240,
+  107,6,208,107,129,208,99,5,208,107,129,176,107,8,208,107,131,240,107,208,
+  107,208,107,6,240,107,129,241,107,7,240,107,5,208,107,132,208,99,208,99,
+  175,99,176,99,6,175,99,130,143,99,175,99,3,143,99,153,175,99,143,99,
+  143,99,175,99,143,99,175,99,143,99,143,99,111,99,143,99,143,99,142,99,
+  143,99,78,91,204,82,41,58,102,33,195,16,65,0,65,0,195,16,134,33,
+  106,58,236,82,78,99,4,110,99,136,142,99,110,99,111,99,142,99,143,99,
+  143,99,110,99,110,99,4,143,99,130,110,99,142,99,6,110,99,129,111,99,
+  5,110,99,129,142,99,4,110,99,134,78,99,77,99,78,99,110,99,109,99,
+  77,99,3,78,99,132,78,91,77,99,77,91,77,91,9,45,91,154,13,91,
+  13,91,45,91,204,82,138,74,195,24,98,16,98,8,97,8,65,8,130,8,
+  203,74,204,82,172,82,204,82,204,82,171,74,171,74,139,74,106,66,106,66,
+  139,74,139,74,106,66,74,66,41,58,253,3,129,66,33,18,67,33,134,68,
+  33,100,33,68,33,68,33,100,33,68,33,9,67,33,129,66,33,4,67,33,
+  149,66,33,99,33,98,33,98,33,66,33,98,33,98,41,67,33,67,33,99,
+  33,66,33,99,33,98,33,98,33,99,33,98,33,99,33,66,33,98,33,66,
+  33,66,33,4,67,33,133,99,41,66,33,98,41,66,33,67,33,8,99,33,
+  135,131,41,131,41,131,33,131,33,131,41,131,33,131,33,6,131,41,135,99,
+  41,131,41,99,41,131,41,99,41,131,41,99,41,3,131,41,134,132,41,132,
+  41,164,49,163,49,164,49,163,41,12,164,41,135,165,49,164,41,164,41,195,
+  41,164,41,164,41,196,41,4,164,41,132,165,49,164,49,197,49,165,49,3,
+  197,49,160,164,49,197,57,229,57,4,66,69,66,102,66,103,66,70,58,70,
+  58,38,58,38,58,6,50,38,58,71,66,71,66,103,66,103,66,135,74,135,
+  66,167,74,232,82,233,90,233,82,200,82,233,82,9,91,41,91,9,91,9,
+  91,233,90,9,91,9,91,5,233,82,3,232,82,135,135,66,134,66,134,66,
+  135,66,102,66,135,66,135,66,11,134,66,165,102,66,102,58,102,66,102,66,
+  70,58,102,66,102,58,70,58,70,58,102,58,70,58,70,58,69,58,69,58,
+  38,58,37,58,38,58,38,58,71,58,169,74,201,74,136,66,5,50,230,49,
+  229,49,6,50,71,66,103,66,6,50,6,50,234,74,234,74,202,74,170,66,
+  105,66,104,58,72,58,4,39,50,130,105,58,170,66,4,235,66,131,234,74,
+  169,66,39,58,8,230,49,130,6,50,230,49,6,6,50,131,39,50,77,83,
+  77,83,5,109,83,129,141,91,5,142,83,5,142,91,138,109,91,109,91,76,
+  91,77,91,203,74,39,50,230,49,7,50,7,50,40,58,3,137,66,129,104,
+  58,7,72,58,132,104,66,72,58,39,58,7,58,4,7,50,138,39,50,39,
+  58,39,58,71,58,40,58,104,66,136,66,137,66,137,66,169,66,3,137,66,
+  143,169,66,169,66,137,66,169,66,169,66,170,66,202,66,202,74,201,66,202,
+  74,202,66,201,66,201,74,170,66,201,66,7,169,66,130,137,66,169,66,4,
+  137,66,3,136,58,11,104,58,5,72,58,135,71,58,39,58,39,50,6,50,
+  7,50,230,49,230,41,7,197,41,129,165,41,8,197,41,132,230,41,197,41,
+  197,41,198,49,4,197,41,135,165,41,198,41,165,41,198,49,198,49,230,49,
+  230,49,7,6,50,131,39,50,7,50,7,50,3,6,50,131,7,50,6,50,
+  7,58,3,230,49,141,198,49,198,41,197,41,197,41,198,41,198,49,166,41,
+  198,41,165,41,133,41,133,41,101,41,68,33,3,36,33,4,4,33,3,228,
+  24,141,4,25,228,24,4,25,4,25,228,24,4,25,4,33,4,25,4,25,
+  4,33,4,25,228,24,130,16,3,162,16,140,130,16,163,16,36,33,101,33,
+  69,33,102,41,69,33,102,41,69,33,102,33,102,41,69,33,3,102,33,133,
+  69,33,102,41,101,41,102,41,134,41,6,102,41,130,102,33,102,41,6,134,
+  41,165,102,41,73,74,44,99,174,115,16,132,105,74,40,66,138,82,162,16,
+  65,8,162,16,73,74,170,82,170,82,199,49,203,90,171,90,170,82,203,90,
+  73,74,106,66,139,74,41,58,232,57,73,74,236,98,170,82,138,74,80,140,
+  19,173,20,165,85,173,240,115,240,107,240,107,241,107,241,107,3,240,107,135,
+  17,108,241,107,240,107,240,107,17,108,240,107,241,107,3,240,107,131,241,107,
+  240,107,240,107,5,208,107,129,208,99,13,208,107,131,176,99,208,107,176,107,
+  3,208,107,8,240,107,132,241,107,240,107,241,107,208,107,5,240,107,5,208,
+  107,131,176,99,176,99,176,107,10,175,99,129,143,99,3,175,99,130,143,99,
+  175,99,9,143,99,146,142,99,78,99,236,82,105,66,134,41,195,16,65,0,
+  65,0,163,8,102,33,74,58,236,82,78,99,110,99,143,99,111,99,142,99,
+  142,99,3,143,99,3,111,99,140,143,99,143,99,142,99,143,107,142,99,110,
+  99,142,99,142,99,142,107,110,99,110,99,143,99,3,142,99,131,110,99,110,
+  99,142,99,5,110,99,134,78,99,78,99,110,99,110,99,78,99,110,99,3,
+  78,99,131,77,99,77,91,77,99,3,77,91,151,77,99,45,91,45,99,45,
+  99,45,91,45,99,13,91,45,91,13,91,236,90,203,82,69,41,65,8,98,
+  8,98,8,65,8,65,0,106,66,204,82,204,82,171,74,203,74,204,82,5,
+  171,74,132,138,74,106,66,74,66,41,58,24,4,11,67,33,129,99,33,10,
+  67,33,135,68,33,67,33,68,33,100,33,67,33,67,33,100,33,8,67,33,
+  4,66,33,135,98,33,99,33,66,33,66,33,67,33,66,33,98,33,6,66,
+  33,129,98,33,7,66,33,129,67,33,9,66,33,133,99,33,99,33,98,33,
+  99,33,131,41,5,99,33,130,99,41,131,41,3,99,33,139,131,41,99,41,
+  99,33,98,41,98,41,99,41,99,41,98,41,98,41,99,41,99,41,3,131,
+  41,144,164,41,163,49,163,49,163,41,163,41,164,49,164,41,164,41,163,41,
+  196,49,164,41,164,49,164,41,196,49,164,49,164,49,9,196,49,5,164,41,
+  140,196,49,197,49,164,49,164,49,196,49,164,41,164,49,164,49,4,58,69,
+  66,70,66,102,66,3,70,58,131,37,58,5,50,5,50,4,37,58,132,69,
+  58,102,66,166,74,167,74,4,199,74,137,232,82,232,74,8,83,8,83,232,
+  82,231,82,232,82,199,74,200,74,3,199,74,132,167,74,199,74,167,74,167,
+  74,5,167,66,3,167,74,132,166,66,167,74,167,66,167,74,3,167,66,131,
+  167,74,167,74,167,66,3,134,66,132,167,66,134,66,166,66,167,66,3,134,
+  66,4,102,58,136,101,58,101,58,102,58,70,58,38,58,70,58,71,66,70,
+  58,3,38,58,3,70,58,132,37,50,38,58,71,58,71,58,3,39,50,129,
+  6,42,3,39,50,142,71,50,72,50,39,42,39,42,71,42,39,42,39,42,
+  104,66,72,58,6,50,229,41,6,42,6,42,229,41,3,6,50,129,230,49,
+  4,6,50,129,38,50,3,6,50,153,39,50,202,74,202,74,234,74,235,74,
+  11,75,235,74,235,74,11,75,11,75,11,83,44,83,12,75,12,75,11,75,
+  43,75,44,75,44,83,44,83,11,75,235,74,235,82,202,74,40,58,39,50,
+  4,7,50,136,40,58,11,83,234,74,72,58,39,50,39,58,72,58,71,58,
+  3,39,58,4,71,58,150,39,58,39,50,7,50,7,50,39,50,39,50,71,
+  50,71,58,71,58,72,58,39,58,72,58,104,58,104,58,105,66,104,66,136,
+  66,137,66,137,58,137,66,136,58,136,66,3,169,66,129,169,58,4,169,66,
+  131,137,66,169,66,136,66,3,137,58,133,104,58,137,66,104,58,104,58,136,
+  58,3,104,58,142,72,58,72,58,104,50,104,50,72,58,104,58,71,50,71,
+  58,71,58,39,50,71,50,39,50,39,50,71,50,3,39,50,140,38,50,6,
+  50,39,50,39,50,6,50,38,50,6,50,7,50,6,50,6,50,6,42,38,
+  50,4,6,50,129,230,49,3,6,50,130,38,50,38,50,9,6,50,143,7,
+  50,7,50,6,50,230,49,7,50,230,49,7,50,7,50,6,50,6,50,39,
+  50,6,50,6,50,38,50,39,50,3,6,50,133,7,50,39,58,7,50,6,
+  50,39,50,3,39,58,132,39,50,7,50,39,50,7,50,6,6,50,138,6,
+  42,230,49,198,49,198,49,198,41,166,41,101,41,101,41,101,33,101,33,9,
+  69,33,129,69,41,5,69,33,131,69,41,69,33,163,16,4,130,16,130,163,
+  16,4,33,6,69,33,139,102,41,101,33,69,33,69,33,102,41,70,33,102,
+  33,102,33,102,41,102,41,101,33,5,102,41,130,134,41,102,41,8,134,41,
+  164,102,41,73,74,45,107,174,115,48,132,73,74,8,66,41,66,163,16,65,
+  8,163,16,40,66,138,82,170,82,199,57,170,82,170,82,236,98,236,90,171,
+  82,171,82,139,74,42,58,41,58,9,66,138,82,138,82,170,82,16,140,20,
+  173,243,164,52,173,240,123,240,107,240,107,241,107,3,240,107,133,16,108,17,
+  108,241,107,17,108,17,108,6,240,107,133,208,107,240,107,240,107,208,107,240,
+  107,14,208,107,129,176,99,3,208,107,133,208,99,208,107,176,99,208,107,208,
+  107,7,240,107,129,241,107,8,240,107,7,208,107,133,176,99,176,99,175,99,
+  175,99,176,99,3,175,99,132,175,107,143,107,175,99,143,99,6,175,99,6,
+  143,99,129,110,99,5,143,99,143,78,99,236,90,73,66,135,41,195,16,65,
+  8,65,0,163,8,102,33,74,66,237,82,110,99,143,99,142,99,142,99,4,
+  143,99,141,142,99,111,99,142,99,143,99,143,107,142,99,143,99,143,99,110,
+  99,143,99,143,99,110,99,111,99,3,142,99,133,110,99,143,99,143,99,110,
+  99,142,99,9,110,99,130,78,99,110,99,5,78,99,129,45,91,3,77,99,
+  131,78,99,45,99,45,99,3,45,91,146,13,91,45,91,12,91,204,90,135,
+  49,97,8,98,8,97,8,98,8,33,0,9,50,236,82,204,82,171,74,204,
+  74,204,82,171,82,171,82,3,171,74,132,138,74,138,74,74,66,41,58,230,
+  3,135,68,33,68,33,67,33,100,33,67,33,67,41,100,33,3,68,33,9,
+  67,33,130,100,33,67,33,3,68,33,134,67,33,68,33,68,33,67,33,68,
+  33,99,33,8,67,33,5,66,33,129,67,33,28,66,33,135,66,41,66,33,
+  98,33,99,33,99,33,99,41,99,33,3,99,41,131,99,33,131,41,131,41,
+  3,99,41,137,99,33,99,41,99,41,131,33,131,33,99,41,99,41,131,41,
+  99,41,3,131,41,131,163,41,163,41,163,49,4,196,49,129,196,41,13,196,
+  49,6,228,49,130,196,49,196,41,3,164,41,161,196,49,196,41,196,49,196,
+  49,196,41,196,41,196,49,4,58,37,58,69,58,101,58,101,66,101,58,101,
+  58,102,66,101,58,101,58,69,58,70,66,69,58,69,58,69,66,102,66,166,
+  66,166,74,199,74,198,74,199,74,231,74,7,83,231,74,231,74,231,82,4,
+  231,74,130,232,74,231,74,3,199,74,130,167,74,167,74,6,166,66,132,166,
+  74,166,74,167,74,166,66,4,167,74,131,166,74,199,74,167,74,7,166,66,
+  129,134,66,3,166,66,138,134,66,102,66,102,58,102,58,102,66,102,58,69,
+  58,70,66,37,58,69,58,4,37,58,3,38,58,3,70,58,133,38,50,5,
+  50,5,42,229,41,197,41,5,229,41,129,197,41,4,229,41,139,6,50,6,
+  50,6,58,6,50,230,49,5,42,5,42,229,49,229,49,229,41,5,50,7,
+  6,50,138,38,50,6,50,6,50,38,50,72,58,72,58,104,58,104,58,136,
+  58,136,58,3,136,66,132,169,66,169,66,137,66,137,66,3,169,66,148,137,
+  66,169,66,137,66,104,66,137,66,104,58,39,58,39,50,39,58,39,50,7,
+  50,39,58,39,50,137,66,137,66,7,58,39,50,39,50,39,58,39,58,3,
+  39,50,140,7,50,39,58,6,50,7,50,39,58,39,50,39,50,7,50,39,
+  58,39,50,39,58,71,58,4,39,58,131,71,58,71,58,72,58,5,104,58,
+  132,104,66,104,58,104,58,136,58,9,104,58,131,72,58,72,58,71,50,3,
+  71,58,129,71,50,4,39,50,131,38,50,39,50,39,50,5,6,50,129,6,
+  42,3,6,50,131,230,41,6,50,6,42,3,230,41,130,198,41,230,41,22,
+  197,41,129,165,41,3,197,41,142,230,41,230,49,230,41,230,49,198,41,230,
+  41,230,41,231,49,230,41,230,41,230,49,198,41,230,41,230,41,3,198,41,
+  135,197,41,197,41,230,41,230,41,230,49,6,50,230,49,4,6,50,139,230,
+  41,6,50,230,49,230,41,230,49,229,41,230,41,6,50,6,50,230,49,6,
+  50,4,230,49,132,198,49,166,41,133,41,101,33,15,69,33,132,70,33,69,
+  33,163,16,163,16,3,130,16,131,195,24,4,33,69,41,3,69,33,141,101,
+  33,69,33,69,33,102,41,69,33,101,33,102,41,101,41,69,41,102,33,102,
+  41,102,41,102,33,7,102,41,3,134,41,167,102,41,134,41,102,41,102,41,
+  134,41,134,41,102,41,73,66,109,107,174,115,81,132,105,74,231,57,199,57,
+  195,24,65,8,130,16,40,66,138,82,171,82,199,57,138,82,171,90,45,107,
+  12,99,12,99,134,41,163,8,228,16,8,58,74,74,73,66,203,90,171,90,
+  15,132,20,173,243,164,52,173,16,124,3,240,107,132,241,107,240,107,241,107,
+  240,107,3,241,107,130,17,108,241,107,3,240,107,129,241,107,3,240,107,132,
+  208,107,208,107,240,107,240,107,3,208,107,130,208,99,208,99,4,208,107,129,
+  208,99,5,208,107,133,207,107,208,107,208,99,208,99,176,99,5,208,107,7,
+  240,107,129,17,108,7,240,107,3,208,107,129,208,99,3,208,107,5,175,99,
+  129,175,107,4,175,99,134,175,107,175,99,143,99,175,99,175,99,143,107,4,
+  143,99,155,111,99,143,107,143,99,143,99,142,99,143,99,142,99,110,99,143,
+  107,143,99,110,99,13,91,106,66,167,49,195,24,65,0,65,0,162,16,102,
+  33,106,58,13,83,110,99,143,107,143,107,143,99,142,99,142,99,6,143,99,
+  3,142,99,130,143,99,142,99,3,143,99,136,110,99,142,99,143,107,142,99,
+  143,99,143,99,142,99,143,99,8,110,99,132,78,99,110,99,78,99,110,99,
+  4,78,99,3,77,99,5,45,99,3,45,91,144,13,91,236,90,8,66,98,
+  16,130,16,65,8,97,8,33,8,103,33,236,74,204,82,203,82,204,82,171,
+  82,204,82,171,82,3,171,74,132,138,74,106,74,73,66,41,66,209,3,147,
+  100,33,67,33,68,33,100,33,68,33,100,33,100,33,68,33,100,33,68,33,
+  67,33,100,33,68,33,67,33,67,33,99,33,99,33,68,33,99,33,14,100,
+  33,129,99,33,9,67,33,129,99,33,7,67,33,131,66,33,66,33,67,33,
+  8,66,33,129,67,33,7,66,33,133,67,33,66,33,67,33,66,33,66,33,
+  3,67,33,129,99,33,3,131,41,129,99,33,4,131,41,135,99,33,131,41,
+  131,41,99,33,131,41,99,33,131,33,4,131,41,137,163,41,131,41,131,41,
+  163,49,163,49,164,49,196,49,195,49,228,49,12,196,49,130,228,49,196,49,
+  8,228,49,132,196,49,196,41,196,41,164,41,4,196,41,139,196,49,228,49,
+  4,50,36,58,69,58,101,58,101,58,134,66,166,66,166,66,198,74,4,166,
+  66,140,134,66,134,66,166,74,198,74,198,74,231,74,198,74,231,74,230,74,
+  231,74,7,75,7,83,4,7,75,4,231,74,3,199,74,130,166,66,199,74,
+  4,166,66,3,166,74,3,166,66,135,166,74,134,66,166,74,166,66,166,74,
+  166,74,166,66,5,134,66,140,102,66,102,66,134,66,134,66,166,66,101,66,
+  102,66,102,66,133,66,101,66,101,66,70,58,3,37,58,133,5,58,37,50,
+  37,58,37,58,5,50,5,37,58,134,37,50,229,49,196,41,164,41,164,41,
+  165,41,5,164,41,132,196,41,165,41,164,41,196,41,5,197,41,132,229,41,
+  229,41,197,41,197,41,6,229,41,134,229,49,229,49,5,50,229,49,5,42,
+  5,42,3,6,50,5,38,50,3,39,58,129,38,50,3,71,58,138,39,58,
+  71,58,39,58,39,58,39,50,39,50,39,58,39,58,38,50,6,58,5,6,
+  50,136,39,58,6,50,230,49,230,49,6,50,230,49,230,49,6,50,6,230,
+  49,136,6,50,6,50,7,50,230,49,230,49,39,50,7,50,7,50,5,39,
+  50,139,39,58,39,58,39,50,39,58,71,58,71,58,39,58,71,58,39,58,
+  71,58,39,58,3,39,50,137,39,58,40,58,39,50,39,58,39,50,39,50,
+  7,50,39,50,7,50,5,6,50,3,230,49,3,230,41,129,229,41,10,197,
+  41,144,165,33,165,41,165,41,165,33,133,33,165,41,132,33,132,33,133,41,
+  165,41,132,33,165,33,165,33,132,33,132,33,164,33,6,132,33,131,133,41,
+  132,33,164,33,3,132,33,135,132,41,133,41,165,33,165,33,165,41,165,41,
+  197,41,4,198,41,129,230,41,4,198,41,4,165,41,130,165,33,197,41,3,
+  165,41,132,197,41,197,41,230,41,230,41,3,230,49,139,229,41,197,41,229,
+  41,197,41,197,41,164,41,165,41,197,41,197,41,230,41,230,41,4,230,49,
+  133,198,49,166,41,166,41,133,41,102,41,15,69,33,135,163,8,131,16,130,
+  16,195,24,162,16,130,16,4,33,10,69,33,130,102,33,69,33,4,101,41,
+  3,102,41,129,102,33,3,102,41,133,102,33,102,41,102,41,134,41,102,33,
+  5,134,41,170,102,41,102,41,8,66,77,107,174,115,48,132,105,74,134,49,
+  101,41,163,24,65,8,130,16,8,66,138,82,170,82,199,49,106,82,203,98,
+  15,140,141,115,138,82,33,0,98,8,66,0,228,24,73,66,106,74,235,98,
+  171,90,207,123,19,165,20,165,84,173,16,124,240,107,241,107,240,107,241,107,
+  17,108,241,107,17,108,241,107,3,17,108,3,240,107,3,241,107,5,240,107,
+  5,208,107,131,208,99,208,99,176,107,11,208,107,129,208,99,8,208,107,131,
+  240,107,240,107,240,115,10,240,107,8,208,107,134,176,107,176,99,176,99,175,
+  99,175,99,175,107,5,175,99,132,143,99,175,99,143,107,143,107,5,143,99,
+  132,143,107,143,99,143,99,142,107,3,142,99,150,143,99,143,99,142,99,143,
+  99,110,107,12,91,106,66,167,41,195,16,65,0,65,0,163,16,167,41,171,
+  74,45,91,143,107,143,99,143,99,142,99,143,99,142,99,142,99,3,143,99,
+  131,143,107,143,99,142,99,3,143,99,3,142,99,131,142,107,143,107,142,107,
+  4,143,99,129,142,99,3,110,99,129,142,99,8,110,99,6,78,99,3,77,
+  99,130,45,91,77,99,3,45,91,138,13,91,236,90,138,82,163,24,98,16,
+  65,8,98,8,65,8,196,16,204,74,3,204,82,138,171,74,204,74,203,82,
+  171,82,171,74,138,74,106,66,138,74,106,66,41,58,168,3,6,68,33,129,
+  67,33,6,68,33,135,67,33,68,33,67,33,68,33,68,33,67,33,67,33,
+  9,68,33,130,100,33,68,33,4,100,33,4,67,33,129,99,33,5,67,33,
+  4,99,33,9,67,33,129,99,33,4,67,33,132,99,33,67,33,67,33,99,
+  33,3,67,33,140,66,33,67,33,67,33,99,33,67,33,67,33,99,41,67,
+  33,99,33,99,41,99,41,99,33,6,131,41,129,131,33,8,131,41,137,163,
+  41,131,41,132,41,132,41,163,41,163,41,164,49,163,49,196,49,3,196,41,
+  141,196,49,195,49,196,49,196,49,196,41,196,41,195,41,196,41,196,41,163,
+  41,164,41,196,49,196,41,4,196,49,133,196,41,196,49,196,41,195,41,163,
+  41,3,164,41,151,196,41,163,41,196,41,196,41,196,49,228,49,36,58,36,
+  58,69,58,101,58,101,66,165,66,166,74,199,74,198,74,230,74,199,74,230,
+  66,198,74,198,74,231,74,231,74,230,74,6,231,74,9,7,75,130,231,74,
+  231,82,5,231,74,130,198,74,198,74,4,199,74,129,198,74,4,199,74,132,
+  198,74,166,74,166,66,166,74,12,134,66,139,133,66,133,66,134,66,134,66,
+  69,58,37,58,37,58,36,58,37,58,37,50,36,50,3,4,50,138,5,58,
+  5,58,5,50,5,50,229,49,196,41,164,41,131,33,132,33,131,33,3,132,
+  33,131,131,33,132,33,164,41,3,132,33,4,164,41,131,196,41,196,41,164,
+  41,6,196,41,130,197,41,196,41,4,197,41,130,229,41,197,41,5,229,41,
+  145,5,50,5,50,230,49,229,49,229,41,229,49,5,50,229,41,5,50,5,
+  50,229,49,229,49,229,41,229,49,229,49,197,41,197,49,3,197,41,131,197,
+  49,197,49,197,41,11,165,41,129,133,41,5,165,41,136,197,41,197,41,165,
+  41,197,49,197,49,197,41,197,41,197,49,3,197,41,7,230,49,129,229,49,
+  12,230,49,130,197,41,198,49,8,197,41,130,165,41,197,41,5,165,41,134,
+  132,33,133,41,133,41,132,33,132,41,133,41,4,132,33,132,100,33,132,33,
+  100,33,132,41,5,100,33,129,99,33,21,100,33,136,132,33,132,33,133,41,
+  133,33,166,41,166,33,166,41,198,41,3,166,41,134,133,33,165,41,132,33,
+  132,41,100,33,133,33,3,132,33,4,165,41,130,197,41,230,49,5,197,41,
+  138,165,41,164,33,132,41,132,41,132,33,165,41,165,41,197,41,197,41,229,
+  49,3,230,49,133,198,49,198,49,166,41,134,41,102,41,8,69,33,129,37,
+  33,4,69,33,137,195,16,130,16,162,16,130,16,162,16,162,16,4,33,69,
+  33,70,33,6,69,33,129,69,41,3,69,33,133,69,41,69,33,69,33,101,
+  33,102,33,3,102,41,130,102,33,102,33,6,102,41,132,134,41,102,41,134,
+  41,134,41,4,102,41,165,232,57,77,107,142,115,48,132,138,82,101,41,36,
+  33,162,16,65,8,130,16,8,66,138,74,170,82,199,49,105,74,203,98,116,
+  189,182,205,48,140,33,0,98,8,99,0,131,16,203,82,203,90,170,82,138,
+  82,174,123,19,165,243,164,52,173,49,132,240,107,240,107,17,108,240,107,240,
+  107,3,17,108,129,241,107,4,17,108,130,241,107,241,107,9,240,107,4,208,
+  107,131,208,99,208,107,208,99,10,208,107,129,176,99,7,208,107,7,240,107,
+  130,241,107,241,107,6,240,107,5,208,107,3,207,99,131,176,99,176,99,175,
+  107,4,175,99,136,175,107,175,99,175,107,175,107,143,107,175,99,143,99,143,
+  107,6,143,99,129,142,99,6,143,99,147,142,99,111,99,143,107,143,107,110,
+  99,13,91,106,74,134,41,195,16,65,8,65,0,228,16,200,49,203,74,110,
+  99,143,107,143,107,143,99,142,99,3,143,99,133,143,107,143,107,143,99,143,
+  99,143,107,3,143,99,135,143,107,143,99,143,99,143,107,143,99,143,107,143,
+  99,3,142,99,13,110,99,132,78,99,77,99,78,99,78,99,5,77,99,129,
+  45,99,4,45,91,150,236,90,203,82,4,33,98,16,65,8,97,8,65,8,
+  98,8,171,66,204,82,203,82,203,82,204,82,203,82,203,74,172,82,139,74,
+  74,66,106,66,138,66,106,66,73,66,6,4,132,68,33,68,33,36,33,68,
+  33,6,36,33,131,35,25,36,33,36,25,13,36,33,7,68,33,143,67,33,
+  68,33,67,33,35,33,68,33,67,33,67,33,35,33,67,33,35,33,68,33,
+  67,33,67,33,68,33,68,33,4,67,33,130,68,33,68,33,10,67,33,130,
+  99,33,100,33,3,99,33,129,67,33,4,99,33,129,100,33,4,99,33,131,
+  100,41,132,41,131,41,4,132,41,3,131,41,130,132,41,131,41,5,132,41,
+  129,131,41,3,132,41,130,164,41,132,41,3,164,41,134,164,49,195,41,195,
+  41,196,41,164,41,163,41,3,164,41,135,163,41,164,41,163,41,164,41,163,
+  41,164,41,163,41,4,164,41,157,163,41,164,41,164,41,163,41,164,41,132,
+  41,131,41,132,41,131,41,132,41,163,41,164,41,164,41,196,49,196,49,228,
+  49,5,50,4,50,37,58,69,58,69,58,134,66,134,66,133,58,133,66,166,
+  66,165,58,165,66,166,66,3,198,66,133,199,74,198,74,198,74,230,74,230,
+  74,10,231,74,129,7,75,6,231,74,129,230,74,4,231,74,129,199,74,5,
+  231,74,136,198,74,231,74,231,74,198,74,199,74,166,66,166,74,198,74,3,
+  166,66,131,134,66,166,74,166,74,3,166,66,136,166,74,166,74,166,66,133,
+  66,101,66,101,66,69,58,69,66,4,69,58,5,37,58,139,5,50,228,49,
+  196,41,163,33,164,41,164,41,132,41,132,33,132,41,164,41,132,33,3,164,
+  41,129,132,33,3,164,41,132,164,33,196,41,164,41,197,41,5,196,41,133,
+  197,41,197,41,196,41,197,41,196,41,4,197,41,6,229,41,132,229,49,197,
+  41,229,41,197,41,3,229,41,141,197,41,229,41,197,41,197,41,229,41,197,
+  41,197,41,196,41,196,41,164,33,164,33,164,41,164,41,3,132,41,3,132,
+  33,130,99,33,99,33,6,100,33,129,99,33,3,100,33,130,132,33,100,33,
+  3,132,33,134,100,33,100,33,132,33,100,33,132,33,132,41,5,132,33,146,
+  132,41,132,33,164,41,132,41,132,33,100,33,132,41,132,33,132,41,100,33,
+  132,33,132,33,100,33,132,41,132,33,100,33,132,41,100,41,20,100,33,132,
+  68,33,100,33,68,33,100,33,4,68,33,130,67,33,68,33,3,67,33,129,
+  35,33,3,67,33,3,68,33,143,68,25,68,33,67,33,68,33,67,33,67,
+  33,68,33,67,33,68,33,67,33,67,33,99,33,67,33,67,33,68,33,3,
+  100,33,138,101,33,101,33,133,33,166,41,166,41,166,33,134,33,133,41,133,
+  33,132,33,3,100,33,6,68,33,132,100,33,132,33,132,41,132,41,4,165,
+  41,132,133,41,165,41,132,33,132,41,3,100,33,135,132,41,133,41,165,41,
+  197,41,197,49,230,49,6,50,3,230,49,133,198,49,166,41,134,41,101,41,
+  101,33,10,69,33,135,195,16,98,8,130,16,163,16,162,16,130,16,4,33,
+  13,69,33,132,70,33,69,41,101,41,102,41,3,70,33,4,102,41,130,102,
+  33,102,33,3,102,41,181,102,33,102,33,102,41,102,41,134,41,134,41,102,
+  41,101,41,199,49,77,107,142,115,81,132,170,82,69,33,228,24,130,16,65,
+  8,130,16,232,57,138,74,138,74,199,49,41,74,171,90,16,132,149,189,178,
+  156,228,24,0,0,1,0,134,49,44,99,12,99,171,82,106,82,142,115,19,
+  165,243,164,51,173,49,132,240,107,240,107,240,115,17,108,240,107,241,107,17,
+  116,17,108,241,107,240,107,17,108,240,107,16,108,3,240,107,135,241,115,240,
+  107,240,107,208,107,240,107,208,107,240,107,6,208,107,130,207,107,175,99,10,
+  208,107,132,208,99,208,107,208,107,208,99,5,208,107,14,240,107,4,208,107,
+  135,208,99,208,107,207,99,176,107,175,107,175,99,175,107,4,175,99,138,175,
+  107,175,99,143,99,175,107,143,99,143,107,143,107,143,99,175,107,143,107,5,
+  143,99,129,142,99,5,143,99,157,142,99,143,99,142,99,111,107,142,99,143,
+  99,110,99,237,90,73,66,69,33,130,8,33,0,97,0,37,25,74,66,13,
+  91,142,99,175,107,175,107,143,99,142,99,143,107,143,107,143,99,143,99,143,
+  107,143,99,143,107,143,107,3,143,99,5,143,107,131,142,107,143,107,142,99,
+  3,110,99,129,142,99,7,110,99,134,78,99,110,99,109,99,77,99,78,99,
+  78,99,3,77,99,132,78,99,45,91,45,99,77,99,3,45,91,145,45,99,
+  203,82,167,57,65,8,65,8,97,8,65,8,33,0,73,58,236,82,204,82,
+  204,74,171,74,203,82,204,82,171,74,171,74,3,139,74,130,138,66,73,66,
+  30,4,131,36,33,69,33,69,33,3,101,33,131,69,33,36,25,36,25,4,
+  4,25,135,3,25,3,25,4,25,227,24,4,25,3,25,4,25,9,3,25,
+  141,35,25,3,33,3,25,36,33,35,25,35,33,35,25,35,33,35,33,35,
+  25,35,33,35,25,35,25,3,35,33,130,36,33,36,33,4,35,33,136,67,
+  33,35,33,67,25,35,33,67,33,35,33,67,33,35,33,6,67,33,129,68,
+  33,4,67,33,135,68,33,67,33,68,33,68,33,99,33,100,33,100,33,3,
+  100,41,133,100,33,132,41,99,41,132,41,131,41,7,132,41,134,131,33,132,
+  41,164,41,132,41,164,41,132,41,4,164,41,129,132,41,15,164,41,129,163,
+  41,3,164,41,131,163,41,164,41,132,41,4,164,41,139,131,41,131,41,132,
+  41,132,41,131,41,132,41,132,41,131,33,164,41,164,41,196,41,3,228,49,
+  131,4,50,37,50,5,50,5,37,50,129,69,58,3,101,58,136,133,58,134,
+  58,134,66,134,66,133,58,165,66,166,66,134,58,5,166,66,153,198,66,166,
+  66,166,74,166,66,198,66,166,66,166,66,198,66,166,66,166,66,198,74,198,
+  66,198,74,198,66,199,74,199,74,198,74,198,74,231,74,231,74,199,74,231,
+  74,231,74,230,74,231,74,3,199,74,143,198,74,199,74,199,74,199,66,166,
+  66,198,74,166,74,166,74,166,66,198,66,198,66,166,66,198,74,166,66,198,
+  74,5,166,66,152,134,66,134,66,134,58,134,66,102,66,133,66,134,66,101,
+  58,101,58,70,58,37,50,4,50,4,50,228,41,229,49,228,49,229,49,228,
+  49,228,41,228,41,228,49,228,41,228,49,228,49,3,228,41,138,228,49,196,
+  41,197,41,228,41,228,41,229,41,228,41,229,49,229,41,197,41,12,229,41,
+  131,5,50,229,41,229,49,8,229,41,130,229,49,197,41,4,196,41,4,164,
+  41,3,132,41,134,132,33,132,33,100,33,132,33,100,33,132,33,3,100,33,
+  130,99,33,132,33,3,100,33,129,132,33,3,100,33,138,132,33,100,33,132,
+  33,100,33,100,33,132,33,99,33,132,33,100,33,100,33,6,132,33,16,100,
+  33,131,67,33,99,33,99,33,3,68,33,134,99,33,100,33,68,33,68,33,
+  67,33,67,33,4,68,33,131,67,33,68,33,68,33,3,67,33,129,35,33,
+  3,67,33,132,35,25,35,25,67,33,35,25,3,35,33,130,35,25,67,33,
+  4,35,33,131,35,25,35,25,35,33,6,67,33,131,35,25,67,33,35,33,
+  5,67,33,151,68,33,100,33,100,33,101,33,101,33,134,33,134,33,133,33,
+  101,33,101,33,100,33,100,33,68,33,68,33,68,25,35,25,68,33,36,33,
+  68,33,67,33,67,33,68,33,68,33,5,100,33,129,132,41,3,100,33,138,
+  68,33,99,33,68,33,100,33,100,33,132,41,165,41,197,49,229,49,229,49,
+  3,6,50,134,231,49,166,49,166,49,166,41,134,41,101,33,8,69,33,129,
+  228,24,3,130,16,133,162,16,130,16,227,24,70,41,70,33,10,69,33,132,
+  101,33,69,33,69,33,102,41,3,69,33,141,102,41,69,33,101,41,101,41,
+  102,41,102,41,70,33,102,33,102,41,101,41,102,41,102,33,102,33,6,102,
+  41,160,167,49,109,107,142,115,81,132,138,82,69,33,195,24,130,8,98,8,
+  163,16,231,57,106,74,138,74,232,57,73,74,203,90,203,90,142,115,175,115,
+  45,99,77,99,12,91,235,90,236,90,203,82,138,82,138,74,109,115,19,165,
+  19,165,19,173,81,140,3,240,107,140,16,116,17,108,241,107,241,115,17,108,
+  17,116,241,115,240,107,16,108,240,107,241,107,241,107,7,240,107,130,208,107,
+  240,115,4,208,107,129,208,99,5,208,107,129,208,99,5,208,107,132,176,107,
+  208,107,208,107,175,99,7,208,107,11,240,107,9,208,107,145,207,107,175,107,
+  208,107,175,107,175,99,175,107,175,99,175,99,175,107,175,107,175,99,175,99,
+  175,107,143,99,143,99,175,99,175,107,3,143,99,129,110,99,3,143,99,132,
+  175,99,143,99,143,99,111,99,3,110,99,130,143,99,143,107,3,143,99,139,
+  143,107,78,99,204,82,8,58,228,24,65,8,33,0,163,16,199,41,203,82,
+  142,99,3,143,99,149,142,107,143,107,143,99,175,107,175,107,143,99,143,107,
+  143,107,143,99,143,107,143,99,175,107,143,107,143,107,143,99,143,107,143,107,
+  142,107,142,99,110,107,143,99,12,110,99,137,77,99,110,99,78,99,78,99,
+  77,99,78,99,78,99,77,91,77,99,5,45,91,142,236,90,73,74,98,16,
+  65,8,97,8,98,8,32,8,135,33,236,82,204,82,203,74,204,82,172,82,
+  204,82,3,171,74,132,139,74,138,74,106,66,73,66,169,3,140,36,33,101,
+  41,166,41,167,41,167,41,199,41,166,41,134,33,134,33,69,33,69,33,36,
+  25,3,4,25,133,228,16,228,24,228,24,227,24,4,25,20,227,24,9,3,
+  25,132,35,25,3,25,3,25,35,25,3,3,25,3,35,25,133,35,33,35,
+  25,35,33,35,33,35,25,4,35,33,131,36,33,35,33,35,33,7,68,33,
+  130,100,33,68,33,5,100,33,137,100,41,100,33,100,41,100,41,99,33,100,
+  33,99,33,132,33,100,33,4,132,41,129,164,41,9,132,41,135,164,41,132,
+  41,164,41,132,41,132,41,164,41,164,41,13,132,41,130,164,41,131,41,7,
+  132,41,140,164,41,164,41,197,41,196,41,196,41,228,49,196,49,228,49,229,
+  49,228,49,4,50,4,50,5,5,50,141,37,50,37,58,37,50,37,50,69,
+  50,69,50,69,58,69,58,101,58,69,58,101,58,102,58,102,58,5,101,58,
+  129,102,58,4,101,58,140,101,66,102,58,102,66,101,58,134,66,133,66,133,
+  58,134,66,134,66,166,66,166,58,167,66,19,166,66,129,198,66,7,166,66,
+  132,134,58,166,66,166,58,166,58,4,166,66,130,134,66,134,58,3,101,58,
+  133,69,58,69,58,70,58,37,58,37,50,3,69,50,136,37,50,37,58,69,
+  50,37,50,37,50,69,50,37,50,37,58,8,37,50,131,38,50,37,50,37,
+  58,6,37,50,133,38,50,38,50,37,50,38,50,38,50,4,5,50,139,229,
+  49,5,50,229,49,229,49,229,41,5,50,229,41,229,49,229,41,228,41,228,
+  41,3,196,41,130,196,49,196,41,6,164,41,131,132,41,132,41,132,33,11,
+  132,41,132,132,33,132,41,132,33,132,33,4,132,41,5,132,33,130,132,41,
+  132,41,12,132,33,7,100,33,131,99,33,100,33,99,33,5,100,33,134,67,
+  33,99,33,100,33,68,33,67,33,100,33,3,68,33,3,67,33,3,68,33,
+  130,67,33,68,33,3,67,33,130,35,33,68,33,3,67,33,129,35,33,6,
+  67,33,130,68,33,68,33,4,67,33,130,67,25,67,33,3,35,33,130,68,
+  33,67,33,3,68,33,3,101,33,134,102,33,133,33,133,33,101,33,101,33,
+  100,33,3,68,33,130,67,33,35,25,6,67,33,147,68,33,68,33,67,33,
+  67,33,68,33,100,33,100,33,68,33,100,33,68,33,100,33,68,33,68,33,
+  67,33,100,33,132,41,165,41,197,49,230,49,3,6,50,137,6,58,230,49,
+  230,49,198,49,198,41,166,41,134,41,101,33,101,41,5,69,33,130,228,24,
+  163,16,4,130,16,132,195,24,69,33,69,33,37,33,9,69,33,145,69,41,
+  69,33,69,33,102,33,102,41,102,33,69,33,101,41,102,33,102,41,69,41,
+  70,41,102,41,102,41,102,33,70,33,101,33,5,102,33,176,102,41,134,41,
+  102,33,134,41,102,33,166,49,77,107,142,107,49,132,171,82,37,33,163,16,
+  98,8,130,16,195,24,199,57,106,74,106,74,232,57,8,66,236,98,171,82,
+  203,90,77,107,110,107,244,148,48,124,236,90,171,82,138,74,138,82,138,82,
+  77,107,242,164,243,164,19,173,81,140,240,107,241,115,241,107,240,107,240,107,
+  17,108,241,107,17,116,241,115,17,116,17,108,12,240,107,16,208,107,3,175,
+  99,132,208,107,175,99,208,107,176,107,7,208,107,10,240,107,133,208,107,240,
+  107,208,107,208,107,175,107,3,208,107,130,175,99,207,107,6,175,107,132,175,
+  99,175,99,175,107,143,99,5,175,99,131,143,99,143,99,142,99,7,143,99,
+  133,142,99,110,99,110,99,143,99,111,99,7,143,99,140,45,91,139,74,102,
+  33,130,8,33,0,97,8,68,33,138,66,110,99,175,107,143,107,143,99,5,
+  143,107,132,143,99,175,107,143,99,175,107,5,143,107,140,142,107,142,107,142,
+  99,142,99,143,107,142,99,110,99,142,99,142,99,110,99,110,99,142,99,3,
+  110,99,133,110,107,110,99,110,99,77,99,110,99,3,77,99,132,78,99,78,
+  99,77,99,77,99,4,45,99,142,45,91,236,90,171,82,195,32,98,16,98,
+  8,66,8,33,8,196,16,236,82,204,82,171,82,204,82,172,82,3,171,74,
+  133,138,74,74,74,106,74,106,66,41,66,12,4,132,37,33,167,49,232,49,
+  9,58,3,73,58,139,9,50,8,50,232,49,200,49,167,41,167,41,134,33,
+  102,33,70,25,70,33,69,25,3,37,33,134,37,25,36,25,4,25,4,25,
+  228,24,228,16,3,228,24,129,227,24,12,195,16,133,195,24,195,16,227,24,
+  227,24,195,16,13,227,24,10,3,25,143,35,25,35,25,36,25,35,33,35,
+  33,36,33,35,25,35,33,36,33,36,33,68,33,36,33,35,33,68,33,36,
+  33,6,68,33,129,67,33,6,100,33,129,100,41,6,100,33,139,100,41,100,
+  41,100,33,100,41,100,41,100,33,132,33,100,33,100,33,100,41,100,41,3,
+  100,33,3,100,41,133,132,33,100,41,132,41,100,33,132,33,4,100,33,132,
+  132,33,100,33,100,33,132,33,3,132,41,3,164,41,4,196,41,137,229,49,
+  197,49,228,41,228,49,229,49,229,49,229,41,5,50,229,49,8,5,50,3,
+  37,50,138,70,58,69,58,37,58,69,58,37,58,69,58,69,58,69,50,37,
+  58,69,58,3,37,58,5,69,58,132,102,58,69,58,102,58,70,58,3,102,
+  58,138,102,66,69,58,101,58,102,58,134,58,134,66,101,58,133,58,101,58,
+  70,58,6,102,58,3,101,58,129,102,58,6,101,58,130,133,58,133,58,3,
+  102,58,3,134,58,139,102,58,102,58,69,58,69,50,69,50,37,50,69,50,
+  69,58,37,50,69,58,70,58,3,69,50,129,70,50,3,69,50,163,102,50,
+  70,50,69,50,69,58,70,50,70,58,70,58,70,50,69,50,102,58,69,50,
+  70,50,70,50,69,50,70,58,102,58,70,58,102,58,70,58,102,58,70,50,
+  70,58,102,58,70,50,70,50,70,58,69,58,70,58,70,50,38,50,37,50,
+  37,58,37,50,37,50,38,50,3,37,50,3,5,50,129,37,50,5,5,50,
+  145,229,49,228,49,228,41,228,49,229,49,229,41,229,49,228,41,229,49,229,
+  41,228,41,196,41,196,41,196,49,196,41,196,41,228,41,3,196,41,131,164,
+  41,196,41,164,41,5,196,41,129,164,41,4,196,41,6,164,41,130,164,33,
+  165,41,3,164,41,133,164,33,164,41,132,33,132,33,132,41,3,132,33,129,
+  100,33,5,132,33,131,100,33,132,33,99,33,11,100,33,133,68,33,100,33,
+  68,33,68,33,100,33,3,68,33,3,67,33,129,68,33,3,67,33,3,68,
+  33,132,67,33,68,33,67,33,67,33,3,68,33,136,67,33,68,33,67,33,
+  67,33,68,33,67,33,67,33,68,33,3,100,33,131,101,33,101,33,133,33,
+  4,101,33,131,68,33,100,33,100,33,6,68,33,3,67,33,138,68,33,100,
+  33,68,33,68,33,100,33,68,33,68,33,100,33,100,33,68,33,6,100,33,
+  144,133,41,165,41,197,41,229,49,230,49,6,58,6,50,6,50,230,49,230,
+  49,198,49,198,49,166,41,134,41,133,41,102,41,3,69,33,129,228,24,5,
+  130,16,130,195,24,70,33,7,69,33,129,36,33,4,69,33,131,70,33,70,
+  33,101,33,6,69,33,140,102,33,70,33,102,41,102,33,102,41,102,33,101,
+  33,102,33,102,41,102,41,102,33,102,33,5,102,41,168,102,33,134,41,109,
+  107,109,107,48,132,203,82,37,33,163,16,98,8,130,16,228,24,199,49,106,
+  74,106,74,232,57,8,66,203,90,203,90,171,82,171,90,236,90,45,99,236,
+  82,171,82,106,74,106,74,170,82,170,82,77,107,210,164,243,164,243,164,113,
+  140,240,107,17,116,17,108,241,107,241,115,240,107,17,116,4,241,107,129,17,
+  108,4,240,107,129,208,107,3,240,107,131,208,107,208,107,240,107,16,208,107,
+  134,175,99,143,99,175,99,176,107,175,107,208,99,9,208,107,6,240,107,131,
+  208,107,240,107,240,107,5,208,107,133,207,107,207,107,208,107,208,107,175,99,
+  3,175,107,141,175,99,175,107,143,107,175,107,143,107,143,107,175,99,175,99,
+  175,107,143,99,143,107,175,99,175,99,5,143,99,129,143,107,3,143,99,153,
+  111,99,110,99,110,99,142,99,143,99,143,99,111,99,142,99,142,99,143,99,
+  143,99,143,107,143,107,78,99,204,82,199,49,163,16,33,8,65,0,228,16,
+  73,58,77,91,175,107,143,99,142,99,4,143,107,131,175,107,143,107,142,99,
+  8,143,107,136,142,99,143,99,142,99,143,107,110,99,110,99,142,99,110,107,
+  5,110,99,131,110,107,110,99,110,99,3,78,99,6,77,99,130,45,99,45,
+  99,3,45,91,149,13,91,203,90,69,41,98,16,98,8,97,8,65,8,98,
+  8,171,66,236,82,204,82,203,82,172,82,172,74,171,82,171,82,138,74,106,
+  74,106,66,106,66,74,66,242,3,145,102,41,8,58,73,66,138,74,203,74,
+  204,74,203,74,203,74,171,66,139,66,106,66,74,58,74,58,9,50,9,50,
+  232,41,232,49,3,200,41,130,167,41,168,41,3,167,41,136,135,41,135,33,
+  134,33,102,33,70,33,69,33,70,33,69,33,4,37,33,129,5,33,8,4,
+  25,4,228,24,129,227,24,4,195,24,130,195,16,195,24,6,195,16,130,195,
+  24,195,16,4,195,24,9,227,24,131,3,25,3,25,227,24,9,3,25,134,
+  35,25,3,25,35,25,35,25,35,33,35,25,3,35,33,138,36,33,36,33,
+  35,33,68,33,35,33,68,33,36,33,68,33,67,33,67,33,5,68,33,132,
+  67,33,68,33,67,33,67,33,4,68,33,134,67,33,67,33,68,33,67,33,
+  67,33,100,33,5,68,33,130,100,33,68,33,4,100,33,132,132,33,132,41,
+  132,41,133,41,5,164,41,139,165,41,197,41,165,41,165,41,197,41,197,41,
+  196,41,196,41,229,41,229,41,197,41,4,229,41,129,5,42,17,5,50,4,
+  37,50,133,5,50,37,50,37,50,38,58,37,50,3,37,58,132,37,50,37,
+  50,38,58,70,58,3,69,58,130,37,58,37,50,3,69,58,132,37,58,37,
+  58,69,58,69,58,4,37,58,5,37,50,144,36,50,37,50,37,50,69,58,
+  69,50,69,58,37,50,37,50,38,50,5,50,5,50,37,50,5,42,37,50,
+  5,42,5,50,4,37,50,129,69,50,4,37,50,131,69,50,37,50,38,50,
+  3,37,50,148,38,50,70,50,70,58,69,50,37,50,70,50,70,50,102,50,
+  70,58,70,58,102,58,102,58,70,58,70,50,70,50,70,58,102,58,70,50,
+  70,58,70,58,3,102,58,134,70,50,70,58,69,58,70,58,69,50,70,50,
+  4,70,58,141,38,50,38,50,70,58,70,58,70,50,38,50,69,50,38,58,
+  37,50,70,58,70,50,37,50,37,58,13,37,50,132,37,58,37,50,37,50,
+  5,50,3,37,50,130,5,50,5,50,3,37,50,130,5,50,37,50,5,5,
+  50,133,229,49,5,50,5,50,229,49,229,49,4,229,41,132,196,41,197,41,
+  196,41,196,41,5,164,41,130,165,41,165,41,4,164,41,3,132,41,3,132,
+  33,133,132,41,132,33,132,33,100,33,132,33,4,100,33,129,132,33,7,100,
+  33,129,99,33,4,100,33,129,99,33,8,100,33,134,99,33,100,33,100,33,
+  68,33,100,33,99,33,4,100,33,3,101,33,4,133,33,3,100,33,133,68,
+  33,100,33,68,33,100,33,68,33,20,100,33,147,132,41,164,41,197,49,197,
+  49,230,49,230,49,6,50,6,58,6,50,6,50,230,49,198,49,198,49,166,
+  49,134,41,134,41,102,41,102,41,4,25,5,130,16,160,195,24,69,33,69,
+  33,70,33,69,25,69,33,69,33,37,33,37,33,69,33,69,33,37,33,69,
+  33,69,33,70,33,102,33,70,33,70,33,102,33,70,33,102,33,69,33,102,
+  33,102,33,69,33,102,33,102,41,102,33,102,41,102,41,102,33,70,33,3,
+  102,33,133,102,41,102,41,102,33,102,41,102,41,3,134,41,143,77,107,142,
+  115,48,132,203,90,69,41,163,16,130,8,162,16,4,25,199,49,74,66,73,
+  66,200,57,8,66,12,99,3,203,90,129,203,82,3,203,90,146,171,82,171,
+  82,138,82,171,82,77,99,178,156,243,164,243,164,113,140,175,107,17,116,17,
+  116,241,107,241,107,17,108,17,116,17,116,17,108,4,241,107,131,240,107,208,
+  107,208,107,6,240,107,131,208,107,208,107,240,107,7,208,107,130,208,99,176,
+  107,5,208,107,129,207,107,3,176,99,17,208,107,129,240,107,5,208,107,135,
+  207,107,207,99,207,99,207,107,175,107,175,99,175,99,5,175,107,5,175,99,
+  139,175,107,175,107,143,99,175,107,143,99,143,99,175,107,143,107,143,99,143,
+  99,143,107,3,143,99,133,142,99,142,99,111,99,143,99,142,99,3,143,99,
+  149,110,99,143,99,143,107,143,99,143,99,143,107,110,99,110,99,13,91,41,
+  66,195,16,65,8,33,0,163,16,8,50,45,91,143,107,143,99,143,99,143,
+  107,175,107,5,143,107,130,175,107,175,107,6,143,107,132,142,107,174,107,143,
+  99,110,99,3,142,99,130,110,99,142,99,7,110,99,129,77,99,3,78,99,
+  131,77,99,77,99,78,99,3,45,99,146,45,91,45,99,45,99,13,91,203,
+  82,232,57,98,16,98,8,98,8,65,8,33,0,9,50,236,82,204,82,204,
+  82,203,82,203,82,172,74,3,171,74,131,138,74,106,66,42,58,68,4,144,
+  166,49,73,66,171,74,236,82,45,91,77,91,78,91,77,91,45,83,45,83,
+  13,83,13,83,236,74,204,74,204,66,171,66,3,139,66,140,107,66,107,66,
+  106,58,106,66,106,66,74,58,74,58,73,58,41,58,41,58,9,50,9,50,
+  4,232,49,132,200,49,200,41,200,49,200,49,3,167,41,6,135,41,136,134,
+  41,102,41,102,33,102,41,70,33,70,33,69,33,70,33,3,37,33,132,37,
+  25,37,33,37,33,5,25,3,4,25,130,228,24,4,25,5,228,24,130,227,
+  24,228,24,3,227,24,136,195,24,195,24,195,16,227,16,195,24,195,16,195,
+  16,195,24,3,195,16,134,195,24,195,24,227,24,195,24,227,24,195,24,8,
+  227,24,129,3,25,3,227,24,14,3,25,130,35,25,3,25,5,35,25,130,
+  36,33,36,25,5,36,33,3,35,33,131,67,33,67,33,68,33,4,100,33,
+  3,132,33,129,132,41,5,132,33,133,132,41,164,41,132,33,164,41,165,41,
+  3,164,41,131,165,41,165,41,196,41,7,197,41,138,196,41,196,41,197,41,
+  229,49,197,41,229,49,229,49,197,41,229,41,229,41,9,229,49,129,5,50,
+  3,229,49,5,5,50,131,229,49,229,49,5,50,3,229,49,3,5,50,130,
+  229,49,5,50,7,229,49,142,5,50,228,49,5,50,229,49,5,50,5,50,
+  229,41,229,49,229,49,229,41,229,49,228,41,229,41,197,41,7,229,41,147,
+  5,42,229,41,5,42,229,41,5,50,229,41,5,50,229,49,229,41,229,41,
+  5,42,5,42,5,50,5,42,5,50,5,50,37,50,6,50,38,50,6,37,
+  50,4,38,50,132,38,58,38,50,70,50,70,58,3,38,58,136,70,58,37,
+  50,70,58,38,50,70,50,38,50,38,50,37,50,3,38,50,129,38,58,3,
+  38,50,139,37,50,70,50,70,50,38,50,38,50,37,50,37,50,38,58,38,
+  58,37,50,37,58,3,38,50,4,70,58,137,102,58,70,58,70,50,70,58,
+  102,58,102,58,70,50,70,50,69,50,4,70,50,144,70,58,70,58,37,58,
+  37,50,70,58,70,50,69,50,70,58,38,50,38,58,38,50,38,50,37,50,
+  38,50,5,50,38,50,4,5,50,148,229,49,229,49,5,50,5,50,229,41,
+  229,49,229,49,229,41,229,49,229,41,229,49,229,41,197,41,197,41,196,41,
+  197,49,196,41,196,41,197,41,197,41,3,196,41,135,164,41,165,41,165,41,
+  164,41,164,41,165,41,165,41,3,164,41,137,165,41,132,41,164,41,164,41,
+  132,41,133,41,132,41,132,41,164,41,6,132,41,130,132,33,132,33,4,132,
+  41,3,132,33,4,133,33,3,133,41,133,132,33,132,33,132,41,132,33,100,
+  33,5,132,33,130,132,41,100,33,4,132,33,129,132,41,3,132,33,129,132,
+  41,3,100,33,3,132,33,156,100,33,132,33,164,41,197,41,165,41,197,49,
+  229,49,6,58,38,58,39,58,39,58,6,50,6,58,6,58,231,49,198,49,
+  198,49,166,41,101,33,195,24,130,16,163,24,130,16,130,16,195,24,69,33,
+  69,33,70,33,3,69,33,130,37,33,69,33,4,37,33,3,69,33,138,70,
+  33,102,33,70,33,102,33,102,33,70,33,69,33,70,33,102,33,69,33,4,
+  102,33,131,70,33,102,33,70,33,3,102,33,130,102,41,102,33,4,102,41,
+  145,134,41,102,41,77,107,142,115,48,132,236,90,102,41,195,16,163,16,195,
+  16,4,25,167,49,73,66,73,66,232,57,199,49,12,99,6,203,90,143,236,
+  90,171,82,138,74,139,82,171,82,44,99,178,156,211,156,243,164,113,148,106,
+  66,143,99,240,115,17,116,17,108,3,17,116,129,17,108,3,17,116,132,17,
+  108,240,107,208,107,208,107,8,240,107,131,208,107,240,107,240,107,13,208,107,
+  134,176,99,175,99,208,107,208,99,207,107,207,99,4,208,107,130,176,99,208,
+  99,5,208,107,129,240,107,9,208,107,153,175,99,207,107,175,107,175,107,175,
+  99,175,107,175,99,175,107,175,107,175,99,143,99,175,99,175,99,143,107,143,
+  99,175,99,175,107,175,107,143,99,143,107,143,99,143,107,143,99,143,107,143,
+  107,6,143,99,134,142,99,143,107,111,99,143,99,143,99,110,99,3,143,99,
+  146,143,107,142,99,142,99,110,99,142,99,142,99,142,107,77,99,106,66,228,
+  24,65,0,33,0,130,8,232,49,13,91,143,107,143,107,175,107,3,143,107,
+  134,142,107,143,107,175,107,175,107,143,107,175,107,5,143,107,138,142,107,143,
+  107,143,99,142,99,143,99,142,107,142,99,143,99,110,107,142,99,4,110,99,
+  134,78,99,110,99,77,99,78,99,77,99,110,99,3,78,99,146,45,99,45,
+  99,77,99,77,91,77,99,45,99,45,91,203,90,106,74,163,24,98,8,97,
+  8,66,8,33,0,37,25,237,82,204,82,204,82,3,203,82,134,203,74,171,
+  74,171,82,138,74,106,74,74,66,16,4,141,231,57,138,74,236,82,77,91,
+  142,99,143,99,175,99,143,99,175,99,143,99,143,99,142,99,110,91,3,78,
+  91,129,77,91,6,45,83,3,13,83,130,12,75,236,74,4,204,74,132,171,
+  74,171,74,172,74,171,74,3,139,66,139,106,66,74,66,106,66,74,66,74,
+  66,73,66,106,66,74,58,73,58,73,66,41,58,4,9,58,129,9,50,4,
+  232,49,132,200,49,199,41,199,49,167,49,4,167,41,134,135,41,134,41,135,
+  41,103,41,102,33,102,41,3,102,33,131,70,33,102,33,70,33,3,69,33,
+  4,37,33,134,37,25,37,33,36,25,37,33,4,25,5,25,3,4,25,135,
+  228,24,4,25,228,24,227,24,228,24,195,24,195,24,12,195,16,131,194,16,
+  195,16,195,24,5,195,16,132,227,24,195,24,227,24,195,24,8,227,24,3,
+  3,25,129,227,24,7,3,25,131,35,33,35,25,35,25,3,36,33,137,68,
+  33,36,33,68,33,68,33,67,33,68,33,68,33,100,33,68,33,8,100,33,
+  130,132,33,133,41,3,132,33,131,132,41,132,41,133,41,5,132,41,130,164,
+  41,132,41,3,165,41,133,197,41,164,41,197,41,165,41,164,41,4,165,41,
+  130,196,41,165,41,3,197,41,129,165,41,4,197,41,3,165,41,135,197,41,
+  197,41,165,41,197,41,165,41,197,41,196,41,3,197,41,130,196,41,196,41,
+  7,197,41,133,164,41,165,41,164,41,197,41,164,41,16,197,41,130,196,41,
+  197,41,5,229,41,129,229,49,5,229,41,129,5,42,3,229,41,134,5,50,
+  229,49,229,41,5,50,5,42,229,41,3,5,50,142,6,50,5,50,5,50,
+  6,50,5,50,229,49,5,50,229,41,5,50,5,50,5,42,5,42,6,50,
+  6,50,4,5,50,142,5,42,5,50,229,49,5,50,229,41,5,50,5,42,
+  5,50,6,50,5,50,6,50,6,50,5,50,37,50,6,38,50,133,70,50,
+  70,50,38,50,37,50,37,50,3,38,50,136,70,50,38,50,38,50,70,50,
+  38,50,38,50,70,50,70,58,7,38,50,134,37,50,37,50,38,50,38,50,
+  37,50,38,50,7,5,50,129,6,50,3,5,50,4,229,49,134,229,41,229,
+  49,229,49,229,41,229,49,229,49,3,229,41,150,197,41,229,49,197,41,197,
+  41,197,49,197,41,229,41,229,49,197,41,197,41,229,49,229,41,197,41,229,
+  41,229,49,197,41,197,41,197,49,197,49,196,41,197,41,165,41,3,197,41,
+  132,165,41,165,41,196,41,197,41,14,165,41,133,197,41,164,41,165,41,165,
+  41,133,41,4,164,41,5,165,41,129,164,41,3,165,41,143,133,41,165,41,
+  165,41,132,41,165,41,133,33,132,41,132,33,165,41,165,41,197,41,197,49,
+  230,49,6,58,6,58,3,39,58,141,38,58,39,58,7,58,7,58,7,50,
+  199,49,69,33,228,24,130,16,4,33,162,16,163,24,37,33,3,70,33,132,
+  69,33,70,33,69,33,69,33,3,37,33,135,69,33,69,33,70,33,70,33,
+  102,33,69,33,70,33,3,102,33,129,70,33,3,102,33,136,102,41,102,33,
+  102,33,70,33,102,33,102,41,102,41,70,33,4,102,33,129,134,33,3,102,
+  41,146,134,41,102,41,102,41,77,107,109,107,16,124,12,91,102,41,228,24,
+  228,16,228,16,4,25,166,49,73,66,73,66,232,57,199,49,12,91,3,203,
+  90,132,171,82,203,90,203,90,236,90,4,171,82,137,77,107,146,156,210,164,
+  243,164,113,148,130,8,8,50,45,91,240,107,4,17,116,133,16,108,17,116,
+  17,116,241,115,240,115,10,240,107,130,208,107,240,107,17,208,107,134,207,107,
+  208,107,207,99,208,99,176,107,207,107,3,208,107,131,208,99,176,107,207,99,
+  10,208,107,143,208,99,208,107,208,107,176,99,176,107,175,107,175,99,175,107,
+  175,99,175,107,175,107,175,99,175,99,143,99,175,99,3,143,99,4,175,107,
+  129,175,99,4,143,99,130,143,107,143,99,3,143,107,135,143,99,111,99,143,
+  99,143,99,110,99,143,99,143,107,3,143,99,149,142,99,143,99,143,99,110,
+  99,142,107,142,99,142,99,142,107,143,107,78,99,106,66,228,24,65,0,33,
+  8,130,8,232,49,45,91,143,107,143,107,175,107,143,107,5,175,107,129,143,
+  107,3,175,107,7,143,107,134,142,107,142,99,142,99,110,99,110,99,142,107,
+  5,110,99,137,110,107,78,99,78,99,109,99,109,99,78,99,78,99,77,99,
+  45,91,3,77,99,3,45,99,148,236,90,171,82,4,33,98,16,98,8,98,
+  8,33,8,131,8,204,74,204,82,236,82,204,82,203,82,204,82,171,74,171,
+  82,138,74,106,74,106,74,134,49,156,3,135,40,66,171,82,45,91,110,99,
+  175,107,207,107,207,107,4,240,107,136,208,107,208,107,207,107,207,107,208,99,
+  176,99,175,99,208,99,4,175,99,136,143,99,175,99,143,99,143,99,142,91,
+  143,91,110,91,110,99,4,110,91,3,78,91,3,45,83,129,45,91,4,45,
+  83,129,45,91,3,13,83,142,236,82,236,74,204,82,204,74,204,74,203,74,
+  203,74,172,74,171,66,139,66,139,74,139,74,139,66,138,66,4,106,66,132,
+  73,58,42,58,41,58,73,58,3,41,58,3,9,58,132,9,50,8,50,9,
+  50,9,50,10,232,49,130,200,41,199,49,3,167,41,137,135,41,135,41,134,
+  41,102,33,102,41,102,41,102,33,102,33,70,33,3,69,33,136,37,33,37,
+  33,36,33,36,33,4,25,5,33,4,25,4,25,9,228,24,138,227,24,227,
+  24,195,24,195,24,227,24,195,24,195,24,195,16,195,16,195,24,9,195,16,
+  132,195,24,227,24,227,16,195,24,11,227,24,9,3,25,3,36,25,6,36,
+  33,133,68,33,36,33,36,33,68,33,35,33,6,68,33,133,100,33,68,33,
+  68,33,100,33,68,33,19,100,33,130,132,41,100,33,4,132,33,133,132,41,
+  132,41,132,33,132,33,133,41,10,132,33,129,133,41,3,132,33,137,133,41,
+  133,33,132,33,132,33,164,41,164,33,132,41,165,41,164,41,14,165,41,29,
+  197,41,129,229,41,9,197,41,4,229,41,132,229,49,229,41,229,41,229,49,
+  3,229,41,129,229,49,3,229,41,148,229,49,229,49,6,50,229,41,229,49,
+  5,42,6,42,229,41,5,50,229,49,6,50,229,49,229,49,6,50,229,49,
+  6,50,5,42,5,42,5,50,229,41,4,5,42,131,5,50,229,49,230,49,
+  3,229,49,139,229,41,229,49,230,49,230,49,229,41,229,49,229,41,229,41,
+  229,49,229,49,197,41,3,229,49,134,229,41,197,41,229,41,229,49,197,41,
+  229,41,5,197,41,132,230,49,229,41,229,41,197,49,7,229,49,133,229,41,
+  197,49,197,49,197,41,197,49,5,197,41,132,165,41,197,41,197,41,196,41,
+  4,197,41,131,165,41,197,41,165,41,7,197,41,129,165,41,4,197,41,131,
+  197,49,197,41,165,41,3,197,41,129,165,41,3,197,41,130,197,49,197,41,
+  10,165,41,136,197,49,198,49,230,49,6,50,39,58,39,58,71,66,39,58,
+  3,71,66,139,72,58,40,58,199,49,134,49,37,33,195,24,130,16,163,16,
+  69,33,70,33,70,33,6,69,33,130,37,33,37,33,4,69,33,132,70,33,
+  102,33,102,33,70,33,8,102,33,130,102,41,102,41,4,102,33,129,102,41,
+  3,102,33,172,102,41,102,41,134,41,102,41,134,33,134,41,134,41,102,41,
+  109,107,109,107,16,124,44,99,134,41,196,24,37,33,37,33,4,25,134,41,
+  41,66,41,58,232,57,167,49,12,99,203,90,203,90,171,82,203,90,203,82,
+  203,90,235,90,171,82,138,82,171,82,171,82,12,99,145,156,243,164,19,165,
+  211,156,65,0,65,8,69,33,204,74,208,107,5,17,116,134,17,108,17,108,
+  240,107,240,115,241,107,240,115,9,240,107,19,208,107,132,207,99,175,99,175,
+  99,207,99,15,208,107,141,208,99,208,107,208,107,207,107,175,107,176,107,175,
+  99,175,107,175,99,175,99,143,99,175,99,175,99,3,143,99,136,175,99,142,
+  99,143,99,143,99,143,107,143,99,143,99,175,107,3,143,99,129,143,107,9,
+  143,99,129,143,107,4,142,99,133,143,107,142,99,142,99,143,107,143,107,3,
+  142,107,141,142,99,142,107,142,107,77,99,138,74,228,24,33,0,33,0,130,
+  8,232,49,77,91,175,107,143,107,3,175,107,129,175,99,5,175,107,130,143,
+  107,175,107,3,143,107,129,142,107,4,143,107,131,110,107,142,99,142,107,3,
+  110,107,132,110,99,110,99,110,107,110,107,4,110,99,148,77,99,78,99,77,
+  99,45,91,78,99,77,99,77,99,45,99,45,91,45,99,12,91,204,90,167,
+  49,130,16,98,8,98,16,65,8,65,0,106,58,236,82,3,204,82,135,171,
+  74,204,74,171,82,171,82,199,57,227,24,227,24,205,3,143,73,66,203,82,
+  77,99,142,107,207,107,239,107,240,115,16,116,16,116,48,116,48,116,17,116,
+  17,108,17,116,16,116,3,17,116,141,17,108,17,116,17,116,17,108,17,116,
+  17,116,16,116,16,108,16,116,240,107,240,107,16,108,16,116,6,240,107,4,
+  208,107,146,207,107,208,107,208,99,208,99,207,99,207,107,207,107,175,99,175,
+  99,143,99,143,99,143,91,142,91,142,99,110,99,110,91,110,91,78,99,3,
+  78,91,131,77,91,78,91,78,91,4,45,83,5,13,83,133,12,83,236,82,
+  236,82,236,74,236,74,5,204,74,149,203,74,204,74,203,74,204,74,203,74,
+  203,74,171,74,171,66,171,66,171,74,139,66,139,66,106,66,106,66,74,66,
+  74,66,74,58,73,66,73,66,73,58,73,58,3,41,58,142,9,58,8,50,
+  232,49,233,57,232,49,232,49,200,49,199,49,199,41,167,49,167,49,167,41,
+  167,41,166,41,3,135,41,130,102,41,134,41,3,102,41,131,70,41,70,33,
+  70,33,3,69,33,5,37,33,135,5,33,37,33,4,33,36,33,4,25,5,
+  33,4,33,4,4,25,7,228,24,6,227,24,130,195,24,195,24,5,227,24,
+  129,228,24,15,227,24,3,3,25,129,227,24,10,3,25,142,35,25,3,25,
+  35,25,35,25,3,25,3,25,36,25,36,25,35,25,35,25,35,33,36,33,
+  36,25,35,33,7,36,33,130,68,33,68,25,15,68,33,130,100,33,68,33,
+  4,100,33,129,68,33,12,100,33,129,132,33,4,100,33,7,132,33,136,133,
+  41,133,41,132,33,132,33,133,41,132,33,132,41,133,33,3,133,41,135,164,
+  33,132,41,133,41,132,33,132,33,165,41,133,41,3,165,41,134,133,41,132,
+  41,133,41,165,41,165,41,132,33,4,165,41,129,133,41,7,165,41,138,164,
+  41,164,41,165,41,165,41,197,41,165,41,164,41,164,41,165,41,165,41,5,
+  197,41,132,165,41,197,41,165,41,165,41,12,197,41,130,165,41,197,49,9,
+  197,41,131,165,41,165,41,197,41,8,165,41,129,197,41,4,165,41,129,197,
+  41,3,165,41,129,197,41,5,165,41,4,197,41,6,165,41,130,197,41,197,
+  41,4,165,41,131,164,41,165,41,164,33,15,165,41,129,197,41,7,165,41,
+  132,197,41,165,41,165,41,197,41,3,165,41,129,197,41,9,165,41,147,198,
+  49,230,49,7,58,39,58,72,58,71,66,71,66,104,66,104,66,136,66,104,
+  66,72,66,40,58,7,58,166,49,69,41,228,24,37,33,101,33,3,70,33,
+  131,69,33,70,33,69,25,4,37,33,132,69,33,69,33,70,33,70,33,4,
+  102,33,132,102,41,102,33,102,33,102,41,5,102,33,140,102,41,102,41,134,
+  33,102,33,102,33,102,41,102,33,102,33,135,33,135,41,134,41,102,41,3,
+  135,41,168,134,41,102,41,44,99,109,107,16,124,44,99,166,49,195,16,37,
+  33,69,33,4,25,134,41,41,58,9,58,232,49,167,49,12,99,236,90,203,
+  90,203,90,235,90,235,90,203,90,235,90,203,90,171,82,170,82,138,82,12,
+  99,113,148,243,164,243,164,19,165,97,8,65,8,65,8,195,16,106,58,111,
+  99,240,115,4,17,116,133,240,107,240,115,240,115,240,107,241,115,4,240,107,
+  129,240,115,7,240,107,4,208,107,129,207,107,4,208,107,129,240,107,4,208,
+  107,135,208,99,208,107,175,99,207,107,175,107,175,99,207,99,4,208,107,129,
+  208,99,10,208,107,138,175,99,176,107,176,107,175,107,175,99,175,107,175,107,
+  175,99,175,99,143,99,3,175,99,130,143,99,143,107,10,143,99,3,143,107,
+  133,175,107,143,99,143,99,143,107,143,107,4,143,99,133,142,99,142,99,143,
+  99,143,99,143,107,4,143,99,146,143,107,143,107,142,99,143,107,143,99,175,
+  107,175,107,78,99,106,74,195,16,33,0,65,8,163,16,8,58,78,99,143,
+  107,175,107,143,107,5,175,107,145,143,107,175,107,175,107,143,107,175,107,175,
+  107,142,99,175,107,142,107,174,107,143,99,143,107,142,99,142,107,110,107,142,
+  107,142,99,5,110,99,3,78,99,130,77,99,77,99,3,78,99,131,45,99,
+  77,99,78,99,3,45,99,140,12,91,204,90,73,74,163,24,98,16,98,8,
+  65,8,33,0,199,33,236,74,203,82,236,82,3,204,82,133,170,74,69,41,
+  195,24,228,32,98,16,7,4,136,105,74,203,90,77,99,142,107,207,115,239,
+  115,16,124,16,124,5,49,124,137,81,124,49,124,49,116,49,124,82,124,81,
+  116,82,124,81,124,81,116,4,82,124,133,81,124,82,124,81,124,82,124,82,
+  116,4,82,124,133,82,116,81,116,49,116,49,116,81,116,4,49,116,130,81,
+  116,81,116,5,49,116,135,17,116,17,108,16,108,16,108,17,108,16,108,16,
+  108,6,240,107,133,208,107,208,107,207,99,208,107,207,99,9,175,99,5,143,
+  91,133,142,91,110,91,142,91,142,99,142,91,5,110,91,3,78,91,139,45,
+  91,78,91,45,83,77,91,45,83,45,83,45,91,45,91,13,91,12,83,12,
+  83,3,236,82,3,204,74,132,171,74,171,74,171,66,171,74,3,139,66,3,
+  106,66,143,74,66,74,58,74,66,74,66,73,66,73,66,41,58,73,58,41,
+  58,41,58,9,58,9,58,232,49,233,57,233,57,3,232,49,135,200,49,200,
+  41,199,41,199,49,168,41,167,41,167,41,3,135,41,137,134,41,135,41,135,
+  41,135,33,134,41,135,41,102,33,102,41,102,41,5,102,33,129,70,33,3,
+  69,33,135,37,33,69,33,69,33,37,33,70,33,37,33,69,33,4,37,33,
+  133,36,33,37,33,37,25,5,25,36,25,7,4,25,132,228,24,228,24,4,
+  25,4,25,5,228,24,131,227,24,4,25,4,25,5,228,24,130,227,16,228,
+  24,11,227,24,132,3,25,227,24,227,24,3,25,6,227,24,132,3,25,4,
+  25,3,25,227,24,10,3,25,155,36,25,3,25,4,25,4,25,3,25,35,
+  25,3,25,35,25,4,25,4,25,36,25,36,25,36,33,36,25,36,33,35,
+  33,36,25,36,33,36,33,68,33,36,25,68,33,68,33,36,33,68,25,68,
+  33,36,33,13,68,33,134,100,33,68,33,68,33,100,33,100,33,68,33,3,
+  100,33,133,68,33,100,33,100,33,68,33,68,33,21,100,33,3,132,33,129,
+  100,33,5,132,33,129,100,33,4,132,33,129,133,33,5,132,33,129,133,41,
+  4,132,33,134,133,41,132,33,133,41,132,41,132,33,133,41,3,132,33,131,
+  133,41,132,41,133,41,11,132,33,145,132,41,133,41,133,41,132,41,132,41,
+  133,41,132,41,133,33,133,41,133,41,133,33,133,41,132,41,133,33,133,33,
+  101,41,132,41,5,132,33,141,100,33,100,33,132,33,100,33,100,33,132,33,
+  100,33,132,33,133,41,132,33,132,41,100,41,132,41,4,132,33,137,133,41,
+  132,33,132,33,132,41,132,33,132,33,133,41,133,41,133,33,5,133,41,129,
+  133,33,6,133,41,141,165,41,132,41,133,41,165,41,132,41,133,41,165,41,
+  165,41,197,41,230,49,6,50,39,58,72,58,3,72,66,129,137,66,3,169,
+  74,134,137,74,105,74,40,66,167,57,166,49,134,41,3,102,33,137,70,33,
+  69,33,70,33,70,33,69,33,37,33,37,33,69,33,69,33,10,102,33,146,
+  135,33,102,41,135,41,134,33,102,33,103,33,103,33,134,41,135,41,102,33,
+  135,41,102,33,134,41,135,41,102,33,135,41,135,41,134,41,4,135,41,134,
+  102,41,235,90,109,107,239,123,77,107,167,49,3,228,24,170,4,25,134,41,
+  41,58,9,66,232,49,167,49,236,98,236,90,203,90,203,90,235,90,203,90,
+  203,90,236,90,203,82,171,82,138,74,138,82,203,90,81,148,211,164,211,164,
+  20,165,130,8,65,8,97,16,65,8,130,8,199,49,45,91,240,115,17,116,
+  17,116,17,108,16,116,240,107,16,116,16,116,240,115,240,115,240,107,240,107,
+  3,240,115,135,240,107,240,107,240,115,240,107,208,107,240,107,240,107,3,208,
+  107,129,240,107,3,208,107,129,208,99,6,208,107,134,208,99,207,99,175,107,
+  176,107,208,99,175,99,5,208,107,131,208,99,175,99,208,99,8,208,107,131,
+  175,99,175,107,175,107,8,175,99,5,143,99,136,142,99,142,99,143,99,142,
+  99,143,99,142,99,143,99,142,99,3,143,99,139,143,107,143,107,143,99,143,
+  99,142,99,142,99,143,99,143,99,142,99,110,99,142,99,3,143,99,131,143,
+  107,143,107,143,99,5,143,107,140,143,99,142,107,175,107,175,107,77,99,73,
+  66,163,16,33,0,65,8,195,16,73,66,111,99,13,175,107,129,142,107,5,
+  143,107,133,142,107,142,99,143,107,110,107,142,107,6,110,99,133,110,107,110,
+  99,77,99,78,99,77,99,3,78,99,143,110,99,78,99,109,107,77,99,78,
+  107,77,99,236,90,203,82,4,33,130,16,65,8,66,8,65,8,196,16,237,
+  74,4,204,82,134,105,66,4,33,195,24,163,24,98,16,98,8,214,3,136,
+  106,74,235,90,45,99,142,107,207,115,239,115,240,123,16,124,3,49,124,4,
+  81,124,133,113,124,113,124,114,124,114,124,114,132,5,114,124,134,114,132,114,
+  124,114,132,114,124,114,124,146,132,3,146,124,134,146,132,114,132,114,124,146,
+  124,146,124,114,124,3,146,124,129,147,124,6,146,124,11,114,124,131,82,124,
+  114,116,114,116,3,82,116,133,49,116,81,116,49,116,49,116,81,116,6,49,
+  116,130,49,108,49,116,3,49,108,137,16,108,17,108,17,108,16,108,17,108,
+  16,108,16,108,17,108,17,108,3,16,108,6,240,107,137,208,107,208,107,207,
+  107,208,107,207,107,207,107,175,107,175,99,175,99,3,143,99,130,142,99,142,
+  91,4,110,91,131,78,91,77,83,77,91,3,45,91,129,45,83,5,13,83,
+  129,12,83,3,236,82,133,204,82,204,82,204,74,204,74,172,74,4,171,74,
+  139,139,66,139,66,138,66,138,66,139,66,106,66,106,66,74,58,106,66,74,
+  66,74,66,5,74,58,132,41,58,73,58,41,58,41,58,3,9,58,133,9,
+  50,9,50,233,57,233,49,9,50,3,233,49,135,232,49,232,41,200,49,200,
+  49,200,41,200,41,199,41,3,167,41,139,135,41,167,41,135,41,102,33,135,
+  33,102,33,135,33,102,33,134,33,134,33,102,33,4,102,41,8,102,33,129,
+  70,33,5,69,33,3,37,33,130,69,33,37,25,4,37,33,138,37,25,37,
+  33,37,33,37,25,37,25,37,33,37,33,36,33,37,33,4,25,3,36,25,
+  133,4,25,4,33,4,25,4,25,36,25,12,4,25,129,228,24,9,4,25,
+  129,227,24,5,4,25,129,3,25,15,4,25,129,36,33,11,4,25,131,36,
+  33,4,25,4,25,4,36,25,129,4,25,3,36,25,139,3,25,36,33,35,
+  25,3,25,35,25,35,25,36,25,35,25,36,25,35,25,36,33,3,36,25,
+  3,36,33,130,36,25,68,25,4,36,33,132,68,33,36,33,68,33,36,25,
+  4,68,33,129,68,25,21,68,33,129,100,33,17,68,33,4,100,33,13,68,
+  33,129,100,33,3,68,33,132,100,33,68,33,68,33,100,33,3,68,33,133,
+  100,33,68,33,68,33,100,33,68,33,4,100,33,130,101,33,101,33,8,100,
+  33,133,101,33,101,33,100,33,100,41,100,41,3,100,33,141,133,41,133,41,
+  165,41,166,41,198,49,7,58,39,58,72,66,72,66,105,66,104,66,137,74,
+  169,74,3,234,82,148,202,82,202,82,105,74,40,58,199,41,134,41,102,33,
+  102,33,70,33,102,33,70,33,70,33,37,33,37,25,37,33,69,33,69,33,
+  70,33,102,33,70,33,5,102,33,137,103,33,103,33,134,33,134,33,102,33,
+  102,33,135,41,135,41,134,33,3,135,41,135,134,41,134,41,135,41,134,41,
+  135,41,167,41,135,41,3,167,41,183,199,49,167,41,134,41,44,99,142,115,
+  239,123,77,99,199,49,37,33,228,24,228,24,4,25,102,41,41,58,9,66,
+  232,57,134,49,236,90,204,90,203,90,203,82,235,90,236,90,203,90,235,90,
+  171,82,138,74,106,82,138,82,170,82,81,140,210,156,210,156,52,173,134,41,
+  98,8,65,8,98,16,98,8,97,8,101,33,236,74,208,107,17,116,16,116,
+  240,115,241,115,240,115,17,108,17,116,241,115,240,107,240,115,240,115,240,107,
+  3,240,115,5,240,107,17,208,107,132,175,107,176,107,175,99,175,107,3,208,
+  107,133,207,99,175,99,176,107,208,107,207,99,5,208,107,137,207,99,175,99,
+  175,99,175,107,175,107,175,99,143,107,143,99,143,99,4,175,99,6,143,99,
+  133,142,99,142,99,143,99,143,99,142,99,5,143,99,139,175,107,143,107,143,
+  99,143,99,142,99,143,107,143,107,143,99,143,107,143,107,143,99,5,143,107,
+  151,175,107,143,107,175,107,143,99,142,107,143,107,143,99,174,107,143,99,175,
+  107,143,107,77,99,41,58,130,8,65,8,65,8,4,25,138,66,143,107,175,
+  107,175,107,143,107,143,107,7,175,107,130,143,107,142,107,3,143,107,136,142,
+  107,142,107,143,107,143,107,142,99,142,99,142,107,110,107,8,110,99,158,78,
+  99,78,99,110,99,110,99,203,82,8,66,166,57,101,49,101,49,167,57,8,
+  66,105,74,235,90,199,57,130,16,98,16,97,8,65,8,66,8,139,66,204,
+  82,204,82,236,82,73,66,4,33,130,16,98,16,98,16,163,16,163,16,239,
+  3,137,138,82,236,90,77,107,141,107,174,115,207,115,16,124,16,124,49,124,
+  4,81,124,132,81,132,82,132,113,132,113,124,3,114,132,133,146,132,114,132,
+  146,132,146,132,114,132,6,146,132,7,147,132,130,146,132,146,132,12,179,132,
+  140,146,132,179,132,147,132,146,132,147,132,146,132,147,132,179,132,147,132,179,
+  132,179,124,179,124,3,147,124,132,146,124,147,124,146,124,147,124,13,146,124,
+  3,114,124,5,146,124,130,114,124,146,124,11,114,124,132,82,124,81,124,81,
+  116,81,124,5,49,116,133,17,116,17,108,17,116,16,108,16,108,5,240,107,
+  134,207,107,207,107,208,107,207,107,207,99,207,99,4,175,99,5,143,99,130,
+  142,99,142,91,4,110,91,132,78,91,78,91,46,83,77,91,3,45,83,131,
+  45,91,45,83,45,91,5,45,83,134,13,83,13,83,13,75,13,83,237,82,
+  237,82,3,236,82,132,204,82,204,74,204,74,236,74,3,204,74,3,171,74,
+  131,171,66,171,66,139,66,3,106,66,3,106,58,135,74,58,106,58,74,58,
+  74,58,73,58,74,58,74,58,7,41,58,130,42,58,41,50,6,9,50,134,
+  233,49,232,49,232,49,200,49,232,49,232,49,13,200,49,4,167,49,138,167,
+  41,135,41,167,41,167,41,135,41,135,41,134,33,134,33,135,41,102,41,9,
+  102,33,131,70,33,102,33,70,33,4,102,33,133,102,41,70,33,69,33,69,
+  33,70,33,7,69,33,3,37,33,130,69,33,101,33,11,69,33,136,37,33,
+  69,33,69,33,36,33,37,33,69,33,37,33,37,33,8,36,33,134,36,25,
+  36,33,4,25,36,33,36,25,36,25,3,36,33,141,36,25,36,33,4,25,
+  36,33,36,33,36,25,4,33,4,25,36,25,36,25,4,25,36,25,36,33,
+  6,36,25,132,4,25,36,33,36,33,36,25,5,36,33,3,36,25,131,36,
+  33,36,33,36,25,4,36,33,129,36,25,3,36,33,139,36,25,36,33,36,
+  33,36,25,36,33,36,33,36,25,36,25,36,33,36,33,36,25,6,36,33,
+  129,36,25,3,36,33,129,68,33,9,36,33,129,36,25,7,36,33,129,36,
+  25,4,36,33,134,68,33,36,33,36,33,69,33,68,33,68,25,10,68,33,
+  5,69,33,131,101,33,68,33,69,33,7,101,33,131,133,41,101,41,133,33,
+  3,101,41,150,101,33,133,41,133,41,198,49,231,49,7,58,72,66,72,66,
+  105,66,137,66,169,74,170,74,235,82,11,91,43,91,11,91,11,91,203,82,
+  105,66,8,58,167,41,134,33,3,102,33,134,70,33,70,33,69,33,37,33,
+  69,33,69,33,3,102,33,153,103,41,102,33,135,33,134,33,102,33,103,33,
+  103,33,135,41,102,33,134,33,134,41,134,33,135,41,135,41,134,41,135,41,
+  135,41,134,41,135,41,135,41,134,41,134,41,135,41,167,41,167,49,3,167,
+  41,145,168,41,168,41,134,41,203,90,109,107,239,115,142,107,199,49,69,33,
+  4,25,228,24,4,25,102,41,8,58,8,58,232,57,134,49,3,203,90,159,
+  235,90,235,90,204,90,203,82,203,90,170,82,138,74,105,74,138,82,138,82,
+  48,140,210,156,178,156,243,164,45,91,8,58,195,16,65,8,98,16,130,16,
+  98,8,4,25,171,74,175,107,17,116,17,116,241,115,17,116,16,116,240,115,
+  241,115,3,240,115,3,240,107,129,240,115,4,240,107,130,208,107,240,107,4,
+  208,107,129,240,107,12,208,107,3,176,107,136,208,107,176,107,208,107,175,99,
+  175,99,175,107,175,99,176,107,5,208,107,3,175,107,135,175,99,175,107,175,
+  107,175,99,175,99,143,99,143,99,3,175,99,6,143,99,136,111,99,143,99,
+  111,99,110,99,142,99,143,99,143,99,142,99,3,143,99,129,143,107,3,143,
+  99,140,143,107,143,107,143,99,143,107,142,99,143,107,143,99,143,107,143,107,
+  174,107,142,107,143,99,3,143,107,132,142,99,143,107,175,99,174,107,3,175,
+  107,153,143,107,45,91,232,49,97,8,65,8,65,8,101,33,236,82,175,107,
+  175,107,143,107,175,107,143,107,175,107,143,107,143,107,175,107,143,107,175,107,
+  143,107,142,107,175,107,143,107,143,107,142,107,4,143,107,130,142,107,110,107,
+  7,110,99,135,78,99,110,99,110,107,142,107,105,74,228,32,97,16,3,65,
+  8,150,33,8,33,8,65,8,65,8,130,16,228,32,130,16,97,8,65,8,
+  65,8,33,0,167,41,13,83,236,82,41,66,36,33,98,16,130,16,163,16,
+  196,24,195,24,130,16,47,4,141,170,82,235,98,77,107,110,107,142,115,207,
+  115,240,123,16,124,49,132,49,132,81,132,81,132,113,132,8,114,132,131,146,
+  132,114,132,114,132,4,146,132,131,147,132,146,132,147,132,3,179,132,133,147,
+  132,146,132,179,132,179,132,147,132,5,179,132,129,179,140,13,179,132,6,211,
+  132,129,211,140,3,211,132,130,179,132,179,132,7,211,132,130,179,132,179,132,
+  3,211,132,132,179,132,179,132,211,132,179,132,9,211,132,130,179,132,179,132,
+  6,211,132,7,179,132,129,146,132,4,147,132,131,146,124,147,132,146,124,6,
+  114,124,138,82,116,82,124,82,124,82,116,82,116,81,116,82,116,82,116,81,
+  116,81,116,4,49,116,135,49,108,49,108,17,108,16,108,16,108,240,107,16,
+  108,4,240,107,130,208,107,208,99,5,208,107,130,208,99,208,99,3,208,107,
+  130,208,99,207,99,3,175,99,129,175,107,3,175,99,132,143,99,175,99,143,
+  99,143,99,3,143,91,3,110,91,3,78,91,130,77,83,46,91,6,45,83,
+  7,13,83,131,13,75,13,83,13,83,6,236,74,4,204,74,148,171,74,172,
+  74,171,74,171,74,171,66,139,66,139,66,171,66,139,66,171,74,139,66,139,
+  66,171,74,171,74,139,66,139,74,171,74,139,66,139,66,138,66,3,106,66,
+  132,74,66,74,66,74,58,41,66,3,73,58,140,41,58,41,58,41,50,41,
+  50,41,58,41,58,41,50,9,50,41,58,9,50,9,50,9,58,3,9,50,
+  129,233,49,3,9,50,140,8,50,9,50,9,50,233,49,232,57,232,49,232,
+  49,9,50,9,50,232,49,232,49,200,49,3,232,49,133,232,57,232,57,232,
+  49,232,49,232,57,4,232,49,135,200,49,200,49,232,57,200,49,199,49,199,
+  41,200,41,3,199,41,130,167,41,167,49,3,167,41,129,167,49,3,167,41,
+  133,134,41,167,41,135,41,134,41,134,41,3,135,41,131,167,41,135,41,135,
+  41,3,134,41,129,135,41,11,134,41,140,102,33,134,33,134,41,102,41,134,
+  41,134,41,134,33,102,33,102,41,102,33,134,41,134,41,12,102,33,130,101,
+  33,101,33,4,102,33,130,101,33,102,33,3,101,33,157,102,33,102,33,101,
+  33,102,33,102,33,102,41,102,33,102,33,102,41,102,41,134,41,134,33,134,
+  41,102,41,102,41,134,41,102,41,102,33,134,41,134,33,134,33,134,41,102,
+  41,102,33,102,33,101,33,102,33,102,33,101,41,3,102,41,130,102,33,102,
+  41,10,134,41,129,166,41,4,134,41,140,134,33,166,41,167,41,167,41,166,
+  41,166,41,167,41,167,41,167,49,167,49,167,41,199,41,5,199,49,157,232,
+  49,232,49,199,41,199,49,167,41,166,41,166,41,198,49,199,49,231,49,7,
+  58,40,58,73,66,105,66,137,66,170,74,202,74,234,82,11,83,76,91,76,
+  99,76,99,44,91,170,74,73,66,8,58,167,49,102,33,102,33,3,70,33,
+  131,37,33,37,33,69,33,7,102,33,140,103,33,134,41,134,33,135,41,103,
+  33,135,33,134,33,135,41,134,33,135,41,134,41,134,41,4,135,41,132,134,
+  41,134,41,135,41,135,41,6,167,41,148,199,41,135,41,203,90,109,107,239,
+  123,109,107,231,57,69,33,37,25,228,24,4,25,102,41,41,66,8,58,8,
+  58,134,41,171,82,203,90,203,90,203,82,4,171,82,164,138,74,73,74,105,
+  74,106,74,170,82,239,131,210,156,210,156,19,165,207,115,175,107,139,74,4,
+  25,98,8,130,16,163,24,130,16,195,24,73,58,110,99,240,115,241,115,241,
+  115,17,116,16,116,17,116,241,115,240,115,241,115,241,107,240,107,240,107,240,
+  115,240,107,240,107,240,115,3,240,107,4,208,107,129,240,107,10,208,107,134,
+  176,107,208,107,208,107,175,107,208,107,176,107,3,208,107,134,207,99,175,99,
+  175,99,176,107,207,107,207,107,3,208,107,132,207,107,208,107,207,99,176,99,
+  8,175,99,146,143,99,175,99,143,99,143,107,143,99,142,99,143,99,142,99,
+  111,99,143,99,143,99,142,99,142,99,110,99,111,99,110,99,110,99,142,99,
+  3,143,99,137,142,99,143,107,143,99,143,99,142,99,142,99,142,107,143,107,
+  175,107,3,143,107,129,142,107,3,143,107,144,175,107,175,99,143,107,175,107,
+  142,107,175,107,175,107,143,107,110,107,12,91,167,49,65,0,65,8,98,8,
+  199,49,45,99,6,175,107,129,143,107,4,175,107,4,143,107,129,142,107,6,
+  143,107,130,110,107,142,107,4,110,99,161,110,107,110,99,110,107,236,90,101,
+  49,98,16,65,16,97,8,65,8,33,8,33,8,130,16,195,16,195,24,228,
+  24,134,49,101,41,166,49,199,57,69,41,163,24,130,16,196,8,138,66,8,
+  58,69,33,130,16,163,16,227,24,228,24,195,24,130,16,65,8,16,4,141,
+  171,90,236,98,77,107,142,107,174,115,207,115,239,123,16,124,48,124,49,132,
+  81,132,81,132,113,132,7,114,132,130,146,132,114,132,5,146,132,132,178,132,
+  147,132,178,140,178,132,3,179,140,132,179,132,179,132,179,140,179,140,4,179,
+  132,143,179,140,179,132,179,140,211,140,179,132,179,132,211,140,179,140,211,132,
+  179,140,179,140,211,132,179,140,211,140,211,132,7,211,140,129,212,140,6,211,
+  140,3,211,132,142,244,140,211,140,244,140,244,132,244,140,212,140,211,140,244,
+  140,212,140,212,140,244,140,244,140,211,140,243,140,14,244,140,129,20,141,7,
+  244,140,134,243,140,243,140,244,140,244,132,244,140,244,140,3,211,132,6,179,
+  132,130,179,124,179,124,8,179,132,130,147,124,147,132,5,146,124,131,146,116,
+  114,124,114,124,4,114,116,139,82,116,114,116,82,116,82,124,82,116,82,116,
+  82,124,114,124,82,116,82,116,114,116,6,82,116,131,49,116,81,116,81,116,
+  4,49,116,133,49,108,49,116,49,108,17,108,49,108,3,17,108,4,240,107,
+  131,208,99,208,107,208,107,4,208,99,4,175,99,129,176,99,6,175,99,129,
+  175,91,4,143,91,130,142,91,142,91,5,110,91,131,78,91,78,91,78,83,
+  6,78,91,134,110,91,78,91,78,91,77,91,78,91,78,91,3,45,83,7,
+  13,83,129,236,82,3,237,82,7,236,74,11,204,74,132,172,74,171,74,171,
+  74,204,74,5,171,74,129,139,74,4,171,74,129,139,74,5,171,74,5,139,
+  74,133,139,66,138,66,139,66,106,66,107,66,6,106,66,132,74,66,74,66,
+  106,66,73,66,3,74,66,132,41,58,73,66,74,66,73,66,3,41,58,129,
+  74,58,5,73,58,132,41,66,41,58,73,58,41,58,3,41,66,130,9,58,
+  41,58,3,9,58,129,9,50,7,9,58,3,9,50,132,232,49,8,50,8,
+  50,232,49,3,233,49,133,9,50,233,49,233,49,9,50,9,50,3,232,49,
+  130,233,49,233,49,10,232,49,161,233,57,233,49,9,50,232,49,8,50,9,
+  50,9,50,8,50,8,50,9,58,233,49,232,49,232,49,8,50,8,50,9,
+  58,9,50,8,50,233,49,9,50,9,50,232,49,232,49,233,49,232,49,8,
+  50,233,49,233,49,9,50,8,50,41,58,41,58,9,58,3,41,58,139,9,
+  58,9,58,41,58,9,50,9,58,41,58,9,58,9,58,41,58,41,58,9,
+  58,3,41,58,130,41,50,9,50,3,41,58,173,42,58,73,58,73,58,74,
+  66,106,58,106,58,106,66,74,66,74,58,74,58,73,58,41,58,8,58,8,
+  58,232,49,231,49,231,57,8,50,40,58,40,58,105,66,137,66,170,74,202,
+  74,234,82,235,82,11,83,43,91,76,99,76,99,235,90,170,74,73,58,232,
+  57,167,41,134,33,70,33,102,33,69,33,37,33,37,33,70,33,102,33,102,
+  33,134,33,3,102,33,130,134,33,134,41,4,135,41,136,135,33,135,33,135,
+  41,134,33,134,41,134,41,135,41,167,41,3,135,41,129,134,41,3,135,41,
+  180,167,41,167,41,199,41,167,41,167,41,168,41,167,41,167,41,203,82,77,
+  107,207,115,174,115,232,57,102,33,5,33,228,24,4,25,69,33,9,58,8,
+  58,8,58,102,41,8,58,8,66,41,66,41,66,73,74,106,74,41,66,138,
+  74,170,82,170,82,73,74,167,49,200,57,206,123,210,156,178,156,243,164,207,
+  115,17,116,240,115,236,82,101,33,130,16,195,24,195,24,163,16,163,16,232,
+  49,78,91,241,115,3,17,116,148,240,115,17,116,240,107,241,107,240,115,240,
+  107,241,107,240,115,240,115,240,107,208,107,240,115,240,107,240,107,208,107,240,
+  107,240,115,240,107,208,107,240,107,11,208,107,130,207,107,208,107,3,175,107,
+  134,208,107,208,107,207,107,176,107,176,107,207,107,9,208,107,130,207,99,207,
+  107,5,175,99,5,143,99,135,142,99,143,99,143,99,111,99,143,107,110,99,
+  143,99,5,110,99,134,111,99,110,99,142,99,110,99,110,99,142,99,3,143,
+  99,3,142,99,130,143,107,143,99,7,143,107,130,175,107,175,99,4,143,107,
+  129,175,107,3,143,107,135,12,91,69,33,33,0,65,8,162,16,41,66,110,
+  99,11,175,107,129,143,107,4,175,107,130,143,107,143,99,3,143,107,167,143,
+  99,142,107,110,107,110,107,142,107,110,107,142,107,45,99,231,57,195,24,98,
+  16,97,16,98,16,65,8,33,0,163,16,228,24,163,24,130,16,130,16,98,
+  16,97,16,130,16,98,16,195,24,166,49,228,32,163,16,5,17,134,33,102,
+  33,196,24,163,16,228,24,227,24,195,24,130,16,97,16,97,8,47,4,141,
+  171,90,236,98,44,99,109,107,142,115,174,115,207,115,16,124,48,132,49,132,
+  81,132,81,132,113,132,5,114,132,8,146,132,3,147,132,3,179,140,134,178,
+  140,147,140,179,132,179,140,147,132,147,132,3,179,132,131,179,140,179,132,179,
+  140,5,211,140,135,179,140,211,140,179,132,211,140,179,140,179,140,211,132,3,
+  211,140,133,212,140,212,140,211,140,243,140,243,140,9,211,140,137,212,140,244,
+  140,244,140,212,140,244,140,212,140,244,140,244,140,212,140,15,244,140,139,20,
+  141,20,141,20,149,20,141,20,149,20,141,20,149,20,149,20,141,20,149,20,
+  149,7,20,141,130,244,140,20,141,8,244,140,132,212,140,244,140,212,140,212,
+  140,5,244,140,130,212,140,212,140,8,211,132,130,179,132,179,132,8,179,124,
+  133,179,132,179,132,179,124,179,124,211,132,5,179,132,129,179,124,3,179,132,
+  134,179,124,179,132,179,124,179,132,179,124,179,124,4,147,124,132,146,124,147,
+  124,114,124,114,124,3,114,116,8,82,116,129,81,116,3,82,116,133,50,116,
+  82,116,50,116,49,116,49,116,3,49,108,6,17,108,131,16,108,241,107,17,
+  108,16,240,107,135,208,99,208,99,208,107,176,99,175,99,175,99,143,99,3,
+  175,99,131,143,99,175,99,175,99,4,143,99,132,143,91,143,91,143,99,111,
+  99,3,143,91,145,142,91,143,99,111,99,143,91,111,91,142,91,110,99,110,
+  99,110,91,110,99,110,99,110,91,110,91,110,99,110,91,78,91,110,91,3,
+  78,91,129,110,91,10,78,91,132,78,83,46,83,46,91,46,83,3,45,83,
+  142,45,91,13,91,13,83,45,83,45,83,13,91,45,91,13,91,13,83,13,
+  91,13,83,13,83,236,82,13,83,5,236,82,131,13,83,236,74,237,82,4,
+  236,82,129,237,82,3,236,82,140,237,82,236,82,236,82,204,82,204,74,204,
+  74,204,82,204,74,204,74,172,74,204,82,204,82,3,204,74,130,172,74,204,
+  74,4,172,74,5,171,74,130,172,74,172,74,3,171,74,135,139,74,171,66,
+  171,66,171,74,139,74,139,74,171,66,4,139,74,133,171,74,139,66,139,74,
+  171,74,139,74,3,171,74,3,172,74,133,171,74,171,74,172,74,172,74,171,
+  74,3,172,74,141,171,74,171,74,172,74,171,74,172,74,171,74,171,74,172,
+  74,171,74,171,74,172,74,171,74,171,66,3,172,74,3,204,74,137,172,74,
+  172,74,204,74,204,66,204,74,172,74,171,74,171,66,171,74,3,172,74,133,
+  171,66,172,74,204,74,172,74,172,74,7,204,74,166,236,74,237,82,237,74,
+  237,82,236,74,236,74,204,82,204,74,171,74,139,66,106,66,73,66,41,58,
+  41,58,8,58,40,58,41,58,73,58,105,66,137,66,170,74,203,74,202,74,
+  234,82,202,82,44,91,76,99,11,91,203,82,105,66,73,66,199,49,167,41,
+  102,33,70,33,69,33,37,33,69,33,4,102,33,134,134,33,134,33,135,33,
+  102,33,135,41,135,33,5,135,41,138,135,33,167,41,135,41,134,41,134,41,
+  135,41,167,41,167,41,135,41,135,41,4,167,41,151,168,41,200,41,200,41,
+  199,41,200,49,200,41,167,41,171,82,77,107,207,115,175,115,9,58,102,33,
+  37,25,228,16,4,25,70,33,41,66,41,58,8,58,134,41,199,49,199,49,
+  3,41,66,154,73,74,232,57,73,74,138,82,170,82,106,74,102,41,135,41,
+  142,123,146,156,146,148,211,156,239,115,17,116,17,116,240,115,78,99,199,49,
+  163,16,195,24,195,24,162,16,162,16,199,49,45,91,240,115,3,17,116,137,
+  240,115,240,115,240,107,241,115,240,107,241,107,240,107,240,107,240,115,3,240,
+  107,132,208,115,240,107,240,107,240,115,3,240,107,10,208,107,135,207,107,208,
+  107,207,107,207,99,176,99,176,107,208,107,3,175,107,141,208,107,208,107,176,
+  107,208,107,207,107,208,107,208,107,207,107,175,99,175,107,208,107,208,107,175,
+  107,3,175,99,144,143,99,143,99,175,99,143,99,175,99,143,99,142,99,143,
+  99,111,99,110,99,111,99,111,99,143,99,143,99,142,99,142,99,10,110,99,
+  139,142,99,143,107,143,107,142,99,143,99,142,99,143,107,143,107,143,99,143,
+  107,143,107,3,175,107,129,175,99,5,175,107,130,143,107,175,107,3,143,107,
+  134,171,74,195,24,33,0,65,8,228,24,138,74,10,175,107,129,143,107,4,
+  175,107,4,143,107,169,142,107,142,107,143,107,142,107,110,107,110,107,110,99,
+  142,107,110,107,166,49,130,16,65,8,98,16,98,16,65,8,33,8,130,16,
+  130,16,65,8,98,16,97,8,98,16,97,8,65,8,65,8,163,24,195,24,
+  195,24,227,24,37,33,102,33,102,33,37,25,163,16,227,24,228,32,163,24,
+  130,16,97,16,65,8,65,8,226,3,141,203,90,12,99,44,99,77,107,142,
+  107,174,115,207,115,240,123,16,132,49,132,81,132,81,132,113,132,4,114,132,
+  131,146,132,114,132,114,132,3,146,132,135,147,132,146,132,146,132,146,140,146,
+  140,179,132,179,132,3,179,140,133,179,132,178,132,179,132,179,140,178,140,3,
+  179,140,3,211,140,130,179,140,179,140,3,211,140,129,179,132,13,211,140,132,
+  243,140,243,140,211,140,212,140,4,211,140,138,212,140,212,140,211,140,211,140,
+  212,140,244,140,244,140,243,140,212,140,212,140,11,244,140,131,20,141,244,148,
+  244,140,18,20,149,142,20,141,20,149,20,149,20,141,20,149,20,141,244,140,
+  244,148,20,149,244,140,244,140,20,141,244,140,20,141,4,244,140,129,20,141,
+  8,244,140,3,244,132,132,244,140,212,132,212,140,212,140,4,212,132,131,244,
+  132,212,132,244,140,3,244,132,130,244,140,244,132,10,244,140,137,244,132,244,
+  140,244,140,244,132,244,140,244,132,244,132,244,140,244,132,3,212,132,129,211,
+  132,4,179,132,132,179,124,179,124,180,132,179,124,3,179,132,5,179,124,130,
+  147,124,179,124,7,147,124,136,115,124,146,124,115,124,115,124,115,116,114,124,
+  114,124,114,116,3,114,124,3,114,116,8,114,124,137,82,124,114,116,82,116,
+  50,116,50,116,50,108,49,116,49,116,49,108,6,49,116,141,17,116,49,116,
+  17,116,17,108,17,116,17,116,49,108,17,108,49,108,17,108,17,108,17,116,
+  17,108,4,17,116,134,17,108,17,108,240,107,17,108,17,108,16,108,3,240,
+  107,129,17,108,9,240,107,129,208,107,4,240,107,132,208,107,240,107,208,107,
+  208,99,4,208,107,137,176,107,208,107,175,99,175,107,207,107,175,107,175,99,
+  175,99,175,107,3,175,99,131,143,99,175,99,175,99,9,143,99,131,175,99,
+  143,99,143,107,3,143,99,3,142,99,142,143,99,110,91,143,91,110,91,111,
+  91,111,99,110,99,111,91,111,91,142,99,110,91,110,91,111,99,111,91,3,
+  110,91,5,78,91,129,110,91,12,78,91,136,78,83,78,83,78,91,77,91,
+  78,91,78,91,46,91,46,91,11,78,91,130,110,91,79,91,13,78,91,130,
+  110,91,78,83,7,78,91,130,110,91,110,91,8,78,91,129,46,83,5,78,
+  91,131,110,91,111,91,78,91,3,110,91,129,111,99,4,111,91,137,110,91,
+  78,91,78,91,45,83,237,82,204,74,171,74,138,74,105,66,3,41,58,154,
+  40,58,72,58,105,66,170,74,202,74,202,74,170,74,170,74,202,82,43,91,
+  11,91,235,90,105,74,137,74,8,58,199,49,134,41,102,33,70,33,37,25,
+  70,33,102,33,102,33,134,33,135,33,134,33,3,135,33,131,135,41,135,33,
+  135,41,3,135,33,130,135,41,135,33,3,135,41,135,167,41,135,41,167,41,
+  167,41,135,41,167,41,135,41,3,167,41,130,200,41,200,41,4,200,49,176,
+  168,49,203,82,109,107,174,115,207,115,8,58,166,41,69,33,227,24,4,25,
+  69,33,41,66,41,66,41,58,167,49,134,41,102,41,135,49,135,49,134,41,
+  199,49,199,57,231,57,40,66,138,82,203,90,4,33,4,25,77,107,146,148,
+  145,148,210,156,239,123,17,116,17,116,241,115,17,116,110,99,41,58,195,16,
+  130,16,162,16,130,16,130,16,134,41,45,91,240,115,17,116,3,16,116,129,
+  240,107,3,240,115,131,240,107,240,107,240,115,4,240,107,129,208,107,4,240,
+  107,4,208,107,130,240,107,240,107,3,208,107,129,240,107,3,208,107,147,208,
+  99,208,107,175,107,175,107,207,107,208,107,207,107,175,107,207,107,208,107,175,
+  107,175,107,176,107,208,107,175,107,207,107,175,99,175,107,207,99,4,175,99,
+  132,175,107,143,107,175,107,143,107,5,143,99,132,110,99,143,99,111,99,110,
+  99,4,143,99,139,111,99,110,99,143,99,142,99,110,99,110,99,110,91,110,
+  99,142,99,110,99,111,99,4,143,99,134,175,107,142,99,143,99,175,107,143,
+  107,143,107,14,175,107,135,110,99,73,66,130,8,33,8,65,8,37,33,236,
+  82,15,175,107,149,143,107,142,107,174,107,142,107,142,107,143,107,142,107,142,
+  99,142,107,110,107,143,107,199,57,130,16,130,16,98,16,98,16,98,8,33,
+  0,66,8,98,8,98,8,6,65,8,142,130,16,228,24,228,24,163,24,163,
+  16,69,33,69,33,37,33,196,24,163,24,228,24,163,24,98,16,97,8,3,
+  65,8,213,3,138,203,90,236,98,12,99,77,107,109,107,174,115,207,115,239,
+  123,16,124,49,132,3,81,132,129,113,132,4,114,132,6,146,132,139,147,132,
+  146,140,146,140,147,140,179,140,147,132,179,140,179,132,147,140,146,132,178,140,
+  8,179,140,7,211,140,129,179,140,7,211,140,132,212,140,211,140,243,148,211,
+  140,4,243,140,4,211,140,140,212,140,211,140,211,140,212,140,212,140,244,140,
+  244,140,212,140,243,140,244,140,243,140,243,140,6,244,140,130,20,149,244,148,
+  3,20,149,131,244,148,20,149,20,141,7,20,149,129,52,149,4,20,149,129,
+  21,149,13,20,149,138,244,140,244,140,20,149,20,141,244,140,244,140,20,141,
+  244,140,20,149,20,149,4,20,141,11,244,140,133,244,132,212,140,244,140,244,
+  132,244,132,5,244,140,6,20,141,133,21,141,20,141,20,141,21,141,21,141,
+  6,20,141,129,21,141,5,20,141,133,244,140,244,132,244,140,244,132,212,132,
+  3,244,132,130,244,140,212,132,4,244,132,134,244,140,244,140,244,132,244,132,
+  212,132,244,132,6,212,132,129,211,132,6,212,132,142,179,132,179,132,179,124,
+  179,132,179,132,211,132,179,132,180,132,179,132,179,132,211,132,179,132,211,132,
+  211,132,3,179,132,131,179,124,179,132,179,132,7,147,124,129,147,132,3,147,
+  124,129,146,124,7,147,124,129,146,124,5,147,124,4,146,124,132,115,124,114,
+  124,146,124,115,124,5,114,124,129,82,116,4,114,124,129,114,116,5,114,124,
+  140,82,124,114,124,114,124,82,124,114,124,82,124,82,124,82,116,82,116,82,
+  124,82,116,82,116,3,81,116,133,49,116,50,116,49,116,82,124,49,124,5,
+  49,116,130,17,116,49,116,11,17,116,132,49,116,49,116,17,116,49,116,3,
+  17,116,4,17,108,135,17,116,17,108,241,107,241,107,240,107,17,108,240,107,
+  4,241,107,14,240,107,131,208,99,208,107,208,99,11,208,107,131,241,107,240,
+  107,208,107,5,240,107,130,209,107,241,107,7,240,107,139,208,107,208,107,240,
+  107,208,107,240,107,240,107,208,107,241,107,240,107,240,107,241,107,5,240,107,
+  132,241,107,240,107,241,107,240,107,3,208,107,132,208,99,240,107,208,107,208,
+  99,3,208,107,134,240,107,241,107,209,107,241,107,208,107,240,107,4,241,107,
+  172,17,108,241,107,17,108,241,107,240,107,208,107,208,107,143,99,110,91,78,
+  83,13,83,203,74,171,74,138,74,73,66,73,66,41,66,73,66,105,66,138,
+  66,170,66,170,74,138,74,137,74,137,74,234,90,234,90,235,90,137,74,170,
+  82,105,74,8,58,199,49,102,33,37,25,37,33,69,33,102,33,134,33,102,
+  33,135,41,102,33,135,33,135,41,3,135,33,129,167,41,3,135,41,136,167,
+  41,135,41,134,41,135,41,135,41,167,41,135,41,135,41,6,167,41,131,168,
+  49,168,41,200,41,5,200,49,169,171,82,77,107,174,115,240,123,41,66,167,
+  41,70,33,228,24,4,25,69,33,73,66,73,66,105,66,8,58,134,49,102,
+  41,134,49,134,41,166,49,231,57,199,57,231,57,105,74,203,90,12,99,69,
+  33,36,33,44,107,145,148,81,140,178,156,16,124,240,115,17,116,241,115,17,
+  116,17,124,143,107,73,66,195,24,98,16,3,130,16,135,101,33,12,83,240,
+  107,17,116,240,115,240,107,17,116,4,240,115,139,240,107,240,107,240,115,240,
+  107,240,107,240,115,240,107,208,115,240,115,240,107,240,107,9,208,107,138,240,
+  107,208,107,208,107,240,107,208,107,208,107,207,107,208,107,175,99,176,107,3,
+  207,107,141,175,107,207,107,175,107,175,107,208,107,207,107,207,107,207,99,175,
+  107,175,107,175,99,175,107,175,107,4,175,99,133,143,107,175,99,143,99,143,
+  99,175,99,8,143,99,129,142,99,4,143,99,3,110,99,133,110,91,110,91,
+  110,99,142,99,142,99,3,143,99,133,142,99,142,107,143,99,175,107,143,99,
+  6,175,107,129,207,107,9,175,107,136,110,107,232,57,65,0,65,0,97,8,
+  166,41,45,91,208,107,14,175,107,130,142,107,175,107,4,143,107,142,142,107,
+  142,107,175,107,41,66,163,24,163,24,195,24,98,16,98,8,65,8,65,8,
+  163,16,163,16,98,8,5,65,8,143,98,8,98,8,97,8,98,8,130,16,
+  163,16,37,33,4,25,228,24,196,24,196,24,195,24,130,16,97,8,97,8,
+  3,65,8,200,3,139,203,90,235,98,12,99,44,99,109,107,142,107,207,115,
+  239,123,16,124,49,132,49,132,4,81,132,5,114,132,6,146,132,138,146,140,
+  147,140,179,140,146,140,146,140,147,132,147,132,146,132,178,132,178,132,4,179,
+  140,136,211,140,179,140,179,140,211,140,211,140,179,140,211,140,179,140,3,211,
+  140,133,179,140,211,140,211,140,179,140,179,140,3,211,140,7,243,140,131,244,
+  140,211,140,211,140,3,212,140,137,211,140,211,140,212,140,244,140,243,140,243,
+  140,212,140,244,140,243,140,4,244,140,135,244,148,244,140,20,141,244,148,20,
+  149,20,141,244,148,11,20,149,129,21,149,3,20,149,132,52,149,20,149,20,
+  149,21,149,17,20,149,129,244,140,3,20,149,134,20,141,20,141,20,149,244,
+  148,20,141,20,141,17,244,140,7,20,141,129,21,141,5,21,149,130,52,149,
+  53,149,5,21,149,132,20,149,21,149,21,141,21,141,3,20,141,10,244,140,
+  3,20,141,129,244,140,4,20,141,5,244,140,132,20,141,244,140,244,140,244,
+  132,3,244,140,135,244,132,244,140,244,140,244,132,244,132,244,140,244,132,3,
+  244,140,4,244,132,4,244,140,130,244,132,212,140,26,212,132,129,212,140,6,
+  212,132,3,211,132,134,212,132,180,132,212,132,179,132,179,132,211,132,13,179,
+  132,129,179,124,11,179,132,4,147,132,129,179,132,4,147,132,131,146,124,146,
+  124,115,124,3,147,124,3,146,124,134,115,132,146,132,146,124,147,124,147,132,
+  147,124,5,146,124,139,147,124,146,124,114,124,146,124,146,124,115,124,114,124,
+  146,124,146,124,114,124,146,124,16,114,124,135,114,116,114,116,82,116,82,124,
+  114,116,114,124,82,116,4,82,124,143,82,116,82,116,82,124,82,116,114,116,
+  82,124,82,116,114,116,82,124,114,124,114,124,82,124,114,124,114,116,82,124,
+  3,114,124,154,82,124,114,124,82,124,114,124,114,124,114,116,114,116,114,124,
+  82,124,114,124,82,124,114,116,114,124,114,124,82,124,114,124,82,116,114,116,
+  82,116,82,116,82,124,82,124,114,124,82,124,82,116,82,124,3,82,116,182,
+  114,116,82,116,82,116,82,124,114,124,82,116,83,124,82,124,114,124,114,124,
+  114,116,114,124,115,124,115,124,114,116,115,124,114,124,114,124,82,116,82,116,
+  50,116,17,108,208,107,175,99,110,91,45,83,236,82,171,74,138,74,105,74,
+  105,66,73,66,105,66,106,66,137,66,170,74,170,74,137,74,137,74,169,82,
+  169,82,235,90,137,74,203,90,170,82,105,74,40,66,167,49,70,33,37,33,
+  70,33,102,33,103,33,134,33,3,135,33,136,135,41,135,41,135,33,135,41,
+  135,33,167,41,135,41,167,41,5,135,41,141,167,41,135,41,135,41,167,41,
+  167,41,135,41,167,41,167,41,168,41,168,41,200,49,199,49,200,41,4,200,
+  49,163,138,74,109,107,174,115,16,124,105,74,199,49,102,33,228,24,4,25,
+  69,33,73,66,138,66,138,74,41,66,232,57,199,49,8,58,40,66,73,74,
+  170,82,170,82,138,82,109,107,142,115,77,107,134,41,102,33,12,99,113,148,
+  80,140,178,156,16,124,240,115,240,115,17,116,3,241,115,132,176,107,171,74,
+  228,24,97,8,3,130,16,133,69,33,236,82,240,115,16,116,16,116,3,240,
+  115,4,240,107,3,240,115,135,240,107,240,107,240,115,208,107,240,107,240,107,
+  240,115,5,208,107,130,240,107,240,107,8,208,107,143,175,107,208,107,175,107,
+  175,99,176,107,208,107,207,107,208,107,175,107,175,107,208,107,207,107,175,107,
+  175,107,207,107,9,175,107,136,175,99,175,99,143,99,143,99,175,99,143,107,
+  143,99,143,107,6,143,99,135,111,99,110,99,110,99,142,99,142,99,110,99,
+  110,91,4,110,99,135,143,99,143,99,110,99,142,99,143,99,143,99,143,107,
+  9,175,107,145,207,107,175,107,175,107,207,107,175,107,207,107,175,107,175,107,
+  207,107,45,99,101,41,33,0,65,8,130,16,41,58,142,99,207,107,15,175,
+  107,5,143,107,152,142,107,235,90,37,33,196,24,228,24,195,24,98,8,98,
+  8,33,8,97,8,130,16,98,8,65,8,65,8,98,8,98,8,97,8,98,
+  8,163,16,195,16,195,24,196,24,195,24,195,16,4,228,24,132,196,24,130,
+  16,65,8,65,16,3,65,8,1,97,8,197,3,139,170,90,203,90,235,98,
+  44,107,77,107,142,115,174,115,239,123,16,124,49,124,49,132,3,81,132,130,
+  113,132,81,132,4,114,132,4,146,132,3,146,140,132,147,132,147,140,146,140,
+  146,140,4,146,132,129,178,140,4,179,140,130,211,140,179,140,10,211,140,140,
+  179,132,179,140,178,132,179,132,179,132,211,132,211,132,211,140,243,140,244,140,
+  243,148,211,148,3,243,140,5,211,140,6,212,140,137,243,140,244,140,244,140,
+  243,140,244,140,244,140,20,149,244,148,20,141,3,20,149,129,20,141,13,20,
+  149,131,21,149,21,149,52,149,4,20,149,129,52,149,12,20,149,129,244,148,
+  8,20,149,134,20,141,20,141,20,149,20,141,244,140,20,141,8,244,140,130,
+  212,140,212,140,5,244,140,3,20,141,136,21,141,21,149,20,141,20,141,53,
+  149,21,149,21,149,21,141,3,21,149,131,53,149,53,149,21,149,3,20,149,
+  133,53,149,21,149,21,149,53,149,21,149,3,20,149,7,244,140,7,20,141,
+  129,21,141,10,20,141,14,244,140,131,20,141,244,140,20,141,12,244,140,130,
+  244,132,244,132,13,244,140,3,20,141,135,244,140,20,141,244,140,20,141,20,
+  141,21,141,20,141,14,244,140,129,244,132,3,244,140,129,244,132,6,244,140,
+  130,244,132,244,132,3,244,140,129,244,132,3,244,140,129,212,140,10,244,140,
+  138,212,140,212,140,211,132,212,140,212,132,212,132,211,132,212,132,212,132,211,
+  132,3,212,132,131,212,140,244,132,244,132,3,212,140,132,244,132,244,140,212,
+  140,212,140,14,212,132,133,211,132,212,132,180,132,212,132,212,132,4,211,132,
+  132,212,132,211,132,179,132,179,124,3,179,132,131,179,124,179,132,180,132,10,
+  179,132,130,211,132,211,132,3,179,132,129,212,132,3,211,132,130,179,132,211,
+  132,4,180,132,144,179,132,212,132,212,132,180,124,180,132,179,132,211,132,211,
+  132,212,132,179,132,212,132,212,132,179,132,211,132,212,124,212,132,3,180,132,
+  139,179,132,180,132,180,132,179,124,179,132,179,124,179,132,179,124,179,132,180,
+  132,179,132,3,180,132,134,212,132,179,132,179,132,212,132,212,132,180,132,4,
+  212,132,140,180,132,179,124,179,124,115,124,114,124,50,116,17,108,176,107,143,
+  99,45,91,236,82,171,74,7,138,74,156,170,74,170,74,169,74,169,82,137,
+  74,202,82,169,82,202,82,235,82,202,82,105,74,8,58,134,41,69,33,102,
+  33,102,33,103,33,135,41,135,33,135,33,135,41,135,33,135,41,135,41,167,
+  41,135,41,135,33,167,41,5,135,41,10,167,41,132,200,41,199,49,200,49,
+  200,41,3,200,49,189,199,41,138,74,142,107,142,107,16,124,170,82,199,49,
+  102,33,228,24,4,25,69,33,138,74,171,82,203,82,170,82,105,74,105,74,
+  138,82,203,82,236,90,142,115,142,115,12,99,16,132,207,123,109,107,167,49,
+  134,41,203,90,81,140,48,140,113,148,16,132,17,116,241,115,16,116,16,116,
+  240,115,240,115,17,116,208,107,203,74,4,25,65,8,98,16,130,16,130,16,
+  69,33,236,82,208,107,16,108,16,116,240,107,240,115,240,115,241,115,241,115,
+  240,115,240,107,240,115,240,115,3,240,107,139,240,115,240,115,240,107,240,115,
+  240,107,240,107,208,107,240,107,240,107,208,107,240,107,4,208,107,130,240,107,
+  240,107,3,208,107,133,175,99,207,107,175,99,208,107,207,107,4,208,107,137,
+  175,107,207,107,207,107,176,107,176,107,208,107,175,107,175,107,175,99,5,175,
+  107,137,175,99,175,107,175,99,175,99,143,99,175,107,175,99,143,99,143,107,
+  6,143,99,135,111,99,111,99,143,99,110,99,110,99,78,91,110,99,3,110,
+  91,136,142,99,143,99,142,99,142,99,143,107,143,99,143,99,142,99,8,175,
+  107,129,176,107,3,175,107,130,208,107,207,107,4,175,107,134,235,82,228,24,
+  33,0,65,8,196,24,138,66,3,175,107,129,208,107,11,175,107,136,143,107,
+  143,107,175,107,174,107,143,107,143,107,142,107,167,49,3,228,24,137,130,16,
+  98,16,98,16,33,8,66,8,98,8,65,8,65,8,97,8,3,98,16,136,
+  130,8,195,16,195,24,195,24,163,16,163,16,130,16,196,24,3,228,24,136,
+  195,24,98,16,98,16,65,16,65,8,65,8,97,8,98,8,239,3,139,170,
+  90,203,90,235,90,12,99,77,107,142,115,174,115,207,115,16,124,16,132,49,
+  132,4,81,132,133,113,132,113,132,114,132,114,140,114,132,6,146,132,130,146,
+  140,146,140,3,146,132,133,147,132,146,132,146,132,147,132,146,132,7,179,140,
+  8,211,140,129,179,140,5,179,132,129,211,132,3,211,140,131,211,148,243,148,
+  244,140,3,243,140,140,211,140,212,140,211,140,212,140,211,140,211,140,212,140,
+  211,140,211,140,212,140,212,140,243,140,3,244,140,131,244,148,244,140,244,140,
+  3,244,148,3,20,149,129,244,148,11,20,149,129,21,149,13,20,149,129,21,
+  149,21,20,149,6,244,140,129,212,140,9,244,140,136,20,149,20,141,20,149,
+  20,141,21,141,20,149,20,141,20,149,3,21,149,141,20,149,20,149,21,149,
+  52,149,21,149,20,149,53,149,52,149,20,149,21,149,53,149,21,149,20,149,
+  3,20,141,6,244,140,131,20,141,20,149,20,149,5,20,141,3,21,149,3,
+  20,141,129,20,149,3,20,141,137,21,141,245,140,20,141,20,141,244,140,20,
+  141,244,140,20,141,244,140,4,20,141,5,244,140,129,20,141,3,244,140,129,
+  20,141,11,244,140,129,20,141,3,244,140,134,21,141,245,148,244,140,244,140,
+  20,141,244,140,3,20,141,132,21,141,21,141,21,149,21,141,4,21,149,137,
+  20,141,21,141,20,141,21,149,21,141,20,141,21,141,20,141,20,141,4,244,
+  140,129,20,141,5,244,140,129,20,141,3,244,140,5,20,141,129,244,140,8,
+  20,141,133,21,141,21,149,244,140,21,141,21,141,13,244,140,5,20,141,131,
+  21,141,21,141,20,141,5,21,141,129,21,149,4,21,141,135,20,141,21,141,
+  20,141,20,141,21,141,21,141,20,141,3,21,141,132,20,141,21,141,20,141,
+  20,141,5,21,141,3,20,141,129,21,141,3,245,140,143,244,140,244,140,244,
+  132,244,140,244,140,244,132,244,140,244,140,244,132,244,140,20,141,244,140,20,
+  141,20,141,244,132,4,20,141,132,21,141,21,141,245,140,244,140,3,21,141,
+  135,244,140,20,141,21,141,245,140,20,141,245,140,245,140,4,21,141,3,20,
+  141,130,21,141,20,133,4,244,140,135,21,141,20,141,245,140,245,140,244,132,
+  245,140,244,132,3,245,140,4,21,141,150,21,133,21,141,245,140,245,140,21,
+  141,21,133,245,140,20,141,21,141,245,140,245,140,244,132,244,132,212,132,147,
+  124,115,124,82,116,17,108,208,107,143,99,45,91,204,82,3,171,82,3,171,
+  74,158,170,74,203,74,203,82,202,82,170,74,169,82,202,82,170,82,202,82,
+  10,91,234,90,202,82,73,66,231,57,134,41,102,33,135,33,103,41,167,33,
+  135,33,135,33,135,41,135,33,167,33,135,33,135,41,135,41,167,41,167,41,
+  135,41,3,167,41,131,135,41,135,33,167,41,3,135,41,5,167,41,130,199,
+  41,167,49,5,200,49,181,200,41,106,74,110,107,174,115,16,124,44,99,232,
+  49,135,33,36,25,228,24,69,33,203,82,12,99,45,99,45,99,203,90,12,
+  99,44,99,77,107,142,115,16,140,48,140,77,107,16,132,207,123,142,115,167,
+  49,135,41,170,82,48,140,48,140,81,140,48,132,241,115,241,115,17,116,240,
+  107,240,107,241,115,17,116,17,116,240,115,204,82,37,25,65,8,130,16,162,
+  16,195,24,101,41,236,82,208,107,240,115,240,107,3,240,115,139,240,107,240,
+  107,240,115,240,107,240,107,240,115,240,115,240,107,240,107,240,115,240,115,4,
+  240,107,130,208,107,240,107,12,208,107,130,207,107,175,107,7,208,107,143,207,
+  107,207,107,175,107,208,107,175,107,207,107,175,107,175,107,175,99,175,107,175,
+  99,175,107,175,99,175,99,175,107,3,175,99,132,143,99,175,107,175,99,175,
+  99,3,143,99,129,175,99,3,143,99,131,111,99,143,99,143,99,4,110,99,
+  138,78,99,110,91,110,91,110,99,143,99,142,99,143,99,142,99,110,99,143,
+  99,10,175,107,132,208,107,175,107,175,107,208,107,4,175,107,140,142,107,106,
+  74,98,8,33,8,65,8,69,33,13,91,176,107,207,107,175,107,175,107,207,
+  107,8,175,107,143,143,107,175,107,143,107,175,107,143,107,143,107,207,115,41,
+  66,4,33,195,24,228,32,195,24,66,8,98,16,98,16,4,65,8,141,97,
+  8,98,8,98,8,97,8,97,8,130,16,163,16,163,16,130,16,130,16,163,
+  16,130,16,195,16,3,228,24,131,162,16,98,16,98,16,3,65,8,130,97,
+  8,98,8,187,3,140,170,90,171,90,203,90,12,99,77,107,109,107,174,115,
+  207,115,240,123,16,124,49,124,49,132,4,81,132,4,114,132,3,146,132,3,
+  146,140,9,146,132,130,178,132,179,132,4,179,140,8,211,140,132,179,140,179,
+  140,179,132,179,140,3,179,132,132,179,140,179,140,179,132,211,140,5,243,140,
+  133,212,140,211,140,243,140,211,140,243,140,3,211,140,129,212,140,5,211,140,
+  129,212,140,6,244,140,3,244,148,130,20,149,244,148,10,20,149,133,52,149,
+  20,149,20,149,52,149,21,149,21,20,149,129,244,148,5,20,149,134,244,148,
+  20,149,20,149,244,140,20,149,244,148,15,244,140,130,20,149,20,141,3,20,
+  149,132,21,149,21,141,20,149,20,141,3,20,149,130,21,149,20,149,3,53,
+  149,134,21,149,21,149,53,149,21,149,53,149,52,149,3,21,149,135,20,141,
+  20,141,244,140,244,140,20,141,244,140,244,140,5,20,141,130,21,149,20,141,
+  5,20,149,3,21,149,137,20,149,20,141,21,149,20,141,20,141,21,149,20,
+  149,20,141,244,140,7,20,141,133,244,140,20,141,244,140,20,141,244,140,3,
+  20,141,135,244,140,20,141,244,140,244,140,20,141,244,140,20,141,6,244,140,
+  4,20,141,137,21,141,244,140,244,140,20,149,20,141,20,141,21,141,20,149,
+  20,149,4,21,149,137,53,149,53,149,21,149,21,149,21,141,21,149,21,141,
+  21,149,20,149,3,20,141,129,21,141,3,20,141,9,244,140,6,20,141,141,
+  20,149,21,149,20,141,21,149,20,141,20,141,20,149,20,149,20,141,21,149,
+  21,141,20,149,20,141,7,21,149,4,20,149,3,20,141,131,21,149,21,141,
+  20,141,4,21,149,7,53,149,138,21,149,53,149,53,149,21,149,21,149,53,
+  149,21,149,53,149,53,149,21,149,3,53,149,129,21,149,8,53,149,135,21,
+  149,21,149,53,149,21,141,21,141,53,141,21,141,3,21,149,10,21,141,134,
+  21,149,53,141,21,141,21,149,53,141,21,149,6,53,149,129,21,149,18,53,
+  149,3,53,141,132,53,149,53,141,53,149,21,149,8,53,141,132,21,141,53,
+  141,53,149,53,149,6,53,141,156,53,149,53,141,54,141,53,141,53,141,21,
+  141,21,141,244,132,212,132,179,124,115,124,82,116,17,116,208,107,110,99,13,
+  91,204,82,171,82,203,82,204,82,203,82,235,82,203,82,203,82,235,82,203,
+  82,170,82,170,82,3,202,82,149,11,91,11,99,235,90,137,74,72,66,232,
+  57,167,41,135,33,134,33,134,33,135,33,135,41,135,33,135,41,135,33,167,
+  41,167,41,135,33,167,41,167,41,167,33,4,135,41,130,167,41,135,33,3,
+  135,41,5,167,41,133,168,41,168,41,199,41,200,49,200,41,3,200,49,166,
+  105,66,174,115,142,115,16,124,174,115,232,49,167,41,70,33,4,25,36,33,
+  171,82,142,115,142,115,174,115,77,107,174,123,142,115,174,115,207,123,80,140,
+  80,140,45,107,239,131,207,123,142,115,199,49,134,41,138,82,81,140,16,132,
+  113,148,16,132,240,115,17,116,17,116,240,115,240,107,240,115,3,17,116,139,
+  240,115,236,82,37,33,65,8,130,16,195,24,4,33,198,57,236,90,208,115,
+  17,116,5,240,107,3,240,115,131,240,107,240,115,240,115,4,240,107,132,240,
+  115,240,107,240,107,208,107,4,240,107,3,208,107,132,240,107,240,115,240,107,
+  240,107,7,208,107,142,176,107,208,107,208,107,175,107,208,107,208,107,207,107,
+  208,107,208,107,207,107,176,107,176,107,207,107,207,107,4,175,107,131,175,99,
+  175,107,175,107,4,175,99,130,143,99,175,99,10,143,99,135,110,99,111,99,
+  110,99,110,91,110,99,110,99,110,91,4,110,99,131,143,99,142,107,143,107,
+  10,175,107,148,176,107,208,107,175,107,176,107,175,107,175,107,207,107,207,107,
+  110,107,231,57,65,0,65,8,97,8,199,49,110,99,207,107,175,107,175,107,
+  207,107,207,107,12,175,107,138,143,107,142,107,37,41,4,33,228,32,195,24,
+  97,8,97,16,98,16,98,16,4,65,8,147,98,8,98,8,37,25,232,49,
+  227,24,98,16,65,8,97,8,97,8,65,8,98,8,130,16,195,16,228,24,
+  228,24,195,24,130,16,98,8,97,8,3,65,8,130,97,8,97,8,139,3,
+  141,138,82,170,90,203,90,12,99,77,107,109,107,142,115,207,115,240,123,16,
+  124,49,124,49,132,81,124,4,81,132,5,114,132,129,146,132,3,146,140,9,
+  146,132,129,178,132,5,179,140,7,211,140,130,179,140,179,140,4,179,132,129,
+  178,132,4,179,140,3,211,140,132,243,140,211,140,243,140,211,140,3,244,140,
+  138,211,140,211,140,212,140,211,140,211,140,244,140,212,140,211,140,244,140,211,
+  140,3,244,140,139,244,148,244,140,244,148,244,140,244,148,244,140,244,148,244,
+  148,20,149,20,149,244,140,34,20,149,139,244,140,20,149,244,140,244,148,20,
+  141,20,149,20,141,20,149,244,148,20,149,20,149,16,244,140,130,20,149,20,
+  141,6,20,149,137,21,149,20,149,20,149,21,149,21,149,20,149,53,149,21,
+  149,20,149,5,21,149,135,53,149,21,149,21,149,20,149,20,149,244,140,244,
+  148,5,244,140,134,20,141,20,149,20,149,20,141,20,149,20,141,3,20,149,
+  129,21,149,3,20,149,139,21,149,20,149,21,149,20,141,20,149,21,149,21,
+  149,20,149,20,149,20,141,21,141,5,20,141,134,20,149,20,149,244,140,20,
+  141,20,141,244,140,4,20,141,134,244,140,244,140,20,149,20,141,244,140,20,
+  141,5,244,140,5,20,149,137,21,141,20,141,21,149,20,141,21,149,20,149,
+  20,149,20,141,21,141,5,21,149,4,53,149,136,21,149,20,149,21,149,21,
+  149,20,149,20,149,21,141,21,149,3,20,141,130,244,140,20,141,3,244,140,
+  5,20,141,134,244,140,20,141,20,149,20,149,20,141,20,149,3,21,141,136,
+  21,149,21,149,20,141,20,141,20,149,20,141,20,149,20,149,6,21,149,3,
+  20,149,136,21,149,21,149,20,149,20,149,20,141,20,149,21,149,20,149,3,
+  21,149,46,53,149,132,21,141,53,149,53,149,21,149,17,53,149,129,54,149,
+  5,53,149,3,85,149,131,86,149,53,149,86,149,17,53,149,130,54,149,54,
+  149,4,53,149,130,85,149,54,149,5,53,149,131,54,149,53,149,53,149,3,
+  21,141,146,244,132,180,132,147,124,114,124,50,116,241,107,143,99,78,91,237,
+  90,236,82,203,82,204,82,236,82,236,82,12,83,12,83,235,82,235,82,4,
+  170,82,150,202,82,235,90,235,90,11,91,202,90,138,74,73,66,8,58,167,
+  41,135,33,135,41,135,33,167,41,135,33,167,41,167,41,135,33,135,41,167,
+  41,167,33,167,33,167,41,5,135,41,129,167,33,4,167,41,129,167,33,3,
+  167,41,168,168,41,200,41,168,41,200,49,200,41,200,41,200,49,200,49,73,
+  66,77,107,142,115,16,132,16,132,9,58,168,41,103,33,4,25,36,33,12,
+  99,239,123,174,123,207,131,142,115,239,131,207,131,207,123,239,131,48,140,145,
+  156,12,99,16,132,207,123,142,115,232,57,102,41,73,74,48,140,48,132,81,
+  140,48,132,5,240,115,143,16,116,16,116,17,116,241,115,17,116,240,115,236,
+  82,37,25,97,8,163,24,4,33,101,49,8,66,13,91,208,107,4,240,115,
+  7,240,107,138,240,115,240,107,240,115,240,107,208,107,240,115,208,107,240,107,
+  240,107,208,107,8,240,107,130,208,107,240,107,16,208,107,132,175,107,208,107,
+  207,107,207,107,5,175,107,129,175,99,3,175,107,3,175,99,131,175,107,175,
+  107,175,99,3,143,99,131,175,99,175,107,175,99,3,143,99,141,111,99,110,
+  99,142,99,110,99,78,99,110,91,110,91,142,99,110,91,110,99,143,107,143,
+  107,143,99,8,175,107,3,207,107,146,175,107,208,107,175,107,207,107,240,115,
+  240,115,207,115,240,115,45,99,69,33,33,8,65,8,195,16,106,66,176,107,
+  208,107,207,107,175,107,5,207,107,8,175,107,139,207,107,203,82,69,41,4,
+  33,228,24,98,16,97,8,65,8,98,16,98,16,33,8,3,65,8,147,97,
+  8,97,8,106,50,114,116,175,107,130,24,65,16,65,8,97,8,65,8,97,
+  8,98,8,163,16,195,16,228,24,163,16,130,16,97,8,97,8,3,65,8,
+  130,97,8,97,8,134,3,141,106,82,170,90,203,90,12,99,44,99,109,107,
+  174,115,207,115,239,123,16,124,48,124,49,132,49,124,4,81,132,6,114,132,
+  12,146,132,130,179,140,146,140,6,179,140,3,211,140,131,179,140,211,140,211,
+  140,4,179,132,134,178,132,178,132,179,132,179,132,179,140,179,140,4,211,140,
+  130,243,140,211,140,4,212,140,142,211,140,212,140,211,140,211,140,212,140,211,
+  140,211,140,212,140,243,140,244,140,243,140,243,140,244,140,243,140,6,244,148,
+  131,244,140,20,149,244,148,10,20,149,129,21,149,20,20,149,132,244,148,20,
+  149,20,141,20,141,3,244,140,136,20,141,20,141,244,148,244,140,244,148,20,
+  141,244,140,20,141,13,244,140,133,20,141,244,140,244,140,20,141,20,141,8,
+  20,149,129,20,141,5,20,149,133,21,149,21,149,52,149,21,149,21,149,3,
+  53,149,141,21,149,20,149,20,149,244,140,244,140,244,148,244,140,20,149,244,
+  148,244,140,244,148,20,149,20,149,3,20,141,7,20,149,140,21,149,20,149,
+  20,149,21,149,20,149,21,149,20,149,20,149,21,149,20,141,20,141,21,149,
+  3,20,141,139,20,149,21,149,20,149,21,149,20,141,20,149,20,141,244,140,
+  20,141,244,140,21,149,3,20,149,5,244,140,132,20,141,244,140,20,141,20,
+  141,4,20,149,129,20,141,3,20,149,131,21,141,20,141,21,141,5,21,149,
+  5,53,149,133,21,149,53,149,21,149,20,149,21,149,3,20,149,3,20,141,
+  9,244,140,131,20,141,20,149,20,141,3,20,149,133,20,141,21,141,20,149,
+  20,149,21,141,6,20,149,5,21,149,131,20,149,21,149,20,149,3,21,149,
+  134,20,149,20,149,21,149,20,141,21,149,20,149,4,21,149,8,53,149,129,
+  85,149,9,53,149,132,53,157,85,149,53,149,85,157,6,53,149,130,85,149,
+  85,149,17,53,149,130,21,149,21,149,18,53,149,133,85,149,53,149,85,149,
+  85,149,53,149,4,85,149,129,85,157,4,85,149,137,53,149,85,149,53,149,
+  85,149,53,149,85,149,53,149,85,149,85,149,6,53,149,130,54,149,53,149,
+  4,85,149,129,53,149,4,85,149,3,53,149,144,86,149,54,149,53,149,53,
+  149,21,149,245,140,245,132,212,132,179,132,114,124,82,116,241,107,208,107,111,
+  91,13,91,237,90,4,236,82,3,12,83,129,235,82,3,170,74,132,202,82,
+  170,74,169,74,169,82,4,170,82,131,105,74,8,58,199,41,3,135,33,131,
+  135,41,135,33,167,41,3,135,41,136,167,41,167,33,167,33,135,41,168,33,
+  135,33,135,41,135,41,10,167,41,131,168,41,200,49,168,41,4,200,49,157,
+  73,66,77,107,142,107,16,132,239,123,41,58,200,49,135,41,4,25,37,33,
+  170,82,175,115,207,115,240,131,142,115,16,140,16,132,239,131,15,132,48,140,
+  178,156,12,99,16,132,207,123,174,115,41,66,69,33,8,66,48,132,3,16,
+  132,5,240,115,143,16,116,17,116,16,108,16,116,16,116,17,116,240,115,237,
+  82,37,25,98,16,163,24,69,49,199,57,40,66,45,91,4,240,115,5,240,
+  107,130,241,115,240,115,4,240,107,129,240,115,16,240,107,7,208,107,129,240,
+  107,10,208,107,136,176,107,207,107,208,107,175,107,175,107,175,99,175,107,175,
+  107,3,175,99,137,175,107,175,99,143,99,175,107,143,99,175,99,175,107,143,
+  99,175,99,7,143,99,134,142,99,110,99,110,99,110,91,110,99,110,91,3,
+  142,99,129,143,107,7,175,107,130,207,107,175,107,3,207,107,145,208,107,208,
+  107,240,115,16,116,236,90,101,49,228,32,4,33,101,49,69,41,130,16,65,
+  8,65,8,37,25,13,83,208,115,207,107,3,208,107,130,207,107,207,107,10,
+  175,107,137,41,66,36,33,4,33,130,16,98,16,66,8,65,8,37,33,130,
+  16,3,65,8,137,98,8,98,16,130,16,163,16,171,74,174,115,163,32,98,
+  16,97,16,4,65,8,135,98,16,163,16,195,24,163,16,130,16,97,16,97,
+  8,4,65,8,1,97,8,229,3,142,105,82,170,90,171,90,12,99,44,107,
+  109,107,142,115,175,115,239,123,240,123,48,124,49,124,49,132,81,124,3,81,
+  132,130,114,132,82,132,4,114,132,133,146,132,114,132,146,132,114,132,114,132,
+  6,146,132,131,146,140,178,140,178,140,5,179,140,137,211,140,211,140,179,140,
+  211,140,179,140,179,132,179,140,179,132,179,140,7,179,132,129,179,140,5,211,
+  140,133,243,140,212,140,211,140,211,140,243,140,4,211,140,134,212,140,211,140,
+  243,140,244,140,244,140,243,140,5,244,140,3,244,148,134,20,149,20,141,20,
+  149,20,141,20,149,244,148,10,20,149,129,52,149,20,20,149,131,244,148,20,
+  149,244,148,5,244,140,129,20,141,4,244,140,130,20,141,20,141,13,244,140,
+  134,20,141,20,141,244,140,20,149,20,149,20,141,4,20,149,7,20,141,129,
+  20,149,3,21,149,4,53,149,129,21,149,4,20,149,132,244,148,244,140,244,
+  148,244,148,5,20,149,130,20,141,20,141,5,20,149,131,21,149,21,149,20,
+  141,3,20,149,131,21,149,20,149,21,149,3,20,149,133,20,141,21,149,20,
+  149,20,141,21,149,5,20,149,129,20,141,8,20,149,135,244,140,20,141,20,
+  141,244,140,244,140,20,141,244,140,3,20,141,5,20,149,130,21,149,20,149,
+  7,21,149,132,53,149,53,149,21,149,21,149,4,53,149,5,21,149,133,20,
+  141,20,149,20,149,20,141,20,141,3,20,149,129,244,148,4,244,140,131,20,
+  149,20,141,20,141,6,20,149,132,21,141,21,149,20,149,20,141,3,20,149,
+  137,20,141,21,149,20,149,20,149,21,149,20,149,21,149,20,149,53,149,6,
+  21,149,130,20,149,20,149,4,21,149,7,53,149,132,53,157,53,149,85,149,
+  85,149,9,53,149,134,53,157,53,149,85,149,53,157,85,149,85,157,3,85,
+  149,130,53,149,53,157,18,53,149,130,21,149,21,149,20,53,149,130,85,149,
+  53,149,3,85,149,129,53,149,5,85,157,130,85,149,85,149,3,53,149,131,
+  85,149,85,149,53,149,4,85,149,3,53,149,4,85,149,139,85,157,85,149,
+  85,157,53,149,85,149,85,149,53,149,86,149,53,149,53,149,85,149,4,53,
+  149,179,53,141,21,141,244,140,212,132,179,132,114,124,82,116,17,108,208,107,
+  111,99,46,91,237,82,236,82,13,83,13,91,13,83,12,83,13,91,236,82,
+  236,82,170,74,137,74,170,74,202,82,202,82,170,74,105,74,39,66,7,58,
+  40,58,72,66,73,66,40,58,232,57,135,41,135,33,135,33,103,33,135,41,
+  135,33,135,41,135,33,135,33,135,41,135,33,135,33,135,41,135,33,135,33,
+  135,41,134,41,4,135,41,133,135,33,135,33,167,41,167,41,135,41,4,167,
+  41,192,167,49,199,49,200,49,200,49,8,58,12,99,142,107,16,124,73,66,
+  200,49,167,41,135,41,4,25,37,33,102,41,167,49,8,58,40,66,171,82,
+  45,107,77,107,12,91,45,99,77,107,174,115,170,82,110,107,236,98,12,91,
+  8,58,167,41,134,41,73,66,73,66,41,66,171,82,17,124,16,116,240,115,
+  240,107,16,116,16,116,17,116,17,116,17,108,240,115,241,115,17,116,240,115,
+  236,82,4,25,130,16,227,32,133,49,231,65,40,74,45,91,240,115,240,115,
+  240,107,240,115,241,115,240,107,240,115,4,240,107,130,240,115,240,115,6,240,
+  107,129,208,107,4,240,107,129,240,115,4,240,107,131,240,115,240,107,240,107,
+  7,208,107,129,240,107,3,208,107,133,175,107,208,107,208,107,207,107,207,107,
+  3,208,107,130,207,107,208,107,6,175,107,148,175,99,175,107,175,99,175,99,
+  175,107,175,107,175,99,143,99,175,107,175,99,175,99,174,99,143,107,143,99,
+  143,99,175,99,143,99,143,107,143,99,143,99,3,110,91,132,142,99,110,99,
+  143,99,143,107,5,175,107,151,207,107,175,107,207,107,175,107,207,107,175,107,
+  207,107,208,107,16,116,142,107,69,41,0,8,0,8,33,8,0,8,0,0,
+  33,8,65,8,65,8,98,16,97,8,200,49,142,99,3,208,107,130,207,107,
+  207,115,3,207,107,156,175,107,207,107,175,107,207,107,175,107,175,107,208,107,
+  45,99,167,49,4,33,227,24,130,16,98,8,97,16,65,8,196,24,195,24,
+  97,16,33,8,65,8,98,8,98,16,130,16,162,16,195,24,36,41,98,24,
+  65,16,5,65,8,133,98,8,131,16,163,16,163,16,98,16,5,65,8,130,
+  97,8,65,8,122,3,148,138,82,170,82,171,90,236,98,45,107,77,107,142,
+  107,174,115,239,123,16,124,16,124,49,124,49,124,49,132,49,132,81,132,81,
+  132,81,124,81,132,81,132,7,114,132,130,146,132,114,132,6,146,132,6,179,
+  140,3,211,140,130,179,140,211,140,4,179,140,5,179,132,131,179,140,179,132,
+  179,132,7,211,140,133,212,140,212,140,243,140,243,140,211,140,3,212,140,136,
+  211,140,243,140,243,140,212,140,244,140,244,140,212,140,244,148,8,244,140,135,
+  244,148,244,148,20,149,244,148,20,149,20,149,244,148,27,20,149,130,20,141,
+  20,149,10,244,140,129,20,141,14,244,140,129,244,148,3,244,140,9,20,149,
+  3,20,141,3,20,149,138,21,149,20,149,53,149,21,149,53,149,21,149,53,
+  149,53,149,52,149,21,149,3,20,149,133,244,148,20,149,244,148,20,149,244,
+  140,14,20,149,129,21,149,6,20,149,130,21,149,21,149,9,20,149,131,21,
+  149,20,149,21,149,3,20,149,133,20,141,20,141,20,149,20,141,244,140,3,
+  20,141,129,244,140,3,20,141,130,245,140,20,141,4,20,149,129,21,149,3,
+  20,149,5,21,149,6,53,149,136,21,149,53,149,53,149,21,149,21,149,20,
+  149,20,149,21,149,5,20,141,4,244,140,4,20,141,137,244,148,244,148,20,
+  149,20,149,21,149,20,149,20,149,20,141,20,141,4,21,149,134,20,149,21,
+  149,20,149,21,149,21,149,20,149,13,21,149,133,20,149,21,149,21,149,53,
+  149,21,149,7,53,149,130,53,157,53,157,3,53,149,129,85,149,9,53,149,
+  133,85,149,85,157,53,157,85,157,53,149,4,85,149,130,85,157,85,149,35,
+  53,149,136,53,157,53,149,85,149,85,149,53,149,85,149,53,149,85,149,5,
+  85,157,135,86,157,85,157,53,157,53,157,85,149,53,149,53,157,4,85,149,
+  136,53,157,53,149,85,149,85,149,53,157,85,149,85,157,85,157,3,85,149,
+  3,53,149,133,85,157,85,157,53,149,53,149,85,149,6,53,149,142,21,141,
+  21,141,244,140,179,132,115,124,50,116,241,107,176,99,111,99,46,91,237,74,
+  237,82,13,91,45,91,3,13,91,146,12,83,236,82,170,74,138,74,105,66,
+  170,74,203,82,235,82,202,82,169,74,105,74,72,66,40,66,40,66,40,58,
+  199,57,167,49,134,33,8,102,33,129,134,33,13,102,33,131,102,41,102,33,
+  135,33,3,135,41,164,134,41,135,41,135,41,135,49,199,57,109,107,142,107,
+  16,132,105,74,167,49,134,41,102,41,4,25,69,33,101,41,134,41,199,49,
+  199,49,232,57,231,57,199,57,231,57,8,58,199,57,199,49,8,58,232,57,
+  231,57,199,49,232,49,167,49,167,41,167,49,101,41,40,66,175,107,4,240,
+  115,131,240,107,16,108,240,115,3,17,116,146,240,115,241,115,17,116,208,115,
+  204,82,4,25,162,16,4,33,134,57,166,57,40,66,78,99,241,115,240,115,
+  240,115,240,107,240,115,240,115,4,240,107,131,240,115,241,115,240,115,14,240,
+  107,129,240,115,3,240,107,3,208,107,131,240,107,208,107,240,107,13,208,107,
+  132,207,107,208,107,208,107,207,107,4,175,107,141,175,99,175,99,175,107,175,
+  107,175,99,175,99,175,107,175,99,143,99,175,99,175,99,143,107,143,107,6,
+  143,99,135,142,99,143,99,111,99,110,91,110,99,142,99,143,99,4,175,107,
+  132,207,107,175,107,207,107,175,107,3,207,107,134,208,107,208,115,240,115,73,
+  74,65,16,32,8,4,33,8,171,33,0,1,0,33,8,65,8,65,8,98,
+  16,163,16,138,66,208,107,208,115,208,107,207,107,207,107,208,115,175,107,207,
+  107,207,107,175,107,207,107,207,107,176,107,207,107,207,115,138,82,102,41,4,
+  33,195,24,130,16,97,8,65,8,65,8,98,8,228,24,98,16,33,8,98,
+  8,98,16,98,16,130,16,130,16,163,24,163,24,65,16,5,65,8,134,33,
+  8,66,8,130,16,163,16,130,16,98,8,7,65,8,141,3,145,138,82,170,
+  90,203,90,236,98,44,99,109,107,142,107,174,115,207,115,240,123,16,124,48,
+  132,49,124,49,132,49,132,81,132,81,132,3,81,124,129,81,132,8,114,132,
+  3,146,132,131,146,140,146,132,178,140,8,179,140,129,211,140,8,179,140,130,
+  179,132,179,132,3,179,140,130,211,132,179,132,8,211,140,136,243,140,211,140,
+  212,140,211,140,212,140,211,140,211,140,243,140,3,244,140,129,243,140,9,244,
+  140,134,244,148,244,140,244,140,20,149,20,141,20,141,30,20,149,137,244,140,
+  244,140,244,148,244,148,244,140,244,140,244,148,244,140,20,149,3,244,140,130,
+  20,141,20,141,16,244,140,130,244,148,244,148,8,20,149,130,20,141,20,141,
+  4,20,149,131,21,149,21,149,20,149,5,53,149,134,21,149,20,149,20,149,
+  244,148,20,149,244,148,27,20,149,136,21,149,20,149,20,149,21,149,21,149,
+  20,149,20,149,21,149,4,20,149,134,21,149,20,149,20,149,21,149,20,149,
+  21,149,10,20,141,3,21,149,133,20,149,20,149,21,149,21,149,21,141,4,
+  21,149,130,53,149,21,149,4,53,149,141,21,149,53,149,53,149,21,149,21,
+  149,20,149,20,149,244,148,20,141,20,149,244,148,244,148,20,149,6,244,140,
+  131,244,148,20,141,20,141,4,20,149,135,20,141,21,149,20,149,20,149,21,
+  149,21,149,20,149,9,21,149,129,20,149,7,21,149,134,20,149,20,149,21,
+  149,21,149,53,149,21,149,9,53,149,129,85,149,3,53,157,132,53,149,85,
+  149,53,149,53,157,4,53,149,131,53,157,53,149,53,149,3,85,149,130,85,
+  157,53,157,3,85,157,132,53,157,53,149,85,149,85,149,36,53,149,131,85,
+  149,53,157,85,157,5,85,149,132,53,149,53,157,85,157,85,149,5,85,157,
+  132,53,157,53,157,85,149,85,149,4,85,157,143,53,149,85,157,53,157,85,
+  149,85,149,53,149,85,157,85,157,53,157,85,149,85,157,53,149,53,157,53,
+  149,85,157,3,85,149,6,53,149,141,21,141,244,140,212,132,147,124,82,116,
+  17,108,176,99,110,91,13,83,237,74,205,74,237,82,45,83,3,45,91,147,
+  12,91,236,90,171,82,138,74,105,66,105,66,170,74,203,82,235,90,234,82,
+  202,82,170,82,169,82,170,82,170,82,73,74,40,58,134,49,70,33,4,69,
+  33,137,102,33,70,33,102,33,70,33,69,33,102,33,70,33,70,33,69,33,
+  6,102,33,131,70,33,102,41,102,33,3,102,41,154,102,33,102,41,134,41,
+  134,33,102,41,102,41,167,49,142,107,142,115,16,124,236,90,199,57,102,41,
+  69,41,4,25,69,33,199,57,73,66,170,82,203,90,12,99,235,90,44,99,
+  12,99,12,99,236,98,3,203,90,129,138,82,3,73,66,132,73,74,106,74,
+  170,82,109,107,5,240,115,147,16,116,17,116,240,115,16,116,240,115,240,115,
+  241,115,17,116,240,115,17,116,208,115,171,74,228,24,195,24,4,41,101,49,
+  101,49,40,66,110,99,3,240,115,6,240,107,131,240,115,240,107,240,115,6,
+  240,107,129,208,107,3,240,107,133,241,115,240,107,240,115,240,107,240,115,5,
+  240,107,3,208,107,129,240,107,5,208,107,133,175,107,175,107,208,107,208,107,
+  207,107,4,208,107,129,175,107,3,207,107,130,175,107,207,107,10,175,107,129,
+  175,99,4,175,107,132,143,99,175,99,143,107,175,107,3,143,99,150,142,99,
+  110,99,110,99,111,99,143,107,143,107,175,107,176,107,207,107,207,107,208,107,
+  207,107,175,107,207,107,175,107,207,107,16,116,12,91,195,32,0,8,33,8,
+  65,8,3,33,8,133,1,0,1,0,33,0,33,8,33,8,3,65,8,131,
+  37,25,13,83,208,115,5,208,107,156,208,115,240,115,208,115,240,115,208,115,
+  240,115,142,107,204,90,8,66,69,33,4,33,195,24,130,16,65,8,97,8,
+  65,8,65,8,227,24,130,16,65,8,65,8,97,8,98,8,98,16,130,16,
+  163,16,4,33,98,16,5,65,8,133,32,8,65,8,98,8,98,8,97,8,
+  8,65,8,186,3,143,138,82,170,90,203,90,12,99,44,99,77,107,142,115,
+  174,115,207,115,239,123,16,124,48,124,49,132,49,132,49,124,5,81,124,3,
+  81,132,130,114,132,113,132,3,114,132,4,146,132,134,147,132,146,140,146,140,
+  179,140,178,140,178,140,4,179,140,129,211,140,3,179,140,148,211,140,179,140,
+  179,132,179,132,211,140,179,132,179,132,211,132,179,132,211,140,179,132,179,140,
+  211,132,211,132,211,140,211,140,212,140,211,140,211,140,212,140,3,211,140,137,
+  244,140,212,140,212,140,244,140,212,140,244,140,211,140,244,140,243,140,3,244,
+  140,133,244,148,244,140,244,148,244,140,244,140,4,211,140,129,243,140,3,244,
+  148,131,20,149,20,149,244,148,26,20,149,135,244,148,20,149,20,141,244,140,
+  244,148,244,140,20,141,5,244,140,129,20,149,12,244,140,129,20,149,3,244,
+  140,3,244,148,129,244,140,8,20,149,129,20,141,6,20,149,131,21,149,52,
+  149,52,149,4,53,149,7,20,149,129,20,141,14,20,149,129,21,149,10,20,
+  149,142,21,149,20,149,21,149,20,149,21,149,21,149,20,149,21,149,21,149,
+  20,149,20,149,21,149,20,149,21,149,4,20,149,130,20,141,20,149,4,20,
+  141,137,21,149,20,141,20,149,21,149,20,149,21,149,20,149,21,149,20,149,
+  3,21,149,129,20,149,3,21,149,130,53,149,21,149,6,53,149,132,20,149,
+  20,149,21,149,20,141,3,20,149,131,20,141,20,141,244,148,10,244,140,3,
+  20,149,131,21,149,20,149,21,141,3,21,149,130,20,149,21,141,4,21,149,
+  129,20,149,10,21,149,131,53,149,21,149,53,149,4,21,149,10,53,149,135,
+  53,157,53,157,53,149,53,157,53,157,53,149,85,149,9,53,149,3,85,149,
+  5,85,157,130,53,149,85,149,7,53,149,129,53,157,18,53,149,129,53,157,
+  9,53,149,131,85,149,85,149,53,149,3,53,157,133,85,149,85,149,85,157,
+  85,157,53,157,9,85,157,138,53,149,85,157,85,149,85,149,85,157,85,157,
+  53,157,85,157,53,157,53,149,3,85,149,130,53,157,53,149,3,85,149,136,
+  53,149,53,149,53,157,53,149,85,149,53,157,53,149,85,149,4,53,149,164,
+  21,141,244,140,212,132,147,124,82,116,17,108,176,99,78,91,237,82,172,74,
+  172,66,205,74,13,83,46,91,77,91,77,91,13,91,12,91,203,82,138,74,
+  106,66,73,66,105,66,170,74,203,82,235,90,235,82,235,90,235,90,11,91,
+  11,91,235,90,170,82,8,58,134,41,37,33,15,69,33,129,70,33,4,69,
+  33,3,70,33,131,102,33,102,33,102,41,3,102,33,144,102,41,134,41,109,
+  107,109,107,16,124,77,99,232,57,69,33,69,33,4,25,69,41,232,57,137,
+  82,235,90,77,107,109,115,3,77,107,183,109,107,77,107,77,99,44,99,44,
+  99,236,98,235,90,236,98,12,99,12,99,44,99,44,107,109,107,208,115,240,
+  115,240,107,240,115,240,115,16,116,240,115,17,116,240,115,241,115,240,115,16,
+  116,240,115,17,116,240,115,17,116,208,107,171,74,228,16,195,24,4,41,36,
+  41,36,41,41,66,143,107,16,116,240,115,240,107,240,107,240,115,240,107,240,
+  115,240,107,240,107,240,115,240,115,240,107,208,107,240,107,240,107,208,107,240,
+  115,3,240,107,136,208,107,240,107,240,115,240,107,240,115,240,115,240,107,240,
+  115,4,240,107,9,208,107,129,207,107,4,208,107,137,207,107,208,107,207,107,
+  208,107,207,107,207,107,175,107,175,107,207,107,3,175,107,129,207,107,11,175,
+  107,143,175,99,143,99,175,107,143,107,143,99,143,99,175,107,143,99,143,99,
+  142,99,110,91,142,99,143,99,175,107,208,107,5,207,107,142,175,107,240,115,
+  175,115,166,49,33,8,33,8,33,0,33,8,33,8,33,0,33,8,33,0,
+  1,0,33,0,3,65,8,167,65,0,65,8,33,8,65,0,199,49,143,99,
+  240,115,240,115,16,116,207,115,175,107,110,99,45,99,236,90,171,82,138,74,
+  171,82,200,57,41,66,167,49,37,33,227,24,163,16,98,16,98,16,97,8,
+  65,8,65,8,130,16,195,24,97,16,33,8,98,16,97,16,97,8,130,16,
+  130,16,163,24,97,8,4,65,8,130,33,8,32,8,12,65,8,126,3,152,
+  138,82,170,90,203,98,236,98,44,99,77,107,110,107,174,115,207,115,239,123,
+  16,124,16,124,49,124,49,124,49,132,49,124,81,132,81,124,81,124,81,132,
+  81,124,81,124,81,132,81,124,5,114,132,3,146,132,132,147,132,147,140,178,
+  140,178,140,3,179,140,129,211,140,3,179,140,135,179,132,179,140,179,140,179,
+  132,179,140,179,132,179,140,3,179,132,132,179,140,179,132,211,132,179,132,3,
+  211,132,8,211,140,133,244,140,211,140,212,140,211,140,211,140,5,244,140,137,
+  212,140,244,140,243,140,244,148,244,140,244,140,243,140,211,140,211,132,4,211,
+  140,134,244,140,244,140,20,141,20,149,244,140,244,148,28,20,149,129,244,140,
+  3,244,148,130,244,140,20,141,16,244,140,3,20,149,130,244,140,20,141,4,
+  244,140,130,20,149,244,140,15,20,149,134,53,149,21,149,53,149,53,149,21,
+  149,21,149,3,20,149,131,20,141,20,149,244,148,15,20,149,130,21,149,21,
+  149,10,20,149,137,21,149,21,149,20,149,20,149,21,149,20,149,20,149,21,
+  149,20,149,3,21,149,135,20,149,20,149,21,149,20,149,20,149,21,149,20,
+  149,3,20,141,137,20,149,20,149,21,149,20,141,21,149,20,149,20,149,21,
+  149,20,149,9,21,149,6,53,149,3,21,149,130,20,149,21,141,3,20,149,
+  142,20,141,244,140,20,149,244,148,244,140,244,140,20,141,244,140,20,141,244,
+  148,244,148,20,149,244,140,244,140,3,20,149,133,21,149,20,149,20,141,21,
+  149,20,149,4,21,149,129,20,149,5,21,149,137,20,149,21,149,20,149,21,
+  149,21,149,53,149,53,149,21,149,53,149,6,21,149,130,53,149,21,149,5,
+  53,149,136,53,157,53,149,53,149,53,157,53,157,53,149,53,157,53,157,10,
+  53,149,129,85,157,3,53,157,3,85,157,131,53,149,53,149,53,157,23,53,
+  149,129,53,157,13,53,149,136,85,149,85,149,53,149,85,157,53,157,85,149,
+  53,149,53,157,9,85,157,3,53,157,135,85,157,85,157,53,157,85,157,85,
+  157,53,149,53,157,11,53,149,132,85,149,53,149,85,149,53,149,4,85,149,
+  3,53,149,154,21,141,244,140,212,132,179,132,114,116,17,108,176,99,78,83,
+  237,74,140,58,140,58,204,66,237,74,45,83,78,91,78,99,78,99,77,99,
+  236,90,171,82,138,74,105,74,105,66,105,66,170,74,235,82,3,235,90,129,
+  11,99,3,44,99,131,138,74,231,57,102,41,6,37,33,130,69,25,37,25,
+  3,37,33,134,69,33,37,33,37,33,69,33,37,33,70,33,14,69,33,142,
+  142,107,142,115,207,123,109,107,232,57,37,33,37,33,4,25,101,41,231,57,
+  138,82,12,99,77,107,109,115,5,77,107,133,44,99,77,107,45,107,44,107,
+  45,99,5,77,107,129,109,107,10,240,115,130,17,116,240,115,3,16,116,134,
+  240,115,17,116,208,107,106,66,195,16,195,24,3,228,32,132,73,66,175,107,
+  240,115,240,115,3,240,107,130,240,115,240,115,5,240,107,130,240,115,208,107,
+  5,240,107,135,240,115,240,115,240,107,240,115,240,107,240,107,16,116,5,240,
+  107,8,208,107,130,207,107,207,107,6,208,107,140,207,107,208,107,175,107,207,
+  107,175,107,175,107,207,107,207,107,175,107,207,107,175,107,175,99,9,175,107,
+  154,175,99,175,99,175,107,175,107,143,107,175,107,143,107,143,107,175,107,143,
+  99,143,99,110,99,110,99,142,99,175,99,175,107,207,107,207,107,208,115,208,
+  107,240,107,16,124,171,82,130,16,1,8,33,8,3,65,8,132,33,8,33,
+  0,33,8,33,8,8,65,8,149,32,0,32,0,8,50,208,115,203,82,231,
+  57,36,33,195,24,163,24,163,16,163,16,131,16,135,41,70,41,135,41,167,
+  49,98,16,4,33,195,16,162,16,98,16,5,65,8,138,4,33,130,16,65,
+  8,98,8,97,8,97,8,98,16,130,16,130,16,97,8,5,65,8,131,32,
+  8,33,8,65,8,3,130,16,7,65,8,146,3,154,138,82,170,90,203,90,
+  236,98,44,99,77,107,109,107,142,115,207,115,239,115,240,123,16,124,16,124,
+  48,124,49,132,49,124,81,132,49,124,49,124,81,124,81,124,49,124,81,124,
+  81,124,81,132,81,132,3,114,132,5,146,132,12,179,140,132,179,132,179,132,
+  211,132,179,132,4,179,140,134,179,132,179,132,211,132,211,140,211,132,211,132,
+  4,211,140,134,212,140,211,140,212,140,211,140,243,140,211,140,3,244,140,131,
+  243,140,244,140,243,140,5,244,140,131,243,140,244,140,243,140,3,211,140,137,
+  211,132,211,140,211,140,211,132,244,140,244,140,20,149,244,148,244,148,3,20,
+  149,129,244,148,23,20,149,135,20,141,244,140,20,149,244,148,244,140,20,141,
+  20,149,7,244,140,129,20,141,9,244,140,137,20,141,244,148,20,149,20,149,
+  244,140,244,140,20,141,20,141,244,140,16,20,149,133,21,149,21,149,53,149,
+  21,149,53,149,7,20,149,129,244,140,6,20,149,129,21,149,18,20,149,130,
+  21,149,21,149,5,20,149,132,21,149,21,149,20,149,53,149,4,21,149,134,
+  20,149,21,149,20,149,20,149,21,149,20,141,3,21,149,129,20,141,9,21,
+  149,3,20,149,4,21,149,136,52,149,20,149,21,149,21,149,53,149,21,149,
+  21,149,53,149,3,21,149,129,20,141,3,20,149,133,244,140,244,140,20,141,
+  244,140,20,141,3,244,140,133,20,149,244,148,244,140,20,149,244,148,3,20,
+  149,129,20,141,3,20,149,5,21,149,129,20,149,3,21,149,132,53,149,21,
+  149,21,149,53,149,3,21,149,131,53,149,21,149,21,149,3,53,149,129,21,
+  149,18,53,149,130,53,157,53,157,8,53,149,138,53,157,53,149,85,149,53,
+  149,53,157,85,157,53,149,53,157,53,157,85,149,14,53,149,129,53,157,9,
+  53,149,130,53,157,53,157,9,53,149,130,53,157,53,157,4,85,149,135,85,
+  157,85,157,53,149,53,157,85,157,85,157,85,149,6,85,157,133,53,157,85,
+  157,53,157,85,157,53,157,3,85,157,130,85,149,85,149,5,53,157,4,53,
+  149,134,85,149,53,149,85,149,53,157,53,157,85,157,3,85,149,131,53,149,
+  53,149,85,149,3,53,149,157,244,140,244,132,179,132,114,124,17,108,176,99,
+  78,83,205,66,107,58,107,50,140,58,204,74,13,83,78,91,110,99,142,107,
+  142,99,77,99,236,90,203,82,138,74,106,74,105,66,105,66,170,74,203,82,
+  11,91,11,91,43,91,3,76,99,134,235,90,105,66,166,49,69,33,4,25,
+  37,25,3,4,25,138,37,25,37,25,4,25,4,25,4,33,37,25,37,33,
+  4,33,37,33,4,25,3,37,25,131,37,33,37,33,5,25,4,37,33,129,
+  4,25,4,37,33,142,77,107,109,107,207,123,174,115,41,66,228,24,5,25,
+  4,25,101,41,8,66,170,82,44,99,141,115,142,115,6,77,107,138,44,107,
+  77,107,77,107,45,107,109,107,109,107,77,107,109,115,109,115,142,115,9,240,
+  115,131,17,116,240,115,241,115,3,240,115,144,16,116,241,115,241,115,175,107,
+  41,58,162,16,163,24,195,24,163,24,195,24,138,66,208,107,240,115,240,107,
+  240,115,240,107,3,240,115,12,240,107,140,240,115,240,107,240,107,17,116,240,
+  107,240,115,240,107,240,107,240,115,240,115,240,107,240,107,3,208,107,134,240,
+  107,208,107,240,107,208,107,208,107,207,107,8,208,107,135,207,107,175,107,207,
+  107,207,107,175,107,207,107,207,107,3,175,107,4,207,107,130,175,107,207,107,
+  9,175,107,132,175,99,175,99,175,107,175,107,3,143,99,139,110,99,143,99,
+  175,107,175,107,207,107,208,107,240,107,175,107,102,49,32,8,33,8,17,65,
+  8,136,33,0,163,16,228,24,196,24,163,24,195,24,228,24,36,33,3,4,
+  33,138,102,33,37,33,131,8,37,25,98,8,65,8,98,16,163,16,130,16,
+  97,8,5,65,8,134,228,24,134,41,65,8,65,8,98,8,98,8,3,98,
+  16,129,97,16,4,65,8,135,33,8,33,0,33,8,65,8,97,8,98,8,
+  97,8,7,65,8,132,3,143,170,82,171,90,203,90,236,98,44,107,45,107,
+  110,107,142,115,175,115,207,115,239,123,240,123,16,124,49,124,48,124,5,49,
+  124,4,81,124,130,82,132,82,132,3,114,132,134,146,132,146,132,147,132,146,
+  140,179,140,146,132,12,179,140,129,179,132,6,179,140,134,179,132,179,132,211,
+  132,211,140,211,132,211,132,5,211,140,129,212,140,3,211,140,139,212,140,211,
+  140,244,140,243,140,243,140,211,140,211,140,243,140,243,140,244,140,243,140,3,
+  244,140,3,211,140,130,179,132,179,140,3,211,140,138,244,140,244,140,244,148,
+  244,148,20,149,20,149,244,148,20,149,244,148,244,148,11,20,149,129,20,141,
+  14,20,149,139,20,141,20,149,244,140,20,141,20,141,244,140,20,141,20,141,
+  244,140,244,140,20,141,8,244,140,138,20,149,20,149,244,148,20,149,244,140,
+  244,148,244,148,244,140,244,140,244,148,17,20,149,133,21,149,20,149,53,149,
+  21,149,21,149,27,20,149,137,21,149,20,149,21,149,20,149,20,149,21,149,
+  21,149,20,149,21,149,3,20,149,137,21,149,20,149,21,149,21,149,53,149,
+  53,149,20,149,20,149,52,149,3,21,149,3,20,149,133,20,141,21,149,20,
+  149,21,149,20,149,6,21,149,4,20,149,134,21,149,20,149,21,149,21,149,
+  20,149,20,149,5,21,149,135,20,149,21,149,20,149,21,149,20,149,20,149,
+  244,148,3,20,149,4,244,140,133,20,141,20,149,244,140,20,149,20,149,3,
+  244,148,131,21,149,20,149,20,149,8,21,149,134,20,149,20,149,21,149,21,
+  149,53,149,53,149,3,21,149,131,53,149,53,157,21,149,5,53,149,132,21,
+  149,21,149,53,149,53,157,3,53,149,3,53,157,131,53,149,53,157,53,157,
+  5,53,149,138,53,157,53,149,53,149,53,157,53,149,53,149,53,157,53,149,
+  53,149,53,157,4,53,149,134,85,149,53,149,53,149,85,157,53,157,85,149,
+  26,53,149,129,53,157,10,53,149,140,53,157,53,149,53,157,53,157,53,149,
+  53,149,85,157,53,149,85,157,53,157,85,157,53,157,12,85,157,136,53,157,
+  85,157,53,157,53,149,53,149,85,149,53,149,53,157,5,53,149,139,53,157,
+  53,157,85,157,85,157,53,149,85,157,53,157,85,157,85,157,85,149,85,157,
+  3,53,149,166,21,149,20,141,212,140,179,132,114,124,17,108,176,99,79,83,
+  205,66,107,50,107,50,140,58,204,66,13,75,78,91,110,99,175,107,175,107,
+  142,107,77,99,12,91,203,82,138,74,105,74,105,66,105,66,170,74,235,82,
+  11,91,11,91,44,99,76,99,76,99,235,90,170,82,231,57,101,41,4,25,
+  5,228,24,129,228,16,9,228,24,129,228,16,10,228,24,145,4,25,228,24,
+  196,24,44,99,110,107,207,115,174,115,40,66,195,16,228,16,4,25,101,41,
+  8,66,203,90,77,107,109,115,109,115,3,77,107,138,109,107,109,107,77,107,
+  109,115,77,107,77,107,109,107,109,115,109,107,77,107,3,142,115,4,240,115,
+  135,241,115,240,115,240,115,241,115,240,115,240,115,17,116,3,240,115,135,16,
+  116,240,115,240,107,240,115,241,115,143,107,9,50,3,130,16,135,98,16,227,
+  24,204,74,240,107,240,115,240,107,240,107,5,240,115,16,240,107,131,240,115,
+  240,107,240,115,3,240,107,129,208,107,3,240,107,6,208,107,129,207,107,8,
+  208,107,4,207,107,131,208,107,176,107,175,107,5,207,107,4,175,107,130,207,
+  107,207,107,3,175,107,129,143,107,3,175,99,3,175,107,139,143,107,110,99,
+  110,99,142,99,175,107,175,107,208,107,240,115,77,99,130,24,32,8,17,65,
+  8,148,66,8,65,8,195,16,196,24,130,16,163,16,163,24,163,16,130,16,
+  98,16,65,8,97,8,98,8,163,16,163,16,4,25,163,16,33,8,33,8,
+  32,0,8,65,8,137,33,0,166,49,163,24,65,16,65,8,97,8,97,8,
+  65,8,97,8,3,65,8,135,33,8,33,8,65,8,33,0,33,8,33,8,
+  65,0,9,65,8,214,3,139,170,90,170,90,203,90,235,98,12,99,77,107,
+  109,107,142,107,175,115,207,115,239,115,3,16,124,7,49,124,135,81,124,49,
+  124,81,124,81,124,82,124,114,132,114,132,4,146,132,132,147,132,146,132,178,
+  132,178,132,9,179,140,130,179,132,179,132,5,179,140,134,179,132,179,132,179,
+  140,179,132,211,132,211,132,3,211,140,132,211,132,211,140,243,140,211,140,3,
+  212,140,129,244,140,3,243,140,136,244,140,243,140,212,140,212,140,243,140,243,
+  140,244,140,243,140,3,244,140,133,212,140,211,140,211,140,179,132,179,132,4,
+  211,140,129,244,140,4,244,148,130,20,149,20,141,26,20,149,130,20,141,244,
+  148,4,20,149,3,20,141,11,244,140,134,244,148,20,149,20,149,244,148,244,
+  140,20,149,4,244,140,132,20,141,244,140,20,149,20,141,9,20,149,129,20,
+  141,5,20,149,132,21,149,53,149,21,149,21,149,10,20,149,130,21,149,21,
+  149,4,20,149,129,21,149,11,20,149,132,21,149,20,149,21,149,21,149,4,
+  20,149,4,21,149,129,53,149,3,21,149,129,53,149,4,21,149,129,20,149,
+  7,21,149,129,20,149,7,21,149,3,20,149,3,21,149,136,20,149,20,149,
+  21,149,20,149,20,149,21,149,21,149,20,149,6,21,149,140,244,148,245,148,
+  20,141,20,149,244,140,20,149,20,149,244,140,20,141,20,149,20,149,244,140,
+  4,20,149,130,244,148,20,149,6,21,149,129,20,149,6,21,149,131,53,149,
+  21,149,21,149,10,53,149,136,21,149,21,149,53,149,53,149,53,157,53,157,
+  53,149,85,157,5,53,157,136,53,149,53,157,53,149,53,149,53,157,53,149,
+  53,149,53,157,9,53,149,129,53,157,6,53,149,133,53,157,53,149,53,149,
+  53,157,53,157,4,53,149,3,21,149,3,53,149,129,53,157,3,53,149,138,
+  53,157,53,157,53,149,53,149,53,157,53,149,53,149,85,149,53,149,85,149,
+  9,53,149,5,53,157,134,53,149,53,149,85,149,53,149,85,149,53,157,3,
+  85,157,129,86,157,9,85,157,139,53,157,85,149,53,157,85,157,53,157,53,
+  157,85,149,53,149,53,157,53,149,53,157,4,53,149,134,85,149,85,149,53,
+  157,85,157,85,149,85,149,4,85,157,3,53,149,190,21,149,21,141,244,140,
+  179,132,114,124,17,108,176,99,46,83,205,66,75,50,75,42,107,50,172,58,
+  237,74,46,83,110,99,175,107,208,107,208,115,175,107,110,107,45,99,203,82,
+  138,74,73,66,73,66,105,66,170,74,203,82,11,91,11,91,43,91,44,99,
+  235,90,202,82,72,66,231,57,68,33,4,25,228,24,228,16,196,24,228,24,
+  228,24,228,16,196,16,228,16,196,24,195,24,228,24,195,24,196,24,195,24,
+  228,24,228,24,195,24,196,16,196,16,195,16,228,24,196,16,228,16,4,195,
+  16,160,163,16,45,99,142,107,207,115,207,115,40,66,163,16,163,16,4,25,
+  69,33,8,58,170,82,44,99,109,115,141,115,109,107,45,107,109,107,109,115,
+  109,107,77,107,109,107,109,115,109,115,109,107,109,107,109,115,142,115,142,115,
+  174,115,109,115,207,115,4,240,115,132,17,116,16,116,241,115,241,115,3,240,
+  115,144,17,116,17,116,240,115,240,115,241,115,240,115,16,116,16,116,142,99,
+  199,41,98,8,130,16,130,16,65,8,37,25,13,91,4,240,115,133,240,107,
+  240,115,240,107,240,107,240,115,9,240,107,135,240,115,240,107,240,115,240,107,
+  240,115,241,107,240,107,5,240,115,131,240,107,208,107,208,107,5,240,107,130,
+  208,107,207,107,5,208,107,142,240,115,208,107,208,107,207,107,207,107,208,107,
+  208,107,207,107,208,107,208,107,207,107,208,107,207,107,208,107,3,207,107,131,
+  208,107,207,107,208,107,8,175,107,129,175,99,4,175,107,138,143,99,143,99,
+  110,99,175,99,175,107,208,107,110,107,163,24,65,8,97,8,10,65,8,129,
+  97,8,3,65,8,153,66,8,65,8,65,8,66,8,163,16,130,8,65,8,
+  66,8,66,8,98,8,98,16,130,16,163,16,163,16,195,24,196,24,195,16,
+  4,25,196,24,162,16,33,8,33,8,32,0,33,0,98,8,4,65,8,137,
+  33,8,65,8,33,0,130,8,4,33,97,16,65,8,97,8,97,8,5,65,
+  8,139,33,8,65,8,65,8,33,8,0,8,33,8,33,0,65,0,65,8,
+  33,8,33,8,5,65,8,138,3,139,170,90,203,90,203,90,235,98,12,99,
+  45,99,109,107,142,107,174,115,207,115,239,115,4,16,124,8,49,124,3,81,
+  124,139,113,124,114,132,114,132,146,132,146,132,178,140,146,132,147,140,179,140,
+  179,140,178,132,3,179,140,132,179,132,179,140,179,140,179,132,5,179,140,4,
+  179,132,132,179,140,179,140,211,132,211,132,5,211,140,129,212,140,7,211,140,
+  143,243,140,243,140,212,140,244,140,211,140,212,140,212,140,211,140,243,140,244,
+  140,244,148,244,148,244,140,243,140,243,140,6,211,140,135,244,140,244,148,20,
+  149,20,149,244,148,20,149,244,148,3,20,149,129,244,148,26,20,149,132,20,
+  141,20,149,244,140,20,141,11,244,140,130,20,149,244,140,3,20,149,130,244,
+  148,20,149,8,244,140,11,20,149,129,20,141,5,20,149,130,52,149,52,149,
+  11,20,149,129,52,149,4,20,149,134,21,149,20,149,21,149,21,149,20,149,
+  21,149,4,20,149,132,21,149,21,149,20,149,20,149,7,21,149,129,20,149,
+  4,21,149,4,53,149,12,21,149,146,20,149,53,149,21,149,20,149,21,149,
+  53,149,21,149,21,149,20,149,21,149,20,149,21,149,20,149,20,149,20,141,
+  20,149,20,149,20,141,3,20,149,7,21,149,7,20,149,138,244,148,20,141,
+  20,149,20,141,20,149,20,149,20,141,20,141,20,149,20,149,4,21,149,132,
+  53,149,21,149,21,149,20,149,5,21,149,5,53,149,129,21,149,7,53,149,
+  129,21,149,7,53,149,129,53,157,4,85,157,139,53,157,53,157,85,157,53,
+  157,53,157,53,149,85,157,53,157,53,149,53,157,53,157,20,53,149,130,85,
+  149,53,149,6,21,149,7,53,149,134,85,149,53,149,53,157,53,149,53,149,
+  85,149,3,53,149,129,53,157,15,53,149,130,85,149,53,149,15,85,157,130,
+  53,149,53,149,3,53,157,131,85,157,85,157,53,157,5,53,149,136,85,149,
+  53,149,53,149,53,157,85,157,85,149,85,157,53,157,3,85,149,180,53,149,
+  85,149,53,149,53,149,21,141,244,140,179,132,114,124,17,108,176,99,46,83,
+  205,66,75,50,43,42,108,50,172,58,237,74,46,83,142,99,175,107,240,107,
+  240,115,239,123,175,115,110,107,45,99,204,90,138,74,73,74,73,66,73,66,
+  138,74,203,82,235,82,235,90,11,91,235,90,202,82,72,66,7,58,166,49,
+  102,41,4,25,228,24,228,24,4,25,228,24,228,24,4,25,228,24,228,24,
+  4,25,6,228,24,129,4,25,7,228,24,146,195,24,228,24,227,24,195,16,
+  12,99,109,107,207,115,207,115,73,74,131,16,195,16,228,24,37,33,8,58,
+  170,82,44,99,141,107,109,115,4,109,107,154,109,115,141,115,109,107,141,115,
+  142,115,109,107,109,107,141,115,141,107,142,115,174,115,174,115,207,115,240,115,
+  240,115,241,115,240,115,240,115,17,116,16,116,240,115,16,116,16,116,17,116,
+  240,115,16,116,3,17,116,140,16,116,241,115,240,115,16,116,110,99,102,33,
+  97,8,98,16,98,16,65,8,102,33,78,99,3,240,115,130,240,107,240,107,
+  3,240,115,3,240,107,129,208,107,5,240,107,139,240,115,240,115,240,107,16,
+  116,240,107,240,107,16,108,17,116,17,116,16,108,241,115,10,240,107,130,208,
+  107,240,115,5,208,107,131,208,115,208,107,208,107,3,207,107,3,208,107,129,
+  207,107,5,208,107,132,207,107,208,107,207,107,207,107,3,175,107,131,207,107,
+  175,107,207,107,8,175,107,134,143,99,142,99,143,99,175,107,240,115,166,49,
+  9,65,8,129,97,8,3,65,8,129,97,8,3,65,8,140,66,8,65,8,
+  33,0,131,16,130,8,98,8,163,16,195,24,195,16,195,24,195,24,195,16,
+  3,163,16,130,195,24,228,24,3,163,16,138,65,8,32,0,32,8,0,0,
+  98,8,130,16,65,0,65,8,65,8,33,8,3,65,8,136,130,16,130,16,
+  33,8,97,8,98,16,65,8,97,8,97,8,5,65,8,135,33,8,0,0,
+  33,8,33,0,33,0,33,8,33,0,6,65,8,192,3,140,170,90,171,90,
+  203,90,235,98,12,99,44,99,77,107,142,107,142,115,207,115,239,115,239,123,
+  3,16,124,129,48,124,7,49,124,133,81,124,82,124,114,124,114,132,114,132,
+  4,146,132,132,146,140,147,132,179,140,147,140,4,179,140,3,179,132,3,179,
+  140,138,179,132,179,140,179,140,179,132,211,140,179,140,179,132,179,140,179,140,
+  179,132,3,211,140,129,211,132,7,211,140,135,212,140,212,140,244,140,244,140,
+  212,140,243,140,243,140,3,211,140,3,244,140,145,244,148,244,140,244,140,243,
+  140,243,140,212,140,211,140,212,140,212,140,211,140,244,140,244,148,244,148,20,
+  149,244,148,20,149,244,148,3,20,149,4,244,148,18,20,149,137,20,141,20,
+  149,20,149,244,148,20,149,244,148,20,149,20,141,20,149,15,244,140,132,244,
+  148,244,140,20,149,244,148,4,244,140,133,244,148,244,140,20,149,20,149,244,
+  140,15,20,149,129,53,149,3,21,149,130,20,149,21,149,6,20,149,135,21,
+  149,20,149,20,149,21,149,20,149,21,149,21,149,3,20,149,131,21,149,20,
+  149,21,149,6,20,149,4,21,149,151,53,149,20,149,20,149,21,149,21,149,
+  53,149,21,149,53,149,21,149,53,149,53,149,21,149,53,149,53,149,21,149,
+  53,149,21,149,21,149,53,149,21,149,53,149,20,149,53,149,6,21,149,131,
+  53,149,21,149,53,149,3,21,149,136,20,149,21,149,20,149,20,149,21,149,
+  20,149,21,149,20,141,4,20,149,5,21,149,131,20,149,21,149,21,149,6,
+  20,149,132,244,148,20,149,20,141,20,141,3,20,149,131,20,141,21,149,20,
+  149,5,21,149,131,53,149,21,149,20,149,6,21,149,11,53,149,132,21,149,
+  53,149,53,149,21,149,4,53,149,6,85,157,137,53,157,53,157,53,149,53,
+  157,53,157,85,157,53,157,53,149,85,157,3,53,149,129,53,157,15,53,149,
+  129,53,157,4,53,149,130,20,149,20,149,5,21,149,131,53,149,53,157,85,
+  157,5,53,149,133,53,157,53,157,85,157,53,149,85,149,15,53,149,132,53,
+  157,85,149,85,149,53,157,5,85,157,129,53,157,6,85,157,140,53,157,53,
+  157,85,157,53,157,85,157,85,149,53,149,53,157,53,149,53,149,53,157,53,
+  157,7,53,149,137,85,149,53,157,53,157,85,157,53,157,85,157,85,157,53,
+  157,85,149,4,53,149,172,21,149,244,140,180,132,115,124,49,116,176,99,47,
+  83,205,66,75,50,43,42,75,42,140,58,205,74,13,83,110,91,175,107,240,
+  115,240,115,240,123,240,115,207,115,142,107,45,99,236,90,138,74,73,66,41,
+  66,73,66,105,66,202,82,235,90,235,90,235,82,202,82,72,66,40,66,199,
+  57,231,57,102,41,37,33,4,33,4,33,4,25,4,33,7,4,25,129,4,
+  33,9,4,25,164,228,24,228,24,4,25,228,24,228,24,236,90,109,107,207,
+  115,175,115,138,82,195,16,228,16,4,25,69,41,8,66,170,82,44,99,141,
+  115,142,115,109,115,109,107,109,115,142,115,142,115,109,115,109,115,141,115,110,
+  115,109,107,109,115,141,115,141,107,142,115,142,115,174,115,207,115,4,240,115,
+  129,16,116,3,240,115,129,17,116,3,240,115,3,17,116,3,240,115,133,240,
+  107,241,115,241,115,45,91,37,25,3,97,8,131,65,8,232,49,175,99,6,
+  240,115,132,240,107,208,107,208,115,240,115,3,240,107,140,208,107,240,115,240,
+  107,240,107,16,108,240,115,16,116,240,115,240,107,17,116,240,115,240,115,4,
+  240,107,129,240,115,6,240,107,131,240,115,208,107,239,107,4,208,107,129,240,
+  107,5,208,107,129,208,115,4,208,107,129,208,115,6,208,107,132,207,107,207,
+  107,175,107,175,107,5,207,107,7,175,107,134,143,99,143,99,142,99,143,99,
+  110,99,195,32,10,65,8,156,97,8,65,8,65,8,97,8,97,8,65,8,
+  97,8,98,8,65,8,65,8,163,16,195,24,228,24,195,24,163,16,162,16,
+  130,16,98,16,98,8,97,8,65,8,65,8,195,24,131,16,163,16,162,16,
+  130,16,98,8,3,33,0,129,65,0,4,65,8,129,33,8,4,65,8,136,
+  130,16,98,16,33,8,65,8,97,8,97,8,98,16,97,8,5,65,8,133,
+  33,8,33,8,33,0,33,0,33,8,7,65,8,152,3,142,170,82,203,90,
+  203,90,235,90,12,99,44,99,77,107,110,107,142,115,174,115,239,123,239,123,
+  16,124,16,124,3,48,124,6,49,124,3,81,124,142,114,132,146,132,147,132,
+  146,132,146,132,147,132,178,140,179,132,179,140,178,140,178,140,179,140,179,132,
+  179,140,3,179,132,130,179,140,179,132,4,179,140,3,179,132,129,179,140,16,
+  211,140,136,244,140,211,140,212,140,212,140,211,140,212,140,243,140,243,140,7,
+  244,140,138,243,148,243,140,243,140,212,140,244,140,244,140,244,148,20,149,244,
+  140,244,148,3,20,149,130,244,148,244,148,4,244,140,129,20,141,17,20,149,
+  129,244,148,5,20,149,134,244,148,20,149,244,140,20,141,244,140,20,141,10,
+  244,140,132,244,148,244,148,20,141,20,141,6,244,140,134,20,149,244,140,20,
+  141,244,140,20,141,20,141,14,20,149,131,21,149,21,149,52,149,7,20,149,
+  129,21,149,3,20,149,130,21,149,20,149,3,21,149,5,20,149,132,21,149,
+  21,149,20,149,21,149,4,20,149,135,21,149,21,149,53,149,21,149,53,149,
+  21,149,53,149,3,21,149,8,53,149,129,21,149,3,53,149,3,21,149,131,
+  53,149,21,149,53,149,4,21,149,143,53,149,21,149,53,149,21,149,20,149,
+  20,149,21,149,20,149,21,149,20,149,21,149,21,149,20,149,20,141,20,141,
+  4,20,149,131,21,149,21,149,21,141,4,21,149,131,20,141,21,149,21,149,
+  3,20,149,129,20,141,4,20,149,135,21,149,20,149,21,149,20,149,20,149,
+  21,149,20,149,10,21,149,5,53,149,129,21,149,5,53,149,133,21,149,53,
+  149,53,149,21,149,21,149,5,53,149,130,53,157,53,157,8,85,157,129,53,
+  157,3,85,157,3,85,149,3,53,149,133,85,149,53,149,53,157,53,149,53,
+  157,10,53,149,129,53,157,4,53,149,132,20,149,21,149,20,149,20,149,3,
+  21,149,3,53,149,129,53,157,3,85,149,3,53,157,130,53,149,85,149,16,
+  53,149,134,53,157,53,149,85,149,85,149,53,149,85,157,3,53,157,3,85,
+  157,136,53,157,53,157,85,157,53,157,85,157,85,157,85,149,85,149,3,85,
+  157,133,53,157,85,157,53,149,53,149,53,157,9,53,149,156,53,157,85,157,
+  85,157,53,157,53,157,85,157,85,157,85,149,85,149,53,149,53,149,21,149,
+  244,140,211,132,115,124,17,116,208,99,78,83,205,66,75,50,10,42,75,50,
+  140,58,205,66,13,75,78,91,143,107,207,107,3,16,124,149,240,123,207,115,
+  174,115,110,107,12,91,138,74,73,66,41,66,41,58,105,74,170,82,235,82,
+  235,90,203,82,105,74,40,66,230,57,72,66,231,57,102,41,4,33,3,4,
+  25,138,4,33,4,25,4,33,4,25,4,25,4,33,4,25,4,33,4,25,
+  4,33,4,4,25,129,4,33,6,4,25,160,196,24,236,90,109,107,207,115,
+  207,115,203,90,227,16,228,16,4,25,69,33,8,58,170,82,44,99,109,107,
+  142,115,109,107,109,115,142,115,109,115,141,115,109,107,110,115,141,115,109,115,
+  141,115,142,115,109,107,141,107,142,115,109,107,142,115,207,115,6,240,115,4,
+  240,107,136,240,115,240,107,240,107,240,115,240,115,17,116,241,115,241,115,4,
+  240,115,136,204,82,228,16,65,8,97,8,65,8,130,8,105,58,208,115,3,
+  240,115,129,240,107,3,240,115,11,240,107,3,240,115,133,17,116,240,115,240,
+  115,240,107,16,108,3,240,107,129,240,115,5,240,107,9,208,107,129,240,107,
+  4,208,107,132,240,107,240,115,208,115,208,115,8,208,107,3,207,107,129,208,
+  107,5,207,107,7,175,107,134,143,99,142,99,175,99,236,82,163,24,97,16,
+  6,65,8,3,97,8,131,65,8,97,8,65,8,5,97,8,134,33,0,163,
+  16,196,24,228,24,195,24,162,16,8,65,8,140,163,16,163,16,98,8,97,
+  8,98,16,97,8,32,0,33,0,33,8,33,0,33,0,33,8,3,65,8,
+  129,33,8,4,65,8,135,130,16,65,8,65,8,97,8,98,16,98,16,97,
+  8,6,65,8,3,33,0,129,33,8,7,65,8,229,3,144,170,90,170,90,
+  203,90,203,90,236,98,45,99,77,107,109,107,142,115,174,115,207,123,239,123,
+  240,123,16,124,16,124,48,124,6,49,124,131,81,124,81,124,82,132,3,114,
+  132,133,146,132,146,132,146,140,178,140,146,132,3,179,140,131,178,140,179,140,
+  179,140,3,179,132,4,179,140,132,179,132,179,132,179,140,179,140,3,179,132,
+  130,211,132,179,132,10,211,140,144,212,140,211,140,244,140,212,140,211,140,244,
+  140,211,140,244,140,212,140,212,140,243,140,244,140,244,140,244,148,244,140,244,
+  148,3,244,140,129,244,148,4,244,140,136,244,148,244,148,20,149,244,148,244,
+  148,20,149,244,148,244,148,8,244,140,17,20,149,137,244,148,244,140,20,149,
+  244,148,20,149,20,141,20,149,20,149,20,141,13,244,140,129,244,148,4,244,
+  140,129,244,148,6,244,140,136,20,149,244,148,20,149,244,148,20,149,20,141,
+  20,141,244,140,8,20,149,130,21,149,20,149,5,21,149,15,20,149,131,21,
+  149,20,149,21,149,5,20,149,133,21,149,20,149,53,149,21,149,21,149,3,
+  53,149,132,52,149,53,149,21,149,21,149,5,53,149,138,21,149,53,149,53,
+  149,21,149,21,149,53,149,53,149,21,149,21,149,20,149,7,21,149,148,53,
+  149,21,149,53,149,21,149,21,149,20,149,21,149,21,149,20,149,21,149,21,
+  149,20,149,21,149,21,149,20,149,244,148,20,149,244,148,244,140,20,149,11,
+  21,149,131,20,149,20,149,21,149,5,20,149,134,21,149,21,149,20,149,21,
+  149,20,149,20,149,8,21,149,129,20,149,3,21,149,130,53,149,21,149,6,
+  53,149,129,53,157,10,53,149,131,53,157,85,157,53,157,5,85,157,147,53,
+  157,85,157,85,157,53,157,53,157,85,157,53,149,85,157,85,149,53,149,53,
+  149,53,157,85,149,53,149,85,149,85,149,53,149,53,149,53,157,12,53,149,
+  151,21,149,20,149,21,149,21,149,20,149,20,149,21,149,21,149,53,149,53,
+  157,53,157,85,149,85,149,53,149,53,149,85,157,53,149,85,149,53,149,53,
+  149,85,149,53,149,85,149,16,53,149,152,85,149,53,157,53,157,53,149,53,
+  149,85,157,53,149,85,157,85,157,53,157,85,157,85,157,53,157,85,157,53,
+  157,85,157,53,149,85,157,53,157,53,157,85,149,53,157,85,149,85,149,7,
+  53,149,132,85,149,53,149,53,149,85,149,3,85,157,130,85,149,85,157,3,
+  85,149,147,53,149,53,149,21,149,244,140,211,132,115,124,50,108,176,99,79,
+  83,205,66,75,50,10,42,43,42,108,50,205,66,13,83,78,91,143,99,208,
+  115,5,16,124,147,240,123,207,115,142,107,45,99,171,82,73,66,41,66,40,
+  58,105,66,170,82,235,82,203,82,137,74,40,66,231,57,104,74,72,66,8,
+  58,101,41,4,4,25,132,5,25,4,33,36,25,4,25,3,4,33,4,4,
+  25,129,4,33,8,4,25,165,228,24,170,82,77,107,174,115,207,123,203,90,
+  228,24,228,24,4,25,37,33,231,57,170,82,44,99,77,107,142,115,109,115,
+  109,107,109,107,141,107,142,115,109,107,142,115,109,115,142,115,174,115,142,115,
+  109,115,109,107,142,115,109,107,45,107,207,115,240,115,240,107,208,107,208,107,
+  208,115,3,208,107,130,240,107,240,107,3,208,107,132,16,116,240,115,241,115,
+  241,115,5,240,115,131,208,107,139,74,163,16,3,65,8,132,195,16,204,82,
+  240,115,240,107,3,240,115,5,240,107,129,208,107,7,240,107,140,16,108,241,
+  115,240,115,240,115,240,107,240,107,16,116,17,108,240,115,240,115,240,107,240,
+  115,3,240,107,142,240,115,240,115,240,107,240,115,208,115,240,107,208,107,208,
+  107,240,107,208,107,240,107,208,107,240,107,240,107,3,208,107,135,240,107,240,
+  107,208,107,240,107,208,107,208,107,240,107,3,208,107,137,207,107,207,107,208,
+  107,175,107,207,107,208,107,208,107,207,107,207,107,3,175,107,129,175,99,4,
+  175,107,134,175,99,143,99,175,99,171,74,130,16,98,16,4,65,8,136,97,
+  8,65,8,97,8,65,8,65,8,97,8,97,8,65,8,4,97,8,134,33,
+  0,33,8,195,16,228,24,195,24,130,16,9,65,8,141,97,8,98,16,98,
+  16,97,8,65,8,65,8,33,8,33,0,33,0,33,8,65,8,33,8,33,
+  8,7,65,8,132,98,16,130,16,33,0,65,8,3,98,16,6,65,8,130,
+  32,8,33,0,3,33,8,6,65,8,145,3,145,170,90,170,90,203,90,235,
+  98,235,98,12,99,45,107,109,107,142,115,174,115,207,115,239,115,240,123,16,
+  124,16,124,48,124,48,124,5,49,124,141,81,124,81,124,81,132,114,132,114,
+  132,146,132,146,132,147,132,147,132,179,140,178,140,178,140,179,132,3,179,140,
+  129,179,132,4,179,140,142,179,132,179,132,179,140,179,132,179,140,179,140,179,
+  132,179,132,179,140,211,140,179,140,211,140,211,140,211,132,5,211,140,129,212,
+  140,3,211,140,138,244,140,211,140,212,140,212,140,211,140,212,140,211,140,212,
+  140,244,140,212,140,3,244,140,133,244,148,244,148,244,140,244,148,20,149,4,
+  244,140,130,244,148,244,148,3,244,140,132,20,149,244,148,20,149,20,149,8,
+  244,140,18,20,149,129,244,148,4,20,149,132,20,141,20,149,244,140,20,141,
+  21,244,140,3,20,141,5,20,149,130,244,148,244,148,3,244,140,129,20,141,
+  3,20,149,4,21,149,130,53,149,53,149,4,21,149,11,20,149,134,53,149,
+  21,149,20,149,20,149,21,149,21,149,4,20,149,135,52,149,20,149,21,149,
+  53,149,20,149,53,149,20,149,6,53,149,129,21,149,8,53,149,129,21,149,
+  3,53,149,132,21,149,53,149,21,149,20,149,6,21,149,129,53,149,5,21,
+  149,3,20,149,133,21,149,21,149,20,149,21,149,21,149,8,20,149,136,53,
+  149,21,149,21,149,53,149,20,149,21,149,20,149,21,149,4,20,149,135,21,
+  149,20,149,20,149,21,149,21,149,20,149,20,149,7,21,149,129,53,149,3,
+  21,149,132,53,149,21,149,53,149,21,149,14,53,149,129,53,157,4,53,149,
+  4,53,157,7,85,157,131,53,157,85,157,53,157,3,85,157,133,53,157,85,
+  157,85,157,53,149,85,157,3,85,149,130,53,157,53,157,13,53,149,5,20,
+  149,132,21,149,20,149,53,149,53,157,4,53,149,129,85,149,3,53,149,129,
+  53,157,23,53,149,129,53,157,4,53,149,131,85,157,53,157,85,157,3,53,
+  157,130,85,157,53,157,6,85,157,9,53,149,132,85,149,85,157,53,157,85,
+  149,3,85,157,155,85,149,85,149,85,157,53,157,53,149,85,149,53,149,21,
+  149,244,140,212,132,147,124,50,108,208,99,79,83,205,66,75,50,10,34,10,
+  42,107,50,205,66,13,75,78,91,143,99,207,107,240,115,16,124,240,123,3,
+  16,124,155,240,123,239,115,142,107,45,99,203,82,73,74,9,66,40,58,73,
+  66,170,74,203,82,202,82,137,74,40,66,105,74,170,74,169,74,8,58,101,
+  33,37,25,4,25,37,25,4,25,37,33,5,25,5,25,37,25,3,4,25,
+  133,37,25,4,25,5,25,4,25,5,25,7,4,25,148,196,24,138,74,77,
+  107,175,115,207,123,203,90,163,16,228,24,4,25,69,33,231,57,138,82,44,
+  99,109,107,142,115,109,115,77,107,109,115,109,107,109,107,6,77,107,136,44,
+  107,44,99,12,99,12,99,109,107,207,115,240,107,240,107,4,240,115,134,208,
+  115,240,115,240,115,240,107,208,107,208,107,6,240,115,136,241,115,240,115,16,
+  116,240,115,240,115,176,107,73,58,130,8,3,65,8,131,37,25,77,91,241,
+  115,3,240,115,131,240,107,240,115,240,115,7,240,107,136,16,116,240,107,240,
+  115,240,107,240,107,16,116,240,107,240,107,8,240,115,134,240,107,240,107,208,
+  115,240,115,240,115,240,107,4,208,107,130,240,107,208,107,4,240,107,131,240,
+  115,240,115,240,107,3,208,107,129,240,115,7,208,107,134,207,107,208,107,207,
+  107,207,107,208,107,207,107,4,208,107,5,175,107,141,207,107,175,107,143,99,
+  175,99,236,82,65,8,97,16,98,8,65,8,65,8,97,8,65,8,97,8,
+  3,65,8,130,97,8,97,8,3,65,8,135,97,8,65,8,33,0,65,8,
+  195,24,195,24,97,8,11,65,8,129,97,8,4,65,8,134,33,8,33,8,
+  33,0,33,0,33,8,32,8,9,65,8,135,195,24,4,33,0,8,65,8,
+  98,16,98,16,98,8,4,65,8,133,33,0,33,8,32,0,0,0,33,8,
+  7,65,8,136,3,143,170,90,170,90,203,90,203,90,236,98,12,99,77,107,
+  77,107,142,115,174,115,174,115,239,115,240,123,16,124,16,124,5,49,124,133,
+  81,132,49,132,81,124,81,132,81,132,3,114,132,5,146,132,4,179,140,131,
+  179,132,179,132,179,140,4,179,132,132,179,140,179,140,179,132,179,140,3,179,
+  132,131,179,140,179,140,211,132,8,211,140,129,212,140,3,211,140,139,212,140,
+  212,140,211,140,212,140,211,140,212,140,244,140,212,140,212,140,244,140,212,140,
+  3,244,140,135,244,148,20,149,244,148,20,149,244,148,244,148,244,140,3,244,
+  148,135,20,149,244,140,20,149,20,149,244,148,20,149,244,148,7,244,140,130,
+  20,141,244,140,10,20,149,134,244,148,20,149,244,148,20,149,20,149,20,141,
+  7,20,149,131,20,141,20,141,20,149,13,244,140,131,20,141,244,140,244,148,
+  5,244,140,136,20,141,20,141,20,149,20,141,20,141,244,148,20,141,20,141,
+  5,244,140,4,20,149,129,53,149,4,21,149,135,53,149,53,149,21,149,21,
+  149,20,149,20,149,21,149,3,20,149,129,21,149,4,20,149,134,21,149,20,
+  149,20,149,21,149,20,149,21,149,3,20,149,135,21,149,21,149,20,149,20,
+  149,53,149,21,149,21,149,19,53,149,4,21,149,136,20,149,21,149,53,149,
+  21,149,21,149,53,149,21,149,53,149,6,21,149,130,20,149,20,149,5,21,
+  149,129,20,149,7,21,149,129,20,149,5,21,149,129,20,149,3,21,149,130,
+  20,149,21,149,6,20,149,17,21,149,130,53,149,21,149,5,53,149,129,53,
+  157,9,53,149,129,21,149,3,53,149,3,53,157,3,85,157,129,53,157,3,
+  85,157,130,53,157,53,157,3,85,157,131,85,149,85,157,85,157,4,85,149,
+  130,53,157,53,157,14,53,149,129,21,149,4,20,149,130,21,149,21,149,3,
+  53,149,129,53,157,14,53,149,129,53,157,13,53,149,132,53,157,53,149,53,
+  149,53,157,3,53,149,7,53,157,131,53,149,85,157,53,149,3,85,157,132,
+  85,149,53,149,53,149,85,149,5,53,149,137,85,149,85,149,85,157,85,149,
+  53,149,85,157,53,157,85,157,85,149,3,85,157,150,85,149,53,149,53,149,
+  21,149,20,141,211,132,147,124,50,116,209,99,111,83,205,66,75,50,234,33,
+  11,34,75,50,172,58,237,74,46,91,143,107,208,107,240,115,16,116,4,16,
+  124,153,48,124,16,124,240,123,175,115,77,99,204,90,73,74,9,66,9,58,
+  73,66,170,74,235,82,170,74,137,74,137,74,202,82,203,82,137,74,73,66,
+  41,58,41,58,9,58,8,50,8,58,8,58,4,232,49,3,199,49,129,232,
+  49,4,199,49,151,232,49,199,49,199,49,232,49,232,49,199,49,235,90,110,
+  107,175,115,239,123,203,90,167,41,199,49,102,41,37,33,199,57,138,82,44,
+  99,109,107,174,115,110,107,109,107,77,107,3,109,115,131,77,107,76,107,76,
+  107,3,77,107,133,76,107,77,107,109,115,77,107,208,115,11,240,115,129,240,
+  107,12,240,115,130,111,107,199,41,4,65,8,132,167,41,143,107,241,115,240,
+  115,3,240,107,4,208,107,7,240,107,131,240,115,240,107,240,115,3,240,107,
+  131,16,116,240,115,240,107,3,240,115,130,240,107,240,107,5,240,115,134,208,
+  115,208,107,208,107,240,107,240,107,208,107,5,240,107,140,240,115,208,107,240,
+  115,208,107,208,107,240,115,240,115,208,107,208,107,240,107,208,107,208,115,3,
+  208,107,3,207,107,134,208,107,207,107,208,107,208,107,207,107,207,107,4,175,
+  107,136,207,107,175,107,175,107,175,99,77,91,65,8,65,8,98,16,7,65,
+  8,140,97,8,65,8,97,8,65,8,65,8,66,8,65,8,65,0,32,0,
+  97,8,227,24,130,16,10,65,8,129,97,8,7,65,8,133,33,8,33,8,
+  32,0,32,0,33,8,10,65,8,145,134,49,195,32,1,8,97,8,98,16,
+  98,16,65,8,33,8,65,8,33,8,65,8,33,8,33,0,0,0,33,8,
+  65,8,98,16,5,65,8,91,3,141,170,90,170,90,203,90,203,90,236,98,
+  12,99,44,99,77,107,109,107,142,115,207,115,207,115,239,123,3,16,124,3,
+  49,124,133,81,132,81,132,49,124,81,132,81,132,4,114,132,4,146,132,3,
+  179,132,133,179,140,179,132,179,132,179,140,179,140,3,179,132,7,179,140,131,
+  179,132,179,140,179,140,5,211,140,129,212,140,3,211,140,134,212,140,211,140,
+  211,140,211,132,212,140,211,140,6,212,140,4,244,140,132,244,148,244,140,244,
+  148,244,140,4,244,148,139,244,140,244,148,20,149,244,140,20,149,244,148,20,
+  149,20,149,244,148,244,140,244,148,8,244,140,7,20,149,131,244,148,244,148,
+  20,149,3,244,148,131,20,149,20,149,244,148,8,20,149,130,20,141,20,141,
+  18,244,140,129,20,141,5,244,140,132,20,149,244,140,20,149,20,149,8,244,
+  140,134,20,149,20,149,53,149,21,149,53,149,21,149,3,53,149,132,52,149,
+  53,149,53,149,21,149,5,20,149,129,21,149,3,20,149,9,21,149,3,20,
+  149,132,21,149,53,149,21,149,21,149,20,53,149,7,21,149,130,53,149,53,
+  149,5,21,149,134,20,149,21,149,21,149,20,149,21,149,20,149,3,21,149,
+  131,53,149,53,149,21,149,3,53,149,131,21,149,53,149,53,149,3,21,149,
+  130,53,149,53,149,8,21,149,131,20,149,21,149,21,149,3,20,149,15,21,
+  149,3,53,149,133,21,149,53,149,53,149,53,157,53,157,3,53,149,130,53,
+  157,53,157,11,53,149,130,53,157,53,157,9,85,157,130,53,157,85,157,3,
+  53,157,136,85,157,53,149,53,149,85,157,53,157,53,157,53,149,53,157,13,
+  53,149,131,21,149,21,149,20,149,3,21,149,3,53,149,3,53,157,131,53,
+  149,53,149,85,157,29,53,149,130,53,157,53,157,4,53,149,138,53,157,53,
+  149,53,157,53,157,53,149,53,149,85,157,53,157,53,149,85,149,9,53,149,
+  134,53,157,53,157,53,149,85,149,53,157,53,157,3,85,157,130,53,157,53,
+  157,4,53,149,145,244,140,212,132,147,124,50,116,209,107,79,83,205,66,75,
+  42,234,33,10,34,75,42,140,58,237,74,46,91,111,99,175,107,240,115,4,
+  16,124,158,16,132,16,124,49,132,16,124,240,123,175,115,110,107,236,90,106,
+  74,9,58,8,58,73,58,170,74,203,74,170,74,137,74,170,82,138,74,105,
+  74,105,74,12,91,45,91,45,91,13,91,45,91,13,91,13,91,236,90,236,
+  90,236,82,4,236,90,154,204,82,204,82,236,82,236,90,12,83,236,90,236,
+  90,12,91,13,99,13,99,45,99,109,107,142,107,240,123,236,98,12,91,45,
+  91,8,58,36,25,232,57,138,82,44,99,142,115,142,115,109,115,109,107,12,
+  109,115,130,76,107,109,107,3,240,115,129,16,116,8,240,115,132,240,107,240,
+  115,240,107,240,107,10,240,115,130,78,99,101,33,3,65,8,134,98,8,106,
+  66,208,107,240,115,240,107,240,115,4,240,107,129,208,107,10,240,107,137,240,
+  115,240,107,240,107,240,115,240,107,240,107,16,116,240,115,240,115,5,240,107,
+  4,240,115,134,240,107,240,107,208,107,208,107,240,107,208,107,3,240,115,138,
+  208,115,240,115,240,107,240,107,240,115,207,107,240,115,240,107,208,107,240,115,
+  10,208,107,135,207,107,208,115,208,107,208,107,207,107,207,107,175,107,3,207,
+  107,134,175,107,175,99,208,107,163,16,33,8,163,16,7,65,8,142,97,8,
+  97,8,65,8,33,0,0,0,1,0,32,0,0,0,33,0,65,0,130,16,
+  65,8,97,8,97,8,5,65,8,132,98,8,97,8,65,8,97,8,7,65,
+  8,133,32,0,33,8,32,0,33,8,33,8,11,65,8,136,195,32,65,16,
+  32,8,65,8,98,8,97,8,33,8,33,8,4,65,8,130,0,0,0,0,
+  3,33,8,4,65,8,140,3,3,170,90,148,203,90,235,98,12,99,44,99,
+  77,107,109,107,142,115,207,115,207,115,239,123,239,123,16,124,16,124,48,124,
+  49,124,49,124,81,132,81,124,81,132,81,132,4,114,132,7,146,132,130,147,
+  132,147,132,3,179,132,130,179,140,179,132,9,179,140,133,179,132,211,140,179,
+  140,211,140,211,132,13,211,140,139,212,140,211,140,211,140,243,140,243,140,212,
+  140,244,140,244,140,243,140,244,140,244,140,7,244,148,134,244,140,244,148,244,
+  148,20,149,20,149,244,148,3,20,149,130,244,140,20,149,7,244,140,131,20,
+  141,20,149,244,148,5,20,149,139,244,148,20,149,244,148,20,149,244,148,20,
+  149,20,141,244,148,244,148,20,149,244,148,9,20,149,130,244,140,20,141,5,
+  244,140,129,20,141,13,244,140,131,20,141,20,141,244,140,3,20,149,131,244,
+  140,244,140,212,140,5,244,140,132,21,141,21,149,20,149,21,149,4,53,149,
+  129,21,149,3,53,149,129,21,149,5,20,149,138,21,149,21,149,20,149,53,
+  149,21,149,52,149,21,149,52,149,53,149,53,149,4,21,149,130,20,149,20,
+  149,3,21,149,16,53,149,134,21,149,53,149,53,149,21,149,21,149,53,149,
+  11,21,149,4,20,149,134,21,149,20,149,21,149,20,149,21,149,53,149,3,
+  21,149,5,53,149,132,21,149,53,149,21,149,53,149,3,21,149,129,53,149,
+  3,21,149,131,53,149,21,149,20,149,3,21,149,129,20,149,9,21,149,129,
+  20,149,4,21,149,130,53,149,53,149,4,21,149,3,53,149,3,53,157,131,
+  53,149,85,149,53,149,3,53,157,10,53,149,5,53,157,130,85,157,53,157,
+  3,85,157,142,53,157,53,157,85,157,85,157,53,157,85,157,85,157,85,149,
+  85,157,53,157,53,157,53,149,53,149,53,157,12,53,149,130,53,157,53,149,
+  4,21,149,3,53,149,133,53,157,53,157,53,149,53,149,53,157,3,53,149,
+  130,53,157,53,157,30,53,149,132,53,157,53,149,53,149,53,157,3,53,149,
+  132,85,149,53,157,85,157,85,149,10,53,149,186,85,157,53,157,53,157,85,
+  157,53,157,53,157,53,149,85,149,85,157,85,157,53,149,85,157,53,149,53,
+  149,21,149,244,140,212,132,147,124,50,116,209,99,79,83,205,66,75,42,201,
+  25,234,33,43,42,140,58,237,74,46,83,111,91,175,107,240,115,16,124,240,
+  123,16,124,17,132,16,124,16,132,16,132,48,124,16,124,16,124,207,115,142,
+  107,12,91,138,82,8,58,8,58,73,58,170,66,170,74,138,74,138,74,137,
+  74,105,74,105,74,110,99,175,107,4,143,99,129,111,99,5,110,99,134,111,
+  99,111,99,110,99,110,99,143,107,110,107,3,143,107,143,175,115,208,115,208,
+  115,110,107,77,99,174,115,142,115,236,90,240,115,240,115,138,66,4,25,231,
+  57,138,82,235,90,3,109,107,6,109,115,140,77,115,77,115,109,115,109,115,
+  77,115,77,107,109,115,76,107,109,107,208,115,240,107,240,107,6,240,115,129,
+  17,116,4,240,115,3,240,107,4,240,115,5,240,107,141,240,115,13,83,228,
+  24,65,8,65,8,33,8,195,16,12,83,240,107,240,107,208,107,240,107,240,
+  107,3,208,107,5,240,107,132,240,115,240,107,240,107,240,115,11,240,107,140,
+  240,115,240,107,240,115,208,107,240,115,240,107,240,107,240,115,208,107,240,115,
+  240,107,240,107,3,208,107,131,240,107,240,115,240,115,5,240,107,135,240,115,
+  240,107,240,107,208,107,240,115,208,107,240,115,7,208,107,129,208,115,5,208,
+  107,139,207,107,175,107,175,107,207,107,208,107,175,107,208,107,199,49,0,8,
+  98,16,98,16,4,65,8,132,97,8,65,8,65,8,33,8,7,0,0,135,
+  33,8,65,8,97,8,65,8,97,8,65,8,65,8,8,97,8,6,65,8,
+  133,33,0,32,0,32,8,33,8,33,8,9,65,8,139,33,8,65,8,97,
+  8,97,8,65,8,32,0,65,8,98,8,65,8,33,8,33,8,3,65,8,
+  129,33,8,3,0,0,130,1,0,1,8,3,65,8,169,3,3,170,90,138,
+  203,90,235,98,12,99,44,99,77,107,109,107,142,115,174,115,207,115,239,123,
+  3,16,124,138,48,124,49,124,49,124,81,124,81,132,81,124,81,124,81,132,
+  114,132,114,140,6,146,132,132,147,132,146,132,147,132,179,140,3,179,132,130,
+  179,140,179,132,7,179,140,133,179,132,179,140,179,140,179,132,179,132,6,211,
+  140,130,212,140,212,140,4,211,140,134,212,140,211,140,212,140,211,140,244,140,
+  212,140,4,244,140,129,243,140,5,244,140,4,244,148,140,20,149,20,149,244,
+  140,244,148,244,148,20,149,244,148,20,149,20,149,20,141,244,148,244,148,4,
+  244,140,131,244,148,20,141,20,141,6,244,148,136,20,149,20,149,244,148,20,
+  149,244,148,20,149,20,149,244,148,12,20,149,137,244,148,244,148,20,141,20,
+  141,244,140,20,141,244,140,244,140,20,141,9,244,140,129,244,148,3,244,140,
+  138,20,149,20,149,244,148,20,141,20,141,20,149,20,141,244,140,244,140,212,
+  140,5,244,140,5,21,149,131,53,149,53,149,21,149,3,53,149,132,21,149,
+  21,149,53,149,21,149,5,20,149,5,21,149,135,53,149,21,149,53,149,20,
+  149,20,149,21,149,20,149,7,21,149,5,53,149,129,52,149,10,53,149,131,
+  21,149,21,149,53,149,9,21,149,6,20,149,5,21,149,129,20,149,3,21,
+  149,131,53,149,53,149,21,149,6,53,149,132,21,149,53,149,21,149,20,149,
+  7,21,149,4,20,149,5,21,149,141,20,149,21,149,20,149,21,149,21,149,
+  20,149,21,149,21,149,53,149,21,149,53,149,53,149,21,149,3,53,149,130,
+  53,157,53,157,6,53,149,3,53,157,10,53,149,130,53,157,53,149,4,53,
+  157,146,85,157,85,157,53,157,53,157,53,149,53,157,85,157,53,157,85,157,
+  85,157,53,157,85,149,53,157,85,149,53,149,85,149,53,149,53,157,19,53,
+  149,3,53,157,4,53,149,130,53,157,53,157,24,53,149,129,53,157,16,53,
+  149,132,85,149,53,157,85,157,85,149,9,53,149,3,53,157,136,53,149,85,
+  157,85,157,53,149,85,149,53,157,53,157,85,149,4,53,149,145,244,140,211,
+  132,147,124,50,116,208,99,79,83,237,66,75,42,202,25,234,25,43,42,108,
+  58,205,66,45,83,110,91,175,107,240,115,5,16,124,158,16,132,17,132,16,
+  132,16,124,16,124,240,123,207,115,142,107,77,99,203,82,41,66,232,57,40,
+  58,138,66,170,74,138,74,138,74,105,74,105,74,77,91,143,99,111,91,111,
+  91,110,91,110,99,78,99,78,91,78,91,46,91,78,99,5,78,91,4,110,
+  99,151,143,107,175,107,208,107,240,115,142,107,77,99,174,115,207,115,236,90,
+  208,115,16,116,171,74,4,25,231,57,170,82,12,91,109,107,109,115,77,107,
+  109,115,141,123,109,115,141,115,6,109,115,136,77,115,109,115,109,115,77,107,
+  77,107,208,115,240,107,240,107,4,240,115,129,240,107,4,240,115,135,240,107,
+  240,115,240,115,240,107,240,107,240,115,240,107,8,240,115,137,208,115,171,74,
+  130,8,65,8,65,8,65,0,69,33,110,99,240,115,3,240,107,133,208,107,
+  208,107,240,107,240,107,208,107,6,240,107,135,240,115,240,115,240,107,16,108,
+  240,107,240,107,240,115,6,240,107,143,208,107,208,107,240,115,240,107,240,107,
+  240,115,240,107,240,115,240,115,208,107,240,107,240,107,208,107,208,107,240,107,
+  3,240,115,145,240,107,240,115,240,107,240,107,208,115,240,115,240,115,208,107,
+  240,115,240,115,208,115,240,115,208,115,240,107,208,107,240,115,207,107,6,208,
+  107,140,207,107,175,107,176,107,176,107,207,107,208,107,207,107,207,107,13,91,
+  32,8,65,8,162,16,4,65,8,142,66,8,33,8,32,8,0,0,0,8,
+  32,8,0,0,0,0,33,0,33,0,0,0,33,8,65,8,97,8,5,65,
+  8,5,97,8,131,98,16,98,16,97,16,5,65,8,4,33,8,130,32,0,
+  1,0,6,65,8,3,33,8,138,65,8,65,8,98,8,97,8,33,0,33,
+  8,65,8,97,8,33,8,33,8,3,65,8,137,66,8,33,8,0,0,32,
+  0,1,8,0,8,0,0,65,8,65,8,191,3,152,170,90,170,90,202,90,
+  203,90,235,98,12,99,44,99,45,107,109,107,142,115,174,115,207,115,239,115,
+  16,124,16,124,48,124,49,124,48,124,49,124,81,124,81,124,81,132,81,132,
+  113,132,3,114,132,5,146,132,136,147,132,147,132,146,132,147,132,147,132,179,
+  140,179,132,179,132,5,179,140,3,179,132,129,211,140,3,179,132,139,211,140,
+  211,140,211,132,211,140,211,140,212,140,211,140,211,140,212,140,244,140,212,140,
+  7,211,140,129,243,140,3,244,140,129,243,140,3,244,140,7,244,148,133,20,
+  149,244,148,244,140,244,148,244,140,3,20,149,132,244,148,20,149,244,148,20,
+  149,4,244,140,131,244,148,244,140,244,140,4,244,148,130,20,149,244,148,5,
+  20,149,132,244,148,20,149,20,149,244,148,12,20,149,136,244,140,20,149,20,
+  149,244,140,244,140,20,149,20,141,20,141,9,244,140,139,244,148,244,140,20,
+  141,20,141,20,149,20,149,20,141,20,141,20,149,20,141,20,141,8,244,140,
+  132,20,141,53,149,21,149,21,149,8,53,149,4,21,149,130,20,149,20,149,
+  4,21,149,132,53,149,21,149,53,149,53,149,6,21,149,3,20,149,3,21,
+  149,4,53,149,129,21,149,3,53,149,129,21,149,10,53,149,5,21,149,129,
+  20,149,3,21,149,4,20,149,144,21,149,20,149,20,149,21,149,20,149,21,
+  149,20,149,21,149,53,149,53,149,21,149,53,149,21,149,21,149,53,149,21,
+  149,4,53,149,130,21,149,53,149,3,21,149,133,53,149,53,149,21,149,53,
+  149,53,149,6,21,149,132,20,149,21,149,21,149,20,149,7,21,149,8,53,
+  149,132,21,149,53,149,53,149,53,157,5,53,149,133,85,157,53,157,53,149,
+  53,149,53,157,12,53,149,144,53,157,85,157,53,157,85,157,85,157,53,157,
+  53,157,85,149,85,149,53,157,85,157,85,149,53,157,53,157,53,149,53,157,
+  4,53,149,129,53,157,19,53,149,130,53,157,53,157,43,53,149,129,53,157,
+  6,53,149,130,85,157,85,149,4,53,149,129,85,149,6,53,149,136,53,157,
+  53,149,85,149,53,149,53,157,53,157,53,149,85,149,4,53,149,152,21,149,
+  244,140,211,140,114,124,50,116,208,99,79,83,205,66,75,42,202,25,201,25,
+  10,34,108,58,204,66,14,83,110,91,175,107,240,115,240,115,240,123,16,124,
+  16,124,16,132,16,132,6,16,124,158,208,123,207,115,110,107,236,90,73,66,
+  232,57,41,58,170,74,202,74,170,74,137,74,138,74,45,83,110,91,78,91,
+  110,91,78,91,78,91,46,91,46,83,46,83,77,91,45,91,46,91,46,83,
+  46,91,46,83,46,91,78,91,78,99,3,110,99,149,143,107,175,107,208,115,
+  142,107,45,99,142,107,16,124,235,90,239,115,16,116,204,82,4,25,199,49,
+  138,74,236,98,109,107,142,115,77,107,109,115,141,115,141,115,5,109,115,137,
+  77,115,109,115,76,107,109,107,109,115,77,107,77,107,207,107,240,107,3,240,
+  115,133,240,107,240,107,240,115,240,107,240,107,6,240,115,134,240,107,240,115,
+  240,115,240,107,240,115,240,107,4,240,115,132,240,107,240,115,175,107,41,58,
+  4,65,8,132,8,58,175,107,240,107,240,107,3,208,107,130,240,107,208,107,
+  5,240,107,137,240,115,240,115,240,107,17,116,240,107,16,116,240,107,16,116,
+  240,107,3,240,115,144,16,116,240,107,240,107,208,115,208,107,208,107,240,107,
+  240,107,240,115,240,107,240,107,208,107,208,107,240,107,208,107,208,115,3,240,
+  115,6,240,107,144,240,115,240,107,208,107,240,107,240,107,208,107,240,115,208,
+  115,240,115,240,115,208,115,211,148,146,148,49,132,207,115,207,107,4,208,107,
+  3,207,107,136,175,107,208,107,208,107,207,107,208,107,196,24,32,0,4,33,
+  4,65,8,133,33,0,32,8,32,8,0,8,32,0,3,0,0,129,65,8,
+  3,33,0,4,65,8,134,97,8,65,8,98,16,98,16,97,8,97,8,4,
+  98,16,129,97,8,7,65,8,135,33,8,33,8,32,0,1,0,33,0,65,
+  8,97,8,5,65,8,3,33,8,148,65,8,98,16,97,8,33,8,32,8,
+  33,0,33,8,33,8,1,0,33,8,65,8,66,8,65,8,33,0,0,0,
+  33,0,33,8,0,0,33,0,65,8,161,3,146,170,90,170,90,203,90,235,
+  90,235,98,12,99,44,99,77,107,109,107,142,115,174,115,175,115,207,115,239,
+  123,16,124,16,124,48,124,48,124,4,81,132,7,114,132,3,146,132,130,147,
+  132,146,132,3,147,132,142,179,132,179,132,179,140,179,132,179,132,211,140,179,
+  140,179,140,211,132,179,132,179,140,211,140,211,140,179,132,8,211,140,141,212,
+  140,211,140,212,140,212,140,211,140,211,140,243,140,211,140,212,140,244,140,244,
+  140,211,140,211,140,5,244,140,130,244,148,244,140,6,244,148,145,20,149,20,
+  149,244,140,244,148,244,148,20,149,244,148,20,149,244,148,244,148,244,140,244,
+  140,20,141,244,140,20,149,20,149,244,148,3,244,140,130,244,148,244,148,6,
+  20,149,134,244,140,244,148,20,149,244,148,244,148,244,140,13,20,149,140,244,
+  140,20,149,20,149,20,141,20,141,244,148,244,140,244,140,244,148,244,140,244,
+  140,20,149,4,244,140,130,20,141,244,140,5,20,141,131,20,149,20,149,20,
+  141,3,244,140,129,212,140,4,244,140,130,20,141,21,149,12,53,149,130,21,
+  149,21,149,4,20,149,6,21,149,3,53,149,130,21,149,53,149,4,20,149,
+  135,21,149,20,149,20,149,53,149,21,149,53,149,21,149,3,53,149,129,21,
+  149,3,53,149,130,21,149,21,149,3,53,149,130,21,149,20,149,4,21,149,
+  135,53,149,21,149,53,149,21,149,20,149,21,149,21,149,4,20,149,129,21,
+  149,4,20,149,4,21,149,132,53,149,20,149,21,149,21,149,3,53,149,129,
+  21,149,4,53,149,130,21,149,53,149,3,21,149,129,53,149,9,21,149,130,
+  244,148,20,149,9,21,149,3,53,149,129,21,149,11,53,149,129,85,149,9,
+  53,149,129,21,149,7,53,149,4,53,157,131,85,149,53,157,53,157,8,53,
+  149,129,53,157,27,53,149,130,53,157,53,157,12,53,149,129,53,157,34,53,
+  149,132,85,149,53,149,53,149,85,149,10,53,149,136,53,157,53,149,53,149,
+  53,157,53,157,53,149,53,149,85,149,4,53,149,147,21,149,244,140,180,132,
+  147,124,50,108,208,99,79,83,205,66,43,42,202,25,201,25,10,34,75,50,
+  172,66,13,83,78,91,143,99,208,115,240,115,5,16,124,129,16,132,4,16,
+  124,149,240,123,16,124,240,123,240,115,142,107,12,91,106,74,8,58,73,58,
+  202,74,203,82,170,82,170,74,45,83,78,83,46,91,46,83,45,83,13,83,
+  13,83,45,83,4,13,83,157,45,91,45,83,13,83,45,83,46,91,78,91,
+  78,99,110,99,110,99,143,99,175,107,240,107,142,107,77,107,142,107,239,123,
+  12,91,207,115,240,115,236,82,4,25,199,49,170,82,236,98,142,115,109,115,
+  109,107,109,115,141,123,6,109,115,143,77,107,109,115,109,115,77,115,109,115,
+  77,107,77,107,207,107,240,107,208,107,208,107,240,115,240,115,208,107,208,107,
+  4,240,107,132,240,115,240,107,240,115,240,107,4,240,115,129,240,107,4,240,
+  115,147,240,107,240,115,208,107,240,115,111,99,135,41,33,0,65,8,65,8,
+  162,16,171,74,240,115,240,107,240,107,208,107,208,107,240,107,208,107,208,107,
+  4,240,107,145,240,115,240,115,240,107,240,107,240,115,240,115,240,107,16,108,
+  240,107,240,115,240,107,240,115,16,116,240,115,240,115,240,107,240,115,3,208,
+  107,129,240,115,5,240,107,129,208,107,5,240,107,144,208,107,240,115,240,115,
+  240,107,208,107,240,115,240,115,240,107,240,115,208,107,207,107,208,107,240,115,
+  240,115,208,107,240,115,4,211,156,133,113,140,240,115,175,107,208,107,208,107,
+  4,207,107,136,208,107,208,107,207,107,240,107,41,66,0,0,163,24,163,16,
+  3,65,8,133,32,0,32,8,32,8,0,0,32,0,3,0,0,131,65,8,
+  33,0,32,0,5,65,8,133,97,8,98,16,97,8,97,8,97,16,3,98,
+  16,130,97,8,97,8,9,65,8,133,33,8,33,8,0,0,33,0,33,8,
+  5,65,8,6,33,8,136,97,16,97,8,33,8,0,0,0,0,1,8,0,
+  0,0,0,4,65,8,134,33,0,0,0,1,8,33,0,0,0,65,8,197,
+  3,147,170,90,170,90,203,90,203,90,235,98,12,99,44,99,77,107,109,107,
+  109,107,142,115,175,115,239,123,239,123,16,124,48,124,48,124,49,124,81,124,
+  3,81,132,5,114,132,5,146,132,135,147,132,146,132,146,132,147,132,179,132,
+  147,132,179,132,6,179,140,135,211,140,179,132,211,140,179,140,179,132,211,140,
+  179,132,7,211,140,4,212,140,3,211,140,4,212,140,132,243,140,244,140,244,
+  140,243,140,5,244,140,136,244,148,244,140,244,140,244,148,244,148,20,149,244,
+  148,244,148,5,244,140,138,20,149,244,148,20,149,20,141,20,149,244,148,20,
+  149,20,149,244,148,20,149,3,244,148,133,20,149,244,148,20,149,20,149,20,
+  141,3,20,149,129,244,148,6,20,149,129,20,141,12,20,149,129,244,140,4,
+  20,149,131,20,141,244,140,20,141,5,244,140,140,20,141,244,140,20,141,244,
+  140,20,141,244,148,244,140,20,141,244,140,20,141,244,148,20,141,7,244,140,
+  129,20,141,4,21,149,10,53,149,4,20,149,3,21,149,139,20,149,53,149,
+  53,149,21,149,53,149,21,149,21,149,53,149,53,149,21,149,21,149,5,20,
+  149,132,53,149,21,149,53,149,21,149,4,53,149,133,21,149,21,149,53,149,
+  21,149,21,149,3,53,149,132,21,149,20,149,53,149,53,149,5,21,149,132,
+  20,149,20,149,21,149,21,149,5,20,149,129,244,148,5,20,149,135,21,149,
+  20,149,21,149,53,149,21,149,53,149,21,149,4,53,149,135,21,149,53,149,
+  53,149,21,149,53,149,53,149,21,149,3,53,149,132,21,149,21,149,53,149,
+  53,149,4,21,149,129,20,149,3,21,149,133,20,149,20,149,21,149,21,149,
+  53,149,4,21,149,133,53,149,21,149,53,149,53,149,21,149,6,53,149,129,
+  53,157,3,53,149,129,53,157,8,53,149,129,53,157,12,53,149,129,85,157,
+  5,53,149,132,53,157,53,149,53,149,53,157,5,53,149,129,85,157,12,53,
+  149,136,21,149,53,149,53,157,53,149,53,149,53,157,53,149,53,157,3,53,
+  149,129,53,157,12,53,149,129,53,157,8,53,149,129,21,149,23,53,149,136,
+  53,157,53,157,53,149,85,149,53,157,53,149,53,149,85,149,5,53,149,130,
+  53,157,53,157,7,53,149,129,53,157,5,53,149,149,21,149,244,140,180,132,
+  115,124,50,116,176,99,78,83,205,66,43,42,201,25,169,25,234,33,75,50,
+  172,58,13,75,78,91,175,99,208,107,240,115,16,124,240,123,12,16,124,138,
+  240,123,175,115,77,99,170,74,41,66,73,66,203,74,235,74,171,74,13,83,
+  3,45,83,132,13,83,13,83,13,75,13,75,8,13,83,148,45,83,78,91,
+  78,91,110,91,110,91,143,99,175,107,207,107,142,107,44,99,142,107,240,123,
+  12,99,175,115,240,115,236,82,4,25,199,49,105,74,12,99,3,109,107,130,
+  109,115,141,115,6,109,115,147,77,107,109,107,77,115,109,115,77,107,77,115,
+  109,107,175,107,208,107,207,107,208,115,208,115,208,107,175,99,175,99,208,107,
+  240,115,240,107,240,107,3,240,115,129,240,107,3,240,115,130,240,107,240,115,
+  3,240,107,131,240,115,240,115,208,115,3,240,115,137,45,91,4,25,33,0,
+  65,8,33,8,37,25,78,91,240,115,240,107,3,208,107,129,240,107,3,208,
+  107,129,240,115,6,240,107,141,17,116,16,116,240,115,240,107,16,116,17,108,
+  16,116,16,116,17,116,16,116,240,115,240,115,240,107,3,208,107,3,240,107,
+  3,240,115,3,240,107,139,240,115,240,107,240,107,240,115,240,107,240,115,240,
+  115,208,115,240,115,240,107,240,115,3,208,107,160,240,107,208,107,207,107,49,
+  132,211,156,210,156,178,156,211,156,211,156,243,156,146,148,16,124,207,107,207,
+  107,208,107,207,107,208,107,208,107,240,107,208,107,208,107,142,107,32,0,65,
+  8,4,33,65,8,65,8,33,8,32,0,0,8,0,8,32,0,3,0,0,
+  133,33,0,65,8,32,8,32,0,33,8,5,65,8,129,97,8,4,98,16,
+  130,97,8,97,8,11,65,8,3,33,8,131,0,0,0,0,33,8,5,65,
+  8,131,33,8,33,8,33,0,3,33,8,130,65,8,97,8,3,33,8,140,
+  32,8,0,0,0,0,33,0,65,8,98,8,97,8,33,8,1,0,33,8,
+  66,8,97,8,114,3,149,170,90,170,90,203,90,203,90,235,98,12,99,44,
+  99,45,107,109,107,142,107,142,115,174,115,207,123,239,123,239,123,16,124,48,
+  124,49,132,49,132,81,132,81,132,6,114,132,8,146,132,132,147,132,147,132,
+  179,132,179,132,3,179,140,132,211,140,179,140,211,132,179,132,3,211,140,129,
+  179,140,8,211,140,130,212,140,211,132,4,211,140,135,212,140,211,140,211,140,
+  244,140,211,140,211,140,212,140,3,244,140,129,243,140,7,244,140,3,244,148,
+  130,244,140,244,148,3,244,140,134,20,141,20,149,244,148,20,149,244,140,244,
+  148,3,20,149,130,244,148,20,149,6,244,148,4,20,149,129,20,141,3,20,
+  149,129,244,148,22,20,149,131,244,140,20,149,20,149,9,244,140,130,20,149,
+  244,148,4,244,140,3,20,141,5,244,140,133,20,141,20,141,20,149,53,149,
+  21,149,13,53,149,3,20,149,3,21,149,4,53,149,129,21,149,3,53,149,
+  134,21,149,21,149,20,149,21,149,21,149,20,149,3,21,149,6,53,149,4,
+  21,149,140,53,149,21,149,53,149,53,149,21,149,53,149,21,149,21,149,20,
+  149,53,149,21,149,53,149,4,21,149,3,20,149,129,21,149,6,20,149,133,
+  21,149,21,149,20,149,21,149,21,149,3,53,149,130,21,149,21,149,17,53,
+  149,4,21,149,130,20,149,21,149,3,20,149,4,21,149,131,53,149,21,149,
+  53,149,3,21,149,139,53,149,53,149,21,149,53,149,21,149,53,149,53,157,
+  53,149,53,149,53,157,53,157,19,53,149,133,53,157,53,149,53,157,53,157,
+  53,149,4,53,157,131,53,149,53,149,53,157,6,53,149,129,53,157,21,53,
+  149,129,53,157,13,53,149,137,85,149,53,149,53,157,53,157,53,149,53,149,
+  53,157,53,149,21,149,25,53,149,138,53,157,53,149,53,157,53,149,53,157,
+  85,157,53,157,53,157,53,149,85,149,7,53,149,133,53,157,53,157,53,149,
+  53,149,85,149,3,53,149,129,53,157,4,53,149,149,21,149,244,140,180,132,
+  115,124,50,108,176,99,47,83,205,66,43,42,169,25,169,17,234,33,43,50,
+  172,58,237,74,78,91,143,99,208,107,240,115,240,123,240,123,6,16,124,129,
+  240,123,5,16,124,148,240,123,240,115,175,115,110,107,203,82,41,66,106,66,
+  12,83,12,83,236,74,13,83,13,75,13,75,237,74,236,74,237,74,237,74,
+  237,82,237,74,237,82,3,13,83,150,237,82,13,83,45,91,78,91,78,99,
+  110,99,78,99,143,99,175,107,208,115,175,107,45,99,109,107,239,123,236,90,
+  174,115,240,115,13,83,4,25,199,49,105,74,203,90,3,77,107,9,109,115,
+  143,77,115,77,115,77,107,77,115,109,115,77,107,175,115,240,115,240,115,208,
+  115,240,115,208,107,175,99,175,99,208,99,4,240,115,3,240,107,132,240,115,
+  240,107,240,107,240,115,4,240,107,3,240,115,134,208,107,240,107,240,107,240,
+  115,204,74,163,16,3,65,8,134,232,49,175,107,208,107,240,107,240,107,208,
+  107,8,240,107,129,208,107,4,240,107,132,16,108,16,116,16,108,16,116,3,
+  240,115,131,17,116,240,115,16,116,3,240,107,139,240,115,240,115,240,107,240,
+  115,240,115,240,107,240,107,240,115,240,107,240,115,240,115,3,240,107,6,240,
+  115,6,240,107,130,208,107,113,140,4,211,156,152,178,156,211,156,211,156,211,
+  164,210,156,81,132,208,115,175,107,207,107,208,107,240,107,240,107,208,107,240,
+  115,69,41,0,0,195,24,130,16,65,8,33,8,0,0,32,8,0,8,32,
+  8,3,0,0,133,33,8,65,8,32,0,33,8,33,8,5,65,8,3,98,
+  16,135,97,8,97,8,65,8,65,8,97,8,65,8,97,8,9,65,8,135,
+  33,8,33,8,33,0,0,0,0,0,33,0,97,8,8,65,8,129,33,8,
+  4,65,8,130,32,8,32,0,4,0,0,135,32,0,65,8,98,16,65,8,
+  33,0,66,8,195,16,120,3,146,170,90,203,90,203,90,203,98,235,98,12,
+  99,44,99,77,107,77,107,109,107,142,115,175,115,207,115,239,123,16,124,16,
+  124,49,124,48,124,3,81,132,132,114,132,114,132,113,132,114,132,11,146,132,
+  141,178,132,179,132,179,140,179,140,179,132,211,140,179,140,211,140,179,132,211,
+  140,211,132,179,132,179,132,9,211,140,132,212,140,211,140,212,140,212,140,3,
+  211,140,134,212,140,211,140,211,140,244,140,211,140,243,140,6,244,140,134,244,
+  148,244,148,20,149,244,140,244,148,244,148,3,20,149,131,244,148,244,140,244,
+  148,4,244,140,3,244,148,130,20,149,244,140,5,244,148,135,20,149,20,149,
+  244,140,244,140,244,148,20,149,244,148,28,20,149,132,244,140,20,149,20,141,
+  20,149,10,244,140,129,20,141,4,244,140,131,20,141,20,141,244,140,4,20,
+  141,134,20,149,20,141,52,149,53,149,53,149,21,149,9,53,149,3,21,149,
+  141,20,149,21,149,20,149,20,149,21,149,21,149,20,149,53,149,53,149,21,
+  149,53,149,21,149,53,149,4,21,149,132,20,149,21,149,21,149,20,149,4,
+  53,149,130,21,149,53,149,3,21,149,134,20,149,21,149,21,149,20,149,21,
+  149,21,149,3,53,149,3,21,149,132,53,149,21,149,21,149,20,149,5,21,
+  149,10,20,149,133,21,149,20,149,21,149,53,149,53,149,3,21,149,6,53,
+  149,4,21,149,6,53,149,5,21,149,3,20,149,133,21,149,20,149,21,149,
+  21,149,53,149,4,21,149,130,53,149,21,149,11,53,149,132,53,157,53,157,
+  53,149,53,157,22,53,149,130,53,157,53,157,22,53,149,129,21,149,22,53,
+  149,133,53,157,53,149,85,149,53,157,53,157,25,53,149,129,53,157,3,53,
+  149,142,53,157,53,149,53,149,85,149,85,157,53,149,53,157,85,157,85,157,
+  85,149,85,149,53,149,85,149,53,157,3,53,149,3,53,157,134,53,149,53,
+  149,53,157,53,149,53,157,53,157,5,53,149,149,21,141,244,140,180,132,115,
+  124,18,116,176,99,79,83,173,66,43,42,202,25,137,17,202,25,43,42,140,
+  58,205,74,46,83,142,99,175,107,240,115,240,115,240,123,4,16,124,129,240,
+  123,4,16,124,129,240,123,3,16,124,139,240,123,240,115,207,115,175,115,45,
+  99,171,82,236,82,45,83,13,83,237,74,237,82,6,237,74,160,237,82,237,
+  82,237,74,13,75,13,83,13,83,13,91,45,91,78,99,78,99,110,99,110,
+  99,142,107,175,107,207,115,143,107,77,99,142,107,239,123,12,99,175,115,208,
+  115,13,83,4,25,166,49,138,74,235,90,109,107,77,107,77,107,76,107,141,
+  115,4,109,115,138,109,107,109,115,108,115,108,115,109,115,109,115,76,107,109,
+  115,77,107,174,107,4,240,115,132,208,115,208,107,208,107,208,115,14,240,115,
+  150,240,107,208,107,208,107,240,115,240,107,240,107,240,115,240,115,175,107,41,
+  58,65,0,65,8,65,8,130,16,171,74,208,115,208,107,240,107,208,107,240,
+  107,208,107,208,107,5,240,107,129,241,107,5,240,107,139,16,116,240,107,17,
+  116,240,115,16,108,17,116,16,108,240,115,240,115,240,107,240,107,3,240,115,
+  141,240,107,240,115,240,107,240,107,240,115,240,107,208,107,240,107,240,115,240,
+  107,240,107,240,115,240,115,4,240,107,130,240,115,240,115,4,240,107,132,240,
+  115,208,107,178,148,178,156,3,210,156,132,179,156,211,156,178,156,210,156,3,
+  211,156,154,114,140,240,115,175,107,208,107,240,107,208,107,208,107,236,82,0,
+  0,65,8,4,33,65,8,33,8,32,8,0,0,32,0,0,0,0,0,0,
+  8,0,0,33,8,65,8,32,8,33,8,65,8,33,8,9,65,8,133,97,
+  8,97,8,65,8,65,8,97,8,6,65,8,6,33,8,133,32,0,0,0,
+  1,0,33,0,97,8,13,65,8,140,33,8,0,0,0,0,0,8,0,0,
+  0,0,0,8,33,8,65,8,98,16,98,16,130,8,77,3,146,170,90,202,
+  90,203,90,235,98,235,98,12,99,44,99,77,107,109,107,142,115,142,115,175,
+  115,207,115,239,123,16,124,16,124,49,132,49,132,3,81,132,133,113,132,114,
+  132,146,132,146,132,146,140,3,146,132,150,146,140,146,132,146,132,147,132,146,
+  132,146,132,147,132,179,132,179,140,179,132,179,140,179,140,211,140,211,140,211,
+  132,211,140,179,132,211,140,179,140,179,140,211,140,179,132,5,211,140,129,212,
+  140,5,211,140,131,212,140,211,140,211,140,4,212,140,136,244,140,212,140,244,
+  140,212,140,244,140,244,140,244,148,244,140,4,244,148,131,20,149,20,141,20,
+  149,3,244,148,3,244,140,6,244,148,129,20,149,3,244,148,137,244,140,244,
+  148,244,148,244,140,244,148,20,149,244,148,20,149,244,148,30,20,149,130,20,
+  141,20,141,5,244,140,145,20,141,244,140,20,149,244,148,20,149,244,140,244,
+  140,20,141,244,140,244,140,20,141,244,148,20,141,20,141,244,148,20,149,20,
+  149,3,21,149,12,53,149,3,21,149,134,20,149,21,149,21,149,20,149,20,
+  149,21,149,5,20,149,131,21,149,21,149,53,149,3,21,149,3,20,149,135,
+  21,149,20,149,21,149,21,149,53,149,21,149,53,149,3,21,149,135,20,149,
+  20,149,21,149,20,149,21,149,21,149,53,149,4,21,149,130,53,149,21,149,
+  3,20,149,4,21,149,6,20,149,131,20,141,20,149,21,149,4,20,149,130,
+  53,149,21,149,4,53,149,129,21,149,9,53,149,132,21,149,53,149,53,149,
+  21,149,3,53,149,3,21,149,131,20,149,21,149,20,149,7,21,149,133,53,
+  149,53,149,21,149,53,149,21,149,36,53,149,132,53,157,53,149,53,149,53,
+  157,22,53,149,129,21,149,23,53,149,129,53,157,30,53,149,5,53,157,130,
+  85,157,85,149,3,53,157,134,53,149,85,157,53,149,85,149,53,149,53,157,
+  5,53,149,136,53,157,53,149,53,149,53,157,53,149,53,149,53,157,53,157,
+  3,53,149,150,21,149,21,149,244,140,180,132,115,124,18,108,176,99,79,83,
+  205,66,42,42,201,25,137,17,201,25,43,42,108,50,205,66,46,83,110,99,
+  175,107,240,115,240,123,240,123,7,16,124,129,240,123,4,16,124,4,240,123,
+  151,208,123,175,115,143,107,77,91,45,83,13,75,237,74,204,74,236,74,236,
+  74,237,74,236,74,236,74,237,82,237,82,237,74,13,75,13,75,13,83,237,
+  82,13,91,46,91,78,99,3,110,99,147,143,107,175,107,207,115,175,107,12,
+  99,109,107,240,123,44,99,142,107,240,115,46,91,4,25,198,49,138,74,235,
+  90,77,107,109,107,77,107,77,115,7,109,115,129,77,115,5,109,115,130,109,
+  107,174,107,3,240,115,129,208,107,5,240,115,129,240,107,3,240,115,129,240,
+  107,7,240,115,3,240,107,129,208,107,3,240,107,141,240,115,208,115,240,115,
+  110,99,167,41,33,0,65,8,33,8,69,33,78,99,240,107,208,107,208,107,
+  10,240,107,129,241,115,3,240,107,130,16,116,16,116,6,17,116,132,241,115,
+  240,107,240,115,240,107,3,240,115,5,240,107,133,208,107,240,115,240,115,240,
+  107,240,107,3,240,115,129,240,107,6,240,115,136,240,107,240,107,208,107,239,
+  115,111,140,109,148,142,148,210,156,8,211,156,144,243,156,243,156,178,148,49,
+  132,239,115,208,107,207,107,240,107,228,24,0,8,227,24,98,16,33,8,33,
+  0,0,0,32,0,4,0,0,133,33,0,98,8,65,8,32,8,33,8,9,
+  65,8,129,98,8,3,65,8,130,97,8,97,8,3,65,8,3,33,8,5,
+  65,8,131,33,8,33,8,32,0,3,0,0,129,65,0,14,65,8,138,33,
+  0,33,0,0,0,0,8,0,8,0,0,0,8,1,8,33,0,65,8,104,
+  3,145,171,90,203,90,235,90,235,98,236,98,12,99,44,99,77,107,77,107,
+  109,107,142,115,175,115,207,115,239,115,240,123,16,124,48,132,3,81,132,131,
+  113,132,114,132,114,132,9,146,132,130,147,132,146,132,4,179,132,132,179,140,
+  179,132,211,140,179,140,4,211,140,132,179,140,211,140,179,140,179,140,12,211,
+  140,130,244,140,211,140,3,212,140,130,244,140,212,140,6,244,140,131,244,148,
+  244,140,244,140,3,244,148,136,244,140,244,148,244,148,244,140,244,140,244,148,
+  244,140,244,140,4,244,148,3,244,140,4,244,148,4,244,140,131,244,148,20,
+  149,244,140,28,20,149,135,21,149,20,149,20,149,21,149,20,141,20,141,20,
+  149,6,244,140,132,20,141,244,140,20,141,20,141,4,244,140,129,20,149,3,
+  20,141,130,20,149,20,141,3,21,149,131,53,149,53,149,21,149,4,53,149,
+  129,53,157,6,53,149,3,21,149,135,20,149,20,149,21,149,20,149,21,149,
+  20,149,20,149,5,21,149,141,20,149,21,149,20,149,21,149,21,149,20,149,
+  21,149,21,149,20,149,21,149,53,149,21,149,53,149,3,21,149,134,20,141,
+  21,149,20,149,20,149,21,149,20,149,6,21,149,129,53,149,8,21,149,6,
+  20,149,129,244,140,3,20,149,131,21,149,20,149,20,149,4,21,149,4,53,
+  149,129,21,149,9,53,149,131,21,149,21,149,53,149,7,21,149,3,20,149,
+  6,21,149,133,53,149,21,149,53,149,21,149,21,149,9,53,149,134,53,157,
+  53,149,53,157,53,149,53,149,53,157,15,53,149,129,53,157,4,53,149,129,
+  53,157,10,53,149,129,53,157,38,53,149,141,86,157,53,157,53,149,53,157,
+  53,157,53,149,53,157,53,149,53,149,21,149,53,149,53,149,21,149,3,53,
+  149,129,21,149,13,53,149,132,53,157,53,157,53,149,53,149,3,85,149,139,
+  85,157,53,157,53,157,85,157,53,149,53,149,85,149,85,157,53,149,53,157,
+  53,157,3,53,149,129,53,157,3,53,149,133,53,157,53,157,85,157,85,157,
+  85,149,4,53,149,147,21,149,244,140,180,132,147,124,50,108,176,99,79,83,
+  205,66,43,42,202,25,136,17,169,25,10,34,107,50,205,74,14,91,110,99,
+  175,107,240,115,3,240,123,6,16,124,129,240,123,3,16,124,6,240,123,134,
+  207,115,175,115,143,107,78,91,45,83,237,82,3,204,74,136,237,74,236,74,
+  237,74,237,74,236,82,13,83,13,83,237,82,3,13,83,148,46,91,78,99,
+  110,99,110,99,142,99,142,107,175,107,175,107,143,107,45,99,110,107,239,123,
+  44,99,110,107,207,115,78,91,4,25,166,49,105,74,203,90,4,77,107,130,
+  109,115,141,115,4,109,115,137,77,115,77,115,109,115,77,115,109,115,109,115,
+  77,107,77,115,174,115,3,240,115,130,240,107,240,107,15,240,115,3,240,107,
+  133,208,115,208,107,240,107,240,115,208,107,3,208,115,137,240,115,45,91,4,
+  25,33,8,65,8,65,8,41,58,207,107,240,107,4,208,107,8,240,107,131,
+  240,115,240,115,16,108,3,16,116,131,17,116,17,116,16,116,4,240,115,136,
+  240,107,240,115,240,115,208,107,240,107,240,115,240,107,208,107,5,240,107,134,
+  208,107,240,115,240,107,240,115,240,107,240,115,4,240,107,5,240,115,159,49,
+  132,210,156,111,148,176,156,143,148,110,148,210,156,210,156,211,156,178,156,178,
+  156,178,148,211,156,211,156,210,156,211,156,210,156,211,156,114,140,16,124,208,
+  107,106,74,0,0,65,8,195,24,33,8,33,8,32,8,32,8,0,0,1,
+  0,3,0,0,130,163,16,98,16,3,65,8,129,33,8,5,65,8,135,97,
+  8,97,8,65,8,65,8,97,8,65,8,97,8,12,65,8,132,33,0,33,
+  8,33,8,33,0,3,0,0,129,33,8,15,65,8,136,33,8,33,8,33,
+  0,32,0,33,0,33,8,33,8,65,8,105,3,147,203,90,203,90,235,90,
+  235,98,236,98,12,99,44,107,45,107,109,107,109,107,142,115,174,115,207,115,
+  239,123,240,123,16,124,48,124,49,132,81,132,5,114,132,130,146,132,146,140,
+  4,146,132,4,147,132,4,179,132,130,179,140,179,140,3,211,140,137,179,140,
+  211,140,211,140,179,132,179,132,211,132,211,132,211,140,211,132,4,211,140,131,
+  212,140,211,140,212,140,4,211,140,130,212,140,211,140,5,212,140,131,244,140,
+  212,140,243,140,3,244,140,139,244,148,244,148,244,140,244,148,244,140,20,149,
+  244,148,20,149,244,140,20,149,244,148,10,244,140,130,20,149,20,149,3,244,
+  148,4,20,149,129,244,140,15,20,149,132,21,149,20,149,20,149,21,149,12,
+  20,149,133,21,149,21,141,20,141,244,148,20,149,14,244,140,4,20,141,3,
+  21,149,131,20,149,53,149,21,149,11,53,149,5,21,149,130,20,149,21,149,
+  4,20,149,4,21,149,132,20,149,21,149,20,149,21,149,3,20,149,130,21,
+  149,20,149,9,21,149,130,20,141,20,141,3,20,149,7,21,149,132,53,149,
+  53,149,21,149,20,149,3,21,149,137,20,149,21,149,20,149,21,141,20,149,
+  20,149,20,141,20,149,21,149,5,20,149,133,53,149,21,149,53,149,53,149,
+  21,149,3,53,149,129,21,149,13,53,149,6,21,149,130,20,149,20,149,4,
+  21,149,129,53,149,3,21,149,129,53,149,3,21,149,9,53,149,134,53,157,
+  53,157,85,157,53,157,53,149,53,157,3,53,149,132,53,157,53,149,53,149,
+  53,157,13,53,149,129,53,157,49,53,149,4,53,157,8,53,149,129,21,149,
+  12,53,149,129,53,157,3,53,149,130,53,157,53,149,3,53,157,180,53,149,
+  53,157,53,149,53,149,85,157,53,157,85,157,85,149,53,157,85,157,85,157,
+  53,157,85,149,85,149,53,149,85,157,53,157,53,157,53,149,85,157,85,157,
+  53,157,85,157,85,157,53,149,53,149,85,149,85,149,53,149,53,149,21,141,
+  244,140,179,132,114,124,18,116,176,99,79,75,173,58,43,42,202,25,104,17,
+  169,25,10,34,107,50,205,74,13,83,78,91,175,107,208,107,240,115,240,123,
+  240,123,5,16,124,131,240,123,240,123,16,124,6,240,123,137,239,115,240,123,
+  240,123,239,115,207,115,175,107,110,99,45,83,205,74,4,204,74,132,236,74,
+  236,82,237,82,236,82,3,13,83,150,237,82,45,91,78,91,78,99,110,99,
+  110,99,143,107,143,107,175,107,175,107,143,107,45,99,109,107,239,123,77,107,
+  110,107,207,107,77,91,4,25,134,49,105,74,203,90,4,77,107,7,109,115,
+  129,76,107,4,109,115,138,77,107,109,107,142,107,240,107,240,115,240,115,240,
+  107,208,107,240,107,208,115,3,208,107,130,208,115,240,107,8,240,115,153,208,
+  115,240,107,208,107,240,115,208,107,240,107,208,107,240,115,208,115,240,115,208,
+  115,240,115,208,115,139,74,130,8,65,8,65,8,195,16,236,82,240,115,240,
+  107,208,107,208,107,240,107,208,107,4,240,107,156,240,115,240,107,16,108,240,
+  115,16,116,16,116,17,116,16,108,16,116,17,116,17,116,16,116,17,116,240,
+  115,240,115,16,116,240,115,240,115,240,107,240,107,208,107,208,115,240,107,208,
+  107,240,107,208,107,208,107,240,115,3,208,107,3,240,115,129,208,115,5,240,
+  115,142,240,107,240,115,240,115,208,115,146,148,178,156,177,148,111,140,176,148,
+  109,148,110,148,110,140,177,156,178,156,4,211,156,129,210,156,5,211,156,139,
+  178,148,110,107,163,24,0,0,65,8,65,8,33,8,32,0,0,0,0,8,
+  1,0,3,0,0,135,130,16,33,8,65,8,65,8,33,8,65,8,33,8,
+  5,65,8,129,97,8,8,65,8,3,33,8,8,65,8,130,33,8,33,8,
+  4,0,0,131,33,0,65,8,98,8,15,65,8,133,33,0,65,0,33,8,
+  66,8,164,16,150,3,145,203,90,203,90,235,90,235,98,12,99,12,99,44,
+  107,45,107,77,107,109,107,142,107,174,115,207,115,239,123,240,123,16,124,48,
+  124,3,81,132,4,114,132,3,146,132,129,146,140,3,146,132,133,147,132,146,
+  132,179,132,179,140,179,132,6,179,140,4,211,132,132,179,132,211,132,211,140,
+  179,132,7,211,140,3,212,140,134,211,140,244,140,212,140,212,140,211,140,211,
+  140,4,212,140,6,244,140,133,20,141,244,148,244,140,244,140,20,149,3,244,
+  148,3,244,140,129,244,148,8,244,140,136,20,149,244,148,20,149,20,149,244,
+  148,244,148,20,149,244,148,7,20,149,132,21,149,20,149,20,149,21,149,6,
+  20,149,135,21,149,21,149,20,149,21,149,20,149,20,149,21,149,5,20,149,
+  131,21,149,21,149,20,149,3,21,149,3,20,141,129,244,140,3,20,141,4,
+  244,140,129,20,149,6,244,140,3,20,141,135,21,149,20,149,21,149,21,149,
+  53,149,53,149,21,149,6,53,149,130,21,149,53,149,3,21,149,131,20,141,
+  20,149,20,149,3,21,149,134,20,149,20,149,21,149,21,149,20,149,20,149,
+  3,21,149,3,20,149,129,21,149,5,20,149,9,21,149,135,20,149,20,141,
+  20,141,21,149,20,149,21,149,20,149,5,21,149,129,53,149,6,21,149,136,
+  20,149,20,149,21,141,20,141,21,149,20,149,20,149,20,141,4,20,149,130,
+  21,149,21,149,9,53,149,129,21,149,13,53,149,3,21,149,129,20,149,9,
+  21,149,133,53,149,53,149,21,149,53,149,21,149,8,53,149,139,53,157,53,
+  157,85,149,53,149,85,157,53,157,53,157,53,149,85,149,53,157,53,157,50,
+  53,149,129,53,157,13,53,149,137,85,149,53,149,85,149,85,157,53,157,85,
+  157,53,157,53,149,53,157,5,53,149,3,21,149,13,53,149,130,53,157,53,
+  149,4,53,157,179,85,149,53,157,85,157,53,149,85,149,53,149,53,157,85,
+  157,85,149,85,149,53,149,53,157,53,149,85,149,85,149,53,149,53,157,53,
+  149,53,157,85,149,85,149,53,157,85,157,53,157,85,157,85,157,85,149,85,
+  157,85,149,53,149,53,149,20,141,244,140,179,132,114,124,17,108,176,91,79,
+  75,205,58,43,42,202,25,137,17,137,17,234,33,75,50,172,66,237,82,78,
+  91,143,99,208,107,16,116,3,240,123,4,16,124,3,240,123,129,16,124,8,
+  240,123,134,208,115,208,123,175,115,175,107,110,99,237,74,4,204,74,130,236,
+  74,237,82,3,13,83,135,237,82,237,82,13,83,45,91,78,99,110,99,142,
+  107,3,143,107,146,175,107,175,107,175,115,77,99,109,107,240,123,77,107,109,
+  107,207,107,78,99,4,25,166,49,105,74,202,90,77,107,109,107,77,107,77,
+  107,7,109,115,129,77,115,3,109,115,140,109,107,109,115,109,115,142,107,240,
+  115,208,115,240,115,240,115,208,107,240,107,208,115,240,115,3,208,107,129,240,
+  107,6,240,115,137,240,107,240,115,240,115,208,107,240,115,208,115,240,107,240,
+  115,240,115,5,208,115,136,240,115,175,107,8,58,65,0,65,8,33,0,134,
+  41,110,99,7,208,107,131,240,107,208,107,240,115,3,240,107,131,16,108,240,
+  115,240,115,3,240,107,134,17,116,17,116,16,116,16,108,16,108,240,107,4,
+  240,115,137,240,107,208,107,208,107,240,107,240,107,240,115,208,115,208,115,240,
+  107,3,208,107,133,208,115,240,115,240,107,240,115,240,107,3,240,115,134,240,
+  107,240,115,240,107,240,115,178,148,178,148,3,178,156,136,144,148,111,148,177,
+  148,178,156,178,148,177,148,178,156,210,156,4,211,156,137,178,156,210,156,211,
+  156,210,156,243,164,20,165,174,115,134,49,33,8,3,0,0,3,32,8,136,
+  32,0,0,0,98,8,65,8,33,8,65,8,33,8,33,8,13,65,8,4,
+  33,8,4,65,8,129,65,0,4,65,8,137,33,8,33,8,33,0,32,0,
+  0,0,0,0,1,0,33,0,65,8,3,97,8,131,65,8,65,8,97,8,
+  5,65,8,137,98,8,65,8,97,8,98,8,65,8,98,8,196,8,168,33,
+  9,42,134,3,150,203,90,203,90,235,90,235,98,12,99,12,99,44,99,77,
+  107,77,107,109,107,142,107,174,115,175,115,239,123,239,123,16,124,48,124,81,
+  132,81,132,113,132,114,132,114,132,7,146,132,136,146,140,146,132,147,132,146,
+  132,146,140,179,140,179,132,179,132,5,179,140,134,179,132,211,132,211,132,179,
+  132,179,132,211,132,3,211,140,136,211,132,211,140,211,140,212,140,211,132,212,
+  132,212,140,211,140,4,212,140,129,211,132,3,212,140,132,244,140,244,140,212,
+  140,212,140,4,244,140,4,244,148,132,20,141,20,141,20,149,244,148,3,20,
+  149,129,244,148,5,244,140,129,244,148,3,244,140,133,244,148,244,148,20,149,
+  20,149,244,148,3,20,149,131,20,141,20,149,244,148,5,20,149,131,21,149,
+  20,149,21,149,8,20,149,138,21,149,21,149,20,149,20,149,21,149,20,149,
+  21,149,21,149,20,149,20,149,4,21,149,133,20,149,20,141,20,141,21,149,
+  20,149,3,244,140,129,20,141,8,244,140,131,20,141,244,148,244,140,3,20,
+  141,129,20,149,3,21,149,131,53,149,53,149,21,149,8,53,149,132,21,149,
+  21,149,20,149,20,149,5,21,149,140,53,149,21,149,20,149,20,149,21,149,
+  20,149,20,149,21,149,20,149,20,149,21,149,21,149,4,20,149,11,21,149,
+  129,20,149,8,21,149,130,53,149,53,149,8,21,149,131,21,141,20,149,21,
+  141,3,20,149,130,20,141,244,140,4,20,149,131,21,149,53,149,21,149,8,
+  53,149,129,21,149,13,53,149,130,21,149,53,149,11,21,149,5,53,149,129,
+  21,149,7,53,149,141,53,157,53,149,53,157,53,157,85,157,85,157,85,149,
+  85,157,85,149,53,149,53,149,53,157,53,157,11,53,149,129,53,157,48,53,
+  149,135,85,149,53,149,53,149,53,157,85,149,85,157,85,157,3,53,157,8,
+  53,149,131,21,149,53,149,21,149,15,53,149,129,53,157,3,85,149,140,53,
+  149,53,157,53,157,85,149,53,149,85,157,53,149,85,149,85,157,53,157,53,
+  149,53,149,3,53,157,162,85,149,53,149,85,157,53,157,85,157,85,157,85,
+  149,85,149,86,157,53,157,85,149,53,149,53,149,21,149,244,140,212,132,179,
+  132,114,124,17,108,176,91,79,83,205,66,43,42,202,25,136,17,137,17,233,
+  33,43,50,140,58,237,74,78,91,143,99,208,107,240,115,3,240,123,4,16,
+  124,12,240,123,129,240,115,3,207,115,130,143,107,13,83,4,204,74,141,236,
+  82,13,83,13,91,13,91,13,83,237,82,237,90,13,83,45,91,78,99,110,
+  99,110,99,142,107,3,143,107,142,175,107,143,107,77,99,142,107,239,123,109,
+  107,77,107,207,107,110,99,37,33,166,49,105,74,203,90,77,107,3,109,107,
+  9,109,115,130,77,115,109,107,3,109,115,140,142,107,208,115,208,115,240,115,
+  240,107,240,115,208,115,208,115,240,115,208,115,208,115,240,107,16,240,115,145,
+  240,107,208,107,208,107,240,107,240,107,208,107,208,107,110,99,69,33,33,0,
+  65,8,98,8,106,66,208,107,240,107,208,107,208,107,8,240,107,130,240,115,
+  240,107,3,240,115,140,16,116,240,107,240,115,16,116,240,107,17,116,240,115,
+  17,116,240,115,240,107,240,115,240,115,3,240,107,131,208,107,240,107,240,115,
+  4,240,107,133,240,115,208,107,240,115,240,115,240,107,3,240,115,129,208,115,
+  3,240,115,131,208,107,48,132,178,148,4,178,156,153,179,156,178,156,178,156,
+  178,148,211,156,111,148,143,148,111,148,178,156,210,156,211,156,178,156,178,156,
+  210,156,210,156,178,156,178,156,211,156,243,156,20,165,178,148,138,74,98,8,
+  0,0,0,0,3,32,8,135,0,0,65,8,98,16,33,8,65,8,33,8,
+  33,8,12,65,8,6,33,8,3,65,8,130,65,0,65,0,7,65,8,136,
+  33,0,0,0,1,0,33,0,33,0,98,8,98,8,97,8,5,98,8,140,
+  97,8,98,16,98,16,97,8,97,8,98,8,98,8,196,8,102,17,74,42,
+  236,66,203,74,131,3,149,203,90,235,98,235,90,12,99,236,98,12,99,12,
+  99,45,107,77,107,109,107,142,107,142,115,207,115,239,123,239,123,16,124,48,
+  132,81,132,81,132,113,132,114,132,7,146,132,133,146,140,146,140,146,132,146,
+  132,146,140,4,179,132,3,179,140,140,211,140,179,140,179,132,179,132,211,140,
+  211,140,179,132,179,140,211,132,211,140,179,132,179,140,3,211,140,137,211,132,
+  211,132,211,140,212,140,211,140,211,140,244,140,212,140,212,140,9,244,140,3,
+  244,148,134,244,140,244,140,20,141,244,140,20,149,20,141,3,20,149,129,244,
+  140,4,20,141,3,244,148,130,20,149,244,148,18,20,149,129,21,149,6,20,
+  149,3,21,149,3,20,149,146,21,149,20,149,20,149,21,149,21,149,20,149,
+  21,149,20,149,20,149,21,149,20,149,21,149,20,149,21,149,20,149,20,141,
+  244,140,20,141,8,244,140,3,20,141,135,20,149,20,141,20,141,21,149,21,
+  141,20,149,21,141,4,21,149,5,53,149,137,21,149,53,149,53,149,21,149,
+  21,149,20,149,21,149,21,149,21,141,5,21,149,135,20,149,20,149,21,149,
+  21,149,20,149,21,149,20,149,3,21,149,133,20,141,21,149,21,149,20,149,
+  20,141,10,21,149,129,20,141,3,21,149,129,20,149,8,21,149,129,53,149,
+  6,21,149,143,20,149,21,149,20,149,21,149,20,141,21,141,20,141,20,149,
+  20,149,244,148,20,149,20,149,21,149,53,149,21,149,7,53,149,129,21,149,
+  15,53,149,15,21,149,130,53,149,21,149,8,53,149,130,85,157,53,149,3,
+  85,157,4,85,149,136,53,149,53,157,53,157,53,149,85,149,53,149,85,149,
+  85,149,13,53,149,129,85,149,34,53,149,130,53,157,53,157,10,53,149,134,
+  85,157,53,149,85,157,85,149,85,157,85,157,25,53,149,140,85,149,85,149,
+  85,157,53,157,85,149,53,149,85,157,53,149,85,157,85,157,85,149,85,149,
+  3,53,157,137,53,149,85,149,85,157,53,157,53,149,85,149,53,157,85,157,
+  85,149,4,85,157,154,86,157,85,157,85,157,53,157,21,149,21,149,20,141,
+  212,140,179,132,82,124,241,107,176,91,79,83,205,66,75,42,201,33,104,17,
+  104,17,169,25,11,42,140,58,237,74,46,91,143,99,207,107,240,115,16,240,
+  123,143,240,115,240,123,240,123,208,115,239,115,207,115,207,115,175,107,13,91,
+  172,74,204,74,204,74,237,82,236,82,13,83,3,13,91,156,237,82,13,83,
+  13,91,45,91,78,99,110,107,142,107,142,107,143,107,175,107,143,107,175,107,
+  142,107,77,99,109,107,239,123,109,107,77,107,175,107,110,99,37,33,134,49,
+  73,66,203,82,45,107,109,107,77,107,77,115,7,109,115,149,77,107,77,115,
+  109,115,109,107,77,107,109,115,109,115,77,107,78,99,176,107,240,115,208,107,
+  240,115,208,115,208,107,240,115,208,115,208,115,240,107,240,115,240,107,4,240,
+  115,141,208,115,240,115,240,107,240,115,240,115,208,107,240,115,208,107,208,115,
+  208,115,208,107,208,107,208,115,5,208,107,134,236,82,163,8,33,8,65,8,
+  4,25,45,91,9,240,107,146,240,115,241,107,16,116,240,107,240,115,240,115,
+  17,116,240,115,240,107,17,116,241,115,240,115,16,116,17,116,240,115,240,115,
+  240,107,240,107,4,240,115,131,240,107,240,115,240,115,5,240,107,129,240,115,
+  3,208,107,129,208,115,6,240,115,131,208,115,114,140,178,148,7,178,156,159,
+  178,148,210,156,111,148,144,148,78,140,143,148,144,148,177,156,210,156,178,156,
+  210,156,179,156,178,148,178,148,178,156,178,156,178,148,211,156,243,156,243,156,
+  110,107,37,33,0,0,0,0,0,8,32,8,0,0,101,41,1,0,33,8,
+  33,8,11,65,8,7,33,8,131,33,0,33,8,33,8,11,65,8,136,97,
+  8,33,8,1,0,33,0,130,8,196,16,163,16,131,16,4,98,8,140,66,
+  8,98,8,98,8,130,8,196,8,69,17,233,33,171,58,236,66,236,74,236,
+  74,204,82,126,3,132,203,90,235,90,235,98,235,98,3,12,99,143,44,99,
+  77,107,77,107,142,107,142,107,174,115,207,115,240,123,16,124,48,124,81,132,
+  81,132,113,132,113,132,114,132,7,146,132,132,147,132,146,132,146,132,179,140,
+  15,179,132,129,211,132,10,211,140,3,212,140,130,244,140,212,140,14,244,140,
+  147,20,141,20,141,244,148,20,149,244,148,20,149,244,140,20,141,244,140,20,
+  141,244,140,244,148,244,140,244,148,20,149,20,149,20,141,20,149,244,140,11,
+  20,149,129,21,149,4,20,149,131,21,149,20,149,21,149,4,20,149,151,21,
+  149,21,149,20,149,21,149,21,149,20,149,21,149,20,149,20,149,21,149,21,
+  149,20,149,20,149,21,149,53,149,53,149,21,149,20,149,20,149,21,149,21,
+  149,21,141,20,149,4,20,141,5,244,140,4,20,141,134,20,149,21,141,20,
+  141,20,149,21,149,21,141,5,21,149,131,53,149,53,149,21,149,4,53,149,
+  131,21,149,21,149,53,149,5,21,149,150,53,149,21,149,21,149,20,149,21,
+  149,20,149,20,149,21,149,20,149,21,149,21,149,20,141,20,149,20,149,21,
+  141,20,149,20,141,21,149,20,149,21,149,21,149,20,149,6,21,149,129,20,
+  149,7,21,149,130,53,149,53,149,4,21,149,130,53,149,53,149,4,21,149,
+  4,20,149,129,21,149,4,20,141,3,20,149,132,21,149,53,149,53,149,21,
+  149,19,53,149,131,21,149,21,149,53,149,15,21,149,9,53,149,3,53,157,
+  129,85,149,3,85,157,136,85,149,85,157,85,157,53,157,85,157,85,157,85,
+  149,85,149,10,53,149,129,53,157,41,53,149,129,85,149,7,53,149,136,85,
+  149,53,149,53,157,85,149,85,149,53,149,85,149,85,149,25,53,149,132,85,
+  149,53,149,53,149,85,157,3,85,149,132,85,157,85,149,53,149,85,157,3,
+  53,157,138,85,157,85,149,53,157,85,157,53,149,53,157,53,157,53,149,53,
+  149,53,157,5,85,157,155,86,157,85,157,85,149,53,149,21,149,21,141,244,
+  140,212,140,179,124,114,116,17,108,144,91,46,75,205,66,75,42,201,25,104,
+  17,104,17,169,25,10,42,107,58,204,66,45,83,110,99,175,107,240,115,240,
+  115,5,240,123,129,16,124,9,240,123,129,207,115,3,240,123,137,207,115,239,
+  115,207,115,142,107,13,91,204,82,204,74,204,74,237,82,4,13,91,136,237,
+  82,237,82,13,83,13,83,45,99,78,99,110,107,110,107,6,142,107,143,77,
+  107,110,107,207,115,109,107,44,99,207,107,142,107,37,33,134,41,73,66,170,
+  82,44,99,77,107,44,99,77,107,14,109,115,146,203,90,8,50,236,82,110,
+  99,175,107,208,115,240,115,240,115,208,115,208,115,240,115,208,115,240,115,240,
+  107,240,107,240,115,240,115,240,107,5,240,115,148,208,115,208,107,208,107,208,
+  115,208,115,208,107,208,115,208,115,208,107,208,115,208,107,208,107,208,115,176,
+  107,74,66,98,8,65,8,65,8,8,50,208,107,4,240,107,130,240,115,240,
+  115,4,240,107,144,240,115,241,115,241,115,240,107,16,116,240,115,241,115,240,
+  115,240,115,16,116,16,116,17,116,240,115,16,116,240,107,16,116,3,240,115,
+  132,208,115,240,115,208,107,240,115,3,240,107,144,240,115,240,107,240,115,208,
+  107,240,107,208,107,240,107,240,107,240,115,208,107,240,107,240,115,240,115,208,
+  115,146,148,178,148,8,178,156,156,178,148,211,156,178,156,211,156,112,148,142,
+  148,110,140,178,156,178,156,177,148,210,156,211,156,178,156,178,156,210,156,178,
+  148,178,148,178,156,210,156,243,156,20,157,113,140,106,74,65,8,0,0,0,
+  0,37,33,130,16,3,33,8,9,65,8,5,33,8,131,65,8,33,8,33,
+  8,12,65,8,154,97,8,66,8,98,8,98,8,163,16,69,33,134,41,135,
+  41,135,33,41,50,42,50,9,42,233,49,9,42,233,41,9,42,74,50,171,
+  58,236,66,13,75,13,75,13,83,12,83,12,83,236,74,204,74,163,3,148,
+  235,90,203,90,235,90,235,98,236,98,12,99,44,99,44,99,77,99,109,107,
+  110,107,142,107,174,115,207,115,239,115,16,124,16,124,49,124,81,124,81,132,
+  5,114,132,7,146,132,133,147,132,147,132,178,132,178,132,179,140,5,179,132,
+  129,179,140,4,179,132,134,211,132,179,132,211,140,179,132,211,140,211,132,4,
+  211,140,138,212,140,212,132,212,140,211,140,211,140,244,140,212,140,244,140,212,
+  140,212,140,8,244,140,129,20,141,4,244,140,134,20,141,244,140,244,148,20,
+  149,20,149,20,141,3,244,140,131,244,148,20,141,244,148,3,20,149,129,20,
+  141,14,20,149,144,21,149,21,149,20,149,20,149,53,149,20,149,21,149,20,
+  149,20,149,21,149,20,149,20,149,21,149,21,149,20,149,21,149,6,20,149,
+  133,21,149,21,149,53,149,21,149,53,149,3,21,149,129,20,149,5,20,141,
+  133,20,149,20,149,244,140,20,141,20,141,3,244,140,132,20,141,20,141,20,
+  149,20,149,10,21,149,130,53,149,21,149,5,53,149,130,21,149,53,149,5,
+  21,149,3,53,149,131,21,149,53,149,21,149,5,20,149,135,20,141,20,141,
+  20,149,21,149,244,148,20,141,20,149,3,21,149,134,20,149,20,149,20,141,
+  20,149,21,149,21,141,12,21,149,129,53,149,3,21,149,150,53,149,21,149,
+  20,149,21,149,21,149,21,141,21,149,20,141,21,149,20,149,21,149,20,141,
+  20,149,20,141,245,140,20,149,20,149,21,149,53,149,21,149,53,149,21,149,
+  5,53,149,129,21,149,9,53,149,129,21,149,7,53,149,131,21,149,21,149,
+  53,149,4,21,149,129,53,149,4,21,149,132,53,149,21,149,53,149,21,149,
+  7,53,149,134,53,157,85,157,85,149,53,157,85,149,85,149,4,85,157,133,
+  53,149,53,157,53,157,53,149,85,149,9,53,149,129,53,157,34,53,149,131,
+  85,149,53,149,85,149,4,53,149,3,85,149,6,53,149,132,85,157,85,157,
+  53,157,53,149,3,85,149,131,53,149,85,157,85,149,22,53,149,130,85,149,
+  53,149,5,85,149,142,85,157,85,149,53,157,85,157,85,157,53,157,53,149,
+  85,157,85,157,53,157,53,157,85,149,53,149,53,149,3,53,157,5,85,157,
+  155,86,157,86,157,85,157,53,149,21,149,21,141,244,140,212,132,179,132,114,
+  124,17,108,143,91,46,75,173,66,75,42,201,33,137,17,72,9,169,25,10,
+  42,107,58,172,66,13,83,111,91,143,107,208,115,240,115,14,240,123,132,239,
+  115,240,115,240,123,240,123,4,207,115,148,175,107,45,91,236,82,236,74,237,
+  82,236,82,12,83,13,91,45,91,45,91,13,83,237,82,236,82,13,91,45,
+  91,78,99,110,107,110,107,143,107,143,107,4,142,107,143,77,99,109,107,239,
+  123,142,115,44,99,175,107,143,107,69,25,134,41,73,66,170,82,44,107,109,
+  107,45,107,77,107,11,109,115,138,77,107,109,107,109,115,171,90,130,8,69,
+  33,41,58,236,82,110,99,175,107,5,208,115,130,208,107,208,107,8,240,115,
+  130,208,115,208,115,5,208,107,143,240,115,240,107,208,107,240,115,240,115,208,
+  107,208,107,240,115,143,107,134,41,65,0,65,8,195,16,236,74,240,107,3,
+  208,107,7,240,107,129,16,116,4,240,115,145,16,108,17,116,16,116,17,116,
+  240,107,240,115,240,115,240,107,16,108,240,107,240,115,240,115,240,107,240,115,
+  240,107,240,115,208,107,4,240,107,144,240,115,240,115,240,107,240,107,208,107,
+  240,107,240,107,240,115,240,107,240,107,240,115,240,115,16,124,146,148,113,148,
+  146,148,8,178,156,158,178,148,178,156,178,156,210,156,111,148,144,148,179,156,
+  177,148,42,132,75,140,143,148,210,148,179,156,178,148,178,156,178,156,178,148,
+  178,156,210,156,178,148,210,156,243,156,243,156,109,107,4,33,0,0,130,16,
+  33,8,33,0,32,0,11,65,8,3,33,8,14,65,8,145,66,8,98,8,
+  98,16,98,8,98,8,130,8,195,16,5,25,9,50,237,74,78,83,110,91,
+  78,91,78,91,77,91,78,91,78,83,3,45,83,135,13,83,12,83,13,83,
+  236,82,236,74,237,82,204,82,167,3,150,203,90,203,90,235,90,235,98,235,
+  98,12,99,12,99,44,99,77,99,77,107,77,107,142,107,174,115,207,115,239,
+  115,16,124,16,124,49,124,49,124,81,124,114,124,81,124,5,114,132,130,146,
+  132,114,132,3,146,132,130,147,132,146,132,3,147,132,131,179,132,179,132,179,
+  140,6,179,132,138,179,140,179,140,179,132,179,132,211,132,179,132,211,140,179,
+  140,211,132,211,132,3,211,140,4,212,140,17,244,140,3,20,141,132,244,140,
+  20,141,244,140,20,141,3,244,140,133,20,149,20,141,244,148,20,149,244,140,
+  3,20,149,129,20,141,7,20,149,129,244,148,4,20,149,7,21,149,137,20,
+  149,20,149,21,149,21,149,20,149,21,149,20,149,21,149,21,149,3,20,149,
+  129,53,149,5,21,149,135,20,149,21,149,20,149,21,149,21,149,20,141,21,
+  149,4,20,141,131,20,149,20,149,244,140,4,20,141,129,20,149,3,20,141,
+  134,21,149,21,149,21,141,21,149,21,149,20,149,3,21,149,130,53,149,21,
+  149,6,53,149,132,21,149,21,149,53,149,21,149,3,53,149,134,21,149,53,
+  149,21,149,53,149,53,149,21,149,7,20,149,134,21,149,20,149,20,149,20,
+  141,20,141,21,149,3,20,149,130,21,141,20,149,11,21,149,132,53,149,21,
+  149,21,149,53,149,3,21,149,132,53,149,21,149,21,149,53,149,4,21,149,
+  134,20,141,21,141,21,149,21,149,20,141,20,141,3,20,149,130,21,149,21,
+  149,11,53,149,134,21,149,53,149,21,149,53,149,53,149,21,149,6,53,149,
+  129,21,149,5,53,149,5,21,149,131,53,149,21,149,53,149,4,21,149,9,
+  53,149,3,53,157,3,85,157,133,53,157,53,157,85,149,85,149,53,157,18,
+  53,149,132,85,149,53,149,53,149,85,149,27,53,149,134,85,149,53,149,85,
+  149,85,149,53,149,85,149,10,53,149,129,85,149,3,85,157,132,53,149,86,
+  157,85,149,85,149,8,53,149,129,53,157,8,53,149,129,53,157,3,53,149,
+  139,53,157,53,149,53,149,85,157,85,157,53,149,85,149,85,149,85,157,85,
+  149,85,149,4,53,157,142,85,157,53,157,85,149,53,149,85,149,85,149,53,
+  149,53,149,85,149,85,149,85,157,85,149,85,149,85,157,4,86,157,155,85,
+  157,53,149,21,149,20,141,244,140,212,140,147,132,82,124,241,107,144,91,46,
+  75,205,66,75,50,201,25,136,17,72,9,136,25,234,33,75,50,172,66,13,
+  83,78,91,143,107,207,107,240,115,240,123,239,123,6,240,123,139,207,123,240,
+  123,240,123,239,123,240,123,240,123,240,115,207,115,240,123,240,115,239,115,3,
+  207,115,146,175,107,45,91,237,82,236,82,237,82,236,82,13,83,13,91,45,
+  91,45,91,13,91,13,91,236,90,13,91,45,99,78,99,110,107,110,107,3,
+  142,107,146,143,107,110,107,142,107,77,99,109,107,239,123,174,115,45,99,175,
+  107,111,99,70,33,102,41,73,66,170,82,77,107,109,107,77,107,77,107,11,
+  109,115,148,77,107,77,107,109,115,203,90,130,8,98,8,130,8,4,25,8,
+  50,171,74,45,91,143,107,208,107,208,115,240,115,240,107,240,115,208,107,240,
+  115,208,107,3,240,115,3,240,107,129,240,115,4,208,107,134,240,107,208,107,
+  240,115,240,115,208,107,208,115,3,208,107,137,208,115,13,83,195,16,33,0,
+  65,0,134,33,142,99,240,107,208,107,5,240,107,144,16,108,16,108,240,107,
+  240,115,240,115,240,107,240,115,17,116,240,107,16,108,240,115,240,115,16,116,
+  16,116,17,116,240,107,5,240,115,132,208,115,240,115,240,107,208,107,16,240,
+  107,129,48,124,3,178,148,130,112,148,145,148,7,178,156,144,178,148,178,148,
+  178,156,210,156,210,156,178,156,177,148,110,148,108,140,74,132,42,132,109,140,
+  177,148,179,156,179,156,178,148,3,178,156,3,178,148,136,211,156,20,165,49,
+  132,41,66,33,8,0,0,0,0,33,0,10,65,8,3,33,8,16,65,8,
+  143,98,16,130,16,163,16,5,33,5,25,42,50,110,83,110,91,78,91,77,
+  91,45,91,46,91,45,91,45,91,45,83,6,13,83,132,237,82,236,82,236,
+  82,204,82,138,3,5,203,90,143,235,90,12,91,12,99,44,99,77,99,77,
+  107,109,107,142,107,175,115,207,115,239,115,16,116,16,124,49,124,49,124,3,
+  81,124,130,113,124,113,124,3,114,132,132,114,124,114,124,114,132,114,132,4,
+  146,132,6,147,132,130,179,132,147,132,9,179,132,130,179,140,179,132,3,211,
+  132,132,211,140,211,140,212,140,212,140,4,244,140,129,212,140,13,244,140,129,
+  20,141,5,244,140,133,20,141,244,140,244,140,244,148,244,140,3,20,141,129,
+  244,148,3,20,149,129,20,141,13,20,149,130,21,149,20,149,4,21,149,129,
+  20,149,3,21,149,130,20,149,20,149,5,21,149,133,20,149,21,149,20,149,
+  20,149,21,149,3,20,149,147,21,149,20,149,52,149,20,141,20,141,20,149,
+  21,149,20,149,20,149,21,149,20,141,20,141,20,149,20,141,244,140,20,141,
+  20,149,20,141,20,149,3,21,149,135,20,141,20,141,21,141,21,149,20,149,
+  20,141,21,141,4,21,149,6,53,149,3,21,149,6,53,149,130,21,149,20,
+  149,4,21,149,7,20,149,135,20,141,21,141,21,141,20,141,21,149,20,141,
+  21,141,4,21,149,130,53,149,20,149,3,21,149,129,53,149,9,21,149,131,
+  53,149,21,149,53,149,8,21,149,130,20,141,21,149,3,20,141,132,21,141,
+  21,149,53,149,21,149,9,53,149,132,21,149,53,149,53,149,21,149,14,53,
+  149,130,21,149,53,149,4,21,149,133,53,149,21,149,53,149,21,149,53,149,
+  4,21,149,8,53,149,142,85,157,54,157,85,157,85,157,86,157,53,157,85,
+  157,85,149,53,149,53,157,53,149,53,149,85,149,85,149,4,53,149,129,53,
+  157,4,53,149,129,53,157,3,53,149,131,85,149,53,149,85,149,4,53,149,
+  129,53,157,22,53,149,133,85,149,85,149,53,149,85,149,85,149,13,53,149,
+  129,53,157,5,85,157,130,85,149,85,149,21,53,149,129,53,157,6,53,149,
+  130,85,157,85,157,3,85,149,3,85,157,134,53,157,85,149,85,157,85,149,
+  85,157,85,157,5,85,149,3,85,157,158,86,157,86,149,86,157,86,157,53,
+  157,53,149,21,149,21,149,244,140,212,140,147,132,82,124,241,107,143,99,46,
+  75,205,66,43,50,201,25,104,17,72,9,104,17,201,33,42,42,140,66,237,
+  74,78,91,111,99,175,107,208,115,240,115,6,240,123,132,208,115,208,115,240,
+  123,239,115,4,240,123,130,207,123,207,123,4,207,115,139,175,115,174,107,77,
+  91,236,82,237,82,237,90,236,82,13,91,13,91,45,99,45,99,4,13,91,
+  131,45,91,46,99,110,99,5,110,107,145,143,107,142,107,77,107,109,107,240,
+  123,174,115,45,99,143,107,77,91,69,33,102,41,73,74,203,90,77,107,77,
+  107,45,107,77,107,14,109,115,143,235,98,134,41,163,16,66,8,65,8,98,
+  8,195,16,134,41,74,58,236,82,45,91,111,99,175,107,208,115,208,115,6,
+  240,115,134,240,107,240,107,208,115,240,115,208,107,208,107,3,208,115,143,240,
+  107,208,107,240,115,208,115,208,107,208,107,207,107,240,115,208,107,106,66,97,
+  0,65,8,130,8,139,74,208,107,3,240,107,132,240,115,240,115,241,115,240,
+  115,4,240,107,129,240,115,4,240,107,137,16,116,17,116,240,107,16,116,240,
+  107,17,116,240,107,16,116,240,115,4,240,107,150,240,115,240,107,240,115,240,
+  107,240,115,208,107,240,107,240,107,208,107,240,107,208,107,208,107,240,107,208,
+  107,240,115,240,107,240,107,208,107,81,140,146,148,146,148,178,148,4,145,148,
+  129,146,148,3,178,156,4,178,148,3,178,156,139,110,148,142,148,142,148,110,
+  148,109,140,75,140,42,132,108,140,176,148,179,156,179,156,3,178,156,139,178,
+  148,146,148,178,148,178,148,210,156,243,156,211,156,12,91,195,24,0,0,0,
+  0,28,65,8,135,98,8,130,16,163,16,228,24,229,24,46,75,110,83,4,
+  78,91,135,45,83,45,91,45,91,45,83,45,83,45,91,45,91,3,13,83,
+  132,12,83,236,82,236,82,204,74,155,3,152,170,82,170,82,171,82,203,90,
+  203,82,203,90,235,90,236,90,236,90,12,99,45,99,77,99,110,99,110,107,
+  174,107,207,107,207,107,240,115,240,115,16,116,16,116,48,124,49,124,49,124,
+  3,81,124,129,82,124,6,114,124,130,114,132,114,132,4,146,132,134,147,132,
+  146,132,147,132,146,124,179,132,146,132,3,179,132,129,147,132,6,179,132,137,
+  211,140,211,140,211,132,211,140,212,140,211,140,244,140,212,140,212,140,8,244,
+  140,129,212,140,17,244,140,131,244,148,20,141,20,141,4,20,149,136,20,141,
+  20,141,20,149,20,149,244,140,20,149,20,141,20,141,3,20,149,133,21,149,
+  20,149,20,149,21,149,21,149,4,20,149,133,21,149,21,149,53,149,21,149,
+  20,149,3,21,149,131,20,149,21,149,20,149,3,21,149,129,53,149,8,21,
+  149,137,20,149,20,141,21,149,21,149,20,149,20,149,21,149,20,141,20,149,
+  4,20,141,142,20,149,20,149,20,141,20,149,20,141,20,141,21,141,20,141,
+  20,141,21,141,21,149,21,141,53,149,21,149,19,53,149,141,21,149,21,149,
+  21,141,20,149,20,149,20,141,244,140,20,149,20,149,244,140,20,149,244,140,
+  20,149,3,20,141,129,20,149,5,21,149,129,20,141,14,21,149,133,53,149,
+  53,149,21,149,21,149,53,149,8,21,149,134,21,141,20,141,21,149,20,141,
+  21,149,21,149,15,53,149,132,21,149,53,149,53,149,53,157,15,53,149,137,
+  21,149,53,149,21,149,53,149,53,149,21,149,53,149,21,149,21,149,7,53,
+  149,131,85,149,85,157,85,149,4,85,157,131,85,149,53,149,53,157,3,53,
+  149,129,85,149,42,53,149,134,85,149,53,149,85,149,53,149,53,149,85,149,
+  12,53,149,130,53,157,53,157,4,85,149,130,85,157,53,157,4,85,149,23,
+  53,149,3,85,149,138,85,157,85,149,85,157,53,157,85,157,53,157,85,157,
+  86,157,53,149,85,157,3,85,149,137,85,157,85,157,53,157,85,149,85,149,
+  85,157,53,157,85,157,85,157,3,86,157,179,85,157,85,157,53,157,53,149,
+  21,149,244,140,212,132,147,132,82,116,17,108,143,99,46,83,205,66,43,50,
+  201,33,105,17,72,9,104,17,169,25,10,42,139,58,237,74,46,91,110,99,
+  175,107,208,115,208,115,207,123,207,115,240,123,240,123,240,115,240,123,207,115,
+  207,115,240,115,240,115,240,123,240,123,207,123,240,123,207,115,207,115,240,123,
+  208,115,208,115,175,107,175,115,175,107,45,91,237,90,3,236,82,139,12,91,
+  13,91,45,91,45,91,13,91,236,90,236,82,236,90,45,91,77,99,110,99,
+  6,110,107,141,142,107,110,107,110,107,207,115,174,115,12,99,143,107,204,82,
+  70,33,101,41,41,66,170,82,44,99,3,77,107,130,109,115,77,115,10,109,
+  115,149,77,115,109,115,77,107,236,90,41,66,37,25,98,8,65,8,65,8,
+  65,0,98,8,228,16,134,41,41,58,171,74,236,82,78,91,110,99,143,107,
+  175,107,176,107,6,240,115,130,208,115,208,107,4,208,115,154,208,107,208,107,
+  208,115,208,107,176,107,208,115,208,115,241,115,110,99,135,41,33,0,65,8,
+  37,25,78,91,240,115,240,107,240,107,240,115,240,115,241,115,240,107,240,107,
+  240,115,240,115,240,107,240,107,5,240,115,143,16,116,17,108,241,115,240,115,
+  240,107,240,115,240,115,240,107,240,115,240,115,240,107,240,115,208,107,240,107,
+  208,107,3,240,107,152,208,107,240,107,240,115,240,115,240,107,208,107,208,107,
+  240,107,208,115,240,115,240,115,208,115,113,140,146,148,146,148,146,156,145,148,
+  178,156,146,148,178,156,145,148,145,148,146,148,178,148,4,178,156,134,178,148,
+  178,156,210,156,43,140,108,140,109,140,3,110,148,135,109,140,76,140,42,132,
+  75,132,143,148,178,148,210,156,4,178,148,138,146,148,178,148,146,148,178,148,
+  211,156,243,156,240,123,166,49,0,0,0,0,27,65,8,139,98,8,131,16,
+  195,16,9,42,110,83,78,91,78,83,77,83,46,91,77,91,77,83,4,45,
+  91,129,13,91,6,13,83,130,236,82,204,74,133,3,129,138,82,3,170,82,
+  132,171,82,203,82,203,90,203,82,3,236,90,135,13,91,77,99,77,99,109,
+  99,110,99,142,99,175,107,3,207,107,3,240,115,131,17,116,16,116,16,116,
+  4,49,116,3,81,124,130,82,124,82,124,6,114,124,130,146,124,146,132,5,
+  146,124,133,147,132,146,132,146,132,147,124,147,132,4,179,132,130,211,132,211,
+  140,5,211,132,130,212,132,211,132,4,212,140,133,212,132,212,140,211,132,212,
+  132,212,140,15,244,140,3,20,141,135,20,149,20,141,20,141,20,149,244,140,
+  20,149,244,140,3,20,149,129,20,141,4,20,149,3,21,149,8,20,149,142,
+  21,149,20,149,21,149,20,149,21,149,20,149,21,149,21,149,20,149,21,149,
+  20,149,21,149,21,149,53,149,4,21,149,137,20,149,21,149,20,149,20,149,
+  20,141,21,149,20,141,21,149,20,149,4,20,141,132,20,149,20,149,20,141,
+  21,149,9,20,141,134,21,141,21,141,21,149,21,149,53,149,21,149,17,53,
+  149,3,21,149,137,21,141,20,141,20,141,20,149,20,149,244,140,20,149,244,
+  140,244,140,5,20,141,134,21,149,21,149,21,141,21,149,21,141,20,141,17,
+  21,149,130,53,149,53,149,7,21,149,129,20,141,6,21,149,13,53,149,130,
+  21,149,21,149,18,53,149,137,21,149,53,149,53,149,21,149,53,149,21,149,
+  21,149,53,149,21,149,10,53,149,134,85,157,85,149,85,149,85,157,53,149,
+  53,157,51,53,149,132,85,149,53,149,53,149,85,149,11,53,149,130,54,157,
+  53,149,4,85,149,129,53,149,4,85,149,129,53,149,4,85,149,16,53,149,
+  134,53,157,53,149,53,149,53,157,53,157,53,149,3,53,157,140,85,149,53,
+  157,53,157,85,157,85,149,53,149,85,157,85,149,85,157,85,149,85,149,85,
+  157,3,85,149,135,53,157,85,157,85,157,85,149,85,157,85,157,86,157,4,
+  53,149,179,21,149,244,140,212,132,147,132,82,116,17,108,176,99,46,83,205,
+  66,43,50,201,25,104,17,72,9,71,9,169,25,10,42,107,58,205,74,46,
+  91,110,99,175,107,208,115,208,115,207,115,207,123,207,123,239,123,240,123,239,
+  115,207,115,207,123,207,115,240,123,208,115,239,123,207,115,240,123,207,115,240,
+  115,207,115,207,115,208,115,207,115,207,115,143,107,45,99,236,90,236,82,237,
+  82,13,91,13,91,3,45,99,137,13,91,236,82,204,82,236,82,13,91,77,
+  91,110,99,110,107,110,99,5,110,107,143,77,107,142,107,240,123,207,115,12,
+  99,142,107,106,66,69,25,134,41,73,66,203,90,44,99,109,107,77,107,45,
+  107,9,109,115,129,109,107,4,109,115,135,109,107,175,115,110,107,171,82,199,
+  49,228,16,97,8,4,65,8,142,98,8,195,16,36,33,102,33,232,41,41,
+  58,139,74,236,82,13,91,78,91,142,107,143,107,208,107,208,115,3,240,115,
+  133,208,115,240,115,208,107,208,115,240,115,5,208,107,153,240,107,240,115,13,
+  83,163,16,65,0,98,8,41,58,175,107,240,115,208,107,240,107,240,115,240,
+  115,240,107,240,115,240,115,16,116,240,115,240,107,240,115,240,115,17,116,240,
+  107,16,108,17,116,4,240,107,153,240,115,240,115,240,107,240,115,240,115,240,
+  107,240,115,240,107,208,107,208,107,240,107,208,107,240,107,240,115,208,115,208,
+  107,240,107,240,107,208,107,240,107,208,115,240,115,208,107,240,115,240,115,4,
+  146,148,129,113,148,3,146,148,135,178,148,146,148,145,148,113,148,146,148,178,
+  156,178,156,3,178,148,159,177,148,75,140,76,140,108,140,109,148,76,140,175,
+  148,144,148,142,140,110,140,108,140,75,132,42,132,109,140,177,148,211,148,179,
+  148,178,148,178,148,146,148,178,148,178,148,146,148,178,148,178,148,243,156,113,
+  140,105,74,65,8,0,0,33,8,24,65,8,136,98,8,163,16,228,8,14,
+  67,110,91,110,91,78,91,45,83,3,78,91,129,46,91,3,45,91,129,13,
+  91,4,13,83,132,237,82,13,83,236,82,204,74,126,3,144,138,74,171,82,
+  170,82,170,82,171,82,203,82,171,82,203,82,203,82,236,82,236,90,236,90,
+  12,91,12,91,45,91,45,99,3,110,99,132,142,99,142,99,143,99,175,99,
+  3,207,107,129,208,107,3,240,107,131,240,115,240,107,16,116,3,17,116,137,
+  49,116,49,116,81,116,49,116,81,124,81,124,81,116,82,124,82,124,7,114,
+  124,4,146,124,130,146,132,147,132,5,179,132,5,211,132,131,211,140,211,132,
+  212,132,4,211,132,130,212,140,212,132,4,212,140,131,244,140,244,140,212,140,
+  6,244,140,135,20,141,244,140,244,140,20,149,20,149,20,141,244,140,4,20,
+  149,4,20,141,7,20,149,137,21,149,20,141,20,149,20,141,20,141,20,149,
+  21,149,21,149,20,149,3,21,149,5,20,149,129,20,141,3,21,149,129,53,
+  149,4,21,149,130,20,149,21,149,3,20,149,130,21,149,20,149,6,20,141,
+  129,20,149,3,20,141,129,244,140,3,20,141,131,244,140,20,141,20,149,3,
+  21,141,131,21,149,20,141,21,149,19,53,149,149,20,149,21,149,21,149,21,
+  141,21,149,20,149,20,149,244,140,20,141,20,149,20,141,244,140,20,141,244,
+  148,244,148,20,141,20,141,21,141,20,141,21,141,21,141,12,21,149,129,20,
+  149,13,21,149,132,20,149,21,141,21,149,20,149,4,21,149,14,53,149,129,
+  21,149,23,53,149,4,21,149,130,53,149,53,149,3,21,149,6,53,149,130,
+  85,149,85,149,3,85,157,51,53,149,130,85,149,85,149,16,53,149,129,85,
+  149,3,53,149,136,85,149,53,149,53,149,85,149,53,149,85,149,53,157,85,
+  149,21,53,149,137,85,149,53,149,85,149,53,149,53,157,85,149,85,149,85,
+  157,85,149,3,85,157,137,53,157,85,157,85,157,85,149,85,157,85,157,85,
+  149,53,149,85,149,7,85,157,168,54,149,54,149,53,149,53,149,21,149,20,
+  141,212,140,147,132,82,116,17,108,176,91,79,83,205,66,42,42,201,33,104,
+  17,39,9,72,9,137,25,234,41,75,58,205,74,13,83,110,99,175,107,207,
+  115,208,115,208,115,207,115,207,123,207,115,207,123,240,123,207,115,207,115,239,
+  123,207,115,240,123,240,123,240,115,7,207,115,136,175,115,175,107,45,99,13,
+  91,236,90,237,90,12,91,45,91,3,45,99,137,13,91,204,82,204,82,236,
+  82,13,91,45,99,77,99,78,99,78,99,5,110,107,152,77,107,142,107,240,
+  115,207,115,44,99,13,99,167,41,4,25,101,41,40,66,170,82,44,99,109,
+  107,77,107,45,107,109,115,141,115,109,115,109,115,76,107,109,115,109,115,77,
+  115,77,115,3,109,115,160,77,115,77,107,109,107,207,115,208,115,176,115,78,
+  99,139,74,199,49,4,25,130,8,65,8,98,16,162,24,227,32,228,32,195,
+  24,130,16,130,16,162,16,195,24,37,33,167,41,232,49,74,66,171,74,236,
+  90,45,91,110,99,143,107,175,107,176,115,3,208,115,143,208,107,240,115,208,
+  107,208,107,240,107,240,107,240,115,207,115,73,66,65,0,65,0,228,16,236,
+  82,240,115,240,107,5,240,115,129,16,116,3,240,107,137,240,115,16,116,240,
+  107,240,107,16,108,17,116,17,116,240,115,16,108,3,17,116,3,240,115,132,
+  240,107,240,115,240,107,240,115,4,240,107,141,208,107,240,115,240,107,240,107,
+  208,107,240,115,208,107,208,107,240,115,240,107,240,115,240,115,145,148,3,146,
+  148,129,113,148,6,146,148,159,113,148,146,148,145,148,145,148,178,148,178,156,
+  178,156,144,148,76,140,75,132,142,148,42,132,75,140,109,140,76,132,109,140,
+  143,148,142,148,110,140,108,140,75,140,41,132,76,140,144,148,178,156,179,156,
+  178,148,146,148,146,148,178,148,178,148,3,146,148,134,211,156,178,148,170,82,
+  65,8,0,0,33,8,21,65,8,135,98,8,130,16,163,16,233,33,110,83,
+  110,91,110,91,4,78,91,131,77,91,78,91,77,91,3,45,91,5,13,83,
+  131,236,82,236,82,204,74,121,3,3,171,82,6,203,82,3,236,82,137,12,
+  83,12,91,12,91,45,91,45,91,77,91,77,91,77,99,109,91,3,110,99,
+  3,142,99,130,175,99,143,99,3,175,99,133,207,107,208,107,208,107,207,107,
+  208,107,4,240,107,3,17,108,129,17,116,6,49,116,132,81,116,81,116,82,
+  116,82,116,3,114,124,135,146,124,147,124,146,124,146,124,179,132,178,124,147,
+  124,9,179,132,4,211,132,137,212,132,211,132,211,132,212,140,211,132,212,132,
+  211,132,212,140,212,140,8,244,140,133,20,141,244,140,244,140,20,141,20,141,
+  5,244,140,135,244,148,20,141,20,141,244,140,244,140,20,149,20,149,7,20,
+  141,3,20,149,129,21,149,4,20,149,136,21,149,20,149,21,149,20,149,20,
+  149,21,149,21,149,20,149,6,21,149,8,20,141,129,20,149,5,20,141,4,
+  244,140,136,20,141,244,140,244,140,20,141,21,141,21,149,20,149,21,149,4,
+  53,149,129,21,149,17,53,149,3,21,149,130,20,149,20,149,3,20,141,136,
+  244,140,20,141,244,140,20,141,244,140,21,141,20,141,20,149,7,21,149,129,
+  21,141,5,21,149,130,21,141,21,141,4,21,149,129,53,149,5,21,149,129,
+  20,149,3,21,149,129,20,149,3,21,149,129,21,141,5,21,149,11,53,149,
+  129,21,149,24,53,149,5,21,149,139,53,149,21,149,53,149,53,149,21,149,
+  53,149,53,149,53,157,53,149,85,149,85,149,5,53,157,11,53,149,131,21,
+  149,53,149,21,149,7,53,149,129,85,149,24,53,149,130,85,149,85,149,4,
+  53,149,131,85,149,53,149,85,149,13,53,149,133,85,149,53,149,53,149,85,
+  149,85,149,3,53,149,133,85,149,85,149,53,149,53,149,85,149,22,53,149,
+  131,85,149,85,157,53,157,5,85,149,139,85,157,85,157,53,157,85,157,53,
+  157,85,157,85,149,85,157,53,157,85,157,85,149,5,85,157,131,85,149,85,
+  157,85,149,3,53,149,151,21,149,21,141,244,140,180,132,115,124,50,116,176,
+  99,79,83,205,66,43,50,201,25,104,17,71,9,40,9,136,17,233,33,107,
+  58,172,74,13,83,110,91,143,107,208,107,208,115,3,207,115,131,239,123,207,
+  123,208,123,5,207,115,131,240,123,208,115,208,115,5,207,115,137,175,115,175,
+  115,142,107,45,99,12,91,237,90,12,83,12,91,13,91,3,45,99,134,13,
+  91,236,82,204,82,204,82,13,91,45,99,3,78,99,129,110,99,4,110,107,
+  143,109,107,142,107,240,123,239,123,12,99,171,82,4,25,4,25,102,41,8,
+  58,170,82,44,99,77,107,109,107,109,107,8,109,115,150,77,115,77,115,77,
+  107,109,115,77,107,77,107,109,107,175,115,175,107,208,107,207,107,175,107,78,
+  99,171,82,41,66,134,33,4,33,4,33,36,41,37,41,228,32,162,24,4,
+  130,16,156,130,8,130,8,131,16,195,24,4,25,69,33,199,49,41,66,138,
+  74,204,82,13,91,78,91,110,107,175,107,176,107,208,115,208,115,208,107,240,
+  107,208,107,208,107,110,99,102,33,33,0,65,8,199,41,175,107,241,115,4,
+  240,115,5,240,107,147,240,115,241,115,240,115,240,115,16,116,16,116,240,115,
+  17,116,17,116,240,107,17,116,16,116,240,115,240,115,240,107,240,107,240,115,
+  240,115,240,107,3,208,107,134,240,107,240,107,240,115,208,107,208,107,208,115,
+  4,208,107,137,240,107,240,107,207,107,239,123,48,140,81,140,113,148,80,140,
+  113,148,5,146,148,156,113,148,146,148,178,148,178,148,145,148,145,148,178,148,
+  178,156,177,148,111,140,178,148,144,148,77,140,75,140,75,132,75,132,41,132,
+  142,148,111,140,142,140,111,140,109,140,76,132,42,132,74,140,110,148,178,148,
+  178,148,8,146,148,133,178,148,113,140,40,66,0,0,33,0,20,65,8,134,
+  98,8,163,16,196,16,45,67,110,91,110,91,9,78,91,138,77,83,45,83,
+  45,91,45,83,45,83,13,83,13,83,236,82,236,82,204,74,55,3,5,236,
+  82,138,236,90,236,90,12,83,236,82,12,83,12,83,12,91,13,83,12,83,
+  12,83,5,45,91,3,77,91,4,78,91,137,110,91,110,91,142,91,110,91,
+  142,91,142,99,142,91,143,99,143,99,3,175,99,131,175,107,175,99,175,99,
+  3,208,107,130,240,107,208,107,5,240,107,3,17,108,130,49,116,49,116,3,
+  81,116,131,82,116,82,116,82,124,4,114,124,137,146,124,147,124,147,124,146,
+  124,146,124,147,124,147,124,179,132,147,124,10,179,132,133,211,132,211,132,212,
+  140,212,132,212,140,25,244,140,4,20,141,129,20,149,4,20,141,146,20,149,
+  20,149,20,141,21,141,21,149,21,149,20,149,20,141,21,141,20,149,21,149,
+  21,149,20,149,21,149,20,149,20,141,20,149,20,149,4,20,141,132,244,140,
+  20,141,20,141,20,149,4,20,141,4,244,140,4,20,141,134,21,141,21,149,
+  20,149,21,149,21,141,21,149,7,53,149,131,21,149,53,149,21,149,9,53,
+  149,136,21,149,53,149,21,149,20,149,21,149,21,149,20,149,20,149,10,20,
+  141,132,21,141,20,149,20,141,20,141,4,21,149,133,21,141,21,149,21,149,
+  20,141,21,141,23,21,149,131,53,149,21,149,21,149,10,53,149,129,21,149,
+  26,53,149,3,21,149,14,53,149,129,85,149,13,53,149,129,21,149,39,53,
+  149,129,85,149,15,53,149,129,85,149,11,53,149,130,85,149,85,149,19,53,
+  149,149,85,149,53,149,53,149,85,149,53,149,85,149,85,149,85,157,85,149,
+  85,149,85,157,85,149,85,149,53,149,53,157,53,149,53,149,85,157,53,149,
+  85,149,53,149,4,85,157,129,85,149,3,85,157,4,53,149,150,21,149,244,
+  140,180,132,115,124,50,108,209,99,79,83,205,66,43,42,201,25,104,17,39,
+  9,39,9,136,17,233,33,75,50,172,66,13,83,78,91,143,107,207,107,240,
+  115,10,207,115,129,239,115,9,207,115,132,175,115,142,107,45,99,13,91,3,
+  12,91,129,13,91,3,45,99,129,12,91,3,204,82,130,12,91,45,99,3,
+  77,99,153,45,99,77,99,78,99,110,99,110,107,110,107,142,115,207,115,239,
+  123,12,99,41,66,98,8,4,25,102,41,8,66,138,82,44,99,109,107,77,
+  107,77,107,77,115,77,107,77,115,109,115,109,115,3,77,115,129,109,115,4,
+  77,107,146,109,115,77,107,175,107,207,107,207,107,175,107,175,107,208,107,176,
+  107,142,107,45,91,203,82,105,66,8,58,199,57,101,41,4,33,163,16,5,
+  130,16,129,162,16,5,130,16,169,163,16,227,24,37,33,135,41,8,50,106,
+  66,171,74,237,90,46,99,110,99,143,107,175,107,176,107,208,115,236,82,195,
+  16,33,0,130,8,106,66,208,115,241,115,240,115,241,115,240,107,240,115,240,
+  107,241,115,240,107,16,108,17,116,240,115,240,115,241,115,16,116,240,115,17,
+  116,16,116,240,107,240,115,240,107,240,107,5,240,115,134,240,107,240,115,240,
+  107,208,107,240,107,208,107,5,240,107,7,208,107,140,175,115,239,123,240,131,
+  239,131,15,132,81,140,81,140,113,148,113,148,146,148,145,148,113,148,5,146,
+  148,151,145,148,113,148,146,148,178,148,178,148,179,156,179,156,144,148,144,148,
+  43,132,108,140,141,140,110,148,76,140,178,148,111,140,110,140,109,140,76,140,
+  74,132,41,132,77,140,144,148,8,146,148,134,113,140,146,148,16,124,69,41,
+  0,0,33,0,11,65,8,129,65,0,5,65,8,144,97,8,130,16,163,16,
+  107,50,110,83,110,91,78,91,78,99,78,91,77,91,78,91,46,91,78,91,
+  78,91,45,91,45,91,3,45,83,4,13,83,131,237,82,236,82,204,82,77,
+  3,132,13,91,12,91,12,91,13,91,9,45,91,129,44,91,4,45,91,4,
+  77,91,6,78,91,129,110,91,4,78,91,131,110,91,78,91,78,91,3,110,
+  91,3,110,99,132,143,99,142,91,142,91,143,99,7,175,99,131,207,99,208,
+  99,208,107,3,240,107,139,16,108,16,108,17,116,17,116,17,108,49,108,49,
+  108,49,116,50,116,49,116,81,116,4,82,116,6,114,124,140,146,124,146,124,
+  114,124,146,124,114,124,147,124,147,124,179,132,179,124,179,132,211,132,179,132,
+  4,211,132,129,244,140,4,212,132,3,212,140,134,212,132,212,140,212,140,244,
+  140,212,140,212,140,8,244,140,132,20,141,20,141,244,140,244,140,4,20,141,
+  131,244,140,20,141,244,140,4,20,141,135,21,141,21,141,21,149,21,149,20,
+  141,20,141,20,149,5,20,141,130,20,149,244,140,4,20,141,130,244,140,20,
+  141,9,244,140,134,20,141,20,149,21,141,21,141,20,141,21,141,5,21,149,
+  132,21,141,21,149,53,149,21,149,11,53,149,3,21,149,129,53,149,3,21,
+  149,129,21,141,10,20,141,150,21,141,21,141,21,149,20,141,21,149,21,149,
+  20,141,20,141,21,141,21,149,20,149,21,149,20,141,20,149,21,141,20,141,
+  20,141,21,149,21,149,21,141,21,149,20,149,3,21,149,130,20,149,20,149,
+  11,21,149,3,53,149,132,21,149,21,149,53,149,21,149,25,53,149,129,21,
+  149,3,53,149,8,21,149,19,53,149,3,21,149,4,53,149,131,21,149,53,
+  149,21,149,55,53,149,129,53,157,6,53,149,129,85,149,14,53,149,129,21,
+  149,6,53,149,133,85,149,53,157,85,149,53,149,53,149,4,85,149,137,53,
+  157,53,157,85,157,85,157,53,149,85,149,53,149,53,149,53,157,4,53,149,
+  136,85,149,85,157,85,157,85,149,85,149,85,157,85,149,85,149,4,53,149,
+  150,21,141,244,140,212,132,115,124,50,108,176,99,79,83,205,66,75,42,202,
+  33,104,17,71,9,39,9,104,25,201,33,74,50,172,66,13,83,78,91,143,
+  99,176,107,208,115,18,207,115,3,175,115,139,142,107,77,99,236,90,236,90,
+  236,82,236,90,12,91,13,91,45,99,45,99,12,91,3,204,82,152,236,90,
+  45,99,77,99,77,99,45,99,45,99,77,99,77,99,78,107,110,107,142,107,
+  174,115,239,115,16,124,44,99,102,41,33,0,4,25,101,41,8,58,170,82,
+  12,99,109,107,109,107,3,77,107,131,77,115,76,115,109,115,3,77,115,136,
+  77,107,77,115,76,115,109,107,76,107,109,107,77,107,142,107,6,175,107,144,
+  207,115,207,115,207,107,174,107,110,99,45,99,204,82,170,74,73,66,8,58,
+  167,49,101,33,36,25,227,24,195,16,131,16,9,130,16,144,162,16,195,16,
+  4,33,102,33,199,49,73,66,171,74,236,82,45,91,78,99,167,49,65,0,
+  65,8,4,25,12,83,240,115,3,240,107,133,240,115,240,115,16,116,240,115,
+  240,107,3,240,115,133,240,107,241,115,240,115,16,116,16,108,3,16,116,3,
+  240,115,134,16,116,240,107,240,115,240,107,240,107,240,115,4,208,107,4,240,
+  107,6,208,107,132,208,115,240,107,207,107,239,123,3,239,131,139,16,132,48,
+  132,48,140,81,140,81,140,80,140,114,148,114,148,146,148,114,148,146,148,5,
+  145,148,149,178,148,178,156,178,156,178,148,113,148,47,132,13,132,13,132,46,
+  132,113,140,46,132,45,132,78,140,78,140,110,140,109,140,75,132,41,132,76,
+  140,111,148,178,148,4,146,148,137,113,148,113,140,81,140,113,140,178,148,77,
+  107,130,16,0,0,33,8,15,65,8,134,98,8,163,16,168,33,110,83,110,
+  91,110,99,8,78,91,4,45,91,130,13,83,45,83,3,13,83,131,236,82,
+  236,82,204,74,74,3,3,45,91,16,77,91,132,110,91,109,91,78,91,78,
+  91,9,110,91,130,78,91,110,91,4,78,91,4,110,91,131,78,91,110,91,
+  78,91,6,110,91,131,142,91,110,91,142,91,3,143,99,3,175,99,134,208,
+  107,208,99,208,99,208,107,240,107,240,99,4,240,107,4,17,108,130,49,108,
+  49,108,6,49,116,134,81,116,81,116,82,116,82,116,114,116,114,116,3,114,
+  124,132,146,124,147,124,147,132,179,132,3,147,132,13,179,132,131,211,132,179,
+  132,211,132,3,212,132,129,212,140,11,244,140,130,20,141,244,140,10,20,141,
+  131,244,140,244,140,20,141,18,244,140,4,20,141,4,21,141,138,21,149,53,
+  141,21,141,21,149,20,149,52,149,21,149,21,141,53,149,21,149,10,53,149,
+  132,21,149,21,149,53,149,53,149,4,21,149,131,20,141,20,141,21,141,8,
+  20,141,137,20,149,21,141,21,149,21,141,20,141,21,141,20,141,20,141,20,
+  149,5,20,141,139,21,149,20,141,21,149,21,149,20,149,20,141,20,149,21,
+  149,21,149,20,141,20,141,14,21,149,131,53,149,21,149,21,149,21,53,149,
+  135,21,149,53,149,53,149,21,149,21,149,53,149,53,149,4,21,149,129,53,
+  149,4,21,149,13,53,149,132,21,149,21,149,53,149,53,149,3,21,149,132,
+  53,149,21,149,53,149,21,149,3,53,149,3,21,149,12,53,149,129,85,149,
+  54,53,149,129,85,149,14,53,149,134,85,157,53,149,85,149,53,149,85,149,
+  85,157,4,85,149,132,53,149,85,157,53,149,85,149,3,53,149,142,85,149,
+  53,149,53,149,85,149,53,157,53,149,85,149,53,149,85,149,85,157,85,149,
+  85,157,85,157,85,149,4,53,149,151,21,141,244,140,211,132,115,124,50,116,
+  209,99,78,83,205,66,75,50,202,33,104,17,71,9,7,9,104,17,201,33,
+  42,42,172,66,237,74,78,91,143,99,175,107,240,115,208,115,9,207,115,129,
+  207,123,7,207,115,4,175,115,143,77,99,12,91,236,90,236,82,236,82,237,
+  90,13,91,13,91,45,99,12,91,203,82,171,82,203,82,236,90,45,99,3,
+  77,99,145,45,99,77,99,78,99,110,107,110,107,77,99,109,107,239,123,16,
+  124,77,107,195,24,33,0,4,25,102,41,8,58,170,82,12,99,5,109,107,
+  135,76,107,76,107,77,115,76,107,44,107,77,107,76,107,3,77,107,132,109,
+  107,77,115,109,107,142,107,3,175,107,129,207,107,3,175,107,151,207,107,208,
+  107,207,107,208,107,208,115,208,115,208,107,175,107,142,107,110,99,45,91,204,
+  82,139,74,41,66,232,57,134,41,37,33,228,24,195,16,130,16,130,8,98,
+  8,98,16,7,130,16,140,162,16,4,25,70,33,199,49,69,41,97,8,65,
+  8,65,8,102,33,77,91,208,107,208,107,3,240,115,133,17,116,240,115,208,
+  107,240,115,241,115,6,240,115,131,16,116,240,115,240,115,7,240,107,134,208,
+  115,208,107,208,107,240,107,208,107,208,107,4,240,107,193,240,115,208,107,208,
+  107,240,115,208,107,208,115,208,115,208,107,240,107,207,115,207,123,239,123,15,
+  132,239,123,16,132,16,132,48,132,48,132,15,132,48,140,81,140,113,148,113,
+  148,48,140,48,140,113,140,113,148,146,148,145,148,145,148,81,140,239,131,142,
+  115,77,107,77,107,45,99,45,99,44,99,77,107,109,107,109,107,77,107,109,
+  107,142,115,174,115,238,123,14,124,12,124,234,123,11,132,78,140,146,148,146,
+  148,145,148,146,148,113,148,81,140,113,140,81,140,146,148,178,148,203,90,98,
+  8,1,0,33,8,12,65,8,132,97,8,163,16,103,25,111,75,4,110,91,
+  7,78,91,129,77,91,3,45,91,136,13,91,45,83,13,83,13,83,236,82,
+  12,83,236,82,204,74,165,3,134,77,91,77,91,109,91,77,91,77,99,110,
+  99,4,110,91,129,78,91,3,110,91,130,110,99,110,91,4,110,99,140,142,
+  91,142,91,110,91,142,91,142,99,142,91,110,91,142,91,142,91,110,99,110,
+  91,142,91,4,110,91,132,110,99,110,99,110,91,110,91,5,78,91,131,77,
+  91,78,91,110,91,6,78,91,4,110,91,135,142,91,143,99,142,91,143,99,
+  175,99,143,99,143,99,5,175,99,5,208,99,8,240,107,147,16,108,16,108,
+  17,108,17,108,49,116,49,116,50,116,49,108,82,116,82,116,114,116,82,116,
+  82,116,114,124,114,124,114,116,114,124,114,124,114,116,6,114,124,135,146,124,
+  114,124,146,124,146,124,147,124,147,124,179,124,3,179,132,146,211,132,179,132,
+  211,132,211,140,212,132,211,132,211,132,212,132,212,132,244,132,244,132,244,140,
+  244,140,244,132,244,140,244,140,244,132,244,132,20,244,140,132,212,140,212,140,
+  212,132,244,132,5,244,140,3,20,141,129,244,140,4,20,141,140,21,141,20,
+  141,20,141,21,141,21,141,21,149,21,149,53,149,21,149,21,149,53,149,21,
+  149,5,53,149,8,21,149,5,21,141,4,20,141,134,21,141,20,141,20,141,
+  21,141,21,141,245,140,3,20,141,133,20,149,20,149,20,141,20,141,20,149,
+  4,20,141,141,21,149,20,141,20,141,21,149,20,149,21,141,20,141,20,141,
+  20,149,21,149,20,141,21,149,20,149,4,21,149,129,53,149,7,21,149,131,
+  53,149,21,141,21,149,18,53,149,133,21,149,21,149,53,149,21,149,53,149,
+  5,21,149,131,53,149,53,149,21,141,7,21,149,10,53,149,7,21,149,129,
+  21,141,7,21,149,65,53,149,132,85,157,53,149,53,149,85,149,14,53,149,
+  140,85,149,53,149,85,149,85,149,53,149,85,149,85,149,85,157,53,149,85,
+  157,53,157,85,149,4,53,149,130,85,149,85,149,4,53,149,129,85,149,3,
+  53,149,134,85,149,53,149,85,149,85,157,85,157,85,149,4,53,149,151,21,
+  141,244,140,211,132,147,124,50,116,209,99,79,83,237,66,75,42,202,33,136,
+  17,72,17,39,9,72,17,201,33,43,42,140,58,237,74,46,91,143,99,175,
+  107,208,115,240,115,9,207,115,129,207,123,3,207,115,129,175,115,3,207,115,
+  3,175,115,130,142,107,45,99,5,236,90,132,13,91,13,91,12,91,204,82,
+  3,139,74,150,203,82,236,90,12,91,13,99,13,91,13,99,13,91,12,91,
+  12,91,13,91,44,99,142,107,207,115,16,124,109,107,163,16,130,8,4,25,
+  69,41,231,57,138,82,45,107,3,109,107,137,141,115,109,107,109,107,77,107,
+  77,107,109,107,109,107,109,115,109,115,3,109,107,3,77,107,138,142,107,175,
+  115,175,107,175,107,207,107,175,107,207,107,175,107,207,115,175,107,3,207,107,
+  130,208,107,207,107,6,208,115,140,175,107,143,107,77,99,12,91,171,74,74,
+  66,231,49,134,49,37,33,228,24,163,16,130,8,4,98,8,129,98,16,3,
+  130,16,150,98,16,130,16,130,16,65,8,65,8,97,8,134,41,139,74,236,
+  82,46,91,110,99,143,107,207,107,207,107,208,107,240,115,17,116,240,115,16,
+  108,240,107,16,108,16,116,3,240,107,138,240,115,240,115,240,107,240,115,240,
+  107,240,115,240,115,240,107,240,107,208,115,3,240,107,3,208,107,141,240,107,
+  240,107,208,107,208,107,208,115,208,107,207,107,208,107,240,107,240,115,240,107,
+  208,107,207,123,3,239,123,3,239,131,3,16,132,142,48,140,48,132,239,131,
+  12,99,203,90,12,99,142,115,239,131,16,132,16,132,109,107,45,107,12,99,
+  12,99,4,12,91,143,12,99,12,99,13,91,45,99,45,91,12,99,45,99,
+  45,99,77,99,109,107,141,107,172,107,172,115,48,132,113,140,3,146,148,142,
+  113,140,81,140,81,140,49,140,81,140,113,140,114,140,171,82,5,33,196,24,
+  163,16,130,16,98,16,98,8,5,65,8,135,97,8,98,16,195,16,196,16,
+  139,58,175,91,110,99,3,110,91,4,78,91,131,78,99,46,99,78,91,3,
+  77,91,131,45,91,13,83,13,91,3,13,83,131,236,82,236,82,172,74,243,
+  3,133,77,91,77,91,78,91,78,91,110,99,3,110,91,133,142,91,110,99,
+  110,91,110,91,142,91,7,142,99,145,143,99,142,91,143,99,175,99,142,99,
+  142,99,143,99,175,99,143,99,143,99,142,99,142,99,142,91,142,99,142,91,
+  142,91,142,99,13,110,91,134,78,91,110,91,110,91,110,99,78,91,78,91,
+  5,110,91,145,110,99,110,99,143,99,110,99,110,91,142,99,110,91,142,99,
+  143,99,142,91,143,91,143,99,175,99,143,99,175,99,175,99,143,99,7,175,
+  99,132,207,99,208,99,208,107,208,107,4,240,107,135,16,108,17,108,17,108,
+  17,116,17,108,49,108,17,108,8,49,116,130,81,116,81,116,5,82,116,147,
+  114,116,114,116,114,124,114,124,146,124,146,124,147,132,147,124,147,124,147,132,
+  147,132,179,132,179,124,179,132,179,132,211,132,179,132,212,132,212,132,3,211,
+  132,146,179,132,211,132,211,132,212,132,211,132,211,132,212,132,212,132,211,132,
+  212,132,212,140,212,132,212,140,212,132,212,140,212,140,244,132,244,132,8,212,
+  132,5,244,140,134,245,140,244,140,244,140,20,133,20,141,244,140,5,20,141,
+  6,21,149,129,53,149,7,21,149,137,53,149,21,149,53,149,20,149,21,149,
+  21,149,20,141,20,141,21,141,3,20,141,131,20,149,20,141,244,140,5,20,
+  141,134,244,140,20,141,244,140,20,141,20,149,244,140,5,20,141,129,244,140,
+  3,20,141,136,20,149,20,141,20,141,21,141,244,140,20,149,20,141,20,141,
+  4,21,149,129,20,149,7,21,149,129,20,149,7,21,149,13,53,149,3,21,
+  149,129,53,149,9,21,149,129,53,149,3,21,149,130,53,149,53,149,3,21,
+  149,134,53,149,21,149,53,149,21,149,21,149,53,149,4,21,149,134,21,141,
+  20,149,21,149,21,141,20,141,21,149,5,21,141,137,21,149,21,149,21,141,
+  21,149,21,141,21,149,21,149,53,149,21,149,7,53,149,131,85,149,53,149,
+  85,149,4,53,149,132,21,149,21,149,53,149,21,149,40,53,149,129,85,149,
+  3,53,149,130,85,149,85,149,8,53,149,132,21,149,53,149,53,149,54,149,
+  3,53,149,140,85,149,85,149,53,149,85,149,53,149,53,149,53,157,85,149,
+  85,149,53,149,85,149,85,149,4,53,149,129,85,149,6,53,149,130,85,149,
+  53,149,6,85,149,4,53,149,151,21,149,244,140,180,132,147,124,50,116,208,
+  99,79,91,205,74,75,50,201,33,137,25,71,9,7,9,39,17,169,33,10,
+  42,139,58,236,74,45,83,110,99,143,107,208,115,208,115,8,207,115,129,207,
+  123,4,207,115,132,175,115,175,115,207,115,207,115,4,175,115,131,45,91,171,
+  82,171,82,3,139,74,142,106,74,138,74,106,74,73,66,41,58,233,49,9,
+  58,41,58,41,66,41,66,41,58,73,58,41,66,41,66,3,41,58,143,203,
+  82,142,107,239,115,16,124,44,99,37,33,4,33,36,33,69,33,231,57,171,
+  82,44,99,109,107,109,115,142,115,4,109,107,141,77,107,109,107,142,115,141,
+  115,109,115,109,107,142,115,109,107,174,115,174,115,109,107,110,107,142,107,4,
+  143,107,135,175,107,143,107,175,107,175,107,175,115,207,107,207,107,4,208,107,
+  132,240,107,208,107,208,107,208,115,3,240,115,145,208,115,208,115,208,107,143,
+  107,78,99,13,91,171,82,106,74,8,58,166,41,69,33,228,24,162,8,98,
+  16,97,8,65,8,97,8,3,98,16,150,98,8,65,8,65,8,98,8,163,
+  16,228,16,4,33,134,41,8,58,106,66,171,74,13,83,78,99,143,107,175,
+  107,208,107,240,107,16,116,17,116,16,116,240,115,240,107,3,240,115,130,241,
+  115,240,107,3,240,115,7,240,107,133,208,107,208,107,240,107,208,107,240,107,
+  7,208,107,137,240,107,207,107,175,115,239,123,239,123,207,123,239,123,239,131,
+  16,132,3,239,131,139,207,123,236,98,171,82,139,82,171,82,138,82,236,90,
+  142,107,77,107,203,90,236,90,7,12,91,134,13,91,13,91,12,91,45,91,
+  13,91,12,91,6,45,99,158,77,107,174,115,48,132,113,140,113,140,81,140,
+  16,132,16,132,239,123,207,123,239,123,239,123,48,132,16,124,204,82,232,49,
+  135,41,102,41,69,33,4,33,196,24,163,16,131,16,98,8,130,16,195,16,
+  162,16,33,8,196,8,175,91,3,110,91,134,110,99,110,99,78,91,78,91,
+  110,91,78,99,3,78,91,139,45,91,45,91,45,83,45,91,45,91,12,83,
+  13,83,13,83,236,82,236,82,171,74,174,3,3,77,91,6,110,91,130,110,
+  99,110,91,5,142,99,132,143,99,143,99,175,99,143,99,6,175,99,131,174,
+  99,175,99,143,99,3,175,99,140,143,99,175,99,143,99,143,91,175,99,143,
+  91,143,99,143,99,142,99,143,99,143,99,142,91,3,143,99,3,142,91,134,
+  110,91,110,99,142,99,110,91,110,91,142,91,4,110,91,131,142,91,110,91,
+  142,91,3,110,91,3,110,99,137,142,91,110,91,142,91,142,99,143,99,143,
+  91,110,91,142,91,142,91,7,110,91,130,143,91,143,91,3,143,99,4,175,
+  99,3,207,99,133,208,99,208,107,208,99,208,99,240,99,3,208,99,130,240,
+  107,208,107,3,240,107,137,241,107,240,107,16,108,17,108,17,108,49,108,49,
+  108,49,116,49,116,6,82,116,139,114,116,114,124,114,124,114,116,114,124,114,
+  124,147,124,147,116,147,124,146,124,146,124,3,147,124,130,146,124,146,124,4,
+  179,124,3,179,132,129,179,124,3,179,132,131,211,132,179,132,179,132,3,179,
+  124,130,179,132,179,132,6,212,132,130,244,140,212,132,3,244,132,130,244,140,
+  244,132,4,244,140,5,20,141,140,21,141,20,141,21,141,21,149,20,141,21,
+  149,21,149,21,141,21,141,21,149,21,149,53,141,4,21,149,131,20,141,20,
+  141,21,141,3,20,141,11,244,140,129,20,141,4,244,140,149,20,141,20,141,
+  244,140,244,140,20,141,244,140,20,141,244,140,20,141,21,141,244,140,20,141,
+  244,140,20,149,20,141,20,141,21,149,21,149,21,141,21,149,21,149,4,21,
+  141,134,21,149,21,149,21,141,20,141,21,141,21,141,6,21,149,131,53,149,
+  53,149,21,149,5,53,149,9,21,149,129,21,141,8,21,149,130,21,141,21,
+  141,12,21,149,141,21,141,21,141,245,148,245,148,244,148,244,140,20,141,244,
+  140,21,141,245,140,21,141,20,141,20,141,5,21,141,5,21,149,73,53,149,
+  129,21,149,5,53,149,130,85,149,85,149,3,53,149,3,85,149,129,85,157,
+  3,53,149,129,53,157,15,53,149,129,85,149,7,53,149,157,21,141,244,140,
+  180,132,115,124,50,116,208,99,78,83,237,74,75,50,234,33,137,25,71,17,
+  39,9,39,9,136,25,10,42,107,58,204,74,45,83,110,91,143,107,175,115,
+  240,115,207,115,207,115,174,115,175,115,207,115,175,115,8,207,115,130,175,115,
+  207,115,4,175,115,139,142,107,203,82,9,66,232,49,200,49,167,41,167,33,
+  135,41,134,41,134,33,102,33,4,70,33,132,69,33,102,33,70,33,70,33,
+  3,102,33,144,102,41,70,33,138,74,142,107,207,115,16,124,77,107,166,49,
+  134,41,37,33,69,33,8,58,170,82,12,99,77,107,109,115,5,109,107,8,
+  142,115,132,109,107,142,115,142,115,235,90,3,236,82,135,13,83,13,91,13,
+  91,45,91,46,99,78,99,78,99,3,110,99,130,143,107,143,107,4,175,107,
+  132,208,107,176,107,208,107,207,107,3,208,115,144,240,115,240,115,240,107,240,
+  115,208,115,143,107,110,99,13,91,204,82,138,66,8,58,166,41,69,33,227,
+  24,162,16,98,8,5,65,8,151,98,8,130,16,130,16,98,8,98,8,130,
+  16,163,16,228,24,69,33,199,49,41,58,171,74,12,83,78,99,143,99,175,
+  107,208,107,240,115,16,116,17,116,240,115,240,115,16,116,7,240,107,131,208,
+  107,208,107,240,107,3,208,107,137,240,107,208,107,208,115,240,107,208,107,240,
+  107,240,107,208,107,240,107,3,208,107,142,175,115,207,123,239,123,207,123,207,
+  123,239,131,239,131,16,132,207,123,236,98,171,82,171,82,171,74,171,74,3,
+  138,74,138,171,82,171,82,138,74,171,82,204,82,236,90,12,91,12,91,236,
+  90,12,91,3,13,91,132,12,91,12,91,13,91,45,91,4,13,91,139,12,
+  91,13,91,45,99,110,107,207,115,16,124,239,123,207,115,174,115,142,107,142,
+  107,4,110,107,156,175,115,142,107,12,83,138,74,73,66,9,58,199,49,167,
+  49,102,41,37,33,195,24,98,16,33,8,33,8,0,0,236,74,110,91,110,
+  91,110,99,110,99,78,91,110,91,110,99,78,91,78,99,78,91,45,91,46,
+  91,5,45,91,4,13,83,130,236,82,204,74,176,3,129,45,83,4,77,91,
+  130,109,91,78,91,3,110,91,139,110,99,110,91,142,91,110,91,142,99,142,
+  99,143,99,143,99,142,99,143,99,143,99,24,175,99,3,143,99,134,175,91,
+  175,99,175,99,143,99,143,99,175,99,4,143,99,139,142,99,143,99,143,99,
+  142,91,143,99,143,99,142,99,143,99,143,99,142,99,142,99,3,142,91,136,
+  143,91,143,99,142,99,143,99,110,99,142,99,110,91,142,91,10,110,91,137,
+  142,99,110,91,142,99,143,99,143,99,142,99,143,99,143,99,143,91,3,143,
+  99,132,143,91,175,99,175,99,143,99,5,175,99,130,208,99,208,107,3,208,
+  99,132,208,107,241,107,241,107,240,107,5,17,108,5,49,108,129,50,108,4,
+  82,108,3,82,116,129,81,116,4,82,116,130,114,116,114,116,3,114,124,138,
+  146,124,114,124,146,124,146,124,147,124,147,124,146,116,147,116,147,124,147,116,
+  3,147,124,129,179,124,4,179,132,131,180,132,180,124,180,132,6,212,132,134,
+  244,132,244,132,244,140,244,132,244,140,244,140,3,20,141,129,244,140,4,20,
+  141,134,21,141,20,141,20,141,21,149,21,141,20,141,3,21,141,3,20,141,
+  130,244,140,20,141,17,244,140,129,20,141,7,244,140,133,20,141,244,140,244,
+  140,20,141,244,140,3,20,141,141,244,140,20,141,21,141,21,149,21,141,21,
+  149,20,141,21,141,21,149,21,141,21,141,244,140,244,140,5,21,141,130,53,
+  149,21,149,4,53,149,3,21,149,129,53,149,6,21,149,3,21,141,135,20,
+  141,21,141,21,141,245,148,21,141,21,141,20,141,3,21,149,132,21,141,21,
+  141,21,149,21,141,9,21,149,129,21,141,5,244,140,129,245,140,6,244,140,
+  132,20,141,21,141,245,140,20,141,4,21,141,6,21,149,4,53,149,131,85,
+  149,53,149,85,149,50,53,149,131,85,149,53,149,85,149,16,53,149,4,85,
+  149,130,86,157,85,149,3,53,149,130,86,149,85,149,16,53,149,132,85,149,
+  53,149,85,149,85,149,5,53,149,165,21,141,244,140,180,132,115,124,18,116,
+  208,99,111,91,237,74,107,50,234,33,136,25,71,17,39,9,6,9,104,25,
+  233,41,75,58,172,74,13,75,78,91,143,107,175,107,207,115,207,115,175,115,
+  207,115,175,115,175,115,207,115,175,115,207,115,207,115,207,123,207,115,207,115,
+  175,115,207,115,6,175,115,130,142,107,73,66,3,37,33,130,69,33,69,33,
+  6,37,33,6,69,33,153,70,33,69,33,69,33,101,33,69,33,105,74,142,
+  115,239,115,16,124,77,107,167,49,102,41,37,33,69,33,8,58,170,82,44,
+  99,109,107,110,115,109,107,109,115,142,115,142,115,109,115,109,107,4,142,115,
+  130,174,115,174,115,4,142,115,131,171,82,232,49,9,58,3,41,58,149,74,
+  66,74,66,106,66,139,66,139,66,171,74,171,74,172,74,204,74,237,82,237,
+  82,236,82,13,91,13,91,45,91,45,91,77,91,78,99,78,99,110,99,110,
+  99,3,143,99,173,143,107,143,107,175,107,208,107,208,107,176,107,175,107,143,
+  107,78,99,45,91,203,82,106,66,8,58,167,41,37,25,195,16,130,8,65,
+  8,65,8,98,8,98,8,130,8,98,8,98,16,98,8,98,8,97,8,65,
+  8,98,8,130,8,195,16,36,33,134,41,8,58,138,74,204,82,77,91,110,
+  107,175,107,208,107,240,115,240,115,16,116,17,116,240,115,7,240,107,134,208,
+  107,208,107,240,115,240,107,208,107,240,107,7,208,107,142,240,107,208,107,207,
+  107,175,107,174,115,142,115,109,107,77,107,77,107,236,98,171,82,138,74,139,
+  74,139,74,4,138,74,139,106,74,106,74,106,66,74,66,74,66,138,74,171,
+  74,204,82,236,90,13,91,237,90,3,12,91,4,13,91,132,45,99,45,99,
+  45,91,77,99,3,78,99,129,110,99,3,142,107,130,110,107,77,107,4,45,
+  99,157,13,99,13,99,45,99,77,99,77,99,12,91,236,82,171,74,106,74,
+  41,66,200,57,134,41,4,33,195,24,98,16,1,8,70,25,175,91,110,91,
+  110,99,78,99,78,99,110,99,110,91,110,91,78,91,78,91,45,91,77,91,
+  5,45,91,134,45,83,13,91,12,83,13,83,236,82,171,74,123,3,129,45,
+  83,3,45,91,131,77,91,45,91,78,91,3,77,91,136,109,91,110,91,77,
+  91,109,91,110,99,110,91,110,91,110,99,5,142,99,3,143,99,132,175,99,
+  175,99,174,99,174,99,28,175,99,129,207,99,9,175,99,136,143,99,143,99,
+  175,99,143,99,175,99,175,99,143,99,142,99,4,143,99,130,110,91,111,91,
+  3,110,91,145,110,99,142,91,110,91,142,91,142,99,110,91,111,91,110,91,
+  142,91,142,99,142,99,110,99,110,99,110,91,110,99,110,91,110,99,3,110,
+  91,135,111,99,110,99,110,91,110,91,143,91,111,99,143,91,3,143,99,3,
+  175,99,132,176,99,176,99,207,99,175,99,4,208,99,134,208,107,240,107,240,
+  99,240,107,241,99,241,99,3,241,107,5,240,107,130,17,108,17,108,3,49,
+  108,4,49,116,10,82,116,3,114,116,132,114,124,114,124,146,124,146,124,4,
+  147,124,131,179,124,147,124,147,124,3,179,124,131,212,124,211,132,211,132,5,
+  212,132,129,244,140,3,244,132,130,244,140,244,132,3,244,140,129,20,141,10,
+  244,140,131,244,132,244,140,244,140,3,244,132,4,244,140,129,244,132,20,244,
+  140,142,20,141,244,140,21,141,20,141,244,140,21,149,245,140,21,141,21,141,
+  20,141,20,141,21,141,244,140,21,141,3,20,141,4,21,141,131,21,149,21,
+  149,53,149,7,21,149,6,21,141,129,244,140,4,20,141,3,21,141,130,20,
+  141,21,149,3,21,141,140,21,149,21,141,21,141,20,141,21,149,21,149,21,
+  141,244,140,245,140,245,148,245,140,245,140,6,244,140,129,245,140,3,244,140,
+  135,245,140,245,140,244,140,245,140,21,141,245,140,245,140,4,21,141,5,21,
+  149,57,53,149,130,85,149,85,149,19,53,149,136,85,149,85,149,85,157,85,
+  149,85,149,53,149,85,149,85,149,5,53,149,129,85,149,6,53,149,129,85,
+  149,12,53,149,153,53,141,20,141,244,132,179,132,115,124,50,108,208,99,79,
+  91,237,66,107,50,234,33,136,25,103,17,39,9,7,9,71,25,201,41,42,
+  50,171,66,237,74,46,91,110,99,175,107,207,115,207,115,5,175,115,7,207,
+  115,7,175,115,135,110,107,232,57,98,16,163,16,196,16,228,24,4,25,7,
+  37,33,150,37,25,37,25,37,33,37,33,37,25,37,33,69,33,37,33,69,
+  33,36,33,73,66,174,115,207,115,48,124,109,107,134,49,37,33,37,25,69,
+  33,231,57,138,82,44,99,5,109,107,162,141,115,142,115,109,107,141,107,141,
+  115,174,115,142,115,142,115,174,115,142,115,142,115,174,115,142,115,235,90,199,
+  49,232,49,232,49,9,50,8,50,9,58,9,50,41,58,41,58,73,58,73,
+  58,41,58,73,66,73,66,74,58,74,58,106,66,74,66,106,66,106,66,3,
+  138,66,133,171,66,171,74,171,74,204,74,172,74,4,204,74,143,236,74,13,
+  83,45,83,45,91,46,91,77,99,78,99,110,99,78,99,45,91,236,82,138,
+  74,9,58,167,49,36,33,3,65,8,153,97,8,98,8,130,16,195,24,37,
+  33,69,33,69,33,37,33,4,25,4,25,227,16,163,8,163,8,163,16,195,
+  16,4,25,101,33,232,57,106,66,236,82,45,91,110,99,175,107,208,107,208,
+  115,8,240,107,131,208,107,208,107,240,107,14,208,107,139,176,107,175,107,142,
+  99,78,99,13,91,204,82,139,74,106,66,74,66,73,66,41,66,6,73,66,
+  135,106,74,171,74,203,82,203,82,204,82,13,91,45,91,3,77,99,144,110,
+  99,142,107,142,107,175,107,175,107,207,115,207,115,175,107,111,107,142,99,110,
+  99,109,99,77,99,77,99,13,99,13,91,3,236,90,131,204,82,204,90,204,
+  82,3,236,90,147,13,91,12,91,236,82,236,82,204,82,139,74,105,74,41,
+  66,199,49,134,49,4,33,163,16,110,91,110,91,110,99,78,91,78,99,110,
+  91,110,91,4,78,91,129,77,91,3,45,91,130,45,83,45,83,3,13,83,
+  131,12,83,236,82,171,74,215,3,137,12,83,13,83,13,83,45,91,45,83,
+  45,91,45,91,45,83,45,83,6,77,91,140,78,91,78,91,109,91,110,99,
+  110,99,110,91,110,99,110,99,142,99,142,99,142,91,142,91,3,142,99,129,
+  142,91,3,143,99,129,175,99,4,143,99,9,175,99,135,207,99,175,99,207,
+  99,175,99,207,99,175,99,175,99,9,207,99,131,175,99,175,99,208,99,11,
+  175,99,139,143,99,175,99,175,99,143,99,143,91,143,99,175,99,143,99,143,
+  99,143,91,142,99,4,143,99,129,142,99,3,143,99,3,142,99,129,143,99,
+  3,142,91,6,110,91,129,142,99,3,110,91,135,110,99,143,99,143,99,143,
+  91,143,99,143,91,143,91,4,143,99,4,175,99,134,176,99,176,91,176,99,
+  208,99,176,99,176,99,4,175,99,133,207,99,176,99,208,99,208,99,208,107,
+  5,240,107,132,241,107,17,108,241,107,241,107,6,17,108,3,49,108,130,50,
+  116,50,116,4,82,116,145,82,108,82,116,114,116,82,116,114,116,114,116,115,
+  116,147,116,146,116,146,124,147,124,147,124,179,124,179,124,147,124,179,124,179,
+  124,5,179,132,130,211,132,211,132,6,212,132,129,212,140,5,212,132,132,211,
+  132,212,132,212,132,211,132,3,212,132,129,211,132,4,212,132,139,244,132,244,
+  140,244,132,244,132,212,132,244,132,244,140,212,132,244,140,244,132,244,132,10,
+  244,140,5,20,141,147,21,141,244,140,20,141,244,140,20,141,244,140,244,140,
+  20,141,244,140,20,141,21,141,21,149,21,141,21,141,21,149,21,149,20,141,
+  21,149,21,149,7,21,141,130,20,141,20,141,5,244,140,5,20,141,146,21,
+  141,20,141,20,141,21,141,20,141,21,141,21,141,21,149,245,140,21,141,244,
+  140,21,141,244,140,21,141,245,140,244,140,244,140,245,140,4,244,140,131,212,
+  132,244,132,213,140,4,244,140,3,245,140,140,21,141,20,141,20,141,21,141,
+  21,141,21,149,21,141,21,149,21,141,21,149,53,149,21,149,22,53,149,129,
+  21,149,6,53,149,129,21,149,20,53,149,134,85,149,53,149,85,149,53,149,
+  53,149,85,149,11,53,149,129,21,149,3,53,149,130,21,149,21,141,3,53,
+  149,3,85,149,129,85,157,3,85,149,11,53,149,129,85,149,15,53,149,153,
+  21,141,20,141,244,140,179,132,146,124,50,116,208,99,111,83,237,66,107,58,
+  10,42,137,25,103,17,39,17,6,9,39,17,169,33,42,50,139,66,204,74,
+  45,91,110,91,143,107,207,107,207,115,6,175,115,129,207,123,3,207,115,131,
+  175,115,175,115,207,115,6,175,115,165,142,107,232,57,33,8,33,0,33,0,
+  65,0,98,8,130,8,163,16,195,16,196,24,196,16,4,25,37,33,102,33,
+  135,41,135,41,167,49,199,49,232,49,232,57,200,49,232,57,232,57,73,74,
+  174,115,207,123,48,132,77,107,8,58,199,49,101,41,69,33,231,57,138,74,
+  44,99,77,107,4,109,107,131,109,115,142,107,109,107,6,142,115,4,174,115,
+  143,12,91,102,33,167,41,167,41,199,41,200,41,232,49,200,41,232,49,232,
+  57,9,50,9,50,9,58,41,58,41,50,5,41,58,131,73,58,74,58,106,
+  58,5,106,66,136,74,66,74,58,41,50,41,50,9,50,42,50,74,58,107,
+  66,3,106,66,131,139,74,171,74,139,66,4,171,74,163,139,66,41,58,69,
+  33,98,8,65,8,65,8,97,8,98,16,163,16,69,33,200,49,41,58,106,
+  66,106,66,74,66,41,58,41,58,9,50,233,49,199,41,134,41,69,25,4,
+  25,227,16,195,16,4,17,69,33,199,49,73,66,171,82,45,91,110,99,175,
+  107,208,107,208,115,7,240,107,10,208,107,131,175,107,208,107,176,107,7,208,
+  107,165,175,99,142,99,45,91,237,82,171,74,74,66,9,58,41,66,8,58,
+  8,58,9,58,41,66,138,74,203,82,12,91,45,99,110,107,175,115,175,115,
+  207,115,240,115,240,123,16,124,48,124,49,132,49,132,16,124,175,115,110,107,
+  78,99,77,99,45,91,13,91,236,90,236,90,204,82,172,82,6,171,82,130,
+  203,82,171,82,3,203,82,151,204,82,236,82,236,82,204,82,203,82,171,82,
+  138,74,73,74,199,57,236,82,143,99,110,91,110,91,78,99,78,91,110,91,
+  78,91,77,91,78,91,78,91,45,91,45,91,13,91,3,45,91,134,13,91,
+  13,83,13,83,236,82,236,82,204,74,201,3,4,236,82,130,12,83,12,83,
+  3,13,83,129,45,91,3,45,83,130,45,91,45,91,4,77,91,133,78,91,
+  110,91,78,91,110,91,110,99,4,110,91,133,110,99,142,91,110,91,142,91,
+  110,91,4,142,99,133,143,91,143,99,142,91,143,99,142,99,3,143,99,3,
+  175,99,129,143,99,6,175,99,130,207,99,207,99,3,175,99,4,207,99,133,
+  207,107,175,99,207,99,207,99,208,99,8,207,99,130,175,99,207,99,7,175,
+  99,130,207,99,207,99,16,175,99,7,143,99,3,142,99,138,110,99,142,91,
+  143,91,142,99,143,99,143,99,142,91,143,99,143,99,143,91,6,143,99,130,
+  175,99,143,99,9,143,91,129,143,99,6,175,99,132,176,99,176,99,175,99,
+  176,99,6,208,99,132,240,99,241,107,240,107,240,107,5,241,107,5,17,108,
+  4,50,108,129,82,108,3,82,116,129,114,108,6,114,116,132,114,124,115,124,
+  115,124,114,124,7,147,124,135,179,124,147,124,179,124,179,124,147,124,179,132,
+  179,124,3,147,124,3,179,124,137,147,124,179,124,147,124,179,132,179,132,179,
+  124,211,132,179,132,212,132,4,211,132,6,212,132,132,244,132,244,140,212,132,
+  244,132,3,244,140,130,245,140,20,141,3,244,140,129,20,141,6,244,140,136,
+  20,141,20,141,244,140,20,141,20,141,21,141,20,141,20,141,3,21,141,131,
+  20,141,21,141,20,141,5,21,141,5,244,140,146,244,132,244,140,20,141,244,
+  140,244,140,20,141,21,141,245,140,20,141,244,140,20,141,21,141,21,141,20,
+  141,21,141,20,141,20,141,245,140,7,244,140,131,212,140,212,132,212,140,4,
+  212,132,129,244,132,4,244,140,134,245,140,244,140,21,141,244,140,20,141,20,
+  141,4,21,141,5,21,149,10,53,149,129,21,149,9,53,149,132,53,141,53,
+  149,21,149,21,149,6,53,149,129,21,149,17,53,149,133,85,149,53,149,53,
+  149,85,149,85,149,9,53,149,131,53,141,53,149,53,141,4,21,141,131,21,
+  149,53,149,53,141,6,53,149,129,85,149,29,53,149,154,53,141,21,141,245,
+  140,244,140,179,132,114,124,49,116,208,99,110,91,237,74,75,58,234,41,169,
+  25,103,17,39,9,6,9,6,17,136,25,233,41,107,58,204,74,13,83,78,
+  91,142,99,175,107,207,115,8,175,115,3,207,115,130,175,115,207,115,3,175,
+  115,135,174,115,143,115,175,115,142,107,232,57,33,8,33,8,4,33,0,157,
+  33,8,33,0,65,0,65,8,98,8,130,8,196,16,37,33,167,49,41,66,
+  106,74,171,82,171,82,236,90,236,90,106,74,8,58,174,115,239,123,48,132,
+  77,99,203,90,171,82,200,49,69,33,199,57,138,74,44,99,77,107,5,109,
+  107,130,142,115,109,107,3,142,115,139,174,115,142,115,142,115,141,115,142,115,
+  174,115,174,123,12,99,4,25,37,25,70,33,3,102,33,131,134,33,134,41,
+  135,41,3,167,41,132,200,41,200,41,199,49,200,49,5,232,49,131,233,49,
+  9,50,9,58,5,41,58,133,41,50,9,50,41,50,41,50,42,50,4,74,
+  58,140,106,58,73,58,74,66,73,58,74,58,106,58,74,58,74,58,106,66,
+  42,58,102,41,162,16,3,65,8,162,97,8,98,8,163,16,228,24,102,33,
+  232,49,73,66,106,74,171,74,236,82,13,91,236,82,236,82,171,74,138,66,
+  73,66,9,50,167,41,69,25,228,24,195,16,195,16,4,25,101,33,199,49,
+  73,66,203,82,45,91,110,99,143,107,208,107,208,115,240,115,240,107,8,208,
+  107,139,207,107,208,107,207,107,208,107,175,107,208,107,207,107,207,107,176,107,
+  208,107,208,107,3,207,107,3,208,107,192,175,107,143,99,78,91,13,83,204,
+  74,139,66,74,66,9,58,9,58,41,66,73,74,171,82,236,90,12,91,45,
+  99,45,99,109,107,175,107,239,123,240,123,239,115,174,115,109,107,77,99,45,
+  91,45,91,12,91,236,90,236,90,204,82,203,82,203,82,171,82,139,82,139,
+  82,139,74,138,74,138,74,170,74,171,74,171,82,171,82,171,74,171,82,171,
+  82,203,82,235,82,236,90,13,91,45,91,44,99,235,90,44,91,175,107,175,
+  107,142,107,110,99,110,99,78,91,45,91,78,91,77,91,45,91,77,91,3,
+  45,91,136,13,83,13,91,13,83,13,83,12,83,236,82,236,82,171,74,174,
+  3,132,203,74,204,74,236,74,204,74,5,236,74,133,236,82,12,83,13,83,
+  12,83,12,83,4,45,83,130,45,91,45,91,4,77,91,134,78,91,78,91,
+  77,91,110,91,110,91,109,91,9,110,91,133,142,91,110,91,110,99,110,99,
+  110,91,3,142,91,134,142,99,143,99,142,99,142,99,175,99,143,99,4,175,
+  99,129,143,99,9,175,99,132,207,99,175,99,207,99,175,99,3,207,99,132,
+  208,99,208,99,207,99,208,99,10,207,99,139,208,99,207,99,207,99,208,99,
+  207,99,207,99,208,99,207,99,208,107,207,107,207,107,5,207,99,3,175,99,
+  129,207,99,15,175,99,5,143,99,129,142,99,5,143,99,141,143,91,143,91,
+  110,91,111,91,110,91,110,91,142,91,143,91,143,91,143,99,143,91,143,99,
+  143,91,3,143,99,6,175,99,4,176,99,131,207,99,208,99,208,107,10,208,
+  99,133,240,99,240,99,241,99,241,107,241,107,6,17,108,136,49,108,49,108,
+  49,116,50,116,50,108,50,116,49,108,49,116,3,82,116,130,114,116,82,116,
+  16,114,116,131,114,124,114,124,115,124,7,147,124,141,147,132,147,124,179,124,
+  147,124,179,132,179,132,179,124,179,124,179,132,211,132,180,132,212,132,211,132,
+  4,212,132,135,244,132,212,132,212,132,244,132,212,132,212,132,244,140,5,244,
+  132,12,244,140,146,21,141,244,140,244,140,244,132,244,140,244,132,244,140,244,
+  132,244,140,244,132,245,132,244,132,244,132,244,140,245,140,244,140,244,140,244,
+  132,3,244,140,133,245,140,20,141,20,141,244,140,245,140,6,244,140,130,244,
+  132,212,140,9,212,132,135,244,132,244,132,244,140,244,140,245,140,244,140,244,
+  140,3,245,140,132,21,141,20,141,21,141,21,141,3,21,149,12,53,149,130,
+  21,149,53,149,3,21,149,132,21,141,21,149,21,149,21,141,3,53,149,132,
+  21,149,21,149,53,149,21,149,3,53,149,129,21,149,30,53,149,129,53,141,
+  9,21,141,37,53,149,154,53,141,21,141,20,141,244,132,179,132,114,124,49,
+  116,208,99,111,91,237,74,107,58,10,42,168,25,103,17,39,9,38,9,6,
+  17,103,25,233,41,74,58,171,66,237,82,77,91,110,99,175,107,175,107,7,
+  175,115,146,207,115,207,115,175,115,207,115,175,115,174,115,174,115,175,115,175,
+  115,142,107,142,115,175,115,142,107,8,58,65,8,33,8,33,0,33,0,3,
+  33,8,130,33,0,32,0,4,33,0,153,33,8,65,0,131,8,196,16,37,
+  33,134,41,232,57,41,66,135,41,135,49,207,115,207,115,48,132,109,107,171,
+  82,73,66,102,41,36,33,199,49,138,74,12,99,109,107,141,115,109,107,109,
+  107,3,142,115,130,109,107,109,107,3,142,115,131,109,115,174,115,142,115,3,
+  174,115,130,44,99,98,8,3,163,16,136,195,8,195,16,195,16,196,16,228,
+  16,228,16,4,25,5,25,5,37,25,151,69,25,70,25,102,33,70,33,102,
+  33,134,33,135,41,135,33,167,33,167,33,167,41,200,41,168,41,200,49,232,
+  41,200,41,200,41,232,49,8,50,232,49,9,50,9,50,8,50,4,9,50,
+  136,41,50,9,50,9,50,9,58,9,58,102,41,195,16,97,8,3,65,8,
+  140,98,16,97,8,98,16,130,8,195,16,102,33,41,66,170,82,203,90,235,
+  90,203,90,171,82,3,171,74,149,172,74,171,74,138,66,74,58,9,50,167,
+  41,102,33,69,25,37,25,37,25,69,25,134,41,232,49,106,66,204,82,45,
+  91,110,99,143,107,208,107,240,115,240,107,3,208,107,129,207,107,13,208,107,
+  130,207,99,207,107,3,175,107,149,175,99,208,107,208,107,240,107,16,108,240,
+  107,208,107,143,99,45,91,172,82,102,49,231,57,8,66,41,66,73,74,73,
+  74,105,74,170,82,203,90,236,90,12,99,3,12,91,140,236,82,236,90,236,
+  90,236,82,236,90,203,82,203,82,171,82,171,82,138,74,138,74,106,74,4,
+  138,74,129,106,74,4,138,74,146,171,82,171,82,236,82,12,91,77,99,109,
+  107,110,107,207,115,207,115,174,115,174,115,142,107,110,107,77,99,77,99,77,
+  91,77,91,45,91,3,45,83,129,13,91,4,13,83,131,236,82,236,82,171,
+  74,175,3,4,171,66,130,203,74,203,74,5,204,74,3,236,74,135,12,83,
+  236,74,13,83,12,83,12,83,13,83,13,83,3,45,83,133,77,91,45,83,
+  45,83,77,83,77,83,4,77,91,3,78,91,131,110,91,78,91,78,91,3,
+  110,91,129,78,91,4,110,91,134,142,91,110,99,142,91,142,91,110,91,142,
+  91,3,142,99,3,143,99,131,142,99,143,99,175,99,3,143,99,16,175,99,
+  7,207,99,134,208,99,207,99,240,99,208,99,207,99,208,99,3,240,99,136,
+  208,99,208,107,208,99,240,107,240,99,208,107,208,107,240,107,4,208,107,5,
+  208,99,131,207,99,207,99,208,99,4,207,99,129,208,99,3,207,99,9,175,
+  99,3,143,99,132,142,91,143,91,143,91,142,99,5,143,99,130,175,99,175,
+  99,9,143,99,129,143,91,14,175,99,131,208,99,176,99,176,99,6,208,99,
+  129,208,107,3,208,99,129,208,107,3,208,99,134,240,99,240,99,241,99,240,
+  107,241,107,241,107,8,17,108,131,49,108,49,108,17,108,3,49,108,134,50,
+  108,49,108,50,108,50,108,50,116,50,116,7,82,116,136,114,116,114,116,115,
+  124,114,116,114,116,114,124,115,124,115,124,4,147,124,130,179,124,147,124,3,
+  179,124,141,179,132,179,132,179,124,179,132,179,124,179,124,179,132,179,132,211,
+  132,211,132,211,124,212,132,211,132,6,212,132,129,244,132,4,212,132,3,244,
+  132,130,212,132,244,132,11,212,132,3,244,132,129,212,132,3,244,132,7,244,
+  140,131,212,140,212,132,212,140,12,212,132,3,244,140,129,244,132,5,244,140,
+  130,21,141,20,141,6,21,141,136,21,149,21,149,53,141,53,141,53,149,53,
+  149,21,149,21,149,6,53,149,131,53,141,21,141,21,141,12,21,149,131,21,
+  141,21,149,21,149,6,53,149,133,21,149,53,149,21,149,53,149,21,141,15,
+  53,149,130,53,141,53,141,13,21,141,33,53,149,155,53,141,53,149,21,141,
+  21,141,244,140,212,132,179,132,114,116,17,108,208,107,78,91,205,74,75,58,
+  10,42,168,25,103,17,39,17,6,9,6,17,71,25,201,41,42,50,139,66,
+  205,74,45,91,110,99,143,107,3,175,115,4,174,115,3,175,115,131,207,115,
+  207,115,175,115,3,174,115,138,175,115,143,115,142,107,174,115,142,107,41,58,
+  65,8,33,0,33,8,65,8,3,33,8,3,33,0,132,32,0,33,0,33,
+  8,33,8,3,33,0,151,32,0,33,0,33,0,65,0,65,8,4,33,142,
+  107,207,115,48,132,142,107,231,57,195,16,195,24,69,33,231,57,138,74,12,
+  99,109,107,142,115,142,115,109,115,142,115,110,115,4,109,107,138,141,115,142,
+  115,174,115,142,115,174,115,142,115,174,115,174,115,44,99,33,0,7,65,8,
+  134,97,8,65,8,98,8,98,8,130,8,98,8,3,130,8,157,131,8,131,
+  8,162,8,163,16,163,16,163,8,195,16,196,16,228,16,196,16,228,16,228,
+  24,228,24,4,25,4,25,37,33,37,25,69,25,70,33,102,33,70,33,102,
+  33,102,33,103,33,102,33,134,33,134,33,102,33,134,33,4,102,33,134,37,
+  25,162,16,97,8,65,8,97,8,97,8,3,130,16,142,195,24,199,49,105,
+  74,203,90,11,99,11,99,203,90,105,82,8,66,232,57,8,58,73,66,139,
+  66,171,74,3,204,74,145,203,74,172,74,139,74,106,66,73,58,232,49,200,
+  41,134,33,134,33,167,41,232,49,106,66,204,74,45,91,110,99,175,107,175,
+  107,3,208,107,130,207,107,207,107,5,208,107,139,176,99,208,107,176,107,175,
+  99,208,107,207,107,208,107,207,107,175,107,175,99,175,99,4,208,107,4,240,
+  107,159,241,107,171,74,0,0,98,16,130,16,195,24,4,33,69,41,102,49,
+  134,49,199,57,232,65,40,66,105,74,138,74,171,82,203,82,204,82,204,82,
+  203,82,236,90,204,82,203,74,171,74,171,82,138,74,139,74,138,74,106,74,
+  106,74,105,66,3,106,74,153,106,66,105,74,73,74,106,74,138,74,170,82,
+  236,90,45,99,109,107,174,115,207,115,207,123,207,115,207,115,142,107,77,99,
+  44,99,12,83,13,91,13,91,45,83,45,83,45,91,45,91,45,83,5,13,
+  83,1,204,74,205,3,3,139,66,5,171,66,131,172,74,171,66,204,66,4,
+  204,74,135,236,74,204,74,236,74,12,75,12,75,236,74,12,83,3,13,83,
+  130,45,83,13,83,6,45,83,138,45,91,45,83,77,83,77,83,78,91,77,
+  83,45,83,77,83,78,91,77,91,4,78,91,131,110,91,78,91,78,91,8,
+  110,91,129,142,91,3,110,91,139,142,99,142,91,143,91,110,99,142,99,142,
+  91,142,91,143,91,142,99,142,99,142,91,5,143,99,11,175,99,3,207,99,
+  143,208,99,208,99,207,107,207,99,240,99,240,107,240,107,208,107,208,107,208,
+  99,240,107,208,107,208,107,240,107,208,107,6,240,107,130,240,99,240,99,3,
+  240,107,130,240,99,240,107,4,240,99,3,208,99,138,207,99,208,99,208,99,
+  240,99,208,99,208,99,207,99,208,99,207,99,207,99,6,175,99,131,207,99,
+  175,99,207,99,33,175,99,129,176,99,4,175,99,3,176,99,130,175,99,175,
+  99,8,176,99,7,208,99,139,208,107,208,99,240,99,208,99,208,91,240,99,
+  240,99,208,99,240,99,240,99,241,107,9,17,108,131,49,108,50,108,49,108,
+  5,82,116,4,114,116,129,146,116,4,114,116,133,114,124,115,124,114,116,147,
+  116,146,124,7,147,124,132,179,124,147,124,179,124,147,124,7,179,124,147,179,
+  132,179,124,179,124,180,124,212,124,179,124,180,132,212,124,180,124,180,132,180,
+  124,180,124,212,124,180,124,180,132,212,124,180,132,212,132,212,124,13,212,132,
+  136,211,132,212,132,180,132,180,124,180,132,180,132,212,124,212,124,7,212,132,
+  130,244,132,212,132,3,244,140,134,244,132,244,140,245,140,244,132,244,140,21,
+  141,3,20,141,138,21,141,21,149,21,149,21,141,21,141,21,149,53,149,53,
+  141,21,141,21,149,3,21,141,129,53,141,6,21,141,129,20,141,5,21,141,
+  3,21,149,129,20,141,4,21,149,4,53,149,135,21,149,53,141,53,149,21,
+  149,53,141,21,141,53,141,6,53,149,129,53,141,3,53,149,3,53,141,6,
+  21,141,130,245,132,245,132,7,21,141,8,53,149,136,21,149,53,149,53,149,
+  53,141,53,149,21,149,53,149,53,141,12,53,149,131,53,141,53,149,53,149,
+  4,53,141,156,21,141,21,141,244,140,212,140,147,132,114,124,17,116,176,99,
+  78,91,205,74,107,58,9,42,169,25,104,17,39,17,6,9,6,9,39,25,
+  168,33,9,42,107,66,204,74,13,83,78,99,143,107,175,107,175,115,174,115,
+  3,175,115,129,174,115,3,175,115,131,207,115,207,115,175,115,3,174,115,135,
+  175,115,142,107,174,115,142,107,142,107,41,66,65,8,8,33,8,3,33,0,
+  5,33,8,145,32,0,33,0,33,8,65,8,32,8,4,33,207,115,207,115,
+  48,132,142,115,166,49,33,0,130,16,69,33,199,49,137,74,44,99,3,109,
+  107,136,77,107,109,115,109,115,109,107,109,107,142,115,109,107,109,115,4,142,
+  115,3,174,115,131,12,99,33,0,65,8,5,97,8,143,65,8,97,8,97,
+  8,98,8,98,8,97,8,98,8,97,8,98,8,98,8,65,8,65,8,97,
+  8,65,8,66,8,3,97,8,6,98,8,130,130,8,98,8,3,130,8,130,
+  163,8,163,16,3,163,8,132,196,16,195,16,228,16,228,24,4,228,16,129,
+  195,16,4,163,16,4,130,16,150,163,24,167,49,170,82,76,99,206,115,206,
+  123,206,123,109,115,11,99,105,82,198,57,69,41,37,33,69,41,199,49,40,
+  58,106,66,138,66,171,66,171,74,203,74,203,74,3,204,74,140,171,74,139,
+  74,139,66,74,58,74,58,41,58,73,58,106,58,171,74,13,83,78,99,143,
+  107,4,175,107,144,207,107,208,107,207,107,176,107,175,99,175,107,208,107,208,
+  107,175,107,208,107,175,99,207,107,175,99,175,99,207,107,208,107,5,240,107,
+  134,208,107,207,107,175,99,240,115,199,49,32,8,5,65,8,147,65,16,98,
+  16,98,16,130,24,163,24,227,32,36,33,101,49,199,57,8,66,105,74,138,
+  82,171,82,171,82,203,82,171,74,171,74,138,74,138,74,4,106,74,130,74,
+  74,74,74,6,73,66,153,106,74,171,82,12,99,77,107,142,115,206,115,207,
+  115,207,123,174,115,174,115,109,107,45,91,236,82,204,82,45,91,45,83,45,
+  91,236,82,236,82,12,83,12,83,12,91,13,83,12,83,236,74,228,3,3,
+  106,58,134,139,58,139,58,139,66,138,66,171,66,139,66,4,171,66,130,204,
+  74,203,66,4,204,74,6,236,74,131,12,75,12,75,12,83,3,13,83,129,
+  12,75,4,13,83,12,45,83,141,45,91,77,83,77,83,77,91,77,91,77,
+  83,77,91,77,91,110,91,78,91,77,91,110,91,78,91,11,110,91,129,142,
+  91,5,110,91,137,142,91,142,91,110,91,142,99,142,91,142,99,142,91,143,
+  91,142,91,8,175,99,141,207,99,207,99,175,99,175,99,208,99,207,99,208,
+  107,207,99,208,107,208,99,208,99,208,107,208,107,3,240,107,129,208,107,3,
+  240,107,129,240,99,4,240,107,133,240,99,240,99,240,107,240,99,240,99,5,
+  240,107,133,240,99,240,107,208,99,240,107,240,107,3,208,99,130,240,99,208,
+  107,3,208,99,136,208,107,240,99,208,99,208,99,208,107,208,107,208,99,207,
+  99,3,208,99,135,207,99,208,99,207,99,207,99,208,99,207,99,208,99,6,
+  207,99,18,175,99,3,143,99,132,175,99,143,99,175,99,143,91,8,175,99,
+  137,143,99,175,99,143,91,143,99,143,99,175,99,175,91,176,99,175,91,3,
+  175,99,5,176,99,4,208,99,129,208,107,4,208,99,3,241,107,6,17,108,
+  4,49,108,134,50,108,49,108,50,108,50,108,82,116,82,108,5,82,116,11,
+  114,116,132,115,116,115,116,115,124,147,124,7,147,116,4,147,124,134,147,116,
+  147,124,147,124,147,116,147,124,147,116,4,147,124,136,179,124,179,124,179,132,
+  179,132,179,124,179,124,179,132,147,124,5,179,124,3,147,124,4,179,124,135,
+  180,132,180,132,180,124,180,132,212,132,212,132,212,124,4,212,132,4,244,132,
+  5,244,140,129,20,141,6,21,141,131,20,141,21,141,20,141,6,21,141,130,
+  20,141,21,141,3,20,141,133,21,141,20,141,20,141,21,141,21,141,3,20,
+  141,131,21,149,20,141,20,141,3,21,149,137,53,149,21,149,53,149,53,149,
+  21,149,21,141,21,149,21,141,21,141,6,53,141,3,21,141,129,21,149,5,
+  21,141,133,21,133,21,141,245,132,245,132,21,133,3,245,132,130,21,133,245,
+  132,4,21,141,3,53,141,6,53,149,131,21,141,21,149,21,149,3,53,149,
+  129,21,149,9,53,149,133,53,141,53,141,21,141,21,141,21,149,3,53,141,
+  3,21,141,151,244,140,212,132,147,132,82,124,17,116,176,99,78,91,237,74,
+  107,58,10,42,169,25,104,17,71,17,38,17,6,17,39,25,136,25,9,42,
+  107,58,172,74,13,83,77,91,110,99,5,175,115,130,174,115,174,115,6,175,
+  115,3,174,115,3,142,115,135,174,115,142,107,73,66,65,8,33,0,33,8,
+  33,8,4,33,0,130,32,0,32,0,7,33,0,148,33,8,33,0,33,8,
+  65,8,32,0,228,24,207,115,207,115,48,132,174,115,167,57,32,0,130,16,
+  69,33,199,57,106,74,12,99,77,107,109,107,109,107,3,109,115,142,142,115,
+  109,107,142,107,109,115,141,115,142,115,142,115,174,115,142,115,109,107,174,115,
+  174,115,77,107,227,24,5,4,33,130,4,25,4,25,3,228,24,141,227,24,
+  228,24,227,24,227,24,195,24,195,24,195,16,195,16,195,24,195,16,195,16,
+  195,24,163,16,7,195,16,140,163,16,163,16,163,8,162,16,131,16,130,8,
+  98,8,130,8,131,8,163,16,195,16,195,16,3,196,24,3,195,16,185,130,
+  8,130,8,163,16,228,24,4,25,37,33,36,33,228,24,195,24,4,33,40,
+  66,235,90,174,115,80,132,178,148,178,148,80,140,206,123,76,115,170,90,231,
+  65,37,41,195,24,162,16,163,16,228,24,4,25,101,33,167,41,199,49,9,
+  58,41,58,106,66,138,66,139,74,171,74,171,74,172,74,204,74,204,74,171,
+  74,171,66,171,66,171,74,204,74,236,74,237,82,13,83,45,83,45,83,45,
+  91,78,91,78,91,78,99,110,91,78,91,78,99,3,110,91,146,110,99,78,
+  91,78,91,77,91,77,91,78,99,78,91,77,91,45,91,45,83,45,91,13,
+  83,236,82,236,82,236,74,236,82,4,25,33,8,9,65,8,140,33,8,65,
+  8,33,8,33,8,65,8,98,16,195,24,4,33,134,49,199,57,41,66,73,
+  66,4,106,74,5,73,66,7,41,66,139,106,74,171,90,12,99,77,107,109,
+  107,142,107,142,115,142,107,110,107,109,107,77,99,4,45,91,136,236,82,204,
+  74,171,74,171,74,171,82,236,82,171,74,138,74,198,3,3,74,58,4,106,
+  58,134,138,58,107,58,138,58,139,58,139,66,139,66,5,171,66,133,204,74,
+  204,74,203,74,204,74,204,74,9,236,74,130,12,75,236,74,5,12,75,130,
+  13,75,13,75,3,12,83,4,13,83,11,45,83,3,77,83,136,45,83,77,
+  83,77,83,78,91,78,91,77,91,78,91,78,83,6,78,91,10,110,91,133,
+  142,91,110,91,110,91,142,91,142,91,3,143,99,9,175,99,136,207,99,175,
+  99,175,99,207,99,175,99,208,99,208,99,208,107,6,208,99,136,208,107,240,
+  107,240,99,240,107,240,107,240,99,240,99,208,107,4,240,107,135,240,99,240,
+  99,240,107,240,99,240,99,240,107,208,99,4,240,99,3,240,107,129,240,99,
+  5,240,107,135,240,99,240,99,240,107,240,99,240,99,240,107,208,99,5,240,
+  107,129,208,99,3,240,107,6,208,99,130,207,99,208,99,3,207,99,130,208,
+  99,208,99,4,207,99,6,175,99,131,143,99,175,99,175,99,6,143,99,132,
+  175,99,143,99,143,91,143,99,3,143,91,3,143,99,135,143,91,142,91,143,
+  91,142,91,143,99,143,91,143,91,3,143,99,133,143,91,175,91,143,91,175,
+  91,143,99,5,175,99,129,176,99,4,208,99,139,240,99,208,99,240,107,208,
+  99,241,99,240,99,240,99,241,107,240,99,240,107,240,107,4,241,107,6,17,
+  108,5,49,108,129,49,116,3,50,108,136,82,116,50,116,82,116,82,108,82,
+  116,114,116,82,108,82,116,3,82,108,130,82,116,82,116,3,114,116,132,82,
+  116,114,116,82,108,82,116,4,114,116,147,114,124,115,124,115,116,115,124,147,
+  124,115,116,115,124,115,116,115,116,115,124,115,124,115,116,147,116,115,116,146,
+  116,146,116,115,124,115,116,115,124,4,147,124,132,179,124,179,124,147,124,179,
+  124,3,180,124,130,179,124,180,124,8,212,132,4,244,132,129,245,140,4,244,
+  140,129,244,132,5,244,140,129,244,132,10,244,140,131,20,141,20,141,244,140,
+  3,20,141,5,21,149,21,21,141,11,245,132,131,21,141,21,141,245,140,3,
+  21,141,136,21,149,21,141,53,149,53,149,53,141,21,141,21,149,21,149,4,
+  21,141,130,53,141,21,149,3,53,149,137,53,141,53,141,53,149,53,149,21,
+  141,53,141,53,149,21,149,53,141,8,21,141,141,212,132,179,132,146,124,82,
+  116,241,107,175,99,46,91,205,74,107,58,10,42,169,33,104,25,71,17,3,
+  38,17,136,136,25,201,41,42,58,172,74,236,82,45,91,110,99,143,107,3,
+  175,115,4,174,115,129,207,115,5,175,115,140,174,115,174,115,142,115,142,107,
+  142,115,142,107,142,107,105,74,98,16,33,8,33,8,33,0,3,32,0,10,
+  33,0,129,33,8,3,65,0,142,33,0,163,24,239,123,207,115,48,124,174,
+  115,231,57,32,0,98,8,69,33,199,49,105,74,235,90,77,107,5,109,107,
+  135,109,115,142,115,109,107,142,115,142,115,141,107,110,107,3,142,115,142,174,
+  115,174,115,142,115,4,33,69,41,102,41,134,49,134,49,166,49,167,57,167,
+  49,199,49,199,57,167,49,3,199,49,135,167,49,199,49,166,49,134,49,135,
+  49,166,49,134,49,3,134,41,131,102,41,134,41,134,41,5,102,41,134,69,
+  33,69,33,37,33,4,25,228,24,195,24,3,228,24,130,196,24,195,24,4,
+  195,16,131,163,16,163,16,131,16,3,163,16,151,195,24,228,24,69,33,167,
+  41,37,33,36,33,41,66,44,99,206,115,177,140,19,157,51,165,51,165,18,
+  165,177,156,47,148,173,131,235,106,8,74,69,41,195,24,130,16,98,16,3,
+  130,16,139,163,16,195,16,228,24,37,33,102,41,167,41,232,49,9,58,74,
+  66,106,66,139,74,3,171,74,135,172,74,171,66,171,74,171,74,171,66,171,
+  74,171,74,11,171,66,136,171,74,171,66,171,74,171,66,171,74,171,66,171,
+  66,139,66,3,171,66,129,171,74,3,171,66,130,163,16,33,8,8,65,8,
+  130,33,8,33,8,6,65,8,136,98,16,130,16,163,24,227,24,37,33,102,
+  41,167,57,232,57,4,41,66,129,73,66,3,41,66,3,9,66,3,41,66,
+  133,106,74,170,82,203,90,236,98,12,99,3,44,99,132,45,99,12,91,12,
+  91,236,82,3,12,91,134,12,83,236,82,204,82,203,82,171,82,171,74,220,
+  3,135,42,50,42,58,42,58,42,50,42,58,74,58,74,50,8,106,58,130,
+  139,58,139,66,5,171,66,130,204,66,171,66,3,204,74,130,204,66,236,74,
+  4,204,74,12,236,74,146,12,75,236,74,236,74,13,83,13,75,13,75,12,
+  75,12,75,13,83,13,83,13,75,13,75,13,83,13,75,13,83,13,83,45,
+  83,13,83,9,45,83,133,45,91,45,83,77,83,45,83,45,83,8,77,83,
+  3,78,91,7,110,91,138,142,91,110,91,143,99,143,99,142,99,142,91,175,
+  99,143,91,175,91,175,91,5,175,99,129,175,91,5,175,99,133,207,99,175,
+  99,207,99,175,99,175,99,6,207,99,5,208,99,129,240,99,5,208,99,3,
+  240,99,131,240,107,208,107,240,99,6,240,107,129,240,99,4,240,107,130,240,
+  99,240,99,5,240,107,133,16,108,240,107,240,107,240,99,240,99,6,240,107,
+  135,240,99,240,107,208,107,208,107,240,99,208,99,240,99,4,208,107,132,207,
+  107,208,107,208,99,208,99,3,207,99,7,175,99,133,143,99,143,99,175,99,
+  143,99,143,91,8,143,99,129,143,91,5,143,99,7,143,91,3,143,99,6,
+  175,99,137,176,99,176,99,207,99,208,99,175,99,175,99,176,99,175,99,175,
+  99,4,176,99,129,208,107,5,208,99,129,240,99,4,208,99,134,208,107,240,
+  107,208,99,240,107,240,107,241,99,3,241,107,3,17,108,136,241,99,17,100,
+  17,100,17,108,49,108,17,108,17,108,50,108,3,17,108,129,18,108,3,49,
+  108,134,50,108,50,108,82,116,82,108,82,108,50,108,4,82,116,129,82,108,
+  4,82,116,3,82,108,130,82,116,82,108,3,82,116,3,114,116,132,115,116,
+  114,116,114,116,115,116,8,147,124,132,179,132,179,124,179,132,180,124,3,180,
+  132,130,212,124,211,132,6,212,132,131,212,124,212,132,211,132,5,212,132,129,
+  211,132,3,212,132,130,212,140,212,132,3,244,132,5,244,140,136,20,141,20,
+  141,21,141,21,141,20,141,20,141,21,141,244,140,3,20,141,3,21,141,141,
+  20,141,245,140,21,141,245,140,245,140,21,141,21,133,245,132,21,141,21,133,
+  245,132,245,132,244,132,6,245,132,134,244,132,245,132,245,132,21,133,21,133,
+  245,140,10,21,141,129,245,140,5,21,141,135,21,149,21,149,53,149,53,149,
+  21,141,21,141,53,141,7,21,141,129,53,141,4,21,141,158,244,132,244,132,
+  212,132,179,132,146,124,50,116,241,107,143,91,46,83,237,74,107,58,233,41,
+  168,33,103,25,71,25,39,17,38,17,6,17,104,33,200,33,41,50,171,66,
+  204,74,45,91,110,99,143,107,175,115,175,115,174,115,207,115,3,174,115,130,
+  175,115,174,115,4,175,115,130,174,115,174,115,3,142,115,134,174,115,142,107,
+  105,74,130,24,98,16,97,8,3,65,8,133,33,0,33,0,33,8,33,0,
+  33,0,3,32,0,130,33,0,33,0,3,33,8,146,33,0,65,8,33,8,
+  130,16,174,115,207,115,48,132,174,115,40,66,32,0,98,8,37,33,199,49,
+  105,74,12,99,77,107,109,115,109,107,4,109,115,3,109,107,6,142,115,133,
+  174,115,142,115,109,107,130,16,130,8,4,130,16,137,163,24,195,24,228,24,
+  228,32,228,32,4,33,4,33,37,33,37,33,3,69,41,132,102,41,101,41,
+  101,41,102,41,4,101,41,5,102,41,141,102,33,69,33,70,33,69,33,37,
+  33,4,25,228,24,228,24,196,24,195,16,195,16,163,16,195,16,8,163,16,
+  153,195,16,195,24,228,24,37,33,37,33,4,33,134,41,73,66,77,99,15,
+  116,210,148,19,157,84,165,148,181,180,181,147,189,82,181,241,172,143,164,237,
+  147,75,123,105,90,134,57,228,32,163,24,8,130,16,143,163,16,163,16,195,
+  24,4,25,37,33,102,41,135,41,167,49,8,58,41,58,73,66,74,66,106,
+  66,138,66,106,66,4,139,66,142,138,58,139,66,139,66,138,66,138,74,138,
+  66,139,66,138,66,138,66,139,66,138,66,106,66,106,58,106,66,3,74,58,
+  129,106,58,4,74,58,131,41,58,98,8,33,0,8,65,8,130,33,8,33,
+  8,9,65,8,139,97,16,98,16,98,16,163,24,195,24,4,33,69,41,134,
+  49,167,49,199,57,232,57,7,8,58,135,8,66,41,66,41,74,105,74,106,
+  82,138,82,138,82,5,171,82,137,203,82,204,82,203,82,203,82,171,82,203,
+  82,203,82,171,82,171,82,161,3,3,9,50,139,41,50,9,42,42,50,41,
+  50,41,50,42,50,42,50,74,50,74,50,74,58,74,58,4,106,58,131,139,
+  66,139,58,171,58,10,171,66,143,204,66,204,66,172,66,204,66,204,66,204,
+  74,204,66,204,74,204,74,204,66,204,74,204,66,204,74,236,74,236,66,14,
+  236,74,142,237,74,236,74,13,83,12,75,13,75,13,75,236,74,12,75,13,
+  75,12,75,12,75,13,83,13,75,13,75,4,13,83,8,45,83,4,77,83,
+  133,78,91,78,83,78,83,78,91,78,91,8,110,91,129,143,91,3,142,91,
+  134,143,91,143,91,142,91,175,91,143,91,143,91,4,143,99,134,175,99,143,
+  91,175,99,175,91,175,99,175,91,7,175,99,131,207,99,175,99,175,91,3,
+  207,99,129,175,99,3,207,99,130,208,99,207,99,5,208,99,132,240,107,208,
+  99,240,107,208,99,4,240,107,129,240,99,9,240,107,3,16,108,3,240,107,
+  131,16,108,240,107,16,108,4,240,107,129,16,100,7,240,107,135,240,99,240,
+  107,240,99,240,107,208,107,240,107,240,107,5,208,99,132,207,99,175,99,207,
+  99,176,99,9,175,99,130,142,99,175,99,3,143,99,129,175,99,6,143,99,
+  130,111,99,111,99,4,143,99,130,175,99,143,99,3,175,99,129,143,99,3,
+  175,99,136,143,99,175,99,143,99,175,99,175,99,143,99,175,99,143,99,4,
+  175,99,132,176,99,175,99,176,99,176,99,8,175,99,4,208,99,129,176,99,
+  18,208,99,3,241,99,131,241,107,241,99,241,107,3,241,99,130,241,107,241,
+  107,7,17,108,129,18,108,4,17,108,130,50,108,17,108,3,50,108,130,82,
+  108,50,116,4,82,116,130,114,116,115,116,3,114,116,132,115,116,115,124,115,
+  116,115,124,12,147,124,129,179,124,3,147,124,132,179,124,179,124,147,124,179,
+  124,3,179,132,130,180,132,179,124,6,212,132,129,212,140,4,244,132,130,244,
+  140,244,140,18,244,132,135,213,132,212,132,212,132,212,124,244,132,244,124,244,
+  124,4,244,132,144,245,132,245,132,245,140,244,140,20,141,20,141,21,141,20,
+  141,20,141,245,140,245,140,20,133,20,141,245,140,21,141,245,140,21,21,141,
+  156,20,141,244,132,212,132,179,132,147,124,114,124,49,116,240,107,143,99,46,
+  83,205,74,75,58,10,50,169,33,104,25,71,25,71,17,38,17,38,25,103,
+  25,201,33,10,50,107,66,204,82,13,91,78,99,142,107,175,115,3,207,115,
+  129,175,115,4,174,115,130,175,115,175,115,5,174,115,3,142,115,135,142,107,
+  138,74,130,16,65,16,65,8,97,8,97,8,4,65,8,156,65,0,33,0,
+  65,8,65,8,33,0,33,0,33,8,33,8,33,0,33,8,32,0,33,0,
+  33,8,98,16,142,107,207,115,48,132,206,115,73,74,0,0,98,8,69,33,
+  199,57,41,66,12,99,109,107,109,107,141,115,6,109,107,134,142,115,142,115,
+  109,107,142,115,142,115,174,115,4,142,115,133,130,16,130,16,98,16,130,16,
+  130,16,6,98,16,133,97,16,98,16,98,8,98,8,98,16,6,130,16,3,
+  163,24,3,195,24,11,228,24,3,4,33,133,5,33,37,33,37,33,69,33,
+  69,33,6,37,33,4,69,33,150,102,41,199,49,41,66,12,91,207,115,178,
+  140,19,157,84,165,181,181,212,189,212,197,211,197,146,197,114,189,49,181,208,
+  172,79,164,173,139,169,106,134,65,228,32,163,24,11,130,16,140,98,16,130,
+  16,130,16,162,16,163,24,227,24,4,33,36,33,69,33,134,41,167,41,199,
+  49,3,232,49,140,9,58,8,50,9,50,41,58,8,58,9,50,9,50,41,
+  50,41,50,9,50,41,58,233,49,3,232,49,137,200,41,200,41,199,41,167,
+  41,167,41,135,33,135,41,102,41,98,8,3,65,8,136,66,8,163,16,102,
+  33,163,16,33,8,65,8,33,8,33,0,11,65,8,146,66,8,65,8,98,
+  8,98,16,130,16,163,24,195,24,4,33,37,33,101,41,134,41,199,49,199,
+  49,199,57,199,57,200,57,232,57,232,57,3,8,66,3,41,66,3,73,74,
+  3,106,74,134,138,74,138,74,106,74,139,82,138,74,138,74,235,3,4,233,
+  41,130,9,42,9,50,3,9,42,3,9,50,130,42,50,42,50,3,74,50,
+  136,106,58,74,58,106,58,106,58,107,58,106,58,139,58,139,58,5,139,66,
+  10,171,66,139,172,66,171,66,172,66,171,66,171,66,203,66,203,66,204,66,
+  172,66,204,66,204,66,3,204,74,130,204,66,236,74,8,204,74,14,236,74,
+  138,13,75,12,75,237,74,236,74,12,75,13,75,13,75,12,75,13,83,13,
+  83,7,45,83,135,77,83,77,83,78,83,78,91,78,91,78,83,78,91,10,
+  110,91,135,142,91,110,91,142,91,142,91,110,91,142,91,110,91,4,142,91,
+  130,143,91,142,91,9,143,91,131,175,91,143,91,143,91,6,175,99,129,175,
+  91,4,175,99,4,207,99,3,208,99,3,207,99,4,208,99,135,208,107,240,
+  99,240,99,208,99,240,99,240,107,240,99,7,240,107,129,240,99,4,240,107,
+  3,16,108,13,240,107,135,240,99,240,107,240,99,208,99,240,107,240,107,208,
+  107,5,208,99,3,207,99,129,175,99,3,207,99,131,175,99,175,99,175,91,
+  5,175,99,129,143,99,13,175,99,130,143,99,175,99,6,143,99,6,175,99,
+  130,143,99,175,99,4,143,99,133,175,99,143,99,143,99,175,99,143,99,6,
+  175,99,129,143,91,3,176,99,139,176,91,176,99,175,99,176,99,175,99,176,
+  99,175,91,176,91,143,91,143,99,175,91,3,176,91,5,176,99,131,175,91,
+  176,91,176,91,4,176,99,3,208,99,3,176,99,135,208,99,209,99,209,99,
+  208,99,208,99,208,107,241,99,3,241,107,132,17,108,17,108,49,108,17,108,
+  3,49,108,133,49,116,50,116,50,108,50,116,82,108,6,82,116,3,114,116,
+  5,82,116,130,114,116,82,116,5,114,116,132,115,124,115,124,147,124,115,124,
+  4,147,124,130,179,124,147,124,5,179,132,129,211,132,3,179,132,144,180,132,
+  179,132,179,132,180,132,179,132,180,132,180,124,179,124,180,124,180,124,212,124,
+  179,124,180,124,211,124,179,124,212,124,3,180,124,137,212,124,212,124,180,124,
+  212,124,180,124,180,124,212,132,212,132,212,124,5,244,132,4,244,140,136,244,
+  132,244,140,244,132,244,140,244,140,212,132,244,132,244,132,4,244,140,131,245,
+  140,245,132,21,141,3,20,141,175,21,141,20,141,20,141,21,141,21,141,20,
+  141,21,141,20,141,20,133,244,140,244,132,212,132,179,132,179,124,146,124,82,
+  116,17,108,208,107,111,91,46,83,205,74,107,58,10,42,201,33,136,33,103,
+  33,103,25,71,25,39,25,103,25,201,33,42,50,139,66,204,82,13,91,77,
+  99,142,107,175,115,207,115,207,115,175,115,207,115,175,115,174,115,207,115,207,
+  115,175,115,5,174,115,130,142,115,142,115,3,142,107,130,170,82,130,16,3,
+  65,8,131,66,8,65,8,66,8,11,65,8,144,33,8,33,0,65,0,33,
+  8,33,8,142,107,207,115,81,124,174,115,40,66,1,0,65,8,134,49,199,
+  57,231,57,44,99,3,142,115,129,109,107,4,142,115,129,109,107,4,142,115,
+  3,174,115,132,207,123,174,115,142,115,227,32,4,195,24,129,163,24,4,195,
+  24,134,163,24,195,24,195,24,162,24,162,24,162,16,5,130,16,130,98,16,
+  98,16,4,130,16,142,162,16,163,24,195,24,163,24,195,24,195,24,163,24,
+  195,24,163,16,163,16,162,16,130,16,130,16,162,16,3,163,16,130,195,16,
+  196,24,6,228,24,130,4,25,4,33,3,37,33,139,102,41,231,57,105,66,
+  12,91,142,107,80,132,210,148,51,157,148,173,213,189,244,197,3,244,205,138,
+  212,205,179,197,146,197,17,181,46,148,235,114,198,65,228,32,162,24,130,16,
+  3,98,16,133,97,16,98,8,98,16,98,16,130,16,3,98,16,8,130,16,
+  143,162,16,162,24,195,24,195,24,227,24,228,32,4,33,4,33,36,33,37,
+  41,37,33,69,33,69,33,70,33,70,33,4,69,33,3,37,33,129,36,25,
+  3,4,25,139,196,24,195,24,163,16,98,8,98,8,130,8,196,16,5,25,
+  37,33,37,33,130,16,3,65,8,132,33,0,65,0,66,8,66,8,3,65,
+  8,165,66,8,65,8,65,8,97,8,65,8,65,8,66,8,65,8,97,8,
+  98,8,98,16,98,8,97,8,98,16,195,24,37,33,102,41,167,49,199,49,
+  232,57,232,57,200,57,232,57,232,57,200,57,232,57,232,57,8,66,232,57,
+  8,66,8,66,9,66,9,58,9,66,41,66,41,66,73,74,3,73,66,210,
+  3,3,201,41,142,232,41,232,41,233,33,233,41,9,42,232,41,233,41,9,
+  50,9,42,9,42,42,50,9,50,41,42,41,50,3,74,50,133,74,58,74,
+  58,106,58,106,50,74,58,3,106,58,132,107,58,107,58,139,58,138,58,4,
+  139,58,129,138,58,4,139,58,130,171,58,171,58,3,171,66,133,171,58,171,
+  66,172,66,171,66,171,58,6,171,66,143,172,66,172,66,171,66,171,66,204,
+  66,171,66,171,66,172,66,204,66,171,66,204,66,171,66,204,66,203,66,171,
+  66,3,204,74,129,204,66,5,204,74,131,236,74,236,74,204,74,4,236,74,
+  130,12,75,236,74,3,13,75,4,13,83,4,45,83,143,77,83,45,83,77,
+  83,45,83,77,83,77,83,78,91,78,91,78,83,78,91,78,83,78,83,78,
+  91,78,83,110,91,3,110,83,129,78,91,9,110,91,135,142,91,110,91,142,
+  91,110,91,110,91,142,91,143,91,6,142,91,6,143,91,131,175,99,175,91,
+  175,91,3,175,99,129,175,91,3,175,99,140,207,99,175,99,175,99,208,99,
+  207,99,175,99,208,99,207,99,207,99,208,99,208,99,207,99,8,208,99,132,
+  208,107,240,107,240,99,240,99,10,240,107,129,240,99,12,240,107,130,240,99,
+  240,99,4,240,107,132,240,99,208,99,240,107,208,99,3,240,99,4,208,99,
+  3,208,107,3,207,99,138,208,107,208,99,208,99,207,99,207,99,175,99,175,
+  107,175,99,175,99,176,99,20,175,99,132,143,99,175,99,143,99,143,99,3,
+  175,99,3,143,99,130,143,91,175,91,3,143,99,139,175,99,143,99,175,99,
+  143,91,175,99,143,99,143,99,143,91,143,99,143,91,143,91,3,143,99,135,
+  175,99,143,99,143,99,143,91,143,99,143,91,143,99,4,143,91,131,176,99,
+  143,91,143,99,7,143,91,137,176,91,143,99,143,91,176,99,175,91,175,91,
+  176,99,208,99,176,99,5,208,99,134,208,107,208,107,241,99,241,99,241,107,
+  241,99,8,17,108,129,49,108,3,17,108,130,50,108,17,108,3,49,108,130,
+  50,108,50,108,4,50,116,5,82,116,3,114,116,3,114,124,131,146,124,146,
+  124,114,124,9,147,124,7,147,116,134,147,124,147,116,147,116,147,124,147,116,
+  147,116,4,147,124,4,179,124,143,212,124,179,132,211,132,179,132,212,132,212,
+  132,211,132,212,132,179,132,211,132,212,132,212,132,211,132,211,132,211,124,7,
+  212,132,5,244,132,129,212,132,8,244,132,157,212,132,212,132,179,124,179,124,
+  147,124,82,116,50,116,241,107,176,99,111,91,13,83,204,74,139,66,42,50,
+  233,41,168,33,168,33,136,33,104,33,103,25,136,33,233,41,42,58,139,66,
+  204,74,237,82,78,99,110,107,174,107,3,207,115,132,207,123,175,115,207,115,
+  175,115,5,207,115,137,175,115,174,115,174,115,142,107,174,115,142,115,174,115,
+  171,82,195,24,3,98,8,131,130,8,130,16,98,16,3,130,8,5,130,16,
+  4,130,8,144,130,16,98,8,98,8,33,8,203,90,174,115,239,115,142,107,
+  106,74,33,0,65,8,170,82,12,99,8,66,235,90,109,107,6,77,107,4,
+  109,107,142,141,107,141,115,142,115,142,115,174,115,142,115,142,115,174,115,4,
+  33,227,32,228,32,4,33,4,33,228,32,3,4,33,130,36,33,36,33,3,
+  36,41,135,4,33,228,32,195,24,195,24,163,24,163,24,162,16,6,130,16,
+  7,98,16,136,98,8,98,16,98,8,98,8,130,16,98,16,97,8,98,16,
+  3,130,16,133,130,8,130,16,162,16,163,16,163,16,5,195,16,143,196,24,
+  228,24,69,33,8,58,170,74,45,99,174,107,239,115,80,132,178,148,19,157,
+  83,173,148,181,212,189,244,197,3,20,206,142,211,205,114,189,241,172,79,148,
+  76,115,73,74,134,49,228,24,130,16,130,16,98,16,98,8,97,8,97,16,
+  6,98,16,4,130,16,4,162,16,132,130,16,130,16,162,16,162,24,5,163,
+  24,18,195,24,148,163,24,195,24,163,16,130,16,98,8,98,8,130,16,130,
+  16,162,16,162,16,98,8,65,8,65,8,65,0,66,8,66,8,98,8,98,
+  8,66,8,66,8,10,98,8,135,65,8,65,8,163,16,37,33,102,41,134,
+  49,167,49,6,199,57,137,167,57,167,49,167,49,167,57,199,57,167,49,199,
+  57,232,57,200,57,3,232,57,132,8,58,8,66,8,58,9,66,139,3,3,
+  168,33,139,200,41,200,33,200,33,201,41,200,33,232,41,233,41,232,41,233,
+  41,9,42,9,42,4,9,50,132,41,50,42,50,42,50,41,50,6,74,50,
+  131,106,58,74,50,74,50,5,106,58,135,106,50,107,58,106,50,106,58,139,
+  58,139,58,107,58,11,139,58,131,171,58,139,66,139,58,3,171,58,132,139,
+  66,171,66,139,66,139,66,13,171,66,141,172,66,171,66,204,66,171,66,204,
+  66,171,66,172,66,204,74,172,66,204,66,236,74,204,74,204,74,5,236,74,
+  131,12,75,12,75,13,83,4,13,75,132,45,75,13,75,45,83,13,83,4,
+  45,83,129,78,83,4,45,83,129,78,83,8,77,83,129,78,91,9,78,83,
+  134,110,83,110,91,110,83,110,83,110,91,110,83,6,110,91,129,111,91,3,
+  143,91,129,142,91,7,143,91,137,175,91,143,91,175,99,143,91,175,91,175,
+  99,175,99,175,91,175,91,3,175,99,129,207,99,6,175,99,3,207,99,4,
+  208,99,130,207,99,208,99,3,208,107,134,208,99,208,99,240,107,208,99,208,
+  99,208,107,4,240,107,5,240,99,130,240,107,240,99,8,240,107,131,240,99,
+  240,107,240,107,4,240,99,132,240,107,240,99,240,99,240,107,3,240,99,130,
+  240,107,208,107,5,240,107,130,208,107,208,107,3,240,107,8,208,99,139,208,
+  107,208,99,208,107,208,107,208,99,208,99,207,99,175,99,175,99,207,99,176,
+  99,10,175,99,135,143,99,175,99,175,99,143,99,175,99,143,99,175,99,7,
+  143,99,131,143,91,143,99,143,91,5,143,99,131,143,91,143,99,111,91,5,
+  143,91,133,111,91,111,91,143,99,111,91,143,91,6,111,91,3,143,91,136,
+  143,99,143,99,143,91,144,91,144,99,176,99,175,99,175,99,3,176,99,132,
+  175,99,176,99,175,99,176,99,12,208,99,3,208,107,131,208,99,240,107,240,
+  107,3,241,107,6,17,108,132,49,108,49,108,50,108,50,108,3,50,116,15,
+  82,116,132,82,108,82,108,82,116,82,108,5,82,116,132,115,116,83,116,115,
+  116,114,116,3,115,116,20,147,124,134,147,132,179,124,179,124,180,124,179,124,
+  179,124,4,180,132,167,211,132,180,124,212,124,180,124,212,132,179,132,180,132,
+  179,132,179,124,179,124,147,124,114,116,82,116,50,116,17,108,208,107,143,99,
+  79,91,13,83,204,74,139,66,74,50,233,41,201,41,200,33,168,33,136,33,
+  136,33,168,33,233,41,42,58,139,66,172,74,237,82,45,91,110,99,142,107,
+  174,107,174,115,4,175,115,129,174,115,7,175,115,136,174,115,174,115,175,115,
+  174,115,142,107,203,82,4,33,163,16,3,195,16,139,196,16,196,24,196,16,
+  228,16,228,16,228,24,228,24,4,25,228,24,228,32,4,25,6,228,24,145,
+  163,16,232,57,174,107,174,107,142,107,44,99,8,66,69,41,12,99,12,91,
+  8,66,170,82,77,107,142,115,109,107,77,107,109,115,3,109,107,130,77,107,
+  77,107,4,109,107,3,142,115,132,109,107,207,123,69,41,130,16,3,163,24,
+  130,195,24,163,24,8,195,24,4,163,24,131,163,16,163,16,162,16,15,130,
+  16,139,131,16,130,16,163,16,130,16,130,16,131,16,130,16,130,16,131,16,
+  130,16,130,16,8,163,16,164,195,16,70,33,8,58,235,82,109,99,206,107,
+  239,123,239,123,15,132,112,140,177,148,242,156,50,173,147,181,212,197,20,206,
+  20,206,244,205,147,189,50,173,144,156,206,131,11,107,138,82,40,58,199,49,
+  102,33,70,33,4,25,196,16,195,16,162,16,130,16,130,16,98,8,98,16,
+  7,130,16,129,162,16,3,162,24,7,163,24,131,163,16,130,16,163,16,19,
+  130,16,3,98,8,4,130,16,130,98,8,98,16,3,98,8,131,131,8,98,
+  8,131,8,3,130,16,3,130,8,135,131,8,131,16,131,16,131,8,98,8,
+  98,8,131,16,9,130,16,146,162,24,163,24,163,24,195,24,228,24,228,32,
+  4,33,37,33,70,41,102,41,134,49,167,49,199,49,167,49,200,49,200,57,
+  232,57,232,57,28,4,129,168,25,6,168,33,134,200,33,168,33,200,33,200,
+  41,201,41,201,41,3,233,41,5,9,42,129,41,42,6,41,50,131,73,50,
+  42,50,42,50,11,74,50,137,106,58,74,50,107,58,106,58,106,58,106,50,
+  106,58,107,58,106,58,3,107,58,129,106,58,3,107,58,138,139,58,107,58,
+  107,58,139,58,107,58,139,58,139,58,138,58,106,58,138,58,8,139,58,3,
+  139,66,131,171,66,171,66,139,58,7,171,66,133,172,66,204,66,204,66,204,
+  74,204,66,3,204,74,4,236,74,137,237,74,236,74,13,75,13,75,236,74,
+  12,75,13,75,13,75,13,83,3,13,75,131,45,75,13,75,45,75,4,13,
+  75,134,45,75,13,75,45,75,45,83,45,83,45,75,3,45,83,133,78,83,
+  45,83,45,75,45,83,45,83,3,77,83,131,45,83,78,83,77,83,7,78,
+  83,133,78,91,110,91,110,91,110,83,110,83,3,110,91,132,110,83,110,91,
+  110,91,111,91,3,110,91,134,143,91,110,91,142,91,142,91,143,91,142,91,
+  8,143,91,132,175,99,175,91,175,91,143,91,3,175,99,129,175,91,6,175,
+  99,132,207,99,175,99,176,99,175,99,11,208,99,134,208,107,240,99,208,107,
+  208,107,208,99,240,99,3,208,99,133,240,107,240,99,208,99,240,107,208,99,
+  6,240,107,131,240,99,240,99,240,107,3,240,99,131,240,107,240,107,208,99,
+  13,240,107,144,240,99,240,99,240,107,240,107,240,99,240,99,240,107,240,107,
+  208,107,240,107,208,107,208,99,208,107,208,107,208,99,208,99,3,208,107,138,
+  207,99,208,99,208,99,176,107,207,99,207,99,176,99,208,99,175,99,208,99,
+  15,175,99,7,143,99,140,143,91,143,99,143,91,111,91,143,91,111,91,111,
+  91,110,91,111,91,111,91,110,91,111,91,4,110,91,136,143,91,143,91,111,
+  91,143,99,143,91,143,99,143,99,143,91,4,143,99,131,175,99,143,99,176,
+  99,3,175,99,129,176,99,5,175,99,141,143,99,175,99,176,99,175,99,175,
+  99,176,99,175,99,175,99,176,99,175,99,176,99,208,99,208,99,3,208,107,
+  136,240,107,208,99,240,107,240,99,240,107,241,107,241,107,240,107,4,241,107,
+  6,17,108,129,49,108,3,17,108,135,49,108,49,108,17,108,18,108,18,108,
+  17,108,17,108,5,50,108,132,82,108,50,108,50,108,82,108,7,82,116,132,
+  114,116,82,116,82,116,114,116,5,82,116,131,114,116,114,116,82,116,4,114,
+  116,135,146,116,147,116,147,124,115,116,147,124,147,124,147,116,6,147,124,163,
+  179,124,147,124,147,116,115,116,114,116,82,116,50,108,18,108,241,107,208,99,
+  176,99,111,91,46,83,237,74,204,74,139,66,75,58,10,50,233,41,233,41,
+  200,41,200,41,168,41,200,41,9,50,74,50,107,66,172,74,236,82,45,91,
+  77,99,110,99,142,107,174,107,142,115,4,142,107,133,175,107,142,115,175,115,
+  174,115,174,115,4,142,107,139,174,107,174,107,110,107,171,82,102,41,37,33,
+  37,25,37,25,69,25,37,25,37,33,3,69,33,133,70,33,69,33,102,33,
+  102,33,102,41,4,102,33,147,102,41,102,41,102,33,70,33,102,33,77,99,
+  142,107,142,107,207,115,81,132,113,140,113,140,48,132,80,132,80,132,48,132,
+  48,132,81,132,48,132,4,80,132,3,48,132,129,16,124,3,48,132,136,77,
+  107,44,99,45,107,44,99,101,41,162,16,163,16,195,24,4,163,16,143,163,
+  24,163,16,195,24,195,24,195,16,195,24,195,24,163,16,195,16,163,24,163,
+  16,163,16,163,24,163,16,195,16,13,163,16,129,195,16,4,163,16,129,195,
+  16,3,163,16,8,195,16,169,195,24,227,16,228,24,228,24,102,33,41,58,
+  235,82,141,99,239,115,15,116,239,123,239,115,206,123,238,123,47,140,111,148,
+  177,156,18,173,115,189,180,197,180,189,147,189,50,173,209,156,14,132,77,115,
+  170,90,73,66,8,58,200,49,232,49,200,49,168,41,167,41,135,41,102,33,
+  69,33,37,25,228,16,196,16,196,16,3,163,16,135,162,16,130,16,130,16,
+  162,16,130,16,162,16,162,16,4,163,16,5,163,24,130,163,16,163,16,6,
+  195,24,131,163,16,195,16,195,24,3,163,16,149,162,16,163,16,163,16,131,
+  16,163,16,163,16,162,16,163,16,131,16,131,16,163,16,163,16,195,16,163,
+  16,130,8,131,16,130,16,130,16,163,16,163,16,162,16,8,163,16,144,131,
+  16,163,16,228,24,195,24,228,24,228,24,227,24,227,24,228,24,227,24,195,
+  24,195,24,196,24,195,24,227,24,195,24,3,227,24,137,195,24,228,32,4,
+  33,4,33,37,33,37,33,69,41,102,41,102,41,3,167,49,5,4,136,135,
+  33,136,25,168,25,136,33,168,33,136,33,168,33,167,33,3,168,33,132,200,
+  41,200,41,233,41,233,33,6,233,41,130,9,42,233,41,5,9,42,3,41,
+  50,3,42,50,136,41,50,42,50,42,50,41,42,42,50,42,50,74,50,42,
+  50,11,74,50,131,106,50,74,50,106,50,4,74,50,3,106,50,143,106,58,
+  107,58,74,50,106,58,106,58,106,50,107,58,106,58,106,58,106,50,107,50,
+  107,58,107,58,139,58,106,58,7,139,58,3,171,66,138,139,58,171,66,171,
+  58,171,66,172,66,171,66,203,66,204,66,204,66,172,66,3,204,66,130,204,
+  74,236,66,4,236,74,134,236,66,236,74,236,74,236,66,236,74,204,66,3,
+  236,74,129,236,66,4,236,74,7,13,75,129,237,74,5,13,75,133,45,75,
+  45,75,45,83,13,75,45,75,5,45,83,139,46,83,45,75,45,83,45,83,
+  77,83,78,83,77,83,77,83,78,83,78,83,110,83,3,78,83,139,110,83,
+  110,83,78,83,110,83,110,83,110,91,78,83,110,83,110,91,110,83,110,83,
+  4,110,91,129,110,83,3,110,91,132,142,91,143,91,143,91,110,91,9,143,
+  91,139,175,91,175,91,143,99,175,91,175,91,143,91,175,99,175,99,175,91,
+  175,99,175,91,5,175,99,7,207,99,136,208,99,208,99,207,99,208,99,208,
+  107,208,99,208,99,207,107,10,208,99,130,240,99,240,99,9,240,107,135,240,
+  99,16,108,240,107,17,108,240,107,241,107,241,107,3,240,107,129,16,108,8,
+  240,107,129,240,99,9,240,107,129,208,107,7,240,107,130,208,99,240,99,4,
+  208,107,131,208,99,208,99,208,107,3,208,99,129,207,99,8,175,99,132,143,
+  91,143,99,143,99,143,91,3,143,99,134,143,91,143,91,143,99,111,91,143,
+  99,142,99,5,143,99,137,143,91,143,99,143,99,143,91,143,99,143,91,143,
+  99,143,99,143,91,19,143,99,147,175,99,175,99,143,99,175,99,176,99,175,
+  99,175,99,207,99,175,99,175,99,208,99,208,99,176,99,176,99,176,107,208,
+  99,208,107,208,99,208,107,4,208,99,139,208,107,208,99,208,99,240,99,240,
+  99,208,99,208,99,240,99,208,99,208,99,240,99,3,241,99,133,240,99,241,
+  99,17,108,241,107,17,100,4,17,108,129,18,108,4,50,108,3,49,108,134,
+  50,108,50,108,50,116,50,116,17,108,17,108,4,49,108,3,50,108,3,50,
+  116,16,82,116,144,50,108,17,108,17,108,241,107,208,99,176,99,143,91,46,
+  91,14,83,237,74,204,66,139,66,75,58,42,50,9,42,233,49,3,233,41,
+  143,233,49,42,50,75,58,139,66,204,74,236,82,13,83,45,91,78,99,110,
+  107,110,99,110,107,110,107,110,99,109,99,3,110,107,129,110,99,3,110,107,
+  152,78,107,110,107,109,99,77,99,78,99,45,91,138,74,199,49,200,49,199,
+  49,199,49,167,49,199,49,199,49,200,49,200,49,199,49,200,49,232,49,200,
+  41,200,49,200,49,232,49,232,49,4,200,49,150,232,49,200,49,200,49,41,
+  66,77,99,142,107,174,107,207,115,240,123,16,124,16,124,48,132,16,124,16,
+  124,16,132,48,124,16,124,16,124,16,132,16,132,48,132,16,132,3,48,132,
+  144,48,124,48,132,48,132,142,115,142,107,142,115,239,123,231,57,163,16,195,
+  24,196,24,195,16,228,24,195,16,195,16,196,16,3,196,24,134,195,24,196,
+  24,195,24,196,24,195,16,195,24,4,196,24,132,228,24,196,24,195,16,195,
+  16,7,196,24,142,228,16,227,16,228,24,228,16,227,24,195,24,196,24,228,
+  24,195,16,196,16,196,16,228,24,196,24,196,24,7,228,24,178,4,25,228,
+  24,228,24,102,33,41,58,236,82,110,99,207,107,15,116,15,116,239,115,206,
+  115,174,115,173,115,206,123,238,131,47,140,144,156,18,173,50,173,50,173,18,
+  165,177,156,47,140,141,115,235,98,105,74,8,58,168,41,167,41,135,41,135,
+  33,167,33,167,41,168,41,167,33,167,41,199,41,135,33,135,41,135,33,103,
+  33,70,25,70,25,37,25,5,25,5,25,4,17,228,16,196,16,4,195,16,
+  139,163,16,195,24,195,24,163,16,163,16,195,16,163,16,195,16,163,16,195,
+  24,195,24,4,195,16,8,195,24,3,195,16,130,196,24,196,24,4,228,24,
+  131,196,24,195,16,195,16,4,163,16,138,195,16,195,24,196,24,196,16,196,
+  16,195,16,195,16,196,16,195,16,196,24,12,228,24,129,227,24,5,228,24,
+  140,228,32,228,24,227,24,228,24,227,24,195,24,228,32,228,24,4,33,4,
+  33,5,33,37,33,201,3,141,135,25,135,25,103,25,135,25,135,25,135,33,
+  135,25,135,33,135,33,136,33,136,33,168,33,168,33,6,200,33,131,200,41,
+  200,33,232,41,5,233,41,4,9,42,131,9,50,9,42,9,50,4,9,42,
+  133,9,50,9,42,10,50,41,50,41,50,3,42,50,132,41,42,42,50,42,
+  50,42,42,3,42,50,129,74,50,8,42,50,130,74,50,42,50,6,74,50,
+  129,42,50,5,74,50,129,74,58,4,74,50,135,107,50,106,58,107,58,107,
+  58,107,50,106,58,138,58,3,139,58,141,139,66,139,58,171,58,171,66,139,
+  58,171,66,171,66,172,66,172,66,171,66,171,66,204,66,171,66,6,204,66,
+  129,172,66,11,204,66,137,204,74,204,66,204,74,204,66,204,74,236,74,236,
+  74,204,66,236,74,3,236,66,135,236,74,237,74,236,74,237,74,237,74,236,
+  74,237,74,6,13,75,132,45,75,45,83,45,83,13,75,4,45,75,3,45,
+  83,129,45,75,5,45,83,130,78,83,45,83,12,78,83,131,110,83,110,83,
+  110,91,4,110,83,4,110,91,137,142,91,110,83,110,91,110,91,143,91,111,
+  91,111,91,143,91,142,91,7,143,91,137,143,99,143,99,143,91,175,91,175,
+  91,175,99,175,99,175,91,143,91,4,175,99,135,175,91,175,99,175,99,175,
+  91,175,99,175,99,175,91,6,175,99,131,208,99,208,99,175,99,6,208,99,
+  131,240,107,208,107,208,99,9,240,107,129,240,99,7,240,107,129,16,108,4,
+  240,107,140,16,108,240,107,241,107,240,99,240,107,16,108,240,107,16,108,16,
+  108,240,107,17,108,241,107,3,17,108,135,241,107,240,107,240,107,16,108,16,
+  108,240,107,17,108,8,240,107,133,208,107,208,107,208,99,208,99,208,107,3,
+  208,99,134,176,99,208,99,175,99,208,99,176,99,176,99,15,175,99,130,143,
+  99,143,99,7,175,99,12,143,99,130,143,91,143,91,3,143,99,131,175,99,
+  175,99,143,99,4,175,99,131,144,99,143,99,176,99,3,175,99,6,176,99,
+  130,208,99,175,99,8,176,99,132,176,91,176,99,176,99,208,91,5,208,99,
+  132,209,99,209,99,208,99,208,107,11,241,107,130,208,107,208,107,4,208,99,
+  134,208,107,241,99,241,99,240,107,241,107,17,100,9,17,108,130,49,108,17,
+  108,3,49,108,158,17,108,17,108,241,107,241,107,208,99,208,99,176,99,143,
+  99,143,91,78,83,46,83,237,74,205,74,172,66,139,66,107,66,74,50,42,
+  50,9,58,41,50,41,50,41,58,42,50,74,58,107,66,171,74,171,74,236,
+  74,236,82,13,91,4,45,91,6,13,91,129,13,99,4,45,91,134,13,91,
+  12,91,12,83,237,82,204,82,106,74,3,41,58,164,73,66,41,66,73,66,
+  106,66,106,66,41,58,41,66,106,66,73,66,74,66,73,66,73,66,106,66,
+  73,58,73,58,41,66,73,66,73,66,73,58,41,66,73,66,9,58,105,74,
+  45,99,109,99,110,107,142,107,174,115,207,115,174,107,174,115,175,115,174,115,
+  207,115,175,115,174,115,5,207,115,133,239,115,207,115,207,115,239,123,207,115,
+  3,109,107,137,174,115,138,74,199,49,167,41,167,41,134,41,134,41,102,33,
+  102,33,3,69,33,7,37,33,135,4,25,5,33,5,33,37,33,37,25,4,
+  25,4,33,3,4,25,133,5,25,4,33,4,25,4,25,4,33,10,4,25,
+  3,228,24,7,4,25,142,5,25,37,33,69,33,135,41,9,58,171,74,45,
+  91,109,99,174,107,206,107,239,115,206,115,174,107,142,107,3,141,107,163,141,
+  115,206,123,47,140,112,148,144,148,144,156,112,148,47,132,174,115,44,99,170,
+  82,73,66,232,49,200,41,200,41,200,33,200,33,168,41,167,33,168,33,168,
+  33,167,33,135,33,167,33,167,33,168,33,167,33,168,41,168,33,168,33,199,
+  33,168,33,168,33,167,33,136,33,4,135,33,4,102,33,134,70,25,102,25,
+  37,25,37,33,5,25,4,25,5,228,24,129,196,24,9,228,24,143,4,25,
+  37,25,102,33,134,33,102,33,70,33,37,33,37,25,37,33,228,24,228,16,
+  196,24,196,24,228,24,196,24,10,228,24,129,196,24,8,228,24,131,196,24,
+  228,24,195,24,3,228,24,141,196,24,196,24,228,24,228,24,196,24,227,24,
+  196,24,195,24,196,24,195,24,196,24,196,24,228,24
+};
+const GuiConst_PTR const GuiStruct_BitmapPtrList[GuiStruct_BitmapCnt] =
+{
+  (GuiConst_PTR)&GuiBitmap_0
+};
+
+const GuiConst_INTCOLOR GuiStruct_ColorTable[GuiStruct_ColorTableCnt] =
+{
+  27437
+};
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiStruct.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiStruct.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,124 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// Ensure that this header file is only included once
+#ifndef __GUISTRUCT_H
+#define __GUISTRUCT_H
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+// CLASS Base
+// ==========
+
+#define GuiStruct_Demo_0                         0
+// Internal sub-assemblies
+// =======================
+
+#define GuiStructCOMP_CBFLAT                     1
+#define GuiStructCOMP_CBFLATTRANSP               2
+#define GuiStructCOMP_CB3D                       3
+#define GuiStructCOMP_CB3DINNER                  4
+#define GuiStructCOMP_CBMCHSMALL                 5
+#define GuiStructCOMP_CBMCHBIG                   6
+#define GuiStructCOMP_CBMCRFLSMALL               7
+#define GuiStructCOMP_CBMCR3DSMALL               8
+#define GuiStructCOMP_CBMCRBIG                   9
+#define GuiStructCOMP_CBMFIFLAT                  10
+#define GuiStructCOMP_CBMFI3D                    11
+#define GuiStructCOMP_RBFLAT                     12
+#define GuiStructCOMP_RBFLATTRANSP               13
+#define GuiStructCOMP_RB3D                       14
+#define GuiStructCOMP_RB3DINNER                  15
+#define GuiStructCOMP_RBMFLAT                    16
+#define GuiStructCOMP_RBM3D                      17
+#define GuiStructCOMP_RBMSQUA                    18
+#define GuiStructCOMP_BUFLAT0                    19
+#define GuiStructCOMP_BUFLAT1                    20
+#define GuiStructCOMP_BUFLAT2                    21
+#define GuiStructCOMP_BUFLATR0                   22
+#define GuiStructCOMP_BUFLATR1                   23
+#define GuiStructCOMP_BUFLATR2                   24
+#define GuiStructCOMP_BU3D0                      25
+#define GuiStructCOMP_BU3D1                      26
+#define GuiStructCOMP_BU3D2                      27
+#define GuiStructCOMP_BU3DR0                     28
+#define GuiStructCOMP_BU3DR1                     29
+#define GuiStructCOMP_BU3DR2                     30
+#define GuiStructCOMP_EBFLAT                     31
+#define GuiStructCOMP_EB3D                       32
+#define GuiStructCOMP_PAFLAT                     33
+#define GuiStructCOMP_PAFLATR                    34
+#define GuiStructCOMP_PAFLATTRANSP               35
+#define GuiStructCOMP_PAFLATTRANSPR              36
+#define GuiStructCOMP_PA3DRAIS                   37
+#define GuiStructCOMP_PA3DRAISR                  38
+#define GuiStructCOMP_PA3DLOW                    39
+#define GuiStructCOMP_PA3DLOWR                   40
+#define GuiStructCOMP_PA3DINNER                  41
+#define GuiStructCOMP_PA3DINNERR                 42
+#define GuiStructCOMP_PAEMBRAIS                  43
+#define GuiStructCOMP_PAEMBLOW                   44
+#define GuiStructCOMP_MMFLAT                     45
+#define GuiStructCOMP_MM3D                       46
+#define GuiStructCOMP_LBFLAT                     47
+#define GuiStructCOMP_LB3D                       48
+#define GuiStructCOMP_COFLAT                     49
+#define GuiStructCOMP_CO3D                       50
+#define GuiStructCOMP_SAFLAT                     51
+#define GuiStructCOMP_SA3D                       52
+#define GuiStructCOMP_PBFLAT                     53
+#define GuiStructCOMP_PB3D                       54
+
+#define GuiStruct_StructCnt  1
+extern const GuiConst_PTR const GuiStruct_StructPtrList[GuiStruct_StructCnt];
+extern const GuiConst_INT16U GuiStruct_StructNdxList[GuiStruct_StructCnt];
+
+#define GuiStruct_VarPtrCnt  1
+extern const GuiConst_PTR const GuiStruct_VarPtrList[GuiStruct_VarPtrCnt];
+
+extern const GuiConst_INT8U GuiStruct_VarTypeList[GuiStruct_VarPtrCnt];
+
+#define GuiStruct_Bitmap_DSC_1836Reduced                  0
+
+#define GuiStruct_BitmapCnt  1
+extern const GuiConst_PTR const GuiStruct_BitmapPtrList[GuiStruct_BitmapCnt];
+
+#define GuiStruct_ColorTableCnt  1
+extern const GuiConst_INTCOLOR GuiStruct_ColorTable[GuiStruct_ColorTableCnt];
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+#endif
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiVar.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiVar.c	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,44 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+
+GuiConst_INT16S    GuiVarCompInt1;
+GuiConst_INT16S    GuiVarCompInt2;
+GuiConst_INT16S    GuiVarCompInt3;
+GuiConst_INT16S    GuiVarCompInt4;
+GuiConst_INT16S    GuiVarCompInt5;
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 easyGUIUpdated/GuiVar.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/easyGUIUpdated/GuiVar.h	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,59 @@
+// My own header is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+//
+//                            *** ATTENTION ***
+//
+//   This file is maintained by the easyGUI Graphical User Interface
+//   program. Modifications should therefore not be made directly in
+//   this file, as the changes will be lost next time easyGUI creates
+//   the file.
+//
+//                            *** ATTENTION ***
+//
+// -----------------------------------------------------------------------
+
+//
+// Generated by easyGUI version 6.0.9.005
+// Generated for project SinglePhoto_bitmap_loader
+// in project file 
+//    C:\Single_Photo_bitmap_loader_application\SinglePhoto_bitmap_loader.gui
+//
+
+// Ensure that this header file is only included once
+#ifndef __GUIVAR_H
+#define __GUIVAR_H
+
+// --------------------------  INCLUDE SECTION  --------------------------
+
+#include "GuiConst.h"
+#include "GuiLib.h"
+
+// ---------------------  GLOBAL DECLARATION SECTION  --------------------
+
+// Positions
+// =========
+
+
+// Variables
+// =========
+
+
+extern GuiConst_INT16S    GuiVarCompInt1;
+extern GuiConst_INT16S    GuiVarCompInt2;
+extern GuiConst_INT16S    GuiVarCompInt3;
+extern GuiConst_INT16S    GuiVarCompInt4;
+extern GuiConst_INT16S    GuiVarCompInt5;
+
+
+// --------------------------  CUSTOM SECTION  ---------------------------
+
+// My own code is inserted here - edit it in the C code generation window
+
+// -----------------------------------------------------------------------
+
+#endif
+
+// -----------------------------------------------------------------------
+
+// My own footer is inserted here - edit it in the C code generation window
diff -r 000000000000 -r 7d6bc03009a3 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Jul 28 14:32:15 2017 +0000
@@ -0,0 +1,225 @@
+#include "mbed.h"
+#include "DMBoard.h"
+#include "lpc_swim.h"
+#include "lpc_swim_font.h"
+
+#include "GuiLib.h"
+#include "GuiDisplay.h"
+
+#include <fstream>
+
+/*
+    This application loads bitmaps into QSPI memory for use by the GC500_2_5inch application,
+    since memory limits do not allow these bitmaps to be included in the application
+    in the normal way.
+
+    The associated easyGUI project is C:/easyGUI Projects/GC500_2_5inch_BitmapLoader.gui
+   
+    It is intended for use with the Embedded Artists LPC4088 board, 5 inch display.
+*/
+
+// Use QSPI - uncomment '#define DM_BOARD_USE_QSPI' in dm_board_config.h, and:
+#include "QSPIFileSystem.h"
+QSPIFileSystem qspifs("qspi");
+// Can now use QSPI memory as file device '/qspi/'
+//
+
+/*
+    Bodge so GuiDisplay.c ('easyGUIFixed' file) can call Thread::wait 
+    (giving it an accurate millisecond timer)
+*/
+extern "C" {
+    void EasyGUIWaitMs(GuiConst_INT32U msec)
+    {
+        Thread::wait(msec);
+    }
+}
+
+
+void Save_easyGUI_bitmap(int bitmapIndex, char* bitmapName, int bitmapSize, SWIM_WINDOW_T* winPtr, int winX, int winY)
+{
+    char bitmapSizeFilename[200];
+//    sprintf(bitmapSizeFilename, "/mci/%s_BMP.size", bitmapName);
+    sprintf(bitmapSizeFilename, "/qspi/%s_BMP.size", bitmapName);
+
+    char buff[100];
+    
+    ofstream bitmapSizeStream;
+    bitmapSizeStream.open(bitmapSizeFilename);
+    if(bitmapSizeStream) {
+        bitmapSizeStream << bitmapSize << "\n";
+        bitmapSizeStream.close();
+        sprintf(buff, "Wrote %d to bitmap size file: %s", bitmapSize, bitmapSizeFilename);
+        swim_put_text_xy(winPtr, buff, winX, winY);
+    } else {
+        sprintf(buff, "Failed to open bitmap size file for writing: %s", bitmapSizeFilename);
+        swim_put_text_xy(winPtr, buff, winX, winY);
+    }
+    
+    winY += 12;  
+
+    char bitmapDataFilename[200];
+//    sprintf(bitmapDataFilename, "/mci/%s_BMP.data", bitmapName);
+    sprintf(bitmapDataFilename, "/qspi/%s_BMP.data", bitmapName);
+
+    ofstream bitmapDataStream;
+    bitmapDataStream.open(bitmapDataFilename, (ios::out | ios::binary));
+    if(bitmapDataStream) {
+        bitmapDataStream.write((char*) GuiStruct_BitmapPtrList[bitmapIndex], bitmapSize);
+        bitmapDataStream.close();
+        sprintf(buff, "Wrote %d bytes to bitmap data file: %s", bitmapSize, bitmapDataFilename);
+        swim_put_text_xy(winPtr, buff, winX, winY);
+    } else {
+        sprintf(buff, "Failed to open bitmap data file for writing: %s", bitmapDataFilename);
+        swim_put_text_xy(winPtr, buff, winX, winY);
+    }
+}
+
+/*
+    Displays the directory of files in QSPI memory.
+    
+    Used for debugging/testing - not appropriate or required in the 'real' system.
+    
+    Args: pointer to a 'swim window', and the X and Y coordinates at which to display the directory on the screen
+*/
+void DisplayQSPIDirectory(SWIM_WINDOW_T* winPtr, int winX, int winY)
+{
+    DIR *dp;
+    dp = opendir("/qspi/");
+
+    if(dp != NULL) {
+        struct dirent *dirp;
+        
+        swim_put_text_xy(winPtr, "Start of QSPI directory", winX, winY);
+        winY += 12;
+    
+        // Indent file names
+        while((dirp = readdir(dp)) != NULL) {
+            swim_put_text_xy(winPtr, dirp->d_name, winX + 30, winY);
+            winY += 12;
+        }
+        closedir(dp);
+    
+        swim_put_text_xy(winPtr, "End of QSPI directory", winX, winY);
+    } else {
+        swim_put_text_xy(winPtr, "Failed to open QSPI directory", winX, winY);
+    }
+}
+
+/*
+    Deletes all existing files in the QSPI directory.
+    
+    So that we know there is only the bitmap files there, nothing else
+*/
+void ClearQSPIDirectory(void)
+{
+    DIR *dp;
+    dp = opendir("/qspi/");
+
+    if(dp != NULL) {
+        struct dirent *dirp;
+        
+        while((dirp = readdir(dp)) != NULL) {
+            char buff[200];
+            sprintf(buff, "/qspi/%s", dirp->d_name);
+            remove(buff);
+        }
+        closedir(dp);
+    }
+}
+
+
+int main()
+{
+  DMBoard::BoardError err;
+  DMBoard* board = &DMBoard::instance();
+  RtosLog* log = board->logger();
+  Display* disp = board->display();
+  
+  do {
+    err = board->init();
+    if (err != DMBoard::Ok) {
+      log->printf("Failed to initialize the board, got error %d\r\n", err);
+      break;
+    }
+    
+    log->printf("\n\nHello World!\n\n");
+    
+    SWIM_WINDOW_T win;
+    void* fb = disp->allocateFramebuffer();
+    if (fb == NULL) {
+      log->printf("Failed to allocate memory for a frame buffer\r\n");
+      err = DMBoard::MemoryError;
+      break;
+    }
+    
+    // Prepare fullscreen
+    swim_window_open(&win, 
+                     disp->width(), disp->height(),         // full size
+                     (COLOR_T*)fb,
+                     0,0,disp->width()-1, disp->height()-1, // window position and size
+                     1,                                     // border
+                     WHITE, BLUE, BLACK);                   // colors: pen, backgr, forgr
+    swim_set_title(&win, "Single Photo Bitmap Loader", BLACK);
+  
+    // Message    
+//    swim_put_text_xy(&win, "Checking for SD/MMC card", 100, 0);
+//    if(mcifs.cardInserted()) {
+//        swim_put_text_xy(&win, "Found SD/MMC card", 100, 10);
+
+    // Make sure QSPI filesystem is formatted before we try to use it
+    if (!qspifs.isformatted()) {
+        qspifs.format();
+    }
+        
+#define START_DISPLAY_FIRST
+#ifdef  START_DISPLAY_FIRST
+    // Start display in default mode (16-bit)
+    Display::DisplayError disperr = disp->powerUp(fb);
+    if (disperr != Display::DisplayError_Ok) {
+      log->printf("Failed to initialize the display, got error %d\r\n", disperr);
+      break;
+    }
+#endif //  START_DISPLAY_FIRST
+
+//#define CLEAR_DIRECTORY_FIRST // No - leave GC500_2_5inch bimaps alone
+#ifdef CLEAR_DIRECTORY_FIRST
+        ClearQSPIDirectory(); // Appears to cause LPC4088 error
+#endif
+
+#define LOAD_THE_BITMAPS // May want to not load them (e.g. for testing purposes)
+#ifdef LOAD_THE_BITMAPS 
+
+        // Values passed to Save_easyGUI_bitmap are manually copied
+        // from GuiStruct.c and GuiStruct.h, and hard-coded here
+        
+        // The single photo bitmap, 720 * 480
+        Save_easyGUI_bitmap(GuiStruct_Bitmap_DSC_1836Reduced, "GuiStruct_Bitmap_DSC_1836Reduced", 515514, &win, 10, 30);
+        
+#endif // LOAD_THE_BITMAPS 
+
+        DisplayQSPIDirectory(&win, 450, 30);
+//    } else {
+//        swim_put_text_xy(&win, "SD/MMC card not found", 100, 30);
+//    }
+
+    
+#ifndef  START_DISPLAY_FIRST
+    // Start display in default mode (16-bit)
+    Display::DisplayError disperr = disp->powerUp(fb);
+    if (disperr != Display::DisplayError_Ok) {
+      log->printf("Failed to initialize the display, got error %d\r\n", disperr);
+      break;
+    }
+#endif //  START_DISPLAY_FIRST
+  } while(false);
+
+  if (err != DMBoard::Ok) {
+    log->printf("\nTERMINATING\n");
+    wait_ms(2000); // allow RtosLog to flush messages
+    mbed_die();
+  }  
+
+  while(true) {
+  }   
+}