From 48bb7201bd3d4f8fc8a31fb40ede3d045aa15bbb Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 1 Mar 2016 19:49:42 +0100 Subject: [PATCH] Update DPF; Add glBars plugin --- Makefile | 10 +- dpf/dgl/Application.hpp | 2 +- dpf/dgl/Base.hpp | 2 +- dpf/dgl/Color.hpp | 2 +- dpf/dgl/Geometry.hpp | 2 +- dpf/dgl/Image.hpp | 2 +- dpf/dgl/ImageAboutWindow.hpp | 23 - dpf/dgl/ImageButton.hpp | 23 - dpf/dgl/ImageKnob.hpp | 23 - dpf/dgl/ImageSlider.hpp | 23 - dpf/dgl/ImageSwitch.hpp | 23 - dpf/dgl/ImageWidgets.hpp | 2 +- dpf/dgl/Makefile | 4 - dpf/dgl/NanoVG.hpp | 2 +- dpf/dgl/NanoWidgets.hpp | 77 - dpf/dgl/StandaloneWindow.hpp | 2 +- dpf/dgl/Widget.hpp | 2 +- dpf/dgl/Window.hpp | 2 +- dpf/dgl/src/Application.cpp | 2 +- dpf/dgl/src/ApplicationPrivateData.hpp | 2 +- dpf/dgl/src/Color.cpp | 2 +- dpf/dgl/src/Common.hpp | 15 +- dpf/dgl/src/Geometry.cpp | 2 +- dpf/dgl/src/Image.cpp | 2 +- dpf/dgl/src/ImageWidgets.cpp | 4 +- dpf/dgl/src/NanoVG.cpp | 2 +- dpf/dgl/src/NanoWidgets.cpp | 152 - dpf/dgl/src/Resources.cpp | 6275 +- dpf/dgl/src/Resources.hpp | 7 +- dpf/dgl/src/Widget.cpp | 2 +- dpf/dgl/src/WidgetPrivateData.hpp | 2 +- dpf/dgl/src/Window.cpp | 2 +- dpf/dgl/src/oui-blendish/LICENSE | 21 - dpf/dgl/src/oui-blendish/blendish.h | 2399 - dpf/dgl/src/oui-blendish/oui.h | 2025 - .../resources/LICENSE-blender_icons.svg.txt | 280 - dpf/dgl/src/resources/blender_icons.svg | 88974 ---------------- dpf/dgl/src/resources/blender_icons16.png | Bin 250706 -> 0 bytes dpf/distrho/DistrhoInfo.hpp | 2 +- dpf/distrho/DistrhoPlugin.hpp | 2 +- dpf/distrho/DistrhoPluginMain.cpp | 2 +- dpf/distrho/DistrhoUIMain.cpp | 2 +- dpf/distrho/DistrhoUtils.hpp | 2 +- dpf/distrho/extra/LeakDetector.hpp | 2 +- dpf/distrho/extra/Mutex.hpp | 2 +- dpf/distrho/extra/ScopedPointer.hpp | 2 +- dpf/distrho/extra/Sleep.hpp | 2 +- dpf/distrho/extra/String.hpp | 2 +- dpf/distrho/extra/Thread.hpp | 2 +- dpf/distrho/src/DistrhoDefines.h | 2 +- dpf/distrho/src/DistrhoPlugin.cpp | 2 +- dpf/distrho/src/DistrhoPluginCarla.cpp | 2 +- dpf/distrho/src/DistrhoPluginChecks.h | 2 +- dpf/distrho/src/DistrhoPluginInternal.hpp | 2 +- dpf/distrho/src/DistrhoPluginJack.cpp | 2 +- dpf/distrho/src/DistrhoPluginLADSPA+DSSI.cpp | 2 +- dpf/distrho/src/DistrhoPluginLV2.cpp | 2 +- dpf/distrho/src/DistrhoPluginLV2export.cpp | 2 +- dpf/distrho/src/DistrhoUIDSSI.cpp | 2 +- dpf/distrho/src/DistrhoUILV2.cpp | 2 +- dpf/dpf.doxygen | 4 + .../lv2-ttl-generator/lv2_ttl_generator.c | 14 +- dpf/utils/png2rgba.py | 15 + get-plugins.sh | 2 +- plugins/Makefile.glBars.mk | 88 + plugins/ProM/DistrhoPluginProM.hpp | 6 +- plugins/ProM/DistrhoUIProM.hpp | 6 +- plugins/glBars/DistrhoPluginGLBars.cpp | 149 + plugins/glBars/DistrhoPluginGLBars.hpp | 110 + plugins/glBars/DistrhoPluginInfo.h | 43 + plugins/glBars/DistrhoUIGLBars.cpp | 133 + plugins/glBars/DistrhoUIGLBars.hpp | 66 + plugins/glBars/Makefile | 37 + plugins/glBars/Screenshot.png | Bin 0 -> 37348 bytes plugins/glBars/glBars.hpp | 234 + 75 files changed, 960 insertions(+), 100387 deletions(-) delete mode 100644 dpf/dgl/ImageAboutWindow.hpp delete mode 100644 dpf/dgl/ImageButton.hpp delete mode 100644 dpf/dgl/ImageKnob.hpp delete mode 100644 dpf/dgl/ImageSlider.hpp delete mode 100644 dpf/dgl/ImageSwitch.hpp delete mode 100644 dpf/dgl/NanoWidgets.hpp delete mode 100644 dpf/dgl/src/NanoWidgets.cpp delete mode 100644 dpf/dgl/src/oui-blendish/LICENSE delete mode 100644 dpf/dgl/src/oui-blendish/blendish.h delete mode 100644 dpf/dgl/src/oui-blendish/oui.h delete mode 100644 dpf/dgl/src/resources/LICENSE-blender_icons.svg.txt delete mode 100644 dpf/dgl/src/resources/blender_icons.svg delete mode 100644 dpf/dgl/src/resources/blender_icons16.png create mode 100644 plugins/Makefile.glBars.mk create mode 100644 plugins/glBars/DistrhoPluginGLBars.cpp create mode 100644 plugins/glBars/DistrhoPluginGLBars.hpp create mode 100644 plugins/glBars/DistrhoPluginInfo.h create mode 100644 plugins/glBars/DistrhoUIGLBars.cpp create mode 100644 plugins/glBars/DistrhoUIGLBars.hpp create mode 100644 plugins/glBars/Makefile create mode 100644 plugins/glBars/Screenshot.png create mode 100644 plugins/glBars/glBars.hpp diff --git a/Makefile b/Makefile index ed28bf6..4c0b01c 100644 --- a/Makefile +++ b/Makefile @@ -21,6 +21,11 @@ ifeq ($(HAVE_DGL),true) endif plugins: libs + # glBars (needs OpenGL) +ifeq ($(HAVE_DGL),true) + $(MAKE) all -C plugins/glBars +endif + # Kars $(MAKE) all -C plugins/Kars @@ -40,7 +45,7 @@ plugins: libs # Nekobi $(MAKE) all -C plugins/Nekobi - # ProM (needs DGL + ProjectM) + # ProM (needs OpenGL + ProjectM) ifeq ($(HAVE_DGL),true) ifeq ($(HAVE_PROJM),true) $(MAKE) all -C plugins/ProM @@ -70,6 +75,9 @@ ifeq ($(HAVE_DGL),true) endif $(MAKE) clean -C dpf/utils/lv2-ttl-generator + # glBars + $(MAKE) clean -C plugins/glBars + # Kars $(MAKE) clean -C plugins/Kars diff --git a/dpf/dgl/Application.hpp b/dpf/dgl/Application.hpp index 03d003b..85c3770 100644 --- a/dpf/dgl/Application.hpp +++ b/dpf/dgl/Application.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Base.hpp b/dpf/dgl/Base.hpp index 5cc170c..30d10e0 100644 --- a/dpf/dgl/Base.hpp +++ b/dpf/dgl/Base.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Color.hpp b/dpf/dgl/Color.hpp index e7a0a40..2fc8c64 100644 --- a/dpf/dgl/Color.hpp +++ b/dpf/dgl/Color.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Geometry.hpp b/dpf/dgl/Geometry.hpp index a7ec43b..3dbf706 100644 --- a/dpf/dgl/Geometry.hpp +++ b/dpf/dgl/Geometry.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Image.hpp b/dpf/dgl/Image.hpp index 4136f3f..3df5bd8 100644 --- a/dpf/dgl/Image.hpp +++ b/dpf/dgl/Image.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/ImageAboutWindow.hpp b/dpf/dgl/ImageAboutWindow.hpp deleted file mode 100644 index 9291c57..0000000 --- a/dpf/dgl/ImageAboutWindow.hpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_IMAGE_ABOUT_WINDOW_HPP_INCLUDED -#define DGL_IMAGE_ABOUT_WINDOW_HPP_INCLUDED - -#warning This is a deprecated file, please include ImageWidgets.hpp instead. -#include "ImageWidgets.hpp" - -#endif // DGL_IMAGE_ABOUT_WINDOW_HPP_INCLUDED diff --git a/dpf/dgl/ImageButton.hpp b/dpf/dgl/ImageButton.hpp deleted file mode 100644 index 5771f66..0000000 --- a/dpf/dgl/ImageButton.hpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_IMAGE_BUTTON_HPP_INCLUDED -#define DGL_IMAGE_BUTTON_HPP_INCLUDED - -#warning This is a deprecated file, please include ImageWidgets.hpp instead. -#include "ImageWidgets.hpp" - -#endif // DGL_IMAGE_BUTTON_HPP_INCLUDED diff --git a/dpf/dgl/ImageKnob.hpp b/dpf/dgl/ImageKnob.hpp deleted file mode 100644 index 64ccaa0..0000000 --- a/dpf/dgl/ImageKnob.hpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_IMAGE_KNOB_HPP_INCLUDED -#define DGL_IMAGE_KNOB_HPP_INCLUDED - -#warning This is a deprecated file, please include ImageWidgets.hpp instead. -#include "ImageWidgets.hpp" - -#endif // DGL_IMAGE_KNOB_HPP_INCLUDED diff --git a/dpf/dgl/ImageSlider.hpp b/dpf/dgl/ImageSlider.hpp deleted file mode 100644 index 2c16cb6..0000000 --- a/dpf/dgl/ImageSlider.hpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_IMAGE_SLIDER_HPP_INCLUDED -#define DGL_IMAGE_SLIDER_HPP_INCLUDED - -#warning This is a deprecated file, please include ImageWidgets.hpp instead. -#include "ImageWidgets.hpp" - -#endif // DGL_IMAGE_SLIDER_HPP_INCLUDED diff --git a/dpf/dgl/ImageSwitch.hpp b/dpf/dgl/ImageSwitch.hpp deleted file mode 100644 index b8767d5..0000000 --- a/dpf/dgl/ImageSwitch.hpp +++ /dev/null @@ -1,23 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_IMAGE_SWITCH_HPP_INCLUDED -#define DGL_IMAGE_SWITCH_HPP_INCLUDED - -#warning This is a deprecated file, please include ImageWidgets.hpp instead. -#include "ImageWidgets.hpp" - -#endif // DGL_IMAGE_SWITCH_HPP_INCLUDED diff --git a/dpf/dgl/ImageWidgets.hpp b/dpf/dgl/ImageWidgets.hpp index c3e0c09..5c23319 100644 --- a/dpf/dgl/ImageWidgets.hpp +++ b/dpf/dgl/ImageWidgets.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Makefile b/dpf/dgl/Makefile index 31bb1c7..7565962 100644 --- a/dpf/dgl/Makefile +++ b/dpf/dgl/Makefile @@ -12,9 +12,6 @@ BUILD_C_FLAGS += $(DGL_FLAGS) -I. -Isrc BUILD_CXX_FLAGS += $(DGL_FLAGS) -I. -Isrc LINK_FLAGS += $(DGL_LIBS) -# needed by oui-blendish -BUILD_CXX_FLAGS += -Wno-unused-parameter - # -------------------------------------------------------------- OBJS = \ @@ -24,7 +21,6 @@ OBJS = \ src/Image.cpp.o \ src/ImageWidgets.cpp.o \ src/NanoVG.cpp.o \ - src/NanoWidgets.cpp.o \ src/Resources.cpp.o \ src/Widget.cpp.o diff --git a/dpf/dgl/NanoVG.hpp b/dpf/dgl/NanoVG.hpp index a3ee15a..322c6cf 100644 --- a/dpf/dgl/NanoVG.hpp +++ b/dpf/dgl/NanoVG.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/NanoWidgets.hpp b/dpf/dgl/NanoWidgets.hpp deleted file mode 100644 index 7b40bf4..0000000 --- a/dpf/dgl/NanoWidgets.hpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#ifndef DGL_NANO_WIDGETS_HPP_INCLUDED -#define DGL_NANO_WIDGETS_HPP_INCLUDED - -#include "NanoVG.hpp" - -START_NAMESPACE_DGL - -// ----------------------------------------------------------------------- - -class BlendishWidget : public NanoWidget -{ -public: - explicit BlendishWidget(Window& parent); - explicit BlendishWidget(NanoWidget* widget); - - void loadSharedResources() override; -}; - -// ----------------------------------------------------------------------- - -class BlendishButton : public BlendishWidget -{ -public: - class Callback - { - public: - virtual ~Callback() {} - virtual void blendishButtonClicked(BlendishButton* blendishButton, int button) = 0; - }; - - explicit BlendishButton(Window& parent, const char* text = "", int iconId = -1); - explicit BlendishButton(NanoWidget* widget, const char* text = "", int iconId = -1); - ~BlendishButton() override; - - int getIconId() const noexcept; - void setIconId(int iconId) noexcept; - - const char* getText() const noexcept; - void setText(const char* text) noexcept; - - void setCallback(Callback* callback) noexcept; - -protected: - void onNanoDisplay() override; - bool onMouse(const MouseEvent&) override; - bool onMotion(const MotionEvent&) override; - -private: - struct PrivateData; - PrivateData* const pData; - - void _updateBounds(); - - DISTRHO_LEAK_DETECTOR(BlendishButton) -}; - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL - -#endif // DGL_NANO_WIDGETS_HPP_INCLUDED diff --git a/dpf/dgl/StandaloneWindow.hpp b/dpf/dgl/StandaloneWindow.hpp index 72d6ea2..01ffa7d 100644 --- a/dpf/dgl/StandaloneWindow.hpp +++ b/dpf/dgl/StandaloneWindow.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Widget.hpp b/dpf/dgl/Widget.hpp index 195f08c..1ba3c1c 100644 --- a/dpf/dgl/Widget.hpp +++ b/dpf/dgl/Widget.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/Window.hpp b/dpf/dgl/Window.hpp index 3e1f75c..25fa9b2 100644 --- a/dpf/dgl/Window.hpp +++ b/dpf/dgl/Window.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/Application.cpp b/dpf/dgl/src/Application.cpp index 32b333a..f7d42af 100644 --- a/dpf/dgl/src/Application.cpp +++ b/dpf/dgl/src/Application.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/ApplicationPrivateData.hpp b/dpf/dgl/src/ApplicationPrivateData.hpp index a0b1c1b..e95d44a 100644 --- a/dpf/dgl/src/ApplicationPrivateData.hpp +++ b/dpf/dgl/src/ApplicationPrivateData.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/Color.cpp b/dpf/dgl/src/Color.cpp index eef4b6a..2ea9819 100644 --- a/dpf/dgl/src/Color.cpp +++ b/dpf/dgl/src/Color.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/Common.hpp b/dpf/dgl/src/Common.hpp index 084d27e..fd1070a 100644 --- a/dpf/dgl/src/Common.hpp +++ b/dpf/dgl/src/Common.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this @@ -18,7 +18,6 @@ #define DGL_COMMON_HPP_INCLUDED #include "../ImageWidgets.hpp" -#include "../NanoWidgets.hpp" START_NAMESPACE_DGL @@ -35,15 +34,13 @@ struct ButtonImpl { int state; Widget* self; - BlendishButton::Callback* callback_b; - ImageButton::Callback* callback_i; + ImageButton::Callback* callback_img; ButtonImpl(Widget* const s) noexcept : button(-1), state(kStateNormal), self(s), - callback_b(nullptr), - callback_i(nullptr) {} + callback_img(nullptr) {} bool onMouse(const Widget::MouseEvent& ev) { @@ -68,10 +65,8 @@ struct ButtonImpl { state = kStateHover; self->repaint(); - if (callback_b != nullptr) - callback_b->blendishButtonClicked((BlendishButton*)self, button2); - if (callback_i != nullptr) - callback_i->imageButtonClicked((ImageButton*)self, button2); + if (callback_img != nullptr) + callback_img->imageButtonClicked((ImageButton*)self, button2); return true; } diff --git a/dpf/dgl/src/Geometry.cpp b/dpf/dgl/src/Geometry.cpp index 65dde8c..11916c5 100644 --- a/dpf/dgl/src/Geometry.cpp +++ b/dpf/dgl/src/Geometry.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/Image.cpp b/dpf/dgl/src/Image.cpp index db9bd47..c34eadb 100644 --- a/dpf/dgl/src/Image.cpp +++ b/dpf/dgl/src/Image.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/ImageWidgets.cpp b/dpf/dgl/src/ImageWidgets.cpp index 4145f1d..9b4625c 100644 --- a/dpf/dgl/src/ImageWidgets.cpp +++ b/dpf/dgl/src/ImageWidgets.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this @@ -159,7 +159,7 @@ ImageButton::~ImageButton() void ImageButton::setCallback(Callback* callback) noexcept { - pData->impl.callback_i = callback; + pData->impl.callback_img = callback; } void ImageButton::onDisplay() diff --git a/dpf/dgl/src/NanoVG.cpp b/dpf/dgl/src/NanoVG.cpp index 9c40b08..0fcb29f 100644 --- a/dpf/dgl/src/NanoVG.cpp +++ b/dpf/dgl/src/NanoVG.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/NanoWidgets.cpp b/dpf/dgl/src/NanoWidgets.cpp deleted file mode 100644 index 1ac3d0b..0000000 --- a/dpf/dgl/src/NanoWidgets.cpp +++ /dev/null @@ -1,152 +0,0 @@ -/* - * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho - * - * Permission to use, copy, modify, and/or distribute this software for any purpose with - * or without fee is hereby granted, provided that the above copyright notice and this - * permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD - * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN - * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER - * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN - * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include "Common.hpp" -#include "Resources.hpp" - -#define BLENDISH_IMPLEMENTATION -#include "nanovg/nanovg.h" -#include "oui-blendish/blendish.h" -#include "../distrho/extra/String.hpp" - -START_NAMESPACE_DGL - -// ----------------------------------------------------------------------- - -BlendishWidget::BlendishWidget(Window& parent) - : NanoWidget(parent) -{ - loadSharedResources(); -} - -BlendishWidget::BlendishWidget(NanoWidget* widget) - : NanoWidget(widget) -{ - loadSharedResources(); -} - -void BlendishWidget::loadSharedResources() -{ - if (nvgFindFont(fContext, NANOVG_DEJAVU_SANS_TTF) >= 0) - return; - - using namespace dpf_resources; - - bndSetFont(nvgCreateFontMem(fContext, NANOVG_DEJAVU_SANS_TTF, (const uchar*)dejavusans_ttf, dejavusans_ttf_size, 0)); - bndSetIconImage(nvgCreateImageMem(fContext, 0, (const uchar*)blender_icons16_png, blender_icons16_png_size)); -} - -// ----------------------------------------------------------------------- - -struct BlendishButton::PrivateData { - ButtonImpl impl; - int iconId; - DISTRHO_NAMESPACE::String text; - - PrivateData(Widget* const s, const char* const t, const int i) noexcept - : impl(s), - iconId(i), - text(t) {} - - DISTRHO_DECLARE_NON_COPY_STRUCT(PrivateData) -}; - -// ----------------------------------------------------------------------- - -BlendishButton::BlendishButton(Window& parent, const char* text, int iconId) - : BlendishWidget(parent), - pData(new PrivateData(this, text, iconId)) -{ - _updateBounds(); -} - -BlendishButton::BlendishButton(NanoWidget* widget, const char* text, int iconId) - : BlendishWidget(widget), - pData(new PrivateData(this, text, iconId)) -{ - _updateBounds(); -} - -BlendishButton::~BlendishButton() -{ - delete pData; -} - -int BlendishButton::getIconId() const noexcept -{ - return pData->iconId; -} - -void BlendishButton::setIconId(int iconId) noexcept -{ - if (pData->iconId == iconId) - return; - - pData->iconId = iconId; - _updateBounds(); - repaint(); -} - -const char* BlendishButton::getText() const noexcept -{ - return pData->text; -} - -void BlendishButton::setText(const char* text) noexcept -{ - if (pData->text == text) - return; - - pData->text = text; - _updateBounds(); - repaint(); -} - -void BlendishButton::setCallback(Callback* callback) noexcept -{ - pData->impl.callback_b = callback; -} - -void BlendishButton::onNanoDisplay() -{ - bndToolButton(getContext(), - getAbsoluteX(), getAbsoluteY(), getWidth(), getHeight(), - 0, static_cast(pData->impl.state), pData->iconId, pData->text); -} - -bool BlendishButton::onMouse(const MouseEvent& ev) -{ - return pData->impl.onMouse(ev); -} - -bool BlendishButton::onMotion(const MotionEvent& ev) -{ - return pData->impl.onMotion(ev); -} - -void BlendishButton::_updateBounds() -{ - const float width = bndLabelWidth (getContext(), pData->iconId, pData->text); - const float height = bndLabelHeight(getContext(), pData->iconId, pData->text, width); - - setSize(width, height); -} - -// ----------------------------------------------------------------------- - -END_NAMESPACE_DGL - -// ----------------------------------------------------------------------- diff --git a/dpf/dgl/src/Resources.cpp b/dpf/dgl/src/Resources.cpp index b8a0154..5667181 100644 --- a/dpf/dgl/src/Resources.cpp +++ b/dpf/dgl/src/Resources.cpp @@ -2,6277 +2,7 @@ #include "Resources.hpp" -static const unsigned char temp1[] = {137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,2,90,0,0,2,128,8,6,0,0,0,68,254,214,163,0,0,0,4,115,66,73, - 84,8,8,8,8,124,8,100,136,0,0,0,9,112,72,89,115,0,0,13,215,0,0,13,215,1,66,40,155,120,0,0,0,25,116,69,88,116,83,111, - 102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46,111,114,103,155,238,60,26,0,0,0,29,116,69,88,116,84,105,116,108,101, - 0,66,108,101,110,100,101,114,32,105,99,111,110,115,32,118,46,32,50,46,53,46,48,56,74,212,185,78,0,0,0,22,116,69,88,116,65,117,116,104, - 111,114,0,65,110,100,114,122,101,106,32,65,109,98,114,111,197,188,92,53,214,138,0,0,0,158,116,69,88,116,68,101,115,99,114,105,112,116,105,111, - 110,0,84,104,105,115,32,99,111,110,116,101,110,116,32,105,115,32,117,110,100,101,114,32,67,67,32,65,116,116,114,105,98,117,116,105,111,110,45,78, - 111,110,67,111,109,109,101,114,99,105,97,108,32,83,104,97,114,101,65,108,105,107,101,32,108,105,99,101,110,99,101,32,51,46,48,32,97,115,32,108, - 111,110,103,32,97,115,32,105,116,39,115,32,117,115,101,100,32,102,111,114,32,66,108,101,110,100,101,114,32,51,68,32,71,85,73,46,32,65,110,121, - 32,111,116,104,101,114,32,117,115,101,115,32,97,114,101,32,110,111,116,32,97,108,108,111,119,101,100,46,43,245,213,180,0,0,0,24,116,69,88,116, - 67,114,101,97,116,105,111,110,32,84,105,109,101,0,50,49,46,48,53,46,50,48,49,50,12,64,242,4,0,0,0,99,116,69,88,116,67,111,112,121, - 114,105,103,104,116,0,67,67,32,65,116,116,114,105,98,117,116,105,111,110,45,78,111,110,67,111,109,109,101,114,99,105,97,108,45,83,104,97,114,101, - 65,108,105,107,101,32,104,116,116,112,58,47,47,99,114,101,97,116,105,118,101,99,111,109,109,111,110,115,46,111,114,103,47,108,105,99,101,110,115,101, - 115,47,98,121,45,110,99,45,115,97,47,51,46,48,47,222,4,26,229,0,0,32,0,73,68,65,84,120,156,236,157,119,124,20,69,255,199,63,179,183, - 123,253,82,72,39,161,37,116,164,55,9,72,135,128,130,88,48,8,136,32,162,136,128,82,124,4,20,4,164,91,168,42,242,128,138,96,5,21,145,32, - 77,122,135,0,2,34,1,33,132,20,210,73,187,94,118,126,127,36,123,92,46,215,2,199,243,19,221,247,235,181,175,187,109,159,157,185,157,189,253,236, - 119,102,103,8,165,20,34,34,34,34,34,34,34,34,34,254,135,249,255,78,128,136,136,136,136,136,136,136,200,63,149,106,27,173,164,164,36,159,67,96, - 132,144,62,190,106,86,76,221,255,238,154,190,108,87,93,77,97,242,163,102,247,10,205,57,126,212,188,159,233,236,254,119,213,20,242,235,171,110,117,52, - 157,191,251,41,157,62,149,251,191,131,166,183,109,239,33,157,30,181,239,242,188,207,121,64,210,217,253,239,166,233,92,126,124,209,173,174,166,99,186,253, - 152,78,175,229,254,239,162,233,105,251,123,76,167,91,109,95,203,146,155,115,63,199,219,190,255,36,216,234,108,92,29,163,81,29,6,12,24,64,28,244, - 201,223,85,83,32,41,41,137,10,250,254,192,159,90,21,236,247,183,166,211,239,233,47,230,12,24,48,128,36,37,37,29,0,208,221,79,154,251,43,52, - 239,249,188,59,229,213,47,186,213,53,89,213,213,244,87,185,191,223,154,142,203,238,165,172,58,107,250,163,220,187,58,239,254,212,244,215,181,228,180,191, - 95,174,165,251,81,230,93,148,159,123,214,117,214,244,199,181,228,172,233,143,114,255,191,208,20,150,223,203,181,228,74,211,31,229,222,221,185,191,87,221, - 7,141,106,69,180,238,231,15,84,113,34,122,248,91,211,223,105,190,31,102,211,215,8,204,223,65,19,254,61,71,115,42,52,231,248,81,179,135,191,206, - 209,253,40,239,142,154,254,210,119,214,241,199,121,114,165,121,175,233,117,147,206,123,194,149,230,189,150,251,255,149,38,252,123,142,252,114,45,57,105,250, - 237,90,114,206,175,63,34,26,142,154,254,186,150,92,164,243,158,207,147,43,205,123,77,175,155,116,222,19,174,52,253,113,15,185,95,186,15,18,213,138, - 104,221,47,238,135,33,2,202,47,62,127,106,223,143,168,206,253,138,188,249,43,170,227,66,247,128,31,229,252,22,125,18,168,72,159,95,158,112,31,68, - 196,107,73,188,150,240,55,187,150,92,149,155,1,3,6,204,73,74,74,154,237,79,205,123,197,89,211,95,134,200,69,222,239,233,90,114,222,215,31,215, - 146,23,205,123,138,56,187,203,255,189,232,62,104,252,45,140,22,112,167,144,248,249,201,4,240,115,148,204,223,220,167,116,10,79,162,127,235,188,227,62, - 164,179,226,73,121,182,63,53,43,120,80,126,83,241,90,18,175,37,191,224,207,107,201,169,76,250,37,173,254,46,231,174,52,253,113,12,71,13,127,149, - 209,251,157,119,127,94,75,247,227,220,63,112,80,74,239,219,4,160,143,168,41,106,138,154,162,166,168,41,106,138,154,162,230,191,117,18,187,119,16,17, - 17,17,17,17,17,17,185,79,144,10,103,42,34,34,34,34,34,34,34,34,226,103,220,182,209,138,137,137,217,166,82,169,26,184,91,175,213,106,111,101, - 101,101,245,188,63,201,18,241,5,241,28,137,60,40,16,66,24,220,121,203,153,7,64,169,248,148,39,34,34,242,47,192,173,209,146,203,229,113,127,254, - 249,103,35,158,231,97,179,217,96,181,90,237,159,38,147,9,221,186,117,171,118,67,250,168,168,168,131,18,137,164,94,117,246,177,217,108,55,179,179,179, - 31,113,183,158,16,114,20,64,28,33,196,113,153,199,79,0,89,102,179,185,173,39,77,66,72,156,179,158,27,45,225,187,71,205,224,224,224,211,44,203, - 214,114,165,229,238,59,207,243,215,115,115,115,59,187,211,188,31,231,232,223,76,84,84,212,65,150,101,171,93,62,111,221,186,229,182,124,70,71,71,159, - 101,24,38,186,26,146,18,158,231,83,110,221,186,245,136,59,35,34,148,121,79,34,206,229,137,16,146,97,181,90,219,123,216,222,173,166,135,50,239,81, - 211,97,91,134,101,217,197,17,17,17,227,116,58,157,1,0,149,72,36,52,52,52,84,72,27,0,192,106,181,230,221,190,125,187,133,55,61,17,17,17, - 145,7,9,183,55,98,158,231,25,163,209,136,43,87,174,192,205,255,189,237,46,142,215,40,249,183,221,17,1,17,145,176,154,205,80,135,133,219,181,115, - 46,93,132,213,98,134,213,100,66,157,14,157,132,52,160,89,179,102,18,47,154,181,150,44,89,18,17,16,16,0,131,193,0,131,193,0,163,209,8,131, - 193,0,147,201,4,147,201,4,179,217,12,179,217,12,171,213,10,163,209,136,61,123,246,120,75,123,173,5,11,22,68,4,6,6,218,245,132,73,208,20, - 116,45,22,11,12,6,3,246,238,221,235,81,147,101,217,90,89,89,89,17,82,169,20,148,82,240,60,239,170,113,97,37,234,215,175,111,246,164,121,159, - 206,209,191,153,70,11,190,73,138,8,82,202,97,229,121,12,108,85,223,190,226,250,186,77,160,86,27,120,171,21,13,39,140,176,47,111,218,180,169,199, - 242,73,41,173,187,224,155,164,96,95,53,11,10,10,244,77,154,52,201,66,249,171,207,238,34,62,181,244,122,125,68,133,190,125,161,96,88,24,134,169, - 52,237,220,185,19,3,7,14,244,150,247,90,147,39,79,142,176,88,44,48,153,76,48,26,141,176,88,44,176,90,173,246,201,102,179,217,39,147,201,132, - 19,39,78,120,211,20,34,89,75,250,246,237,59,58,41,41,73,189,101,203,22,117,189,122,245,32,149,74,193,178,172,61,141,44,203,226,225,135,31,254, - 215,188,238,45,34,34,242,239,193,173,209,50,26,141,169,109,218,180,161,21,223,99,228,114,185,212,113,61,33,36,186,81,163,70,41,206,251,121,171,174, - 10,136,136,196,140,218,33,0,128,119,210,10,4,45,188,215,185,181,125,155,119,51,139,1,0,74,165,18,196,241,49,218,13,106,181,26,125,251,246,133, - 76,38,67,251,246,237,193,113,156,203,73,42,149,130,227,56,111,114,32,132,64,163,209,96,238,220,185,0,0,150,101,161,86,200,49,177,115,123,40,64, - 241,223,139,87,97,226,41,88,150,181,79,190,104,74,165,82,92,184,112,1,44,203,66,34,145,216,63,133,239,91,183,110,197,51,207,60,3,150,101,161, - 84,42,1,47,253,140,56,158,35,147,201,84,83,38,147,153,1,8,230,76,74,8,137,186,155,115,244,111,38,72,41,199,200,213,63,1,0,210,151,77, - 0,80,126,238,78,188,250,142,125,155,186,47,15,1,33,4,28,199,129,97,188,191,79,226,171,102,97,97,161,126,232,208,161,135,3,2,2,118,150,148, - 148,120,212,164,148,34,61,61,29,44,203,186,45,239,12,195,96,233,210,165,248,235,175,191,124,202,187,193,96,192,218,181,107,97,179,217,42,233,10,223, - 157,151,121,163,194,100,205,79,72,72,24,145,148,148,84,131,16,130,143,62,250,8,28,199,97,192,128,1,8,13,13,197,174,93,187,32,149,74,241,230, - 155,111,250,148,70,17,17,145,127,45,28,128,214,0,194,81,30,68,40,5,16,236,176,62,175,226,51,220,97,254,148,11,157,14,21,219,8,235,133,121, - 19,0,153,139,229,5,0,148,21,147,17,192,81,0,205,29,142,35,236,231,152,142,74,199,101,129,242,241,135,0,236,7,208,67,232,68,239,214,173,91, - 143,10,27,213,175,95,255,207,148,148,148,38,130,231,169,168,158,146,90,173,214,70,66,85,149,16,45,234,211,167,143,199,39,124,171,185,114,144,198,177, - 234,192,121,185,227,167,59,8,33,48,155,205,24,50,100,8,0,184,189,233,56,78,62,120,55,152,76,38,176,44,139,198,181,195,49,171,95,27,116,164, - 22,104,203,8,172,197,90,60,161,177,224,207,102,109,177,230,102,30,210,74,202,192,178,172,79,154,60,207,187,53,89,18,137,4,171,87,175,198,208,161, - 67,33,145,72,124,210,115,60,71,113,113,113,73,41,41,41,161,132,16,35,0,216,108,54,185,213,106,13,180,90,173,161,54,155,45,180,58,231,232,223, - 140,149,231,43,205,187,43,155,190,150,79,95,53,11,11,11,245,3,7,14,60,46,151,203,191,140,140,140,204,202,200,200,240,168,73,41,173,98,126,156, - 31,42,62,252,240,67,172,92,185,18,61,123,246,244,41,157,70,163,17,132,16,172,89,179,166,202,186,121,243,230,85,57,158,39,205,138,7,36,38,58, - 58,250,213,29,59,118,4,10,219,134,133,133,129,227,56,180,104,209,2,129,129,129,56,124,248,48,108,54,155,207,215,165,136,136,200,63,23,87,94,196, - 129,110,51,102,204,104,191,120,241,226,133,241,241,241,223,30,61,122,244,27,66,200,54,97,37,165,116,32,0,8,203,42,230,59,160,178,233,225,0,132, - 19,66,182,9,219,59,206,59,44,239,3,64,38,204,207,152,49,163,249,226,197,139,23,78,159,62,253,173,69,139,22,73,103,204,152,209,114,241,226,197, - 11,133,227,184,74,135,35,194,99,169,199,94,133,133,42,170,203,151,47,187,171,162,178,67,41,245,248,111,169,14,11,183,71,178,222,173,27,106,95,62, - 55,163,200,126,3,91,213,174,1,212,106,53,250,189,251,190,199,99,1,229,55,45,147,201,132,220,220,92,123,148,193,219,228,171,166,74,169,192,158,201, - 45,144,94,32,195,156,99,133,72,58,247,23,56,142,67,255,102,45,240,168,52,0,51,235,202,48,249,234,13,88,124,108,211,75,41,117,105,176,132,239, - 66,21,138,175,70,203,17,158,231,211,13,6,67,193,149,43,87,244,124,249,141,93,73,41,173,65,8,41,69,121,148,171,166,67,58,196,59,154,27,6, - 182,170,111,143,58,157,8,232,109,95,254,140,246,130,253,156,76,93,253,30,0,160,103,219,135,189,94,15,190,104,22,20,20,232,31,233,221,227,128,77, - 111,90,63,98,196,136,212,125,251,246,41,125,73,171,43,163,37,68,109,5,147,197,178,44,76,38,147,79,121,55,153,76,110,175,15,161,170,175,58,17, - 45,0,208,106,181,166,159,127,254,25,171,86,173,66,104,104,40,18,18,18,80,179,102,77,108,218,180,9,148,82,76,152,48,1,74,165,82,136,94,251, - 164,41,34,34,242,143,197,147,23,145,47,94,188,120,161,179,145,113,156,119,52,80,78,102,74,160,219,140,25,51,154,123,74,128,163,233,18,150,9,199, - 37,132,108,91,180,104,209,64,47,233,200,131,19,246,127,75,79,221,247,27,141,198,212,86,173,90,249,228,38,116,58,93,182,167,245,194,141,201,249,79, - 213,49,74,160,209,104,160,14,212,128,241,241,127,215,98,177,216,141,202,238,221,187,161,84,42,241,216,99,143,221,83,68,203,108,54,67,38,229,192,132, - 69,98,228,178,125,40,40,213,219,111,48,251,175,167,226,76,78,46,38,199,247,134,90,153,139,50,147,201,167,200,27,207,243,85,76,22,203,178,24,50, - 100,136,61,154,32,172,175,168,146,114,43,26,22,22,118,154,101,217,90,14,139,20,113,113,113,192,157,118,61,132,231,249,178,224,224,224,31,1,68,83, - 74,107,1,8,0,188,159,35,17,215,229,211,121,57,239,20,169,186,27,205,130,130,2,253,192,129,3,143,219,244,166,245,153,153,153,199,1,40,58,118, - 236,88,109,163,37,24,44,142,227,176,116,233,82,172,92,185,210,190,222,87,163,101,181,90,43,25,168,171,87,175,86,58,150,179,177,243,84,109,74,41, - 165,132,16,30,0,31,23,23,103,223,39,42,42,10,193,193,193,224,121,30,60,207,67,161,80,64,169,84,66,42,149,186,213,18,17,17,249,247,224,193, - 139,232,167,79,159,254,22,33,100,91,69,100,233,34,224,214,80,185,162,3,42,155,181,42,134,8,184,19,161,114,54,91,142,223,5,102,204,152,209,220, - 69,58,170,84,87,218,255,85,157,186,221,175,132,99,21,149,63,112,85,93,232,120,35,211,4,7,66,169,86,67,34,97,64,8,241,104,240,132,170,67, - 225,143,127,220,184,113,30,219,173,248,218,158,202,108,54,131,97,37,184,21,21,11,27,115,200,190,175,48,49,44,135,180,168,38,144,92,62,11,206,199, - 27,174,115,68,107,194,132,9,88,187,118,45,24,134,177,255,38,44,203,162,97,195,134,72,77,77,245,168,197,178,108,173,180,180,180,8,199,223,81,48, - 177,148,82,216,108,54,212,175,95,223,144,146,146,242,186,79,137,19,177,227,206,52,59,47,183,217,120,159,163,48,174,182,43,40,40,208,39,38,38,30, - 40,46,46,94,255,208,67,15,93,69,121,247,7,62,117,34,44,148,21,71,131,37,152,172,21,43,86,84,50,69,22,139,197,167,7,1,139,197,82,197, - 240,124,240,193,7,149,62,1,160,115,231,206,62,69,134,1,80,134,97,168,84,42,69,223,190,125,209,178,101,75,108,217,178,5,60,207,99,252,248,241, - 80,42,149,88,190,124,57,172,86,43,150,44,89,34,70,180,68,68,68,60,121,17,227,162,69,139,46,46,90,180,200,30,89,2,92,87,213,57,75,162, - 220,84,133,11,38,13,229,109,173,92,181,223,130,59,77,103,227,5,148,71,186,92,164,195,185,186,242,127,63,214,97,246,31,23,240,126,151,54,0,42, - 87,23,174,126,184,9,212,26,53,212,1,26,36,110,61,4,0,21,127,250,211,189,106,90,44,22,187,209,42,40,40,240,104,178,170,19,209,98,100,44, - 54,215,186,13,42,227,192,154,44,149,140,150,132,229,144,30,26,11,134,147,130,181,89,125,210,164,148,86,169,42,28,53,106,20,8,33,246,183,175,90, - 181,106,229,168,229,81,148,16,130,255,132,148,183,193,115,174,142,93,146,111,240,154,30,145,170,100,159,94,135,63,127,120,21,0,240,136,86,107,63,23, - 11,90,221,121,119,96,217,133,3,246,232,227,187,120,227,174,52,11,10,10,244,29,155,54,63,46,13,9,90,127,243,230,205,227,0,152,103,159,125,54, - 184,85,171,86,62,93,147,194,203,21,206,38,203,49,146,37,124,90,44,22,159,242,46,180,149,242,134,80,141,232,173,204,83,74,105,72,72,8,36,18, - 9,130,130,130,16,16,16,96,127,227,86,161,80,64,165,82,217,219,119,250,104,220,68,68,68,254,189,212,16,140,78,133,89,2,80,185,77,150,163,25, - 114,87,133,88,17,129,58,232,229,88,73,40,55,104,46,17,34,107,142,203,156,143,235,8,11,220,25,152,82,248,172,89,179,230,175,26,141,38,214,75, - 66,236,84,231,45,54,155,229,78,99,120,193,100,17,66,160,9,208,64,169,81,67,25,160,169,180,206,23,132,170,67,137,68,98,191,233,124,249,229,151, - 208,104,52,120,225,133,23,170,221,70,11,168,48,90,82,6,187,228,123,33,145,177,149,76,22,203,178,144,112,28,178,53,53,193,112,28,88,171,111,81, - 178,226,226,98,176,44,139,89,179,102,217,159,224,29,77,86,117,242,236,9,134,16,33,186,37,111,216,176,225,27,132,144,186,0,234,105,181,90,121,86, - 86,86,175,123,62,192,63,24,106,187,99,74,220,53,120,175,238,57,114,214,20,34,89,210,144,160,245,77,154,52,177,71,178,84,42,149,240,182,169,87, - 24,134,113,105,178,156,223,16,100,89,182,188,44,123,121,59,210,49,162,181,104,209,34,187,174,99,36,75,160,58,215,145,160,189,127,255,126,36,39,39, - 99,220,184,113,80,42,149,88,185,114,37,172,86,43,230,205,155,7,165,82,9,153,76,230,93,72,68,68,228,31,141,179,23,113,34,207,169,29,20,113, - 50,53,121,64,85,131,229,88,77,232,240,221,241,233,83,208,53,57,85,41,58,47,23,62,11,22,45,90,180,79,136,100,57,44,175,148,14,71,92,58, - 4,185,92,30,123,229,202,21,123,71,152,158,62,77,38,19,122,246,236,233,115,100,76,120,235,144,101,37,149,140,133,42,64,3,85,96,0,148,26,141, - 179,225,240,120,87,99,24,198,254,68,236,104,180,102,207,158,13,150,101,177,118,237,90,0,192,27,111,188,225,115,27,45,65,19,54,130,12,122,13,109, - 150,61,3,211,87,22,228,28,249,29,44,203,34,162,211,163,224,59,62,3,157,82,3,214,102,245,249,173,195,194,194,66,164,166,166,66,34,145,96,202, - 148,41,149,250,58,114,126,147,109,247,238,221,94,243,14,84,141,100,205,190,89,104,215,81,42,149,204,239,191,255,30,203,243,124,156,94,175,111,208,185, - 115,231,234,53,42,250,23,66,121,107,165,121,31,170,17,189,158,35,71,77,161,77,86,113,113,241,250,155,55,111,158,0,192,140,24,49,34,88,165,82, - 225,179,207,62,211,1,144,109,218,180,201,163,219,114,52,231,222,76,22,199,113,229,101,217,7,132,170,109,97,242,214,48,222,151,50,47,164,149,16,2, - 155,205,6,165,82,89,41,146,165,80,40,32,151,203,125,74,159,136,136,200,191,26,183,85,125,46,232,224,96,154,188,237,231,110,125,117,142,231,17,151, - 6,137,97,24,24,141,70,92,186,116,201,87,29,159,59,198,172,221,254,97,188,155,89,12,66,8,254,219,249,33,168,3,53,80,169,213,24,188,229,128, - 253,143,251,194,194,55,32,87,107,16,221,53,193,171,158,240,36,238,108,180,138,138,138,192,113,28,230,207,159,15,134,97,176,100,201,18,196,196,196,224, - 214,173,91,216,180,105,147,87,93,179,217,12,137,77,130,154,207,55,133,106,84,16,2,159,239,134,26,125,103,35,211,196,226,168,65,133,110,134,63,32, - 219,181,2,38,222,230,243,27,88,86,171,21,7,14,28,112,110,240,110,111,83,101,181,90,97,177,88,96,54,155,177,100,201,18,95,222,240,172,52,47, - 220,208,132,117,148,82,73,74,74,74,56,165,52,4,64,16,128,124,159,18,250,47,166,102,167,9,8,111,255,10,0,96,235,162,23,237,203,103,93,184, - 83,62,151,126,85,62,0,64,147,122,222,203,167,163,102,65,65,129,190,127,207,206,7,13,60,247,69,139,22,45,42,69,178,20,10,5,169,152,247,41, - 92,198,48,12,36,18,73,149,234,66,119,102,203,151,54,90,86,171,21,82,169,212,126,29,185,43,215,213,141,104,49,12,131,23,95,124,17,53,107,214, - 180,71,178,222,125,247,93,40,149,74,204,152,49,3,22,139,5,43,86,172,240,89,79,68,68,68,196,11,126,51,73,254,192,229,63,169,193,96,184,209, - 178,101,75,151,59,24,12,134,24,133,66,81,233,95,150,84,116,94,234,92,133,72,8,233,67,41,221,227,172,33,68,111,2,2,3,160,208,168,161,114, - 138,98,41,2,2,33,215,104,192,72,171,254,153,187,210,20,218,150,56,26,45,97,42,46,46,6,199,113,88,181,106,21,2,3,3,97,52,26,189,106, - 10,55,29,137,68,2,93,122,41,254,92,184,7,50,197,81,52,72,24,138,154,156,18,210,195,63,66,111,171,220,102,203,23,205,70,141,26,225,157,119, - 222,169,210,173,131,59,98,98,98,188,230,221,57,146,181,244,161,58,144,202,164,152,250,71,58,140,70,35,25,58,116,40,15,64,15,32,79,175,215,223, - 244,229,247,188,87,254,9,154,158,222,138,21,224,169,205,213,118,46,53,133,72,150,129,231,190,72,77,77,21,34,89,65,42,149,10,159,126,250,169,14, - 0,51,111,222,60,85,221,186,117,171,244,113,230,170,44,73,36,18,44,91,182,204,101,155,44,87,166,203,151,188,11,215,145,227,190,221,187,119,119,217, - 97,169,43,243,230,74,83,72,107,104,104,168,61,146,101,179,217,236,111,27,10,189,207,187,123,168,248,39,148,37,81,83,212,20,53,255,221,184,188,203, - 103,101,101,245,119,183,67,131,6,13,174,92,185,114,165,161,48,20,71,197,31,167,212,96,48,52,234,220,185,179,215,208,14,207,243,144,203,229,160,148, - 162,215,59,139,65,24,128,65,229,155,88,68,151,222,144,72,88,240,229,67,125,120,125,235,80,175,215,87,186,57,184,154,202,202,202,96,52,26,189,190, - 150,46,96,48,24,42,117,193,64,40,143,180,223,190,175,242,246,161,48,249,218,110,71,161,80,84,170,250,241,132,183,254,174,132,155,147,99,213,163,84, - 38,5,43,229,132,136,86,233,149,43,87,18,125,74,152,8,128,59,47,44,0,64,227,206,143,129,231,109,160,54,91,165,97,146,154,198,246,7,79,109, - 48,91,116,48,26,141,222,186,61,33,249,249,249,250,196,196,196,3,0,62,127,226,137,39,82,80,254,198,11,213,104,52,114,142,227,120,0,133,0,232, - 237,219,183,131,50,51,51,121,131,193,80,199,91,58,147,146,146,112,233,210,37,116,237,218,181,210,112,80,66,84,212,177,119,119,95,202,167,80,93,238, - 170,71,120,119,70,206,87,132,198,240,82,169,20,243,231,207,135,84,42,133,74,165,2,0,172,88,177,194,222,249,170,136,136,136,200,63,145,187,121,235, - 80,226,161,90,209,99,21,162,213,106,205,168,91,183,110,181,14,102,179,217,114,60,173,231,121,62,99,211,166,77,82,160,106,227,101,119,159,148,82,143, - 154,148,210,140,173,91,183,218,223,115,119,188,73,185,250,78,202,27,159,123,212,180,217,108,25,245,234,221,25,175,216,23,99,102,177,88,50,61,173,231, - 121,30,139,243,244,142,233,198,212,63,210,221,142,157,40,226,25,155,205,230,161,124,190,237,110,31,111,229,243,106,227,198,141,51,131,131,131,183,71,70, - 70,22,28,57,114,36,180,67,135,14,161,142,219,116,232,208,161,166,211,110,38,184,31,231,16,132,144,140,39,158,120,194,101,153,7,96,55,240,78,229, - 211,99,87,243,148,210,140,147,39,79,74,29,247,119,167,239,112,29,121,238,190,190,124,155,180,54,109,218,48,142,58,238,202,190,197,98,113,217,175,141, - 136,136,136,200,131,76,181,141,150,94,175,79,111,217,178,165,203,214,181,174,170,166,28,201,207,207,111,95,221,227,121,195,108,54,119,126,16,52,243,242, - 242,252,154,119,171,213,154,81,209,65,169,199,109,252,121,204,127,58,254,62,71,0,144,147,147,211,209,223,154,86,171,213,239,229,211,98,177,248,93,19, - 0,10,10,10,226,239,135,174,136,136,136,200,131,66,181,141,150,56,24,241,223,131,251,97,90,69,68,68,68,68,68,68,252,139,79,189,80,139,136,136, - 136,136,136,136,136,136,84,31,130,242,81,170,171,80,157,183,9,8,33,46,53,60,225,77,95,212,20,53,69,77,81,83,212,20,53,69,205,127,158,166, - 55,237,127,220,219,140,66,195,233,251,49,1,232,35,106,138,154,162,166,168,41,106,138,154,162,166,168,249,111,157,196,170,67,17,17,17,17,17,17,17, - 145,251,196,255,124,80,105,145,114,8,33,18,74,169,207,61,234,251,64,13,0,238,6,140,51,1,184,125,23,154,4,128,180,98,18,58,58,178,0,48, - 87,76,62,244,33,49,151,201,202,170,209,156,218,184,14,148,16,142,231,113,174,78,157,218,103,129,254,38,0,208,68,53,107,166,81,43,251,24,205,166, - 88,57,39,187,84,164,45,219,109,200,73,185,113,23,105,21,17,17,17,17,17,249,219,225,214,104,5,4,4,156,102,24,166,150,183,254,121,4,42,198, - 50,203,40,44,44,244,233,109,56,66,8,11,32,81,163,209,244,228,56,174,11,0,88,44,150,35,101,101,101,251,0,108,162,148,250,54,64,91,85,221, - 64,0,67,0,12,175,88,244,53,128,239,41,165,37,119,169,215,50,40,40,232,7,142,227,104,126,126,126,39,0,8,13,13,61,110,177,88,72,73,73, - 201,96,74,233,249,106,234,49,28,199,45,237,218,181,107,55,66,200,231,148,210,85,119,147,46,23,200,25,134,113,105,80,120,158,175,231,106,185,23,164, - 0,130,86,173,90,21,186,113,227,198,54,25,25,25,45,0,160,86,173,90,23,70,140,24,113,118,226,196,137,5,0,138,81,110,184,220,146,149,85,163, - 121,110,246,245,113,57,185,151,134,0,64,84,205,22,223,75,36,140,52,38,230,204,49,85,216,240,176,198,77,234,191,242,237,103,171,164,245,98,107,99, - 239,209,51,173,39,190,254,86,115,69,100,227,15,69,179,245,191,35,48,48,240,52,195,48,181,0,247,215,184,171,107,222,102,179,101,20,20,20,184,188, - 222,3,3,3,79,179,44,91,203,221,190,238,150,241,60,127,61,47,47,207,101,87,19,65,65,65,199,88,150,141,245,85,75,248,180,90,173,25,238,222, - 210,13,10,10,58,45,145,72,106,121,202,167,171,117,60,207,95,207,205,205,117,151,206,42,121,247,71,58,239,70,211,83,58,221,65,8,25,2,96,14, - 202,31,180,150,80,74,191,168,206,254,34,34,34,149,113,107,180,24,134,169,149,153,153,25,161,86,171,1,220,25,143,79,24,76,154,231,121,80,74,237, - 159,86,171,21,77,155,54,245,233,160,132,144,22,129,129,129,155,103,204,152,81,39,49,49,81,38,12,53,147,149,149,213,232,135,31,126,120,110,254,252, - 249,179,9,33,207,80,74,47,248,168,199,0,232,13,96,84,155,54,109,158,126,247,221,119,165,189,122,245,130,205,102,195,246,237,219,187,206,155,55,111, - 21,33,228,71,0,235,1,252,70,41,245,105,112,101,66,200,35,81,81,81,223,28,62,124,184,102,106,106,170,45,49,49,241,59,0,56,125,250,116,156, - 205,102,35,157,58,117,74,34,132,12,163,148,30,246,41,227,229,60,253,218,107,175,61,59,97,194,132,136,23,94,120,97,52,128,85,21,199,34,0,64, - 43,42,191,171,129,61,146,69,41,149,122,216,46,10,190,71,182,212,169,169,169,53,58,119,238,252,106,110,110,238,100,71,221,156,156,28,36,39,39,155, - 23,46,92,184,236,232,209,163,159,196,198,198,222,6,160,117,39,68,109,92,135,156,220,75,67,186,197,175,10,2,128,77,91,95,29,122,242,108,94,192, - 182,29,107,158,147,41,164,198,141,255,93,38,109,216,160,30,246,159,190,138,19,151,10,73,139,71,6,178,197,219,54,244,5,176,198,135,116,138,248,1, - 137,68,18,147,145,145,17,161,82,169,92,14,28,239,212,46,67,232,0,21,141,26,53,114,171,201,178,108,173,204,204,204,8,133,66,97,255,239,112,254, - 207,0,42,143,215,73,41,69,227,198,141,221,26,119,134,97,234,222,188,121,51,66,165,82,217,117,92,165,79,64,48,28,141,27,55,246,148,247,74,233, - 244,69,147,82,138,134,13,27,186,141,70,11,121,23,70,192,240,150,111,65,51,54,54,214,237,181,239,74,211,151,116,214,175,95,223,227,131,80,197,182, - 44,128,185,0,212,0,102,2,152,123,235,214,173,70,18,137,4,181,106,213,154,67,8,249,30,192,252,176,176,48,38,63,63,255,77,74,169,87,77,17, - 17,145,59,184,53,90,132,16,168,213,106,124,247,221,119,110,135,227,112,252,94,167,142,215,81,67,4,221,246,177,177,177,7,14,31,62,172,172,89,243, - 78,135,216,38,147,9,53,106,212,192,248,241,227,101,143,63,254,120,195,132,132,132,227,132,144,238,148,210,211,94,244,158,14,15,15,255,104,214,172,89, - 145,207,62,251,44,66,67,43,117,186,141,196,196,68,12,30,60,88,154,146,146,50,244,203,47,191,28,186,122,245,234,108,66,200,68,74,233,143,158,116, - 85,42,213,19,13,26,52,248,244,240,225,195,17,17,17,17,136,139,139,99,222,124,243,205,134,141,26,53,82,214,170,85,139,185,117,235,22,182,108,217, - 18,51,108,216,176,205,50,153,236,21,147,201,244,179,15,121,151,133,134,134,190,245,202,43,175,132,149,148,148,88,147,147,147,175,8,203,101,50,217,188, - 248,248,248,14,132,144,175,40,165,235,188,105,57,96,143,100,85,68,237,156,199,50,177,8,235,125,140,108,201,206,157,59,23,18,31,31,255,163,209,104, - 108,59,110,220,184,155,11,23,46,84,6,6,6,6,2,32,37,37,37,183,231,206,157,107,90,190,124,249,180,102,205,154,245,62,118,236,216,211,173,91, - 183,182,160,220,196,85,129,18,98,79,79,122,102,30,14,28,229,101,239,204,120,163,214,123,11,98,211,78,253,145,206,179,202,64,252,114,240,34,114,10, - 202,240,235,177,63,16,21,26,64,164,114,174,121,112,173,230,221,139,51,255,56,120,23,198,83,164,154,16,66,160,82,169,240,203,47,191,84,25,186,202, - 213,176,86,44,203,34,56,56,216,235,232,6,10,133,2,187,119,239,118,57,246,162,171,33,125,130,130,130,0,184,31,84,155,16,2,133,66,129,35,71, - 142,128,97,24,151,67,3,57,47,83,171,213,96,60,140,117,37,104,30,60,120,208,171,150,240,169,209,104,0,160,202,152,148,142,200,229,114,28,62,124, - 216,109,158,157,191,107,42,198,123,245,166,121,228,200,145,74,67,127,57,15,9,230,56,175,86,171,237,15,112,94,152,187,101,203,150,183,34,34,34,48, - 104,208,160,103,154,54,109,26,17,28,28,140,207,63,255,28,81,81,81,49,90,173,246,234,150,45,91,162,243,243,243,241,218,107,175,73,1,188,234,131, - 166,136,136,191,225,0,180,6,16,142,242,81,104,74,1,4,163,252,222,35,3,80,0,64,89,49,25,1,148,1,8,171,216,55,31,229,255,45,142,6, - 33,15,149,7,159,238,80,161,45,140,80,17,238,176,78,56,134,243,188,243,167,75,109,22,0,146,146,146,132,155,89,143,1,3,6,28,168,148,51,31, - 76,150,48,78,153,243,53,77,171,14,48,43,87,171,213,63,28,63,126,92,25,30,126,39,15,70,163,17,165,165,165,40,43,43,67,105,105,41,2,2, - 2,176,105,211,38,101,239,222,189,127,32,132,52,162,148,26,221,105,2,88,118,235,214,173,72,171,213,10,153,204,117,19,37,134,97,208,180,105,83,188, - 245,214,91,232,215,175,95,84,207,158,61,151,1,176,27,45,23,154,80,169,84,159,38,39,39,71,168,84,42,92,185,114,5,25,25,25,152,58,117,106, - 109,158,231,145,158,158,142,171,87,175,34,51,51,19,95,126,249,101,196,147,79,62,249,41,128,74,70,203,149,38,128,113,147,39,79,110,82,163,70,13, - 230,253,247,223,47,210,106,181,31,87,44,127,103,229,202,149,207,119,235,214,45,98,204,152,49,148,16,178,145,82,90,197,184,56,105,186,138,100,217,0, - 252,233,180,91,83,167,72,87,20,202,11,97,145,11,77,2,32,40,33,33,97,138,209,104,108,123,248,240,225,191,186,116,233,82,23,192,45,84,20,190, - 160,160,32,245,178,101,203,34,7,14,28,152,210,171,87,175,182,9,9,9,83,242,242,242,22,86,172,167,206,154,60,143,115,81,53,91,124,127,240,216, - 196,33,251,143,152,164,111,188,62,251,102,157,218,245,138,207,93,41,180,253,113,61,15,165,122,43,158,234,85,62,128,121,167,22,117,240,209,119,135,49, - 126,210,219,220,143,223,111,24,252,23,133,26,64,146,135,223,243,158,16,53,203,169,168,98,2,199,113,120,244,209,71,65,8,169,50,150,39,199,113,56, - 118,236,24,122,245,234,5,142,227,240,226,139,47,250,164,201,178,44,18,18,18,236,227,40,58,234,57,155,6,87,158,192,57,239,148,82,176,44,11,134, - 97,220,14,164,237,172,233,237,127,73,72,167,39,45,199,117,222,210,41,68,147,124,53,89,190,106,10,233,100,89,22,157,59,119,198,217,179,103,61,154, - 46,87,254,210,77,89,82,156,63,127,30,221,187,119,199,185,115,231,162,56,142,67,114,114,50,100,50,25,22,45,90,196,52,109,218,52,58,32,32,0, - 251,246,237,67,86,86,150,175,154,247,132,168,249,239,212,244,228,69,0,116,155,49,99,70,251,197,139,23,47,140,143,143,255,246,232,209,163,223,16,66, - 182,81,74,7,10,159,51,102,204,104,190,120,241,226,133,211,167,79,127,107,209,162,69,23,9,33,219,0,192,121,190,34,253,3,29,180,57,0,225,130, - 14,0,56,111,235,106,222,249,211,141,246,157,136,214,128,1,3,72,69,38,137,195,198,62,27,45,95,30,156,88,150,157,176,112,225,194,72,79,38,171, - 172,172,12,89,89,89,168,91,183,46,94,124,241,197,200,85,171,86,77,0,240,129,7,89,169,68,34,193,201,147,39,145,155,155,139,150,45,91,34,54, - 54,182,210,6,215,174,93,195,246,237,219,81,84,84,132,118,237,218,1,229,237,143,92,210,186,117,235,57,77,155,54,77,72,72,72,176,42,149,74,156, - 59,119,14,109,219,182,197,119,223,125,135,58,117,234,64,165,82,33,37,37,5,45,91,182,196,129,3,7,16,30,30,142,54,109,218,88,219,181,107,119, - 168,176,176,112,223,141,27,55,230,184,210,37,132,72,99,98,98,102,143,29,59,86,150,149,149,197,175,95,191,254,48,165,244,48,33,100,194,219,111,191, - 61,186,95,191,126,17,103,206,156,41,62,117,234,212,9,87,38,203,5,174,34,89,149,218,181,85,84,217,24,245,122,189,201,104,52,90,24,134,185,65, - 8,49,217,108,54,119,117,62,138,81,163,70,213,207,207,207,31,63,105,210,164,212,10,147,117,25,229,13,224,1,0,86,171,213,88,86,86,86,18,31, - 31,95,119,216,176,97,127,125,243,205,55,227,71,141,26,181,105,253,250,245,101,0,244,206,130,117,234,212,62,43,145,48,82,109,105,200,245,205,155,214, - 77,222,190,117,66,237,244,244,204,134,161,97,225,90,169,38,60,107,211,215,95,156,6,96,202,202,43,193,249,107,217,224,56,9,46,165,23,163,91,255, - 68,238,175,43,11,30,65,133,209,18,185,175,80,97,16,234,253,251,247,123,140,104,29,59,118,12,28,199,65,169,84,98,249,242,229,30,69,5,99,32, - 68,139,188,153,25,97,112,116,119,8,102,67,24,232,221,121,250,248,227,143,49,105,210,164,74,199,168,48,27,30,163,100,142,6,198,57,125,117,235,213, - 67,110,78,78,165,101,190,12,74,111,179,217,192,113,28,214,174,93,139,129,3,7,98,219,182,109,30,63,31,125,244,81,48,12,227,49,122,43,164,179, - 115,231,206,48,155,205,246,52,95,190,124,217,165,238,234,213,171,189,166,179,130,153,115,231,206,125,90,171,213,214,14,15,15,135,92,46,135,82,169,132, - 82,169,132,66,161,64,94,94,30,50,51,51,233,162,69,139,242,0,76,243,85,84,68,228,110,112,229,69,42,144,47,94,188,120,161,179,137,113,68,88, - 79,8,217,182,104,209,162,129,192,29,83,228,56,95,177,185,227,216,170,221,102,204,152,209,220,97,62,207,209,68,9,11,61,29,219,105,251,74,227,182, - 218,141,86,69,198,122,8,243,12,195,64,248,243,245,102,178,220,61,57,58,19,20,20,244,216,83,79,61,101,55,57,6,131,193,110,176,4,147,37,204, - 167,164,164,160,125,251,246,210,160,160,160,199,224,217,104,149,103,132,101,17,29,29,141,252,252,124,92,184,112,1,117,235,214,133,197,98,193,206,157,59, - 81,92,92,12,142,227,32,149,74,97,54,123,110,94,208,180,105,211,71,55,110,220,216,126,195,134,13,183,37,18,9,46,95,190,140,175,191,254,26,148, - 82,132,135,135,67,167,211,33,39,39,7,251,246,237,131,213,106,133,70,163,65,92,92,156,236,137,39,158,120,100,238,220,185,28,202,27,145,186,162,243, - 224,193,131,131,2,3,3,241,250,235,175,83,179,217,188,136,16,210,121,240,224,193,179,39,78,156,24,122,227,198,13,211,75,47,189,116,210,108,54,191, - 15,0,132,16,142,82,106,113,163,5,192,115,36,203,98,177,8,191,105,106,89,89,25,194,194,194,234,122,105,195,5,0,210,35,71,142,116,6,32,153, - 55,111,158,2,64,14,28,76,150,201,100,66,89,89,25,180,90,173,165,184,184,56,247,63,255,249,143,245,155,111,190,145,84,236,115,9,46,140,22,208, - 223,244,208,67,106,25,165,146,183,215,172,89,163,233,215,175,31,163,209,104,80,90,90,26,248,235,142,29,154,222,61,31,137,91,184,248,189,93,129,181, - 90,230,28,57,119,29,153,217,197,48,89,44,136,171,25,4,128,247,169,45,157,200,189,81,241,34,139,61,162,229,104,42,14,30,60,136,254,253,251,219, - 175,117,169,84,90,41,242,229,77,147,101,89,244,239,223,191,74,132,103,67,39,186,162,0,0,32,0,73,68,65,84,255,254,253,46,163,79,222,112,52, - 69,206,230,200,149,1,99,24,166,74,251,37,87,154,238,170,52,1,84,89,231,139,209,18,242,59,113,226,68,112,28,135,55,223,124,19,44,203,162,77, - 155,54,96,89,22,241,241,241,224,56,14,189,122,245,170,118,222,143,31,63,142,182,109,219,218,211,212,166,77,27,116,232,208,1,44,203,162,107,215,174, - 224,56,14,9,9,9,62,105,10,13,223,227,227,227,99,38,79,158,140,31,127,252,17,83,167,78,181,90,44,150,235,0,240,242,203,47,199,77,157,58, - 85,162,213,106,73,108,108,108,216,229,203,151,79,19,66,196,6,242,34,247,13,103,47,226,128,126,250,244,233,111,17,66,182,9,17,42,160,114,228,201, - 213,188,51,14,102,72,168,218,235,128,202,38,78,168,246,27,224,97,95,147,147,177,114,174,58,116,172,146,244,28,209,18,254,124,125,53,90,222,48,24, - 12,173,35,34,34,132,239,85,76,150,227,167,201,100,66,108,108,44,12,6,67,107,175,194,149,127,8,212,172,89,19,102,179,25,235,214,173,131,84,42, - 133,84,122,199,95,152,76,158,131,69,127,252,241,71,234,241,227,199,219,182,107,215,174,198,79,63,253,148,215,189,123,247,240,126,253,250,65,169,84,66, - 175,215,195,98,177,160,83,167,78,104,218,180,41,50,50,50,240,235,175,191,230,55,106,212,40,236,196,137,19,124,118,118,118,154,7,233,190,189,123,247, - 6,33,4,59,118,236,200,167,148,158,82,40,20,219,23,44,88,80,195,100,50,241,35,70,140,184,89,88,88,56,9,128,89,46,151,175,76,72,72,136, - 151,72,36,95,217,108,54,207,97,3,23,56,255,182,90,173,22,10,133,194,151,174,36,184,194,194,194,22,0,160,86,171,67,0,252,37,172,208,235,245, - 149,204,176,201,100,50,132,132,132,168,1,160,98,31,231,182,97,0,0,66,72,184,74,165,218,156,150,118,61,192,177,253,92,112,112,48,134,15,27,198, - 116,233,220,89,214,170,117,235,132,153,31,110,248,46,58,52,208,20,23,29,10,139,205,130,61,187,118,242,148,183,236,170,110,222,69,170,143,99,213,161, - 115,68,139,227,56,28,56,112,160,202,50,169,84,138,255,254,247,191,30,117,5,99,32,152,42,119,85,103,78,85,93,30,255,72,132,40,187,68,34,193, - 218,181,107,193,243,60,38,79,158,92,169,58,209,81,223,23,28,77,96,211,217,60,0,19,50,150,202,237,251,59,167,183,98,31,159,162,100,171,86,173, - 242,41,162,53,96,192,0,175,198,213,177,134,193,49,93,103,207,158,117,169,187,102,205,26,175,191,39,42,26,190,135,132,132,32,57,57,25,74,165,18, - 132,144,91,51,103,206,92,22,28,28,220,167,184,184,184,94,82,82,18,91,84,84,132,132,132,4,166,75,151,46,141,126,251,237,183,143,9,33,27,252, - 220,61,141,136,8,0,143,17,45,227,162,69,139,46,46,90,180,200,101,196,74,216,200,121,222,25,135,168,84,7,148,27,162,112,193,188,161,188,89,205, - 41,31,246,149,57,87,29,122,202,147,115,68,107,174,48,239,248,231,235,75,245,161,143,225,116,150,16,2,131,193,224,210,96,57,154,3,179,217,140,194, - 194,66,216,108,182,187,238,235,203,213,147,172,55,163,117,225,194,133,23,70,143,30,157,21,20,20,212,42,47,47,47,151,231,249,94,199,142,29,11,103, - 89,22,129,129,129,8,12,12,196,246,237,219,161,82,169,48,113,226,196,92,155,205,118,48,32,32,32,84,175,215,255,158,157,157,61,211,157,46,199,113, - 9,93,187,118,69,114,114,50,110,223,190,189,155,16,210,102,204,152,49,253,107,215,174,77,22,44,88,96,184,118,237,218,114,0,185,106,181,122,227,198, - 141,27,123,182,107,215,46,96,196,136,17,32,132,172,161,148,26,124,205,179,86,171,173,100,176,74,74,74,80,90,90,10,181,90,237,83,119,25,148,82, - 14,229,109,173,132,246,86,246,115,83,17,205,18,206,15,101,89,150,150,111,66,93,154,44,0,80,171,213,243,54,108,216,160,116,126,73,193,102,179,33, - 39,39,7,129,129,129,152,53,115,166,244,221,169,99,218,74,52,145,199,24,134,192,100,166,69,148,55,237,212,230,60,123,200,215,124,139,220,27,130,49, - 24,52,104,80,149,234,66,169,84,138,221,187,119,227,201,39,159,180,63,184,180,107,215,206,235,195,149,96,12,30,127,252,113,0,229,145,161,157,59,119, - 186,172,246,19,34,82,158,112,52,48,18,137,4,175,189,246,26,88,150,197,71,31,125,132,41,83,166,128,97,24,44,93,186,20,12,195,224,157,119,222, - 241,41,223,206,6,230,198,123,229,159,181,166,148,160,96,117,36,0,32,32,48,80,200,144,79,154,66,222,89,150,181,71,178,90,183,110,13,142,227,16, - 31,31,15,150,101,237,145,172,199,30,123,204,241,119,244,120,0,65,147,101,89,92,185,114,197,158,230,248,248,248,74,145,44,150,101,49,96,64,149,135, - 113,183,240,60,143,117,235,214,65,38,147,9,70,11,50,153,172,243,148,41,83,158,118,181,253,67,15,61,196,161,252,101,0,209,104,137,248,29,103,47, - 226,64,13,199,54,87,190,234,57,152,40,251,60,80,181,26,176,34,66,118,208,155,150,171,125,189,193,2,229,14,210,213,202,234,24,45,137,68,226,245, - 143,87,165,82,157,207,205,205,141,87,42,149,149,76,150,43,195,37,145,72,144,157,157,13,149,74,85,173,126,170,188,225,173,234,176,194,212,76,21,230, - 9,33,125,30,123,236,177,245,187,119,239,174,185,103,207,30,156,56,113,2,225,225,225,88,181,106,213,173,156,156,156,23,40,165,187,125,57,110,253,250, - 245,91,104,52,26,28,57,114,4,0,14,0,24,51,126,252,120,98,177,88,176,122,245,106,45,128,29,193,193,193,73,155,54,109,106,219,170,85,43,217, - 158,61,123,74,78,156,56,241,155,143,38,203,198,243,124,21,131,229,248,155,6,4,4,248,242,167,104,9,10,10,186,80,82,82,146,168,215,235,75,228, - 114,121,64,73,73,137,209,209,96,9,250,44,203,114,87,174,92,201,2,16,23,20,20,116,1,14,85,140,142,176,44,219,187,119,239,222,149,204,178,217, - 108,70,78,78,14,178,179,179,97,54,155,209,174,93,59,34,33,22,73,225,205,223,199,250,144,70,17,63,67,8,161,194,181,46,188,37,232,60,177,44, - 139,157,59,119,218,231,25,134,193,23,95,184,175,61,114,52,69,187,119,239,118,27,197,114,81,117,232,53,52,46,108,255,201,39,159,148,15,111,81,17, - 201,98,24,6,211,167,79,135,92,46,199,130,5,11,48,125,250,116,176,44,235,181,234,208,209,192,212,123,83,103,95,46,84,29,90,42,218,67,17,66, - 28,205,150,199,136,150,163,121,243,20,205,243,237,165,192,202,13,236,89,150,133,66,161,112,89,125,234,66,211,219,1,102,199,196,196,204,9,15,15,111, - 176,108,217,50,137,82,169,196,152,49,99,98,180,90,237,16,0,88,190,124,57,38,79,158,12,0,152,54,109,26,22,47,94,12,189,94,95,230,131,174, - 136,72,181,113,231,69,42,200,115,106,95,69,28,171,241,60,124,58,111,15,135,101,142,186,121,168,124,31,115,92,238,108,174,156,143,225,184,77,165,246, - 89,128,151,238,29,170,211,24,222,151,136,150,78,167,251,109,199,142,29,29,134,13,27,198,122,170,54,212,106,181,136,140,140,196,197,139,23,173,58,157, - 238,55,111,186,54,155,239,15,86,222,140,150,51,148,210,61,81,81,81,18,139,197,130,134,13,27,34,38,38,6,6,131,1,69,69,69,18,95,77,22, - 33,68,218,190,125,123,9,0,20,21,21,1,229,175,154,54,110,212,168,17,146,147,147,81,88,88,248,35,128,126,115,231,206,109,215,169,83,39,233,119, - 223,125,167,27,55,110,220,143,22,139,101,142,47,250,60,207,155,172,86,107,44,195,48,230,162,162,162,76,199,223,51,50,50,50,68,173,86,147,156,156, - 28,143,237,189,42,176,180,106,213,234,228,205,155,55,49,111,222,188,188,133,11,23,54,42,45,45,189,93,92,92,108,117,52,91,6,131,129,9,11,11, - 147,175,94,189,90,9,0,173,90,181,58,9,55,70,75,171,213,214,86,169,84,246,121,163,209,136,236,236,108,100,103,103,35,39,39,7,165,165,165,136, - 139,139,131,78,167,171,235,75,94,69,252,143,243,91,114,142,215,183,227,141,188,58,215,58,112,199,192,12,26,52,200,222,182,75,136,144,9,211,230,205, - 155,29,171,13,1,31,141,214,39,159,124,130,215,94,123,13,10,133,2,203,150,45,171,84,117,232,108,94,120,158,247,106,138,88,150,69,236,52,61,178, - 87,134,128,227,56,132,142,203,169,84,69,231,194,16,249,148,206,133,11,23,250,165,234,208,81,179,110,221,186,0,128,181,107,215,34,49,49,17,135,14, - 29,186,235,170,67,74,233,247,132,144,109,86,171,245,74,179,102,205,98,10,10,10,240,250,235,175,51,155,55,111,150,2,192,164,73,147,48,105,210,164, - 74,251,24,12,6,177,237,164,200,255,7,110,171,244,238,147,174,223,142,231,177,90,206,177,145,168,55,163,229,75,68,203,104,52,46,123,253,245,215,199, - 247,233,211,39,36,32,32,0,89,89,89,85,76,86,89,89,25,52,26,13,244,122,61,182,110,221,90,98,52,26,151,121,201,131,197,98,177,32,34,34, - 2,249,249,249,224,221,180,159,102,24,6,74,165,18,101,101,101,128,27,83,224,14,74,41,204,102,51,44,22,11,44,22,11,204,102,179,215,167,100,39, - 84,66,199,175,90,173,22,0,180,209,209,209,13,21,10,5,82,83,83,129,242,55,251,250,244,239,223,159,43,40,40,160,47,189,244,210,97,74,233,88, - 234,185,119,124,211,193,131,7,99,1,64,169,84,166,0,64,70,70,134,165,168,168,168,82,164,80,165,82,209,39,159,124,178,38,165,20,7,15,30,140, - 149,74,165,20,110,250,188,2,96,248,249,231,159,255,8,10,10,250,102,241,226,197,195,6,14,28,120,177,69,139,22,177,90,173,54,87,175,215,235,13, - 6,3,149,72,36,210,26,53,106,40,118,237,218,245,215,177,99,199,250,4,6,6,126,243,243,207,63,255,1,192,101,228,77,173,86,103,232,116,186,122, - 194,57,117,52,89,217,217,217,160,148,226,250,245,235,80,169,84,55,171,243,131,138,248,23,225,161,202,57,242,226,188,204,87,147,37,192,178,44,118,237, - 218,229,54,170,83,29,227,230,104,138,166,76,153,130,149,43,87,86,137,104,45,88,176,0,0,48,115,230,76,159,219,104,1,229,209,171,236,149,33,136, - 122,173,176,82,218,1,128,8,233,171,102,151,110,44,203,98,222,188,121,85,26,169,59,86,237,85,167,138,79,72,103,110,110,46,88,150,69,72,72,8, - 134,15,31,142,132,132,4,123,21,228,93,234,206,255,241,199,31,99,2,2,2,144,150,150,70,203,202,202,72,65,65,1,0,215,17,45,157,78,39,135, - 24,209,18,17,241,25,143,29,249,1,240,201,100,185,251,3,38,132,244,113,156,167,148,22,235,116,186,225,125,251,246,213,235,116,58,212,175,95,31,114, - 185,28,22,139,5,38,147,9,82,169,20,53,107,214,132,213,106,197,154,53,107,244,58,157,110,56,165,180,216,147,38,128,183,219,183,111,111,72,73,73, - 65,157,58,117,16,16,16,80,101,56,138,192,192,64,4,7,7,35,57,57,25,11,22,44,208,3,120,219,139,102,21,4,131,37,24,46,111,70,203,73, - 83,45,68,117,116,58,29,0,88,106,215,174,29,5,0,215,175,95,7,128,27,113,113,113,61,235,215,175,79,14,29,58,4,74,233,78,87,38,203,73, - 179,176,107,215,174,105,93,187,118,53,153,76,38,169,201,100,146,22,23,23,155,195,194,194,34,194,194,194,194,34,35,35,67,34,34,34,130,179,178,178, - 172,86,171,85,106,179,217,164,93,187,118,53,61,252,240,195,55,225,208,59,188,147,38,15,160,100,205,154,53,115,57,142,75,235,220,185,115,243,105,211, - 166,221,176,88,44,198,152,152,152,26,81,81,81,74,157,78,87,186,104,209,162,220,149,43,87,246,225,56,46,109,205,154,53,115,1,148,84,236,91,69, - 211,106,181,254,182,103,207,30,171,197,98,65,102,102,38,178,178,178,112,235,214,45,251,103,112,112,48,78,158,60,105,51,155,205,30,251,100,241,229,28, - 85,23,81,179,28,161,91,1,79,6,75,120,152,242,85,211,209,20,37,38,38,226,217,103,159,197,208,161,67,49,124,248,112,140,24,49,194,173,113,115, - 190,174,156,243,238,216,199,215,180,105,211,48,115,230,76,204,158,61,27,114,185,28,179,102,205,194,156,57,115,48,103,206,28,103,147,69,60,105,10,121, - 231,56,14,197,107,99,160,91,95,15,166,175,26,148,87,29,82,122,103,242,49,157,194,255,15,199,113,152,53,107,22,142,29,59,134,255,252,231,63,216, - 187,119,47,38,76,152,128,237,219,183,99,236,216,177,72,74,74,178,127,10,178,222,52,133,188,119,239,222,29,58,157,206,110,100,95,121,229,149,74,122, - 99,199,142,245,233,247,172,192,240,237,183,223,226,179,207,62,67,98,98,226,173,193,131,7,219,74,74,202,71,44,155,52,105,146,189,231,249,197,139,23, - 151,111,108,48,200,125,208,188,39,68,205,127,167,230,63,21,143,143,124,86,171,21,181,107,215,174,52,118,22,195,48,149,166,234,180,51,0,0,74,233, - 46,66,200,211,93,186,116,249,234,181,215,94,11,104,211,166,13,87,175,94,61,104,181,90,164,166,166,226,226,197,139,214,159,127,254,185,68,167,211,61, - 71,41,245,250,214,25,165,116,3,33,100,103,191,126,253,222,233,212,169,211,43,179,103,207,150,52,110,220,24,197,197,197,168,81,163,6,34,34,34,112, - 249,242,101,108,221,186,213,150,159,159,255,41,128,119,41,165,85,234,80,189,29,198,108,54,99,232,208,161,224,121,30,203,151,47,7,33,164,58,143,183, - 102,179,217,76,1,144,252,252,124,0,208,85,244,46,141,171,87,175,2,64,90,108,108,108,0,0,236,217,179,135,0,240,117,72,31,10,135,200,86,211, - 166,77,83,129,170,195,154,8,235,81,30,201,242,150,110,195,144,33,67,114,117,58,93,191,41,83,166,188,243,201,39,159,12,251,228,147,79,170,108,20, - 24,24,248,205,210,165,75,223,29,50,100,72,46,220,68,179,0,64,171,213,206,28,57,114,228,144,243,231,207,7,40,20,10,104,181,90,20,20,20,192, - 108,54,35,46,46,14,185,185,185,216,176,97,67,169,94,175,159,227,99,158,69,252,140,163,49,112,23,213,242,102,178,220,193,178,44,126,249,229,151,42, - 81,44,95,26,191,187,75,167,171,182,73,158,162,98,158,30,138,132,110,105,156,219,139,113,156,111,125,3,122,210,101,89,22,239,191,255,62,88,150,117, - 27,201,170,78,228,73,208,12,9,9,1,0,8,67,38,13,24,48,224,158,116,1,204,174,120,131,84,13,96,230,141,27,55,78,183,110,221,186,17,224, - 58,162,37,34,34,82,61,220,26,45,155,205,150,209,164,73,19,0,222,7,46,21,176,88,44,25,190,28,148,82,186,147,16,18,183,116,233,210,215,213, - 106,117,31,157,78,215,18,40,111,44,175,213,106,247,24,141,198,21,180,26,131,64,87,24,167,9,132,144,229,253,250,245,91,208,171,87,175,103,166,78, - 157,74,40,165,88,189,122,53,189,118,237,218,102,0,111,83,74,175,249,170,233,72,72,72,200,31,95,124,241,69,228,79,63,253,4,139,197,130,21,43, - 86,32,32,32,224,143,106,164,47,151,101,217,245,157,59,119,126,254,216,177,99,27,40,165,191,203,100,178,47,31,121,228,145,145,199,142,29,251,154,82, - 122,145,101,217,47,59,117,234,52,242,212,169,83,155,40,165,103,171,145,188,194,174,93,187,222,6,16,101,181,186,174,105,236,218,181,171,9,64,54,188, - 155,44,129,146,209,163,71,155,71,143,30,61,117,200,144,33,235,78,157,58,213,177,168,168,168,37,0,4,7,7,159,239,208,161,195,201,239,191,255,254, - 50,202,35,89,30,27,235,83,74,243,8,33,79,182,108,217,242,199,249,243,231,171,155,55,111,206,54,108,216,16,55,110,220,192,133,11,23,172,159,127, - 254,121,153,94,175,31,68,41,245,101,12,70,145,251,128,16,125,10,14,14,174,244,16,37,244,75,85,221,234,66,1,65,211,249,1,77,34,145,184,213, - 244,212,109,130,128,70,163,177,119,110,234,75,147,5,222,93,123,2,135,116,10,154,194,228,131,201,242,250,134,96,197,16,56,62,107,250,210,189,131,90, - 173,134,197,98,177,235,250,240,230,167,247,140,148,71,207,237,81,126,66,200,236,115,231,206,109,0,32,117,213,70,75,68,68,164,122,184,53,90,133,133, - 133,46,71,145,247,23,21,70,234,221,138,201,95,154,215,0,12,33,132,124,176,119,239,222,89,21,139,231,81,47,227,37,122,227,207,63,255,28,200,113, - 220,127,191,249,230,155,78,148,82,4,5,5,29,191,113,227,198,203,213,209,176,90,173,163,9,33,227,133,183,8,77,38,211,104,66,200,235,148,210,50, - 135,245,246,249,106,66,1,24,41,165,209,110,214,27,225,187,201,18,48,0,48,125,255,253,247,101,0,206,225,78,63,89,150,138,201,0,135,234,66,143, - 137,163,116,31,33,164,225,172,89,179,22,74,36,146,222,90,173,54,70,173,86,167,91,173,214,223,116,58,221,219,148,210,130,106,166,77,196,143,152,76, - 166,204,38,77,154,176,64,213,7,40,79,55,114,79,15,86,54,155,45,163,81,163,70,94,31,206,92,104,102,186,91,71,41,77,139,139,139,99,124,213, - 18,48,155,205,185,158,210,25,23,23,231,115,250,28,210,233,49,239,177,177,177,46,243,238,9,158,231,221,230,221,106,181,222,149,166,167,223,211,29,148, - 210,239,99,98,98,38,135,134,134,54,53,24,12,50,131,193,32,117,140,10,42,149,202,98,171,187,167,58,17,17,145,42,220,117,31,85,127,103,42,140, - 213,227,126,212,51,2,120,222,15,58,6,167,249,50,79,243,213,228,126,68,132,120,0,58,175,91,249,0,165,52,31,192,75,254,208,18,241,47,249,249, - 249,15,251,91,179,160,160,192,239,15,106,121,121,121,241,254,214,204,207,207,247,123,58,31,20,77,79,100,102,102,250,189,76,136,136,252,91,185,187,58, - 1,17,17,17,17,17,17,17,17,17,175,16,0,46,223,28,160,213,24,153,251,110,222,62,240,166,47,106,138,154,162,166,168,41,106,138,154,162,230,63, - 79,211,155,118,117,252,199,3,129,240,234,238,253,152,0,244,17,53,69,77,81,83,212,20,53,69,77,81,83,212,252,183,78,98,213,225,223,136,118,132, - 184,29,51,240,239,164,41,34,34,34,34,34,34,226,27,46,27,195,43,107,145,142,234,16,102,131,205,76,111,91,12,244,133,210,27,52,69,93,155,244, - 5,131,103,1,196,202,164,210,154,38,147,57,13,20,59,109,12,182,24,210,232,141,187,77,64,68,68,196,25,165,82,25,89,82,82,146,119,251,246,237, - 214,65,65,65,55,131,131,131,89,147,201,116,225,214,173,91,253,239,70,179,113,184,186,95,155,22,245,63,191,122,61,227,136,173,152,127,249,92,81,81, - 177,247,189,254,247,154,0,64,8,145,52,14,69,127,2,140,9,170,175,232,223,36,156,28,160,192,103,108,62,126,254,131,210,234,141,23,116,159,52,9, - 33,76,96,96,224,166,160,160,160,4,150,101,109,66,7,151,132,16,154,157,157,141,178,178,178,112,234,166,23,251,255,101,89,18,17,17,17,17,241,29, - 142,227,150,133,132,132,140,214,106,181,85,186,233,113,49,148,85,134,78,167,251,159,190,148,241,79,193,181,209,210,72,151,46,223,49,188,225,233,27,59, - 176,110,104,206,124,117,29,18,212,251,217,135,122,245,27,222,26,193,17,74,200,53,12,138,242,75,27,252,121,58,189,207,190,239,175,188,167,8,147,164, - 241,165,172,133,82,170,181,88,44,35,40,165,41,190,38,64,173,86,215,188,126,253,122,100,76,76,140,5,0,66,66,66,164,142,243,119,131,84,42,25, - 189,126,209,235,81,41,231,79,60,51,225,253,159,155,54,136,210,244,248,43,187,44,255,110,245,4,205,47,230,191,26,117,229,143,51,126,209,108,16,65, - 226,88,138,209,173,107,73,95,120,233,201,174,81,3,251,116,65,141,136,154,200,72,191,217,119,251,158,35,125,191,223,113,178,168,113,56,249,82,34,193, - 186,75,217,244,210,255,151,38,0,4,5,5,173,28,53,106,212,227,189,123,247,230,130,130,130,16,17,17,1,133,66,1,185,92,142,78,157,58,21,148, - 149,149,177,0,92,27,173,106,150,37,85,93,50,71,127,19,11,41,165,226,120,106,255,16,8,33,141,107,215,174,253,163,82,169,12,76,73,73,153,73, - 41,93,127,31,143,53,188,83,167,78,43,206,157,59,119,198,104,52,190,94,157,255,34,17,145,127,19,18,137,100,69,143,30,61,134,173,94,189,58,96, - 215,174,93,1,15,61,244,16,76,38,147,125,188,97,157,78,103,31,22,207,102,179,97,245,234,213,255,223,73,126,96,113,105,180,228,10,73,120,112,80, - 13,212,168,205,34,170,78,141,65,111,172,26,200,70,54,80,32,199,118,17,57,180,8,54,171,9,210,26,106,52,234,87,3,109,18,122,73,126,89,115, - 33,238,198,30,14,175,62,63,197,246,242,75,47,239,4,80,183,186,9,81,169,84,53,234,213,171,151,21,21,21,165,4,0,43,49,75,3,227,152,95, - 195,227,148,15,223,186,170,251,143,46,141,126,230,110,223,30,132,176,105,117,239,228,69,97,83,37,205,95,246,217,224,25,67,219,146,181,83,122,55,123, - 117,229,111,199,26,133,42,187,95,41,208,103,249,154,30,87,154,115,63,92,55,120,214,243,157,238,90,211,17,150,98,251,158,61,187,27,133,112,122,80, - 221,29,191,86,171,118,93,188,242,98,93,188,244,210,75,193,127,166,229,78,26,51,225,141,23,0,4,253,127,105,2,128,90,173,142,111,219,182,45,87, - 88,88,136,176,176,48,123,71,150,50,153,204,235,190,119,81,150,230,253,242,209,165,78,164,1,121,138,254,69,221,141,201,40,242,128,64,8,105,220,178, - 101,203,195,71,143,30,13,45,42,42,66,167,78,157,222,3,176,254,126,29,175,125,251,246,75,14,29,58,20,114,228,200,145,190,195,134,13,59,72,8, - 233,86,93,179,69,8,105,92,167,78,157,31,21,10,69,64,74,74,202,116,74,233,215,254,74,31,33,100,84,124,124,252,135,103,206,156,57,109,50,153, - 38,137,70,80,228,255,3,66,200,123,61,123,246,124,122,245,234,213,161,132,16,252,250,235,175,184,122,245,170,189,51,97,31,59,237,245,229,56,45,0, - 16,74,233,249,123,79,245,131,139,199,126,180,24,194,224,221,141,195,88,91,72,38,126,207,221,143,125,159,222,198,95,251,12,38,67,41,95,16,217,84, - 26,221,234,9,21,58,62,153,131,199,198,53,196,94,245,13,156,255,235,172,68,165,82,5,184,211,11,11,11,75,10,8,8,8,100,24,198,126,6,245, - 122,189,106,214,172,89,124,74,74,138,134,16,162,41,188,93,128,230,157,26,208,184,254,52,234,209,137,109,163,194,234,40,48,171,219,201,105,0,92,26, - 173,22,209,154,119,250,141,232,55,179,171,92,202,241,22,51,120,155,25,188,197,12,86,66,113,238,74,38,218,214,86,96,253,132,246,245,199,126,114,234, - 98,253,112,121,135,107,121,70,175,189,195,187,211,148,179,119,175,233,138,232,102,93,193,235,11,64,136,4,214,130,171,176,21,221,0,19,88,11,22,89, - 24,138,243,178,96,53,252,5,41,43,169,86,59,186,123,213,12,14,14,158,40,151,203,151,40,149,74,43,195,48,148,16,66,101,50,153,122,243,230,205, - 120,247,221,119,17,16,16,0,165,82,9,165,82,9,133,66,225,243,197,88,157,178,36,87,75,30,221,188,228,194,44,0,51,171,147,119,145,191,23,142, - 38,203,96,48,224,207,63,255,68,94,94,94,117,70,61,168,54,41,41,41,183,143,30,61,26,93,171,86,45,124,253,245,215,225,99,198,140,57,68,8, - 233,234,171,161,113,54,134,237,218,181,251,16,128,223,140,86,199,142,29,23,28,58,116,168,198,145,35,71,18,18,19,19,239,202,8,138,136,220,43,17, - 17,17,99,62,253,244,211,96,225,255,219,213,200,8,153,153,153,72,187,122,1,122,51,197,35,221,122,250,172,77,8,145,3,72,36,132,140,111,209,162, - 69,7,74,41,24,134,57,78,41,93,14,224,39,119,205,76,254,201,216,141,86,82,82,210,1,0,24,48,96,64,119,251,74,5,69,33,123,20,105,41, - 57,88,63,38,215,106,40,226,47,18,11,134,107,179,145,107,206,102,142,169,74,162,235,167,157,78,149,12,94,96,67,143,97,77,241,193,115,95,195,100, - 53,216,27,95,83,167,87,52,67,66,66,130,79,157,58,21,202,48,12,120,158,7,207,243,48,26,141,217,111,189,245,86,196,224,193,131,53,31,44,125, - 143,233,250,100,107,12,251,160,30,169,223,62,10,69,217,38,124,241,250,159,40,189,101,254,198,157,102,139,6,181,222,88,56,241,41,14,86,51,168,69, - 11,152,116,128,69,7,222,162,5,145,5,3,230,50,132,203,11,240,253,248,38,193,111,124,243,87,74,147,40,77,175,203,217,101,7,29,53,254,23,154, - 174,160,188,21,218,29,211,33,9,109,0,89,147,129,144,183,28,134,204,148,211,56,243,221,2,100,92,56,128,232,166,157,42,111,127,159,53,131,131,131, - 39,55,136,139,251,112,197,242,229,228,183,159,126,68,92,221,218,0,0,169,38,8,203,63,251,12,26,141,198,110,178,148,74,165,219,177,234,92,165,179, - 74,89,42,228,175,89,74,48,195,84,74,127,86,70,147,90,233,231,76,239,165,157,54,61,43,148,165,147,191,164,191,169,168,75,62,19,218,108,249,146, - 247,234,34,106,222,63,77,66,72,243,230,205,155,31,63,122,244,168,74,175,215,99,211,166,77,152,61,123,182,197,108,54,179,132,144,159,93,236,126,10, - 192,199,212,105,232,45,87,233,36,132,4,2,24,15,160,131,11,157,188,167,159,126,218,50,119,238,92,174,127,255,254,248,229,151,95,194,6,15,30,124, - 150,16,210,70,48,52,238,242,238,104,178,244,122,61,46,92,184,128,194,194,194,223,171,155,119,79,84,24,193,154,49,49,49,216,184,113,99,248,200,145, - 35,221,154,173,7,241,188,139,154,15,134,102,89,89,153,121,215,174,93,216,185,115,39,212,106,53,2,2,2,236,6,75,48,95,151,46,93,194,129,143, - 94,197,141,203,231,49,252,189,173,94,53,9,33,245,0,188,162,209,104,198,244,232,209,163,198,160,65,131,16,26,26,10,171,213,138,244,244,244,78,219, - 182,109,235,116,244,232,209,44,66,200,74,0,107,41,165,69,174,210,234,202,139,60,232,176,0,144,148,148,68,1,244,112,94,201,72,8,116,182,66,116, - 110,248,20,122,28,86,178,121,185,249,173,167,62,254,229,70,141,86,173,152,49,99,70,221,71,30,121,68,50,97,250,75,56,245,99,30,122,62,147,135, - 174,195,98,144,246,251,165,109,110,15,198,178,224,121,30,199,143,31,135,205,102,131,209,104,132,201,100,66,171,86,173,10,62,250,116,133,230,137,113,93, - 48,238,203,70,8,173,163,192,254,245,153,248,227,7,106,78,255,211,124,195,88,128,53,238,52,207,166,164,207,126,241,205,15,22,40,165,18,197,219,207, - 197,35,76,110,1,209,68,64,218,227,29,144,128,242,17,105,248,252,20,92,90,59,14,58,147,81,162,181,240,123,229,50,217,110,147,217,252,5,165,116, - 243,189,104,98,199,155,88,246,84,176,228,249,13,198,95,219,69,147,176,228,44,170,247,244,99,63,68,136,148,143,64,27,202,163,49,8,20,103,207,158, - 197,148,37,39,32,97,147,241,106,183,157,120,98,226,82,108,158,63,28,18,171,14,132,0,54,171,5,160,158,71,206,113,214,52,26,13,0,40,172,217, - 191,227,173,165,95,33,185,48,8,146,219,87,48,232,33,41,164,44,241,168,41,151,203,23,172,92,185,146,216,180,90,244,104,28,135,182,189,187,162,172, - 164,4,191,255,121,3,233,233,233,120,236,177,199,236,227,203,197,198,198,98,235,214,170,23,159,59,92,148,165,198,51,158,216,188,165,252,73,7,203,1, - 140,184,176,77,103,173,221,166,224,185,158,207,228,161,231,243,245,184,155,211,207,37,2,88,226,243,65,68,254,78,124,122,226,196,9,149,208,206,227,229, - 151,95,198,248,241,227,57,0,189,156,55,204,205,205,197,145,35,71,6,77,156,56,113,104,133,233,112,59,202,1,33,164,70,219,182,109,143,238,219,183, - 175,113,64,192,157,224,57,207,243,48,155,205,176,88,44,48,155,205,48,26,141,48,26,141,8,12,12,196,209,163,71,21,33,33,33,223,3,104,233,65, - 183,146,201,58,115,230,12,70,142,28,153,103,181,90,253,58,208,95,73,73,201,51,137,137,137,7,55,108,216,16,30,23,23,135,175,191,254,58,252,197, - 23,95,172,86,212,77,68,228,94,33,132,160,89,179,102,184,114,229,74,165,234,66,199,49,72,99,99,99,49,113,238,39,88,251,122,111,252,56,181,11, - 58,190,233,246,214,14,66,200,244,167,159,126,122,65,100,100,36,211,162,69,11,212,172,89,19,70,163,17,197,197,197,160,148,34,44,44,12,47,188,240, - 2,158,124,242,201,232,131,7,15,46,217,183,111,223,92,66,200,23,0,86,80,74,175,8,58,238,188,200,131,142,61,162,53,96,192,128,3,194,247,210, - 219,134,99,103,47,31,175,47,141,3,8,3,92,163,219,1,74,80,100,52,131,55,73,154,190,253,246,219,108,151,46,93,184,77,155,54,161,239,35,3, - 176,125,251,42,116,30,92,134,186,205,195,96,101,204,110,187,19,176,217,108,48,155,203,95,122,179,90,173,176,90,173,48,155,205,72,203,76,149,49,181, - 243,153,23,62,109,6,101,16,135,31,22,92,131,233,66,157,146,169,163,95,41,121,243,205,55,11,40,45,205,118,167,201,132,234,62,62,127,45,167,231, - 170,41,143,15,8,15,148,129,150,21,129,139,95,136,35,169,20,239,127,253,51,20,50,22,143,183,145,226,147,36,3,150,124,248,11,102,134,134,74,8, - 33,253,151,47,95,222,159,16,242,10,165,180,138,137,243,69,115,250,243,29,208,178,247,28,240,95,13,194,235,15,19,229,75,91,84,227,1,188,239,46, - 157,77,34,72,39,69,140,244,135,198,141,226,212,189,123,245,225,182,253,186,91,54,246,213,137,56,124,228,60,114,115,115,241,116,66,60,6,62,159,1, - 56,180,1,231,109,158,35,172,206,154,71,142,28,150,245,239,212,20,111,61,211,28,209,193,28,66,59,62,135,253,211,166,97,217,178,101,248,124,197,28, - 188,24,175,241,168,41,151,203,173,251,182,108,65,247,250,245,81,55,58,6,150,146,18,240,101,90,80,10,212,173,91,23,235,214,173,3,199,113,144,201, - 100,120,238,185,231,60,166,77,192,83,89,170,21,83,7,211,198,188,100,127,210,49,228,153,190,186,184,93,103,47,75,20,104,231,211,65,68,254,142,168, - 45,22,11,132,241,156,211,211,211,61,110,220,170,85,43,172,95,191,254,161,81,163,70,29,36,132,116,113,142,108,1,229,145,172,182,109,219,30,61,120, - 240,96,99,131,193,128,235,215,175,251,148,16,90,254,96,161,117,183,158,16,82,175,69,139,22,71,142,30,61,26,162,215,235,113,246,236,89,60,247,220, - 115,230,194,194,194,139,0,22,187,169,30,47,68,249,56,170,105,46,244,234,2,120,29,64,61,87,59,230,230,230,94,28,49,98,196,35,27,55,110,148, - 214,175,95,31,191,252,242,75,88,98,98,226,17,66,72,7,74,105,170,79,153,18,17,185,71,28,7,38,191,112,225,2,194,20,54,168,229,44,108,86, - 11,172,22,51,148,22,19,88,150,197,111,103,82,209,183,169,219,22,65,2,163,230,205,155,199,216,108,54,228,231,231,195,104,52,86,90,41,244,39,165, - 82,169,240,232,163,143,162,95,191,126,242,228,228,228,113,123,246,236,121,133,16,50,155,82,58,79,216,214,209,139,252,83,112,217,70,203,194,99,238,194, - 39,142,169,57,5,121,136,242,80,75,136,36,128,231,169,212,102,0,134,14,26,37,237,210,165,139,100,211,166,77,136,140,140,196,240,225,195,241,69,194, - 74,90,84,88,66,88,94,9,2,40,92,105,146,118,132,139,177,70,134,254,118,104,151,50,88,21,170,231,121,30,86,171,21,153,183,210,165,91,14,125, - 17,253,234,198,38,118,147,117,99,135,212,60,248,177,238,165,77,154,52,49,50,12,227,214,25,60,244,16,145,178,37,1,63,174,156,244,232,128,142,245, - 148,48,229,167,66,22,82,11,208,68,99,241,134,159,144,158,91,6,99,113,38,210,126,251,21,159,174,94,141,99,199,142,225,231,159,126,64,131,70,77, - 48,119,238,92,156,63,127,126,9,80,57,90,230,139,38,0,172,218,116,14,159,207,76,0,24,41,26,7,223,70,110,137,105,122,64,64,192,75,101,101, - 101,243,41,165,27,42,105,214,32,181,107,132,7,239,218,240,197,103,154,58,113,141,113,254,212,33,108,216,113,22,135,143,236,130,193,96,64,114,114,50, - 26,132,115,224,203,178,193,83,27,132,10,57,222,230,254,197,75,103,77,91,113,58,158,31,253,18,114,110,101,98,236,216,151,49,190,111,109,252,182,127, - 7,6,15,30,140,103,158,121,6,132,16,124,190,98,14,166,213,117,223,190,156,16,34,205,47,45,197,201,63,47,131,227,100,176,100,231,227,210,141,52, - 132,197,198,218,77,49,33,4,82,169,212,190,15,207,243,106,0,13,1,92,112,165,169,203,70,238,71,207,94,166,156,10,68,38,147,217,163,154,225,65, - 81,120,162,231,19,206,79,58,211,246,158,223,226,181,44,137,60,16,12,233,216,177,227,217,95,127,253,85,33,147,201,176,117,235,86,204,158,61,219,82, - 88,88,120,8,78,166,39,50,50,178,249,151,95,126,25,27,23,23,135,85,171,86,61,52,120,240,224,241,0,22,186,208,28,191,111,223,190,198,6,131, - 1,103,207,158,197,200,145,35,83,115,114,114,46,58,109,163,142,141,141,237,250,225,135,31,114,237,218,181,67,73,73,9,250,246,237,171,3,240,138,135, - 180,78,216,191,127,127,136,94,175,71,105,105,41,122,244,232,129,130,130,2,41,92,68,223,4,244,122,61,234,213,171,215,24,64,103,231,117,161,161,161, - 159,221,188,121,179,167,82,169,244,112,72,192,108,54,35,35,35,3,193,193,193,216,182,109,91,72,131,6,13,102,2,24,237,113,39,17,17,63,33,24, - 45,134,97,160,47,72,199,198,181,111,2,54,51,168,69,15,152,117,128,185,12,188,73,7,34,85,2,22,143,149,53,0,0,147,201,132,111,191,253,22, - 109,219,182,69,179,102,205,80,86,86,102,55,93,38,147,9,142,227,144,51,12,131,14,29,58,160,81,163,70,100,242,228,201,195,1,204,115,175,252,224, - 35,24,173,185,142,245,162,134,155,52,21,192,211,26,141,102,115,251,246,237,187,12,27,54,76,29,25,25,9,171,213,10,74,41,182,109,219,134,200,200, - 72,60,247,220,115,232,219,183,175,193,88,132,133,171,19,179,222,224,173,153,22,2,76,115,117,32,205,109,124,220,238,69,174,225,134,228,233,96,211,154, - 22,191,240,204,43,121,183,139,110,75,214,124,183,180,206,168,53,113,36,40,82,134,3,95,102,33,214,220,31,45,19,106,112,127,252,241,71,88,171,86, - 173,220,70,178,236,134,232,181,132,1,15,215,85,224,187,157,39,144,216,66,6,24,3,65,8,32,145,48,40,187,117,30,183,78,172,69,116,199,182,24, - 61,122,52,44,185,151,113,252,213,64,212,95,114,212,252,222,123,239,73,195,194,194,2,171,171,153,115,246,59,88,12,69,208,148,181,5,144,0,163,201, - 136,97,155,173,152,189,240,131,26,99,199,142,173,17,26,26,58,31,64,37,163,165,12,196,33,161,219,0,0,32,0,73,68,65,84,148,125,244,206,180, - 201,202,90,97,26,36,111,89,138,105,27,46,96,199,158,253,48,24,12,56,116,232,16,38,140,123,9,203,159,111,130,147,167,207,224,102,129,9,44,172, - 224,100,10,152,242,74,192,187,169,230,115,212,52,156,251,10,23,175,221,130,209,194,195,172,136,68,175,248,54,88,241,203,33,116,111,28,133,23,70,141, - 194,186,207,62,195,224,193,131,17,25,25,137,101,239,190,1,202,187,214,164,148,114,37,6,96,239,205,92,236,189,178,11,53,163,35,161,215,233,16,152, - 175,135,78,167,131,76,38,131,96,150,10,11,11,209,172,89,51,176,44,43,143,141,141,253,221,249,169,68,128,55,225,241,93,63,28,32,12,195,216,47, - 58,157,78,7,189,94,95,169,231,92,225,73,167,126,147,122,100,221,208,143,96,54,102,195,152,15,177,79,173,7,20,74,105,10,33,164,77,159,62,125, - 14,109,222,188,57,236,177,199,30,67,131,6,13,184,167,158,122,42,92,171,213,246,118,220,150,16,82,99,228,200,145,167,211,211,211,99,43,22,185,106, - 123,5,0,29,2,2,2,112,253,250,117,193,100,181,119,174,102,148,203,229,59,207,157,59,199,201,100,50,156,58,117,10,163,70,141,202,79,77,77,245, - 86,45,23,108,50,153,236,109,14,51,50,50,188,230,239,230,205,155,224,121,222,232,106,29,195,48,242,228,228,100,68,71,71,123,212,96,24,166,210,67, - 11,0,151,109,86,68,68,238,7,6,131,193,110,180,148,161,181,145,48,118,1,2,228,18,44,124,161,11,226,130,1,40,67,32,237,54,13,36,184,110, - 197,30,95,121,146,179,152,76,38,180,111,223,30,169,169,169,72,78,78,182,27,174,252,252,124,100,101,85,126,57,255,228,201,147,56,115,230,12,186,117, - 235,230,172,51,247,31,219,70,107,192,128,1,115,146,146,146,186,87,90,193,178,131,187,119,239,30,191,120,241,226,200,58,117,234,224,232,209,163,246,118, - 15,207,63,255,60,212,106,53,250,245,235,167,79,79,79,31,170,211,153,126,1,48,223,211,129,84,53,164,67,30,125,173,46,0,96,239,186,107,65,107, - 191,251,24,18,194,242,189,38,132,146,90,205,212,40,200,52,226,224,154,2,180,169,151,207,111,221,186,142,25,60,120,48,171,213,106,9,202,199,99,172, - 2,87,18,248,241,138,9,189,6,60,92,87,142,175,182,159,192,251,191,166,95,234,18,25,209,44,74,87,0,90,112,21,79,119,80,162,224,232,41,156, - 201,76,67,72,72,8,138,139,139,241,198,27,111,96,246,254,159,81,191,121,59,137,82,169,132,217,108,182,84,71,243,173,145,29,49,108,219,108,108,221, - 246,21,222,156,241,14,244,87,246,33,241,139,28,60,54,225,67,76,154,52,9,203,150,45,131,94,175,79,114,78,171,141,39,93,30,238,222,79,98,188, - 185,15,211,214,159,195,142,189,135,96,48,24,80,80,80,0,181,90,141,245,27,191,5,0,24,1,60,250,198,179,246,253,114,114,114,144,185,121,180,203, - 16,148,160,105,72,219,135,49,43,143,98,196,216,41,224,184,242,90,219,38,181,187,163,73,194,88,0,64,39,0,37,37,37,80,171,213,232,211,167,15, - 162,163,191,197,224,199,251,216,92,105,82,74,81,171,118,3,180,127,184,21,0,32,52,84,13,173,86,15,99,89,38,14,159,220,11,142,227,112,238,220, - 57,100,101,101,33,36,36,4,35,70,140,0,202,245,61,62,149,240,60,143,175,191,254,218,167,39,157,134,245,154,96,238,216,143,81,82,82,130,201,147, - 39,87,123,140,45,145,191,15,21,102,171,235,227,143,63,126,112,195,134,13,225,181,107,215,70,64,64,64,160,139,237,110,19,66,46,114,28,23,235,74, - 199,21,57,57,57,23,93,181,229,138,138,138,106,99,50,153,112,230,204,25,12,31,62,60,47,59,59,219,151,183,250,230,247,238,221,251,241,93,187,118, - 133,40,20,10,92,188,120,17,195,135,15,55,23,22,22,30,134,251,42,199,27,0,86,184,90,145,151,151,55,188,91,183,110,179,0,132,184,217,87,221, - 168,81,163,71,78,159,62,45,37,132,224,198,141,27,72,76,76,44,4,240,145,151,116,138,136,248,13,193,104,17,66,208,186,117,107,236,222,149,135,49, - 189,26,32,46,42,0,180,36,19,210,94,179,113,46,79,137,15,150,109,247,69,238,157,167,159,126,250,243,241,227,199,7,117,234,212,9,25,25,25,118, - 195,213,166,77,27,180,106,213,10,215,174,93,195,206,157,59,113,230,204,25,200,229,114,52,104,208,0,101,31,124,8,124,8,251,125,216,149,23,249,39, - 224,178,141,22,0,4,6,6,142,30,59,118,108,205,232,232,104,116,235,214,77,151,155,155,171,157,58,117,106,68,104,104,40,26,54,108,136,122,245,234, - 149,228,231,231,15,49,26,141,187,124,57,80,89,174,121,251,177,239,178,135,198,63,27,133,94,99,106,97,47,110,4,93,220,91,136,65,137,229,55,245, - 31,230,94,67,253,136,150,183,53,26,77,32,33,4,10,133,2,22,139,5,112,99,180,90,197,6,63,211,177,54,139,175,126,61,137,247,119,100,45,166, - 132,156,253,49,249,246,166,241,29,120,92,92,49,8,223,156,140,198,142,29,219,241,219,111,191,97,237,218,181,40,40,40,128,74,165,130,76,218,26,59, - 119,253,36,249,225,135,31,176,119,239,222,117,190,106,154,190,77,68,135,196,141,168,25,170,65,120,120,56,84,180,20,131,6,13,180,155,172,229,203,151, - 99,202,148,41,187,0,76,113,145,92,57,39,83,224,232,249,191,240,228,144,242,182,77,197,197,197,8,14,14,70,68,68,132,219,223,204,102,179,97,233, - 210,135,220,213,245,201,57,153,2,167,255,76,69,243,142,61,209,181,107,87,143,191,191,86,171,133,209,104,68,199,142,29,17,18,21,235,82,147,82,74, - 195,195,130,192,162,176,124,159,146,98,216,172,60,106,132,168,33,147,201,112,248,240,97,176,44,139,97,195,134,225,235,175,191,246,244,84,226,136,191,158, - 116,68,30,64,42,204,86,183,254,253,251,47,15,15,15,111,157,157,157,253,150,243,54,132,144,26,207,60,243,76,123,161,61,151,47,68,70,70,54,39, - 132,212,112,54,91,105,105,105,111,182,108,217,242,221,210,210,210,98,157,78,151,232,75,3,115,74,105,42,33,164,75,175,94,189,14,109,221,186,53,172, - 105,211,166,248,234,171,175,164,35,70,140,104,94,80,80,80,237,238,23,42,218,109,189,232,106,29,33,164,113,147,38,77,14,159,60,121,82,202,113,28, - 78,157,58,133,145,35,71,230,167,165,165,117,165,84,28,21,65,228,127,3,33,4,122,189,30,132,16,80,74,177,103,247,110,204,24,212,0,79,181,11, - 135,246,214,21,168,130,194,65,130,235,225,131,101,219,113,241,122,129,87,61,74,233,22,66,200,222,183,222,122,235,63,113,113,113,111,140,27,55,78,222, - 166,77,27,100,100,100,224,198,141,27,56,115,230,12,142,31,63,14,160,188,145,125,76,76,12,46,95,190,140,164,0,77,9,80,54,219,81,235,95,211, - 70,11,0,40,165,209,106,181,26,189,122,245,210,165,166,166,14,49,153,76,215,223,123,239,189,253,227,198,141,139,204,201,201,129,205,102,179,250,106,178, - 0,64,151,137,55,126,158,151,241,40,128,64,193,108,197,15,137,2,97,128,83,63,231,162,236,114,0,175,14,34,38,171,213,74,71,143,30,109,35,132, - 88,242,243,221,119,188,126,34,37,127,254,179,239,253,54,225,114,182,113,93,74,142,110,62,33,132,249,242,140,106,127,211,80,182,199,79,151,210,240,213, - 175,135,176,119,239,94,172,158,249,2,90,245,127,1,11,22,109,133,76,38,3,165,20,191,254,250,43,158,123,238,185,111,44,22,203,68,95,53,123,212, - 207,132,113,77,151,255,99,239,188,227,163,40,222,63,254,153,221,107,185,187,244,228,146,144,78,147,18,170,128,128,20,233,32,161,139,52,41,98,193,47, - 42,168,8,2,63,11,138,64,80,44,20,11,10,42,69,132,128,8,8,74,149,222,3,130,2,1,2,4,146,64,58,73,46,185,126,183,243,251,227,110, - 207,203,229,42,197,175,242,221,247,235,181,185,108,251,236,204,214,103,158,121,102,6,180,194,218,207,231,161,3,251,48,125,182,131,145,245,234,171,187,1, - 12,164,148,214,168,78,16,177,184,144,117,246,232,195,173,59,116,195,91,207,207,197,136,17,35,16,24,24,136,171,87,175,98,253,250,245,208,233,106,140, - 126,0,0,200,207,207,183,92,188,120,113,177,171,117,188,102,203,71,187,226,173,241,111,33,47,47,207,109,119,11,173,90,181,194,216,177,99,113,251,246, - 109,28,58,116,8,215,174,93,91,229,242,26,105,52,215,103,207,123,51,57,40,40,136,145,201,100,40,41,41,65,116,116,52,8,33,120,236,177,199,16, - 16,16,128,62,125,250,32,32,32,0,229,229,229,56,127,254,188,203,82,137,19,46,75,58,167,78,157,66,139,22,45,208,172,89,51,252,254,251,239,56, - 114,228,136,199,146,142,192,191,23,155,161,210,155,159,119,14,22,31,58,116,104,235,85,171,86,213,202,207,207,199,153,51,103,0,107,87,15,174,56,81, - 80,80,48,64,161,80,96,197,138,21,181,199,142,29,123,146,16,194,199,104,241,193,233,223,225,14,58,68,229,189,111,143,63,254,248,129,244,244,244,200, - 6,13,26,96,197,138,21,170,39,159,124,50,29,64,83,127,245,220,33,151,203,23,30,59,118,44,66,44,22,227,200,145,35,24,53,106,84,81,65,65, - 129,208,151,150,192,223,14,31,176,126,228,200,97,204,232,95,7,131,90,4,99,197,207,135,48,170,165,28,48,200,252,214,163,148,170,1,188,69,8,89, - 242,250,235,175,191,153,146,146,242,194,179,207,62,43,106,220,184,49,242,242,242,112,237,218,53,212,171,87,15,57,57,57,88,189,122,181,161,168,168,232, - 83,0,105,148,210,123,50,156,221,63,26,119,163,77,3,104,16,20,20,116,67,42,149,246,181,205,135,41,149,202,203,19,39,78,180,84,86,86,210,208, - 208,208,92,111,35,86,195,105,116,239,184,184,184,140,46,253,218,106,198,125,85,151,126,165,238,72,191,82,119,164,31,101,63,66,235,181,87,153,230,206, - 155,155,191,109,219,182,235,59,118,236,200,222,177,99,71,246,238,221,187,179,175,93,187,118,89,165,82,29,244,164,233,56,53,136,13,12,111,16,165,216, - 83,47,82,66,41,165,180,79,159,62,180,100,97,91,58,253,241,4,218,173,107,87,218,163,71,15,58,98,196,8,78,36,18,165,1,96,252,209,156,214, - 45,130,158,124,163,46,109,151,146,72,115,115,115,105,90,90,26,165,148,210,79,62,249,132,18,130,253,0,100,238,210,249,80,56,186,14,120,180,158,230, - 218,193,213,116,99,218,211,180,69,147,6,244,210,165,75,52,47,47,143,110,217,178,133,134,133,133,150,3,232,27,33,199,115,98,49,218,0,104,110,155, - 162,125,209,60,249,205,171,244,235,87,186,208,121,99,90,210,215,83,147,105,175,38,33,134,24,37,254,15,192,204,49,99,198,112,102,179,153,86,84,84, - 208,165,75,151,82,66,200,102,0,18,119,121,7,16,4,96,118,157,58,117,116,109,218,180,161,173,90,181,162,15,63,252,48,109,222,188,57,77,73,73, - 161,245,235,215,167,117,235,214,165,241,241,241,244,181,215,94,163,189,123,247,166,129,129,129,229,0,6,251,162,185,96,193,2,186,125,251,118,250,245,215, - 95,211,57,115,230,208,87,95,125,149,182,106,213,138,182,111,223,158,62,249,228,147,62,107,222,139,73,208,252,239,104,2,216,126,238,220,57,202,99,177, - 88,104,94,94,30,221,177,99,7,141,137,137,249,19,64,176,43,77,0,193,141,27,55,190,144,153,153,73,111,220,184,65,141,70,163,93,227,194,133,11, - 20,192,190,187,77,39,128,6,113,113,113,133,123,247,238,165,153,153,153,52,38,38,38,231,94,230,61,57,57,185,176,168,168,136,238,217,179,135,170,84, - 170,66,0,13,254,137,215,72,208,124,176,53,149,74,101,193,162,69,139,232,212,169,83,105,187,198,9,212,176,118,56,93,250,116,67,26,25,17,78,79, - 188,158,72,181,31,36,81,75,225,121,122,234,98,33,29,241,214,86,58,226,173,173,84,169,84,22,248,147,78,88,11,82,171,90,181,106,101,89,180,104, - 17,125,225,133,23,104,82,82,146,5,214,206,199,227,238,117,30,255,201,147,39,143,214,69,0,137,128,213,181,31,24,24,120,116,240,224,193,181,135,13, - 27,198,172,89,179,198,162,209,104,246,185,219,215,29,12,195,24,231,191,62,191,224,213,17,221,163,1,200,91,166,70,98,227,220,107,104,145,220,233,54, - 1,209,222,188,121,211,30,172,35,22,139,209,168,81,35,191,244,51,243,212,165,0,186,73,196,204,145,236,236,236,118,201,201,201,168,247,127,251,244,137, - 117,234,137,62,248,112,186,232,228,201,147,152,53,107,214,50,147,201,52,221,95,205,6,49,129,67,55,159,43,24,169,21,5,166,42,149,74,209,200,145, - 35,49,127,254,124,76,159,62,189,0,64,17,128,239,8,33,71,40,165,139,156,53,46,150,208,223,90,198,137,223,30,253,244,11,179,135,116,111,46,237, - 151,34,99,6,244,237,133,213,107,55,160,105,211,166,248,246,219,239,130,159,124,242,201,41,197,26,189,207,221,239,58,107,202,136,133,49,27,52,244,204, - 149,66,67,169,198,244,89,126,21,62,237,214,173,91,241,55,223,124,67,52,26,13,62,253,244,83,204,154,53,107,11,165,116,40,245,48,176,52,117,40, - 149,92,189,122,213,94,42,73,74,74,66,94,94,30,246,236,217,227,119,169,132,122,41,233,92,191,126,253,127,183,164,243,191,137,236,232,209,163,144,201, - 254,42,53,159,57,115,6,47,191,252,242,57,91,76,85,141,174,29,0,128,82,90,65,8,233,208,183,111,223,3,139,22,45,106,108,11,45,0,0,236, - 221,187,23,176,134,57,222,21,212,86,213,217,187,119,239,133,17,17,17,45,242,243,243,223,190,91,77,71,178,179,179,95,107,214,172,217,92,181,90,93, - 225,107,213,166,128,192,253,64,171,181,182,36,84,196,212,71,183,247,246,66,23,16,139,142,157,58,99,249,161,95,241,113,31,9,140,233,163,208,124,232, - 74,172,121,175,47,0,32,240,19,255,244,169,181,42,124,52,33,228,131,140,140,140,255,3,64,1,188,79,169,239,227,236,62,40,120,28,130,135,39,48, - 48,240,155,212,212,212,186,159,124,242,9,179,97,195,6,203,171,175,190,154,103,52,26,39,251,123,48,189,94,127,243,202,205,155,33,159,108,58,92,48, - 119,225,172,200,5,159,159,12,232,217,225,241,202,212,190,131,244,173,91,183,54,59,247,87,115,226,196,9,10,216,2,134,252,192,100,166,105,47,191,252, - 242,166,153,51,103,146,167,158,122,74,6,88,95,196,239,188,243,206,38,179,217,60,209,95,61,0,184,152,95,185,30,192,250,248,248,248,43,193,193,193, - 117,8,33,24,53,106,20,198,141,27,23,13,224,137,162,162,34,52,109,218,20,0,106,24,90,0,112,58,207,244,81,253,8,242,203,242,141,71,158,80, - 4,72,219,232,171,12,185,3,7,12,24,182,98,229,202,176,196,196,68,72,165,82,191,187,50,112,214,212,25,13,103,204,38,238,167,11,197,244,52,33, - 164,113,173,90,181,2,202,202,202,240,249,231,159,251,100,100,57,66,41,45,4,240,50,33,228,227,87,94,121,229,189,86,173,90,141,28,51,102,12,19, - 21,21,133,244,244,116,238,250,245,235,223,1,120,135,82,154,231,107,122,239,135,166,192,191,146,113,207,61,247,156,115,176,184,203,158,225,157,161,214,192, - 249,71,83,83,83,157,123,134,119,27,156,238,47,54,227,167,215,189,208,114,161,253,61,238,225,144,62,2,2,119,10,111,104,181,104,209,2,104,209,194, - 190,124,195,239,209,88,255,71,33,134,54,207,133,254,171,142,32,193,137,119,117,28,74,233,159,0,134,123,221,240,1,198,39,67,171,178,178,114,250,150, - 45,91,90,239,218,181,11,106,181,250,55,163,209,56,133,122,232,189,217,29,69,69,69,99,39,79,158,188,92,34,145,196,152,205,230,66,139,133,202,54, - 173,221,198,109,251,113,167,142,97,152,26,45,225,12,6,131,166,164,164,228,57,127,143,67,41,221,66,8,121,38,43,43,235,195,176,176,176,112,147,201, - 100,62,115,230,204,119,22,139,101,34,189,203,113,150,242,243,243,179,18,18,18,0,128,1,96,143,222,53,155,205,20,128,199,1,166,47,151,208,76,56, - 180,204,35,132,44,236,217,179,231,135,65,65,65,13,213,106,245,59,30,118,245,89,147,135,82,122,158,16,50,119,231,206,157,195,11,11,11,119,3,120, - 217,87,35,203,73,231,158,151,74,132,146,206,255,54,212,67,176,184,143,251,87,192,117,63,91,2,2,2,62,192,113,92,238,199,31,127,236,118,253,75, - 59,24,188,180,131,111,51,117,205,190,207,223,144,180,7,18,159,12,45,91,9,207,115,167,48,190,233,104,1,140,184,91,29,31,143,245,45,128,111,239, - 181,174,217,108,238,115,175,180,168,117,232,129,254,247,74,207,133,254,255,1,248,191,123,164,117,207,75,37,66,73,71,64,64,64,224,239,71,163,209,180, - 254,111,167,225,127,9,198,251,38,2,2,2,2,2,2,2,2,2,119,2,1,224,178,83,72,234,199,8,226,132,16,191,59,150,244,166,47,104,10,154, - 130,166,160,41,104,10,154,130,230,131,167,233,77,219,31,251,227,95,193,253,108,210,136,127,105,211,87,65,83,208,20,52,255,125,154,176,22,28,201,63, - 61,157,255,11,154,252,181,128,181,214,132,241,245,218,252,55,243,238,79,250,30,132,243,249,79,212,124,80,39,159,98,180,238,53,196,218,188,144,1,192, - 81,219,213,17,248,103,97,187,70,124,51,80,42,92,39,129,127,34,132,16,149,68,34,121,85,34,145,60,22,16,16,240,16,165,148,11,12,12,60,111, - 52,26,247,26,141,198,143,169,181,107,17,129,191,17,135,119,7,139,191,62,182,22,0,22,91,79,228,255,168,119,9,33,196,110,20,16,66,56,252,195, - 190,75,247,227,124,254,91,52,31,20,220,26,90,132,144,22,74,165,242,29,169,84,90,135,16,98,169,170,170,58,171,215,235,151,82,74,143,220,205,1, - 9,33,203,163,163,163,199,149,148,148,112,12,195,32,32,32,192,62,138,184,88,44,214,150,149,149,213,24,11,205,23,162,154,13,126,93,68,200,36,11, - 181,44,45,56,187,105,142,183,229,2,238,33,132,16,137,68,50,36,60,60,60,180,168,168,136,242,131,223,178,44,203,15,132,107,46,43,43,251,206,87, - 189,240,240,240,227,225,225,225,161,252,254,132,16,148,148,148,148,21,20,20,60,2,0,114,185,252,144,82,169,140,16,137,68,96,89,22,44,203,66,163, - 209,148,20,23,23,119,184,111,153,20,184,175,172,95,191,158,237,29,247,76,61,17,213,54,103,24,26,194,113,164,220,76,228,103,182,231,45,207,242,101, - 255,161,67,135,186,28,143,211,17,66,200,160,200,200,200,165,91,182,108,9,105,216,176,161,168,180,180,148,36,36,36,160,188,188,188,195,254,253,251,31, - 25,55,110,220,120,66,200,56,74,233,111,119,159,163,7,27,153,76,246,105,116,116,244,179,149,149,149,26,66,8,37,132,128,239,110,199,249,215,98,177, - 228,22,23,23,187,12,166,118,248,216,138,165,82,233,199,49,49,49,99,53,26,141,198,166,71,9,33,168,85,171,86,53,61,0,48,153,76,185,69,69, - 69,62,5,104,71,69,69,45,149,203,229,79,105,52,154,42,155,97,100,199,233,99,126,165,168,168,200,237,216,100,124,90,165,82,233,194,232,232,232,167, - 109,121,7,33,132,170,84,42,191,243,238,136,72,36,202,96,24,166,5,231,48,174,148,115,247,69,14,104,77,38,147,203,239,158,243,249,140,142,142,30, - 235,152,78,66,8,84,42,213,93,93,163,127,170,230,131,132,91,67,171,101,203,150,63,28,59,118,236,33,126,160,98,157,78,215,108,241,226,197,99,8, - 33,105,148,210,25,119,114,48,66,200,138,78,157,58,141,216,191,127,63,179,105,211,38,166,77,155,54,32,132,192,98,177,192,98,177,160,105,211,166,242, - 59,204,7,66,148,138,233,167,118,126,21,208,162,199,115,147,0,204,241,182,220,67,26,91,0,120,19,64,29,63,147,80,4,96,6,165,244,148,171,149, - 225,225,225,135,25,134,241,75,147,227,184,171,165,165,165,143,186,91,127,63,52,109,70,214,19,157,58,117,10,217,181,107,23,201,201,201,33,114,185,28, - 28,199,193,98,177,192,100,50,33,37,37,197,47,79,104,104,104,104,240,244,233,211,235,61,254,248,227,216,176,97,3,198,140,25,131,142,29,59,94,226, - 215,43,149,202,136,115,231,206,61,20,30,30,14,141,70,131,242,242,114,244,236,217,211,159,67,220,19,66,67,67,255,12,10,10,10,99,89,214,254,70, - 116,85,8,227,151,89,44,22,170,213,106,175,150,150,150,186,124,153,183,123,56,225,125,194,16,123,95,81,212,108,41,61,250,123,222,155,119,155,206,136, - 136,136,83,50,153,44,218,219,118,142,47,118,157,78,87,80,82,82,242,176,151,237,147,1,244,103,89,182,190,72,36,106,8,32,217,108,54,71,3,128, - 68,34,41,96,89,54,219,100,50,101,26,12,134,203,0,182,80,15,99,243,245,142,123,166,30,49,107,134,170,245,92,95,69,221,180,6,154,43,211,47, - 42,100,154,109,189,227,158,89,239,171,177,229,37,173,67,158,120,226,137,101,171,87,175,14,6,128,202,202,74,122,225,194,5,4,6,6,114,18,137,132, - 164,166,166,74,46,93,186,84,171,107,215,174,233,132,144,65,148,210,131,126,104,55,0,176,14,214,1,165,95,160,214,214,177,119,147,214,56,0,3,0, - 52,144,72,36,181,141,70,99,49,128,12,0,187,40,165,151,8,33,73,42,149,234,123,142,227,244,37,37,37,207,80,107,247,23,213,104,223,58,241,36, - 195,48,241,176,221,142,28,181,228,30,57,153,115,79,62,80,44,203,46,28,60,120,240,211,235,215,175,87,100,100,100,40,26,55,110,108,47,16,113,28, - 87,227,25,168,93,219,227,216,223,4,128,136,97,152,79,135,14,29,58,114,213,170,85,138,235,215,175,43,98,99,99,237,154,142,70,28,79,108,172,111, - 141,218,35,34,34,150,63,254,248,227,163,87,174,92,41,222,188,121,179,60,50,50,18,17,17,17,144,72,36,53,182,237,208,161,131,183,193,51,25,134, - 97,22,14,28,56,112,244,218,181,107,21,199,142,29,83,52,109,218,20,44,203,222,105,222,1,0,132,144,223,235,214,173,219,40,43,43,139,201,200,200, - 96,188,157,207,160,160,32,79,223,61,251,249,28,48,96,192,200,117,235,214,41,78,157,58,165,104,216,176,161,93,211,161,218,206,215,116,254,91,52,31, - 24,60,125,48,165,70,163,17,251,246,237,3,195,48,8,15,15,199,184,113,227,176,115,231,206,233,132,144,159,253,245,108,17,66,150,219,140,44,49,0, - 252,248,212,32,92,21,3,47,23,26,32,145,72,112,229,202,21,176,44,235,183,107,49,32,32,96,44,165,244,173,136,168,68,153,86,107,130,238,230,73, - 133,92,46,207,230,31,228,208,200,56,235,242,91,39,21,10,133,226,10,203,178,179,213,106,245,10,119,122,245,235,215,95,253,231,159,127,54,114,245,224, - 122,66,163,209,32,49,49,49,9,64,125,87,235,197,98,113,252,245,235,215,163,248,241,22,249,7,206,249,151,255,223,104,52,34,37,37,197,99,191,87, - 158,52,205,102,51,2,2,2,192,48,214,134,165,6,131,1,149,149,149,30,53,121,79,22,111,100,1,192,154,53,107,16,19,19,131,168,168,40,40,149, - 74,200,229,114,187,166,175,176,44,139,222,189,123,99,214,172,89,72,75,75,195,212,169,83,171,189,104,197,98,49,194,195,195,241,235,175,191,34,56,56, - 24,73,73,73,224,13,252,123,129,50,153,52,103,25,50,87,85,71,222,246,214,101,205,84,205,117,186,220,213,118,114,185,92,117,229,202,21,21,203,178, - 53,174,135,243,53,250,51,243,44,210,22,189,139,11,249,71,163,21,73,228,25,87,154,132,33,225,71,78,222,176,151,84,251,116,107,36,106,215,42,233, - 115,235,28,7,134,1,56,206,250,233,36,4,212,108,226,110,159,56,147,231,181,39,114,150,101,99,179,179,179,163,124,61,71,102,179,25,177,177,177,174, - 7,194,228,211,74,72,223,38,77,154,252,56,113,226,68,73,253,250,245,137,68,34,129,72,36,130,72,100,125,69,112,28,151,68,41,77,226,56,174,75, - 65,65,1,93,188,120,241,7,132,144,193,148,210,109,174,244,68,84,219,92,173,231,250,30,56,141,71,134,246,120,3,191,166,79,127,164,83,75,14,65, - 10,109,22,128,59,50,180,218,183,74,60,39,11,144,133,27,77,102,70,165,138,136,88,185,114,37,99,50,153,168,78,167,163,148,82,180,105,211,134,99, - 24,134,28,58,116,136,153,55,111,30,54,109,218,68,211,211,211,131,219,183,111,191,146,16,146,66,41,213,120,59,6,33,164,65,147,38,77,78,31,59, - 118,44,192,104,52,162,93,187,118,71,9,33,173,232,29,244,224,78,8,9,3,240,209,140,25,51,70,79,156,56,145,13,13,13,133,84,42,133,90,173, - 70,86,86,214,216,239,190,251,142,18,66,62,3,16,148,157,157,221,254,248,241,227,232,218,181,235,100,0,175,58,107,49,12,27,127,232,248,53,251,8, - 244,3,122,55,147,60,218,38,169,0,0,106,150,5,40,56,11,151,123,236,116,174,87,67,140,16,242,193,144,33,67,70,173,95,191,62,16,0,190,248, - 226,11,12,25,50,4,225,225,225,80,40,20,144,72,36,16,139,197,213,126,61,104,241,213,70,31,12,31,62,124,232,170,85,171,130,0,96,213,170,85, - 24,52,104,16,34,34,34,16,20,20,4,169,84,234,118,92,86,79,68,68,68,44,239,248,200,35,227,87,174,92,9,0,248,191,87,94,193,227,109,219, - 34,80,33,135,66,46,5,127,46,164,172,24,125,94,158,228,45,223,12,128,5,67,134,12,25,182,118,237,218,32,0,200,200,200,64,97,97,33,162,163, - 163,33,151,203,33,149,74,237,121,38,132,64,46,247,238,7,32,132,28,175,83,167,78,131,172,172,44,9,112,239,206,231,224,193,131,135,174,91,183,46, - 8,0,190,251,238,59,244,232,209,3,97,97,97,246,243,41,145,72,30,40,205,7,13,183,134,214,233,211,167,159,80,42,149,243,0,168,164,82,105,232, - 200,145,35,19,198,143,31,143,225,195,135,99,207,158,61,19,0,248,108,104,17,66,72,116,116,244,184,253,251,247,219,191,208,6,167,151,131,76,38,243, - 251,3,110,227,173,147,19,38,196,164,101,85,226,232,241,76,4,128,33,89,31,127,172,210,93,186,4,139,193,128,247,174,168,113,244,120,38,100,102,142, - 156,157,242,114,76,139,79,62,123,11,128,91,67,139,16,34,211,235,245,184,116,233,146,187,77,92,146,147,147,3,142,227,220,14,1,66,8,129,68,34, - 193,31,127,252,225,210,75,226,76,82,82,146,39,87,179,87,205,237,219,183,99,202,148,41,200,204,204,4,63,84,137,15,154,36,60,60,60,148,55,178, - 0,171,17,36,151,203,33,22,139,137,72,36,34,124,213,30,33,132,248,90,231,206,48,12,86,175,94,141,249,243,231,99,218,180,105,88,186,116,41,154, - 55,111,110,95,47,18,137,80,81,81,129,176,176,48,132,133,133,85,51,16,239,134,176,58,36,216,108,193,146,102,61,35,70,61,254,114,18,137,76,12, - 192,91,157,143,191,1,235,88,91,53,96,89,150,48,12,131,140,140,12,151,122,132,16,104,180,85,88,180,252,67,20,5,100,160,207,27,137,72,77,108, - 201,184,211,116,62,59,31,127,178,72,1,142,194,26,4,194,1,28,64,65,193,81,14,5,121,89,120,103,214,135,62,127,125,196,98,49,46,95,190,108, - 79,23,239,25,230,13,35,71,175,65,114,114,178,215,123,73,34,145,188,251,211,79,63,73,87,175,94,141,181,107,215,130,16,2,153,76,6,165,82,137, - 208,208,80,68,68,68,216,167,248,248,120,242,205,55,223,72,154,55,111,254,46,0,151,134,22,195,208,16,69,221,180,6,67,123,188,1,0,24,250,6, - 197,237,75,115,90,48,101,111,135,248,154,71,103,228,242,128,200,221,7,46,170,166,77,155,134,5,159,14,6,195,48,80,171,213,132,82,74,0,10,150, - 21,225,216,177,99,248,250,235,175,241,252,243,207,227,242,229,203,76,157,58,117,44,147,38,77,10,95,176,96,193,243,0,60,14,34,66,8,105,208,172, - 89,179,131,135,15,31,14,208,104,52,224,56,14,219,182,109,83,244,232,209,227,0,33,164,147,191,198,86,114,114,242,230,195,135,15,119,80,169,84,40, - 47,47,71,69,69,5,76,38,19,88,150,69,82,82,18,62,248,224,3,50,112,224,192,151,198,142,29,171,147,203,229,176,117,132,156,236,74,203,249,81, - 91,188,228,243,80,74,173,247,15,229,104,181,223,210,194,108,188,242,154,111,253,31,39,36,36,188,176,97,195,134,64,126,62,54,54,214,254,49,116,54, - 10,248,201,195,189,68,0,48,137,137,137,227,191,255,254,123,187,102,100,100,36,68,34,17,196,98,49,68,34,17,24,134,193,129,3,7,48,239,221,25, - 8,83,197,98,209,146,47,188,166,51,42,42,106,105,223,190,125,159,90,177,226,175,87,119,179,186,117,145,218,161,45,162,34,131,17,25,22,100,61,79, - 28,193,153,204,107,30,181,108,134,1,147,144,144,240,76,122,122,186,61,157,44,203,218,243,10,88,11,207,188,23,223,96,48,160,117,235,214,94,159,35, - 177,88,220,234,202,149,43,246,151,151,47,231,211,83,82,109,233,28,207,27,194,0,16,30,30,94,77,79,44,22,35,253,215,149,206,121,188,107,77,127, - 175,187,179,230,181,107,215,48,119,238,220,106,215,157,247,110,197,197,197,97,241,226,197,94,207,167,19,109,0,168,28,230,13,0,164,14,191,69,176,142, - 48,225,188,29,191,92,12,160,133,109,157,5,128,26,64,168,11,61,119,58,197,176,118,174,173,114,218,222,249,56,53,16,1,192,214,173,91,249,167,184, - 75,106,106,234,62,219,255,101,50,153,44,71,161,80,196,0,80,111,219,182,13,207,63,255,60,108,174,213,1,17,17,17,53,220,233,26,141,230,180,94, - 175,127,131,82,106,43,105,217,155,104,50,165,165,165,220,206,157,59,153,85,131,123,193,64,129,150,111,205,67,239,126,253,176,61,78,10,22,192,35,23, - 138,161,80,40,68,98,177,216,196,95,12,254,194,56,198,110,81,167,102,159,132,16,54,64,36,66,187,131,91,49,229,224,86,60,162,148,162,36,125,45, - 212,135,246,131,97,8,58,43,35,49,117,212,78,60,26,34,131,84,175,1,195,48,53,140,75,71,205,75,151,46,61,25,28,28,60,207,233,4,251,194, - 85,0,239,187,210,180,165,19,148,82,52,111,222,28,132,16,187,183,192,241,5,228,56,157,62,125,186,198,1,60,105,2,128,82,169,132,82,169,196,158, - 61,123,236,219,116,239,222,29,58,157,14,225,225,225,62,105,22,21,21,209,155,55,111,146,85,171,86,65,44,22,35,34,34,2,10,133,130,172,92,185, - 114,134,68,34,137,215,233,116,156,193,96,128,84,42,93,196,123,183,68,34,81,85,121,121,121,132,59,77,150,101,49,113,226,68,188,254,250,235,88,186, - 116,41,38,76,152,0,231,245,58,157,14,145,145,145,118,99,203,249,1,116,214,244,70,72,2,169,35,13,19,255,250,220,199,13,235,213,109,29,140,178, - 124,3,190,157,124,129,170,111,25,215,120,74,103,121,121,57,58,118,236,88,227,26,137,68,34,48,34,128,11,173,192,216,133,245,209,167,117,3,94,19, - 110,53,57,138,63,79,109,199,185,179,187,192,89,56,88,56,10,74,45,224,204,64,198,206,163,15,221,186,122,51,142,130,218,199,23,144,149,87,154,187, - 68,202,26,2,216,180,183,88,255,169,183,188,139,68,34,232,116,58,252,244,211,79,184,112,225,2,182,109,219,6,173,86,139,200,200,72,132,134,134,162, - 109,219,182,24,59,118,44,146,147,107,126,187,157,53,41,165,43,114,114,114,90,118,236,216,145,148,149,149,161,172,172,12,90,173,22,22,139,5,102,179, - 25,34,145,8,1,1,1,144,203,229,136,142,142,134,78,167,163,122,189,126,133,59,77,142,35,229,154,43,211,47,254,154,62,253,145,161,111,80,172,159, - 79,80,47,81,166,217,125,50,104,252,166,131,83,123,2,160,156,237,173,195,0,212,100,225,138,95,159,241,209,75,158,210,105,245,38,114,56,124,248,16, - 222,122,235,45,232,245,122,155,65,9,48,140,8,39,78,156,192,23,95,124,129,113,227,198,34,49,49,1,102,179,133,84,84,84,88,58,118,236,40,253, - 242,203,47,187,195,102,104,185,58,159,14,70,86,132,86,171,133,90,109,141,161,151,74,165,88,191,126,125,100,255,254,253,247,19,66,58,187,51,182,92, - 105,6,5,5,37,177,44,139,63,254,248,3,95,126,249,37,118,239,222,141,130,130,130,219,177,177,177,33,93,186,116,97,94,121,229,21,180,108,217,18, - 223,126,251,173,203,225,183,156,243,158,125,233,0,178,47,31,4,199,89,189,171,214,201,245,255,238,74,64,206,233,172,170,170,210,157,62,125,58,112,217, - 178,101,136,138,138,66,237,218,181,161,80,40,16,16,16,80,237,35,235,248,225,245,246,108,106,181,90,93,118,118,118,224,15,63,252,128,136,136,8,36, - 39,39,67,161,80,64,42,149,66,36,18,129,16,130,85,171,86,97,205,172,81,200,206,60,139,65,169,53,195,4,156,53,21,10,197,83,43,86,172,168, - 230,2,137,14,11,131,72,204,128,21,19,132,117,31,12,0,184,189,103,163,219,222,33,157,52,137,90,173,214,29,59,118,44,240,228,201,147,224,56,14, - 201,201,201,208,104,52,8,14,14,182,231,127,231,206,157,24,56,112,32,86,175,94,141,246,237,219,123,205,59,199,113,220,233,211,167,25,127,206,167,183, - 188,87,85,85,233,50,50,50,2,191,255,254,123,132,133,133,33,62,62,222,238,113,227,141,163,249,159,207,170,166,17,64,106,221,181,166,191,215,221,89, - 115,240,224,193,168,87,175,30,130,131,131,161,84,42,237,218,158,52,221,216,34,60,42,66,200,207,14,199,239,103,171,93,179,255,186,219,206,246,111,231, - 25,51,102,180,78,75,75,155,219,190,125,251,31,14,31,62,188,198,157,158,59,157,25,51,102,52,73,75,75,155,235,184,189,139,227,212,192,110,116,164, - 166,166,18,91,38,9,33,164,118,171,86,173,78,236,217,179,39,60,40,40,200,190,241,141,27,55,80,86,86,134,160,160,160,224,143,63,254,56,184,75, - 151,46,136,142,142,182,223,44,151,46,93,74,105,208,160,65,5,0,103,191,45,199,48,12,30,125,244,81,252,105,187,175,122,247,235,135,248,248,120,240, - 65,30,1,1,1,120,233,165,151,200,148,41,83,68,188,55,131,82,10,173,86,139,90,181,106,185,245,217,242,23,170,137,182,24,27,187,118,1,67,0, - 77,198,81,72,164,4,12,75,240,48,45,193,47,221,30,3,3,10,195,233,195,0,220,190,131,248,99,158,2,112,95,2,132,40,165,200,202,202,242,201, - 163,101,195,171,185,239,78,147,247,104,28,62,124,24,22,75,181,184,98,79,154,148,97,24,40,149,74,196,196,196,64,46,151,67,161,80,144,31,126,248, - 225,205,218,181,107,215,154,50,101,10,83,81,81,193,60,250,232,163,24,50,100,136,136,175,226,108,210,164,137,231,76,16,130,125,251,246,225,203,47,191, - 196,132,9,19,92,122,180,248,96,201,224,224,59,106,11,81,141,160,68,210,33,60,41,224,231,231,62,107,28,18,145,24,128,189,223,229,97,231,103,185, - 151,212,5,230,143,76,21,216,234,113,223,160,32,156,58,245,87,152,29,127,127,157,61,127,26,115,151,205,209,140,65,0,0,32,0,73,68,65,84,79, - 193,200,5,41,224,53,175,108,149,226,82,134,225,182,254,54,150,186,210,226,0,24,205,38,104,42,181,246,170,71,139,197,130,179,123,127,127,232,234,239, - 151,154,252,252,195,106,49,0,232,246,110,116,220,173,214,144,207,215,53,232,18,46,57,182,183,212,120,204,149,46,159,38,145,72,132,113,227,198,33,45, - 45,13,79,61,245,20,182,109,219,134,183,223,126,27,207,62,251,172,125,59,231,224,83,119,152,76,166,175,198,140,25,51,97,253,250,245,13,223,120,227, - 13,134,247,104,41,20,10,16,66,160,211,233,160,215,235,161,213,106,145,153,153,201,61,247,220,115,23,13,6,195,87,238,244,204,68,126,70,33,211,108, - 171,27,207,212,171,186,246,97,80,199,182,201,90,34,111,85,62,184,65,15,218,119,92,114,24,40,5,229,0,142,2,122,125,21,94,122,105,178,87,111, - 30,103,177,208,43,23,246,34,243,194,121,4,4,4,160,180,180,20,252,227,44,18,137,240,254,236,217,120,126,194,4,36,38,38,0,212,234,73,253,225, - 135,31,216,22,45,90,192,96,48,52,115,167,235,104,100,233,116,58,156,62,125,26,93,187,118,69,78,78,14,206,159,63,143,135,30,122,8,43,87,174, - 84,141,28,57,210,163,177,229,204,217,179,103,103,180,104,209,98,97,101,101,101,105,101,101,229,66,0,107,40,165,101,132,144,198,89,89,89,139,183,111, - 223,222,233,157,119,222,97,109,158,44,30,215,102,2,165,48,153,204,208,106,245,30,13,44,126,158,82,111,225,73,246,188,211,134,13,27,162,127,255,254, - 16,139,197,80,40,20,8,12,12,172,86,109,230,108,32,120,128,2,224,8,33,136,141,141,69,223,190,125,33,145,72,170,105,242,247,97,223,190,125,49, - 233,189,183,240,213,164,110,248,114,204,67,232,241,126,129,199,116,106,52,154,202,223,126,251,77,254,250,132,9,104,81,191,62,34,131,131,145,24,173,130, - 92,38,133,196,49,77,196,251,187,149,82,74,9,33,28,203,178,104,218,180,41,10,10,10,112,237,218,53,92,187,118,13,12,195,160,99,199,142,224,171, - 206,47,95,190,140,247,222,123,15,122,189,222,231,112,6,111,231,115,249,242,229,248,246,219,111,193,48,12,102,207,174,49,122,90,181,164,194,118,62,27, - 53,106,132,199,30,123,172,218,249,148,203,229,118,163,8,0,114,142,85,218,175,87,92,92,156,95,154,59,142,223,192,178,157,191,65,111,224,80,161,49, - 85,219,161,86,100,48,14,126,255,134,95,233,252,234,171,175,80,94,94,14,150,101,171,121,179,120,39,74,66,66,2,190,252,242,75,151,98,142,182,136, - 203,131,121,48,104,220,108,199,223,92,178,180,180,180,185,206,251,123,211,115,92,239,180,191,193,201,56,115,123,19,187,172,58,148,201,100,51,127,251,237, - 183,240,242,242,114,92,190,124,25,12,195,216,235,212,69,34,17,140,70,35,174,92,185,130,176,176,48,20,22,22,66,38,147,129,101,89,24,12,6,0, - 168,17,112,75,41,165,114,185,28,148,82,76,42,178,134,8,253,26,43,65,54,128,212,34,123,96,49,44,22,11,54,108,216,128,192,192,64,4,5,5, - 217,127,189,85,35,157,189,150,133,2,49,1,115,120,31,8,3,48,4,32,44,192,48,20,12,177,45,39,128,50,34,204,163,142,51,62,4,198,123,12, - 128,119,210,178,123,159,92,121,178,156,255,223,187,119,175,47,233,3,165,20,245,234,213,67,96,96,160,125,218,190,125,187,125,155,238,221,187,195,98,177, - 32,34,34,194,171,38,165,148,74,36,18,112,28,135,168,168,40,136,197,98,178,114,229,202,25,117,234,212,169,245,218,107,175,49,44,203,226,212,169,83, - 56,119,238,28,146,147,147,125,142,217,42,43,43,187,53,99,198,12,203,140,25,214,54,20,77,154,52,65,89,89,89,33,191,190,162,162,162,164,87,175, - 94,213,226,54,138,139,139,75,188,158,0,23,4,38,146,70,177,141,20,219,95,88,218,68,33,15,17,99,195,156,43,56,184,50,255,27,125,1,150,2, - 184,68,61,12,90,76,8,65,69,69,5,58,117,234,4,190,5,164,88,44,6,17,81,4,212,175,192,11,95,55,6,175,121,105,11,240,237,103,203,48, - 108,216,48,29,165,149,249,174,244,56,142,131,217,104,134,70,167,67,165,90,99,247,14,21,222,44,8,125,99,202,171,226,5,47,61,13,0,152,242,233, - 18,168,151,254,245,34,219,248,250,200,168,193,11,126,152,14,96,160,167,188,86,86,86,66,167,211,161,110,221,186,56,124,248,48,212,106,53,250,244,233, - 3,66,136,189,133,168,175,80,74,13,132,144,14,253,250,245,59,241,201,39,159,212,109,220,184,49,169,170,170,130,70,163,129,227,239,217,179,103,233,154, - 53,107,174,106,52,154,71,41,165,6,119,122,219,243,150,103,245,142,123,102,253,238,83,108,191,168,122,23,131,243,110,215,53,151,228,201,170,42,180,153, - 58,11,61,7,106,1,44,224,64,205,28,44,182,106,47,111,112,148,194,104,50,131,82,14,217,217,217,200,204,188,128,71,30,121,4,183,111,223,134,132, - 82,76,191,114,5,77,2,100,168,148,72,65,109,85,137,79,63,253,180,89,171,213,50,132,184,255,2,215,170,85,235,115,222,200,202,200,200,192,232,209, - 163,13,197,197,197,82,0,120,234,169,167,12,171,86,173,146,214,171,87,15,43,87,174,84,13,25,50,36,29,64,83,31,207,233,106,0,171,157,151,71, - 68,68,44,186,113,227,70,23,199,152,31,179,217,62,4,171,194,165,22,7,152,76,38,104,181,122,148,151,171,97,48,154,108,239,76,14,22,139,217,246, - 203,193,108,123,143,74,37,162,160,86,205,106,85,82,74,193,16,82,118,242,236,173,4,87,186,188,225,195,7,148,243,6,129,175,222,44,23,88,136,173, - 149,89,68,68,4,196,98,49,86,175,94,141,51,135,182,67,202,82,88,204,38,152,77,70,88,76,6,136,89,22,187,79,93,67,207,70,65,222,52,65, - 8,161,145,145,145,72,109,223,30,253,218,183,183,54,111,19,137,16,40,147,65,33,9,176,122,178,0,80,11,227,165,40,109,135,227,211,25,29,29,141, - 147,39,79,98,210,164,73,152,63,127,62,228,114,185,189,245,243,133,11,23,176,110,221,58,244,236,217,211,175,106,46,199,243,249,213,87,95,97,243,230, - 205,120,249,229,151,49,102,204,24,172,94,189,26,151,47,95,134,197,98,177,14,232,236,25,11,127,239,242,213,123,82,169,180,154,247,137,55,0,253,189, - 70,142,154,79,15,170,133,205,135,214,128,128,224,232,247,175,86,243,60,125,177,246,128,223,154,239,188,243,78,181,116,250,226,205,242,21,39,175,147,47, - 219,241,177,32,218,233,211,167,207,36,132,252,60,125,250,244,153,243,230,205,251,211,23,61,55,235,249,2,123,170,195,50,215,49,39,112,99,104,41,20, - 138,71,2,3,3,113,249,242,101,244,233,211,199,80,82,82,114,81,44,22,63,84,92,92,44,43,44,44,132,70,163,169,156,61,123,246,53,0,242,118, - 237,218,213,219,189,123,55,114,114,114,176,106,213,42,0,216,232,74,147,97,24,112,28,103,191,41,156,139,175,44,203,226,200,145,35,56,114,164,122,232, - 215,178,101,203,188,126,48,134,252,180,5,167,78,157,178,127,28,121,43,218,241,151,101,89,4,4,4,0,9,46,223,55,46,241,22,24,239,45,0,222, - 21,190,198,126,57,122,35,188,145,151,151,231,118,255,35,71,142,216,61,90,190,104,178,44,11,139,197,2,185,92,78,36,18,9,145,72,36,241,188,145, - 197,178,172,253,129,145,201,100,144,201,100,213,74,169,30,210,215,213,211,250,194,194,66,191,186,113,32,173,136,88,81,130,161,4,40,168,186,129,189,124, - 172,152,178,54,137,10,137,146,238,120,102,81,99,187,145,117,104,101,254,23,250,2,124,4,224,154,167,152,50,210,138,136,99,16,41,61,123,225,52,50, - 50,50,236,121,42,45,43,193,115,51,159,192,200,197,13,237,70,86,92,85,55,188,245,213,243,104,214,172,25,88,150,245,216,13,129,209,100,130,86,99, - 128,186,82,139,119,231,217,134,222,124,23,199,0,28,235,240,194,36,76,236,221,179,27,252,172,166,230,211,22,21,21,133,125,251,246,129,16,130,244,244, - 116,132,132,132,160,119,239,222,8,14,14,198,244,233,211,241,228,147,79,250,245,50,163,148,150,19,66,58,188,242,202,43,39,62,252,240,195,196,132,132, - 4,24,12,6,24,141,70,24,12,6,100,101,101,97,205,154,53,57,26,141,166,3,165,180,220,155,222,246,188,229,89,63,238,159,114,179,199,240,33,218, - 11,5,191,34,63,191,4,102,115,30,56,139,25,70,179,197,234,225,51,155,97,54,91,32,145,176,193,31,206,121,117,39,7,10,134,33,134,161,67,135, - 62,238,172,199,81,10,202,113,136,139,141,68,230,217,237,40,47,43,194,207,27,142,66,171,213,0,96,192,190,216,15,231,127,254,18,242,115,181,97,14, - 8,192,31,231,50,73,118,118,78,128,197,194,225,161,218,129,49,238,210,25,26,26,218,184,188,188,28,103,207,158,197,216,177,99,243,75,74,74,206,3, - 232,14,0,37,37,37,7,71,143,30,221,120,197,138,21,49,181,107,215,70,96,96,160,87,151,43,33,36,16,192,68,0,189,96,141,3,225,41,5,48, - 91,165,82,201,50,50,50,106,180,180,219,191,127,63,0,184,244,98,82,216,60,90,58,29,138,74,110,227,217,23,222,180,45,183,253,165,213,183,253,207, - 203,8,0,128,226,130,44,60,253,236,36,153,167,244,114,28,231,242,67,232,71,140,142,245,184,86,79,17,127,14,16,24,24,104,173,126,219,180,6,91, - 63,122,1,176,24,65,77,90,192,168,1,140,149,224,12,26,16,137,28,48,105,61,234,218,244,104,96,96,32,2,229,114,68,133,134,90,59,129,100,89, - 136,197,34,112,38,128,88,172,199,165,28,192,121,237,24,196,154,214,200,200,72,112,28,7,185,92,142,236,236,108,76,156,56,17,70,163,17,131,6,13, - 130,193,96,128,78,167,131,86,171,69,157,58,117,160,209,120,109,71,97,199,241,124,126,249,229,151,8,11,11,195,165,75,151,208,181,107,87,156,60,121, - 18,173,91,91,219,40,84,85,85,161,184,184,24,214,24,67,215,105,228,207,39,199,113,246,243,201,27,91,142,85,124,0,252,190,70,206,154,214,246,1, - 168,113,221,39,143,233,238,183,230,188,121,243,80,84,84,84,195,147,197,255,31,23,23,135,47,190,240,30,155,231,230,120,188,247,200,85,203,235,84,167, - 237,0,107,172,213,9,0,250,121,243,230,253,57,111,222,188,126,132,144,159,231,205,155,215,207,105,59,111,58,206,235,139,124,77,179,221,208,178,185,234, - 186,56,174,228,79,116,120,120,56,155,152,152,200,4,7,7,163,172,172,12,42,149,138,22,21,21,13,87,40,20,179,126,248,225,135,122,149,149,149,184, - 112,225,2,22,45,90,116,12,192,66,87,7,226,13,173,109,42,155,235,216,230,201,114,156,239,223,191,63,106,215,174,93,205,155,37,151,203,61,222,60, - 252,58,222,35,196,178,44,26,52,104,32,191,122,245,170,86,34,145,32,62,62,94,158,159,159,175,229,251,129,242,7,111,129,241,222,2,224,157,211,73, - 8,65,155,54,109,170,121,176,28,127,29,255,223,188,121,51,224,165,234,144,215,108,220,184,177,253,124,5,5,5,241,251,2,0,250,244,233,3,142,227, - 16,25,25,233,147,38,111,212,218,2,224,161,211,233,56,181,90,205,100,100,100,64,42,149,34,40,40,200,30,171,19,16,16,96,247,102,254,157,4,222, - 198,103,221,158,139,127,78,87,105,193,193,181,183,190,32,132,188,136,186,144,132,75,217,159,199,47,106,20,23,18,45,197,190,21,55,113,112,69,254,114, - 125,33,22,81,74,175,250,162,249,200,51,178,160,15,127,121,26,25,107,43,17,42,142,2,43,98,81,65,242,240,220,55,245,193,107,94,220,68,81,25, - 118,5,159,22,124,10,199,192,92,87,80,202,193,96,50,65,171,213,162,178,178,18,0,144,245,199,134,106,219,24,245,110,29,108,94,225,95,176,165,165, - 165,216,190,125,59,126,253,245,87,251,75,220,217,168,246,213,224,162,148,22,17,66,58,78,157,58,245,232,251,239,191,31,27,30,30,14,163,209,136,27, - 55,110,224,155,111,190,185,169,209,104,58,82,74,125,126,193,128,2,38,147,25,58,141,30,229,21,106,204,154,243,157,187,45,25,0,40,45,204,68,255, - 1,79,74,93,109,64,41,133,209,104,70,114,66,36,46,103,158,193,152,103,94,251,235,32,14,199,163,213,119,66,225,173,11,24,247,204,100,183,165,181, - 243,231,207,191,218,186,117,235,57,106,181,186,76,163,209,60,9,96,129,195,106,77,73,73,73,167,1,3,6,124,18,30,30,222,170,176,176,112,166,151, - 28,3,192,244,236,236,236,153,73,73,73,213,22,234,245,122,36,37,37,53,40,44,44,28,213,185,115,231,183,0,132,59,172,14,2,176,3,192,231,174, - 4,41,229,236,85,135,149,149,90,4,135,214,66,222,181,125,94,19,34,97,117,160,156,251,106,68,98,235,114,192,149,23,203,209,155,229,199,253,67,99, - 98,172,54,45,255,193,126,252,137,49,120,124,98,26,20,98,96,238,211,29,80,39,20,128,60,28,146,206,111,128,132,38,89,119,156,184,197,39,253,105, - 95,126,137,83,182,247,113,188,74,133,169,195,135,131,154,128,195,231,206,97,237,111,191,97,120,215,174,80,4,184,12,121,115,155,119,137,68,130,172,172, - 44,28,62,124,24,141,26,53,194,229,203,151,171,117,67,65,41,245,57,255,206,231,51,61,61,29,185,185,185,96,24,6,91,182,108,65,94,94,30,26, - 54,108,8,157,78,7,157,78,135,221,187,119,163,109,219,182,110,245,40,165,84,165,82,129,82,90,45,168,222,85,64,189,63,215,200,149,38,207,157,94, - 119,71,205,57,115,230,184,108,0,224,139,166,43,91,196,5,25,168,238,77,2,31,47,197,27,70,206,243,0,194,248,101,211,167,79,159,233,235,126,142, - 243,188,71,204,73,215,43,34,192,90,39,234,184,176,180,180,244,232,209,163,71,83,148,74,37,50,51,51,165,193,193,193,41,182,229,96,24,6,233,233, - 233,65,125,251,246,221,185,96,193,130,120,142,227,80,80,80,128,215,95,127,189,210,108,54,143,160,148,154,93,29,136,183,100,61,177,101,75,205,135,109, - 211,166,77,62,85,129,240,134,148,72,36,66,88,88,152,86,171,213,66,161,80,32,44,44,76,171,209,104,160,84,42,249,186,98,134,16,34,245,84,237, - 193,227,67,96,124,181,0,120,95,56,119,238,156,79,219,49,12,227,182,164,227,76,118,182,235,238,140,248,216,40,190,207,60,95,53,109,165,60,202,27, - 126,10,133,2,225,225,225,144,201,100,144,203,229,213,140,44,153,76,230,245,193,241,214,33,169,92,46,63,174,84,42,67,29,171,235,212,106,117,89,73, - 73,201,35,174,244,20,97,146,97,143,79,74,2,0,132,68,73,254,243,243,194,235,128,17,133,253,166,37,183,142,111,172,68,73,158,30,219,23,95,191, - 164,47,196,18,0,62,185,16,171,107,230,34,244,86,39,68,132,69,34,47,226,71,240,154,151,54,139,176,250,235,117,72,73,73,113,44,165,185,245,146, - 113,160,48,27,205,208,106,117,168,84,123,47,181,251,139,193,96,128,76,38,195,154,53,107,208,161,67,7,180,107,215,14,128,127,177,89,174,160,148,230, - 18,66,186,44,92,184,240,216,199,31,127,28,86,89,89,137,111,191,253,182,188,178,178,178,11,165,52,215,47,45,142,194,100,52,66,163,211,163,170,210, - 122,14,174,252,185,193,203,94,30,180,204,38,60,250,72,61,20,21,151,64,161,12,195,205,107,7,188,238,199,66,99,117,117,184,211,165,116,13,0,123, - 131,6,23,65,191,87,0,248,252,82,5,208,54,41,41,9,249,249,213,107,148,175,95,191,14,139,197,162,167,214,126,178,158,113,56,30,75,41,245,232, - 135,161,148,90,189,163,90,61,42,43,173,222,21,93,85,177,31,73,114,15,111,108,184,139,201,186,147,123,136,16,2,177,88,12,150,101,241,210,75,47, - 225,236,153,51,232,30,91,129,58,49,65,160,21,121,144,116,123,7,191,23,201,177,224,19,151,141,86,61,178,206,33,4,98,193,186,117,46,215,93,25, - 232,177,214,221,14,159,247,139,23,47,66,46,151,195,98,177,212,248,222,248,155,127,199,243,57,106,212,40,140,29,59,22,203,151,47,135,82,169,68,84, - 84,20,118,236,216,129,130,130,2,136,68,34,212,170,85,203,167,130,42,239,37,227,175,209,197,171,231,176,235,240,47,184,158,123,13,55,243,115,252,74, - 159,59,77,30,254,186,255,184,235,52,158,232,233,177,235,61,183,154,239,188,243,14,10,11,11,171,121,178,28,223,75,238,60,90,206,182,136,19,197,78, - 177,80,252,188,193,201,232,113,158,119,222,30,0,10,1,176,94,246,115,158,47,158,55,111,222,94,222,19,102,211,101,169,151,248,44,192,125,247,14,105, - 3,7,14,28,176,104,209,34,85,64,64,128,189,5,210,244,233,211,49,117,234,84,212,173,91,23,42,149,42,46,52,52,20,37,37,37,152,63,127,62, - 178,179,179,159,167,46,58,218,227,225,63,76,157,174,170,33,149,254,85,96,229,61,91,0,48,126,252,248,26,30,45,254,2,121,194,100,50,33,34,34, - 2,26,141,6,44,203,98,208,160,65,236,31,127,252,97,233,221,187,55,6,15,30,204,158,57,115,198,146,154,154,10,150,101,209,173,91,183,138,31,127, - 252,113,10,33,228,35,111,198,214,189,12,140,231,111,50,95,3,42,125,49,46,61,105,18,66,160,209,104,32,18,137,236,129,242,190,104,242,85,135,142, - 15,32,195,48,8,13,13,181,151,80,120,143,22,111,104,121,211,245,214,33,169,66,161,8,206,204,204,172,199,55,188,40,46,46,70,183,110,221,220,26, - 72,149,133,198,109,71,214,230,143,104,63,60,6,221,158,141,7,128,255,252,185,167,20,237,158,180,150,164,191,125,41,147,211,231,73,141,1,1,248,88, - 167,211,77,38,132,132,200,229,242,153,148,82,177,78,167,123,149,186,232,128,210,89,115,207,178,223,112,96,79,41,38,127,111,13,218,223,56,251,26,38, - 140,152,131,198,141,27,219,95,74,182,23,164,251,136,16,14,48,154,45,168,212,234,80,169,245,189,234,193,27,252,243,176,116,233,82,156,63,127,30,58, - 157,14,139,23,47,182,55,42,112,52,178,238,212,224,162,148,102,61,252,240,195,92,159,62,125,112,244,232,81,200,100,50,19,165,212,239,254,175,56,202, - 193,104,54,67,167,213,162,178,170,202,223,221,157,211,4,163,209,12,150,161,48,26,77,0,40,244,218,82,159,119,191,171,131,251,135,221,170,62,127,254, - 60,12,6,3,222,123,239,61,203,137,19,39,246,2,120,1,176,247,227,52,234,177,199,30,155,157,154,154,26,74,8,153,76,41,253,206,157,32,165,20, - 38,179,205,104,191,203,243,232,136,99,141,128,171,152,172,59,233,102,197,241,195,202,113,28,158,127,238,57,244,136,173,192,224,86,42,84,221,186,4,69, - 136,10,36,52,25,11,62,217,134,63,175,250,28,138,73,1,160,119,231,129,104,222,168,102,247,96,29,187,91,203,100,7,119,31,71,65,241,77,159,211, - 9,88,243,94,85,85,229,214,115,229,143,71,139,135,63,143,211,167,79,199,83,79,61,133,170,170,42,152,76,38,108,219,182,13,43,86,172,64,70,70, - 6,44,22,11,250,247,239,15,150,101,61,158,100,231,107,244,211,142,181,184,173,46,133,84,34,69,105,89,49,174,231,93,67,116,132,219,154,113,159,52, - 29,191,33,13,83,103,1,0,98,85,33,126,25,90,142,154,31,126,248,97,13,227,253,30,116,217,115,220,203,188,191,251,255,109,184,52,180,40,165,215, - 8,33,237,134,15,31,62,29,214,250,77,0,40,7,176,110,231,206,157,3,163,162,162,186,182,111,223,94,36,149,74,113,248,240,97,252,248,227,143,223, - 81,74,215,122,58,144,84,42,213,38,39,39,203,249,151,63,255,32,6,7,7,179,243,231,207,39,203,150,45,115,185,223,150,45,91,188,94,160,242,242, - 114,84,85,85,33,36,36,4,70,163,17,125,250,244,177,156,63,127,30,18,137,4,3,6,12,176,156,59,119,206,126,161,191,254,250,235,120,173,86,251, - 232,175,191,254,218,11,64,103,111,39,136,199,33,48,62,16,62,6,192,187,208,240,217,208,242,181,58,206,157,230,164,73,53,59,236,243,69,83,34,145, - 152,249,158,223,25,134,129,209,104,196,195,15,63,140,194,194,66,251,67,163,84,42,237,70,150,47,134,150,173,250,217,109,135,164,34,145,8,6,131,1, - 157,59,119,6,33,4,75,150,44,241,152,86,77,30,94,95,255,238,149,72,0,221,121,195,168,253,176,24,16,6,56,177,169,16,33,85,13,244,23,42, - 142,54,169,170,170,66,98,98,226,138,70,141,26,169,14,30,60,24,203,207,3,104,233,74,115,243,251,55,135,0,144,184,210,76,9,233,133,118,109,30, - 181,23,18,248,128,115,143,47,96,142,35,129,129,17,136,141,109,0,85,148,14,156,47,193,35,126,48,109,218,180,106,198,20,117,209,243,50,0,159,239, - 57,103,120,45,63,90,201,214,212,0,236,85,94,85,85,186,59,214,1,0,142,163,48,153,76,208,104,245,208,27,238,78,203,87,162,162,162,218,17,66, - 54,57,45,46,5,48,219,67,193,210,126,161,115,114,114,208,187,119,111,252,242,203,47,236,198,141,27,187,111,222,188,249,92,189,122,245,114,134,13,27, - 150,48,97,194,4,89,231,206,157,81,92,92,140,86,173,90,189,11,224,59,119,233,160,182,42,88,173,78,143,170,170,123,239,29,117,229,205,186,155,15, - 35,127,79,190,253,246,91,232,81,171,12,131,90,132,96,197,207,135,48,170,165,28,48,120,12,25,115,9,159,150,136,184,218,168,221,180,93,141,245,1, - 33,214,190,92,107,55,109,7,54,231,178,95,218,206,85,111,206,207,244,157,120,244,196,98,49,190,253,246,91,44,91,182,12,109,218,180,65,112,112,176, - 221,200,58,115,230,12,62,248,224,3,4,4,4,96,242,228,201,208,233,116,62,53,17,229,175,209,230,93,235,81,81,89,14,134,48,40,45,47,129,78, - 175,197,180,255,120,237,231,216,163,166,227,59,226,218,174,121,0,128,13,59,253,254,196,217,53,103,206,156,137,252,252,252,106,158,172,187,137,203,250,183, - 227,182,195,82,74,233,53,0,207,59,47,39,132,4,189,251,238,187,61,249,113,139,62,249,228,19,132,135,135,119,136,136,136,248,211,96,48,20,87,85, - 85,77,229,141,16,66,72,15,106,235,107,35,63,63,223,101,16,105,80,80,144,177,103,207,158,226,90,181,106,85,107,109,168,84,42,237,219,56,62,240, - 142,154,252,58,179,217,140,105,211,166,97,238,220,185,72,76,76,68,106,106,42,250,245,235,7,66,8,250,244,233,131,212,212,191,170,114,67,67,67,37, - 191,252,242,203,99,12,195,156,115,167,233,10,62,48,222,100,50,249,20,0,239,172,201,223,108,147,38,77,194,220,185,115,49,115,166,231,80,15,91,211, - 215,106,79,248,223,161,89,82,82,242,157,227,122,165,82,185,100,240,224,193,162,156,156,156,106,198,149,227,228,226,197,84,77,211,91,135,164,44,203,34, - 58,58,26,239,191,255,62,34,34,34,16,19,19,99,239,120,211,149,38,165,244,22,33,100,252,250,119,175,124,3,155,177,21,16,40,66,101,169,17,155, - 62,200,206,77,144,52,145,171,213,106,249,238,221,187,97,52,26,213,38,147,41,74,173,86,131,159,119,167,153,156,156,92,89,188,39,49,252,8,110,192, - 81,115,231,194,34,60,156,168,195,23,95,124,97,79,119,96,96,32,230,204,153,3,56,121,74,28,53,45,148,203,248,48,237,173,142,223,174,218,44,150, - 73,129,35,251,55,160,226,118,245,234,36,189,241,175,166,212,210,135,187,195,112,106,119,141,235,230,234,186,3,86,99,122,214,172,89,152,53,107,86,141, - 125,28,89,186,180,102,239,19,190,220,243,142,248,98,108,185,212,228,40,81,40,195,16,160,140,69,74,147,48,112,174,35,11,124,210,228,227,148,116,58, - 61,52,26,159,66,35,125,79,103,117,78,28,63,126,124,64,68,68,4,114,115,115,85,98,177,120,128,227,74,173,86,139,228,228,228,6,0,236,67,89, - 185,211,156,52,105,146,254,205,55,223,148,141,24,49,2,131,7,15,198,136,17,35,100,18,137,164,190,213,59,103,68,110,110,46,118,239,222,141,162,162, - 162,11,158,210,201,81,74,228,138,80,4,40,107,33,165,105,40,56,206,191,243,232,46,157,142,94,113,71,111,150,63,70,150,187,251,19,0,78,236,222, - 132,183,95,109,138,239,182,30,195,162,227,64,243,208,66,164,168,138,192,21,93,192,235,163,90,99,193,247,39,1,0,251,247,121,214,132,53,12,200,109, - 26,116,90,143,131,104,184,77,167,99,65,149,247,92,57,30,199,91,140,150,171,235,206,107,174,89,179,6,87,174,92,1,33,4,106,181,26,183,110,221, - 194,161,67,135,176,118,237,90,12,29,58,20,128,53,22,118,228,200,145,140,39,77,231,107,52,229,185,255,195,155,11,94,3,5,69,195,122,41,152,62, - 113,22,218,52,111,127,199,121,119,215,109,135,55,111,150,39,205,133,11,23,222,209,189,244,160,226,215,152,117,0,16,25,25,57,226,177,199,30,131,94, - 175,135,74,165,66,118,118,54,24,134,169,11,88,171,240,226,226,226,214,1,168,235,171,30,203,178,48,155,205,246,216,31,126,2,128,254,253,251,99,203, - 150,45,94,75,20,49,49,49,72,72,72,192,43,175,188,82,163,149,3,239,61,99,24,6,114,185,28,91,183,110,205,47,45,45,45,245,43,160,23,127, - 5,198,31,60,120,208,231,0,120,71,140,70,99,206,165,75,151,106,45,93,186,148,5,92,127,252,28,217,191,127,191,25,94,134,42,185,31,154,206,240, - 47,26,119,70,150,47,221,8,120,235,144,84,36,18,225,226,197,139,120,251,237,183,65,8,193,134,13,222,99,120,108,113,68,118,99,171,101,106,36,126, - 156,115,149,86,222,52,205,63,93,118,250,70,120,120,248,139,176,182,10,73,59,117,234,84,80,120,120,248,44,126,222,157,166,197,98,185,54,109,226,219, - 161,31,126,49,155,57,130,235,104,153,26,137,141,115,175,97,198,11,239,163,95,159,129,53,90,137,109,220,184,209,192,113,156,219,113,240,206,94,40,94, - 214,34,37,42,172,255,227,29,155,129,16,24,13,53,107,170,3,111,91,131,228,165,15,119,199,224,143,214,98,227,148,225,190,228,61,235,192,129,3,225, - 75,151,46,21,1,222,175,251,129,3,7,204,119,82,237,199,127,112,140,70,35,180,218,59,243,162,80,74,15,207,155,243,102,207,149,171,183,137,9,49, - 224,200,190,13,40,47,115,29,206,32,21,139,176,108,197,143,102,137,152,117,25,116,98,225,56,54,60,50,1,70,139,12,173,90,183,131,197,98,6,231, - 165,91,8,66,0,139,133,130,250,208,39,157,3,159,13,26,52,104,196,226,197,139,83,92,173,244,161,17,76,182,78,167,67,94,94,30,52,26,205,250, - 25,51,102,24,183,109,219,246,204,144,33,67,208,162,69,11,212,170,85,11,183,110,221,66,86,86,22,86,172,88,65,15,29,58,180,30,192,139,158,18, - 68,41,221,148,54,231,205,177,43,190,223,38,101,136,17,71,246,111,64,249,109,151,189,138,216,145,72,196,88,254,221,143,70,137,68,156,233,105,59,126, - 208,248,123,225,201,114,102,192,232,137,24,188,112,17,234,182,233,141,180,249,61,176,124,206,147,248,184,143,4,198,244,81,104,62,116,37,214,188,215,23, - 0,16,235,114,172,134,154,136,69,18,220,112,225,177,42,43,183,6,192,171,213,254,121,58,249,188,3,238,61,87,254,122,180,120,77,106,235,59,175,184, - 184,24,58,157,206,30,159,26,18,242,215,224,8,67,135,14,197,83,79,61,229,213,163,229,120,141,186,60,218,19,199,58,121,188,164,126,165,211,157,161, - 117,47,52,93,221,75,255,249,207,127,0,224,127,202,187,229,183,161,85,81,81,113,134,82,218,140,191,89,170,28,226,5,174,95,191,14,142,227,252,10, - 70,97,24,6,6,131,129,239,28,179,90,191,76,124,112,188,167,7,159,82,106,41,45,45,197,99,143,61,134,78,157,58,217,171,79,28,39,30,163,209, - 136,141,27,55,130,227,56,151,65,214,158,112,8,140,175,132,159,1,240,0,80,88,88,216,187,115,231,206,59,69,34,145,79,163,104,114,28,151,93,80, - 80,80,163,137,251,253,214,116,134,111,45,234,206,200,2,188,191,136,188,117,72,42,18,137,160,84,42,241,211,79,63,33,50,50,210,231,180,241,198,214, - 186,119,174,164,165,207,190,210,217,98,192,90,67,25,50,0,156,160,148,58,119,76,218,199,155,94,110,110,110,215,225,195,135,111,39,132,36,107,15,148, - 133,108,152,157,45,21,155,229,218,119,54,191,167,157,251,222,252,26,69,102,163,209,120,177,176,176,240,73,79,154,191,159,43,252,192,211,250,46,145,178, - 125,0,84,131,63,90,123,99,111,177,33,169,75,164,244,250,198,215,71,36,122,218,39,63,63,191,215,240,225,195,127,241,245,186,155,205,230,107,249,249, - 249,126,93,119,192,106,104,101,102,102,114,207,62,251,108,113,81,81,145,199,124,186,99,250,219,139,62,158,251,238,75,17,125,122,182,107,3,6,48,232, - 221,218,39,148,0,84,36,102,115,166,206,252,244,57,87,27,24,140,198,130,55,255,111,114,216,183,223,109,96,2,2,100,56,118,112,19,42,202,11,93, - 109,106,71,34,22,97,209,146,85,156,136,97,60,143,203,226,152,16,74,43,8,33,29,158,120,226,137,23,241,87,232,132,35,217,112,211,186,218,198,194, - 132,132,132,166,44,203,202,0,188,77,41,189,78,8,249,236,208,161,67,189,0,180,101,89,182,150,197,98,201,131,181,208,179,150,82,250,187,183,52,253, - 126,174,96,66,139,198,170,248,62,61,218,246,6,33,212,96,240,92,214,35,4,20,148,82,137,68,156,121,252,247,155,205,221,111,87,109,4,142,123,222, - 130,248,197,23,95,196,139,47,90,109,72,74,41,150,44,233,132,245,127,28,196,208,230,185,208,127,213,17,36,216,227,173,94,45,157,0,240,127,111,61, - 123,207,210,230,152,119,62,125,247,34,70,139,215,124,230,153,103,208,176,97,67,176,44,139,13,27,54,32,38,38,6,173,91,183,198,232,209,163,177,126, - 253,122,116,236,216,145,47,168,122,44,45,220,143,107,244,223,212,252,95,50,176,120,252,54,180,140,70,227,59,181,107,215,22,7,4,4,164,88,44,22, - 80,74,97,177,88,168,205,168,241,187,21,158,88,44,214,61,244,208,67,196,85,235,4,254,127,165,82,233,182,56,205,178,236,188,228,228,228,25,132,239, - 4,196,134,171,122,118,142,227,56,145,72,52,207,159,244,241,220,109,96,60,165,180,10,128,103,255,238,63,64,211,25,177,88,92,213,168,81,35,123,60, - 146,115,159,40,132,16,200,229,114,143,209,185,222,58,36,173,170,170,186,213,187,119,111,139,227,122,199,14,77,61,97,51,182,166,0,72,130,117,236,169, - 203,30,235,24,60,107,85,1,232,0,0,132,144,104,171,102,165,1,168,188,76,125,24,144,248,142,32,244,122,223,17,207,36,237,45,54,36,1,0,111, - 108,193,67,195,18,74,169,22,192,99,247,37,61,14,92,189,122,213,208,182,109,219,213,106,181,122,226,221,228,127,230,59,75,124,233,18,193,43,231,46, - 150,54,19,179,204,245,65,3,122,196,91,171,222,12,148,56,212,220,58,95,116,254,13,192,136,152,171,25,127,20,248,220,215,29,96,53,182,0,204,189, - 147,116,218,98,183,186,57,45,251,29,128,87,131,202,19,191,159,47,242,219,88,246,134,217,108,206,173,91,215,90,1,225,171,49,97,50,153,60,182,60, - 53,153,76,185,206,222,95,71,254,68,8,102,30,5,172,195,196,149,248,164,169,211,233,74,219,183,111,239,151,219,197,108,54,123,124,135,56,230,189,86, - 173,90,136,141,141,181,255,242,56,47,247,150,78,0,218,224,224,224,106,35,153,80,74,73,219,182,109,249,112,8,166,178,178,146,235,220,185,51,195,178, - 172,197,246,30,245,232,134,187,31,215,200,147,102,108,236,74,87,187,220,149,230,157,166,243,65,193,111,67,139,82,122,3,192,168,123,149,128,130,130,130, - 187,26,115,165,188,188,124,57,220,12,18,44,112,247,148,148,148,68,120,223,202,51,222,58,36,45,40,40,240,216,161,169,55,168,117,108,77,207,99,120, - 252,3,52,93,177,183,200,48,174,198,50,155,209,245,223,166,170,170,42,209,91,183,3,238,24,58,116,232,189,141,252,7,64,173,227,202,248,222,227,176, - 128,87,138,139,139,107,54,225,187,75,138,138,138,238,185,102,105,105,169,219,33,148,238,148,251,145,119,147,201,116,247,99,136,57,113,63,210,249,111,209, - 124,80,16,162,212,4,4,4,92,114,167,70,150,128,128,128,128,192,95,16,0,61,92,173,240,167,69,18,33,196,165,134,39,188,233,11,154,130,166,160, - 41,104,10,154,130,166,160,249,224,105,122,211,246,199,254,248,87,224,42,120,252,94,77,0,122,8,154,130,166,160,41,104,10,154,130,166,160,41,104,254, - 175,78,66,213,161,128,128,128,128,128,128,128,192,125,66,48,180,4,4,4,4,4,4,4,4,238,19,130,161,37,32,32,32,32,32,32,32,112,159,16, - 12,45,1,1,1,1,1,1,1,129,251,132,96,104,9,8,8,8,8,8,8,8,220,39,136,173,245,128,128,128,128,128,128,128,128,128,192,61,70,4, - 0,91,183,110,181,91,91,169,169,169,254,141,160,41,32,32,32,32,32,32,32,112,151,60,168,182,136,125,8,158,7,41,83,2,2,2,2,2,2,2, - 255,62,30,68,91,196,30,163,229,104,73,10,8,8,8,8,8,8,8,252,221,60,136,182,136,221,208,122,16,173,72,1,1,1,1,1,1,129,127,15, - 15,162,45,82,205,163,245,32,90,146,2,2,2,2,2,2,2,255,14,30,68,91,68,104,117,40,32,32,32,32,32,32,32,112,159,16,250,209,18,16, - 16,16,16,16,16,16,184,79,220,87,67,139,16,210,67,208,20,52,5,77,65,83,208,20,52,5,77,65,243,127,21,193,163,37,32,32,32,32,32,32, - 32,112,159,16,12,45,1,1,1,1,1,1,1,129,251,132,96,104,9,8,8,8,8,8,8,8,220,39,4,67,75,64,64,64,64,64,64,64,224,62, - 33,24,90,2,2,2,2,2,2,2,2,247,9,2,192,101,203,1,74,233,46,159,69,238,160,245,129,55,125,65,83,208,20,52,5,77,65,83,208,20, - 52,31,60,77,111,218,254,216,31,255,10,40,165,247,109,2,208,67,208,20,52,5,205,7,78,147,113,152,254,233,154,184,199,154,255,150,107,36,104,10, - 154,255,58,205,7,117,18,221,107,195,77,224,193,130,16,34,2,0,74,169,249,78,214,11,252,59,33,177,19,228,96,202,40,205,77,215,57,173,122,52, - 63,63,63,10,0,88,150,165,42,149,42,7,192,169,255,150,102,108,127,34,103,74,64,115,143,208,26,154,69,69,69,42,149,74,165,41,42,42,82,248, - 163,41,32,32,32,112,47,113,105,104,17,66,234,3,152,9,32,196,97,241,113,74,233,60,167,237,190,7,160,112,88,84,5,224,61,74,233,101,31,142, - 45,177,233,203,108,19,7,64,7,64,15,64,13,192,228,99,30,4,238,19,132,144,246,0,250,217,254,255,153,82,122,196,159,245,15,26,177,177,177,242, - 176,176,176,94,167,78,157,146,158,63,127,30,7,14,28,160,203,150,45,51,222,190,125,123,199,205,155,55,181,255,237,244,221,43,152,164,33,27,107,37, - 37,14,146,136,3,65,18,7,166,209,27,155,102,216,86,137,206,157,59,23,215,172,89,179,85,0,192,48,140,209,100,26,226,212,41,0,0,32,0,73, - 68,65,84,50,61,225,139,38,155,56,120,93,173,164,164,39,37,226,64,144,164,129,159,208,235,155,94,187,91,205,90,143,145,141,33,113,33,131,196,193, - 18,68,119,32,159,20,28,162,188,166,248,236,217,179,113,173,90,181,90,158,145,145,241,76,171,86,173,150,251,170,73,8,233,13,96,186,109,54,141,82, - 186,221,151,253,60,232,17,133,66,49,73,169,84,246,149,201,100,177,102,179,153,104,52,154,155,85,85,85,59,205,102,243,71,148,82,238,14,52,7,134, - 135,135,63,211,176,97,195,250,217,217,217,121,55,111,222,252,30,64,58,128,39,99,99,99,71,37,39,39,199,101,102,102,94,46,45,45,93,78,41,221, - 244,223,74,167,128,128,128,21,119,30,173,183,41,165,163,28,23,16,82,115,64,237,110,221,186,13,216,177,99,135,130,227,56,240,147,92,46,55,3,24, - 231,229,184,17,135,15,31,78,154,56,113,226,224,155,55,111,182,86,171,213,143,0,128,66,161,56,22,21,21,117,98,225,194,133,63,244,234,213,43,23, - 86,131,203,103,8,33,34,177,88,252,116,88,88,88,95,179,217,252,48,165,20,98,177,248,212,237,219,183,183,155,76,166,229,148,82,191,141,55,66,136, - 84,36,18,189,40,147,201,122,155,205,230,102,0,32,18,137,206,234,245,250,237,102,179,249,51,74,169,225,14,52,3,164,82,233,139,193,193,193,61,13, - 6,67,51,0,144,74,165,103,43,42,42,118,26,12,134,207,40,173,81,58,255,219,177,121,170,250,81,74,197,0,192,178,236,192,246,237,219,39,17,66, - 56,66,8,165,148,18,134,97,90,90,44,22,198,182,125,63,66,200,137,127,171,103,75,165,82,205,229,56,46,214,211,54,33,33,33,173,79,157,58,213, - 112,221,186,117,150,175,190,250,170,108,252,248,241,129,19,39,78,20,45,89,178,228,51,0,147,157,183,143,140,140,252,152,97,152,72,95,142,207,113,92, - 113,113,113,241,107,222,183,188,255,4,6,5,15,216,145,254,33,110,87,113,232,220,125,232,120,0,188,161,101,78,73,73,185,97,177,88,6,239,219,183, - 47,164,119,239,222,139,1,248,52,88,170,50,36,100,176,93,179,199,208,113,0,248,188,222,177,166,60,68,49,32,125,249,175,168,180,84,96,112,175,222, - 142,154,118,202,202,202,196,190,104,57,48,253,243,93,234,206,148,2,47,246,12,98,0,220,149,161,21,23,23,183,98,236,216,177,35,154,53,107,38,162, - 148,194,100,50,65,175,215,55,60,114,228,72,151,13,27,54,180,6,240,164,63,122,132,144,231,222,120,227,141,247,103,207,158,29,41,22,139,137,201,100, - 170,183,110,221,186,135,39,76,152,240,202,210,165,75,19,134,13,27,22,196,47,127,251,237,183,219,16,66,234,80,74,63,250,187,211,41,32,32,240,23, - 238,12,45,37,0,16,66,10,0,28,183,45,59,238,188,209,158,61,123,54,139,68,34,222,163,245,72,85,85,85,52,170,123,193,92,145,60,122,244,232, - 246,235,215,175,159,59,108,216,176,124,133,66,241,208,144,33,67,212,132,16,118,221,186,117,45,235,214,173,43,239,223,191,255,232,110,221,186,77,249,229, - 151,95,14,0,40,242,37,35,132,144,148,240,240,240,31,63,248,224,131,164,222,189,123,75,34,35,35,65,41,197,205,155,55,227,182,110,221,218,231,221, - 119,223,157,66,8,25,68,41,61,231,139,158,77,179,141,92,46,95,255,238,187,239,214,234,211,167,143,40,38,38,6,58,157,14,231,207,159,239,177,125, - 251,246,206,75,151,46,157,76,8,25,74,41,61,225,135,230,35,33,33,33,27,190,125,227,141,232,118,79,63,45,10,15,15,7,165,20,69,69,69,61, - 14,174,92,217,229,63,31,124,48,153,16,242,4,165,180,198,249,254,111,34,149,74,153,85,171,86,181,144,74,165,0,0,131,193,128,38,77,154,212,180, - 190,255,165,16,66,226,111,222,188,25,34,145,72,92,174,183,88,44,232,220,185,115,109,137,68,130,143,62,250,200,84,92,92,220,114,241,226,197,167,214, - 172,89,19,249,217,103,159,13,133,11,67,139,97,152,200,220,220,92,151,154,22,139,5,70,163,17,102,179,25,6,131,1,141,27,55,190,231,121,186,83, - 164,82,41,202,170,44,152,183,185,2,32,112,78,60,203,27,68,122,189,126,52,128,124,159,52,37,50,7,77,234,252,222,185,35,77,177,68,130,42,139, - 26,239,223,122,30,180,250,187,204,92,183,110,221,178,201,147,39,167,245,232,209,227,235,185,115,231,206,4,224,171,199,49,9,0,182,157,209,1,64,184, - 143,251,184,69,169,84,54,26,57,114,164,168,168,168,8,98,177,24,70,163,17,249,249,249,104,210,164,9,187,122,245,234,6,254,234,213,171,87,111,124, - 90,90,154,106,219,182,109,198,85,171,86,25,122,246,236,41,30,63,126,124,112,231,206,157,27,199,199,199,51,223,124,243,141,126,231,206,157,166,209,163, - 71,75,231,205,155,167,218,186,117,107,127,0,94,13,173,123,157,78,1,1,129,191,240,22,163,117,156,82,58,16,0,36,18,73,203,132,132,132,21,102, - 179,57,6,0,68,34,81,190,88,44,254,200,104,52,158,6,0,66,200,38,142,227,6,120,209,139,24,61,122,116,251,95,126,249,101,193,145,35,71,202, - 75,74,74,98,54,111,222,172,155,50,101,74,54,0,92,189,122,181,78,255,254,253,227,94,122,233,165,220,94,189,122,45,236,218,181,235,203,191,253,246, - 219,78,88,171,36,221,66,8,73,105,210,164,201,225,253,251,247,7,133,134,134,86,91,151,156,156,140,151,95,126,89,50,96,192,128,186,221,187,119,63, - 68,8,233,68,41,253,195,75,58,65,8,121,164,126,253,250,187,246,236,217,19,24,22,22,134,178,178,50,228,231,231,67,163,209,32,56,56,24,195,134, - 13,147,60,214,177,67,194,75,147,38,239,34,132,244,240,197,216,34,132,60,210,33,37,101,215,154,121,243,2,77,55,110,64,46,151,163,178,178,18,0, - 16,20,20,132,214,181,107,139,78,174,92,25,55,106,218,52,94,243,111,55,182,8,33,50,0,160,148,234,9,33,63,179,44,59,80,42,149,50,3,7, - 14,196,174,93,187,136,78,167,19,1,64,64,64,128,121,224,192,129,144,203,229,48,24,12,28,128,159,255,173,222,44,30,169,84,138,172,172,172,106,203, - 212,106,53,138,138,138,80,82,82,2,189,94,143,178,178,50,112,28,71,228,114,121,17,199,113,96,24,171,67,207,157,166,68,34,193,197,139,23,171,45, - 51,155,205,168,170,170,130,94,175,135,209,104,132,90,173,150,7,5,5,213,79,73,73,201,5,176,169,180,180,244,163,252,252,252,235,247,58,127,190,162, - 173,44,189,242,205,214,204,250,101,249,90,192,164,63,224,176,74,124,246,236,217,184,30,61,122,124,153,147,147,51,166,168,168,72,172,82,169,124,242,24, - 105,213,37,151,190,217,154,217,184,44,95,11,152,117,71,239,133,166,94,163,189,178,226,212,167,245,53,149,6,128,192,81,147,42,20,138,67,163,71,143, - 14,93,184,112,161,101,234,212,169,153,0,14,251,162,9,224,198,207,167,117,137,0,12,0,174,249,184,143,39,56,0,56,112,224,0,10,10,10,80,92, - 92,140,162,162,34,196,199,199,227,78,170,227,178,178,178,62,111,218,180,41,249,243,207,63,183,3,88,178,110,221,186,113,165,165,165,211,167,78,157,26, - 254,225,135,31,150,78,155,54,45,13,192,119,235,214,173,123,161,81,163,70,125,47,92,184,176,244,191,145,78,1,129,251,64,27,0,42,219,255,197,176, - 190,119,35,28,230,207,192,250,220,242,219,25,0,72,93,252,242,240,243,69,0,78,56,236,199,207,223,51,24,0,216,186,117,43,229,39,87,27,69,71, - 71,79,234,214,173,219,130,140,140,140,198,183,110,221,10,187,117,235,86,88,70,70,70,227,110,221,186,45,136,142,142,158,196,111,103,107,137,0,135,121, - 199,38,154,146,195,135,15,39,253,248,227,143,105,187,118,237,42,111,217,178,165,97,207,158,61,230,94,189,122,21,2,48,3,48,247,234,213,171,240,183, - 223,126,179,180,107,215,78,254,203,47,191,228,28,58,116,232,227,245,235,215,71,3,96,221,104,130,16,34,14,13,13,253,105,223,190,125,53,140,44,71, - 18,18,18,240,243,207,63,7,135,134,134,110,34,132,84,43,165,187,208,12,8,8,8,216,240,219,111,191,5,6,5,5,161,176,176,16,98,177,24,81, - 81,81,40,47,47,71,254,173,91,184,126,233,18,24,131,1,159,204,153,29,36,151,203,215,19,66,164,222,52,67,66,66,54,172,153,59,55,176,100,215, - 46,252,254,254,251,48,26,141,246,42,87,163,209,136,67,19,39,162,104,247,110,124,243,246,219,129,33,33,33,27,8,33,1,158,52,239,5,142,154,132, - 144,137,0,74,1,148,18,66,38,82,74,143,52,105,210,36,227,252,249,243,232,212,169,19,210,211,211,155,79,157,58,117,226,212,169,83,39,166,167,167, - 55,239,212,169,19,206,159,63,143,38,77,154,100,56,198,103,221,239,116,222,79,77,139,197,82,109,226,184,191,190,49,177,177,177,133,63,254,248,35,134, - 13,27,198,72,165,210,91,195,135,15,151,29,60,120,144,2,248,217,159,116,234,116,58,104,181,90,84,85,85,225,234,213,171,242,15,62,248,160,227,172, - 89,179,234,237,218,181,43,110,230,204,153,255,81,169,84,167,98,98,98,146,252,209,244,23,79,154,12,53,229,37,212,126,8,161,209,117,1,139,38,219, - 113,55,150,101,193,113,156,36,46,46,110,109,66,66,194,55,248,235,69,231,81,147,133,41,199,174,105,214,221,19,77,70,196,228,69,55,82,65,81,95, - 10,80,100,59,173,54,177,44,11,150,101,249,112,1,139,47,154,176,122,211,140,176,22,238,174,123,216,174,26,174,52,187,119,239,222,180,94,189,122,209, - 235,254,12,195,109,73,67,112,146,80,112,146,80,88,34,218,32,75,250,56,18,19,19,163,131,130,130,218,251,163,73,41,93,245,199,31,127,180,165,148, - 206,162,148,150,80,74,23,76,155,54,237,93,66,200,129,105,211,166,205,166,148,46,176,45,127,255,252,249,243,237,40,165,107,254,27,233,188,91,4,205, - 255,77,77,47,182,136,138,16,242,51,33,228,231,25,51,102,116,5,16,225,52,255,168,227,118,0,164,174,126,249,201,97,185,10,64,170,195,126,42,23, - 199,190,43,236,29,150,166,166,166,146,212,212,84,190,100,126,156,16,178,25,192,113,137,68,210,178,69,139,22,3,127,253,245,215,32,149,234,175,227,171, - 84,42,172,95,191,62,40,37,37,101,160,68,34,105,9,224,120,112,112,240,102,184,168,98,180,17,58,113,226,196,193,99,198,140,169,104,217,178,37,0, - 148,157,59,119,78,209,174,93,187,42,179,217,76,204,102,51,105,215,174,93,213,185,115,231,20,38,147,73,221,166,77,27,101,247,238,221,179,95,123,237, - 181,209,0,2,220,104,2,192,200,249,243,231,199,135,133,133,185,221,128,82,10,181,90,141,232,232,104,76,156,56,49,70,44,22,63,227,233,164,136,68, - 162,23,231,207,159,31,21,26,26,138,219,183,111,35,62,62,30,6,131,1,23,47,94,132,174,170,18,38,117,5,76,21,101,40,186,114,25,161,98,17, - 70,15,232,23,45,18,137,94,244,164,41,149,74,95,92,62,109,90,180,33,59,27,87,211,211,97,49,215,116,254,152,141,70,156,253,250,107,232,114,115, - 145,246,236,179,209,82,169,212,163,230,189,196,230,201,250,144,82,42,167,148,202,9,33,11,31,125,244,209,213,114,185,124,226,188,121,243,122,239,216,177, - 163,207,254,253,251,187,152,205,102,177,217,108,22,31,56,112,160,147,78,167,19,201,100,50,136,68,34,159,98,106,254,141,136,197,98,72,36,18,200,229, - 114,116,236,216,241,202,178,101,203,76,241,241,241,226,13,27,54,132,197,198,198,42,151,44,89,82,166,86,171,231,251,170,103,52,26,161,215,235,161,213, - 106,161,211,233,176,103,207,158,218,47,189,244,146,72,167,211,89,250,247,239,95,106,50,153,244,211,166,77,11,14,15,15,159,114,63,243,117,135,88,82, - 82,82,42,242,243,243,135,89,44,150,193,57,57,57,227,97,45,21,254,211,52,1,160,141,74,165,50,234,245,250,209,69,69,69,1,0,30,246,113,63, - 51,128,74,88,13,45,61,191,144,16,34,35,132,52,227,61,190,190,80,86,86,182,116,249,242,229,241,140,44,20,7,13,125,241,3,247,46,118,132,44, - 65,97,210,235,136,138,175,135,17,35,70,68,81,74,151,248,149,43,23,80,74,23,83,74,59,83,74,23,222,201,254,247,59,157,132,144,164,192,192,192, - 244,224,224,224,131,129,129,129,233,132,144,164,59,213,226,233,85,159,244,24,216,152,205,237,85,143,208,129,141,217,220,94,245,253,239,235,73,224,159,137, - 147,45,226,72,17,165,180,31,165,180,95,90,90,218,92,126,161,195,188,220,23,125,94,195,113,153,205,192,186,111,216,171,14,183,110,221,74,249,204,57, - 182,46,76,72,72,88,177,98,197,138,32,231,29,111,221,186,133,138,138,10,188,249,230,155,65,99,198,140,153,156,147,147,51,214,203,177,164,249,249,249, - 15,143,26,53,42,192,104,52,222,230,56,142,169,168,168,16,133,132,132,216,75,154,33,33,33,150,242,242,114,113,85,85,21,107,177,88,244,99,198,140, - 145,62,251,236,179,173,225,224,209,114,70,165,82,245,236,219,183,175,212,221,122,147,201,132,170,170,42,84,85,85,253,63,123,231,29,30,85,209,182,241, - 123,206,158,173,41,155,77,207,38,33,129,64,32,64,0,5,84,144,22,94,9,82,4,81,64,138,104,164,68,16,34,2,210,155,52,105,74,149,142,40, - 68,144,162,88,64,4,11,189,168,32,45,33,148,144,144,144,158,64,146,45,217,126,206,124,127,100,55,46,201,166,2,22,190,253,93,215,94,187,123,102, - 206,61,115,182,229,206,204,51,207,192,100,50,161,99,199,142,146,173,91,183,118,7,176,161,178,115,36,18,73,116,116,116,180,240,254,253,251,240,240,240, - 64,90,90,26,82,83,83,97,208,104,96,210,168,96,210,168,97,81,171,64,85,197,184,119,235,58,218,53,141,16,237,148,72,94,4,176,162,50,77,185, - 92,30,221,46,38,134,117,117,117,69,212,208,210,117,6,135,154,54,5,229,56,240,28,7,206,98,193,139,55,110,192,108,54,131,97,24,60,115,255,62, - 43,223,177,35,26,192,71,85,190,170,143,9,137,68,194,198,199,199,15,17,139,197,160,148,18,163,209,136,35,71,142,252,19,93,249,71,17,139,197,144, - 74,165,48,153,76,168,95,191,190,110,232,208,161,103,22,45,90,20,194,48,140,171,72,36,250,241,222,189,123,31,102,101,101,165,212,84,207,108,54,195, - 104,52,194,104,52,66,167,211,225,246,237,219,1,13,26,52,32,239,188,243,14,87,82,82,18,182,102,205,154,228,35,71,142,184,44,93,186,244,85,0, - 113,143,241,210,234,2,123,229,202,21,121,93,86,243,253,205,154,117,90,117,104,29,149,246,8,241,102,181,66,1,52,0,220,173,166,224,85,66,72,187, - 102,205,154,121,94,187,118,173,144,16,114,14,192,151,148,210,236,170,244,120,158,39,60,207,227,237,103,139,240,78,123,1,204,230,98,20,23,23,35,45, - 45,13,137,137,137,248,237,183,26,135,139,62,128,84,42,29,225,230,230,214,93,42,149,214,183,88,44,140,70,163,73,43,41,41,249,153,231,249,77,180, - 252,180,66,13,120,92,253,180,225,234,234,186,108,198,140,25,29,60,60,60,112,241,226,197,176,221,187,119,47,195,67,6,215,75,133,204,182,21,171,62, - 9,10,242,83,224,242,137,239,131,62,220,184,103,27,128,224,135,234,168,147,127,5,246,94,164,28,127,0,232,109,93,225,254,146,131,242,26,241,176,231, - 215,133,50,163,85,201,133,193,98,177,4,216,143,100,81,74,145,157,157,141,204,204,76,228,231,231,195,211,211,19,38,147,41,160,6,109,73,212,106,245, - 179,222,222,222,37,66,161,208,160,211,233,224,226,226,194,11,133,66,106,109,135,88,87,45,114,6,131,129,176,44,107,118,119,119,119,51,24,12,17,168, - 34,150,140,82,250,172,183,183,183,195,50,131,193,0,141,70,3,173,86,11,141,70,3,131,193,0,127,127,127,88,44,150,42,255,187,181,88,44,45,125, - 125,125,145,149,149,5,153,76,134,140,140,12,24,53,106,152,212,106,88,180,42,112,197,197,224,85,42,240,90,21,204,198,18,4,53,110,10,219,138,196, - 202,48,26,141,45,189,189,189,161,213,254,21,110,70,173,6,203,98,177,192,98,13,142,182,77,39,250,248,248,192,182,34,241,239,192,26,147,53,153,97, - 152,213,18,137,132,29,51,102,12,178,179,179,31,248,76,140,25,51,166,44,38,171,115,231,206,39,165,82,169,37,63,63,31,6,131,161,182,43,187,254, - 51,16,66,64,8,41,125,143,44,22,248,248,248,104,11,10,10,126,43,44,44,28,82,23,61,179,217,108,91,209,5,157,78,7,74,41,46,94,188,8, - 169,84,42,228,56,46,193,98,177,184,8,133,66,48,214,224,175,127,43,117,88,205,87,25,212,58,197,103,41,42,42,18,90,167,250,30,118,132,180,214, - 154,132,144,168,8,133,120,197,226,118,126,138,167,250,184,106,93,196,2,45,159,246,84,253,207,150,39,238,126,99,216,8,247,249,243,231,135,250,248,248, - 72,147,147,147,245,11,22,44,104,16,31,31,79,80,205,63,65,233,233,233,251,103,204,152,225,213,171,87,175,48,137,68,66,138,139,139,145,159,159,143, - 220,220,92,164,166,166,210,203,151,47,223,54,24,12,123,107,115,97,129,129,129,91,199,141,27,247,70,155,54,109,132,64,233,8,169,86,171,125,250,248, - 241,227,125,15,29,58,212,9,64,173,63,151,119,239,222,221,59,115,230,76,215,158,61,123,70,72,36,18,230,81,244,211,30,134,97,252,221,220,220,240, - 243,207,63,67,161,80,128,97,24,255,186,106,217,208,155,248,160,192,0,111,232,79,175,64,132,111,40,244,38,62,232,97,53,157,252,59,168,204,139,160, - 52,134,10,148,210,151,170,49,75,186,105,211,166,205,32,132,28,152,54,109,218,140,242,133,118,231,113,246,245,236,234,27,202,159,243,176,212,42,97,41, - 207,243,200,204,204,68,86,86,22,50,51,51,113,239,222,61,48,12,3,74,105,77,86,159,81,66,8,255,211,79,63,121,158,57,115,70,251,204,51,207, - 20,217,226,95,44,22,11,49,155,205,196,26,23,67,210,210,210,68,167,78,157,82,36,37,37,249,163,116,26,161,202,96,76,71,255,196,217,12,150,253, - 77,175,215,67,42,173,106,22,242,47,108,127,8,47,94,184,80,106,178,52,106,235,148,97,49,56,85,49,168,86,13,49,103,134,24,20,68,95,82,35, - 77,251,120,31,0,101,38,203,100,53,90,70,163,17,102,179,25,60,207,195,226,96,106,241,113,67,41,93,255,244,211,79,183,222,191,127,255,240,204,204, - 204,10,229,253,250,245,67,92,92,28,198,141,27,151,212,187,119,239,203,223,127,255,61,198,142,29,11,158,231,159,34,132,20,83,74,15,253,237,157,126, - 204,24,12,134,178,17,40,189,94,15,147,201,4,84,17,252,94,158,242,159,77,219,123,107,177,88,108,218,100,255,254,175,113,242,228,73,38,49,49,33, - 120,204,152,119,108,1,247,143,248,74,106,142,128,49,185,171,242,111,195,168,50,64,36,41,177,15,124,172,243,106,62,49,111,146,107,243,110,193,84,100, - 132,55,175,179,159,231,231,154,55,111,174,58,124,248,240,184,23,95,124,241,147,187,119,239,190,133,26,78,29,178,102,70,174,73,209,195,164,227,225,166, - 23,216,247,179,198,154,132,144,158,98,134,108,158,252,148,183,116,82,43,111,173,152,37,154,27,155,103,104,82,67,228,90,255,122,46,198,224,6,138,192, - 15,63,92,164,76,74,186,110,152,53,107,214,181,65,131,6,249,77,154,52,169,217,87,95,125,213,137,16,242,41,165,180,168,18,93,105,76,76,204,57, - 63,63,191,6,27,55,110,204,187,123,247,174,167,217,108,118,53,153,76,188,86,171,77,213,233,116,63,155,76,166,159,41,165,23,106,114,173,54,220,221, - 221,91,197,196,196,8,139,138,138,192,178,44,76,38,19,242,242,242,208,161,67,7,193,119,223,125,215,188,54,90,54,238,223,191,191,130,16,114,108,215, - 174,93,221,229,114,121,27,137,68,18,0,128,83,171,213,185,90,173,246,82,93,250,105,15,199,113,185,23,46,92,104,40,151,203,145,158,158,14,142,227, - 114,235,170,101,67,42,98,238,94,57,241,93,189,166,62,13,112,234,204,57,72,69,204,221,135,213,116,242,175,199,22,67,5,123,3,229,192,32,157,89, - 188,120,177,108,201,146,37,88,188,120,113,66,121,17,155,6,165,244,165,197,139,23,39,216,234,217,213,63,241,168,59,206,2,85,58,72,176,44,155,147, - 159,159,239,169,80,40,202,12,86,86,86,22,178,178,178,32,22,139,145,150,150,6,177,88,92,229,16,186,21,189,76,38,59,255,244,211,79,55,73,73, - 73,17,45,88,176,160,222,133,11,23,228,29,58,116,104,33,147,201,56,74,41,244,122,61,115,237,218,53,183,143,62,250,40,232,217,103,159,53,62,251, - 236,179,127,238,217,179,71,135,42,146,151,18,66,126,207,206,206,14,171,95,191,62,128,191,86,116,217,110,246,134,11,40,157,242,100,89,182,202,12,209, - 44,203,94,185,113,227,70,55,23,169,4,70,181,10,38,141,10,22,181,26,156,186,24,92,113,49,160,85,65,108,177,64,200,153,33,147,74,145,153,145, - 1,150,101,175,84,165,41,22,139,175,228,230,230,118,83,40,20,101,127,68,205,22,75,233,141,227,96,180,88,202,70,180,132,66,33,238,222,189,11,177, - 88,92,165,230,227,128,97,24,206,150,194,193,17,98,177,24,254,254,254,124,187,118,237,48,118,236,88,112,28,7,148,230,59,140,34,132,156,162,148,106, - 254,182,206,62,98,28,153,91,91,208,186,78,167,131,70,163,65,97,97,33,43,147,201,154,180,104,209,226,156,209,104,220,107,177,88,182,165,164,164,168, - 42,211,180,26,51,0,165,166,139,231,121,80,74,193,113,28,204,102,51,68,34,17,127,252,248,9,124,180,114,25,182,111,139,167,125,251,246,37,223,125, - 247,29,120,158,207,120,60,87,89,57,132,16,242,212,83,79,141,126,182,101,253,214,239,191,38,71,150,90,141,33,153,215,135,42,59,145,211,217,39,233, - 22,212,97,53,31,33,132,121,250,233,167,223,237,222,184,65,187,89,61,221,160,43,208,227,147,237,41,175,190,41,18,189,179,195,108,222,64,41,101,175, - 92,185,34,239,214,173,219,198,11,23,46,140,8,12,12,140,175,110,154,207,166,217,218,163,113,235,89,65,203,160,205,203,194,186,236,30,253,223,16,137, - 70,237,48,153,182,192,58,29,89,67,205,143,139,190,92,36,133,133,211,26,142,239,210,124,113,83,165,157,255,197,170,243,70,177,64,213,182,139,127,203, - 176,6,77,4,10,133,39,179,97,211,234,123,59,227,247,37,167,167,167,171,214,173,91,215,190,73,147,38,30,151,46,93,10,2,224,208,104,185,184,184, - 132,143,24,49,34,166,176,176,80,180,125,251,246,61,217,217,217,231,1,36,82,74,203,134,180,9,33,189,9,33,159,163,116,229,147,63,74,127,231,78, - 81,74,23,84,113,249,60,33,4,71,143,30,173,176,58,144,127,56,119,174,104,212,168,209,107,41,41,41,39,115,114,114,42,188,86,98,177,120,126,227, - 198,141,95,76,72,72,152,71,41,253,161,54,194,37,37,37,83,246,237,219,183,92,32,16,4,114,28,151,165,211,233,166,60,68,63,1,0,122,51,63, - 114,241,134,221,91,116,70,46,68,38,22,164,235,205,252,168,135,213,116,242,207,83,149,23,129,53,70,203,246,24,0,41,247,252,146,245,177,209,174,110, - 62,80,54,138,101,44,55,10,230,168,44,31,143,33,89,122,101,153,225,167,3,120,22,192,239,66,161,112,245,27,111,188,241,209,206,157,59,221,85,42, - 21,114,115,115,145,151,151,7,150,101,33,151,203,177,126,253,122,93,110,110,238,106,251,115,202,103,144,183,162,247,241,241,57,31,31,31,31,176,121,243, - 102,246,205,55,223,76,235,221,187,119,196,250,245,235,83,68,34,17,229,56,142,24,12,6,242,246,219,111,55,92,185,114,229,29,129,64,224,242,218,107, - 175,17,87,87,215,223,81,26,160,234,144,252,252,252,159,190,249,230,155,87,38,78,156,40,49,26,141,14,71,178,108,199,20,10,5,78,159,62,109,44, - 44,44,172,50,216,200,96,48,252,244,227,15,7,59,191,62,104,144,200,172,86,193,172,86,193,162,82,129,83,23,129,104,84,16,114,22,200,68,60,252, - 131,100,224,244,110,56,248,199,37,179,193,96,168,50,177,161,74,165,250,233,212,246,237,81,207,134,134,178,167,223,125,23,38,179,25,61,111,220,40,51, - 87,38,147,9,223,182,108,9,142,16,60,21,27,139,91,22,139,69,165,82,253,84,149,230,63,197,229,203,151,243,134,14,29,122,129,231,249,214,168,197, - 232,206,191,29,179,249,193,239,151,205,16,89,172,38,56,47,47,79,124,240,224,193,206,215,174,93,19,93,189,122,21,39,79,158,124,106,231,206,157,211, - 67,67,67,91,166,165,165,57,204,253,100,111,222,28,37,253,133,53,254,112,207,174,189,24,61,122,52,201,201,201,193,151,95,126,137,234,146,167,62,106, - 162,162,162,36,237,219,183,31,222,181,107,215,233,202,64,37,185,145,155,132,108,243,77,52,158,234,43,40,250,163,100,115,80,15,246,53,170,229,134,103, - 157,162,217,118,171,249,40,236,86,243,149,167,125,251,246,210,14,29,58,140,234,218,181,235,164,128,128,0,146,119,51,9,200,203,64,108,43,63,230,122, - 94,201,58,233,173,251,131,198,6,7,15,31,243,227,143,16,8,4,230,114,186,85,106,70,69,69,189,239,170,42,70,246,141,75,96,178,115,241,118,43, - 127,38,41,183,100,243,104,87,233,32,89,96,189,81,195,191,254,186,166,154,90,88,56,153,241,248,46,77,239,31,210,213,103,179,117,11,0,28,166,58, - 11,173,87,175,222,229,54,109,60,125,0,192,160,231,2,194,195,195,187,176,44,43,6,0,55,55,183,54,222,222,222,235,1,116,44,47,72,8,17,12, - 26,52,168,157,159,159,223,211,135,14,29,186,148,157,157,157,64,41,253,173,124,189,134,13,27,206,74,74,74,122,70,40,20,18,187,115,43,187,116,68, - 69,69,53,9,13,13,245,254,225,166,7,84,162,70,160,130,98,128,149,130,83,180,66,154,168,25,130,131,207,121,43,20,138,167,138,138,138,46,85,42, - 226,0,66,72,215,87,94,121,101,219,246,237,219,131,187,116,233,66,9,33,76,249,148,14,13,27,54,236,126,246,236,217,214,163,70,141,218,104,93,145, - 92,227,224,97,74,105,26,128,1,181,233,83,117,28,185,69,127,134,53,231,153,147,255,55,212,38,229,194,35,77,207,240,176,84,54,117,248,44,207,243, - 125,25,134,129,201,100,90,236,239,239,255,237,107,175,189,214,111,250,244,233,110,222,222,222,101,35,89,235,215,175,215,165,166,166,126,101,50,153,46,18, - 66,230,100,101,101,245,13,12,172,244,239,131,122,205,154,53,187,251,244,233,243,102,108,108,172,174,101,203,150,242,136,136,136,146,51,103,206,184,69,71, - 71,171,4,2,1,61,125,250,180,123,195,134,13,245,132,16,201,47,191,252,114,239,220,185,115,13,23,47,94,252,41,74,151,91,87,198,174,133,11,23, - 206,234,219,183,111,67,111,111,111,168,84,170,7,204,150,237,177,84,42,69,78,78,14,190,254,250,235,108,179,217,252,105,85,47,138,197,98,89,247,201, - 250,13,227,187,182,123,46,72,238,34,67,78,70,26,184,226,66,64,171,129,216,98,134,76,76,17,216,208,5,66,214,21,201,185,26,108,63,243,71,142, - 197,98,89,87,149,166,209,104,92,23,183,114,229,248,179,27,54,4,133,14,28,136,196,29,59,202,166,10,109,70,139,35,4,33,47,188,0,198,195,3, - 31,110,220,152,107,52,26,171,212,124,28,240,60,47,48,26,43,159,185,49,26,141,224,121,62,35,49,49,113,55,33,68,77,8,137,178,22,29,251,47, - 143,102,1,165,70,107,206,156,57,88,178,100,9,166,77,43,221,133,197,104,52,150,77,31,22,21,21,53,56,117,234,148,232,248,241,227,116,227,198,141, - 247,222,124,243,77,69,108,108,172,98,243,230,205,19,0,56,252,47,221,108,54,99,202,148,41,216,184,113,35,70,143,30,93,161,92,32,16,240,25,25, - 119,161,215,235,233,154,53,107,178,132,66,161,231,167,159,126,42,27,53,106,212,223,106,96,165,82,169,119,251,246,237,155,72,36,18,117,86,102,86,201, - 254,89,123,100,5,173,46,145,122,195,20,240,141,118,131,188,149,244,127,105,155,239,93,15,236,72,166,156,217,151,156,104,48,24,134,162,154,196,162,94, - 94,94,158,45,90,180,104,200,178,172,42,51,35,195,99,254,174,221,46,29,115,174,161,127,99,111,210,62,216,29,17,62,178,142,123,18,243,19,190,25, - 61,122,99,214,205,155,195,189,66,66,212,213,233,122,121,121,121,182,106,213,170,129,80,40,44,86,201,92,228,115,198,76,116,137,134,22,175,132,123,217, - 52,187,238,73,204,79,248,62,46,110,67,110,114,242,91,30,193,193,154,106,52,103,202,134,206,126,15,165,191,49,171,41,165,199,108,5,114,185,92,182, - 127,255,55,44,0,124,181,239,107,33,165,212,195,150,96,246,139,47,190,144,118,232,208,193,207,145,32,165,148,147,74,165,134,165,75,151,122,143,28,57, - 178,199,175,191,254,234,73,8,105,7,224,60,128,92,148,154,107,63,0,137,62,62,62,242,61,123,246,4,117,239,222,221,181,170,215,18,0,212,106,245, - 167,187,119,239,174,191,242,148,7,126,208,190,130,187,252,64,80,5,133,151,159,26,205,220,210,49,100,200,144,192,213,171,87,111,1,208,166,58,45,27, - 132,144,33,253,250,245,91,178,125,251,246,192,145,35,71,230,252,249,231,159,185,0,182,59,48,124,5,111,188,241,70,246,142,29,59,148,148,210,13,132, - 16,49,165,244,171,154,182,227,196,201,255,103,136,163,248,38,66,200,183,22,139,165,47,203,178,223,217,39,44,245,247,247,31,111,52,26,149,132,16,42, - 18,137,114,114,115,115,87,219,39,44,205,200,200,232,27,28,28,92,118,142,53,233,166,125,174,13,121,207,158,61,187,157,61,123,118,237,129,3,7,242, - 212,106,181,219,190,125,251,100,75,150,44,73,227,121,158,78,157,58,53,244,197,23,95,44,225,56,46,59,54,54,182,97,131,6,13,98,147,146,146,126, - 134,157,209,114,160,9,66,72,243,70,141,26,157,254,234,171,175,228,10,133,2,121,121,121,184,127,255,62,180,90,45,56,142,131,80,40,68,126,126,62, - 22,44,88,160,202,202,202,170,144,176,180,18,205,103,235,7,5,253,180,122,222,28,119,5,203,224,222,245,107,176,20,222,131,208,98,70,189,102,10,136, - 36,82,220,186,161,198,132,93,95,171,211,239,23,85,72,88,90,153,102,219,240,240,159,55,78,158,236,166,191,123,23,202,183,222,66,73,73,9,76,38, - 19,24,134,193,237,213,171,33,242,245,197,172,61,123,180,9,233,233,47,148,79,88,234,72,243,97,177,215,36,132,188,67,8,41,11,134,239,215,175,223, - 3,117,191,249,230,27,108,216,176,1,6,131,193,66,41,29,79,41,93,79,8,113,3,0,123,147,245,184,251,249,56,52,189,189,189,87,31,58,116,168, - 190,159,159,31,177,207,216,14,252,21,91,55,118,236,216,23,206,157,59,39,121,250,233,167,13,5,5,5,207,248,250,250,254,26,31,31,239,243,218,107, - 175,101,37,36,36,4,149,215,244,241,241,249,232,171,175,190,106,212,168,81,35,198,54,42,86,126,122,114,248,240,225,221,226,227,227,197,175,188,242,138, - 65,171,213,250,187,187,187,39,127,245,213,87,62,47,191,252,114,78,66,66,130,242,239,184,118,27,227,198,141,235,169,213,106,123,220,189,123,151,170,84, - 170,173,217,210,139,94,46,161,162,29,33,177,94,65,174,97,98,232,239,154,96,188,40,64,201,37,14,57,183,178,151,103,157,164,83,170,211,140,141,141, - 237,97,48,24,94,188,123,247,46,167,86,171,183,70,38,36,120,250,187,139,191,24,212,204,55,164,190,66,130,28,173,9,137,26,6,215,84,102,164,222, - 201,90,181,195,100,154,80,23,77,165,92,178,115,80,51,159,122,33,30,18,100,107,76,72,210,11,113,93,195,33,249,86,218,202,29,38,211,196,234,52, - 29,17,25,25,121,43,33,33,161,145,237,185,78,167,67,126,126,62,10,10,10,160,80,40,16,29,29,125,59,53,53,181,145,35,77,66,200,211,3,6, - 12,152,183,101,203,150,110,174,174,174,162,19,39,78,104,127,254,249,103,125,90,90,154,197,108,54,83,165,82,201,118,236,216,81,218,171,87,47,87,137, - 68,194,204,158,61,187,96,209,162,69,62,132,144,93,212,186,253,89,121,205,214,173,91,255,246,227,143,63,62,75,8,129,64,32,128,209,104,66,81,81, - 17,50,51,51,144,152,152,136,179,103,207,226,200,145,35,151,52,26,205,211,149,93,83,185,239,187,55,128,19,6,131,33,66,44,22,215,216,216,115,28, - 7,150,101,175,3,232,78,41,205,248,47,126,223,157,154,255,78,205,39,149,170,86,243,1,192,179,132,16,219,166,164,191,151,79,225,64,8,153,78,8, - 153,99,125,250,108,13,66,4,84,135,14,29,58,217,173,91,183,177,47,188,240,194,202,238,221,187,103,103,103,103,135,173,88,177,34,216,98,177,152,18, - 19,19,153,228,228,228,180,243,231,207,55,106,220,184,113,108,82,82,210,113,84,61,154,101,235,107,34,33,164,67,215,174,93,191,142,141,141,13,105,215, - 174,157,88,161,80,128,101,89,164,164,164,224,210,165,75,198,61,123,246,100,20,21,21,213,120,11,30,74,233,239,132,144,232,215,198,141,255,42,182,95, - 31,159,231,34,154,136,149,74,37,160,211,225,250,221,28,156,187,126,201,180,245,228,185,124,131,193,208,191,188,201,170,70,179,219,255,38,79,254,106,254, - 235,175,251,35,59,155,85,42,149,16,139,197,72,77,77,69,50,207,91,150,110,218,148,171,82,169,254,246,45,120,108,121,180,120,158,103,1,64,38,147, - 33,46,46,14,246,91,238,108,216,176,1,58,157,14,0,88,66,200,114,66,200,182,255,250,40,150,141,251,247,239,207,234,217,179,231,98,150,101,43,205, - 122,235,233,233,9,181,90,13,139,197,194,101,102,102,94,247,244,244,132,80,40,4,165,21,182,148,1,0,220,187,119,111,86,255,254,253,23,50,12,227, - 112,228,3,0,228,114,121,218,175,191,254,26,62,106,212,40,230,179,207,62,75,25,57,114,164,228,215,95,127,229,40,165,95,63,138,235,170,13,159,124, - 242,201,161,103,158,121,38,33,52,52,52,251,232,209,163,28,0,248,70,145,136,27,31,228,44,243,239,37,31,237,217,84,78,150,142,216,140,34,203,61, - 140,232,241,122,12,42,25,197,179,103,243,230,205,63,182,108,217,50,161,113,227,198,57,199,143,31,231,0,224,109,66,154,174,253,35,115,113,167,16,143, - 184,38,1,10,210,119,205,122,244,42,190,143,209,125,94,127,19,192,132,106,36,177,121,243,230,31,91,181,106,117,53,60,60,60,215,78,51,98,245,239, - 198,197,81,245,21,113,141,252,21,164,223,215,135,209,231,126,30,70,182,238,16,3,7,123,32,214,5,251,127,74,173,255,196,85,58,197,73,41,189,72, - 8,89,121,254,252,121,223,113,227,198,133,13,29,58,84,222,181,107,87,55,251,58,58,157,142,255,254,251,239,181,27,54,108,40,62,121,242,228,157,225, - 195,135,183,67,21,11,1,210,211,211,15,126,248,225,135,30,189,122,245,106,12,160,44,62,43,63,63,31,105,105,105,184,122,245,106,79,106,166,82,0, - 0,32,0,73,68,65,84,154,201,100,250,174,22,215,115,143,16,50,127,240,224,193,203,119,236,216,17,56,114,228,200,156,61,123,246,92,69,105,210,226, - 242,40,250,245,235,215,114,199,142,29,202,145,35,71,230,0,88,64,41,253,219,227,8,157,56,249,79,66,41,173,112,3,240,185,209,104,164,122,189,158, - 150,148,148,80,141,70,67,1,124,235,160,222,183,89,89,89,52,35,35,131,166,167,167,211,59,119,238,80,0,95,216,149,119,115,164,79,41,117,221,185, - 115,103,163,160,160,160,121,46,46,46,135,5,2,129,74,32,16,168,36,18,201,143,222,222,222,115,151,46,93,26,68,41,21,85,210,183,202,52,1,128, - 21,10,133,163,252,252,252,190,245,242,242,202,240,244,244,204,240,243,243,251,86,40,20,142,6,32,172,226,188,170,52,165,44,203,190,239,234,234,250,147, - 68,34,201,147,72,36,121,174,174,174,63,177,44,251,62,0,105,93,53,197,98,241,251,190,190,190,63,201,229,242,60,185,92,158,231,235,235,251,147,88, - 44,174,179,102,93,111,54,77,0,18,0,37,212,10,33,196,252,212,83,79,109,108,221,186,245,250,214,173,91,175,111,213,170,213,102,66,136,217,86,14, - 160,4,128,228,239,238,231,63,169,25,25,25,25,191,99,199,14,126,214,172,89,170,198,141,27,223,159,53,107,150,106,199,142,29,124,100,100,100,124,93, - 53,253,253,253,67,35,35,35,239,111,217,178,197,114,227,198,13,186,101,203,22,75,100,100,228,125,127,127,255,208,127,211,181,251,63,143,168,136,24,15, - 254,80,113,60,125,241,106,16,245,239,128,172,135,213,124,131,101,59,76,15,244,229,53,135,246,208,219,61,34,232,235,66,97,193,163,208,156,85,207,159, - 55,92,249,237,161,53,155,55,111,126,139,218,97,52,26,105,126,126,62,189,113,227,6,61,121,242,36,13,14,14,190,85,157,38,74,179,220,191,13,224, - 251,128,128,128,164,246,237,219,167,119,232,208,33,61,52,52,52,69,40,20,158,5,240,1,128,72,235,109,57,128,198,85,105,2,104,175,80,40,62,12, - 14,14,254,46,60,60,252,116,253,250,245,207,122,121,121,29,144,74,165,75,0,60,95,151,247,29,64,215,87,94,121,37,77,163,209,112,109,218,180,73, - 114,116,94,211,166,77,79,105,52,26,110,208,160,65,25,40,221,108,190,206,239,209,227,248,124,58,53,159,12,205,39,245,86,217,136,214,135,98,177,152, - 133,117,115,105,43,142,70,88,126,47,23,147,85,12,224,67,7,245,202,163,29,50,100,72,234,144,33,67,150,163,116,84,77,128,210,20,14,22,148,70, - 252,155,80,77,74,7,71,208,210,189,246,182,88,111,143,4,74,169,30,165,249,114,30,89,226,208,199,161,249,176,80,107,30,45,66,200,114,235,161,201, - 23,47,94,92,111,95,135,16,114,217,190,156,82,250,200,243,141,252,155,41,42,42,26,255,201,39,159,252,62,109,218,52,73,76,76,12,174,94,189,138, - 37,75,150,24,138,138,138,118,85,127,182,99,114,114,114,210,2,2,2,90,175,90,181,106,210,202,149,43,95,38,132,252,227,123,29,58,34,231,52,61, - 230,215,145,76,30,209,123,216,123,0,120,10,140,123,88,205,237,102,243,233,24,145,232,189,49,47,15,155,76,0,158,18,242,222,35,210,156,52,178,109, - 167,137,15,171,169,211,233,110,183,106,213,10,164,52,96,137,90,44,150,178,213,162,214,12,255,183,171,211,160,148,222,3,176,201,122,3,33,196,11,165, - 171,12,239,81,74,203,143,214,79,174,129,222,89,0,103,171,171,87,27,40,165,71,9,33,111,37,39,39,127,120,251,246,109,135,171,72,111,221,186,117, - 172,99,199,142,238,151,47,95,158,73,41,61,248,40,219,119,226,228,73,199,161,209,162,148,222,2,240,122,117,39,83,199,171,11,107,10,135,106,54,139, - 118,242,247,66,75,99,174,182,89,31,87,48,81,213,149,63,233,100,100,100,20,2,40,219,138,36,44,44,172,66,28,91,93,176,154,170,56,252,251,50, - 193,63,64,222,41,250,49,128,143,31,165,230,231,38,211,26,0,107,30,177,230,74,0,43,31,86,39,37,37,165,231,35,232,206,3,80,74,29,77,203, - 253,227,208,210,69,0,237,42,43,55,155,205,115,0,204,169,172,220,137,19,39,149,83,171,132,165,78,158,124,170,51,80,255,31,13,150,19,39,78,156, - 56,113,82,87,8,0,135,155,113,210,90,172,38,32,164,246,27,122,86,167,239,212,116,106,58,53,157,154,78,77,167,166,83,243,201,211,180,211,174,108, - 228,249,122,57,189,205,181,237,195,191,138,199,25,0,134,255,72,0,158,83,211,169,233,212,116,106,58,53,157,154,78,205,127,86,179,146,118,98,255,142, - 118,30,231,205,57,117,232,196,73,29,248,95,35,18,198,243,214,108,215,60,40,199,98,219,201,100,90,240,48,154,155,55,111,14,227,121,126,0,0,80, - 74,169,197,98,217,22,23,23,247,80,154,78,156,56,113,226,228,159,197,161,209,218,183,111,159,192,246,120,240,224,193,195,57,142,43,91,97,36,16,8, - 62,249,242,203,47,183,85,37,58,96,192,128,10,219,114,216,107,58,162,186,118,28,105,70,54,241,24,227,237,225,50,190,168,184,100,85,74,22,119,82, - 175,215,55,179,149,73,165,210,107,219,182,109,187,249,168,251,57,124,248,240,198,229,219,169,31,44,140,242,114,151,198,221,47,210,172,184,122,83,253,223, - 30,226,252,143,66,8,241,1,240,146,187,84,212,183,185,66,212,254,234,61,253,25,173,137,251,30,165,105,73,10,31,117,123,60,143,113,157,90,71,116, - 110,247,84,35,245,207,167,175,250,94,76,74,51,0,88,253,144,178,147,188,188,188,70,43,20,10,90,80,80,192,23,21,21,85,169,169,84,42,35,228, - 114,249,48,0,205,75,74,74,252,92,92,92,242,0,36,170,84,170,248,236,236,236,235,149,157,87,158,168,6,36,13,64,136,245,105,250,177,84,26,90, - 147,178,234,120,177,17,209,83,64,66,8,76,135,111,209,178,13,52,123,132,19,61,79,43,30,127,49,156,24,41,133,136,0,134,195,201,180,102,187,191, - 255,7,32,132,200,1,68,163,52,133,195,101,0,71,40,165,53,219,137,222,137,19,39,255,121,28,26,173,225,195,135,119,22,177,100,45,5,85,0,212, - 219,96,48,8,197,98,49,140,70,35,92,92,100,235,222,30,57,124,30,24,20,153,45,136,219,182,109,91,157,119,186,174,77,59,3,6,12,56,90,254, - 124,79,185,108,225,177,239,167,122,118,238,189,116,137,49,181,96,138,90,173,102,36,18,9,12,6,3,60,60,60,58,140,137,141,109,195,8,169,81,36, - 114,61,179,114,229,202,42,183,11,169,138,9,19,38,4,152,76,250,231,121,158,23,27,141,70,73,249,118,60,92,92,151,30,251,126,170,75,151,151,150, - 204,3,224,52,90,127,51,132,16,113,168,167,235,241,85,131,163,154,182,111,30,14,62,241,4,244,70,83,223,99,25,154,190,115,207,102,77,36,132,180, - 166,148,86,190,175,80,245,250,12,195,48,239,43,20,138,30,247,239,223,95,65,41,61,80,164,71,235,200,102,17,141,95,124,190,153,140,231,232,153,139, - 73,105,181,218,50,103,222,188,121,76,118,118,246,251,98,177,184,135,78,167,91,177,117,235,214,3,26,141,166,85,211,166,77,73,88,88,24,73,72,72, - 224,139,139,139,29,106,18,66,4,97,97,97,99,67,67,67,7,109,218,180,73,20,22,22,6,169,84,10,157,78,167,188,125,251,182,114,204,152,49,93, - 26,54,108,184,59,37,37,101,29,165,180,210,189,8,237,8,57,246,249,108,0,64,135,97,11,66,8,33,239,163,52,79,26,186,212,255,171,44,42,102, - 65,8,33,100,50,30,92,45,156,77,41,117,152,36,147,2,226,3,59,62,66,223,55,222,103,9,33,99,108,199,123,53,6,126,252,98,53,122,12,30, - 255,192,241,23,27,130,253,126,199,71,120,233,141,247,43,221,213,188,71,99,198,204,243,142,19,196,2,0,195,16,203,225,91,212,209,6,195,185,148,210, - 10,251,145,18,66,94,68,233,134,206,14,235,191,212,148,205,53,153,57,135,9,103,69,66,65,222,129,36,75,133,115,99,90,19,179,153,43,253,109,21, - 177,224,60,60,60,142,205,156,57,147,125,233,165,151,176,117,235,214,142,155,55,111,142,37,132,252,2,224,59,74,105,114,101,215,226,196,137,147,39,3, - 135,63,88,172,0,27,191,251,106,91,163,220,188,2,188,57,106,18,118,237,218,133,194,194,66,120,122,122,66,44,18,9,87,45,159,29,32,151,187,6, - 188,25,59,101,35,128,136,58,55,94,187,118,194,203,159,79,172,89,227,89,1,35,20,139,197,204,238,221,187,81,84,84,4,133,66,1,177,88,200,172, - 92,50,93,38,151,187,201,70,188,51,173,35,128,189,117,237,167,209,168,233,184,127,215,54,121,126,126,62,98,70,79,65,249,118,68,34,17,7,148,254, - 97,169,107,27,78,30,138,153,155,226,222,104,218,194,29,48,37,156,134,80,32,128,139,135,39,162,89,1,4,4,205,222,60,124,103,6,128,185,15,161, - 223,229,192,129,3,75,91,180,104,129,23,95,124,49,130,16,178,125,226,91,125,58,106,57,17,246,159,78,193,185,243,215,29,253,161,174,146,204,204,204, - 46,99,199,142,93,234,237,237,141,141,27,55,70,196,198,198,110,239,217,179,103,187,130,130,2,112,28,135,194,194,66,166,178,115,195,194,194,198,14,28, - 56,112,208,194,133,11,69,12,83,90,77,171,213,66,167,211,33,40,40,8,199,142,29,19,205,154,53,107,208,55,223,124,3,212,33,117,66,66,66,66, - 253,144,144,16,61,0,244,105,233,94,190,44,212,86,6,0,238,238,238,168,14,111,133,171,33,33,225,92,115,219,121,99,95,8,226,42,57,174,7,224, - 82,149,22,207,83,246,200,218,49,149,150,143,90,184,211,114,121,239,201,136,176,176,48,157,253,113,55,55,183,202,78,241,215,104,52,33,229,15,218,234, - 155,204,156,95,101,237,117,143,219,224,208,128,153,57,176,59,119,238,4,0,124,252,254,80,193,150,223,10,88,150,45,253,169,93,190,124,57,230,207,159, - 47,62,124,248,112,175,29,59,118,244,34,132,172,170,204,168,58,113,226,228,201,192,161,209,98,8,113,151,187,187,97,192,144,183,113,232,208,143,232,220, - 185,115,89,89,131,6,13,48,176,255,203,248,242,243,149,0,80,253,175,108,21,60,108,59,133,197,218,185,61,6,173,93,144,158,163,57,123,224,192,1, - 116,234,212,233,129,243,135,188,54,0,95,124,186,28,148,82,209,195,244,147,80,70,228,46,119,197,224,55,71,195,81,59,177,49,253,14,188,56,112,117, - 183,220,123,218,135,206,221,227,164,246,52,10,240,238,222,178,105,4,10,191,94,135,75,69,122,28,202,210,99,68,244,115,136,244,146,161,147,133,67,128, - 171,240,127,120,56,163,229,27,26,26,10,150,101,17,18,18,226,183,104,209,162,41,141,27,4,225,251,47,183,96,219,238,131,60,84,89,7,4,34,212, - 106,131,93,66,136,175,151,151,23,88,150,133,187,187,187,223,203,47,191,60,37,48,48,16,151,47,95,198,165,75,151,120,161,80,184,142,231,249,10,154, - 74,165,50,34,52,52,244,1,147,165,86,171,161,209,104,160,82,169,160,86,171,193,48,12,166,76,153,34,58,126,252,248,32,165,82,249,115,13,166,17, - 211,59,12,91,80,106,54,4,66,205,156,57,115,12,126,126,126,6,23,23,23,202,138,36,234,168,152,5,238,0,192,176,34,245,170,85,171,140,65,65, - 65,122,150,101,197,227,199,143,175,212,12,218,99,48,24,168,189,166,209,104,40,59,190,116,233,82,163,191,191,191,193,197,197,133,154,76,53,31,116,188, - 146,122,31,18,145,0,18,145,0,82,177,16,238,245,159,129,164,240,42,44,22,11,150,45,91,102,10,8,8,48,186,184,184,80,177,88,44,122,247,221, - 119,171,237,231,240,225,195,169,66,161,48,185,184,184,136,230,207,159,95,97,36,241,215,203,153,144,137,133,112,145,176,8,111,16,12,9,213,57,146,113, - 136,64,240,96,52,130,68,34,65,199,142,29,209,188,121,115,124,251,237,183,81,0,156,70,203,137,147,39,24,22,0,14,30,60,216,5,192,49,0,232, - 221,187,55,1,0,2,138,201,99,251,99,68,204,96,112,28,111,139,254,7,97,8,222,121,171,23,120,190,250,25,9,90,131,37,158,181,109,199,94,147, - 18,70,0,0,141,66,149,52,118,196,235,224,120,190,52,13,42,0,8,128,183,99,122,148,30,123,4,253,20,128,195,164,49,175,194,81,59,17,141,2, - 25,139,73,15,98,183,217,99,77,52,107,139,83,211,49,205,235,41,27,154,117,58,232,245,102,108,191,126,95,247,83,166,214,143,81,220,201,95,61,160, - 157,84,144,159,133,80,119,113,133,209,208,186,246,179,115,231,206,104,215,174,29,52,26,13,206,38,229,210,83,9,89,99,41,165,27,31,70,51,52,52, - 20,245,234,213,131,70,163,193,173,91,183,104,82,82,210,216,205,155,55,59,212,148,203,229,195,54,109,218,84,193,100,229,230,230,50,26,141,6,38,147, - 137,87,171,213,224,56,14,211,166,77,19,206,154,53,107,24,33,100,190,85,199,224,72,243,88,42,13,37,132,76,78,72,72,8,157,57,115,166,233,127, - 255,251,95,122,131,6,13,180,2,129,0,74,165,114,117,116,116,180,215,194,133,11,77,189,122,245,186,35,16,8,16,30,30,174,189,122,245,106,40,0, - 153,253,117,84,117,237,246,154,219,126,253,132,2,0,33,4,209,209,209,105,225,225,225,90,129,64,128,155,223,47,173,176,119,96,101,154,66,150,65,227, - 32,143,210,39,132,0,50,55,192,26,137,23,29,29,157,17,17,17,161,97,24,6,87,174,92,9,6,240,64,188,151,35,77,153,76,102,30,50,100,72, - 250,245,235,215,43,212,7,0,86,192,160,93,132,117,0,43,168,53,144,113,170,210,126,10,5,176,204,26,59,148,85,72,1,137,187,143,65,165,82,65, - 46,151,3,0,76,38,19,46,94,188,136,246,237,219,119,217,187,119,239,241,74,94,174,42,175,253,97,112,106,58,53,255,205,154,142,188,200,147,128,109, - 68,235,88,249,139,226,56,11,26,132,248,99,233,236,225,224,56,30,28,199,193,98,189,231,56,14,102,83,181,123,61,215,136,135,105,199,83,46,91,248, - 227,238,56,207,255,245,91,254,194,226,153,49,63,113,28,192,243,102,152,205,0,199,155,193,115,28,204,230,58,135,230,60,128,153,231,17,26,28,128,197, - 51,99,80,190,157,248,47,247,246,249,245,187,41,46,157,95,90,50,9,192,178,71,210,160,147,26,35,21,73,88,202,74,97,52,90,160,54,242,70,74, - 169,118,192,179,205,77,212,213,71,10,0,44,67,30,217,234,218,23,94,120,1,201,201,201,88,184,112,33,14,31,62,124,22,192,67,199,216,52,108,216, - 16,183,111,223,198,209,163,71,145,150,150,86,157,102,243,176,176,48,0,127,153,172,143,62,250,200,103,253,250,245,65,0,208,191,127,255,204,23,94,120, - 161,224,198,141,27,80,42,149,164,160,160,160,55,128,241,0,64,8,153,76,41,93,95,137,174,54,36,36,68,239,235,235,107,176,25,34,134,97,108,163, - 120,122,63,63,63,67,120,120,184,86,36,18,129,97,24,216,140,94,77,32,132,64,32,16,192,166,105,143,64,32,128,77,179,54,8,89,187,250,229,236, - 153,173,29,71,237,85,134,84,42,165,0,42,173,47,96,236,126,30,217,170,35,4,62,255,147,10,9,33,199,40,165,248,243,207,63,145,146,146,2,145, - 72,132,128,128,0,204,159,63,31,6,67,169,223,29,56,112,96,23,0,87,106,212,65,39,78,254,127,80,193,139,60,9,60,240,7,232,224,193,131,93, - 122,247,238,125,28,40,53,64,165,102,199,129,249,49,91,96,54,155,0,90,233,230,245,53,166,170,118,56,142,175,178,29,91,140,22,207,83,214,161,201, - 226,121,88,204,230,135,238,35,0,240,156,25,60,111,174,96,178,120,142,3,33,76,233,248,22,197,67,77,81,58,169,27,1,33,161,140,57,164,1,78, - 90,244,8,242,150,136,1,32,172,73,83,193,197,18,51,78,95,190,6,31,55,249,195,190,47,172,76,86,58,120,83,175,94,61,184,185,185,225,187,239, - 190,3,128,231,199,141,27,247,3,33,164,17,165,52,163,54,130,148,82,86,40,20,150,105,186,187,187,163,77,155,54,32,132,60,31,31,31,255,195,240, - 225,195,27,109,219,182,173,130,102,73,73,137,159,84,42,133,86,171,45,27,201,90,191,126,125,144,209,104,100,0,128,101,133,193,249,124,144,148,227,1, - 15,121,54,10,11,139,189,41,165,165,163,212,132,44,39,132,108,163,85,100,247,23,137,68,101,6,197,222,0,73,36,146,58,25,24,27,54,115,38,18, - 137,28,30,47,63,189,86,29,34,123,163,5,90,58,170,101,135,205,216,217,98,163,170,67,44,22,151,93,187,35,88,129,93,123,130,218,135,98,154,76, - 38,104,52,26,20,21,21,65,42,45,29,48,163,148,130,16,50,30,192,67,239,241,232,196,201,147,132,189,23,121,18,40,255,43,116,12,165,217,226,97, - 49,155,28,154,159,189,223,159,70,122,142,22,1,62,191,131,90,235,214,148,65,131,6,125,174,84,42,203,246,211,146,200,220,188,99,227,62,128,197,98, - 130,187,140,193,168,97,61,30,48,89,165,35,90,198,242,255,176,150,81,88,172,157,219,99,224,154,5,30,114,239,179,229,205,207,226,237,23,6,20,170, - 12,193,12,243,7,10,137,146,27,248,246,7,195,109,231,49,12,115,121,247,134,57,19,107,218,111,74,24,225,128,49,171,99,41,235,214,204,133,81,159, - 152,26,243,220,126,123,51,231,229,229,117,160,251,128,85,221,114,239,59,99,180,254,9,220,61,20,76,112,219,40,180,29,191,22,191,78,159,74,1,192, - 91,25,196,116,29,187,8,110,109,251,224,220,168,97,53,218,160,156,16,34,0,48,16,165,75,241,109,159,109,95,0,244,155,111,190,193,43,175,188,2, - 157,78,7,141,70,3,0,176,88,44,200,201,201,17,1,168,116,216,116,224,192,129,2,185,92,62,144,82,26,109,221,156,24,132,16,95,0,244,206,157, - 59,80,42,149,15,104,242,60,15,149,74,37,18,139,197,14,53,93,92,92,242,74,74,74,148,58,157,14,42,149,10,42,149,234,129,114,86,40,36,177, - 163,199,249,8,69,98,152,77,70,28,138,95,84,237,117,71,53,32,105,93,234,35,164,79,75,119,8,132,98,117,98,88,216,106,150,101,193,48,12,190, - 95,55,117,252,215,43,226,220,1,224,242,129,117,170,193,83,62,89,195,48,12,12,6,131,164,90,97,59,238,222,189,27,108,48,24,244,86,131,102,123, - 29,144,154,154,90,207,96,48,232,236,143,215,4,153,139,59,160,104,0,184,60,24,143,78,8,193,157,59,119,2,205,102,115,9,203,178,48,26,141,53, - 114,69,12,195,136,174,92,185,18,204,243,188,195,250,205,27,6,2,1,45,1,177,71,77,187,88,22,6,81,93,29,66,8,181,153,97,39,78,156,0, - 176,243,34,79,2,54,163,21,117,240,224,65,187,95,5,10,139,217,108,53,89,127,153,30,142,227,145,149,175,199,141,27,55,177,106,213,42,156,62,247, - 190,199,194,133,11,37,179,102,205,50,12,26,52,104,5,207,243,173,24,134,185,60,96,192,128,241,142,26,227,121,190,222,133,11,23,194,108,207,205,102, - 51,220,221,221,225,238,238,142,136,240,224,10,38,139,227,56,152,170,152,58,180,197,104,17,202,83,179,153,3,199,243,101,230,167,80,101,8,254,238,231, - 63,27,217,85,111,98,123,208,241,153,102,21,180,108,12,26,51,191,236,58,118,111,152,51,113,225,214,173,146,66,206,247,221,193,3,70,68,14,28,60, - 12,67,94,237,217,197,96,52,126,43,96,40,111,46,107,15,12,40,30,136,209,114,242,247,145,92,164,53,11,37,50,184,5,212,199,77,13,39,98,89, - 246,247,145,35,71,136,24,1,11,134,21,33,177,80,95,211,97,205,126,223,126,251,237,174,30,61,122,128,216,141,144,232,116,58,116,232,208,161,100,206, - 156,57,121,44,203,90,24,134,81,3,128,201,100,42,209,106,181,27,40,165,249,149,9,202,229,242,126,163,71,143,222,213,162,69,139,178,99,132,16,232, - 116,58,124,240,193,7,37,70,163,49,143,97,24,11,33,68,13,0,28,199,149,152,76,166,13,91,182,108,169,76,51,49,57,57,89,89,175,94,61,168, - 84,42,88,44,22,190,127,255,254,153,44,43,12,102,133,66,242,210,224,113,124,78,78,150,153,97,4,160,148,67,207,129,239,16,137,84,38,50,25,141, - 22,0,147,43,25,205,178,79,225,224,30,29,29,237,101,91,9,248,245,138,56,119,187,50,121,155,54,109,188,236,87,29,214,4,177,88,76,6,13,26, - 36,11,9,9,33,0,240,71,252,76,0,128,72,36,34,125,250,244,145,134,132,148,198,225,255,178,174,230,123,106,251,184,80,160,56,21,40,190,243,192, - 113,129,64,128,62,125,250,72,194,194,194,106,245,93,180,6,192,87,154,187,203,149,181,0,57,127,214,72,43,166,53,49,207,236,12,118,69,79,6,98, - 55,111,67,187,169,135,127,171,170,190,211,108,57,113,82,70,57,47,242,100,192,2,128,117,136,238,175,47,57,5,204,22,83,5,147,197,113,28,132,196, - 128,85,171,86,225,189,247,222,3,0,209,196,137,19,247,47,92,184,240,21,158,231,91,81,74,59,17,82,249,111,5,195,48,199,148,74,101,46,165,84, - 200,48,76,167,117,235,214,121,245,236,217,19,238,238,238,160,60,173,96,178,56,142,135,201,100,172,16,131,97,195,83,46,91,248,227,222,119,61,255,247, - 242,242,23,56,158,255,201,102,178,120,142,3,248,210,147,238,229,102,224,200,143,223,98,227,134,77,133,32,52,9,20,60,195,48,151,43,235,35,207,243, - 173,78,253,113,173,83,199,103,154,97,225,214,173,146,132,11,217,251,199,77,152,17,57,112,240,48,236,253,50,30,140,165,232,79,123,147,197,153,121,20, - 23,22,244,57,234,140,209,250,71,32,132,120,249,248,248,144,97,195,134,241,106,181,26,34,177,152,55,155,205,130,231,159,127,158,123,239,189,247,152,156, - 156,28,168,212,26,150,16,226,69,41,189,95,141,156,247,157,59,119,144,149,149,245,192,65,74,41,218,182,109,235,146,152,152,248,52,165,84,85,201,185, - 149,245,207,59,59,59,27,158,158,158,21,52,155,52,105,226,242,231,159,127,62,189,105,211,166,26,107,170,84,170,248,49,99,198,116,57,113,226,132,136, - 97,24,168,84,42,116,237,218,181,32,159,15,146,198,142,30,231,147,149,149,105,145,203,88,131,72,36,68,94,94,30,223,165,215,16,221,224,225,227,3, - 223,155,241,225,230,172,51,27,42,139,207,122,0,251,149,128,229,203,182,108,217,98,12,10,10,210,75,36,18,113,76,76,76,141,230,15,141,70,35,93, - 186,116,169,161,252,234,66,163,209,72,87,173,90,101,12,14,14,54,200,100,50,106,54,87,31,247,201,48,196,50,106,225,78,139,197,98,41,59,102,251, - 205,17,8,4,48,243,68,179,118,237,90,83,112,112,176,209,197,197,133,74,36,18,81,77,250,57,110,220,56,234,233,233,105,114,117,117,21,77,153,50, - 229,161,86,29,154,57,176,11,215,149,165,119,144,184,187,187,67,173,86,151,245,85,169,84,86,56,199,105,182,156,56,113,224,69,158,16,28,6,48,240, - 128,38,47,191,192,207,199,191,62,44,22,139,245,102,134,197,108,198,187,111,15,198,138,13,107,1,192,102,182,162,39,78,156,184,31,64,181,63,102,187, - 119,239,94,48,113,226,68,121,110,110,238,225,207,63,255,220,107,232,208,161,152,60,121,50,150,47,95,14,161,88,10,47,223,122,101,237,216,218,45,200, - 191,15,10,170,113,164,103,139,209,162,20,172,183,111,40,204,156,25,188,217,12,179,217,12,34,40,189,180,35,63,126,139,161,111,197,65,40,241,240,252, - 100,213,50,93,100,91,229,43,179,70,142,172,52,70,197,78,156,73,184,144,189,127,220,123,83,162,109,38,235,171,248,13,73,31,79,123,121,151,68,204, - 150,181,99,230,121,48,140,192,25,163,245,15,64,8,241,146,72,36,251,126,248,225,135,91,173,91,183,38,90,173,22,102,179,25,5,5,5,216,191,127, - 127,34,165,20,158,158,158,248,225,135,31,248,161,67,135,238,35,132,12,168,198,108,109,158,52,105,82,196,220,185,115,7,206,154,53,203,191,99,199,142, - 8,9,9,1,207,243,40,40,40,0,234,240,3,16,24,24,184,249,224,193,131,17,135,15,31,30,216,165,75,23,255,224,224,224,50,77,173,86,11,147, - 201,84,43,205,236,236,236,235,13,27,54,220,61,99,198,140,193,211,166,77,19,242,60,143,27,55,110,128,2,84,40,18,131,97,24,8,133,44,138,139, - 85,188,139,155,34,219,68,5,46,66,145,24,140,64,84,213,50,225,244,168,152,210,244,14,12,43,82,219,86,2,138,68,34,156,219,251,145,42,42,102, - 129,28,0,68,18,89,97,247,238,221,211,154,53,107,166,61,127,254,124,40,202,173,58,44,15,1,44,253,98,166,8,92,100,82,109,116,116,116,186,77, - 243,206,79,159,168,134,189,51,147,16,129,88,251,210,75,47,165,69,70,70,106,5,2,1,174,125,187,76,213,47,102,138,148,252,181,166,183,2,135,111, - 209,81,151,247,158,140,88,180,104,145,185,87,175,94,119,109,241,98,119,238,220,9,236,221,187,183,100,229,202,149,230,222,189,123,103,180,104,209,66,195, - 48,12,46,92,184,224,112,21,97,121,100,50,153,121,196,136,17,233,87,175,94,173,211,170,195,234,168,87,175,30,120,158,71,215,174,93,161,215,59,30, - 16,116,154,45,39,78,158,76,28,26,45,179,197,60,46,246,221,121,159,0,228,175,44,127,148,254,53,176,68,65,222,127,127,146,43,0,153,205,108,77, - 152,48,161,218,109,78,236,76,86,219,161,67,135,98,250,244,233,248,248,227,143,185,229,203,151,11,174,223,76,53,197,188,51,183,168,92,59,160,160,26, - 222,204,143,115,164,87,88,172,157,219,169,247,146,121,153,185,37,167,98,198,204,42,251,245,226,0,168,136,146,3,128,141,27,54,106,133,18,15,215,129, - 131,135,1,64,244,39,171,150,237,95,136,173,213,155,45,74,154,142,155,48,197,211,102,178,214,173,92,116,213,131,228,174,141,155,148,88,54,13,101,251, - 107,224,229,142,253,157,122,47,121,49,239,190,246,97,183,96,113,82,11,196,98,241,130,95,127,253,213,181,101,203,150,228,222,189,123,224,184,210,119,196, - 100,50,161,184,184,24,106,181,26,6,131,1,109,218,180,97,214,172,89,227,26,23,23,183,0,192,59,149,233,81,74,121,66,136,110,231,206,157,254,81, - 81,81,72,74,74,130,74,165,130,135,71,205,227,114,202,51,119,238,92,126,212,168,81,186,145,35,71,250,135,135,135,227,250,245,235,48,153,76,16,139, - 235,158,219,54,37,37,101,221,119,223,125,135,227,199,143,15,154,54,109,154,48,32,32,128,120,120,228,16,179,201,8,128,210,252,252,124,222,197,77,145, - 237,227,31,156,158,149,147,215,212,108,50,130,231,76,149,70,155,91,211,59,188,159,144,144,80,255,163,143,62,50,218,175,4,28,60,229,147,53,109,218, - 180,241,90,187,118,173,241,165,151,94,74,179,5,175,215,36,24,254,200,109,140,79,72,184,210,188,188,102,84,236,71,159,218,52,237,87,35,246,153,180, - 233,211,240,240,112,175,200,200,200,180,170,116,195,194,194,116,74,165,210,24,17,17,161,17,10,133,165,35,89,102,115,73,88,88,24,239,239,239,111,108, - 214,172,153,166,182,65,251,50,153,140,2,21,115,94,217,168,205,170,67,161,0,150,161,67,135,150,101,134,127,63,60,60,123,216,176,97,202,137,19,39, - 226,211,79,63,197,233,211,167,43,152,253,46,93,186,224,196,137,19,243,240,112,249,222,156,56,113,242,47,196,161,209,250,236,179,248,95,96,23,211,228, - 136,133,11,23,74,172,35,89,209,239,189,247,30,116,58,157,103,249,58,132,144,110,182,92,27,142,76,214,178,101,203,118,81,74,131,1,116,228,56,254, - 183,45,91,63,235,90,93,135,237,53,41,97,4,12,67,52,98,33,189,184,97,243,167,95,216,215,179,6,191,55,1,193,229,79,86,45,211,1,136,46, - 111,182,6,12,24,80,82,94,211,198,232,49,111,151,153,172,79,86,45,251,41,178,109,200,43,179,70,46,112,104,206,22,204,125,219,149,97,200,243,246, - 49,90,142,52,31,22,167,230,95,154,132,144,174,195,135,15,111,245,220,115,207,49,246,38,203,104,52,150,37,238,180,5,139,103,102,102,162,75,151,46, - 76,171,86,173,90,16,66,186,82,74,143,218,107,70,53,39,174,40,193,171,247,116,104,62,111,242,152,247,91,183,138,68,110,110,46,230,207,159,79,23, - 45,90,84,171,209,5,155,230,250,245,235,93,9,33,175,22,23,23,55,239,215,175,223,251,161,161,161,200,205,205,197,177,99,199,104,255,254,253,235,164, - 105,123,110,221,86,103,141,82,169,252,121,206,156,57,195,10,10,10,122,23,22,22,121,31,252,124,33,122,12,28,67,186,244,26,162,53,82,86,154,145, - 157,27,113,236,135,157,94,135,118,175,131,201,104,140,37,100,227,53,91,122,7,7,239,81,137,45,141,67,68,68,132,214,222,168,132,132,132,232,3,3, - 3,13,145,145,145,101,199,29,173,230,115,244,190,215,86,211,26,255,165,173,74,19,64,153,105,43,159,54,194,197,197,5,54,243,85,155,126,218,175,182, - 116,68,117,171,14,237,53,63,255,147,10,237,203,62,39,68,16,31,31,223,45,62,62,190,45,128,139,0,142,0,48,91,207,43,11,154,167,148,126,0, - 224,131,234,174,253,97,112,106,58,53,255,205,154,79,42,117,202,47,100,11,124,7,192,76,152,48,161,80,167,211,121,14,27,54,172,202,115,114,114,114, - 62,221,190,125,251,3,38,235,213,87,95,125,107,223,190,125,63,231,229,229,213,165,27,240,148,203,22,30,255,126,170,103,151,151,150,188,7,96,185,195, - 74,20,124,100,91,229,43,159,172,90,182,31,15,154,173,29,0,94,117,112,6,1,128,238,61,94,198,206,207,214,218,98,187,100,87,207,103,30,26,244, - 231,124,135,171,21,21,110,146,249,214,126,76,132,51,70,235,111,65,36,18,69,77,155,54,77,164,213,106,43,152,172,242,70,75,165,82,225,242,229,203, - 136,137,137,145,92,186,116,41,10,192,3,251,102,146,18,12,15,11,241,31,223,163,65,176,176,36,247,10,62,91,53,15,127,220,46,164,7,15,30,92, - 49,117,234,212,73,62,62,62,184,119,239,158,5,64,141,211,129,51,12,51,220,199,199,103,121,203,150,45,153,162,162,34,156,59,119,14,201,201,201,244, - 214,173,91,43,140,70,227,36,137,68,130,146,146,18,75,73,73,73,205,83,140,151,35,59,59,251,186,53,25,233,120,219,116,147,68,42,19,13,25,254, - 94,112,217,170,195,221,235,96,208,235,0,128,173,73,122,7,150,101,69,151,46,93,10,181,141,90,153,76,38,137,237,248,249,243,231,67,109,185,181,244, - 122,125,141,87,29,62,46,205,43,87,174,4,219,86,71,218,86,23,178,44,43,186,112,225,66,176,77,211,96,48,212,104,232,80,44,22,139,46,93,186, - 20,204,113,220,35,91,117,104,195,106,140,15,91,111,0,74,13,150,213,100,17,235,116,161,115,218,208,137,147,39,148,58,25,45,91,224,123,77,235,19, - 66,216,250,245,235,119,31,60,120,240,3,38,107,192,128,1,220,215,95,127,125,76,169,84,230,50,12,83,221,54,33,21,117,109,49,90,128,176,124,25, - 195,48,151,59,62,211,12,12,195,92,158,53,114,164,97,33,182,62,96,182,190,221,191,231,197,74,100,75,211,3,248,7,99,232,91,113,24,250,86,156, - 39,128,14,64,229,171,21,171,234,135,147,199,3,33,68,28,24,24,120,85,175,215,131,16,2,131,193,80,102,176,212,106,53,138,139,139,203,158,155,76, - 38,228,231,231,35,36,36,4,132,144,10,113,116,20,96,122,118,121,42,179,95,215,54,157,118,255,124,165,228,163,93,95,179,127,166,170,223,161,148,110, - 147,203,229,1,193,193,193,209,215,174,93,155,70,41,173,113,150,94,74,41,19,26,26,202,40,149,74,214,26,39,102,188,126,253,250,59,91,183,110,221, - 22,23,23,23,224,225,225,17,157,155,155,59,109,239,222,189,143,38,243,175,21,147,201,100,153,54,239,163,237,2,86,100,225,57,35,99,50,153,222,66, - 45,190,231,211,166,77,99,224,32,246,42,46,46,206,225,241,127,74,115,198,140,25,14,87,9,198,197,197,85,185,122,176,50,38,77,154,244,200,86,29, - 214,4,167,161,114,226,228,255,15,117,50,90,12,195,92,118,176,186,144,0,160,142,86,244,81,74,45,2,129,96,158,66,161,120,91,171,213,254,248,234, - 171,175,78,24,48,96,0,7,148,6,200,215,165,15,64,105,140,86,84,159,165,19,139,52,134,181,229,203,202,143,60,217,204,214,186,213,203,214,239,223, - 247,229,128,156,172,12,135,43,176,108,6,173,178,50,71,199,139,85,186,121,81,125,150,190,87,168,210,57,99,180,254,38,56,142,59,34,147,201,136,109, - 51,101,251,209,43,149,74,133,146,146,18,88,183,164,1,0,104,52,26,120,120,120,128,227,56,135,107,88,19,110,164,187,182,104,24,116,166,184,176,128, - 184,65,125,158,82,186,13,0,84,42,213,208,186,246,177,168,168,136,200,229,114,220,191,127,31,238,238,238,159,109,221,186,117,27,0,172,93,187,182,206, - 154,229,161,148,26,8,33,147,9,33,182,17,221,201,41,71,87,151,125,182,9,89,123,217,190,172,138,209,172,236,154,108,16,237,232,188,170,202,30,131, - 102,110,21,27,68,87,69,110,45,245,114,1,64,36,20,228,85,182,121,180,72,40,168,219,80,124,57,108,163,90,0,230,61,10,61,39,78,156,252,187, - 112,104,180,108,38,168,50,42,203,147,85,21,28,199,45,5,176,180,182,231,85,197,213,155,234,205,0,54,215,180,190,53,38,235,77,235,205,33,220,189, - 132,90,95,219,128,1,3,54,2,216,88,109,69,39,143,12,179,217,252,43,0,248,250,250,194,215,215,183,54,231,85,56,38,96,112,232,216,249,164,150, - 199,254,72,34,0,192,48,216,251,176,253,227,121,254,80,122,122,122,251,244,244,116,6,0,40,165,59,31,86,179,50,40,165,235,9,33,219,172,143,13, - 53,45,43,87,239,145,111,108,252,152,52,15,87,95,235,209,233,29,72,178,248,63,202,246,170,232,135,115,132,203,137,147,39,148,71,182,7,156,19,39, - 255,85,126,73,161,183,0,188,245,40,53,199,142,29,123,11,165,89,230,255,22,170,49,81,213,167,51,113,226,196,137,19,39,143,5,2,160,155,163,130, - 218,172,38,32,132,56,212,168,138,234,244,157,154,78,77,167,166,83,211,169,233,212,116,106,62,121,154,213,105,151,91,97,30,75,41,173,241,204,213,191, - 18,74,233,99,187,1,232,230,212,116,106,58,53,157,154,78,77,167,166,83,211,169,89,199,118,98,255,142,118,30,231,173,102,217,252,156,56,113,226,196, - 137,19,39,78,156,212,26,103,140,86,13,33,245,250,205,6,232,244,210,39,100,25,77,255,230,131,127,182,71,143,158,129,3,7,86,154,61,220,17,169, - 169,10,230,79,40,63,150,187,138,250,104,180,230,143,185,11,115,42,172,254,180,135,16,66,124,194,90,191,225,34,117,121,199,104,52,54,112,115,119,207, - 187,127,47,127,227,253,244,43,235,236,170,201,127,251,237,55,229,115,207,61,151,5,64,13,0,212,250,111,141,19,39,78,30,29,196,179,121,61,16,50, - 28,160,127,45,187,228,105,34,45,186,246,217,3,245,20,205,222,2,67,154,219,29,210,129,98,11,45,76,188,235,80,247,175,37,233,138,228,228,228,14, - 143,132,18,0,0,32,0,73,68,65,84,208,70,141,26,165,1,40,42,87,173,66,153,243,123,238,228,73,229,161,141,22,105,220,191,1,44,204,155,160, - 120,29,4,151,104,202,222,254,117,210,105,244,106,16,120,246,89,0,173,1,218,218,85,38,125,90,103,52,229,241,148,190,65,147,119,95,172,181,94,216, - 192,49,168,124,59,139,121,52,101,239,134,218,41,210,25,127,156,248,90,162,112,33,104,212,230,149,41,176,203,224,92,87,8,33,98,0,157,24,134,105, - 238,226,226,162,44,41,41,201,231,121,254,46,128,159,41,165,213,110,105,84,137,38,3,96,132,155,171,107,143,80,119,113,235,244,130,226,76,181,153,59, - 9,96,121,93,53,29,81,106,178,2,54,191,55,228,185,152,101,239,118,131,34,106,233,20,0,149,26,45,66,8,9,110,242,252,183,131,6,15,140,26, - 27,27,227,22,228,235,134,236,2,173,247,134,79,227,63,138,143,223,249,210,200,65,209,61,0,96,193,130,5,253,234,213,171,87,95,32,16,164,206,158, - 61,123,199,220,185,115,169,221,15,119,121,77,37,0,150,82,122,215,250,220,21,64,36,128,48,0,41,0,18,40,165,90,71,231,214,148,255,138,102,112, - 112,112,32,207,243,35,253,253,253,123,231,230,230,30,100,24,102,107,70,70,70,86,245,103,62,86,54,217,226,43,106,122,15,224,237,218,52,32,147,201, - 114,245,122,189,31,0,72,165,210,60,157,78,247,216,86,9,254,157,109,253,45,16,140,58,114,42,161,135,253,161,238,29,155,87,172,199,144,230,71,78, - 37,118,126,176,94,36,7,7,191,129,214,236,171,152,55,111,30,153,63,127,254,91,13,27,54,12,103,24,230,198,156,57,115,30,72,125,83,190,204,246, - 61,119,154,45,39,79,34,117,50,90,164,249,64,87,232,233,0,128,196,116,105,223,166,227,219,111,244,33,84,32,197,144,81,83,45,181,214,170,255,150, - 4,2,221,194,150,145,205,39,12,236,211,141,105,27,89,31,74,95,15,128,17,98,211,15,119,188,215,46,155,189,30,192,115,117,232,230,220,219,103,119, - 249,101,23,113,32,4,32,4,96,8,160,209,243,232,222,239,205,185,0,106,105,180,8,163,112,33,152,176,75,15,128,212,106,228,199,161,26,33,245,125, - 125,125,223,26,63,126,188,107,100,100,164,66,42,149,138,245,122,189,127,114,114,178,239,236,217,179,35,9,33,223,83,74,255,168,165,102,72,163,224,192, - 61,107,39,140,120,182,85,88,40,132,70,13,120,131,182,222,205,228,91,237,71,175,223,59,138,16,50,152,214,97,203,132,130,130,2,2,0,62,62,62, - 20,176,55,89,237,98,86,78,236,142,9,43,142,160,68,111,252,162,42,13,175,250,79,13,123,229,149,151,163,22,205,140,115,203,188,103,194,165,84,29, - 188,220,68,152,59,121,140,216,96,48,183,95,191,35,62,246,147,37,83,183,112,28,247,63,0,109,57,142,59,15,96,199,188,121,243,8,128,10,63,190, - 214,140,232,51,74,31,146,157,2,129,224,167,110,221,186,53,24,57,114,36,105,211,166,13,46,92,184,16,182,107,215,174,110,44,203,166,114,28,119,5, - 192,13,74,105,197,220,14,14,32,132,8,1,52,17,8,4,45,255,205,154,129,129,129,50,163,209,248,102,112,112,112,108,223,190,125,91,246,233,211,135, - 52,105,210,4,215,175,95,111,115,232,208,161,185,79,61,245,212,149,140,140,140,205,98,177,120,123,86,86,86,157,51,208,215,21,66,72,44,128,64,171, - 79,158,87,131,251,44,0,243,40,165,85,229,209,122,0,189,94,239,103,251,219,76,8,113,152,239,234,81,81,155,182,8,33,215,8,33,94,214,199,168, - 234,158,97,24,88,44,22,173,197,98,105,88,141,102,19,160,86,225,30,148,82,90,85,34,104,25,0,116,239,208,252,62,8,18,1,0,60,77,172,80, - 139,167,137,101,6,140,162,249,145,211,137,94,15,140,130,149,99,222,188,121,100,238,220,185,248,224,131,15,250,0,232,196,243,252,201,166,77,155,174,121, - 64,146,231,203,202,230,206,157,187,186,178,239,185,19,39,79,2,53,54,90,132,16,130,134,253,59,131,67,76,104,61,255,1,239,142,124,77,22,217,180, - 17,244,112,195,157,2,14,63,28,56,4,0,187,107,211,56,9,27,212,150,21,97,251,178,15,38,71,116,122,54,18,87,51,205,56,159,201,161,36,213, - 12,1,99,6,199,83,128,194,241,86,247,53,32,163,208,130,83,55,140,96,8,32,96,0,134,33,16,212,53,42,141,51,222,92,240,217,133,200,130,92, - 30,224,140,55,235,218,39,0,32,132,52,111,220,184,241,176,249,243,231,43,114,114,114,92,47,92,184,0,137,68,2,79,79,79,129,82,169,12,92,177, - 98,133,238,221,119,223,237,77,8,185,67,41,45,168,161,102,211,94,109,91,158,217,188,108,129,135,249,183,67,40,250,242,43,8,24,10,145,171,27,26, - 200,100,56,244,74,35,175,1,7,82,191,38,132,52,165,148,102,86,167,151,148,148,36,48,24,12,131,229,114,121,59,161,80,232,47,245,172,207,103,177, - 109,239,229,147,176,148,60,191,146,206,19,187,249,247,248,248,189,174,152,176,226,8,86,237,58,247,121,107,228,204,169,74,207,197,197,237,237,119,223,25, - 233,150,81,96,194,194,175,11,240,217,9,21,222,236,228,142,9,61,61,48,116,200,32,215,189,95,237,123,27,192,22,187,83,174,55,109,218,148,36,37, - 37,57,50,89,158,0,166,26,141,70,70,36,18,17,169,84,58,108,209,162,69,166,33,67,134,100,216,234,116,234,212,9,157,58,117,34,106,181,58,236, - 232,209,163,97,241,241,241,22,66,200,53,74,233,183,149,245,81,38,115,73,215,235,117,245,164,50,89,201,134,245,235,63,238,220,185,51,47,145,252,181, - 43,76,93,52,1,64,161,80,108,105,220,184,49,153,62,125,122,214,163,210,108,208,160,193,145,78,157,58,117,237,222,189,59,219,161,67,7,4,6,6, - 150,149,249,248,248,160,83,167,78,228,238,221,187,173,78,158,60,185,254,200,145,35,107,26,52,104,112,52,53,53,181,123,85,154,143,26,235,72,21,106, - 97,156,54,87,50,120,249,159,131,16,226,182,105,211,38,63,219,158,140,102,179,25,28,199,149,221,219,110,60,207,131,227,56,44,90,180,168,202,220,133, - 54,172,35,159,54,83,98,187,241,142,238,197,98,177,79,205,58,139,68,165,164,168,153,171,171,107,40,128,94,141,27,55,158,106,95,28,110,77,83,167, - 213,106,211,178,13,138,68,0,157,43,104,252,133,98,254,252,249,111,126,240,193,7,47,227,175,61,43,91,14,28,56,240,104,185,122,45,173,247,90,66, - 200,49,134,97,190,7,240,25,128,71,54,234,238,228,137,227,25,0,246,73,19,141,0,108,91,102,21,160,244,123,225,93,238,184,125,61,219,125,190,245, - 184,175,245,60,106,167,155,15,160,86,3,28,53,129,5,128,131,7,15,210,222,189,123,19,219,189,195,154,13,6,252,48,98,72,223,30,189,95,120,30, - 140,212,19,55,243,128,179,233,20,44,99,6,3,138,223,78,31,165,96,249,237,246,167,84,53,122,66,26,12,152,212,178,69,228,210,173,203,198,11,174, - 229,177,248,236,100,9,76,122,13,242,115,210,145,151,149,134,236,140,20,100,166,167,92,1,200,220,154,106,150,135,82,128,227,81,250,63,32,15,148,190, - 158,21,47,175,70,154,102,109,82,195,136,22,145,133,98,14,48,107,147,170,111,219,177,38,33,164,69,120,120,248,144,153,51,103,122,37,36,36,200,74, - 74,74,12,135,14,29,186,126,231,206,29,185,82,169,188,63,102,204,152,240,192,192,64,121,191,126,253,196,123,246,236,233,7,187,132,172,85,104,70,246, - 109,247,244,217,79,215,172,116,189,183,119,45,140,201,151,241,67,182,22,167,115,75,104,152,135,132,140,107,229,11,55,9,139,5,29,2,221,122,237,79, - 94,10,96,104,85,154,103,206,156,81,186,184,184,172,120,253,245,215,149,113,113,113,18,142,85,176,251,206,222,243,152,186,254,108,96,137,193,36,24,210, - 181,62,38,190,222,18,19,87,253,106,51,89,177,13,26,20,241,85,105,154,77,166,6,193,126,114,92,186,163,195,103,39,84,248,101,102,32,94,88,148, - 133,87,91,179,104,26,226,6,139,201,220,100,224,192,129,219,81,186,153,249,31,0,250,13,28,56,48,66,32,16,252,10,224,155,234,222,35,169,212,241, - 238,41,158,158,158,232,210,165,11,154,54,109,202,118,238,220,185,37,128,50,3,83,94,211,100,50,42,121,158,194,221,221,93,230,237,237,237,233,238,238, - 126,207,150,89,190,174,154,0,224,229,229,213,191,75,151,46,236,174,93,187,10,82,83,83,127,27,50,100,72,138,92,46,127,96,244,215,213,213,21,225, - 225,225,152,61,123,54,219,163,71,143,106,53,253,253,253,163,227,227,227,65,8,41,251,163,93,158,208,208,80,4,4,4,160,87,175,94,108,255,254,253, - 163,237,203,234,50,178,89,29,229,53,173,35,90,15,100,59,175,106,250,205,81,253,26,188,239,121,182,209,37,169,84,90,163,76,237,213,104,86,58,221, - 41,145,72,202,70,161,202,183,229,72,147,97,24,204,154,53,11,132,16,8,133,66,136,68,34,135,247,81,81,81,181,237,231,93,66,8,35,18,137,166, - 178,44,59,210,96,48,4,75,165,210,44,142,227,62,55,24,12,139,172,35,162,10,71,159,221,202,52,93,93,93,67,111,222,188,217,184,178,23,197,96, - 48,160,101,203,150,128,1,215,170,210,76,78,78,14,109,216,176,97,19,0,182,45,218,78,80,74,59,219,61,183,231,4,165,180,167,245,241,141,219,183, - 111,135,194,106,180,254,142,207,167,83,243,223,167,89,141,23,241,37,132,28,176,107,255,37,219,243,105,211,166,205,88,188,120,113,2,33,228,128,253,113, - 251,122,246,247,0,96,123,60,125,250,244,200,37,75,150,124,104,171,251,168,175,9,168,221,212,161,60,95,239,138,147,233,114,176,2,14,44,67,192,10, - 0,80,130,180,59,201,80,171,138,78,209,148,175,82,107,34,68,194,6,118,120,234,233,150,203,118,174,154,194,108,59,89,130,34,173,30,73,23,143,225, - 143,99,223,228,112,22,238,27,16,122,30,96,46,32,133,191,78,233,222,26,253,167,87,177,17,202,150,26,45,171,185,122,192,108,253,51,16,66,90,69, - 68,68,12,154,61,123,182,207,159,127,254,41,45,46,46,86,239,220,185,51,203,96,48,220,1,112,56,45,45,45,98,245,234,213,226,101,203,150,181,104, - 213,170,149,114,223,190,125,198,154,104,78,142,25,122,118,228,187,239,73,175,237,89,7,241,181,11,152,117,185,128,251,37,187,100,38,128,85,184,171,233, - 144,175,183,252,180,178,75,61,166,190,187,8,141,20,98,199,191,234,86,146,146,146,4,46,46,46,43,226,227,227,67,159,121,230,25,6,0,78,222,176, - 72,166,174,63,27,120,120,113,7,210,161,185,55,242,138,12,24,191,238,18,14,157,205,251,177,188,201,170,12,119,119,247,252,140,60,149,191,183,155,20, - 111,116,116,195,11,139,178,48,160,173,4,18,17,193,245,212,28,52,106,88,159,92,58,245,109,91,148,154,172,103,178,179,179,1,160,45,128,212,187,119, - 239,42,1,20,219,180,40,165,133,132,144,165,98,177,120,22,33,132,62,243,204,51,151,90,180,104,161,241,244,244,132,78,167,131,193,96,128,72,36,130, - 78,167,67,90,90,26,126,251,237,55,120,122,122,86,215,197,7,208,104,52,112,119,119,7,207,243,15,173,201,113,28,217,184,113,163,107,66,66,130,235, - 190,125,251,252,39,76,152,112,175,89,179,102,231,7,13,26,116,203,207,207,207,112,249,242,101,156,57,115,6,133,133,133,104,215,174,93,141,52,141,70, - 35,88,150,133,78,167,131,68,34,1,203,178,176,88,44,224,121,190,204,124,105,52,26,220,191,127,31,34,145,8,70,99,181,31,165,71,142,109,68,203, - 158,170,166,223,28,213,175,142,71,29,39,85,213,116,103,81,81,145,76,161,80,76,173,201,8,29,33,4,2,129,0,34,145,8,132,16,116,238,220,25, - 35,70,140,64,235,214,173,145,156,156,140,47,191,252,18,127,252,241,7,132,66,97,89,253,154,18,21,21,37,144,74,165,103,250,246,237,27,57,115,230, - 76,105,253,250,245,113,237,218,181,144,37,75,150,76,253,249,231,159,95,38,132,180,165,148,86,251,157,44,155,18,44,157,46,236,101,48,24,112,237,90, - 5,31,85,213,57,21,104,212,168,81,26,195,48,183,120,158,63,9,160,37,165,180,51,33,228,16,0,215,114,85,181,148,210,158,132,16,21,128,43,12, - 195,220,224,121,62,205,25,162,229,164,58,202,155,33,155,129,90,188,120,241,75,229,143,57,50,78,229,143,47,89,178,228,67,187,231,143,101,68,181,204, - 104,29,60,120,176,234,79,56,143,87,15,124,189,235,220,11,38,132,70,182,233,132,191,70,135,40,46,252,118,6,0,253,188,38,13,146,192,62,50,198, - 197,245,243,141,31,198,49,155,142,149,224,110,86,30,206,252,240,57,242,179,239,124,6,208,9,52,101,175,170,238,151,99,109,163,65,255,22,126,190,190, - 10,189,137,130,167,0,42,152,173,191,31,66,72,235,38,77,154,244,63,123,246,172,143,94,175,151,158,58,117,170,36,62,62,62,199,100,50,29,163,148, - 158,182,214,249,51,63,63,127,32,0,184,186,186,10,88,150,21,87,21,32,74,8,105,61,121,228,155,167,150,110,252,84,122,235,234,37,172,222,247,3, - 138,74,74,184,99,121,186,126,148,82,155,163,255,181,145,66,146,73,65,235,9,25,2,165,171,48,128,16,34,165,148,58,156,146,53,24,12,67,94,127, - 253,117,165,205,100,1,64,129,218,204,150,24,204,130,14,205,189,209,166,235,64,92,56,186,23,123,78,100,162,161,175,203,137,6,174,213,155,44,0,200, - 207,203,222,184,114,237,166,149,75,231,77,22,79,236,229,129,1,109,133,144,138,8,228,46,66,44,90,179,197,252,231,111,39,46,43,149,202,3,0,250, - 101,103,103,67,169,84,106,0,220,16,8,4,169,28,199,101,149,127,9,40,165,115,8,33,254,219,183,111,103,204,102,179,38,57,57,25,1,1,1,240, - 247,247,135,135,135,7,146,146,146,240,203,47,191,224,250,245,235,224,121,30,79,61,245,84,77,186,89,198,189,123,247,112,249,242,101,244,234,213,123,66, - 126,126,158,220,211,203,91,123,234,228,137,143,234,162,201,243,60,1,128,200,200,72,68,70,70,74,51,51,51,131,15,28,56,224,183,112,225,194,244,208, - 208,208,157,58,221,95,225,83,6,67,205,146,184,219,140,147,94,175,47,51,129,82,169,20,34,145,8,42,149,10,185,185,185,80,171,213,0,0,133,66, - 241,143,24,45,71,35,84,143,178,254,227,160,170,233,78,66,200,235,0,166,58,56,173,2,132,16,88,44,22,136,68,34,60,247,220,115,88,187,118,45, - 254,248,227,15,124,243,205,55,8,9,9,65,76,76,12,24,134,65,66,66,66,109,187,200,159,61,123,118,106,191,126,253,34,183,111,223,46,77,75,75, - 195,245,235,215,161,80,40,176,118,237,90,73,108,108,108,163,163,71,143,206,1,176,188,58,33,251,213,133,129,129,129,175,181,108,217,178,66,157,128,128, - 0,143,195,135,15,251,217,12,88,249,21,137,14,40,154,51,103,206,202,166,77,155,174,178,78,23,118,2,224,74,41,141,218,183,111,31,1,128,1,3, - 6,80,66,200,49,107,253,43,123,247,238,237,154,148,148,68,63,248,224,3,167,203,114,226,208,139,88,71,149,179,173,143,29,26,168,154,82,126,196,203, - 198,244,233,211,35,23,47,94,252,123,93,117,171,162,236,143,105,165,83,134,54,88,70,25,224,231,237,53,45,166,3,120,30,176,112,128,133,163,208,150, - 232,112,237,234,31,37,144,146,125,53,106,81,34,94,182,112,230,123,97,151,50,24,100,21,154,112,252,219,77,52,63,251,78,127,154,178,103,248,163,49, - 89,131,90,6,248,251,29,223,181,105,1,243,71,138,17,28,95,234,179,120,158,150,61,254,187,33,132,4,248,250,250,14,61,119,238,156,175,68,34,145, - 222,188,121,147,223,187,119,111,161,201,100,250,217,102,178,172,116,104,219,182,173,197,205,205,13,90,173,214,108,50,153,244,85,152,172,224,168,214,173,78, - 44,221,248,169,84,111,52,162,88,103,128,192,219,175,188,201,2,33,228,249,174,141,131,130,136,212,29,20,192,29,149,41,171,50,147,5,0,18,137,164, - 91,92,92,156,196,254,152,143,187,208,226,34,17,114,167,19,11,248,11,71,247,226,100,66,1,47,21,9,56,95,154,18,86,211,215,160,40,35,113,227, - 55,223,29,248,105,210,236,101,154,18,173,26,13,3,101,208,168,139,177,104,241,82,243,217,179,39,143,77,157,48,186,253,222,189,123,151,0,184,97,61, - 229,198,222,189,123,223,156,61,123,246,14,88,211,60,56,32,107,232,208,161,25,205,155,55,47,110,218,180,105,241,189,123,247,144,152,152,136,194,194,66, - 172,94,189,26,215,174,93,3,207,151,250,64,71,211,40,213,193,243,60,10,11,239,187,81,74,81,120,255,158,235,204,153,51,61,234,162,201,113,220,3, - 223,173,160,160,32,140,25,51,70,84,82,82,162,72,79,79,151,219,151,213,84,211,104,52,218,146,249,129,82,10,163,209,136,226,226,98,24,141,70,220, - 186,117,171,204,100,89,219,255,199,70,180,108,143,101,50,89,46,41,221,56,25,82,169,20,132,16,71,211,111,143,36,251,179,173,45,66,8,149,201,100, - 149,109,38,237,16,171,217,115,72,109,251,199,113,28,68,34,17,70,140,24,129,223,127,255,29,201,201,201,16,8,4,208,106,181,40,41,41,65,116,116, - 52,196,98,177,173,221,154,202,82,145,72,244,250,140,25,51,164,169,169,169,40,40,40,248,63,246,206,59,42,170,171,107,227,207,153,59,149,25,134,222, - 59,210,85,108,168,216,176,247,88,146,88,177,107,236,70,163,177,199,216,98,212,24,123,139,70,19,99,176,226,171,98,139,45,150,88,163,98,141,162,136, - 2,210,165,151,1,166,222,243,253,1,99,16,7,152,1,76,251,230,89,235,174,196,59,231,254,238,62,83,55,251,236,179,183,54,153,30,26,141,6,211, - 167,79,55,17,10,133,67,97,96,232,62,57,57,185,91,116,116,180,95,249,35,53,53,53,183,108,78,97,117,117,232,208,33,210,191,127,127,218,191,127, - 127,170,117,184,140,50,74,151,116,249,34,101,63,123,181,177,188,167,139,81,186,124,104,82,83,182,46,233,181,116,72,188,7,53,182,183,182,186,184,123, - 203,82,211,19,143,8,18,19,226,144,158,18,143,166,45,219,227,201,163,251,96,85,154,195,52,58,188,202,237,233,196,115,128,111,64,221,122,147,218,181, - 12,196,170,19,5,136,142,60,131,156,244,148,205,52,246,224,225,154,79,5,32,30,3,26,218,219,219,92,252,121,203,82,139,95,30,115,144,144,16,135, - 136,159,215,81,149,82,158,3,160,236,78,46,131,255,106,54,97,21,130,130,156,52,40,242,53,16,113,10,117,39,4,85,32,74,105,170,157,157,221,149, - 117,235,214,117,106,209,162,133,96,200,144,33,169,217,217,217,17,148,210,155,111,108,47,73,144,239,185,105,211,38,251,132,132,4,92,184,112,33,5,64, - 133,75,177,148,210,68,134,97,182,254,250,243,142,89,38,117,252,177,97,254,231,234,67,183,31,247,161,148,254,82,134,25,208,185,129,239,137,101,51,39, - 115,216,187,167,241,32,62,13,47,115,229,191,86,196,204,200,200,32,133,133,133,238,22,22,22,101,239,3,71,137,76,62,123,160,111,114,151,57,87,157, - 138,149,26,8,121,28,58,173,175,123,242,173,136,67,214,25,197,25,68,187,27,177,42,141,29,212,185,239,150,176,35,195,79,156,56,57,73,41,47,14, - 244,247,247,163,119,110,92,124,48,103,250,132,238,85,95,173,83,166,183,110,221,226,48,12,243,150,131,94,54,66,164,149,190,145,34,67,164,47,179,188, - 163,165,149,90,173,126,231,188,190,76,185,92,14,93,62,184,174,92,45,150,101,223,203,252,171,82,217,8,85,217,37,67,109,62,93,113,113,177,157,137, - 137,73,154,118,249,175,182,34,90,53,217,137,88,217,242,165,33,246,113,56,28,176,44,11,62,159,143,70,141,26,225,196,137,19,176,178,178,130,153,153, - 25,204,204,204,96,98,98,2,107,107,235,55,142,22,135,163,247,46,29,42,151,203,221,220,220,220,240,252,249,115,136,68,162,55,135,80,40,68,253,250, - 245,33,147,201,156,241,183,197,238,141,50,234,253,74,27,141,42,155,107,53,119,238,220,249,213,229,205,157,59,119,190,174,8,87,109,138,11,252,233,65, - 234,242,36,181,78,214,174,205,75,204,142,220,3,18,19,99,113,238,224,198,124,149,82,145,205,178,42,247,151,79,239,3,28,252,164,215,221,56,180,121, - 223,158,29,200,185,63,20,200,203,73,199,179,59,103,226,80,36,152,87,27,19,209,58,89,187,183,44,177,56,254,136,32,33,33,14,191,236,219,144,167, - 82,42,59,211,151,225,119,106,194,30,38,16,244,29,84,215,162,215,152,54,201,208,132,104,48,244,73,84,15,167,16,210,55,249,74,229,59,195,202,234, - 245,235,215,17,82,169,148,124,251,237,183,237,138,139,139,255,71,41,125,19,162,36,132,4,122,121,121,13,254,254,251,239,173,18,18,18,120,87,175,94, - 149,93,188,120,17,0,142,85,198,212,104,52,179,9,33,76,19,15,231,79,239,198,37,245,161,148,158,46,195,172,223,43,168,222,181,31,86,44,148,170, - 174,29,66,65,74,2,230,93,75,204,3,160,247,243,173,82,169,144,155,155,11,85,65,166,186,169,163,44,119,241,0,59,121,90,118,49,151,199,22,170, - 3,204,94,203,47,102,190,100,196,98,177,190,56,0,192,150,21,179,194,0,132,13,24,48,96,247,195,27,39,155,58,58,58,158,12,8,8,32,0,160, - 107,135,97,69,42,45,239,48,189,85,171,86,36,56,56,248,247,245,235,215,159,213,62,166,203,169,168,78,68,171,42,233,203,100,89,86,231,175,168,74, - 165,122,231,243,86,157,136,86,89,233,114,180,254,206,136,150,46,167,165,172,147,88,214,17,170,78,142,86,109,171,50,103,202,16,251,180,121,114,124,62, - 31,247,239,223,135,171,171,43,148,74,37,164,82,41,164,82,41,76,77,77,145,159,159,15,30,143,103,80,126,22,0,86,36,18,189,122,252,248,177,159, - 173,173,45,52,26,205,91,206,86,116,116,52,36,18,73,18,12,140,104,57,57,57,157,41,221,117,248,150,28,28,28,204,13,225,84,164,178,145,172,254, - 253,251,27,151,8,141,210,169,202,124,17,0,233,229,34,81,138,50,255,78,7,64,74,255,157,14,188,113,196,202,254,191,66,199,185,204,21,43,86,92, - 44,147,223,149,142,247,160,74,35,90,196,123,80,99,59,43,203,139,59,55,44,54,59,24,9,36,37,196,226,242,225,77,185,106,141,178,35,88,154,114, - 227,252,225,67,32,40,196,203,67,151,129,131,85,223,141,69,147,38,117,221,113,244,15,21,210,19,163,65,41,187,139,166,253,92,88,211,73,16,239,126, - 141,236,236,236,46,238,218,180,216,252,200,125,130,196,132,88,156,59,184,41,79,173,42,236,68,95,254,47,178,186,220,79,8,177,228,72,197,223,13,239, - 214,124,128,123,29,103,176,84,5,150,79,241,241,108,27,238,179,187,133,71,221,186,50,7,217,2,118,82,226,13,253,10,129,230,231,231,31,37,132,220, - 41,91,94,129,16,210,208,199,199,103,224,214,173,91,109,19,19,19,69,119,239,222,45,218,190,125,251,107,150,101,143,80,74,171,92,74,165,148,126,78, - 8,217,89,182,94,14,33,164,225,172,209,67,110,12,25,245,137,40,246,124,24,44,99,159,96,230,181,100,205,179,108,69,40,165,52,181,34,150,141,141, - 13,205,200,200,136,207,201,201,241,147,72,36,200,204,204,68,86,86,22,114,115,115,33,207,203,82,91,107,114,100,68,157,5,30,143,135,215,9,42,104, - 52,154,84,125,163,89,0,44,151,46,93,58,150,101,89,109,69,196,183,118,23,150,25,167,125,63,248,13,24,48,96,183,118,215,33,202,36,195,151,41, - 239,64,74,203,59,180,56,125,250,116,84,247,238,221,19,129,119,157,21,161,80,136,226,98,195,170,132,84,180,139,177,58,204,138,34,90,229,207,27,194, - 212,46,95,106,147,224,203,159,215,138,97,24,176,44,251,206,249,191,66,101,157,150,178,187,3,245,25,95,153,170,42,28,90,157,157,136,90,213,86,68, - 11,192,155,136,214,177,99,199,48,106,212,40,104,52,26,136,197,98,152,154,154,66,34,145,224,240,225,195,208,150,127,48,196,68,149,74,181,103,197,138, - 21,243,183,109,219,102,66,41,133,64,32,120,227,104,45,94,188,184,72,169,84,238,129,30,142,214,155,138,239,44,125,236,99,91,249,174,67,93,215,84, - 144,175,101,177,116,233,210,17,44,203,246,69,185,18,14,229,198,189,85,250,193,88,222,193,40,61,84,235,101,23,254,42,85,232,104,17,239,126,141,108, - 45,109,46,238,216,176,216,108,239,109,130,228,132,151,184,126,108,115,174,134,85,117,44,83,169,189,141,65,119,35,164,137,147,157,5,178,110,22,33,47, - 227,21,64,113,183,38,198,255,105,167,237,197,31,55,45,54,15,191,199,65,210,171,88,92,58,188,41,87,173,150,119,162,47,255,87,109,254,48,129,160, - 111,125,95,151,31,6,247,104,99,105,78,84,80,199,71,97,231,200,129,136,236,173,68,235,65,230,104,222,83,10,239,198,162,129,167,118,100,117,114,10, - 33,159,232,27,221,42,231,100,53,241,244,244,236,119,243,230,77,27,150,101,69,151,46,93,42,222,190,125,251,235,162,162,162,179,148,210,251,250,218,90, - 206,201,106,50,119,220,200,171,203,191,219,41,122,28,121,27,171,246,28,71,145,74,161,57,147,88,48,160,236,178,98,69,146,203,229,231,55,109,218,228, - 254,197,23,95,8,179,178,178,144,145,145,129,236,236,108,228,228,228,32,43,43,11,5,5,5,112,112,112,192,153,51,103,20,121,121,121,55,171,226,105, - 117,253,250,117,79,15,15,143,0,148,236,36,4,222,221,93,88,86,183,83,82,82,154,161,130,93,135,186,36,149,74,193,231,243,161,84,42,223,68,180, - 132,66,33,204,205,205,145,153,153,137,3,7,14,0,64,86,101,12,62,95,144,194,225,16,87,19,177,88,46,18,137,88,71,71,199,119,198,24,202,44, - 85,98,143,30,61,92,150,46,93,42,10,10,10,122,115,82,27,209,170,14,147,82,90,216,181,107,87,241,198,141,27,225,238,238,14,133,66,241,150,67, - 197,225,112,192,231,243,145,144,144,128,101,203,150,129,82,90,227,63,104,12,85,89,167,165,172,51,84,154,67,245,142,35,164,111,196,168,170,165,65,67, - 119,34,150,117,220,132,66,33,114,114,114,76,8,33,67,117,149,120,48,36,162,165,117,180,158,60,121,130,221,187,119,163,103,207,158,176,180,180,68,118, - 118,54,14,30,60,136,168,168,40,8,4,2,16,66,12,137,106,177,193,193,193,223,92,185,114,165,119,104,104,104,189,153,51,103,154,4,6,6,226,217, - 179,103,88,186,116,105,113,100,100,100,76,81,81,209,82,232,83,216,180,180,226,187,182,24,169,94,187,14,203,93,83,94,21,148,119,232,161,115,240,219, - 165,31,222,42,239,96,148,81,255,37,85,28,209,98,57,155,118,110,92,98,182,231,22,7,9,241,49,184,115,106,107,121,39,171,74,17,66,58,151,173, - 181,33,50,145,4,178,164,100,59,115,94,70,2,64,25,131,29,161,242,76,176,156,77,63,108,92,108,190,239,14,65,114,194,11,92,139,216,82,226,100, - 189,8,215,155,93,150,57,92,32,88,200,227,114,190,248,160,109,19,126,72,99,63,136,95,199,34,53,49,25,7,158,164,103,197,100,203,63,185,70,148, - 136,127,33,223,217,115,172,149,149,165,3,15,189,38,88,91,221,60,158,119,212,185,35,71,73,149,116,69,242,85,186,88,167,157,239,222,211,65,42,149, - 134,222,185,115,199,76,36,18,153,220,185,115,135,221,190,125,123,102,81,81,209,41,74,233,13,189,230,254,238,227,46,205,124,189,46,47,223,178,67,84, - 32,43,132,76,161,132,208,222,81,115,228,198,163,126,180,130,2,152,229,153,66,161,112,223,190,125,251,122,182,109,219,214,61,48,48,144,163,117,174,180, - 201,213,182,182,182,120,242,228,9,27,27,27,155,44,20,10,247,235,107,103,171,86,173,98,57,28,206,211,210,101,180,167,40,183,187,176,204,80,191,148, - 148,148,102,142,142,142,151,1,136,181,187,14,81,210,41,254,60,240,86,121,135,249,0,56,132,144,219,247,239,223,47,232,222,189,59,76,76,76,32,147, - 201,224,230,230,6,181,90,141,83,167,78,33,50,50,82,198,178,236,101,0,111,57,175,229,237,44,42,42,116,35,132,112,138,10,11,27,141,24,49,162, - 221,140,25,51,222,218,146,110,103,103,7,43,43,43,131,152,0,144,149,149,85,247,244,233,211,159,221,191,127,255,243,158,61,123,154,207,159,63,95,232, - 233,233,9,141,70,195,169,46,51,59,59,219,252,238,221,187,171,219,180,105,51,185,123,247,238,220,229,203,151,195,220,220,28,26,141,6,38,38,38,200, - 203,203,195,210,165,75,113,245,234,85,53,165,116,75,110,110,238,204,170,152,53,85,121,102,69,17,160,138,28,33,93,227,255,10,59,203,57,110,176,176, - 176,152,3,96,142,174,18,15,250,50,129,63,35,90,12,195,32,46,46,14,219,183,111,127,167,142,150,182,252,131,46,118,5,115,167,151,46,93,210,16, - 66,90,222,185,115,103,206,240,225,195,63,145,201,100,46,18,137,36,89,165,82,253,84,84,84,164,173,163,197,215,215,78,160,164,24,169,174,93,135,229, - 199,0,22,239,156,47,203,44,87,222,225,173,18,14,229,46,123,171,244,67,249,242,14,127,197,235,110,100,254,243,152,255,85,233,116,180,72,208,120,30, - 79,32,105,112,37,134,84,219,201,210,37,121,113,97,204,194,125,175,26,43,228,197,144,229,166,61,163,177,251,13,10,235,87,100,231,111,49,4,113,177, - 47,112,235,196,150,18,59,95,132,87,219,78,2,204,221,122,42,156,79,204,173,240,224,179,81,72,206,145,225,151,151,217,7,105,161,124,82,88,105,175, - 64,151,150,228,202,15,95,164,110,13,249,216,124,160,141,51,15,107,103,253,4,209,92,107,126,243,78,109,245,238,129,72,41,77,181,183,183,191,178,97, - 195,134,206,33,33,33,194,1,3,6,188,147,32,111,168,40,165,137,132,144,239,78,110,91,51,203,186,65,11,108,254,114,182,102,223,141,71,111,237,66, - 172,74,1,1,1,154,235,215,175,207,24,63,126,252,218,206,157,59,59,245,233,211,71,224,230,230,6,161,80,136,23,47,94,224,202,149,43,138,151,47, - 95,38,23,22,22,206,104,216,176,161,33,53,206,178,23,46,92,248,77,233,61,72,233,114,97,83,148,238,46,212,14,42,45,90,218,20,128,120,241,226, - 197,195,1,64,215,182,239,210,242,14,219,80,210,235,48,53,44,44,172,101,68,68,68,203,233,211,167,243,123,246,236,137,155,55,111,226,220,185,115,74, - 165,82,121,3,192,13,170,103,91,155,210,250,67,119,9,33,143,86,173,90,213,146,97,152,55,21,239,31,63,126,140,93,187,118,85,135,169,6,176,154, - 16,242,93,88,88,216,194,243,231,207,143,30,49,98,132,153,74,165,194,147,39,79,240,227,143,63,86,151,249,153,173,173,237,130,83,167,78,253,116,246, - 236,217,15,135,13,27,198,153,58,117,42,54,109,218,132,255,253,239,127,172,70,163,137,224,241,120,35,210,211,211,107,212,71,177,186,42,141,0,37,163, - 164,226,187,190,61,15,171,228,214,100,105,80,79,187,245,110,1,84,145,180,243,104,223,190,253,155,40,35,165,244,173,188,58,173,131,101,232,210,33,0, - 139,210,247,233,22,148,244,23,45,91,21,158,193,159,149,227,245,37,214,75,145,91,60,134,28,79,42,111,42,109,1,80,232,14,101,253,169,156,133,11, - 23,174,91,180,104,209,186,242,37,28,202,14,42,95,250,97,201,146,37,58,63,231,70,25,245,95,144,78,71,139,70,110,87,17,175,254,243,55,44,159, - 189,72,173,82,228,82,40,251,211,152,255,233,189,148,85,145,40,75,231,94,216,187,120,19,40,178,169,70,173,87,61,154,74,121,239,201,78,98,110,133, - 252,165,19,241,191,63,146,105,170,76,245,81,152,66,241,86,52,168,52,39,107,144,83,8,57,96,233,196,59,242,89,71,107,114,50,107,184,193,247,73, - 75,75,59,38,149,74,57,107,214,172,105,87,88,88,248,86,130,124,117,69,41,157,77,8,97,154,251,184,127,122,235,121,124,95,125,150,11,203,171,85, - 171,86,41,81,81,81,67,206,158,61,27,250,219,111,191,117,150,201,100,238,132,16,136,197,226,120,185,92,126,94,40,20,238,51,208,201,2,0,44,90, - 180,136,46,89,178,132,68,69,69,81,134,97,126,5,16,203,48,76,92,217,36,248,178,231,181,215,44,94,188,184,162,185,150,253,65,252,141,16,18,185, - 116,233,210,182,75,151,46,109,132,146,168,208,111,213,93,50,43,117,120,126,51,49,17,39,19,66,92,248,2,161,236,250,245,235,231,107,200,44,68,73, - 164,100,237,218,181,107,191,150,72,36,205,30,63,126,252,107,77,152,165,78,84,63,107,107,107,167,221,187,119,135,255,240,195,15,45,184,92,238,77,66, - 200,128,156,156,156,191,187,169,244,120,232,215,227,176,236,127,171,84,109,23,41,125,31,142,155,70,163,41,88,176,96,193,27,150,118,110,229,163,87,218, - 127,43,149,74,189,146,243,12,220,69,89,133,227,66,10,0,160,164,119,97,73,91,29,125,155,74,3,168,176,119,166,246,115,206,225,112,34,0,60,227, - 112,56,207,203,111,116,41,251,216,146,37,75,42,253,156,27,101,212,191,93,21,46,29,210,23,135,54,1,216,68,200,18,14,165,139,106,37,147,150,198, - 134,159,71,73,18,116,173,169,182,237,164,192,183,99,155,183,159,133,146,191,10,215,150,119,178,202,42,249,10,141,112,108,77,86,52,239,212,118,58,74, - 46,88,110,232,253,116,37,200,215,84,186,18,228,13,85,64,64,128,6,64,24,128,176,242,77,165,171,105,19,37,37,191,48,90,198,209,132,132,4,39, - 141,70,147,82,238,47,217,183,206,47,94,188,88,123,173,62,247,40,4,240,11,33,228,44,165,180,122,29,5,202,169,168,168,208,21,0,8,33,76,109, - 49,41,165,175,1,124,82,155,204,204,204,204,100,0,173,188,189,189,5,49,49,49,127,253,22,195,10,84,27,209,161,247,173,218,118,220,0,64,169,84, - 214,173,109,38,165,244,89,213,163,12,2,254,216,181,77,61,6,101,107,7,85,213,84,26,0,64,10,64,241,99,5,54,150,253,156,239,126,241,226,133, - 59,203,178,241,58,162,85,111,61,166,253,156,215,120,78,70,25,245,15,84,149,117,180,106,203,201,122,223,170,45,59,127,86,40,22,1,88,84,229,192, - 82,165,92,163,95,0,248,162,38,247,172,77,39,171,12,211,96,39,43,60,188,154,237,142,244,84,185,47,210,60,0,121,58,190,91,43,58,111,200,125, - 106,125,30,255,22,230,63,201,201,50,234,159,45,154,253,56,1,192,151,85,142,171,186,26,252,219,227,255,252,240,102,3,200,174,224,179,92,217,99,70, - 25,245,159,146,65,201,1,70,25,101,148,81,70,25,101,148,81,70,233,47,2,160,179,174,7,12,217,77,64,8,209,201,168,76,85,241,141,76,35,211, - 200,52,50,141,76,35,211,200,252,239,49,171,98,151,223,189,76,107,169,61,215,223,38,237,78,152,247,113,160,100,75,190,145,105,100,26,153,70,166,145, - 105,100,26,153,70,102,117,238,51,238,175,184,207,251,60,140,75,135,70,25,101,148,81,70,25,245,47,82,23,63,226,216,195,155,56,215,22,175,135,55, - 113,174,77,114,156,189,32,0,0,32,0,73,68,65,84,158,81,111,75,175,166,210,70,253,243,68,8,241,1,48,31,64,217,94,100,183,40,165,43,202, - 141,219,11,160,108,67,66,25,128,165,148,210,231,134,220,143,97,152,21,109,219,182,157,116,245,234,213,53,42,149,106,105,53,236,117,119,116,116,252,134, - 16,18,4,128,71,8,121,145,150,150,182,66,165,82,85,187,224,29,33,164,142,131,131,195,74,0,141,57,28,14,143,16,18,147,150,150,182,76,165,82, - 149,111,247,97,8,83,106,111,111,223,154,82,234,0,128,225,241,120,153,73,73,73,191,211,106,238,158,27,176,36,138,159,39,83,243,0,192,76,194,85, - 133,47,10,80,234,123,174,186,115,48,202,40,163,254,35,34,132,41,127,170,155,23,190,38,20,51,53,0,233,86,135,108,60,19,139,153,186,46,5,0, - 232,218,112,83,142,217,205,11,95,83,90,194,232,230,77,86,159,121,81,197,230,46,61,152,90,125,15,112,198,233,211,224,252,61,108,12,250,39,169,82, - 71,107,176,31,113,212,112,193,13,127,76,19,128,146,31,33,0,141,0,248,0,120,14,224,62,165,52,191,38,6,252,83,153,127,197,220,107,168,133,148, - 210,33,101,79,232,42,129,208,177,99,199,62,103,207,158,21,107,219,179,176,44,11,19,19,19,53,128,145,250,222,136,16,98,23,26,26,58,119,231,206, - 157,24,56,112,224,2,66,200,58,74,105,129,190,215,91,89,89,245,175,83,167,206,166,29,59,118,216,182,104,209,146,8,4,2,188,120,17,227,50,126, - 252,248,64,123,123,251,136,180,180,180,79,244,101,105,101,109,109,61,212,203,203,107,237,246,237,219,109,218,180,105,3,66,8,34,35,35,93,62,251,236, - 179,70,14,14,14,251,83,83,83,39,27,202,180,177,177,241,245,242,242,234,176,121,243,102,147,214,173,91,67,36,18,225,254,253,251,166,19,38,76,112, - 112,112,112,120,146,154,154,122,217,16,222,128,37,81,252,135,145,199,63,84,43,229,171,0,128,203,23,206,110,185,46,239,120,86,228,111,189,171,58,55, - 96,9,142,26,157,45,163,140,50,170,172,134,58,193,129,82,204,58,251,227,151,28,0,232,58,250,171,169,67,157,176,102,79,50,42,236,97,107,32,111, - 230,8,103,108,218,157,132,180,154,216,249,61,192,249,140,203,157,218,60,56,216,102,202,181,107,49,74,224,167,154,240,254,237,170,208,209,234,95,143,44, - 5,23,243,1,144,30,62,100,255,185,88,230,74,151,46,93,188,199,140,25,67,154,52,105,130,200,200,72,223,253,251,247,127,192,229,114,99,52,26,77, - 36,128,63,168,158,85,173,9,33,60,0,245,25,134,9,250,39,50,223,231,220,107,81,18,0,32,132,164,1,208,22,58,125,167,224,233,133,11,23,142, - 113,185,92,109,68,171,185,76,38,179,199,219,81,48,125,228,161,82,169,240,244,233,83,112,56,28,30,0,79,188,219,82,67,167,8,33,46,46,46,46, - 91,111,220,138,180,38,92,19,100,23,3,40,86,66,96,106,143,157,187,194,172,102,76,155,220,207,204,204,236,74,94,94,222,207,250,26,67,8,241,116, - 115,115,91,247,224,193,3,107,177,88,12,150,101,145,159,159,15,7,7,7,236,216,177,195,98,198,140,25,67,76,76,76,46,21,21,21,253,207,0,166, - 212,203,203,171,195,163,71,143,76,180,13,165,21,10,5,92,92,92,176,119,239,94,225,212,169,83,235,10,133,194,68,185,92,254,82,95,102,158,76,205, - 83,43,229,171,118,111,89,236,10,0,35,38,47,94,37,200,55,59,165,207,185,60,153,250,36,0,163,163,101,212,95,42,66,72,144,141,141,205,161,140, - 140,140,203,0,62,161,181,16,105,32,132,248,138,68,162,134,44,203,58,112,56,28,48,12,147,42,147,201,30,80,74,163,171,203,180,241,238,208,27,66, - 241,40,80,182,17,7,0,225,112,238,107,148,133,187,50,158,93,60,94,35,166,192,100,52,64,27,113,0,150,112,56,15,88,117,225,142,244,168,139,6, - 23,125,126,95,186,153,11,63,47,7,253,27,99,214,6,111,112,29,56,114,88,112,246,198,65,239,50,68,159,2,61,167,77,155,230,48,121,210,36,50, - 106,228,72,159,203,87,175,146,118,134,116,43,248,143,73,167,163,53,160,30,177,4,48,103,255,166,249,28,46,195,144,208,105,43,134,252,176,101,53,167, - 75,239,1,111,150,79,66,66,66,16,18,18,66,86,173,90,229,243,235,175,191,250,236,221,187,87,77,8,121,64,41,61,80,209,205,186,123,147,34,22, - 16,125,224,207,149,133,126,249,243,246,224,224,96,8,133,66,212,132,9,0,93,125,152,151,61,131,189,31,132,126,186,48,190,69,139,86,180,38,76,237, - 220,247,109,156,207,240,184,12,66,167,173,24,114,249,204,209,162,58,117,155,228,87,151,249,158,117,139,82,218,23,0,8,33,150,110,110,110,173,213,106, - 181,8,0,184,92,110,49,128,79,105,105,235,32,66,72,4,203,178,125,244,5,19,66,56,0,22,245,233,211,103,193,148,41,83,224,230,230,134,169,83, - 167,66,165,82,69,18,66,22,2,88,73,75,179,21,43,146,157,157,221,194,173,91,183,90,113,5,18,52,153,19,139,148,28,53,0,192,84,8,28,155, - 72,49,117,234,84,179,59,119,238,44,3,160,183,163,101,103,103,183,116,199,142,29,86,98,177,24,148,210,55,189,24,11,10,10,80,80,80,128,201,147, - 39,155,61,121,242,228,27,0,122,59,90,246,246,246,173,55,111,222,108,34,18,137,80,80,80,192,87,42,149,36,63,63,31,133,133,133,84,161,80,40, - 63,253,244,83,225,31,127,252,209,30,128,222,142,150,81,239,87,164,100,185,226,35,30,143,247,177,183,183,119,211,231,207,159,223,83,171,213,135,1,28, - 174,233,31,62,132,144,78,78,78,78,95,39,39,39,111,166,148,134,213,142,197,255,124,217,219,219,31,190,126,253,186,235,214,173,91,71,174,89,179,230, - 20,12,248,12,149,23,33,132,207,231,243,251,117,233,210,197,117,196,136,17,2,123,123,123,200,229,114,196,198,198,154,29,60,120,208,93,34,145,36,150, - 118,196,208,251,15,10,27,191,214,166,224,154,237,111,217,161,115,155,129,253,62,146,218,91,155,163,72,161,193,243,248,20,183,211,167,142,181,115,10,252, - 224,186,82,153,59,56,227,217,53,189,35,238,90,102,135,238,189,218,116,238,212,73,106,110,97,142,92,153,18,47,226,146,220,47,158,59,30,226,24,248, - 193,111,44,81,13,75,123,120,246,47,111,204,94,86,83,1,174,76,100,221,176,81,171,38,119,186,142,89,214,148,82,10,14,197,198,242,209,172,169,0, - 119,35,160,54,148,7,74,41,33,88,93,54,154,245,102,89,145,3,210,205,19,149,47,83,150,170,43,32,180,176,178,10,158,48,110,28,201,207,203,195, - 253,251,247,11,219,149,115,178,214,57,131,255,27,7,30,17,9,168,182,179,253,111,146,222,201,240,98,177,88,231,121,115,115,115,116,232,208,1,43,86, - 172,224,2,8,42,251,24,45,223,100,21,16,158,216,54,15,230,18,33,199,205,205,77,106,102,102,86,99,102,201,73,214,179,149,27,237,113,251,231,249, - 35,207,239,93,91,95,150,159,195,43,63,196,212,212,20,126,126,126,88,176,96,129,94,204,178,46,254,237,179,7,124,107,131,89,83,85,198,116,116,116, - 244,15,9,9,9,186,112,249,178,69,114,114,178,48,57,57,89,120,246,194,5,139,150,45,91,6,57,58,58,250,151,97,232,205,4,240,213,150,45,91, - 22,70,68,68,112,66,66,66,96,105,105,137,14,29,58,224,212,169,83,220,53,107,214,44,7,176,160,42,59,57,28,78,155,144,144,16,2,74,145,154, - 171,198,239,43,252,113,127,117,0,242,139,41,178,114,243,80,84,84,12,177,88,44,42,93,154,213,119,238,173,90,182,108,73,0,188,113,174,242,243,75, - 142,130,2,25,20,10,37,132,66,161,148,16,34,210,151,73,41,117,104,221,186,53,0,64,169,84,190,121,249,115,114,114,72,110,110,46,20,10,5,120, - 60,30,159,16,82,233,114,123,89,166,153,132,171,226,242,133,179,71,76,94,156,48,98,242,226,4,46,95,56,91,33,205,211,232,115,206,76,194,85,233, - 98,214,150,170,98,18,66,108,25,134,249,209,219,219,251,9,195,48,187,9,33,14,53,97,18,66,154,17,66,150,139,197,226,243,117,235,214,77,144,72, - 36,23,8,33,43,9,33,45,171,195,36,132,8,196,98,241,133,229,203,151,135,223,187,119,111,224,175,191,254,234,249,240,225,195,126,171,86,173,218,111, - 106,106,122,133,16,162,251,11,171,10,59,181,242,244,244,252,225,247,223,127,111,214,170,85,171,157,132,16,97,85,227,245,97,18,66,24,66,72,99,162, - 103,175,161,191,250,117,39,132,56,53,105,210,196,85,36,18,161,115,231,206,0,208,190,38,76,62,159,223,111,193,130,5,94,95,126,249,165,32,37,37, - 5,23,46,92,192,173,91,183,160,86,171,49,113,226,68,225,136,17,35,234,72,165,210,126,6,217,201,53,219,63,237,179,233,221,103,77,29,43,125,240, - 74,137,93,231,95,225,232,141,20,188,46,20,160,119,191,17,230,221,250,14,234,38,16,154,235,108,118,95,25,115,238,156,57,221,199,141,30,34,125,156, - 194,226,216,205,84,220,124,154,11,53,207,2,61,251,125,98,217,168,117,247,15,184,224,253,100,16,179,6,170,136,185,3,104,49,109,218,52,219,217,171, - 247,92,115,106,246,209,198,244,108,132,148,117,124,124,1,11,43,137,228,163,167,237,218,141,53,41,233,23,91,41,243,45,94,80,223,77,175,179,209,182, - 108,126,86,91,43,248,148,46,43,50,103,127,252,146,67,9,166,14,117,130,67,101,76,0,184,4,12,156,54,125,58,207,220,210,18,91,182,108,129,92, - 38,123,43,103,182,147,43,186,159,23,115,19,235,4,184,60,233,224,78,174,232,255,204,252,123,245,230,71,227,228,201,147,244,131,15,62,32,0,16,254, - 152,102,247,175,71,190,25,52,101,249,2,194,33,212,163,126,171,199,206,94,245,100,214,214,214,40,44,44,132,92,46,7,159,207,71,113,113,49,94,189, - 122,133,155,55,111,194,210,210,210,160,27,231,229,229,193,212,212,20,166,166,166,181,194,156,55,178,179,240,69,66,186,240,204,205,75,237,54,76,250,95, - 11,175,198,237,31,118,26,52,245,145,153,173,83,241,195,135,15,113,253,250,117,100,103,103,35,56,56,184,82,142,118,238,131,63,93,254,37,225,16,4, - 53,12,40,86,101,61,243,95,51,185,115,61,191,38,237,31,119,26,48,229,177,161,204,247,164,91,165,223,215,183,8,33,150,33,33,33,46,103,206,255, - 102,89,80,204,154,197,165,169,120,44,203,66,44,118,84,31,56,116,44,119,96,191,222,132,16,242,26,192,173,82,231,182,210,158,138,165,14,138,127,255, - 254,253,231,78,154,52,9,49,49,49,24,59,118,108,209,173,91,183,50,91,181,106,101,189,99,199,14,147,25,51,102,224,242,229,203,139,8,33,71,0, - 196,82,74,117,246,106,163,148,242,249,124,62,212,165,110,131,82,195,66,235,223,231,229,229,129,22,101,131,207,231,51,0,108,1,232,149,243,198,178,44, - 159,199,227,189,113,178,94,165,229,225,213,235,66,228,21,40,80,84,164,134,162,136,130,17,91,115,129,56,123,0,113,250,48,1,48,34,145,8,106,181, - 26,249,249,37,102,104,35,101,10,133,2,185,185,185,96,24,198,20,128,25,128,44,125,128,37,73,238,56,90,186,12,136,219,123,250,216,60,63,57,79, - 217,127,241,147,55,231,204,36,92,213,161,25,117,25,107,151,70,87,27,15,252,41,64,123,238,239,204,207,34,132,8,109,109,109,47,134,135,135,215,245, - 241,241,65,108,108,108,192,128,1,3,130,9,33,141,169,129,61,25,9,33,98,14,135,243,205,168,81,163,38,133,134,134,18,95,95,95,112,185,92,168, - 213,106,151,152,152,152,14,7,15,30,156,195,229,114,119,104,52,154,207,245,205,251,35,132,112,4,2,193,129,237,219,183,183,13,14,14,198,238,221,187, - 113,235,214,45,182,89,179,102,156,225,195,135,195,221,221,61,120,248,240,225,71,9,33,61,171,19,217,34,132,184,15,29,58,212,149,97,24,180,106,213, - 138,127,253,250,245,38,0,174,27,202,41,199,52,117,113,113,185,220,190,125,251,198,231,207,159,191,75,8,105,111,72,158,35,33,164,175,147,147,211,42, - 115,115,115,189,191,20,243,242,242,10,147,146,146,102,82,74,15,233,121,73,139,160,160,32,196,199,199,195,223,223,31,124,62,191,37,33,100,60,128,238, - 0,190,160,148,62,49,192,94,223,30,61,122,184,182,111,223,158,28,58,116,232,77,126,40,135,195,129,90,173,6,159,207,71,139,22,45,56,145,145,145, - 206,132,16,95,125,150,17,109,188,59,244,110,213,169,123,155,182,193,13,57,107,14,61,135,134,213,128,33,106,112,9,11,86,37,132,144,207,192,183,126, - 83,230,233,31,15,130,109,252,186,244,206,120,118,174,202,101,68,27,239,14,189,187,247,238,19,82,215,223,151,179,225,232,11,228,36,61,209,36,69,253, - 150,193,97,56,168,27,212,209,198,183,94,99,166,113,112,123,94,114,236,31,29,172,124,218,117,206,122,126,185,214,29,43,125,180,4,96,92,156,109,62, - 234,213,165,61,63,37,57,89,118,240,208,241,71,133,42,220,4,128,203,0,233,9,52,108,208,188,121,187,29,43,87,90,59,58,58,242,134,133,134,170, - 191,191,123,247,238,56,64,231,210,239,18,128,177,113,112,232,60,97,194,4,38,37,57,153,30,60,124,242,161,150,7,0,98,160,65,67,151,128,94,144, - 61,53,104,153,178,55,32,176,119,112,168,59,126,252,120,164,38,39,99,119,88,88,65,49,112,3,40,137,98,29,99,176,185,158,151,195,168,217,159,244, - 33,174,142,54,152,176,232,251,150,29,148,175,189,46,226,207,200,86,89,95,228,191,162,10,255,58,63,244,152,46,52,19,16,207,131,7,247,113,210,243, - 149,178,152,152,24,216,216,216,192,209,209,17,230,230,230,120,252,248,49,46,92,184,128,103,207,158,129,101,89,52,106,212,200,160,27,103,100,100,224,193, - 131,7,176,180,180,172,53,166,151,171,45,166,184,218,242,211,50,243,248,231,111,61,11,254,126,94,191,122,156,128,126,63,20,23,255,233,3,40,20,85, - 119,40,57,244,152,46,236,238,77,190,12,91,59,69,41,177,117,200,84,49,166,249,113,169,121,138,179,103,46,57,108,153,59,208,79,80,247,195,48,67, - 153,181,173,178,187,11,221,220,220,90,239,218,181,139,47,87,67,234,59,254,198,183,178,98,141,4,0,36,34,70,22,185,202,239,243,175,190,250,74,54, - 122,244,232,128,87,175,94,173,168,152,88,34,129,64,240,117,143,30,61,102,81,74,121,211,166,77,3,0,140,24,49,34,239,230,205,155,190,148,210,215, - 132,16,167,49,99,198,68,95,188,120,81,60,125,250,116,70,173,86,63,230,114,185,148,16,178,148,82,186,184,60,143,195,225,220,185,123,247,174,135,147, - 187,31,220,173,57,8,89,80,210,174,205,90,204,34,49,238,5,162,30,222,130,131,131,131,185,163,163,227,19,127,127,127,101,82,82,210,156,130,130,130, - 173,149,217,200,231,243,239,71,70,70,58,186,187,187,163,160,160,0,137,233,133,152,122,88,140,188,162,146,32,6,15,69,104,236,234,39,53,225,40,110, - 217,219,219,43,21,10,197,151,57,57,57,149,182,17,225,241,120,153,15,31,62,52,117,115,115,67,113,113,49,205,202,202,34,50,153,12,249,249,249,228, - 228,201,147,31,166,164,164,52,243,244,244,36,46,46,46,75,125,124,124,138,146,146,146,198,234,147,3,22,190,40,64,73,8,209,112,185,220,53,227,198, - 141,27,120,228,200,145,59,135,22,215,237,171,93,46,33,132,152,215,175,95,255,76,195,134,245,156,194,86,55,216,72,41,253,182,42,230,95,160,81,243, - 231,207,175,107,101,101,133,9,19,38,96,201,146,37,88,184,112,161,207,132,9,19,198,1,88,167,47,132,16,98,226,224,224,112,123,195,134,13,1,173, - 91,183,198,169,83,167,176,111,223,62,188,124,249,82,237,233,233,201,13,14,14,198,162,69,139,208,173,91,183,177,159,126,250,105,59,66,72,19,61,157, - 143,209,139,22,45,234,219,166,77,27,140,28,57,82,126,233,210,165,129,0,206,158,59,119,174,227,229,203,151,15,237,217,179,199,100,249,242,229,157,103, - 204,152,49,1,192,166,106,204,255,195,182,109,75,122,40,183,105,211,6,171,86,173,234,134,26,56,90,132,16,129,181,181,245,201,221,187,119,55,246,243, - 243,195,176,97,195,154,12,28,56,240,36,33,164,11,165,84,175,47,15,103,103,231,111,34,34,34,188,43,90,89,208,37,185,92,110,245,209,71,31,173, - 4,96,144,163,181,119,239,94,204,156,57,19,141,26,53,106,216,162,69,139,109,227,199,143,71,255,254,253,59,17,66,236,41,165,50,125,64,34,145,168, - 225,224,193,131,5,191,255,254,59,0,160,126,253,250,104,220,184,49,226,227,227,113,231,206,29,200,229,114,216,219,219,227,227,143,63,22,197,197,197,53, - 4,170,94,66,226,8,197,163,250,246,234,41,61,118,51,5,26,86,141,166,222,102,8,14,176,195,211,196,60,68,62,73,132,70,193,135,153,149,53,90, - 182,235,106,149,154,244,114,20,128,170,243,181,132,226,81,31,247,253,192,244,216,141,100,228,36,71,209,231,183,142,92,80,21,203,198,2,192,157,95,247, - 111,115,176,54,233,226,27,212,148,105,223,165,143,229,225,125,169,163,0,252,45,142,214,101,87,108,119,231,101,140,152,61,36,132,242,44,93,110,73,85, - 170,205,218,199,186,1,93,231,204,159,223,226,147,113,227,68,44,203,98,207,207,63,231,61,184,123,247,105,101,187,253,54,3,238,3,251,246,21,74,205, - 204,240,217,212,169,144,170,84,23,181,143,9,129,78,159,205,154,213,122,242,228,201,38,219,150,78,186,211,109,204,178,32,150,82,162,107,153,178,188,206, - 3,205,198,244,237,11,169,153,25,166,77,155,6,162,84,158,209,62,118,130,139,139,163,63,12,9,30,210,187,13,8,8,246,157,184,138,231,241,233,15, - 47,166,224,69,77,159,159,127,186,42,93,6,201,87,34,173,211,7,253,112,247,238,93,0,64,102,102,38,50,51,51,225,237,237,141,77,155,222,254,254, - 170,142,179,193,178,108,173,51,1,192,222,218,12,195,122,54,231,94,125,176,79,36,75,79,23,153,154,154,190,241,138,244,101,178,0,172,29,29,20,114, - 53,225,179,132,171,118,116,117,41,238,57,120,88,246,170,57,211,155,231,85,147,249,190,164,86,171,69,158,158,158,200,43,2,201,45,84,153,102,236,47, - 137,248,219,12,190,100,170,80,40,56,166,166,166,144,203,229,149,46,163,1,37,27,10,250,246,237,59,235,192,129,3,188,168,168,40,120,121,121,65,169, - 84,226,230,205,155,137,180,164,17,50,40,165,201,12,195,36,179,44,235,211,168,81,35,172,88,177,2,1,1,1,164,103,207,158,115,74,157,173,183,62, - 220,41,41,41,223,140,31,63,190,227,193,67,71,172,182,15,42,66,94,110,30,10,10,10,112,255,222,29,100,165,21,227,251,239,191,135,72,100,66,0, - 240,95,191,78,227,79,159,62,125,163,139,139,75,247,196,196,196,94,21,217,153,156,156,252,245,228,201,147,91,238,223,191,223,34,63,63,31,69,69,197, - 200,146,137,241,100,125,73,31,223,186,159,61,193,150,205,91,57,13,60,36,54,133,133,133,152,52,105,210,90,39,39,167,214,201,201,201,99,42,98,38, - 37,37,253,62,101,202,20,251,61,123,246,136,20,10,133,82,163,209,160,168,168,136,179,127,255,254,57,30,30,30,150,59,118,236,32,34,145,73,233,216, - 68,254,196,137,19,15,56,56,56,236,73,77,77,29,89,197,115,202,48,12,179,62,44,44,108,248,160,65,131,164,41,41,41,245,34,34,34,132,0,138, - 74,135,56,118,233,210,197,99,245,234,213,182,245,235,215,159,67,8,225,81,74,13,110,78,94,155,178,177,177,249,180,111,223,190,88,185,114,37,142,31, - 63,62,195,202,202,106,237,146,37,75,224,228,228,52,133,16,178,190,170,188,188,50,250,118,221,186,117,1,1,1,1,24,49,98,132,226,252,249,243,243, - 1,28,5,16,127,229,202,21,183,159,126,250,169,247,129,3,7,86,110,216,176,65,180,105,211,38,239,126,253,250,173,7,80,225,107,164,149,189,189,253, - 244,208,208,80,172,94,189,26,151,46,93,234,71,41,61,85,250,208,47,132,144,222,203,151,47,255,117,193,130,5,88,183,110,221,52,24,232,104,17,66, - 76,235,214,173,251,101,247,238,221,113,229,202,21,132,132,132,160,101,203,150,51,8,33,27,41,165,25,134,176,74,121,28,83,83,211,3,187,118,237,10, - 241,240,240,192,178,101,203,48,107,214,44,252,240,195,15,33,195,134,13,59,64,8,249,184,252,103,70,151,204,205,205,77,197,98,49,230,204,153,67,95, - 190,124,153,93,213,120,87,87,87,203,181,107,215,18,75,75,75,189,54,190,16,66,76,68,34,81,171,192,192,64,44,90,180,8,231,206,157,195,130,5, - 11,16,24,24,136,248,248,120,12,30,60,88,252,197,23,95,244,7,160,111,223,67,59,91,91,91,68,71,151,248,79,129,129,129,184,119,239,30,212,106, - 53,92,92,92,240,234,213,43,4,5,5,129,203,229,130,101,89,59,253,144,52,208,198,202,28,175,255,72,2,23,106,4,249,218,224,226,163,76,40,85, - 44,236,172,45,144,250,58,13,45,2,93,160,80,184,129,82,54,80,31,162,128,225,4,9,69,38,200,202,207,64,210,147,75,153,74,141,124,124,206,203, - 171,9,0,96,229,213,118,252,157,171,231,238,12,248,160,173,93,129,204,21,132,178,205,245,156,123,173,106,128,27,92,37,34,238,136,19,219,231,17,53, - 203,162,199,152,175,155,117,183,71,33,210,0,91,192,115,192,224,193,173,62,255,252,115,65,116,76,12,59,125,234,212,156,123,183,111,95,58,13,220,169, - 140,89,0,248,116,233,210,5,28,0,167,207,158,149,101,0,137,0,96,15,184,246,249,232,163,182,243,231,206,21,188,136,139,99,111,198,20,28,123,241, - 154,174,104,101,133,7,251,227,75,198,84,38,13,208,64,203,61,115,230,12,45,42,181,163,189,43,166,116,107,93,63,120,120,223,182,72,76,205,196,170, - 157,199,240,48,58,229,140,53,139,161,181,240,20,253,227,85,101,142,150,174,239,212,194,194,119,87,15,106,234,108,188,15,166,46,25,196,20,74,139,8, - 143,203,161,132,203,106,40,87,77,9,97,117,237,155,248,187,29,45,173,84,170,146,85,18,133,138,133,66,85,242,221,45,151,203,81,84,84,84,217,101, - 111,68,41,85,157,57,115,102,247,212,169,83,177,118,237,90,68,71,71,131,207,231,35,48,48,208,145,16,98,10,148,68,96,130,130,130,236,56,28,14, - 158,62,125,138,53,107,214,96,244,232,209,244,250,245,235,63,232,250,193,160,148,222,203,202,202,218,60,126,236,232,156,236,180,87,80,21,101,227,117,210, - 11,200,101,57,88,182,226,27,20,170,184,72,205,85,34,53,87,9,142,208,10,219,118,236,98,234,214,173,219,157,203,229,86,232,104,81,74,111,166,165, - 165,237,152,56,113,98,78,106,106,234,155,249,41,84,20,10,213,219,47,144,88,44,198,250,245,235,205,125,125,125,251,242,120,188,14,149,48,83,18,18, - 18,162,38,78,156,168,72,75,75,67,110,110,46,142,29,59,214,219,195,195,195,114,229,183,107,137,76,201,69,106,142,18,169,57,74,8,76,237,112,224, - 208,17,198,207,207,111,8,143,199,171,48,199,72,235,100,237,217,179,103,248,160,65,131,164,223,126,251,109,86,68,68,196,22,74,105,217,23,228,233,250, - 245,235,15,30,56,112,32,127,214,172,89,86,171,86,173,154,65,8,153,95,225,139,244,158,69,8,233,48,104,208,32,127,150,101,17,30,30,254,144,82, - 186,238,200,145,35,183,229,114,57,6,15,30,236,137,146,101,36,125,56,205,134,12,25,50,41,36,36,4,159,125,246,153,242,252,249,243,65,148,210,181, - 148,210,56,90,162,120,74,233,198,203,151,47,55,250,244,211,79,229,205,155,55,199,200,145,35,71,19,66,66,170,224,182,10,13,13,13,96,89,22,251, - 247,239,127,80,198,201,2,0,80,74,47,28,58,116,232,166,66,161,192,208,161,67,235,16,66,58,26,48,119,190,80,40,12,255,234,171,175,44,146,146, - 146,48,124,248,112,249,211,167,79,177,120,241,98,19,115,115,243,83,218,207,128,33,18,10,133,223,127,247,221,119,125,27,52,104,128,137,19,39,42,182, - 110,221,58,117,210,164,73,138,160,160,32,108,217,178,165,175,64,32,48,168,181,72,114,114,114,206,227,199,143,173,171,58,18,19,19,245,218,158,79,8, - 17,75,165,210,27,245,235,215,207,11,12,12,108,170,86,171,241,248,241,227,23,187,119,239,102,3,3,3,177,121,243,102,172,90,181,10,189,122,245,2, - 195,48,253,245,181,147,97,24,40,149,74,136,197,98,112,185,92,188,120,241,66,91,90,6,124,62,31,0,32,145,72,96,98,98,2,14,135,163,151,227, - 78,8,104,94,161,10,60,30,7,92,14,139,168,248,92,40,85,44,68,124,6,60,46,1,40,11,11,9,15,34,1,3,14,33,85,215,110,42,97,34, - 87,166,132,128,207,1,143,47,32,28,181,198,68,251,24,135,171,49,49,49,17,16,27,51,33,68,252,127,80,109,111,82,242,43,52,10,224,73,220,220, - 6,174,94,179,70,144,87,80,128,126,253,250,101,197,221,190,29,86,4,220,110,87,197,14,63,14,151,235,219,190,93,59,68,222,189,139,252,236,236,231, - 64,73,114,188,192,201,105,208,250,245,235,5,69,197,197,232,247,241,199,57,209,87,175,238,73,40,192,137,253,122,56,89,0,192,240,249,14,90,110,110, - 118,118,54,80,82,66,194,222,214,116,229,228,33,221,144,95,88,140,217,223,132,177,119,163,82,166,92,73,196,7,71,146,145,91,179,39,227,223,161,42, - 11,150,178,236,187,239,87,93,142,133,92,46,175,145,33,239,131,169,203,73,52,132,73,69,210,2,150,37,92,134,80,1,171,225,41,53,26,86,83,83, - 230,251,16,151,203,45,126,246,236,153,192,204,218,137,181,150,242,178,61,70,95,53,7,0,43,83,110,174,82,163,98,147,147,147,33,20,10,117,230,80, - 149,87,113,113,241,88,66,200,50,0,245,184,92,238,137,93,187,118,145,176,176,48,203,208,208,208,24,66,72,82,253,250,245,221,119,237,218,101,6,0, - 27,55,110,164,7,14,28,232,134,146,242,22,21,134,148,83,83,83,23,243,120,188,235,147,39,79,222,36,16,8,44,37,18,137,245,149,43,87,72,177, - 146,162,217,252,248,55,59,17,205,76,56,248,109,158,25,198,141,27,199,60,121,242,100,5,128,19,149,48,231,8,133,194,43,209,209,209,107,205,93,26, - 219,74,220,231,155,7,207,123,10,0,112,183,225,129,83,250,189,152,147,147,131,244,244,116,76,154,52,201,50,38,38,102,14,128,139,21,49,19,19,19, - 47,11,133,194,196,63,254,248,163,61,143,199,19,72,36,146,102,55,110,220,32,197,10,22,13,231,196,35,171,160,196,78,43,83,46,238,124,101,143,41, - 83,166,112,159,63,127,254,13,128,54,186,120,28,14,103,85,89,39,107,246,236,217,247,1,212,33,132,188,181,52,170,209,104,200,208,161,67,31,1,8, - 156,53,107,150,21,165,116,6,33,36,139,82,186,189,34,91,223,151,204,204,204,86,142,31,63,30,7,14,28,64,118,118,246,122,0,200,203,203,91,183, - 119,239,222,253,99,199,142,197,207,63,255,188,146,16,114,90,143,168,86,143,193,131,7,227,151,95,126,193,175,191,254,250,37,165,244,177,174,65,148,210, - 104,66,200,156,136,136,136,13,161,161,161,248,241,199,31,187,3,168,44,65,182,75,183,110,221,112,234,212,41,100,102,102,110,209,53,32,39,39,103,235, - 177,99,199,90,116,235,214,13,43,86,172,232,2,224,66,85,243,38,132,4,152,155,155,239,218,176,97,67,179,6,13,26,96,200,144,33,197,74,165,178, - 251,172,89,179,142,239,219,183,79,186,123,247,238,166,227,198,141,251,157,16,242,9,165,244,102,85,60,0,96,24,102,249,166,77,155,198,180,111,223,30, - 51,102,204,80,159,57,115,166,15,165,244,44,33,36,102,246,236,217,39,215,172,89,195,172,94,189,122,12,195,48,233,26,141,230,239,114,174,191,218,184, - 113,99,139,174,93,187,226,197,139,23,184,121,243,38,148,74,229,207,55,110,220,248,205,199,199,231,43,133,66,113,92,34,145,12,151,74,165,129,141,27, - 55,238,72,8,17,235,153,167,151,22,27,27,107,97,110,110,14,181,90,141,135,15,31,194,205,205,13,74,165,18,47,95,190,68,131,6,13,192,231,243, - 145,150,150,6,0,175,245,49,148,16,206,195,152,184,228,58,86,82,9,160,17,225,222,211,68,216,218,88,66,67,56,72,77,77,65,99,127,23,16,66, - 144,147,153,10,66,200,35,125,152,26,202,70,190,74,126,237,108,45,21,162,65,139,174,214,55,78,167,135,153,123,181,25,199,101,8,35,20,153,109,31, - 51,114,164,13,203,82,228,100,166,129,203,225,84,154,219,250,190,20,254,10,9,237,188,68,247,186,142,89,214,152,80,208,34,37,118,255,152,134,108,49, - 208,120,227,23,95,88,88,219,216,96,200,144,33,108,102,82,210,249,66,64,175,194,202,117,124,124,236,77,165,82,92,187,118,13,12,16,11,0,63,0, - 1,171,102,207,182,182,115,112,192,232,49,99,216,180,87,175,46,20,1,201,134,216,90,199,203,139,167,229,114,74,185,41,12,166,206,234,19,34,148,152, - 8,177,124,219,17,36,100,200,246,223,72,193,54,195,159,137,127,175,222,184,233,21,37,159,149,36,85,191,157,23,80,222,177,16,137,68,111,162,41,250, - 170,108,9,134,218,98,86,37,67,153,44,223,50,87,35,144,230,107,24,190,154,114,56,84,5,174,178,252,175,203,251,176,83,31,17,66,230,17,66,34, - 8,33,243,18,18,18,162,198,140,25,163,84,43,229,249,215,151,213,153,123,119,133,199,196,27,139,29,39,30,157,106,62,183,48,55,43,127,227,198,141, - 170,132,132,132,168,178,215,84,198,166,148,190,162,148,158,250,233,167,159,182,134,135,135,35,48,48,16,143,31,63,182,147,201,100,77,30,61,122,100,21, - 16,16,128,176,176,48,28,56,112,96,45,165,244,92,101,78,150,86,42,149,234,124,74,74,138,95,124,124,188,183,133,133,133,202,194,194,2,229,119,34, - 230,21,177,200,204,201,133,149,149,53,204,204,204,60,171,98,202,229,242,83,41,41,41,190,172,165,127,91,223,140,245,185,145,203,93,17,185,220,21,167, - 230,56,193,209,66,128,236,236,108,164,167,167,35,61,61,29,132,16,168,84,170,186,122,48,95,38,39,39,239,124,245,234,85,132,189,189,61,164,82,41, - 40,128,212,28,21,238,175,14,192,253,213,1,72,205,81,33,47,63,31,30,30,30,144,74,165,58,151,40,8,33,28,103,103,231,158,131,6,13,146,2, - 64,169,3,213,137,82,58,81,199,49,65,173,86,183,214,142,157,57,115,166,21,128,110,85,217,90,155,42,221,17,55,121,236,216,177,77,69,34,17,54, - 111,222,252,18,192,158,210,135,195,183,110,221,250,20,0,166,78,157,90,31,192,12,82,65,37,104,173,248,124,126,80,221,186,117,113,227,198,13,0,56, - 82,197,237,15,93,191,126,29,62,62,62,16,137,68,205,170,24,235,233,234,234,138,167,79,159,2,192,189,10,198,220,123,250,244,41,92,93,93,65,8, - 169,242,125,68,8,233,219,181,107,215,135,23,47,94,108,214,170,85,43,140,25,51,70,241,251,239,191,247,164,148,254,118,239,222,189,14,67,135,14,149, - 249,250,250,226,242,229,203,1,67,135,14,189,206,48,204,50,61,152,163,151,46,93,58,239,195,15,63,196,210,165,75,233,193,131,7,135,80,74,207,2, - 0,165,244,204,254,253,251,135,127,253,245,215,244,227,143,63,198,146,37,75,230,17,66,38,86,198,147,201,100,185,26,141,6,50,153,76,175,240,185,190, - 227,109,108,108,122,116,237,218,21,11,22,44,128,179,179,51,142,31,63,78,1,156,160,148,94,145,203,229,109,41,165,107,100,50,89,196,141,27,55,208, - 165,75,23,62,128,15,244,188,255,195,189,123,247,202,205,205,205,225,238,238,142,58,117,234,32,53,53,21,113,113,113,104,208,160,1,130,130,130,160,86, - 171,177,115,231,206,226,252,252,124,189,106,242,169,21,178,221,231,78,30,206,181,150,10,225,98,103,14,15,103,43,20,228,100,32,61,53,25,65,117,221, - 208,46,200,3,25,185,10,156,57,113,56,59,63,191,112,183,62,76,149,188,112,215,249,211,199,115,45,165,124,248,249,215,199,208,49,83,27,55,110,18, - 124,174,121,243,214,103,190,93,185,188,97,167,150,117,73,98,70,49,126,57,113,36,59,55,47,79,223,101,211,90,213,18,128,41,54,247,253,109,75,68, - 228,206,122,221,199,238,140,74,196,122,0,80,49,76,64,207,30,61,144,152,152,136,195,225,225,41,133,192,3,125,121,38,38,38,28,0,200,205,205,133, - 176,164,91,8,212,128,255,7,31,124,128,244,140,12,236,221,179,39,253,23,224,174,33,118,246,6,4,98,147,146,128,96,110,110,46,8,144,7,0,132, - 139,158,205,3,125,144,158,149,135,139,183,162,10,60,138,48,169,50,206,127,45,17,30,168,122,233,48,99,198,140,25,16,10,133,112,116,116,124,227,28, - 105,29,11,129,64,0,71,71,71,168,213,106,236,223,191,31,0,42,205,97,224,0,242,62,19,87,176,114,21,45,228,241,120,181,194,4,0,14,135,35, - 239,55,251,71,246,244,117,221,155,98,170,197,36,164,104,192,7,3,27,156,62,125,69,196,21,89,231,113,5,124,162,80,19,165,54,76,86,29,102,45, - 171,121,105,77,172,230,148,210,236,184,184,184,196,129,253,250,228,198,199,252,145,42,203,73,78,201,203,76,72,73,120,249,40,117,254,156,25,185,137,137, - 137,9,165,181,180,154,39,39,39,247,1,160,111,174,193,140,129,3,7,126,55,118,236,88,122,255,254,125,0,64,100,100,36,70,142,28,73,135,15,31, - 190,30,192,220,106,216,45,43,42,42,122,203,95,85,106,216,55,75,126,121,121,121,72,78,78,134,66,161,208,219,123,141,62,179,250,89,86,220,29,85, - 125,119,9,234,187,75,16,224,42,6,81,23,188,113,178,210,211,211,181,127,57,235,21,213,43,85,158,92,46,127,203,206,178,75,147,121,121,121,72,77, - 77,133,70,163,209,249,67,70,41,101,147,146,146,206,28,56,112,32,31,0,190,253,246,219,44,66,200,175,132,144,239,116,28,219,184,92,238,53,237,216, - 213,171,87,103,1,56,165,139,251,62,68,8,249,176,65,131,6,217,243,230,205,219,60,109,218,52,108,219,182,13,41,41,41,115,41,165,106,237,92,50, - 50,50,102,111,217,178,5,163,70,141,194,194,133,11,87,55,105,210,36,143,16,82,97,126,133,173,173,173,11,151,203,197,221,187,119,243,40,165,149,38, - 187,82,74,83,239,222,189,155,70,8,129,163,163,163,87,101,99,173,172,172,188,165,82,41,146,146,146,128,210,191,152,117,40,46,57,57,153,10,4,2, - 56,57,57,249,84,49,125,88,90,90,206,222,185,115,39,247,143,63,254,64,167,78,157,18,47,95,190,220,133,82,122,169,212,182,187,145,145,145,33,29, - 58,116,120,118,238,220,57,124,243,205,55,164,81,163,70,149,58,69,0,224,238,238,62,97,244,232,209,216,180,105,19,182,111,223,62,145,82,26,94,110, - 206,251,182,108,217,50,117,251,246,237,24,51,102,12,60,61,61,43,205,85,137,143,143,159,211,190,125,251,200,232,232,104,189,58,30,232,51,158,16,210, - 33,56,56,216,187,168,168,244,197,234,60,0,0,32,0,73,68,65,84,8,187,118,237,122,225,237,237,125,59,60,60,124,6,165,180,252,15,246,209,195, - 135,15,99,216,176,97,104,212,168,209,46,66,72,104,85,247,167,148,70,63,121,242,36,225,194,133,11,44,159,207,135,187,187,59,122,245,234,133,33,67, - 134,160,97,195,134,80,42,149,56,124,248,48,251,232,209,163,68,185,92,174,87,45,165,140,103,23,143,199,198,62,187,118,247,247,223,84,92,134,3,55, - 71,43,124,212,185,49,62,233,223,26,65,1,206,136,127,93,132,11,23,206,169,98,99,95,220,208,103,199,161,150,25,245,248,193,245,63,238,94,85,243, - 184,4,1,254,190,88,48,127,182,229,215,139,230,88,248,122,185,225,193,203,92,156,59,251,139,42,57,49,225,226,223,181,227,240,50,192,55,21,18,9, - 195,225,64,195,17,202,152,210,66,198,129,245,234,249,217,59,56,224,228,201,147,224,0,122,239,8,189,12,240,77,77,75,86,193,11,10,10,160,229,121, - 251,251,251,187,185,187,227,212,201,147,96,88,246,73,59,3,11,140,62,5,196,101,185,4,40,158,228,10,169,183,171,157,191,165,185,4,191,63,120,14, - 185,138,222,218,147,141,191,181,30,217,223,161,170,150,14,191,221,182,109,91,243,157,59,119,118,153,49,99,134,233,136,17,35,32,18,137,80,88,88,8, - 23,23,23,104,52,26,156,62,125,26,119,238,220,41,96,89,246,28,202,149,13,32,132,116,46,91,107,227,116,12,53,41,41,130,89,216,60,98,192,128, - 90,97,2,128,233,115,214,44,211,67,17,182,49,252,234,199,123,207,220,37,159,133,182,227,4,249,187,2,0,236,237,237,97,102,102,102,56,51,134,90, - 100,122,20,134,253,184,117,231,71,135,246,132,59,15,159,252,233,125,39,255,86,153,0,169,54,179,166,42,207,44,187,172,155,146,146,242,148,16,242,122, - 236,216,177,1,218,196,119,161,80,88,156,144,144,16,85,234,100,189,115,77,85,118,150,238,140,155,68,8,57,150,155,155,123,102,214,172,89,248,250,235, - 175,113,252,248,241,16,74,233,53,125,237,44,199,212,120,122,122,230,220,186,117,203,222,167,110,19,212,177,227,161,237,151,209,160,148,194,90,76,145,159, - 147,133,123,247,238,34,63,63,255,119,67,236,116,114,114,202,121,253,250,181,141,157,157,29,178,178,178,144,145,145,241,198,201,202,206,206,70,86,86,22, - 37,228,237,154,45,85,48,101,222,222,222,133,81,81,81,2,123,87,31,120,217,241,17,60,255,41,64,41,220,172,56,200,207,203,193,141,27,55,144,155, - 155,123,169,34,38,203,178,159,15,29,58,148,1,48,124,214,172,89,86,0,26,205,158,61,251,92,249,157,133,60,30,111,93,88,88,88,160,118,137,113, - 206,156,57,107,41,165,59,245,177,179,186,42,203,180,182,182,254,252,228,201,147,82,165,82,137,141,27,55,98,237,218,181,63,80,74,223,218,81,73,41, - 61,201,48,204,22,14,135,51,121,202,148,41,24,63,126,188,184,105,211,166,51,240,103,212,235,45,102,82,82,210,130,160,160,160,133,175,95,191,214,43, - 177,63,58,58,122,92,80,80,208,130,215,175,95,175,170,200,78,0,144,72,36,18,141,70,131,216,216,216,108,74,169,206,252,14,74,105,177,175,175,111, - 146,70,163,113,17,139,197,86,149,205,29,0,178,179,179,151,55,109,218,116,113,90,90,218,89,0,203,202,151,42,161,148,222,39,132,212,159,54,109,218, - 167,43,87,174,252,56,53,53,245,157,58,77,229,153,241,241,241,203,59,116,232,240,229,179,103,207,126,170,104,9,152,82,186,153,16,162,12,11,11,155, - 24,27,27,251,206,142,224,178,76,74,233,9,84,178,148,174,131,173,115,124,89,38,195,48,179,87,174,92,201,217,182,109,27,40,165,171,213,106,117,69, - 118,62,96,24,102,119,235,214,173,71,132,135,135,139,234,215,175,63,30,192,190,138,230,174,85,97,97,225,225,240,240,240,143,31,60,120,224,50,98,196, - 8,145,159,159,31,148,74,37,82,82,82,176,109,219,182,226,71,143,30,37,230,228,228,28,214,117,207,138,152,106,69,94,232,245,11,17,251,226,162,31, - 181,108,223,189,175,165,66,233,2,97,38,131,156,204,84,156,62,113,56,59,54,246,197,141,194,194,28,157,142,96,69,76,165,60,119,240,141,139,199,246, - 39,198,70,181,104,219,161,167,101,177,194,29,66,62,7,153,105,73,56,125,50,34,43,54,246,229,149,98,149,124,164,33,204,154,168,60,147,241,196,50, - 38,245,206,216,9,189,27,195,196,210,229,30,15,216,216,26,48,177,177,183,231,3,64,116,116,52,76,129,120,125,153,105,128,192,167,116,149,170,176,176, - 16,60,64,49,10,224,217,218,218,154,0,192,179,103,207,32,6,94,25,106,103,1,32,17,151,225,114,128,194,76,46,156,189,205,36,4,0,18,83,51, - 161,80,161,194,223,141,255,178,170,42,190,200,2,184,73,8,185,187,106,213,170,182,223,125,247,93,187,233,211,167,11,122,244,232,129,219,183,111,227,252, - 249,243,10,185,92,126,25,192,111,84,207,234,190,239,131,25,94,50,110,96,115,103,98,165,100,139,142,44,248,238,151,54,30,14,22,84,173,97,201,163, - 71,143,112,253,250,245,26,49,21,170,188,195,155,151,47,107,99,34,49,243,19,50,213,103,214,182,74,131,107,205,9,33,17,165,167,110,149,47,225,80, - 186,92,168,141,96,53,215,149,115,167,135,238,113,185,92,234,239,239,79,74,219,211,232,204,183,209,87,169,169,169,67,230,204,153,115,246,224,161,35,220, - 195,83,76,144,155,147,139,188,188,60,228,228,230,32,51,45,25,23,46,92,80,166,167,167,143,55,132,153,158,158,62,41,52,52,244,224,190,125,251,172, - 178,179,179,223,56,90,217,217,217,96,89,22,63,252,240,67,122,90,90,90,229,205,82,203,41,37,37,101,204,172,89,179,14,237,221,127,136,123,110,174, - 37,10,180,213,231,101,185,200,124,157,130,227,199,143,203,51,50,50,166,85,116,61,165,84,67,8,249,108,232,208,161,64,169,179,117,227,198,141,169,132, - 144,205,218,31,115,66,72,157,207,63,255,60,180,76,30,215,218,191,122,215,97,102,102,230,215,45,90,180,88,155,158,158,254,82,169,84,134,83,74,117, - 86,233,215,104,52,83,8,33,215,55,111,222,60,216,198,198,198,62,53,53,117,101,69,204,218,114,12,202,235,213,171,87,243,130,130,130,230,191,126,253, - 186,194,123,3,192,243,231,207,39,151,142,91,85,217,184,210,123,159,4,112,178,138,49,106,148,148,182,208,171,188,5,165,52,2,64,132,30,227,190,7, - 96,80,66,124,109,73,163,209,124,219,160,65,3,145,90,173,62,87,85,62,32,203,178,227,166,79,159,158,56,115,230,204,198,26,141,70,223,231,64,9, - 96,63,33,196,247,213,171,87,13,53,26,141,3,0,240,120,188,212,220,220,220,7,250,70,178,202,170,180,226,123,47,27,191,46,189,195,127,218,52,138, - 178,154,70,132,16,48,28,230,126,126,65,225,46,125,35,89,58,152,31,216,248,117,233,157,150,20,63,154,178,154,70,0,97,185,92,206,131,252,130,194, - 29,233,81,231,254,182,22,60,35,156,97,207,16,76,57,251,227,151,4,0,186,140,254,170,177,135,5,76,213,57,200,65,233,119,121,74,74,10,44,129, - 42,119,162,106,37,6,212,202,210,156,232,236,172,44,136,129,162,20,128,41,205,187,36,105,169,169,48,53,128,167,21,15,80,150,227,230,2,16,106,211, - 57,179,242,100,128,254,117,13,255,91,162,148,234,125,160,164,191,222,71,0,86,148,254,87,82,197,248,206,127,7,179,133,35,252,58,123,147,168,158,254, - 220,44,0,253,107,139,217,193,19,143,59,213,193,235,218,98,26,122,148,101,2,248,73,161,80,208,226,226,98,90,88,88,72,11,10,10,40,128,8,29, - 215,68,36,39,39,211,196,196,68,250,234,213,43,26,23,23,71,1,236,49,212,78,51,51,179,157,3,6,12,208,240,120,188,77,134,216,89,209,97,101, - 101,181,34,56,56,88,185,97,195,6,122,244,232,81,186,99,199,14,58,101,202,20,26,24,24,40,183,176,176,8,173,14,211,193,193,97,129,191,191,127, - 230,15,63,252,64,247,236,217,67,215,175,95,79,191,248,226,11,141,139,139,75,170,84,42,237,86,29,166,157,157,221,247,109,218,180,81,126,255,253,247, - 244,220,185,115,116,239,222,189,244,243,207,63,167,1,1,1,114,137,68,210,79,31,38,0,134,203,229,174,153,48,97,66,170,147,147,211,201,114,143,137, - 235,213,171,119,123,232,208,161,201,0,230,252,29,239,37,35,211,200,52,50,255,153,204,225,206,112,234,82,7,106,250,219,151,148,254,246,37,237,92,7, - 236,16,39,56,83,128,17,243,249,131,219,133,132,172,230,3,131,41,192,232,60,116,217,9,48,34,134,233,223,58,56,120,53,31,8,213,142,21,49,76, - 255,118,33,33,171,121,12,51,172,66,94,37,76,10,48,124,46,119,78,235,150,45,215,112,129,249,218,115,29,235,144,39,159,119,119,165,33,238,228,249, - 48,59,136,43,99,86,240,124,140,171,237,231,248,175,62,170,251,70,224,214,246,155,240,255,51,211,128,123,151,117,180,124,80,178,108,19,81,230,152,167, - 227,154,121,229,198,252,4,192,167,154,115,55,169,205,185,3,104,96,99,99,243,139,143,143,79,186,135,135,71,178,165,165,229,62,0,46,53,100,214,119, - 112,112,248,217,222,222,62,218,209,209,241,129,141,141,205,58,0,182,53,97,242,120,188,96,123,123,251,75,158,158,158,57,238,238,238,105,54,54,54,251, - 1,216,27,202,4,224,8,29,95,42,0,248,0,28,255,174,247,146,145,105,100,26,153,255,80,38,192,116,245,194,202,46,117,160,238,82,7,154,174,158, - 88,87,214,65,233,5,152,84,215,41,26,9,8,203,143,175,146,87,5,147,2,76,43,192,180,252,53,61,93,80,79,31,102,5,207,199,191,222,209,170, - 178,188,131,46,209,210,36,217,218,212,255,103,102,117,68,41,125,14,84,93,236,141,150,169,32,95,11,247,212,175,32,151,254,188,135,0,122,212,50,243, - 15,0,195,107,147,169,84,42,127,135,158,125,223,42,19,165,84,231,214,107,90,178,196,162,215,182,108,163,140,50,234,255,145,40,213,156,1,230,118,241, - 35,27,185,26,112,126,121,65,147,202,62,124,252,207,194,199,6,49,1,96,151,142,246,60,213,226,149,97,2,192,53,224,157,238,14,39,107,152,110,242, - 111,87,181,28,45,163,140,50,202,40,163,140,50,234,175,209,185,103,186,255,72,51,234,223,33,2,160,179,174,7,168,1,59,41,8,33,58,25,149,169, - 42,190,145,105,100,26,153,70,166,145,105,100,26,153,255,61,102,25,118,69,27,43,158,150,227,253,45,27,70,106,77,239,115,93,18,255,198,53,113,35, - 211,200,52,50,141,76,35,211,200,52,50,255,114,230,127,245,248,7,53,112,50,234,255,131,90,186,144,42,155,91,27,101,148,81,70,25,101,212,127,69, - 198,28,173,191,88,132,144,166,0,98,104,5,197,22,75,91,134,72,1,60,161,148,86,187,183,15,145,250,91,129,193,187,77,112,121,140,156,166,63,214, - 171,225,172,222,247,17,16,62,205,136,170,180,13,79,71,111,82,135,207,112,183,55,244,180,108,215,195,135,115,53,171,136,249,42,189,144,171,179,178,183, - 146,97,133,57,66,165,172,40,233,237,196,207,26,217,73,8,3,107,127,219,170,236,36,222,222,2,168,213,37,45,32,184,92,74,99,98,42,108,97,66, - 8,225,192,205,205,142,198,199,87,193,36,2,168,81,202,4,165,49,180,82,166,216,29,182,178,56,90,123,175,17,33,140,187,187,216,38,46,78,86,171, - 76,127,55,216,70,197,87,221,126,201,16,166,187,141,216,38,46,189,246,236,244,151,18,43,185,21,10,227,226,104,173,53,36,109,79,218,115,227,197,241, - 214,113,178,184,90,124,62,131,120,176,46,178,174,234,253,105,48,211,70,110,85,171,159,119,66,184,98,177,216,90,38,171,197,247,146,149,183,20,28,158, - 184,86,231,110,223,64,12,153,165,41,149,93,170,53,59,141,50,170,186,50,56,162,69,8,9,17,137,68,99,106,211,136,32,39,210,184,189,55,183,86, - 153,255,68,49,12,179,105,216,176,97,183,135,13,27,150,65,8,153,80,254,113,66,200,144,22,45,90,68,135,134,134,222,7,176,163,186,247,33,86,254, - 75,108,157,29,95,251,212,173,31,87,254,112,113,114,77,37,22,254,107,107,52,17,0,132,212,227,19,75,191,159,157,60,61,210,93,156,221,83,136,165, - 255,198,202,198,51,44,190,248,121,213,156,142,43,191,152,201,108,27,237,221,206,194,132,189,224,109,203,198,105,143,58,182,108,156,137,165,42,78,105,174, - 136,19,186,139,159,122,249,184,36,154,185,145,74,153,122,219,106,30,208,88,224,208,40,74,31,59,33,87,70,139,45,173,139,197,86,54,197,80,170,178, - 136,155,91,71,157,76,39,79,95,129,143,239,93,23,15,207,20,226,230,86,41,83,170,68,180,179,181,184,216,197,70,92,108,166,66,150,185,27,209,201, - 52,119,37,117,108,125,248,55,61,61,92,82,205,220,73,165,175,145,183,55,17,120,120,16,161,183,55,17,84,54,206,201,67,224,231,230,45,125,230,226, - 233,152,234,236,110,162,23,83,123,84,196,246,113,39,254,245,125,120,207,220,189,93,82,252,61,107,231,53,170,99,35,244,241,178,147,60,171,227,100,155, - 234,97,35,172,241,251,19,0,252,108,152,165,246,174,54,175,173,88,113,178,159,57,241,168,13,166,135,192,163,79,134,121,70,170,151,147,87,170,135,208, - 163,86,236,36,150,126,129,124,7,205,11,87,23,143,170,223,159,250,50,205,3,26,11,29,232,139,218,250,188,3,128,137,137,73,51,51,51,179,103,38, - 38,38,169,18,137,164,218,76,34,241,180,35,86,254,99,137,149,255,143,196,50,32,202,222,209,35,183,54,230,78,136,189,88,96,234,189,132,43,13,188, - 99,109,234,146,235,226,229,152,74,204,90,215,202,220,141,50,170,70,50,116,173,81,32,16,68,51,12,35,7,32,173,173,53,220,14,94,204,173,230,46, - 68,213,196,17,214,181,197,4,192,3,192,41,253,127,71,0,238,0,204,13,97,150,50,132,208,179,118,86,85,76,123,123,251,212,132,132,4,170,86,171, - 233,156,57,115,88,0,19,203,140,31,210,175,95,63,77,108,108,44,125,249,242,37,245,245,245,45,208,218,111,232,220,5,246,141,243,247,255,158,65,15, - 69,230,210,240,59,57,111,29,187,46,39,82,129,93,163,36,67,153,111,219,81,151,15,11,191,99,189,198,45,165,71,238,23,232,197,236,92,7,47,11, - 79,127,65,63,9,22,81,229,119,245,104,255,186,132,94,27,7,122,109,28,232,209,225,160,141,235,19,58,110,217,199,244,232,179,109,244,247,194,163,244, - 76,226,79,212,198,87,80,35,59,41,165,128,89,125,11,198,186,110,252,138,189,55,232,238,43,201,85,218,9,103,215,248,158,39,206,208,94,103,47,210, - 58,99,198,82,226,230,158,171,227,181,37,196,217,249,250,178,11,151,233,238,248,36,42,240,241,173,148,41,117,69,252,140,51,61,233,236,139,189,104,155, - 177,117,168,185,59,121,135,73,41,133,153,11,142,172,59,49,143,158,77,218,93,229,220,157,220,68,241,129,65,82,234,236,46,202,117,119,135,208,203,11, - 2,93,76,39,87,209,186,239,247,76,163,207,147,195,104,29,63,243,74,153,126,30,136,15,105,198,163,33,205,75,14,127,79,232,180,211,207,3,27,246, - 238,154,68,83,94,253,76,27,249,215,252,53,162,148,194,205,74,248,213,166,153,131,105,242,217,205,212,207,209,172,86,152,141,157,133,69,25,23,191,163, - 203,199,245,160,190,150,24,83,83,166,135,200,163,127,23,207,46,154,232,239,163,233,235,136,215,212,223,220,63,185,54,236,132,133,255,170,9,95,237,166, - 97,87,83,169,208,161,113,173,204,29,22,126,123,102,109,60,169,215,123,94,159,195,210,210,82,42,145,72,94,117,236,216,145,246,232,209,131,154,154,154, - 86,107,238,140,212,185,135,169,115,227,130,110,99,151,211,185,91,79,211,221,87,146,233,209,135,133,244,167,203,137,53,154,187,80,104,230,41,146,56,62, - 108,214,127,33,253,234,224,31,244,232,195,66,186,235,82,18,21,216,118,172,149,231,179,194,231,217,200,172,85,230,127,245,48,104,233,144,16,210,218,204, - 204,204,193,201,201,73,243,236,217,179,209,64,73,23,241,154,168,137,11,9,180,16,50,245,58,213,53,83,93,120,146,63,1,192,178,154,240,8,33,68, - 34,145,124,101,106,106,58,25,192,3,66,200,72,91,91,219,199,221,186,117,83,29,57,114,36,3,128,175,158,28,19,129,64,144,18,28,28,204,70,70, - 70,22,1,112,54,53,53,125,204,225,112,36,69,69,69,163,84,42,213,37,67,109,75,75,75,59,177,107,215,174,177,99,198,140,193,178,101,203,8,151, - 203,221,66,8,1,128,252,79,62,249,228,231,175,191,254,154,83,84,84,132,163,71,143,34,38,38,38,156,150,180,43,50,88,92,62,195,23,138,76,48, - 126,80,47,164,167,165,36,224,237,230,160,249,32,228,235,234,112,129,146,72,22,44,52,135,122,245,15,237,61,108,236,20,124,53,119,26,238,223,190,17, - 5,66,150,86,122,33,197,193,115,17,187,230,45,251,216,21,151,162,114,241,42,159,147,63,244,48,47,7,0,41,52,215,56,206,92,51,149,219,160,105, - 93,252,180,238,0,238,94,127,128,244,228,244,104,80,44,170,174,157,37,182,18,2,11,191,221,195,198,77,119,179,180,182,193,148,97,31,230,42,84,242, - 207,43,191,136,70,157,154,52,206,81,108,99,203,235,185,109,39,226,47,189,251,50,51,46,246,35,218,244,234,213,210,211,63,0,159,246,234,161,80,20, - 23,85,202,36,4,247,119,142,59,229,32,181,21,243,7,126,221,14,79,46,198,189,51,198,204,133,120,185,122,59,245,105,214,46,8,19,251,76,135,188, - 88,81,101,187,160,175,190,243,198,180,208,103,102,82,51,105,113,118,166,42,15,128,249,59,182,242,152,15,218,117,104,130,165,11,190,71,113,177,178,202, - 214,62,223,109,246,66,110,158,26,148,2,147,166,84,216,11,186,67,112,203,134,88,185,124,59,138,229,138,111,170,98,234,35,66,224,235,239,102,141,221, - 17,231,161,144,43,42,109,7,163,143,188,189,137,192,201,196,92,100,66,138,113,244,220,21,150,170,112,172,22,204,252,106,243,248,205,156,123,209,247,176, - 96,198,130,100,149,90,53,167,22,152,0,224,32,181,118,196,161,253,97,144,23,23,85,59,146,173,21,113,113,17,153,72,28,251,122,214,107,138,175,230, - 78,129,66,33,159,95,83,102,113,113,241,22,95,95,95,87,134,97,112,237,218,181,2,150,101,13,110,40,207,55,179,159,106,102,231,181,246,195,79,87, - 49,82,17,7,47,159,221,197,111,103,79,226,217,147,135,234,156,172,204,103,32,164,90,223,253,150,150,150,102,92,30,243,91,147,15,199,59,187,53,238, - 138,95,246,254,132,141,81,207,53,25,25,57,79,1,90,163,223,19,163,140,170,21,149,245,186,78,156,56,65,43,243,202,4,2,193,153,35,71,142,208, - 109,219,182,81,161,80,152,12,128,212,212,211,107,231,201,28,186,127,100,149,38,229,208,100,218,198,157,147,217,191,138,42,177,85,120,216,214,82,169,244, - 230,150,45,91,228,49,49,49,212,204,204,44,10,128,223,144,33,67,178,19,19,19,169,165,165,101,188,1,44,243,54,109,218,100,101,102,102,210,122,245, - 234,189,166,148,194,201,201,41,237,246,237,219,180,79,159,62,121,166,166,166,43,80,46,226,164,7,147,79,8,57,182,100,201,18,154,152,152,72,85,42, - 21,93,188,120,49,59,115,230,76,86,38,147,209,248,248,120,186,102,205,26,202,229,114,47,66,207,42,236,186,14,177,107,83,249,129,200,124,106,227,223, - 158,194,221,93,88,91,94,185,54,146,213,227,147,197,52,236,102,6,109,208,101,20,133,133,223,10,125,174,237,238,5,105,151,58,152,213,165,14,174,119, - 246,194,252,118,238,37,209,69,169,43,54,76,248,246,35,122,240,233,90,234,211,194,70,41,117,195,100,107,95,152,214,138,189,22,190,179,26,117,31,75, - 127,190,158,73,189,130,63,102,97,225,247,65,149,215,56,187,198,139,27,7,209,158,39,207,82,211,224,150,20,174,110,111,69,117,224,110,110,46,9,240, - 206,216,28,29,67,123,207,255,130,114,92,157,23,87,201,244,130,64,234,130,87,51,206,244,164,238,45,77,169,153,219,187,145,34,169,27,182,124,241,211, - 56,186,254,151,121,84,234,138,95,171,98,58,185,137,226,143,221,105,66,155,180,52,167,199,35,155,80,119,111,241,59,76,39,79,129,79,247,62,1,52, - 62,243,71,234,19,96,89,208,164,9,120,149,49,253,60,16,255,228,182,63,237,216,154,79,253,61,65,253,60,222,181,179,78,29,216,118,108,109,77,243, - 179,118,211,150,65,230,202,64,59,136,107,227,181,114,183,20,61,120,190,111,14,157,208,167,25,117,179,20,181,168,41,207,223,2,245,250,53,115,164,5, - 103,22,210,122,246,220,172,154,242,60,248,30,129,31,122,127,72,179,182,102,209,122,86,245,100,94,18,47,155,218,152,119,201,251,212,239,236,231,59,110, - 208,230,31,207,164,176,244,125,167,85,148,161,7,223,204,119,64,147,190,51,232,188,176,7,148,88,250,63,169,41,79,36,145,14,114,114,114,162,189,123, - 247,166,142,142,142,84,36,18,13,54,148,33,148,88,47,117,174,223,129,126,180,226,34,109,63,101,59,229,218,54,76,130,133,223,60,152,251,181,133,99, - 147,106,127,215,81,74,97,98,98,178,189,65,243,118,244,131,105,223,81,51,167,166,74,142,164,254,120,216,180,171,180,69,154,241,248,103,31,85,249,34, - 255,182,67,175,136,22,33,68,0,32,192,193,193,33,164,123,247,238,56,120,240,32,204,205,205,37,105,105,105,161,132,144,8,74,105,161,161,14,94,80, - 16,225,113,50,224,99,38,49,237,213,160,251,56,14,137,24,8,55,107,62,255,153,82,62,162,158,45,9,127,156,78,101,134,240,120,60,94,136,139,139, - 203,129,19,39,254,143,189,243,14,143,162,90,255,248,247,108,239,187,217,244,70,66,79,3,18,122,175,210,67,85,44,112,65,185,160,32,194,197,130,10, - 138,128,40,210,17,11,85,16,80,154,32,74,71,20,144,78,2,129,52,72,2,164,215,77,175,187,155,205,150,247,247,7,9,191,16,82,118,19,238,245, - 94,159,124,159,231,60,155,156,153,249,236,59,179,179,103,190,123,206,153,119,78,184,180,109,219,150,93,184,112,1,92,46,23,0,16,23,23,103,186,125, - 251,182,173,33,34,57,57,217,124,237,218,53,228,231,231,91,0,192,222,222,158,117,235,214,13,63,255,252,179,98,231,206,157,111,127,248,225,135,131,25, - 99,99,136,40,199,26,30,17,85,48,198,38,45,91,182,236,48,128,177,211,167,79,199,199,31,127,204,0,32,43,43,11,71,142,28,193,135,31,126,248, - 167,201,100,10,166,38,100,97,39,2,180,134,71,189,18,207,74,85,61,89,67,199,191,52,118,236,63,102,99,245,39,239,227,238,237,144,85,84,16,187, - 200,154,237,79,63,164,18,0,107,43,11,0,64,217,146,245,108,209,222,125,238,168,169,131,177,254,221,109,208,164,231,78,43,78,165,131,207,36,94,117, - 251,190,106,39,183,149,211,230,125,140,31,182,127,133,248,251,119,215,82,65,92,189,15,14,174,210,232,45,223,225,204,219,115,96,49,62,253,16,0,174, - 73,176,122,232,244,55,28,114,178,115,240,219,129,31,147,44,28,94,189,15,55,6,30,205,209,82,56,75,91,28,254,228,34,102,126,55,26,95,189,112, - 228,201,229,30,204,222,206,89,53,189,223,168,30,248,124,206,6,48,192,170,94,162,252,220,10,204,255,212,11,92,30,171,117,57,153,216,43,61,250,180, - 193,173,91,119,81,166,213,255,113,255,94,195,55,87,228,230,26,241,233,18,47,252,116,56,23,127,94,120,250,126,13,129,25,131,131,130,188,145,152,240, - 16,249,249,69,33,113,26,219,191,251,181,73,192,231,180,113,183,227,33,45,51,7,38,35,239,65,83,121,22,46,231,197,33,65,30,184,29,113,23,70, - 163,217,230,222,231,167,120,28,203,164,97,126,195,112,45,230,26,202,180,101,71,146,244,73,185,77,101,86,147,163,129,73,144,159,159,7,88,184,217,207, - 128,247,74,203,192,126,8,189,116,14,100,65,147,190,79,18,137,189,39,79,192,219,218,161,67,7,36,37,37,161,176,176,112,175,78,167,59,96,11,67, - 44,147,13,145,219,123,46,238,49,98,50,238,95,62,132,216,27,127,220,54,243,4,99,168,32,182,201,147,223,197,98,241,0,133,66,241,122,203,118,254, - 8,251,227,39,232,139,242,95,51,151,37,236,111,42,183,89,205,122,150,170,117,50,60,99,204,89,32,16,196,10,4,130,28,46,151,91,46,16,8,180, - 173,91,183,190,182,123,247,110,65,114,114,50,24,99,120,237,181,215,228,106,181,122,11,143,199,43,20,8,4,122,133,66,145,238,224,224,112,75,42,149, - 118,169,141,217,181,53,83,14,106,195,189,51,176,13,55,163,143,55,71,203,205,70,185,155,163,211,173,47,215,175,229,178,204,16,160,36,29,115,135,122, - 200,29,20,252,175,228,98,86,208,219,155,171,31,212,150,159,62,180,189,240,86,255,182,252,1,245,237,132,189,189,253,242,129,3,7,30,189,126,253,186, - 171,179,179,51,187,113,227,6,12,6,3,42,135,229,192,229,114,33,22,139,31,255,111,173,106,110,199,225,60,58,92,55,111,222,196,228,201,147,69,103, - 206,156,233,230,233,233,25,201,231,243,7,90,203,36,162,10,34,154,180,108,217,178,227,187,118,237,66,90,90,26,210,210,210,112,248,240,225,103,98,178, - 128,71,227,132,186,114,19,44,207,200,105,85,153,172,65,193,147,198,142,124,233,117,124,253,233,135,54,153,172,90,153,1,76,192,229,112,118,78,255,248, - 69,206,181,179,161,8,191,26,125,252,153,153,44,215,182,142,60,62,231,208,212,249,203,184,209,225,55,113,238,248,207,87,81,232,218,224,80,92,149,180, - 57,217,24,184,108,5,6,127,177,26,28,222,255,255,22,17,120,57,188,234,221,57,232,141,78,227,95,192,254,213,203,97,54,86,204,165,164,36,171,238, - 102,123,241,243,129,120,101,245,96,236,154,115,6,102,227,147,79,190,96,60,204,25,249,242,64,113,114,124,10,162,110,222,11,47,74,105,56,217,31,3, - 194,63,121,51,62,116,209,204,7,21,38,227,211,159,179,163,183,212,85,34,19,190,63,104,120,59,92,250,51,28,140,232,87,107,226,92,242,105,10,62, - 250,36,25,111,190,225,10,46,247,233,239,139,133,225,181,110,221,91,32,44,44,26,140,112,222,26,102,67,242,116,144,184,123,56,202,164,92,179,14,105, - 217,133,133,233,37,37,249,77,134,18,94,26,217,201,9,191,221,184,11,80,211,207,43,6,214,183,187,119,119,92,138,185,4,88,240,75,163,24,14,237, - 124,153,218,55,68,217,110,176,137,217,251,69,50,71,159,246,0,192,56,60,167,82,51,31,197,133,5,0,207,220,36,163,165,86,183,86,138,148,118,163, - 100,174,237,16,21,122,1,104,130,209,98,140,113,44,92,246,131,191,159,143,210,96,48,32,49,49,49,69,44,22,191,101,11,67,165,82,217,241,184,130, - 31,2,187,247,101,201,145,23,17,119,253,228,121,179,68,223,255,89,220,97,200,24,19,241,120,188,239,252,253,253,89,86,90,50,114,83,30,156,52,52, - 155,172,102,253,23,138,7,0,39,79,158,164,224,224,224,234,173,106,5,0,203,164,73,147,236,182,108,217,194,147,203,229,208,235,245,226,156,156,28,132, - 134,134,66,44,22,163,111,223,190,108,248,240,225,114,137,68,2,0,252,205,155,55,187,30,60,120,80,105,48,24,158,122,126,18,0,152,45,96,196,129, - 96,212,208,65,142,239,173,222,197,231,202,156,1,139,73,140,220,104,224,207,69,0,87,136,30,237,21,56,243,177,135,12,92,33,74,141,28,254,143,127, - 38,185,237,251,243,129,189,209,104,169,243,151,56,99,76,209,190,125,251,185,123,247,238,181,43,41,41,65,110,110,46,36,18,9,136,232,41,163,101,171, - 24,99,16,139,197,143,13,86,213,43,0,196,198,198,162,69,139,22,236,252,249,243,46,61,123,246,220,141,71,147,237,173,97,118,0,144,91,105,182,14, - 223,185,115,103,44,143,199,195,177,99,199,254,52,153,76,193,0,20,140,177,0,0,209,68,164,183,57,104,0,32,130,182,252,217,244,104,85,153,172,190, - 35,158,31,59,228,249,25,216,186,242,35,60,136,186,217,36,147,5,0,138,82,124,52,100,74,111,63,165,163,12,235,255,245,93,169,209,130,57,77,143, - 246,209,197,129,235,208,98,255,208,151,223,114,229,10,37,56,176,121,77,62,56,230,151,137,254,180,238,25,149,140,133,159,154,51,171,218,45,225,84,10, - 0,18,79,101,15,153,179,251,246,193,11,63,199,249,157,91,144,18,117,231,39,83,90,206,105,235,144,8,223,49,235,212,35,38,161,172,68,128,209,85, - 203,20,222,172,183,218,94,177,120,224,196,94,248,97,205,17,128,176,198,26,102,90,178,110,2,0,120,120,75,146,243,115,43,188,168,198,135,205,99,166, - 85,83,223,232,41,45,42,42,196,137,95,110,197,100,164,150,91,117,1,90,190,212,11,60,62,195,220,183,19,80,97,122,146,217,182,21,155,218,169,163, - 243,240,62,189,92,240,198,172,195,68,12,86,153,183,134,36,224,145,79,107,23,41,10,11,243,81,162,53,220,111,42,207,215,142,55,177,115,107,69,59, - 103,73,5,206,223,73,214,106,37,56,213,24,142,147,172,165,11,71,171,47,213,144,70,43,228,9,59,121,219,123,227,126,198,125,48,14,139,104,104,91, - 166,106,223,10,28,238,183,82,149,99,55,109,81,206,125,152,185,175,113,4,194,179,3,167,47,246,116,106,21,128,236,196,168,142,127,238,249,236,0,99, - 172,171,216,171,151,147,193,72,208,149,22,17,242,92,235,236,29,247,80,120,216,155,74,77,229,26,210,212,217,139,104,50,113,39,122,248,245,22,228,106, - 50,144,151,158,120,135,138,99,31,54,102,223,1,128,39,119,89,224,238,234,48,208,193,193,30,33,55,110,152,45,22,203,228,252,252,252,18,91,24,38, - 147,105,91,187,246,62,110,204,80,130,152,91,215,243,77,38,222,63,40,35,233,153,60,51,85,44,149,47,245,240,112,111,43,22,139,113,231,250,173,82, - 142,69,240,212,157,220,205,250,223,82,45,94,228,111,161,170,159,235,131,78,158,60,73,168,124,112,46,17,21,50,198,186,31,57,114,228,140,74,165,234, - 190,102,205,26,225,133,11,23,144,159,159,15,137,68,2,177,88,252,248,85,36,18,97,227,198,141,21,135,15,31,206,53,24,12,3,137,168,214,25,180, - 225,73,84,212,213,157,117,63,253,251,197,83,114,229,123,189,102,127,186,77,200,46,46,6,82,47,1,92,33,192,19,62,241,122,240,66,130,241,224,229, - 248,66,179,193,50,232,102,22,197,212,179,15,166,188,188,60,60,124,248,16,118,118,118,80,169,84,96,140,129,199,227,61,30,58,228,112,56,141,234,209, - 226,112,56,16,137,68,79,24,54,0,80,42,149,0,128,162,162,34,20,20,20,128,195,225,88,53,105,157,49,246,254,152,49,99,86,123,123,123,211,55, - 223,124,179,138,136,198,31,59,118,172,23,0,39,0,39,0,12,232,208,161,195,137,30,61,122,72,126,252,241,199,203,0,234,237,201,171,75,132,170,161, - 195,166,57,173,42,147,213,99,232,132,177,253,38,76,199,174,245,159,32,225,238,173,38,155,44,185,23,243,119,116,85,125,52,114,122,63,236,95,115,20, - 218,162,178,247,117,105,148,209,164,96,43,37,112,113,89,210,42,160,239,115,126,189,71,227,192,154,185,164,215,23,77,161,252,135,86,179,41,53,121,66, - 205,58,137,167,196,157,35,146,29,237,185,240,115,65,114,196,45,132,238,223,25,109,172,176,62,29,73,81,50,61,197,4,0,187,86,204,75,36,224,31, - 125,107,237,171,130,152,240,7,184,126,246,86,100,73,26,14,91,203,5,30,247,108,105,0,246,248,65,174,206,173,68,195,252,2,28,166,14,25,237,137, - 143,231,157,133,209,108,124,135,170,61,244,181,46,17,67,248,236,185,241,26,0,32,160,204,204,253,127,67,216,166,13,115,226,9,57,27,223,155,31,136, - 3,63,133,34,62,49,119,211,253,68,138,178,37,214,58,101,49,7,247,243,177,195,141,187,201,0,208,160,137,169,79,237,237,4,157,236,196,252,93,171, - 38,185,98,255,159,15,80,172,53,237,75,203,183,237,7,11,99,140,43,81,180,89,236,164,112,249,68,172,0,243,20,183,250,222,223,169,189,29,99,12, - 9,154,132,146,68,125,98,74,125,219,243,237,124,22,59,58,182,88,214,99,240,20,110,107,191,94,120,112,247,138,195,31,63,175,187,19,212,115,162,220, - 91,229,142,51,155,222,199,11,175,175,199,67,215,182,65,89,102,203,24,103,123,79,190,90,111,134,177,48,87,67,20,83,235,15,130,86,226,86,139,219, - 216,181,89,86,42,40,179,180,20,183,60,202,177,112,62,75,48,36,68,215,92,143,24,94,241,236,212,23,169,81,215,0,52,190,39,79,96,231,29,36, - 149,43,62,247,239,220,19,177,119,174,65,167,211,173,208,233,116,215,109,97,200,100,178,87,213,106,245,36,79,15,119,132,132,133,194,108,50,206,160,178, - 180,103,146,215,74,40,83,119,148,74,100,11,218,180,105,131,216,216,88,24,43,12,239,235,116,217,207,164,13,105,214,95,170,39,188,200,223,69,60,0, - 8,14,14,190,8,224,9,23,66,68,90,198,216,224,157,59,119,30,200,206,206,14,222,183,111,159,232,183,223,126,3,135,195,121,108,178,196,98,49,222, - 127,255,125,221,181,107,215,238,235,116,186,161,68,84,111,151,127,88,6,233,6,49,54,244,224,207,191,236,201,204,210,76,88,190,253,132,152,157,124,13, - 208,230,252,191,209,226,10,177,100,95,68,249,165,187,153,137,21,101,166,193,33,217,84,111,87,58,17,233,196,98,241,248,73,147,38,29,216,176,97,131, - 75,255,254,253,57,140,49,112,185,220,39,12,146,72,36,122,162,71,202,26,85,245,104,85,113,170,94,171,140,214,239,191,255,110,252,240,195,15,179,243, - 242,242,38,91,137,28,247,229,151,95,50,47,47,47,22,24,24,248,209,140,25,51,56,68,180,168,146,61,184,95,191,126,167,191,251,238,59,161,64,32, - 64,124,124,124,63,198,152,3,17,229,217,20,52,42,231,104,149,155,96,105,130,207,170,50,89,157,7,143,31,219,35,248,85,28,248,106,25,146,99,194, - 154,108,178,24,99,28,133,39,118,76,124,103,8,63,246,118,60,194,254,136,190,84,156,138,103,242,28,43,177,187,221,63,21,246,222,159,244,121,225,125, - 156,251,105,3,114,210,238,127,65,249,201,103,155,194,148,120,74,122,112,132,194,95,218,205,89,232,98,32,66,232,215,159,21,112,152,105,28,105,242,154, - 52,55,201,190,45,83,128,112,98,234,226,241,142,92,62,7,219,62,217,151,203,24,141,183,198,16,85,87,85,207,86,149,28,91,240,198,182,241,83,30, - 158,251,129,47,59,122,40,26,247,99,115,79,102,37,151,255,110,13,43,46,161,118,67,216,162,45,107,205,24,126,124,245,69,79,53,160,195,158,125,17, - 105,124,9,154,116,30,84,169,141,11,115,146,138,37,83,135,249,43,177,252,215,68,128,225,167,198,178,124,237,196,175,185,72,69,91,54,78,240,22,229, - 230,24,241,229,153,140,36,19,89,62,176,149,195,183,107,183,185,139,239,224,55,102,13,125,7,142,22,62,14,158,253,114,166,216,12,164,23,166,67,111, - 208,71,54,180,189,136,104,202,187,47,175,132,47,170,22,0,0,32,0,73,68,65,84,226,230,21,100,224,226,158,229,152,246,194,50,8,251,100,201,251, - 119,127,30,71,206,124,133,226,140,248,50,73,114,138,172,163,155,63,10,83,98,223,14,112,108,7,105,74,26,248,102,83,88,61,216,41,59,38,237,224, - 218,73,236,184,87,18,175,76,90,121,113,245,152,150,146,150,211,147,116,73,143,205,148,131,162,189,143,196,222,101,176,218,179,29,66,126,221,76,0,175, - 81,199,146,169,124,90,242,25,231,80,215,193,227,249,5,5,233,200,200,204,8,209,235,116,159,217,194,16,139,197,45,133,66,225,183,1,1,1,72,76, - 74,70,113,73,233,119,134,210,252,103,113,231,39,24,99,28,145,212,254,187,128,206,125,120,133,133,89,208,104,52,151,116,58,237,255,246,179,240,154,5, - 160,118,47,242,119,80,189,206,131,136,76,6,131,225,197,83,167,78,105,210,211,211,225,234,234,250,68,143,150,193,96,192,185,115,231,132,90,173,182,79, - 67,38,171,74,127,18,153,46,37,152,166,92,189,126,45,161,32,49,12,112,12,120,162,55,171,130,248,56,123,59,149,111,40,52,246,106,200,100,85,73, - 175,215,95,214,104,52,157,222,121,231,157,208,13,27,54,148,41,20,10,40,20,138,39,230,86,53,182,71,171,182,57,90,18,137,4,203,151,47,47,250, - 240,195,15,111,228,229,229,117,34,162,16,43,145,167,215,172,89,131,204,204,76,76,155,54,13,187,118,237,90,200,24,91,201,24,27,60,106,212,168,211, - 63,253,244,147,80,36,18,225,218,181,107,8,13,13,189,212,24,147,5,52,189,71,171,202,100,117,24,48,118,108,231,17,255,192,175,91,62,123,38,38, - 11,0,148,45,240,126,199,33,109,123,122,4,56,225,208,250,223,12,100,198,235,84,25,104,99,31,207,195,24,227,202,60,100,27,28,60,219,239,28,248, - 218,183,156,132,168,139,136,9,249,245,162,41,63,165,73,233,33,164,94,130,55,164,78,234,43,157,151,45,115,19,184,185,226,206,154,133,102,179,190,116, - 146,62,185,232,233,252,12,214,199,202,20,45,216,107,28,14,239,254,248,121,67,59,180,14,106,129,77,31,252,80,161,215,151,143,43,76,162,228,198,114, - 85,222,172,165,115,43,193,222,224,87,220,143,125,252,69,43,65,88,104,6,14,236,142,201,224,112,57,54,205,169,169,17,43,215,181,61,123,79,166,228, - 223,93,48,223,171,215,11,99,20,88,251,77,20,244,6,243,27,119,239,218,118,179,74,109,242,117,21,123,115,120,188,99,139,70,57,219,231,22,20,226, - 92,84,86,82,114,94,249,101,91,24,131,24,227,249,42,149,147,125,149,138,176,222,206,246,187,14,142,238,44,210,150,240,48,255,96,122,137,217,128,23, - 18,10,168,184,33,6,99,93,249,76,237,187,130,235,16,16,199,212,190,215,21,50,167,25,255,24,243,1,14,252,241,13,182,156,89,137,249,195,63,198, - 115,62,195,241,32,231,1,136,81,131,70,75,104,177,44,92,183,241,229,184,221,63,188,123,46,229,97,232,225,171,167,54,227,37,223,49,72,8,57,137, - 184,232,243,33,34,139,121,173,33,49,22,125,156,58,66,68,150,129,61,28,124,97,78,75,132,208,98,185,85,23,147,44,180,112,232,246,161,15,167,236, - 155,2,1,87,128,253,175,236,21,117,112,233,112,192,91,228,189,134,49,198,13,96,1,2,130,229,199,46,163,102,112,115,19,34,81,146,155,126,133,10, - 238,166,218,114,44,1,128,217,251,245,20,138,248,55,123,61,63,183,141,216,190,5,162,111,94,41,35,19,155,66,68,214,13,189,227,209,121,195,225,112, - 126,244,243,243,147,233,245,122,36,37,37,63,52,72,249,239,216,26,75,93,226,41,221,62,112,243,237,222,221,206,201,5,113,113,113,6,147,201,244,184, - 13,105,86,179,254,27,101,205,93,135,60,179,217,236,234,233,233,137,204,204,76,72,36,146,199,102,203,193,193,1,106,181,186,60,47,47,207,11,64,156, - 181,111,202,24,99,125,188,56,45,237,60,253,129,135,187,1,174,232,177,217,18,8,133,112,86,203,116,153,150,210,54,0,238,88,203,36,162,60,198,88, - 159,125,251,246,125,118,237,218,181,55,119,236,216,161,110,170,209,98,140,61,49,116,88,92,92,76,90,173,22,131,6,13,202,75,77,77,253,170,168,168, - 104,133,141,95,240,149,219,183,111,247,224,112,56,111,46,90,180,8,83,166,76,1,135,195,89,120,234,212,169,15,118,238,220,201,41,42,42,194,149,43, - 87,48,123,246,236,123,122,189,254,197,6,227,171,227,49,59,2,137,148,53,118,142,22,83,180,119,128,29,103,167,79,159,224,177,1,67,38,227,244,142, - 21,200,124,16,222,36,147,165,240,96,246,92,14,183,31,152,121,138,87,160,235,11,163,230,245,198,233,109,87,80,170,209,110,84,151,137,140,157,91,240, - 251,187,72,240,81,80,43,245,144,49,62,156,63,76,21,244,206,153,68,170,119,174,142,194,131,217,115,184,232,76,12,3,100,45,56,163,219,244,232,18, - 216,121,204,60,68,159,59,130,187,231,246,68,8,136,247,114,133,141,189,67,10,15,102,207,24,186,17,227,12,97,12,207,121,118,241,9,12,154,251,42, - 50,238,166,32,118,203,242,66,179,214,240,138,62,181,236,130,173,76,14,15,94,100,65,59,48,180,87,122,97,108,199,65,109,59,143,154,213,15,12,92, - 108,95,120,16,121,89,133,255,44,73,166,27,182,48,185,124,120,146,5,109,65,104,199,19,242,198,122,251,170,187,79,156,209,10,110,206,124,108,248,226, - 33,162,111,21,167,112,25,119,144,38,89,103,213,197,86,225,203,236,133,128,55,8,62,4,142,47,64,62,142,237,88,231,110,253,221,91,254,115,122,75, - 148,100,22,225,141,15,226,205,105,169,250,165,201,241,244,155,53,76,95,15,102,79,2,56,112,8,118,102,130,29,7,176,179,0,118,204,194,81,91,136, - 245,105,231,33,28,244,246,72,15,65,39,39,17,102,124,31,111,49,19,155,73,13,228,142,243,85,40,236,185,196,233,100,38,78,15,198,208,131,39,183, - 235,61,204,222,201,113,106,107,47,180,117,16,226,199,187,73,216,26,147,120,207,98,49,79,136,41,174,176,110,126,146,157,246,203,54,221,134,189,213,115, - 232,52,112,242,242,80,154,122,31,25,57,137,184,22,245,219,53,1,89,244,49,29,94,120,110,128,119,47,236,185,185,13,28,226,52,104,180,242,74,30, - 30,3,30,229,237,98,108,16,239,90,248,209,132,107,17,199,130,24,99,177,82,158,105,185,217,204,2,243,210,99,49,181,205,72,108,182,16,70,56,4, - 97,107,220,38,8,201,92,167,209,74,50,36,29,3,112,172,149,160,85,167,249,199,230,31,248,87,191,127,249,238,152,180,3,107,47,174,125,255,200,221, - 163,47,151,112,205,130,241,189,95,117,238,228,210,13,159,237,156,109,4,113,231,91,179,235,143,218,16,234,8,198,233,6,162,110,42,71,215,49,67,167, - 47,18,150,20,23,227,210,222,37,134,10,131,126,74,185,190,168,214,71,101,213,37,137,68,178,200,205,205,173,143,189,189,61,66,66,66,204,100,193,20, - 210,212,61,175,204,234,56,57,150,32,46,12,147,61,219,118,158,222,113,232,203,136,61,245,13,202,203,203,151,150,151,151,55,122,30,90,179,154,245,159, - 144,53,70,43,104,224,192,129,70,179,217,44,76,75,75,195,134,13,27,180,69,69,69,230,117,235,214,41,6,12,24,128,94,189,122,89,78,156,56,209, - 3,181,24,45,198,216,80,162,167,239,160,234,236,10,159,86,173,91,50,14,79,0,77,86,58,214,28,189,175,75,201,41,179,44,156,220,75,214,205,207, - 27,129,237,220,248,154,188,251,61,81,139,209,170,139,9,0,149,166,103,177,88,44,254,125,216,176,97,91,184,92,238,31,0,242,35,34,34,116,221,187, - 119,79,179,88,44,181,154,193,58,152,134,204,204,76,214,175,95,191,156,226,226,226,114,0,40,40,40,72,111,221,186,117,73,118,118,246,171,68,245,95, - 24,107,99,18,17,49,198,222,218,186,117,43,0,188,185,112,225,66,188,242,202,43,152,50,101,10,39,39,39,7,23,47,94,196,236,217,179,239,105,181, - 218,65,68,244,212,237,227,213,153,204,206,103,177,204,217,117,153,80,162,224,214,92,143,199,23,193,100,182,60,202,82,154,204,171,215,110,213,100,202,157, - 61,150,121,6,244,228,250,15,124,1,23,127,92,141,172,135,182,155,172,234,76,165,55,91,108,239,45,95,230,228,109,199,245,10,116,70,167,17,109,113, - 253,64,36,98,78,220,67,23,49,255,67,38,177,124,200,44,22,236,89,179,8,66,145,20,69,119,118,143,124,99,231,131,18,0,47,215,197,148,87,50, - 157,189,237,184,158,29,157,224,210,174,61,4,146,214,56,191,109,35,226,67,195,127,209,155,229,211,40,187,225,134,189,182,56,157,91,171,185,222,65,46, - 112,9,106,3,142,220,5,215,127,56,131,187,191,94,15,55,115,56,19,245,169,250,228,198,48,85,46,114,174,189,167,28,142,158,118,240,240,117,129,131, - 171,10,87,14,132,35,244,215,168,76,99,185,249,221,226,84,170,119,136,167,54,166,189,167,146,235,238,231,0,119,95,7,120,182,150,67,72,21,72,8, - 201,196,206,229,119,81,86,108,252,137,199,53,207,215,36,86,212,217,35,92,157,233,224,195,22,187,184,169,150,169,221,148,92,7,119,21,236,61,148,176, - 119,87,193,211,93,12,181,192,140,159,247,133,227,207,83,73,119,200,104,121,35,51,158,234,204,147,82,157,233,211,138,45,118,247,22,44,115,176,231,115, - 149,74,46,84,74,30,148,74,30,236,164,92,56,136,249,104,229,32,132,183,74,136,219,145,90,60,191,53,217,156,85,96,122,63,94,83,241,148,137,173, - 206,244,147,218,45,246,18,41,151,181,19,171,184,190,18,21,124,37,42,248,72,84,168,176,152,113,36,61,30,111,71,36,27,242,42,180,59,133,98,221, - 7,119,235,73,59,241,196,57,175,246,253,200,161,133,239,155,157,71,207,64,216,233,93,232,232,211,23,221,187,140,198,245,223,247,128,129,237,5,168,236, - 82,220,31,207,13,112,235,138,7,57,15,0,134,90,231,165,213,213,46,85,222,132,241,196,247,199,133,185,220,140,77,189,83,209,66,232,32,216,56,106, - 53,220,121,42,220,76,184,92,162,214,74,175,54,196,76,172,72,140,108,203,218,246,220,112,105,195,129,184,236,184,81,139,135,44,198,155,189,223,244,228, - 48,46,42,24,225,221,163,95,160,180,56,119,17,21,198,214,58,215,173,230,247,221,173,165,247,178,22,45,91,115,219,251,119,132,123,43,95,200,157,189, - 113,235,250,21,92,250,254,211,28,179,161,100,108,69,73,110,104,93,199,177,54,166,84,42,93,172,80,40,62,245,245,245,69,92,92,28,116,58,221,50, - 173,86,91,167,129,180,134,89,21,103,171,214,109,185,45,125,59,66,214,166,31,174,31,92,131,212,196,152,27,122,173,118,125,99,152,207,74,205,204,103, - 203,252,187,170,65,163,197,225,112,250,74,36,18,193,186,117,235,140,43,86,172,168,176,88,44,159,24,141,198,204,41,83,166,108,26,51,102,140,40,32, - 32,64,126,225,194,133,254,0,246,88,251,166,92,46,250,121,200,45,236,247,239,151,152,63,91,119,197,64,140,54,26,12,150,232,247,54,95,248,182,103, - 7,47,73,107,79,39,177,76,38,28,2,96,115,99,118,74,175,215,95,6,224,95,173,202,219,86,70,229,29,127,142,213,235,52,26,77,215,198,196,83, - 131,251,132,217,250,224,131,15,192,24,195,213,171,87,235,53,89,79,137,177,41,131,94,93,194,21,201,159,74,6,14,0,40,203,215,192,160,43,45,3, - 226,173,238,242,7,135,59,101,240,140,101,92,14,151,143,171,251,214,32,43,62,162,233,115,178,128,41,47,127,49,152,75,22,66,122,76,30,14,47,249, - 19,45,178,178,240,195,16,64,200,173,0,0,124,115,29,144,10,128,249,75,63,195,230,87,91,131,199,169,253,89,128,143,195,4,166,188,242,197,96,174, - 197,66,72,139,206,65,196,169,27,72,186,115,204,84,146,87,190,66,151,97,250,148,72,107,115,95,94,85,156,22,11,33,37,60,27,161,223,95,69,114, - 68,174,65,87,108,216,169,229,152,223,163,70,60,148,184,138,201,225,49,20,164,151,162,32,163,20,145,127,220,71,244,133,36,157,174,176,124,181,204,132, - 117,185,25,182,165,242,168,98,130,8,233,177,121,136,187,156,138,243,219,242,144,155,80,84,97,54,211,25,6,238,183,69,41,166,115,54,49,25,155,50, - 109,197,24,46,135,203,65,94,122,33,242,210,138,112,255,70,50,174,165,21,33,39,41,183,84,87,164,95,150,243,0,95,217,50,127,140,203,48,229,139, - 229,222,92,161,144,161,184,196,140,146,18,51,74,74,76,40,41,53,35,37,207,128,219,247,180,184,122,179,12,185,5,166,80,128,51,255,97,102,69,131, - 23,116,14,99,83,54,181,233,203,37,0,49,218,66,220,40,205,193,14,205,125,220,211,21,102,151,83,197,102,19,44,91,30,150,106,109,203,111,197,56, - 83,251,77,126,159,147,20,126,1,113,161,103,111,106,226,35,187,112,251,79,225,222,185,119,222,100,98,236,103,158,88,82,126,253,225,159,186,156,110,255, - 148,196,100,198,232,13,122,195,93,155,248,181,72,67,26,109,75,113,203,47,222,59,249,222,178,249,125,230,227,179,243,159,161,180,188,244,203,36,74,178, - 106,56,246,33,61,44,97,140,141,57,19,119,230,163,63,19,254,124,183,167,119,111,59,51,227,224,108,202,181,236,50,139,105,109,121,201,125,171,204,7, - 227,112,167,124,182,113,27,151,44,22,60,136,189,139,123,183,174,224,110,244,183,72,137,139,184,105,178,152,94,164,98,77,189,147,254,107,19,17,77,9, - 10,10,226,228,228,228,32,35,35,227,154,78,167,91,105,43,163,174,56,45,102,51,110,134,134,226,236,182,133,200,188,119,237,112,121,153,100,58,81,137, - 245,237,91,179,154,245,23,137,53,52,242,165,84,42,127,47,45,45,125,78,44,22,255,160,211,233,22,84,205,27,98,140,201,164,82,233,103,6,131,97, - 158,84,42,77,40,42,42,122,234,209,54,117,57,222,129,109,248,71,116,6,211,4,137,136,119,170,76,103,122,43,44,131,82,1,160,147,11,147,202,165, - 252,207,76,70,243,191,132,2,126,206,165,248,114,55,107,153,77,209,95,193,100,143,198,35,55,61,247,220,115,111,58,56,56,224,196,137,19,13,154,172, - 26,191,242,198,129,177,85,0,234,154,215,84,2,96,37,21,196,214,155,92,176,14,166,25,132,109,84,24,251,77,3,187,217,32,83,209,130,141,99,12, - 171,56,196,228,124,19,71,193,183,112,244,2,19,247,137,187,192,28,197,70,213,71,163,157,149,189,218,200,17,153,170,197,250,83,233,95,158,77,160,119, - 235,99,130,97,21,1,58,0,87,24,195,37,152,112,185,36,221,186,121,130,245,197,9,64,199,8,23,0,252,81,76,184,66,105,54,223,177,86,27,211, - 194,24,30,128,240,192,66,136,35,1,78,149,198,91,151,228,182,62,38,128,120,70,120,104,97,136,230,0,199,139,82,168,176,49,76,7,31,54,14,96, - 171,64,48,131,33,14,96,177,140,89,98,153,9,177,82,19,98,147,172,52,153,79,244,104,181,124,28,39,135,1,69,4,20,85,189,18,161,8,64,146, - 145,131,211,9,9,84,239,208,102,117,166,191,212,110,28,24,91,69,128,142,24,110,113,136,66,25,227,132,222,43,43,136,107,104,200,177,46,230,227,115, - 158,232,26,76,230,69,224,241,251,242,97,89,192,55,155,191,215,150,60,220,9,0,30,210,214,163,121,22,243,219,0,118,39,235,147,247,53,196,180,86, - 173,68,173,230,17,163,201,4,58,153,82,158,178,178,230,62,88,195,236,202,186,242,243,68,69,253,12,60,102,209,148,121,92,109,40,141,73,29,223,119, - 29,192,66,65,8,129,5,55,168,56,198,166,161,184,26,61,90,227,136,104,21,128,91,140,177,15,181,90,109,163,242,101,213,22,39,35,179,142,131,138, - 27,48,151,255,102,42,209,88,149,124,184,46,230,179,82,51,179,185,71,203,42,53,148,58,30,64,23,0,157,234,89,238,195,227,241,134,215,177,172,214, - 135,78,246,242,66,80,55,79,244,175,139,217,213,13,237,187,183,224,78,178,133,217,148,242,87,50,1,116,194,163,97,178,90,31,10,252,223,18,231,191, - 147,89,215,227,121,254,219,226,108,102,54,51,155,153,205,204,102,230,191,143,249,119,45,13,14,29,18,213,61,39,163,114,121,28,108,152,8,15,0,215, - 147,41,188,190,229,183,50,232,62,128,38,39,46,252,95,16,17,69,2,104,112,130,237,223,89,181,61,158,167,89,205,106,86,179,154,213,172,191,131,108, - 75,44,213,172,102,53,171,89,205,106,86,179,154,213,44,171,197,0,12,173,109,1,217,48,246,202,24,171,149,81,159,26,226,55,51,155,153,205,204,102, - 102,51,179,153,217,204,252,251,49,27,98,219,226,63,254,39,244,239,28,151,196,255,200,184,112,51,179,153,217,204,108,102,54,51,155,153,205,204,191,150, - 249,119,45,214,228,209,106,86,179,154,213,8,29,62,124,248,169,28,103,182,104,210,164,73,214,165,83,56,204,184,40,240,109,5,34,119,112,133,153,200, - 140,140,199,82,235,239,194,171,147,169,9,240,134,196,232,2,147,56,7,154,136,132,38,51,155,213,172,102,253,109,213,114,208,116,81,245,255,147,75,5, - 102,10,219,102,252,171,226,249,111,82,179,209,106,86,179,254,205,58,177,238,181,32,99,133,233,7,87,207,150,97,222,109,3,106,77,36,249,219,245,216, - 128,203,145,241,65,224,240,95,219,181,107,151,109,185,154,114,252,124,192,195,74,112,224,6,170,120,8,167,128,149,64,237,137,53,109,98,10,44,159,195, - 204,241,4,85,196,193,217,119,21,128,38,231,144,106,214,127,159,236,20,188,177,237,218,120,109,76,77,211,72,219,181,119,51,69,69,37,189,89,88,98, - 58,254,87,199,213,172,255,13,49,198,152,71,255,127,237,229,240,212,35,24,145,144,193,34,34,130,209,93,108,46,119,233,53,103,146,230,198,102,155,242, - 250,253,29,245,31,159,12,47,16,8,52,140,49,139,68,34,57,194,24,123,42,79,86,179,154,245,172,196,24,115,171,60,207,44,2,129,64,99,227,182, - 114,62,159,191,68,38,147,93,16,139,197,217,98,177,56,91,46,151,95,224,243,249,75,24,99,79,61,246,168,46,157,88,247,90,144,163,157,242,204,206, - 95,47,183,105,235,229,252,162,135,189,48,248,95,51,95,246,169,94,76,60,233,40,177,107,219,41,9,137,41,126,110,110,110,231,166,79,159,30,96,117, - 160,63,118,146,130,99,30,101,48,90,60,206,68,22,58,107,203,205,62,224,152,70,227,123,31,171,99,172,149,201,99,195,245,21,22,175,189,161,90,151, - 50,131,201,31,132,166,49,43,197,24,179,19,10,133,103,24,99,142,13,175,221,172,255,132,186,117,235,176,229,210,197,29,45,191,92,255,150,211,193,31, - 23,184,181,110,237,178,188,41,188,0,198,186,117,231,243,23,248,51,54,132,217,250,220,179,102,253,207,73,222,125,154,218,66,52,102,216,216,105,234,225, - 19,255,41,29,54,113,38,119,248,243,51,69,93,251,12,87,113,200,208,168,164,227,127,55,253,199,141,150,209,104,116,206,205,205,101,123,246,236,25,167, - 82,169,30,242,249,252,69,140,49,193,127,58,142,191,74,10,133,226,154,74,165,210,216,217,217,105,84,42,213,237,134,234,255,142,98,140,249,56,59,59, - 39,59,56,56,60,145,22,196,57,232,249,62,237,251,189,186,212,177,195,132,129,77,228,11,248,124,254,34,149,74,245,112,207,158,61,227,210,211,211,153, - 209,104,116,182,97,251,1,106,181,250,94,72,72,200,39,185,185,185,3,83,111,236,116,202,10,217,230,148,252,231,250,65,183,78,125,243,137,157,157,234, - 46,99,108,64,67,156,227,171,95,235,228,104,167,60,179,234,199,63,149,148,114,137,255,207,121,139,248,73,247,35,122,29,251,245,215,54,85,235,124,185, - 231,100,203,27,241,165,253,246,31,248,137,79,128,224,226,197,139,66,165,82,249,199,244,233,211,253,235,65,255,191,244,22,23,112,184,131,163,51,181,210, - 204,98,163,75,88,146,86,1,112,7,193,128,198,255,136,41,178,184,0,52,36,60,77,39,187,150,239,228,114,57,190,92,9,14,103,48,244,204,181,209, - 204,74,113,56,156,55,45,22,203,48,129,64,240,118,83,89,205,122,54,146,74,164,98,16,65,46,19,3,32,112,154,104,141,132,28,78,223,107,227,198, - 125,254,97,96,224,60,63,96,108,109,102,139,61,210,191,252,253,253,79,51,198,94,105,218,59,62,193,92,227,231,231,151,206,24,179,234,89,143,53,182, - 175,181,93,10,10,234,213,167,223,160,145,75,59,116,235,53,240,89,49,255,78,42,9,221,147,207,96,254,215,111,71,190,79,56,121,224,219,194,63,126, - 222,140,27,191,253,128,236,132,16,116,247,208,181,101,140,77,249,171,99,252,171,101,181,209,122,177,53,235,59,165,13,187,248,114,107,86,242,74,27,86, - 58,173,13,187,50,169,117,253,143,74,169,75,14,14,14,24,48,96,0,55,61,61,93,242,222,123,239,45,21,139,197,137,140,177,17,141,97,73,165,210, - 91,50,153,44,149,207,231,63,17,139,76,38,187,37,151,203,83,249,124,254,115,213,235,149,74,229,53,149,74,165,81,42,149,181,154,25,133,66,113,75, - 165,82,105,20,10,197,19,207,231,226,243,249,207,41,20,138,52,165,82,89,179,126,136,82,169,76,173,89,95,151,248,124,190,103,106,106,170,115,90,90, - 154,179,80,40,116,169,94,159,146,146,226,156,154,154,250,68,189,45,226,243,249,67,228,114,121,170,76,38,123,42,70,185,92,158,90,115,159,234,82,181, - 99,87,215,49,109,212,231,14,60,106,120,134,15,31,126,37,51,51,211,203,206,206,206,174,250,50,123,149,221,136,31,118,110,122,119,252,232,225,111,58, - 7,76,236,212,72,254,8,177,88,156,248,222,123,239,45,77,79,79,151,244,238,221,155,203,225,88,255,123,130,49,54,116,252,248,241,71,53,26,141,71, - 80,80,16,215,100,50,33,250,216,18,72,35,222,134,56,113,43,90,72,114,120,15,127,95,229,57,124,80,183,163,13,221,141,83,97,44,159,255,209,202, - 77,2,83,90,40,95,123,101,61,116,55,54,113,94,13,238,139,179,231,206,62,222,183,111,246,159,237,252,195,143,123,121,89,89,89,44,35,35,3,90, - 173,86,254,213,87,95,149,233,245,250,5,13,6,123,56,64,0,102,25,96,33,114,186,151,174,119,10,30,247,34,239,78,170,206,201,104,54,219,3,220, - 65,216,221,82,212,32,163,54,38,207,216,223,66,228,114,46,137,239,52,248,165,121,220,243,73,60,39,163,217,236,0,14,6,54,138,89,41,198,24,159, - 203,229,190,187,126,253,122,14,128,185,140,49,97,99,89,255,139,234,233,193,60,158,107,199,11,237,234,206,250,62,43,38,99,172,131,76,38,187,197,24, - 243,105,42,107,199,174,211,244,210,148,181,201,15,30,106,62,107,10,199,96,177,196,30,72,72,248,109,106,219,182,99,62,12,12,156,94,211,108,85,254, - 189,104,213,170,85,211,162,163,163,157,90,183,110,61,139,49,214,164,31,253,149,204,45,171,86,173,122,63,58,58,218,189,85,171,86,159,218,194,172,175, - 93,82,57,57,140,216,177,227,187,119,71,141,24,253,102,64,143,126,86,183,75,245,49,255,110,74,191,188,105,119,218,229,175,218,100,92,219,170,78,186, - 180,101,112,202,149,109,247,135,250,114,48,107,198,52,168,213,234,119,158,209,219,8,1,12,6,16,12,224,57,0,61,42,255,238,94,89,130,241,40,139, - 66,245,215,238,149,219,86,45,239,89,7,35,184,150,237,186,87,171,175,254,127,205,191,27,22,17,225,196,137,19,84,253,181,102,121,185,21,150,205,235, - 227,161,189,119,124,31,149,166,38,80,65,204,29,186,179,253,11,154,215,221,73,59,165,53,86,219,120,167,2,17,17,93,189,122,149,162,163,163,169,180, - 180,148,238,223,191,79,61,123,246,212,73,165,210,115,0,90,217,194,83,40,20,154,115,231,206,209,240,225,195,139,228,114,249,58,0,28,34,130,82,169, - 212,92,189,122,149,134,15,31,94,164,80,40,54,2,224,18,17,94,120,225,133,108,34,34,39,39,167,140,218,120,227,199,143,47,32,34,82,169,84,154, - 202,120,185,10,133,98,227,91,111,189,85,122,243,230,77,82,171,213,85,245,28,165,82,185,110,238,220,185,165,97,97,97,143,235,27,42,246,246,246,169, - 102,179,153,142,31,63,78,206,206,206,143,99,80,171,213,169,102,179,153,142,30,61,90,103,108,245,28,83,142,92,46,95,59,117,234,212,146,164,164,36, - 114,112,112,208,84,171,95,247,234,171,175,150,164,164,164,144,163,163,163,85,49,58,56,56,104,174,93,187,70,207,63,255,124,113,245,99,234,224,224,160, - 185,126,253,122,85,253,218,170,250,250,138,187,187,251,44,103,103,231,12,103,103,231,12,59,59,187,21,110,110,110,89,57,57,57,68,68,212,166,77,155, - 108,34,130,83,224,196,62,237,250,78,91,234,220,97,220,59,91,15,93,15,185,20,149,151,19,56,236,205,181,170,192,241,79,101,136,175,231,24,180,146, - 74,165,231,6,14,28,168,75,77,77,165,178,178,50,138,136,136,160,171,87,175,210,131,7,15,168,242,188,107,136,161,144,203,229,233,229,229,229,150,242, - 242,114,75,78,78,142,57,59,59,219,28,179,206,141,232,123,254,227,82,120,116,44,101,93,90,105,81,202,165,105,0,20,117,241,94,233,38,243,159,51, - 64,157,85,18,246,99,113,209,79,83,169,240,240,63,13,139,134,171,245,103,55,204,56,75,49,135,183,83,204,225,237,171,222,153,124,225,249,137,227,203, - 179,53,89,166,216,216,88,10,9,9,201,80,171,213,185,18,137,164,115,131,251,189,41,192,147,182,249,30,184,187,196,43,230,210,170,145,70,74,58,79, - 251,166,59,25,47,190,227,241,144,182,248,253,76,219,252,91,216,114,30,61,102,110,241,223,23,241,177,87,236,55,159,254,203,152,156,156,76,11,94,29, - 105,58,59,207,35,158,182,250,29,106,20,243,255,143,239,228,137,19,39,150,166,164,164,80,64,64,64,25,151,203,157,209,88,214,255,90,233,225,14,143, - 161,62,194,244,136,189,11,44,99,59,72,243,186,184,161,111,83,153,0,58,56,59,59,231,238,222,189,155,20,10,69,54,0,159,198,112,198,7,247,41, - 208,21,157,163,224,17,129,5,13,188,223,187,29,59,118,12,3,240,124,3,235,49,63,96,220,158,192,192,163,150,73,147,204,123,2,3,143,250,1,227, - 240,40,157,16,3,240,209,154,53,107,194,140,70,99,216,174,93,187,194,198,141,27,23,6,224,253,38,28,7,6,96,219,234,213,171,201,104,52,210,174, - 93,187,104,220,184,113,4,224,235,186,182,177,166,93,10,12,236,217,167,239,192,17,75,59,116,238,249,206,161,95,79,133,68,198,36,228,12,27,249,252, - 218,192,192,129,181,182,75,214,48,255,27,139,82,169,108,29,24,24,184,199,223,223,63,57,40,40,168,220,223,223,191,220,215,215,55,41,48,48,112,143, - 82,169,108,221,200,207,100,228,144,33,67,232,226,197,139,212,167,79,159,28,107,183,107,192,139,244,88,184,112,225,34,0,180,112,225,194,69,68,20,92, - 217,174,7,87,255,187,230,43,17,13,173,254,127,109,140,170,82,27,179,182,247,168,241,119,195,199,163,106,167,78,156,56,49,240,196,137,19,23,107,174, - 240,98,107,244,153,215,199,67,167,203,201,164,168,47,222,166,11,131,61,233,234,32,87,138,123,119,34,101,238,221,72,115,58,171,181,147,90,99,176,13, - 31,0,17,17,133,133,133,81,88,88,24,221,190,125,155,18,19,19,169,168,168,136,14,30,60,104,118,112,112,208,137,68,162,85,0,36,86,158,36,26, - 34,162,242,242,114,90,177,98,133,94,161,80,220,6,224,82,105,148,168,176,176,144,86,173,90,165,87,169,84,17,0,220,29,29,29,83,19,18,18,200, - 197,197,165,86,51,163,86,171,53,177,177,177,164,86,171,53,0,60,212,106,117,212,177,99,199,42,136,136,210,210,210,200,222,222,94,3,192,197,193,193, - 225,206,137,19,39,42,136,136,50,50,50,200,222,222,222,106,163,165,211,233,232,236,217,179,79,196,80,85,127,250,244,233,39,12,152,21,199,211,69,165, - 82,133,29,60,120,208,96,54,155,41,42,42,138,84,42,149,6,128,139,157,157,221,237,67,135,14,25,204,102,51,197,196,196,88,109,6,91,182,108,153, - 77,68,100,50,153,104,235,214,173,229,85,199,180,170,222,96,48,208,230,205,155,203,149,74,101,24,0,151,250,88,142,142,142,25,6,131,129,10,11,11, - 169,103,207,158,165,87,175,94,165,226,226,98,34,34,170,228,193,119,224,140,207,66,238,151,22,255,243,131,77,63,181,234,49,229,139,223,66,211,211,118, - 252,122,43,204,177,195,248,145,86,236,191,68,36,18,173,114,115,115,211,95,190,124,217,92,81,81,65,41,41,41,116,251,246,237,199,231,88,100,100,164, - 85,70,139,199,227,45,9,9,9,169,48,155,205,150,220,220,92,115,118,118,182,57,59,59,219,84,211,104,209,247,124,202,61,253,58,157,220,62,223,32, - 16,8,150,212,197,59,116,232,16,247,149,110,50,255,89,189,100,89,49,155,198,22,46,26,174,214,159,169,52,89,74,165,130,170,204,214,138,249,147,47, - 12,26,208,175,252,204,201,19,121,149,38,171,235,161,67,135,184,245,198,123,8,92,218,230,59,158,182,249,134,237,158,234,152,91,114,123,63,209,239,243, - 41,254,179,214,180,100,164,162,196,178,205,55,140,182,249,77,162,101,3,121,214,158,75,116,8,92,218,238,63,150,182,249,134,173,126,209,59,239,78,216, - 77,186,120,241,34,109,222,184,134,230,13,245,40,179,108,243,13,163,45,254,207,219,196,172,86,68,34,209,253,43,87,174,208,165,75,151,232,211,79,63, - 37,169,84,154,210,24,206,147,49,251,11,104,139,143,55,109,106,63,136,118,182,119,163,63,27,23,219,191,179,244,112,135,199,48,31,97,90,238,157,95, - 137,242,31,80,214,186,0,26,233,203,111,146,217,170,52,89,57,73,73,73,148,149,149,69,27,54,108,32,165,82,217,40,179,53,62,184,79,129,174,240, - 143,122,141,22,128,101,95,126,249,37,25,141,70,106,215,174,221,125,43,226,123,202,108,249,2,227,1,44,94,187,118,237,99,147,181,105,211,166,176,200, - 200,200,48,47,47,175,83,141,60,14,12,192,246,181,107,215,62,54,89,155,54,109,162,200,200,72,242,246,246,78,173,107,59,107,218,165,129,195,130,63, - 139,139,79,43,254,224,163,229,63,245,232,51,244,139,208,59,247,210,126,57,241,123,88,135,160,158,181,182,75,214,48,159,65,225,17,145,176,178,240,137, - 168,202,188,242,0,240,171,58,20,172,41,147,38,77,18,247,235,215,47,100,202,148,41,101,123,246,236,161,164,164,36,138,142,142,166,117,235,214,209,178, - 101,203,232,251,239,191,167,151,94,122,169,172,103,207,158,33,147,38,77,18,219,240,153,4,120,122,122,22,29,62,124,152,246,239,223,79,34,145,104,191, - 181,219,214,231,69,168,14,51,85,151,193,170,185,172,30,35,86,175,97,107,232,253,172,217,175,234,93,171,127,6,7,7,15,68,13,241,8,203,223,120, - 239,51,113,226,238,13,208,28,252,22,220,66,13,248,37,121,40,191,114,18,198,43,199,48,173,119,111,137,132,177,207,107,110,215,144,132,66,33,132,66, - 33,4,2,1,180,90,45,50,50,50,208,175,95,63,206,237,219,183,197,179,102,205,154,47,145,72,82,24,99,19,26,226,84,245,72,95,187,118,13,175, - 191,254,186,232,199,31,127,12,114,114,114,10,55,155,205,66,0,136,137,137,193,203,47,191,44,218,191,127,127,71,119,119,247,219,21,21,21,82,145,72, - 4,46,183,246,59,239,25,99,16,10,133,48,26,141,162,246,237,219,71,132,135,135,119,24,51,102,12,63,57,57,25,9,9,9,48,26,141,66,31,31, - 159,200,219,183,111,7,5,7,7,243,83,83,83,145,156,156,12,102,229,156,79,198,24,12,6,3,68,34,17,170,15,105,49,198,80,94,94,14,161,80, - 104,53,139,207,231,15,241,243,243,139,12,15,15,239,50,126,252,120,193,205,155,55,145,150,150,6,179,217,44,244,247,247,143,12,15,15,239,60,110,220, - 56,65,68,68,4,52,26,13,172,29,66,171,90,47,60,60,28,255,248,199,63,132,103,206,156,233,236,230,230,22,97,50,153,132,0,16,25,25,137,151, - 95,126,89,248,219,111,191,117,105,209,162,69,68,3,67,137,92,0,48,26,141,152,53,107,150,76,169,84,34,53,53,21,22,139,5,102,243,163,236,5, - 121,5,121,145,225,145,81,49,211,38,191,56,80,87,81,94,126,61,244,214,189,54,45,189,61,25,163,150,245,197,201,24,155,32,147,201,82,214,173,91, - 247,78,82,82,146,200,207,207,143,19,31,31,143,146,146,18,8,4,130,199,231,152,181,251,45,20,10,7,5,4,4,240,244,122,61,44,22,11,0,16, - 135,83,251,140,21,113,225,21,248,187,152,248,18,137,100,80,125,204,9,239,127,31,87,98,194,115,159,126,247,219,195,50,142,122,215,205,152,212,227,203, - 55,108,143,44,46,46,129,178,231,140,153,203,55,108,143,52,105,115,143,24,10,82,247,61,255,252,196,212,242,242,242,145,187,119,239,174,247,17,85,0, - 128,226,0,7,88,48,44,57,199,32,18,217,121,42,228,110,62,64,202,37,180,118,18,129,203,225,138,111,38,104,101,0,13,131,87,174,131,85,59,255, - 152,105,25,150,144,109,16,25,237,59,202,221,61,189,144,151,151,135,22,109,252,160,23,58,9,175,61,40,147,131,217,200,172,20,99,172,127,251,246,237, - 93,219,181,107,135,220,220,92,116,233,210,5,106,181,90,205,24,27,102,43,235,177,118,183,20,161,24,125,193,216,122,112,57,159,194,200,91,137,7,57, - 93,176,189,43,191,209,204,103,172,158,30,204,67,41,23,222,216,127,224,160,135,131,151,63,112,242,159,112,177,19,97,231,155,93,236,157,84,162,163,141, - 25,70,100,140,117,112,113,113,57,31,18,18,226,40,22,139,113,251,246,109,4,4,4,96,195,134,13,78,106,181,250,146,237,195,136,143,126,208,83,221, - 239,183,236,203,47,191,92,58,119,238,92,236,221,187,23,237,218,181,107,199,24,155,91,47,145,136,98,128,227,171,35,34,118,253,248,240,225,137,169,109, - 219,142,153,210,190,253,23,179,95,121,229,181,127,253,235,95,88,179,102,13,142,30,61,138,190,125,251,226,141,55,222,48,166,164,164,236,177,45,230,199, - 195,133,219,215,173,91,247,250,252,249,243,107,50,43,146,147,147,87,215,179,121,131,237,82,65,110,65,100,100,84,84,204,228,201,175,12,172,48,149,151, - 135,94,15,185,215,170,101,75,79,70,117,182,75,13,50,155,32,6,64,12,64,90,89,100,0,164,251,247,239,87,141,31,63,94,89,89,39,1,32,97, - 140,53,56,188,239,231,231,231,154,158,158,158,246,246,219,111,247,216,187,119,175,84,38,147,161,184,184,24,59,119,238,196,130,5,143,102,45,24,141,70, - 108,223,190,93,250,250,235,175,247,72,76,76,76,243,246,246,110,112,142,38,99,76,36,151,203,15,173,89,179,70,201,231,243,177,100,201,146,130,242,242, - 242,15,42,151,45,81,42,149,33,140,177,225,13,96,106,245,34,213,222,227,68,245,255,137,104,76,205,186,154,203,136,104,76,125,12,91,84,223,251,213, - 165,234,87,160,65,39,79,158,188,248,20,20,8,116,109,229,139,162,223,15,65,194,99,144,112,43,11,143,129,19,31,137,22,98,62,140,68,29,108,13, - 182,234,34,88,85,248,124,62,180,90,45,204,102,51,22,130,41,222,144,0,0,32,0,73,68,65,84,45,90,36,58,123,246,172,3,135,195,249,185,33, - 78,117,195,20,23,23,7,127,127,127,118,252,248,113,151,185,115,231,74,170,222,167,168,168,8,237,218,181,99,167,79,159,118,254,248,227,143,229,245,153, - 25,198,24,4,2,1,230,207,159,47,9,13,13,181,119,119,119,71,124,124,60,242,243,243,33,151,203,49,127,254,124,73,72,72,136,147,187,187,59,146, - 146,146,80,84,84,4,185,92,110,179,209,18,8,4,79,108,195,24,67,69,69,133,77,198,64,165,82,237,11,11,11,115,82,169,84,136,136,136,128,201, - 100,130,74,165,194,188,121,243,36,97,97,97,78,118,118,118,136,137,137,1,17,65,169,84,218,20,35,0,88,44,22,196,196,196,160,101,203,150,184,116, - 233,146,243,236,217,179,197,85,245,15,30,60,128,167,167,39,46,93,186,228,44,147,201,246,213,197,178,88,44,200,204,204,68,116,116,52,226,227,227,145, - 147,147,131,220,220,92,148,148,148,192,100,50,1,0,164,37,197,39,247,255,116,60,92,34,145,72,3,124,218,123,69,70,221,205,150,72,36,82,111,47, - 47,31,198,62,173,243,96,112,56,156,159,147,147,147,29,166,79,159,46,200,202,202,66,65,65,1,120,60,222,83,231,150,80,104,221,84,32,147,201,228, - 47,22,139,89,69,69,69,85,87,50,132,66,33,222,217,167,69,192,18,60,81,94,217,152,13,50,27,97,48,24,26,156,180,62,225,253,239,227,158,255, - 104,111,175,126,211,191,152,231,59,236,245,173,190,195,94,223,10,0,41,41,41,108,253,161,208,111,124,135,189,190,245,237,79,214,190,177,251,199,125,221, - 172,50,89,140,49,48,67,123,48,214,229,70,124,153,125,255,49,147,5,72,56,3,88,140,0,135,135,65,129,158,188,163,145,101,46,32,4,162,28,126, - 128,21,31,60,99,12,168,104,7,176,110,103,239,155,28,250,78,124,83,144,158,158,14,129,64,0,145,72,132,46,67,94,224,237,15,55,186,130,33,8, - 21,240,181,138,89,77,18,137,228,147,165,75,151,202,170,51,103,204,152,33,83,169,84,75,109,225,60,214,238,150,34,148,73,123,195,76,111,71,167,235, - 188,87,156,204,242,139,207,214,249,129,240,30,96,236,220,84,179,197,24,27,36,22,139,19,24,99,253,26,203,232,233,193,60,148,10,225,245,3,7,14, - 122,216,183,120,100,178,96,210,3,124,9,92,157,236,176,243,157,193,246,78,118,18,155,204,86,165,201,58,119,227,198,13,71,177,88,140,176,176,48,8, - 4,2,136,197,98,116,234,212,9,219,182,109,115,178,183,183,183,217,108,17,8,181,57,173,42,147,245,214,91,111,97,239,222,189,40,47,47,199,138,21, - 43,224,237,237,61,185,65,102,165,217,90,21,17,177,251,139,168,168,7,139,58,118,244,157,32,147,217,191,245,143,127,168,62,254,248,227,19,199,142,29, - 219,21,28,28,156,27,26,26,250,37,17,29,178,37,222,74,147,245,221,250,245,235,103,86,25,183,143,63,254,120,215,177,99,199,86,6,7,7,103,134, - 134,134,190,75,68,155,234,218,222,154,118,169,164,80,112,242,208,161,67,225,98,169,68,234,211,222,215,43,234,94,84,182,88,42,145,122,121,183,242,97, - 159,62,221,46,89,195,108,140,156,157,157,135,222,184,113,35,0,128,0,128,8,149,70,43,42,42,202,174,184,184,216,78,46,151,219,185,185,185,41,42, - 235,37,19,39,78,180,227,243,249,253,235,99,234,245,250,35,139,22,45,178,159,56,113,34,0,160,180,180,20,215,175,95,199,142,29,59,32,147,201,158, - 88,119,244,232,209,120,243,205,55,237,77,38,211,17,43,194,125,117,214,172,89,190,46,46,46,88,184,112,97,121,124,124,252,96,34,74,103,140,169,134, - 14,29,186,44,58,58,186,71,143,30,61,142,51,198,186,214,195,168,213,139,84,169,166,105,170,171,174,177,235,91,35,91,183,127,124,178,4,7,7,95, - 4,80,235,157,84,21,249,26,136,96,134,132,203,32,229,86,51,91,176,128,87,148,109,99,147,251,72,181,93,12,133,66,33,184,92,46,12,6,3,242, - 242,242,172,226,84,153,2,165,82,9,185,92,14,157,78,7,147,201,4,177,88,12,0,80,169,84,80,42,149,224,243,249,224,243,249,16,139,197,79,245, - 38,85,23,135,195,129,64,32,128,76,38,67,102,102,38,146,147,147,97,177,88,32,151,203,33,147,201,32,20,10,145,145,145,129,140,140,12,16,17,100, - 50,25,100,50,153,213,230,8,0,204,102,115,173,23,127,163,209,104,83,143,150,201,100,194,189,123,247,144,146,146,2,177,88,252,120,95,69,34,17,30, - 60,120,128,172,172,44,72,165,82,40,149,74,168,84,42,171,185,85,251,162,80,40,32,145,72,80,80,80,0,173,86,251,248,152,42,149,74,200,100,50, - 20,21,21,33,59,59,187,222,125,55,155,205,200,200,200,64,78,78,14,82,83,83,145,155,155,251,184,1,170,236,53,106,146,138,139,139,145,151,151,247, - 184,39,178,174,98,141,44,22,11,74,74,74,112,227,198,13,102,177,88,80,88,88,104,201,201,202,50,207,201,16,226,232,178,45,116,240,204,29,253,254, - 83,97,186,35,231,162,117,155,142,68,234,196,61,63,109,124,235,137,71,231,102,74,74,10,155,57,115,166,109,73,253,54,119,80,193,200,31,158,91,106, - 20,229,84,8,84,46,29,134,2,9,167,1,14,15,16,171,209,171,99,107,36,23,152,101,177,26,131,24,12,35,176,201,71,109,21,211,204,31,150,83, - 98,20,37,85,56,41,253,3,187,66,163,209,64,36,18,65,36,18,161,91,223,161,72,200,51,75,239,166,235,164,32,12,183,138,89,41,198,88,27,185, - 92,222,187,95,191,126,172,58,115,244,232,209,96,140,117,98,140,249,217,180,255,223,180,21,162,66,218,11,124,122,251,110,166,214,253,104,148,222,103,236, - 132,23,236,55,254,145,237,23,147,169,111,5,139,105,1,168,162,107,99,205,22,99,108,160,66,161,56,241,205,55,223,180,18,139,197,167,25,99,245,94, - 180,234,146,92,194,221,250,201,91,147,61,212,85,38,203,168,5,120,18,128,47,1,120,18,184,58,59,226,243,215,135,217,75,197,124,107,46,96,0,0, - 137,68,178,127,211,166,77,78,53,77,86,85,233,210,165,11,150,44,89,226,100,111,111,95,231,143,159,234,178,151,11,253,139,139,75,248,32,160,76,171, - 21,218,203,133,143,127,56,84,55,89,107,214,172,193,241,227,199,209,171,87,47,204,156,57,179,36,57,57,121,101,125,92,198,216,48,165,82,185,103,240, - 224,193,55,210,100,178,57,169,129,129,252,115,42,85,209,115,69,69,42,239,168,40,163,47,16,9,96,115,106,106,234,72,107,77,22,99,236,37,165,82, - 25,58,100,200,144,10,153,76,166,89,181,106,213,140,185,115,231,98,205,154,53,88,188,120,241,46,0,51,137,232,163,212,212,84,247,250,76,22,240,239, - 105,151,254,93,109,157,197,98,73,61,116,232,80,143,138,138,10,79,60,26,30,20,21,22,22,42,243,243,243,21,21,21,21,50,139,197,34,179,179,179, - 147,3,144,78,155,54,141,23,29,29,29,96,50,153,210,235,99,38,39,39,79,91,180,104,145,38,55,55,23,0,208,169,83,39,228,228,228,96,193,130, - 5,143,123,180,58,119,238,12,34,66,126,126,62,86,175,94,157,149,145,145,49,205,138,112,219,182,111,223,30,81,81,81,136,139,139,251,3,128,153,49, - 166,0,80,114,251,246,237,152,188,188,60,236,219,183,79,224,225,225,113,172,174,20,47,245,121,145,70,234,100,99,54,170,234,185,170,173,71,204,86,113, - 0,32,56,56,152,85,127,173,46,46,67,68,202,173,75,176,239,208,245,137,222,44,41,151,65,162,84,33,33,53,25,2,176,104,91,223,184,174,11,98, - 65,65,1,230,204,153,163,155,50,101,74,158,197,98,121,161,193,29,168,188,200,171,84,42,168,84,42,220,189,123,151,158,127,254,121,205,134,13,27,116, - 85,245,74,165,18,113,113,113,52,124,248,240,236,165,75,151,150,214,103,180,170,122,180,86,173,90,165,27,52,104,80,78,116,116,52,85,153,41,185,92, - 142,117,235,214,233,6,15,30,172,185,121,243,38,85,213,217,210,163,197,225,112,30,27,173,234,219,112,56,28,88,44,22,155,140,86,89,89,217,148,224, - 224,96,77,76,76,12,85,237,167,74,165,194,134,13,27,116,195,134,13,211,68,71,71,83,85,157,82,169,180,218,12,86,189,191,66,161,128,82,169,196, - 221,187,119,105,248,240,225,154,175,191,254,90,95,189,254,222,189,123,52,110,220,56,77,73,73,73,157,183,239,90,44,22,84,13,231,153,76,38,232,245, - 122,228,230,230,34,53,53,245,113,119,186,78,166,28,57,249,165,177,65,58,157,78,123,55,238,126,74,167,142,1,206,58,157,78,155,156,146,18,71,180, - 180,206,22,202,98,177,188,208,161,67,135,188,57,115,230,232,10,10,10,154,108,180,132,66,97,12,143,199,163,254,253,251,147,193,96,160,212,212,84,99, - 110,65,129,201,239,139,47,40,250,157,119,152,228,214,45,145,92,46,103,149,76,78,124,124,188,69,34,145,196,88,5,175,67,141,50,91,28,139,43,24, - 245,187,124,191,212,110,216,216,151,133,44,43,20,168,40,5,68,106,64,164,6,79,230,128,81,253,59,115,119,223,40,118,5,89,250,64,32,242,108,144, - 201,39,23,192,210,255,247,56,189,186,223,164,121,194,252,252,124,112,185,220,199,166,72,42,147,225,185,9,211,56,223,135,150,187,2,212,23,140,219,48, - 179,82,66,161,240,131,79,62,249,68,80,80,80,0,14,135,243,255,76,169,20,179,103,207,22,41,149,202,197,86,239,251,225,0,1,248,162,94,176,208, - 219,177,89,58,247,99,17,58,159,247,86,238,148,116,232,220,3,179,6,57,75,86,158,202,14,8,79,215,182,2,204,239,194,100,232,102,171,217,98,140, - 245,87,40,20,39,111,221,186,37,29,61,122,52,214,173,91,39,147,72,36,167,173,73,231,81,83,101,165,230,185,203,191,254,65,19,241,229,8,160,162, - 236,145,193,170,86,178,75,45,88,178,243,124,145,209,72,13,246,14,85,73,167,211,189,58,115,230,204,188,35,71,142,60,101,178,196,98,49,18,19,19, - 177,98,197,138,252,252,252,252,215,26,98,217,203,133,254,193,99,7,133,237,222,245,133,12,32,124,187,113,158,100,208,144,128,168,94,61,123,232,21,10, - 69,226,234,213,171,151,206,153,51,167,202,200,124,250,235,175,191,206,29,55,110,92,196,173,91,183,166,18,81,157,67,39,140,177,97,115,231,206,253,34, - 35,35,195,255,252,249,243,188,172,172,44,245,7,43,86,20,29,200,203,203,95,25,21,21,247,81,199,142,237,22,6,6,190,86,87,234,135,58,152,47, - 189,245,214,91,7,211,211,211,187,159,63,127,158,159,153,153,233,52,105,210,36,172,92,185,178,186,201,178,218,205,88,211,46,201,212,134,145,47,190,248, - 98,144,94,171,211,198,221,143,77,233,232,223,209,89,175,213,105,83,146,19,227,104,233,211,237,146,53,204,198,40,47,47,239,193,190,125,251,238,207,157, - 59,183,107,90,90,154,63,0,135,146,146,18,89,73,73,137,200,96,48,72,212,106,181,186,115,231,206,142,111,188,241,134,252,246,237,219,1,233,233,233, - 37,0,146,234,99,18,81,124,70,70,198,200,209,163,71,231,23,20,20,160,99,199,142,24,55,110,28,220,220,220,224,230,230,134,113,227,198,33,32,32, - 0,133,133,133,120,229,149,87,114,51,51,51,71,18,81,188,21,225,62,204,202,202,66,159,62,125,176,124,249,242,49,47,190,248,98,116,255,254,253,139, - 59,118,236,88,218,162,69,139,54,95,125,245,21,60,60,60,112,232,208,33,55,145,72,244,83,205,141,235,243,34,0,114,42,13,143,161,198,107,78,3, - 203,172,221,182,214,191,173,88,175,65,53,120,229,173,0,150,236,57,180,91,47,244,106,7,149,111,16,164,98,49,36,66,33,36,106,7,148,91,44,216, - 145,152,165,45,35,178,190,161,172,84,205,11,33,99,12,223,126,251,173,169,119,239,222,250,243,231,207,127,163,211,233,188,136,232,215,134,56,213,77,193, - 215,95,127,173,157,63,127,126,120,118,118,118,144,88,44,54,84,213,127,243,205,55,218,105,211,166,69,165,165,165,117,145,74,165,218,186,230,103,85,241, - 42,135,54,202,179,179,179,123,204,152,49,35,102,243,230,205,101,82,169,20,50,153,12,34,145,200,144,157,157,29,52,103,206,156,240,181,107,215,106,37, - 18,9,100,50,153,77,195,114,68,244,148,161,170,94,111,173,140,70,227,249,236,236,236,160,249,243,231,223,249,234,171,175,202,170,12,80,245,24,215,175, - 95,175,149,203,229,54,245,104,85,173,39,147,201,176,113,227,70,237,188,121,243,194,179,179,179,131,68,34,145,161,90,125,217,220,185,115,239,100,103,103, - 7,25,141,198,243,117,177,204,102,179,185,184,184,24,60,30,15,81,81,81,229,2,129,0,28,14,7,15,30,60,120,220,248,216,219,219,7,4,117,234, - 232,247,195,254,67,23,37,2,145,168,119,143,110,254,241,73,201,105,68,172,161,198,226,87,157,78,231,117,254,252,249,111,122,247,238,173,255,246,219,111, - 77,117,245,108,89,163,242,242,242,139,183,111,223,54,138,197,98,150,153,153,105,226,114,185,48,155,205,84,222,163,71,121,167,175,190,162,187,11,23,50, - 165,76,198,19,8,4,144,74,165,236,204,153,51,6,173,86,123,209,42,120,61,178,217,108,113,32,5,131,228,126,118,185,66,204,49,49,196,253,250,200, - 100,137,237,0,177,26,16,171,225,225,225,137,208,68,173,2,28,8,97,182,34,135,24,145,12,12,210,40,13,20,124,161,132,101,101,101,61,54,68,85, - 165,85,59,127,220,78,46,149,131,145,8,92,216,146,130,100,140,131,131,3,47,51,51,243,41,102,64,64,0,215,104,52,90,159,218,37,195,236,6,88, - 230,198,101,235,221,127,9,215,250,188,179,242,123,137,196,92,8,220,250,26,29,218,184,227,157,73,157,133,31,31,205,233,112,51,73,219,6,60,154,13, - 75,169,147,181,104,198,88,63,133,66,113,250,230,205,155,82,133,66,129,248,248,120,244,232,209,3,219,183,111,151,74,165,210,83,140,177,122,231,227,213, - 212,141,44,74,46,45,49,247,254,224,80,74,86,68,166,233,9,147,149,83,70,152,185,250,88,97,65,177,254,133,235,41,117,127,127,106,138,136,238,20, - 22,22,14,95,188,120,113,94,78,78,206,19,38,43,57,57,25,147,39,79,206,207,201,201,25,68,68,13,254,248,101,60,44,88,241,249,219,162,208,208, - 40,140,12,126,219,116,251,206,3,44,124,127,60,199,217,73,37,138,136,136,104,249,194,11,47,84,25,153,79,137,104,25,17,109,74,78,78,14,34,162, - 122,179,198,43,20,138,41,43,87,174,196,177,99,199,208,165,75,23,221,145,35,71,192,229,114,113,248,247,223,147,246,221,191,191,168,106,206,86,109,169, - 31,234,97,190,187,114,229,74,28,63,126,28,93,186,116,41,251,229,151,95,192,225,112,176,118,237,218,92,216,104,178,0,235,218,37,59,59,117,64,167, - 142,29,253,246,239,63,112,81,192,19,137,122,244,238,233,159,152,148,148,70,172,246,118,201,26,102,99,68,68,148,155,155,123,245,187,239,190,187,62,100, - 200,16,217,212,169,83,157,143,30,61,234,160,213,106,221,5,2,129,139,193,96,16,222,189,123,151,119,248,240,97,183,123,247,238,37,234,116,186,80,170, - 156,149,94,159,10,11,11,35,238,221,187,55,34,48,48,240,222,134,13,27,210,92,92,92,44,175,191,254,58,94,127,253,117,184,184,184,88,54,110,220, - 152,214,167,79,159,232,216,216,216,145,101,101,101,145,86,134,187,235,139,47,190,184,186,127,255,126,140,29,59,22,171,87,175,198,129,3,7,112,225,194, - 5,201,229,203,151,133,219,183,111,135,64,32,64,175,94,189,48,98,196,136,129,204,134,228,207,0,110,226,81,239,212,31,53,94,111,54,176,204,218,109, - 235,250,187,161,245,26,150,53,51,230,255,209,6,203,102,119,84,104,175,77,237,69,89,111,244,35,205,203,254,116,101,160,61,205,104,203,202,94,109,100, - 122,7,157,78,247,184,28,57,114,132,92,93,93,203,20,10,133,205,233,29,92,93,93,53,197,197,197,212,189,123,247,124,39,39,167,199,169,8,220,220, - 220,52,101,101,101,212,171,87,175,124,103,103,231,199,233,29,60,61,61,83,137,136,188,189,189,107,189,179,207,213,213,85,99,50,153,200,213,213,181,42, - 69,2,223,222,222,126,75,207,158,61,243,53,26,13,185,185,185,61,78,157,224,228,228,180,174,71,143,30,79,212,91,17,111,106,90,90,26,165,165,165, - 81,139,22,45,50,170,215,39,39,39,83,114,114,50,121,122,122,218,156,222,193,201,201,105,109,205,88,26,27,163,151,151,151,70,167,211,81,159,62,125, - 158,56,166,94,94,94,26,189,94,95,85,111,85,122,7,137,68,50,75,44,22,103,136,197,226,12,145,72,180,162,101,203,150,217,63,253,244,19,109,220, - 184,145,20,10,197,163,244,14,1,227,122,183,235,243,218,71,78,1,227,223,107,74,122,7,133,66,113,206,213,213,181,236,200,145,35,79,156,95,58,157, - 206,234,244,14,18,137,36,173,180,180,212,162,209,104,140,87,175,94,213,222,186,117,75,27,21,21,165,77,76,76,212,229,101,103,87,104,52,26,93,81, - 81,81,121,120,120,120,185,84,90,127,122,135,67,135,14,113,235,42,85,223,131,234,42,44,44,36,133,66,97,169,90,167,206,88,183,251,180,163,45,126, - 199,30,46,111,117,119,254,0,169,62,242,243,32,162,159,39,18,157,154,73,116,254,3,10,221,246,6,245,105,37,50,95,93,208,34,142,182,250,254,98, - 85,74,134,237,157,218,209,22,191,83,247,63,109,117,247,213,254,238,250,29,155,55,82,72,72,8,69,69,69,81,124,124,60,157,250,245,39,234,211,70, - 250,136,185,197,239,152,45,105,30,0,244,21,137,68,165,27,54,108,160,27,55,110,60,102,30,59,118,140,164,82,169,22,176,242,174,101,128,209,166,128, - 137,166,205,190,87,22,15,147,151,230,157,248,128,40,114,55,209,246,14,68,187,122,18,253,20,76,116,252,53,186,177,113,18,245,109,37,48,210,86,223, - 203,180,51,96,152,181,113,242,249,252,226,35,71,142,80,70,70,6,93,186,116,137,110,221,186,69,49,49,49,148,146,146,66,39,79,158,36,62,159,175, - 7,96,243,93,141,61,93,224,61,180,189,32,51,124,85,95,162,163,147,41,103,223,63,104,76,71,69,126,175,22,188,33,182,178,170,29,211,206,14,14, - 14,185,39,79,158,164,196,196,68,186,120,241,34,57,59,59,231,2,232,96,45,163,95,111,255,56,50,132,211,128,190,254,21,74,165,252,198,128,190,237, - 41,253,225,215,212,163,107,75,227,230,205,155,41,43,43,139,164,82,105,162,173,177,13,30,60,56,132,136,194,186,116,233,114,25,192,128,160,160,160,203, - 9,9,9,97,221,187,119,191,129,122,82,63,52,192,172,32,34,234,218,181,107,9,128,113,129,129,129,37,9,9,9,212,189,123,119,67,99,142,159,53, - 237,82,64,96,175,222,125,6,13,255,40,160,75,239,247,172,73,239,96,13,179,169,5,143,38,220,123,0,8,192,163,28,78,221,42,255,118,135,13,119, - 28,214,194,156,202,231,243,119,216,217,217,253,105,103,103,247,39,159,207,223,1,96,106,99,152,120,212,129,51,11,192,89,39,39,167,7,129,129,129,186, - 17,35,70,208,168,81,163,232,173,183,222,34,139,197,66,17,17,17,228,39,145,232,183,1,9,219,129,179,219,172,204,50,240,191,90,172,94,113,82,43, - 244,157,222,134,93,156,210,26,37,147,91,163,244,159,109,217,149,23,90,161,222,134,2,181,60,221,187,234,2,99,177,88,40,46,46,142,6,15,30,92, - 38,147,201,210,1,140,176,242,67,124,130,233,232,232,120,203,217,217,57,149,199,123,178,209,170,86,255,92,245,122,103,103,231,107,110,110,110,26,39,39, - 167,219,181,49,29,29,29,111,185,185,185,105,28,29,29,111,85,223,142,203,229,142,118,116,116,76,175,89,207,227,241,134,56,59,59,167,214,172,175,109, - 223,137,30,25,170,140,140,12,202,201,201,33,47,47,175,39,140,86,90,90,26,101,101,101,61,97,192,172,97,54,20,75,93,245,117,49,173,56,166,54, - 127,238,213,150,249,120,120,120,100,175,95,191,158,228,114,249,19,141,143,239,128,127,126,18,114,191,180,120,230,135,91,126,114,242,159,208,201,150,125,175, - 182,222,8,153,76,150,62,120,240,224,178,184,184,56,178,88,44,100,177,88,106,53,90,117,156,159,35,187,117,235,150,151,155,155,107,46,41,41,49,165, - 166,166,150,39,36,36,232,62,255,252,243,138,156,156,28,125,105,105,169,33,34,34,162,220,205,205,45,7,192,83,183,121,87,103,218,98,180,70,143,30, - 77,106,181,250,83,198,88,73,77,163,245,84,156,135,252,5,180,205,191,47,109,245,63,25,179,212,251,222,107,61,101,229,97,235,71,19,157,255,128,110, - 108,153,73,189,91,9,31,25,162,109,126,167,233,123,159,1,244,117,27,97,131,251,126,200,95,64,59,218,246,167,109,126,167,239,46,241,190,55,177,171, - 147,97,255,238,109,244,224,193,3,58,118,120,31,245,106,93,105,178,182,250,159,165,45,254,131,173,98,62,185,172,175,72,36,42,221,185,115,39,61,120, - 240,128,126,249,229,23,171,76,214,19,76,128,209,150,128,9,166,205,190,87,22,13,149,23,206,236,41,46,159,220,89,104,24,223,65,80,49,188,157,192, - 212,199,155,103,14,114,227,88,252,157,64,195,125,37,229,180,213,247,50,109,245,127,170,93,169,43,78,161,80,152,130,106,57,117,106,22,145,72,148,83, - 151,209,106,232,252,236,233,2,239,161,62,162,204,115,203,135,208,216,64,69,158,53,38,171,33,38,128,206,142,142,142,185,187,118,237,34,23,23,151,28, - 107,76,86,117,166,189,74,176,43,45,241,12,29,218,247,25,245,239,237,67,187,183,205,165,155,87,150,145,189,138,191,183,119,239,222,153,185,185,185,212, - 175,95,191,82,91,227,84,40,20,123,74,75,75,195,118,239,222,29,214,169,83,167,203,27,55,110,12,187,122,245,106,152,68,34,217,83,185,254,83,102, - 203,191,70,251,95,11,51,180,164,164,132,118,239,222,77,157,58,117,42,217,184,113,35,93,189,122,149,36,18,73,104,67,241,89,121,126,214,217,46,245, - 27,50,250,147,251,9,25,197,31,44,254,236,39,255,238,125,173,110,151,234,99,54,229,115,111,76,249,171,153,0,228,246,18,201,189,240,240,112,42,40, - 40,160,46,173,91,83,20,159,79,121,2,1,93,224,114,43,182,2,171,158,117,124,255,77,229,223,11,175,195,104,233,245,122,90,176,96,129,65,44,22, - 107,5,2,193,34,0,130,255,149,19,166,169,76,71,71,199,107,46,46,46,26,23,23,151,39,204,94,245,122,71,71,199,219,127,117,156,255,78,38,0, - 31,129,64,144,204,231,243,227,170,215,59,5,140,235,221,182,239,171,139,93,58,140,27,213,148,56,1,8,4,2,193,34,177,88,172,93,176,96,129,161, - 180,180,212,106,163,85,89,63,76,42,149,166,239,217,179,71,119,255,254,125,99,126,126,190,41,36,36,196,120,235,214,45,195,178,101,203,74,164,82,105, - 58,128,90,123,74,108,53,90,74,165,146,136,136,6,12,24,64,29,59,118,148,186,187,187,219,55,104,180,136,64,95,183,17,86,153,173,200,197,222,49, - 99,59,74,43,182,191,59,156,122,183,172,97,178,118,121,139,172,254,140,190,110,35,172,50,91,119,62,246,138,25,236,35,55,173,92,252,14,245,106,45, - 121,210,100,217,194,124,114,121,95,169,84,90,178,116,233,82,171,123,178,158,98,238,240,245,162,45,126,123,31,153,168,134,138,255,14,250,214,215,235,191, - 225,156,39,122,100,182,158,243,17,69,91,219,147,101,13,19,64,103,181,90,125,207,26,147,85,147,169,150,9,252,167,77,30,174,79,122,112,148,74,243, - 78,81,228,205,141,244,226,196,110,20,216,169,99,238,230,205,155,41,54,54,150,100,50,217,5,91,227,4,48,108,246,236,217,97,73,73,73,97,241,241, - 241,97,87,175,94,13,155,48,97,66,88,245,239,76,117,179,85,241,252,243,229,157,57,156,119,26,96,190,52,123,246,108,74,76,76,164,248,248,120,186, - 122,245,42,77,152,48,129,0,188,244,172,62,163,186,218,165,128,192,94,189,251,14,28,182,184,67,96,15,155,219,165,186,152,77,253,220,255,29,231,231, - 191,147,9,64,58,106,212,40,139,217,108,166,81,35,71,210,2,198,138,190,103,44,247,123,198,114,183,2,233,223,0,45,159,117,124,255,77,133,135,255, - 176,42,31,208,235,36,151,203,79,234,245,250,121,68,148,249,159,142,225,175,84,78,78,78,31,91,234,255,142,34,162,56,0,222,53,235,179,163,143,94, - 7,112,253,25,240,43,0,172,100,140,237,217,182,109,219,55,235,214,173,155,32,22,139,173,154,180,88,185,253,239,140,177,14,179,102,205,122,71,44,22, - 15,214,106,181,62,0,32,147,201,226,202,203,203,47,232,116,186,47,137,168,176,169,113,114,254,143,189,243,14,143,162,234,254,248,247,206,108,239,105,155, - 30,66,32,144,132,208,123,145,34,210,65,186,116,69,16,68,20,1,69,69,197,74,21,81,81,176,33,136,130,72,147,222,69,64,84,122,135,64,8,1, - 18,82,72,79,54,219,119,167,220,223,31,73,48,134,148,13,182,247,253,189,251,121,158,125,118,103,118,230,187,231,206,236,206,158,57,247,222,115,24,198, - 252,214,91,111,53,55,24,12,183,50,50,50,16,26,26,106,89,185,114,165,103,131,183,167,37,187,176,44,250,12,228,242,69,77,194,212,179,223,232,71, - 201,194,253,199,34,23,15,13,188,211,49,90,115,27,82,241,61,16,231,41,140,79,113,122,108,80,137,230,41,168,184,69,205,35,212,179,23,12,2,121, - 111,239,55,145,239,15,246,191,211,177,190,246,14,40,222,131,194,118,188,86,154,229,160,148,254,70,8,233,251,193,7,31,124,107,179,217,38,81,74,15, - 215,90,68,199,100,193,202,189,9,142,109,2,138,170,7,223,81,106,3,131,203,200,103,106,85,76,252,239,228,68,22,77,5,80,235,84,56,213,65,41, - 61,15,192,179,186,152,21,40,176,184,174,250,105,229,173,246,236,61,50,43,58,58,226,17,135,147,9,27,51,118,2,38,61,211,210,63,52,52,20,243, - 231,207,167,86,171,245,253,7,176,233,71,66,8,214,174,93,59,166,81,163,70,13,18,18,18,110,216,237,246,117,148,210,31,203,109,67,9,33,59,223, - 187,120,209,186,60,33,225,55,151,40,254,86,131,230,198,82,205,23,26,53,106,212,44,33,33,225,162,221,110,255,144,82,122,223,128,234,7,165,170,235, - 210,149,11,199,31,248,186,84,149,230,255,26,148,82,27,203,178,203,98,99,99,7,223,184,113,99,238,30,74,191,250,183,109,250,39,33,165,222,230,223, - 35,78,72,15,74,233,65,175,166,87,243,191,89,179,108,176,46,245,224,199,226,169,230,156,57,115,234,204,159,63,191,152,82,106,34,132,80,74,105,217, - 132,136,202,10,240,86,173,185,44,90,14,185,188,53,168,56,13,4,245,64,73,58,100,226,210,154,156,172,26,53,85,164,45,120,201,12,16,68,128,34, - 11,148,249,168,38,39,235,31,61,71,132,16,188,141,170,7,81,191,141,123,183,210,30,107,254,9,254,63,104,18,66,250,104,181,218,217,205,154,53,107, - 113,225,194,133,51,86,171,245,125,74,233,190,255,52,59,189,154,255,127,53,255,191,242,143,71,180,188,120,249,111,195,19,7,171,182,204,155,55,239,206, - 188,121,37,5,21,94,127,253,245,72,131,193,144,170,215,235,171,203,100,93,57,211,146,93,216,28,127,26,121,236,44,48,168,7,240,169,176,242,89,152, - 150,226,122,96,227,74,52,79,34,143,76,7,139,24,200,249,100,88,92,89,152,242,39,52,255,106,74,206,73,213,231,229,193,210,160,254,79,83,234,84, - 213,232,88,121,241,226,165,118,120,29,45,47,94,254,101,230,205,155,119,7,64,228,252,249,243,115,30,72,96,120,130,27,64,122,233,227,175,225,239,208, - 244,226,197,139,151,255,65,8,128,30,149,189,81,155,144,32,33,164,82,141,234,168,73,223,171,233,213,244,106,122,53,189,154,94,77,175,230,255,63,205, - 10,218,125,43,121,43,177,18,205,21,181,181,227,63,134,191,115,164,61,254,31,206,158,240,106,254,117,154,40,201,223,82,109,254,156,255,4,59,189,154, - 94,77,175,166,87,211,171,249,247,107,86,243,89,147,255,169,207,250,59,30,222,174,67,47,255,24,132,144,120,0,61,1,28,1,208,78,213,93,181,80, - 112,80,74,8,25,8,192,1,96,24,128,211,148,82,143,107,191,121,241,226,197,139,23,47,255,201,252,171,142,150,58,32,38,4,18,166,25,17,105,28, - 0,80,134,92,3,47,94,180,229,93,255,211,41,31,116,97,177,126,20,242,77,4,174,199,204,25,137,5,127,86,175,105,172,97,104,80,128,110,108,86, - 190,233,219,203,215,204,219,107,179,175,143,79,93,131,210,207,119,184,211,205,53,145,203,100,119,220,69,197,43,10,10,146,205,127,214,166,191,19,117,64, - 76,8,97,208,77,163,211,181,82,40,213,109,213,58,223,134,34,5,10,178,51,82,92,28,255,171,224,178,157,165,34,142,212,116,174,8,33,101,101,158, - 122,105,94,159,186,87,59,118,40,10,103,47,112,50,220,9,52,220,25,172,40,202,229,145,26,149,246,245,59,175,197,212,123,126,122,123,172,248,242,68, - 89,56,249,8,0,145,150,222,206,252,91,180,110,230,55,33,196,104,24,150,146,150,247,229,229,235,230,29,255,166,45,255,36,186,208,198,19,24,137,252, - 13,66,185,96,48,178,12,222,229,124,205,146,117,197,163,226,191,0,80,39,174,227,49,66,152,186,148,138,169,119,174,29,235,112,111,125,124,167,3,162, - 32,198,17,194,220,76,187,246,91,183,154,182,247,132,152,104,205,216,48,163,97,145,205,234,186,112,226,82,222,159,42,254,234,197,139,23,47,127,53,85, - 58,90,117,27,119,62,173,84,170,162,0,64,164,20,34,5,172,197,69,103,239,38,159,238,13,0,198,168,86,251,165,74,125,43,145,150,188,47,136,0, - 239,118,220,54,165,156,104,227,201,7,107,3,99,135,244,232,213,99,232,128,1,253,99,155,54,105,26,13,0,151,46,95,74,222,181,107,119,162,54,48, - 118,139,37,39,113,235,159,105,24,133,114,110,235,214,45,30,58,115,230,220,187,0,158,253,51,90,0,224,239,175,157,118,224,135,89,93,30,25,186,68, - 3,160,86,142,150,210,207,119,248,160,71,251,180,120,233,249,41,204,83,179,22,68,157,254,237,200,98,93,104,147,34,42,114,7,172,217,35,127,169,174, - 112,114,109,32,161,173,84,42,193,62,154,128,78,65,73,175,240,74,149,72,191,207,203,187,110,169,141,142,33,180,113,143,176,200,168,45,35,39,204,84, - 170,13,65,18,176,50,0,4,153,41,87,113,104,253,66,223,25,239,172,106,249,219,197,84,254,167,31,62,117,104,66,27,15,181,102,94,169,106,186,248, - 72,149,190,235,39,12,81,40,173,166,253,251,52,163,7,195,193,88,193,69,232,20,228,7,87,122,242,15,150,112,235,69,23,224,164,249,221,31,9,170, - 167,215,93,65,72,112,58,0,76,232,173,82,253,224,160,37,209,46,74,233,47,213,182,187,110,93,133,218,46,31,6,130,241,0,92,132,146,175,173,185, - 234,157,148,158,253,67,237,64,77,80,220,35,115,23,124,244,194,204,9,189,42,27,19,112,31,209,209,68,222,180,65,131,201,63,172,126,182,237,67,3, - 22,184,72,221,186,71,239,189,153,154,106,167,37,249,186,254,117,84,65,141,218,234,52,218,209,96,153,1,162,8,158,119,187,183,186,157,214,239,173,57, - 215,47,63,136,158,62,188,217,59,237,58,61,60,107,232,152,73,170,140,34,130,243,87,146,235,93,254,241,203,175,244,17,205,3,138,211,46,124,234,137, - 134,76,46,175,179,107,215,174,224,94,189,122,5,25,34,90,148,228,28,35,128,65,167,209,31,60,120,128,244,233,211,39,52,160,94,235,34,74,1,42, - 138,48,24,244,250,61,187,119,145,62,125,122,123,86,249,188,28,140,128,23,55,172,122,38,244,163,207,14,248,197,69,171,218,93,75,182,159,172,173,134, - 23,47,94,188,252,93,84,233,104,41,149,170,168,19,71,118,249,109,253,53,13,0,208,163,101,48,94,155,183,172,23,33,36,17,0,6,62,245,118,204, - 187,175,62,143,99,87,114,64,41,69,139,6,254,232,59,232,49,143,162,15,170,224,248,54,35,71,140,24,51,107,214,139,3,111,220,184,145,242,253,247, - 223,255,2,0,157,59,119,110,176,96,193,130,17,75,124,253,20,170,224,248,12,123,86,130,103,5,27,43,234,135,69,135,197,55,108,54,118,195,215,203, - 152,110,189,135,141,86,133,69,47,180,103,36,103,120,178,175,209,104,156,46,149,74,13,64,73,53,246,50,234,71,176,193,0,192,11,162,206,47,44,206, - 204,202,148,130,66,33,75,48,91,44,223,154,210,19,86,86,167,233,228,184,198,51,158,121,146,57,127,51,31,81,141,59,179,75,23,190,14,81,224,124, - 103,190,58,111,248,153,147,27,0,188,245,243,131,180,179,12,189,49,190,190,192,8,83,13,18,201,240,94,125,122,186,102,191,248,108,184,72,69,44,254, - 120,197,107,7,246,31,120,75,19,20,179,87,36,116,133,61,43,201,163,227,233,231,239,247,221,244,57,31,105,173,174,223,211,20,149,58,89,248,234,219, - 77,184,144,38,34,46,54,78,18,60,125,177,246,203,121,147,191,65,73,157,173,251,80,105,31,250,176,126,199,35,1,46,139,128,155,199,35,187,103,119, - 26,156,133,122,193,193,184,148,114,4,156,48,205,58,50,119,44,128,76,0,107,186,119,59,178,45,62,158,233,122,233,146,184,119,156,90,61,120,77,189, - 122,10,183,217,12,255,212,212,229,0,154,84,166,175,13,142,143,163,84,156,236,43,215,141,155,252,236,120,223,193,131,6,80,139,205,77,214,109,220,218, - 119,203,150,77,191,170,131,98,150,216,33,63,68,179,47,217,52,129,13,155,190,50,251,213,29,125,122,116,246,56,138,155,155,43,143,112,213,21,253,0, - 128,231,161,85,59,228,69,40,75,221,20,20,235,6,170,73,152,89,5,36,168,169,218,71,70,199,107,180,134,233,162,40,238,206,72,252,237,133,218,106, - 148,167,81,251,126,109,131,67,66,247,247,24,62,73,111,172,19,71,76,86,43,146,46,159,157,117,254,199,239,39,249,214,139,111,94,120,43,33,173,54, - 122,190,190,245,244,50,95,227,140,137,83,102,170,22,204,157,3,187,185,16,114,181,15,186,140,124,69,183,231,203,23,230,17,66,190,160,148,214,88,33, - 215,225,112,20,244,238,221,39,196,24,20,74,150,173,252,200,96,113,240,176,58,121,204,125,101,18,6,13,26,4,181,70,75,190,253,126,171,193,225,18, - 224,228,4,76,127,246,41,244,233,211,143,114,28,95,101,98,89,66,136,194,96,48,236,82,42,149,18,160,44,195,3,160,83,48,245,40,5,68,17,82, - 170,138,219,219,176,197,195,229,28,96,10,155,205,238,206,116,231,54,160,41,15,150,104,213,139,23,47,94,254,12,213,254,233,104,85,18,36,222,202,2, - 0,248,168,128,105,79,63,129,252,188,220,24,23,47,98,194,19,227,112,238,218,93,36,222,206,5,165,20,49,225,106,0,213,36,16,44,7,11,177,245, - 132,137,19,186,238,63,112,224,212,27,115,222,88,67,72,73,214,221,47,87,124,213,225,205,183,222,156,52,238,137,113,61,55,111,222,124,5,158,86,198, - 174,216,40,162,91,246,254,162,249,242,244,60,135,99,250,172,217,226,139,176,196,247,2,0,0,32,0,73,68,65,84,47,76,95,138,146,241,63,53,34, - 149,74,13,233,233,233,90,134,249,227,141,245,123,243,103,31,237,57,116,73,82,202,157,162,243,251,119,236,104,19,31,31,143,244,140,172,78,139,63,254, - 162,121,72,116,155,39,205,197,246,161,214,220,132,74,179,80,43,164,210,43,239,44,254,188,133,232,211,128,121,109,82,63,52,142,14,69,70,78,17,186, - 244,30,40,57,123,250,116,47,0,63,63,72,59,59,118,236,216,57,171,208,241,154,66,171,168,63,101,210,68,50,229,169,177,33,156,40,97,114,77,78, - 48,12,193,135,239,205,143,144,45,121,151,126,183,113,231,208,79,63,255,170,151,38,40,182,128,130,190,101,203,190,94,67,23,24,245,11,15,212,35,49, - 173,164,119,179,162,147,101,117,240,0,0,25,43,128,128,250,87,165,226,118,38,39,229,37,29,13,182,155,210,33,138,166,43,40,178,118,199,217,228,0, - 0,185,154,192,216,119,130,131,2,199,90,157,46,135,165,168,80,176,228,92,239,78,8,145,0,192,121,226,190,116,44,53,53,238,178,221,14,11,144,80, - 153,182,38,40,246,195,110,157,219,207,124,121,230,179,104,210,36,158,58,92,64,86,161,131,168,101,34,158,158,50,197,57,122,244,232,134,217,217,89,227, - 237,197,182,28,101,72,92,246,216,209,227,126,30,51,106,164,242,66,170,221,18,19,174,172,241,216,106,181,218,184,110,221,122,78,234,212,62,254,122,207, - 225,75,46,231,230,185,246,204,95,125,184,123,199,88,31,100,230,20,99,204,160,135,101,53,138,84,32,32,32,70,27,168,215,159,28,48,112,104,125,65, - 160,210,29,219,54,252,233,238,99,153,76,182,250,165,215,222,52,72,124,234,224,110,161,29,60,8,26,183,238,196,74,165,172,239,217,253,27,151,3,120, - 180,54,122,188,66,209,164,211,67,15,211,204,66,55,4,151,13,187,182,111,198,224,161,143,65,165,214,65,231,19,40,242,238,184,24,0,87,107,210,201, - 184,126,162,169,62,172,153,245,179,175,55,169,191,57,120,7,82,150,192,229,180,65,89,191,63,218,7,231,96,220,228,23,177,239,76,54,228,82,6,22, - 171,21,234,168,94,200,62,179,198,94,112,231,92,165,78,117,41,202,102,205,154,201,15,31,62,172,44,205,33,11,0,88,191,110,69,222,227,207,45,97, - 40,228,217,167,142,157,169,39,149,253,241,212,12,27,51,41,223,246,211,121,5,0,175,163,229,197,139,151,127,28,9,0,236,222,189,155,246,239,223,255, - 62,39,73,16,40,18,111,151,12,193,97,89,22,253,31,106,128,165,139,223,129,221,197,227,194,45,19,182,30,75,131,203,90,4,74,41,242,26,7,222, - 39,78,43,76,241,252,96,145,186,37,171,144,142,236,213,165,65,93,63,95,95,223,164,43,107,172,111,190,144,221,72,66,221,103,231,189,215,224,150,204, - 79,210,113,211,166,141,241,143,14,24,32,215,106,117,47,107,194,91,132,75,173,244,197,162,162,11,166,170,52,43,162,14,106,52,112,200,224,193,221,131, - 131,131,196,49,11,78,94,91,246,92,203,58,13,27,52,236,164,14,138,25,88,149,131,81,94,83,20,69,48,12,131,236,236,108,8,130,0,167,211,9, - 142,227,144,150,150,146,45,82,26,46,64,100,66,66,194,33,145,200,17,85,55,18,159,47,93,168,94,187,97,71,219,87,222,152,187,157,16,210,190,108, - 76,81,121,77,71,65,225,230,61,251,14,24,41,14,133,190,54,169,31,155,83,104,193,161,211,55,112,174,118,193,134,202,218,62,183,91,167,182,170,194, - 194,252,8,185,140,149,158,78,204,133,200,42,1,16,16,2,220,45,112,64,45,151,144,62,253,250,27,198,142,26,106,56,114,236,98,240,132,39,159,252, - 12,192,142,106,52,225,116,114,194,67,113,26,182,121,125,3,46,38,23,226,212,222,227,152,62,231,35,156,185,229,132,217,98,3,17,156,96,169,19,121, - 169,55,193,11,194,125,81,204,50,77,158,203,30,149,117,171,235,84,0,22,0,95,150,70,66,178,213,129,177,111,189,253,198,43,115,90,117,232,142,148, - 108,43,190,253,250,203,207,180,193,49,249,148,210,205,0,64,8,233,223,137,227,38,163,36,218,181,170,50,59,117,58,237,232,93,155,190,134,217,206,35, - 45,215,65,210,243,236,176,56,120,240,34,117,168,21,178,155,62,58,223,92,93,144,214,98,21,82,235,119,237,212,117,243,171,175,204,210,38,101,58,201, - 133,155,38,58,180,157,111,149,109,7,0,189,94,223,166,95,191,126,99,151,44,89,210,244,253,69,47,93,87,202,36,17,12,35,42,19,210,173,184,145, - 39,194,94,88,117,53,159,202,52,9,33,140,42,48,166,175,70,175,255,240,153,103,103,214,29,58,108,164,228,171,21,159,185,24,150,109,165,49,198,7, - 149,119,208,141,198,120,13,175,144,78,87,107,212,61,1,178,55,253,218,175,239,85,247,157,47,50,21,235,66,35,27,2,84,132,148,17,161,150,1,121, - 38,17,190,145,77,224,114,126,93,101,105,150,42,53,5,65,20,68,17,78,183,8,137,84,142,1,253,251,65,99,8,130,132,33,16,120,14,2,195,84, - 233,28,222,167,73,0,135,91,0,67,0,134,33,200,204,72,71,221,58,17,128,251,46,28,110,1,82,9,3,169,132,193,245,228,20,52,141,171,135,236, - 179,247,7,196,43,106,26,12,6,136,162,136,188,188,60,112,28,7,183,219,93,242,91,229,56,222,234,16,36,31,124,246,45,95,182,109,124,163,198,76, - 215,78,173,24,185,92,65,170,211,252,43,240,106,122,53,189,154,127,158,170,124,145,255,118,170,141,104,37,167,21,32,241,86,22,198,13,104,141,240,176, - 16,156,186,94,8,147,149,67,145,213,141,34,171,27,162,68,135,172,226,34,20,23,100,35,41,53,175,186,60,205,0,0,86,33,29,57,99,134,105,150, - 101,94,195,187,71,246,78,67,152,49,41,254,149,87,138,122,46,93,106,112,249,70,232,26,61,247,204,211,189,119,238,218,67,92,78,23,234,215,139,84, - 118,234,218,243,201,47,86,172,8,70,229,121,54,238,67,31,30,239,171,80,169,86,206,123,251,101,197,162,141,73,183,173,46,88,183,28,207,190,249,226, - 236,55,125,166,76,24,253,185,62,60,254,215,226,244,132,66,79,180,202,46,226,46,151,11,60,207,35,35,237,234,192,159,182,190,212,164,203,192,197,126, - 10,165,18,20,128,217,206,35,207,228,196,195,143,244,100,91,109,223,219,248,152,203,53,17,192,125,221,136,69,69,41,38,93,104,51,221,238,237,235,216, - 141,63,158,135,94,163,194,241,139,55,112,234,231,189,60,21,185,3,101,219,233,66,27,198,0,202,253,32,68,113,111,103,34,166,155,211,47,181,174,204, - 70,137,68,226,152,252,212,120,87,82,82,210,119,39,78,93,140,250,237,240,158,214,97,245,155,42,27,182,234,69,124,2,194,192,16,224,124,158,9,23, - 111,22,33,219,228,196,7,147,155,178,96,72,141,93,103,34,240,194,200,137,47,125,252,249,199,239,177,113,117,180,88,183,98,17,204,86,23,242,138,172, - 200,204,33,184,118,211,132,51,151,18,177,119,219,58,94,20,153,23,171,210,161,148,102,3,120,179,226,250,240,176,224,73,189,122,15,192,192,209,147,161, - 84,170,209,119,196,51,56,243,235,254,199,1,108,46,221,47,5,192,171,213,217,200,176,12,4,145,34,45,207,129,188,98,23,204,118,14,185,38,23,242, - 205,124,122,190,217,100,85,40,100,249,18,56,15,31,90,183,232,133,245,107,214,4,166,23,112,236,233,27,38,92,187,99,169,246,91,106,48,24,30,30, - 54,108,216,144,55,222,120,163,65,82,82,226,141,188,204,196,78,59,214,205,136,107,223,111,129,116,239,186,21,160,12,11,81,224,193,176,50,104,130,98, - 75,181,8,103,205,190,86,105,132,203,191,110,203,241,193,209,109,223,235,241,72,15,205,136,145,227,84,117,234,54,128,205,5,60,49,126,178,60,32,192, - 216,123,197,231,75,147,2,162,90,175,20,76,133,239,242,74,73,176,74,167,63,48,240,209,17,65,84,20,101,63,238,221,42,2,168,54,91,60,21,41, - 146,179,29,112,186,221,112,186,220,40,180,58,145,93,104,69,161,229,193,130,55,148,64,110,177,186,160,144,49,24,247,220,7,56,184,114,34,250,77,89, - 138,27,153,217,112,216,76,18,123,230,21,143,19,152,18,0,14,151,0,169,132,128,129,136,236,236,92,12,30,215,7,215,143,158,128,211,45,64,38,97, - 192,128,226,198,237,12,204,156,48,0,63,174,169,89,83,20,69,80,74,225,118,187,225,118,187,193,113,28,246,236,216,24,180,254,203,167,84,31,44,223, - 167,90,181,252,237,119,139,221,62,201,34,68,85,76,76,163,133,173,91,173,53,242,226,191,58,159,194,139,23,47,255,227,84,249,167,235,112,216,111,15, - 27,57,14,33,129,193,218,65,221,198,203,206,38,23,33,247,110,42,110,92,191,12,155,131,131,204,183,30,160,12,70,221,168,72,92,76,220,238,254,228, - 253,221,22,145,119,222,174,74,111,208,160,208,240,16,163,134,121,127,113,157,19,215,19,11,91,173,155,179,26,99,198,104,3,222,95,92,231,68,202,77, - 13,163,86,210,142,79,62,49,154,48,132,226,149,87,102,97,208,128,62,152,240,228,227,228,219,111,191,105,239,105,99,68,72,151,191,250,250,59,242,236, - 34,222,117,234,186,197,169,214,168,84,191,37,89,172,141,163,234,168,250,13,29,159,185,123,211,202,143,0,60,225,137,150,203,229,186,119,33,119,187,221, - 0,32,0,0,195,148,60,231,155,93,200,41,114,34,187,200,9,94,16,49,116,228,19,170,211,103,46,60,129,74,28,173,82,235,68,142,231,176,229,199, - 115,200,56,189,89,36,12,107,42,27,12,15,148,56,89,193,193,117,142,14,24,250,184,81,174,84,3,0,204,86,39,190,253,98,113,149,54,82,74,29, - 132,16,149,191,191,191,116,64,191,71,210,157,206,78,119,126,254,245,132,226,167,13,31,116,35,126,241,190,133,250,46,172,155,167,144,73,89,72,24,6, - 102,59,15,212,232,14,3,89,73,199,63,13,110,216,129,76,156,58,107,233,204,151,94,99,103,126,242,11,92,14,27,156,118,43,138,77,133,80,73,56, - 92,57,182,131,167,2,55,211,146,121,206,163,193,209,229,177,219,221,238,66,155,3,26,141,6,18,185,6,249,133,38,220,95,225,175,122,8,32,114,60, - 133,217,206,149,62,120,20,88,249,187,151,83,76,126,33,129,218,76,41,193,197,31,62,153,254,196,230,205,155,227,138,157,68,118,236,106,33,174,166,21, - 11,199,247,172,200,195,235,149,155,236,227,227,51,104,220,184,113,61,158,127,254,249,136,228,228,228,27,119,239,102,114,96,72,73,132,132,130,217,184,226, - 29,132,250,169,144,109,226,48,114,234,60,172,93,246,10,156,46,55,134,244,236,112,95,33,104,66,8,9,172,215,230,147,142,29,58,78,124,99,206,91, - 74,72,181,200,43,22,176,251,68,10,66,252,125,32,145,48,136,111,211,155,93,218,188,171,110,207,174,245,207,237,217,186,238,73,41,40,51,121,230,2, - 93,124,211,182,100,246,212,65,102,179,217,244,124,37,186,140,33,188,233,170,25,19,95,127,122,241,151,111,54,14,10,170,67,45,54,7,92,2,69,177, - 205,133,98,171,11,46,78,128,195,102,3,5,163,210,27,227,235,15,233,55,43,99,251,161,15,63,51,165,95,153,88,227,44,78,2,127,95,95,31,214, - 234,224,161,41,13,4,17,2,176,44,129,84,166,20,149,193,177,145,142,172,196,84,79,207,147,147,19,32,101,25,100,221,205,68,120,104,0,34,131,245, - 184,14,2,151,91,132,84,194,224,230,237,52,68,133,25,209,60,186,202,30,232,63,80,222,209,114,185,92,224,56,14,12,195,208,82,59,169,94,234,56, - 158,145,150,117,200,199,167,185,129,23,196,133,54,39,15,158,255,75,230,154,120,241,226,197,203,3,81,165,163,149,114,229,151,54,0,16,219,166,119,190, - 86,41,241,147,48,4,217,233,201,248,118,201,116,136,34,69,191,73,239,67,23,21,12,149,140,133,211,146,111,201,191,113,164,218,43,37,33,92,207,79, - 191,204,136,154,250,76,125,253,186,117,22,41,0,172,91,103,145,62,51,37,66,255,217,151,183,163,218,61,212,10,84,16,48,96,208,48,140,28,53,18, - 41,89,54,252,112,244,14,172,118,151,71,245,213,212,198,70,205,3,67,195,250,204,24,223,71,35,97,9,105,24,105,96,211,114,57,158,101,165,194,206, - 211,166,204,161,67,71,5,28,218,179,177,187,218,216,168,185,45,247,234,133,154,244,156,78,231,31,186,14,253,2,234,237,233,57,108,73,250,221,44,243, - 238,172,66,71,59,43,199,35,187,200,137,156,34,39,138,172,110,4,235,124,193,115,174,166,85,233,81,74,215,12,30,54,238,113,0,12,97,248,213,230, - 204,171,215,203,222,43,115,178,250,12,26,99,60,122,54,25,55,206,236,45,164,34,95,50,99,142,136,85,70,16,40,165,118,134,97,20,10,197,189,0, - 24,211,173,115,7,119,108,131,232,253,223,109,61,56,142,211,116,134,92,202,66,194,16,176,18,2,139,135,142,22,0,100,37,29,95,30,220,176,3,62, - 254,100,233,7,29,123,142,145,253,124,238,54,236,28,208,161,101,12,182,109,248,202,73,41,247,146,37,243,220,114,79,180,202,32,132,176,106,99,204,202, - 136,200,136,240,91,183,82,49,227,229,55,144,153,111,71,246,237,43,8,52,134,246,212,4,197,45,181,229,36,206,244,36,165,131,40,136,212,201,9,176, - 216,248,50,71,203,233,224,200,45,163,65,173,213,170,20,23,191,126,103,228,83,27,214,173,139,144,200,212,210,131,231,242,145,144,106,118,30,217,176,208, - 101,203,186,50,174,50,61,163,209,56,98,252,248,241,29,199,143,31,31,120,237,218,181,219,38,147,137,115,56,156,176,58,228,219,123,14,95,114,51,55, - 159,219,115,38,197,221,237,151,155,50,100,155,92,16,5,17,155,78,23,195,237,180,86,106,159,177,126,219,125,79,62,57,161,219,136,17,99,100,151,111, - 21,195,206,149,68,118,4,206,129,179,87,11,16,28,24,4,0,96,25,6,45,59,15,151,53,110,211,71,198,241,2,228,106,61,174,39,223,130,205,97, - 203,182,102,39,94,169,168,171,54,54,28,213,181,223,0,89,76,191,14,35,21,223,168,223,234,57,114,122,80,78,118,22,114,11,173,112,242,34,172,54, - 23,138,205,22,0,20,62,141,250,250,230,95,220,182,169,247,244,94,159,229,51,215,181,63,239,230,134,0,168,50,71,153,54,36,174,115,96,72,248,151, - 15,117,235,161,73,206,119,34,225,199,119,144,125,215,142,111,151,191,132,206,195,95,66,215,71,39,232,15,109,253,252,130,79,88,211,25,69,25,151,190, - 173,233,28,161,212,161,146,73,24,164,103,164,99,104,175,54,200,53,185,0,74,225,18,74,34,90,87,18,111,99,100,191,86,40,178,122,54,129,179,44, - 1,96,217,239,210,237,118,163,203,195,253,114,70,63,189,210,183,160,200,124,245,218,237,226,95,203,182,21,68,10,187,83,128,240,239,102,8,241,226,197, - 203,255,56,247,28,173,221,187,119,83,0,168,172,127,52,35,187,0,254,90,9,140,161,81,24,59,253,3,172,249,232,5,8,2,7,74,1,94,240,236, - 110,145,82,233,143,207,62,19,21,87,55,138,53,142,29,163,182,127,183,206,166,26,59,70,109,111,210,212,223,244,236,51,81,183,205,142,58,157,120,65, - 192,111,87,114,112,249,182,9,151,83,138,161,85,121,158,230,139,149,203,158,89,188,104,161,76,194,18,114,37,213,98,73,207,231,45,172,84,234,86,171, - 228,212,69,37,206,148,60,154,255,200,224,39,237,59,215,126,60,17,192,115,85,233,148,205,52,44,187,136,151,61,83,74,41,1,68,145,8,66,122,158, - 3,22,55,135,236,194,223,29,45,194,87,237,193,232,66,27,198,24,244,126,251,88,150,85,80,10,112,110,126,132,46,180,97,111,115,102,210,245,242,78, - 214,137,43,153,72,62,127,48,91,112,219,198,89,179,175,253,84,243,49,165,14,177,252,212,200,82,36,18,34,16,6,84,38,101,137,132,101,192,50,4, - 44,3,88,28,156,135,110,86,9,89,73,199,151,71,198,63,52,231,192,250,143,2,39,244,111,132,13,71,75,124,62,135,57,183,216,146,94,59,39,11, - 0,84,65,13,122,62,241,248,147,227,95,152,49,21,119,114,28,72,202,176,64,46,147,163,109,251,78,104,214,186,189,236,235,175,87,77,79,56,186,101, - 19,80,50,57,162,58,168,40,138,54,167,128,98,59,7,179,141,135,205,77,111,58,56,241,150,86,167,144,238,89,245,142,126,241,162,247,162,66,195,194, - 201,254,115,249,184,146,82,88,252,227,154,215,69,123,126,74,31,123,246,213,83,149,233,137,162,200,21,20,20,96,231,206,157,174,203,151,47,195,102,179, - 65,42,149,194,229,118,135,41,101,18,21,195,240,202,237,191,157,131,84,225,3,131,79,3,80,80,184,171,185,7,16,120,161,201,192,129,131,100,7,78, - 165,225,139,111,214,97,204,160,30,32,170,80,68,26,213,56,117,241,58,120,162,6,67,8,24,166,228,33,147,176,144,74,100,144,9,46,220,76,74,0, - 5,61,86,169,48,97,90,119,238,217,79,220,242,213,138,130,208,58,209,50,159,128,64,201,227,189,26,194,233,226,112,39,199,140,66,171,11,44,75,80, - 96,118,97,197,86,78,198,42,181,225,87,142,31,187,214,177,103,175,174,71,246,108,111,141,74,28,45,66,8,209,132,54,125,189,126,131,70,175,140,159, - 250,154,230,90,22,133,143,90,139,194,156,52,236,222,187,15,35,71,142,66,168,175,1,218,38,109,73,253,6,49,134,45,95,47,90,22,16,213,170,83, - 222,237,179,147,106,58,79,46,94,132,205,106,134,192,11,104,19,31,129,243,55,75,134,91,114,28,69,177,217,2,139,205,129,206,45,163,112,43,211,86, - 147,212,61,68,81,4,199,113,247,110,134,56,129,7,40,37,44,88,161,124,202,13,78,160,176,57,5,8,30,94,163,188,120,241,242,239,83,157,47,242, - 223,10,3,148,52,168,236,81,113,3,74,129,164,212,60,200,37,34,194,235,70,131,150,251,167,166,0,248,251,199,66,87,202,246,237,153,233,245,27,88, - 197,151,95,190,211,161,73,83,255,139,207,76,137,184,214,164,169,255,197,151,95,190,211,161,126,3,171,200,241,82,129,150,230,235,42,203,205,85,187,92, - 149,76,219,230,241,245,216,119,214,37,221,153,250,217,245,68,153,76,198,133,7,168,73,100,144,154,173,99,84,201,157,28,227,140,105,220,210,5,134,180, - 172,78,165,204,111,113,185,92,127,120,228,231,38,15,60,240,195,172,65,97,65,190,227,51,114,237,184,147,99,67,90,174,13,119,114,109,176,57,121,92, - 186,122,19,96,101,149,230,45,210,235,252,246,127,255,221,154,58,205,27,213,15,140,143,169,27,184,242,155,53,117,148,74,159,253,186,208,134,49,117,162, - 98,207,158,60,184,209,120,226,74,38,82,19,207,100,241,206,226,239,61,113,178,128,146,136,22,207,243,162,211,233,132,195,225,32,22,139,69,234,118,187, - 137,40,138,96,0,72,88,6,18,134,64,194,18,48,132,148,206,22,172,253,237,189,197,206,99,231,201,44,236,218,186,30,191,254,180,171,182,187,223,131, - 80,118,216,163,3,250,34,49,205,138,11,183,76,200,41,114,33,41,195,138,205,191,102,224,151,75,5,136,110,218,13,34,161,195,61,209,162,148,82,139, - 157,135,213,193,195,226,20,179,109,46,114,147,227,200,205,179,135,214,59,102,78,28,48,168,119,151,230,100,247,177,91,56,151,152,97,223,251,197,116,105, - 117,78,22,0,228,231,231,111,221,177,99,199,190,211,167,79,103,55,110,220,88,27,26,26,42,213,106,213,172,94,197,119,221,177,110,70,111,127,63,229, - 224,240,208,22,80,233,227,113,215,84,18,89,225,169,8,187,195,81,169,30,47,8,82,151,155,135,147,163,104,221,188,41,168,76,139,59,89,185,72,72, - 78,135,201,84,140,236,220,124,228,20,20,34,175,176,24,69,197,54,20,154,29,40,182,184,224,112,243,48,155,11,225,182,217,110,86,122,12,65,85,10, - 133,76,121,243,230,53,81,174,84,193,205,11,216,114,42,7,219,78,231,224,194,29,43,174,102,88,177,253,84,6,54,31,75,5,199,243,96,37,114,225, - 242,153,19,162,74,169,146,83,16,85,101,154,170,224,70,79,117,234,210,227,181,241,207,207,213,156,73,225,81,207,104,128,45,105,11,40,117,97,232,208, - 225,176,89,139,145,114,234,123,132,26,244,240,245,13,192,51,175,188,175,173,19,213,112,164,95,157,166,211,171,59,71,4,0,199,83,164,222,73,71,219, - 102,209,40,178,184,193,50,37,19,53,56,158,226,202,245,219,232,210,186,33,236,78,1,44,91,178,190,38,202,174,9,101,17,45,167,211,137,35,7,119, - 6,125,191,98,146,254,145,46,13,218,197,69,171,218,149,109,43,240,20,54,39,143,74,230,107,120,241,226,229,63,144,234,124,145,255,102,60,10,25,69, - 134,7,225,228,229,219,104,26,87,15,6,189,14,215,146,211,193,50,82,48,165,23,76,79,161,110,110,195,135,31,26,144,122,91,195,124,246,249,237,168, - 103,159,137,186,253,225,135,134,227,212,205,109,0,48,142,210,146,11,105,89,130,212,218,220,136,82,145,139,8,242,83,179,103,110,90,243,25,134,117,250, - 27,148,162,191,65,193,248,235,228,82,153,148,21,121,202,184,195,3,163,28,84,20,155,123,162,87,190,235,80,16,4,16,194,8,0,32,138,162,38,45, - 223,14,147,131,69,118,145,19,133,102,55,26,134,105,112,240,208,102,155,192,217,215,85,166,197,74,101,134,232,168,112,188,54,247,67,216,157,2,146,50, - 44,144,41,20,193,65,193,141,47,140,155,58,91,241,252,138,100,76,236,238,143,23,126,73,206,176,101,43,103,123,218,102,81,20,121,139,197,66,178,178, - 178,52,46,151,75,42,149,74,221,114,185,92,40,177,23,144,72,8,24,194,128,33,0,8,96,182,11,64,173,98,90,37,168,149,18,60,218,62,24,14, - 247,104,216,157,60,142,253,84,251,10,57,132,116,147,68,53,49,14,174,27,89,7,7,206,229,194,238,20,96,115,242,40,182,241,224,69,138,236,34,7, - 162,67,125,32,87,24,30,35,132,188,80,83,247,161,211,229,190,248,219,201,115,82,141,127,148,191,91,16,239,236,248,118,113,93,153,96,234,26,236,167, - 213,142,29,245,58,155,148,97,69,86,250,205,220,221,95,189,231,227,182,22,141,183,103,39,86,233,100,149,81,92,92,188,79,167,211,89,10,10,10,250, - 245,234,213,75,95,80,144,47,228,218,74,206,59,165,96,126,90,55,23,132,149,2,148,194,118,251,16,54,189,177,173,172,117,92,69,45,194,48,191,109, - 220,240,125,191,199,70,140,144,230,23,6,224,240,233,100,72,37,12,146,44,121,224,33,129,212,108,134,90,37,135,193,79,139,0,31,41,212,74,57,68, - 202,128,227,1,173,86,15,86,46,191,127,26,47,0,10,114,237,234,249,179,77,166,190,53,87,249,234,248,113,76,253,204,44,80,137,20,148,176,40,182, - 57,81,108,115,194,226,224,224,176,217,192,89,76,224,172,5,206,199,167,205,10,217,183,125,147,21,148,94,171,76,83,34,85,77,238,220,107,168,242,203, - 165,115,65,220,38,156,118,217,208,171,123,47,76,153,189,26,119,10,44,168,31,164,71,226,175,223,225,163,183,31,7,35,85,64,173,243,193,144,209,147, - 52,203,23,189,250,56,128,143,171,60,160,4,176,217,156,200,204,202,198,180,209,15,33,179,208,5,153,132,160,228,43,40,226,74,210,29,76,121,125,4, - 204,118,30,50,9,3,79,178,195,84,28,12,239,118,187,193,48,44,45,59,71,102,151,111,127,109,80,92,164,40,23,85,188,80,242,29,19,188,131,225, - 189,120,241,242,47,226,145,163,165,85,43,65,89,37,126,57,155,140,216,248,102,248,102,199,41,52,104,218,30,119,205,60,40,24,143,255,186,95,156,109, - 59,7,224,220,160,65,161,225,67,134,132,245,164,84,250,227,103,95,152,210,1,224,243,245,93,75,46,191,34,69,73,182,232,18,135,203,99,136,36,245, - 246,221,226,186,81,193,26,36,164,187,157,26,133,140,241,213,200,89,163,65,46,147,73,36,16,40,113,222,189,155,236,36,64,138,39,114,21,187,14,213, - 218,144,61,143,12,126,63,55,229,142,233,76,195,2,91,115,147,91,14,74,129,134,97,26,92,62,177,91,200,206,184,145,100,207,78,252,162,50,45,81, - 4,235,230,69,92,184,105,66,145,149,67,145,197,141,78,15,63,42,235,212,99,32,126,185,156,7,145,231,176,248,171,221,102,129,114,35,41,77,184,239, - 79,187,42,68,81,164,119,239,222,37,12,195,200,117,58,93,49,0,158,227,56,112,28,7,128,128,101,24,16,2,72,37,4,193,62,10,20,22,91,249, - 218,187,89,128,201,202,97,199,137,44,236,220,242,61,84,42,213,131,72,64,109,204,233,54,114,212,116,159,204,2,39,44,118,14,54,23,15,155,171,228, - 79,80,20,41,220,60,133,201,198,33,164,89,159,16,206,81,220,30,53,116,31,74,92,220,152,153,207,79,105,209,163,255,40,195,221,60,203,208,232,122, - 145,195,95,156,62,85,241,195,47,105,152,243,222,74,26,209,176,77,222,154,207,23,186,221,214,226,150,149,141,117,170,10,179,217,252,155,76,38,179,20, - 22,22,14,27,62,124,184,58,245,150,230,104,207,225,75,174,228,229,186,246,196,142,235,221,141,145,200,192,187,29,56,119,99,55,172,217,137,85,122,6, - 69,169,103,7,235,66,155,45,58,115,246,236,243,147,166,60,171,236,222,162,57,110,164,23,227,212,85,57,108,110,160,67,227,80,24,125,213,200,45,52, - 227,210,153,67,252,177,131,155,236,62,126,1,204,216,169,115,53,81,245,26,64,194,74,187,85,166,43,145,75,190,221,181,97,221,143,109,31,234,246,190, - 221,110,123,243,242,225,245,111,20,182,28,88,135,18,6,2,97,224,112,113,40,42,44,134,211,225,128,249,250,254,12,129,115,76,43,54,219,83,246,255, - 176,57,94,37,226,190,193,245,0,32,101,80,87,165,214,129,119,89,177,115,203,38,12,25,58,12,62,241,143,225,114,90,62,148,114,22,169,121,38,52, - 232,52,14,135,126,57,138,31,126,216,132,81,99,30,71,112,112,24,220,156,43,178,166,227,153,120,43,13,245,34,130,161,80,200,193,11,110,200,164,12, - 24,66,144,124,59,3,117,67,253,17,224,163,65,122,158,3,50,169,231,9,225,203,28,173,178,155,160,150,109,186,228,140,154,252,149,111,190,89,180,5, - 181,120,226,197,16,182,68,203,16,84,95,106,115,241,224,188,17,45,47,94,188,252,139,120,228,104,9,34,69,128,191,31,56,42,193,237,108,19,172,36, - 16,14,27,133,32,16,8,148,162,170,192,19,33,164,71,101,185,54,182,111,207,76,71,105,126,164,223,249,61,146,117,239,185,146,59,209,170,52,9,21, - 14,238,216,123,228,177,129,157,187,251,94,187,155,149,46,147,50,18,137,140,149,202,36,12,145,73,24,151,94,37,97,55,127,185,94,78,9,142,212,164, - 233,112,56,208,163,71,143,63,108,147,120,229,120,96,65,78,146,139,18,81,52,202,205,8,48,24,113,43,229,14,126,218,187,197,150,157,113,35,81,112, - 58,6,149,143,194,252,65,147,82,177,192,228,132,195,45,160,208,82,146,26,131,55,118,192,182,99,153,80,202,88,100,95,216,108,207,205,74,159,238,200, - 78,170,114,214,102,101,118,82,74,119,174,94,189,90,214,182,109,91,166,77,155,54,129,110,183,155,225,56,206,237,116,58,65,24,134,50,44,136,65,37, - 131,94,205,210,139,191,238,72,73,60,190,77,66,65,151,122,114,60,203,163,87,75,48,176,93,48,156,238,209,200,51,57,113,250,200,182,234,54,175,84, - 147,16,58,236,225,174,157,145,124,215,10,155,75,128,221,201,195,238,20,74,186,136,197,146,115,158,91,236,70,64,100,11,164,156,92,63,28,21,28,173, - 138,154,165,101,133,142,170,3,226,130,181,126,129,95,61,255,249,90,197,142,147,185,56,156,96,69,238,225,13,69,132,95,157,226,176,21,79,170,206,201, - 170,170,237,110,183,251,146,66,161,176,174,94,189,250,137,184,6,254,186,146,49,90,162,178,168,32,31,166,140,155,144,200,21,149,201,221,167,105,206,188, - 56,91,19,24,119,232,149,151,95,156,166,85,43,59,63,212,185,155,116,228,208,145,42,70,170,193,153,179,167,185,185,239,45,117,56,157,206,98,74,133, - 181,110,187,107,153,211,105,235,178,124,238,211,43,218,182,239,202,56,236,150,56,125,120,188,111,113,122,66,97,121,77,211,157,203,69,36,180,85,151,113, - 157,163,237,227,178,175,37,6,199,118,158,91,87,46,135,175,49,0,185,249,69,112,10,128,198,207,31,238,130,124,136,156,221,110,203,78,220,5,0,79, - 21,59,187,208,188,235,246,202,236,116,243,226,214,148,91,215,159,82,168,180,100,192,160,225,96,101,42,164,228,22,66,41,103,96,43,202,134,54,36,12, - 69,54,11,52,122,127,12,29,62,2,90,157,15,18,19,206,82,153,84,118,182,166,227,153,120,35,21,143,15,108,143,252,98,55,164,18,6,50,73,137, - 243,127,46,225,22,134,247,108,14,179,131,187,183,222,147,115,84,84,84,4,153,76,246,135,223,167,195,150,139,171,23,14,74,117,26,181,109,234,140,41, - 127,168,82,192,9,20,197,102,219,31,46,36,158,124,231,107,139,87,211,171,233,213,244,82,21,30,56,90,20,245,67,52,104,16,166,129,195,29,8,135, - 75,128,213,33,160,216,230,70,177,141,195,237,44,27,46,255,5,165,118,75,162,88,37,157,7,148,2,32,37,14,158,167,247,162,114,183,107,238,7,139, - 23,140,88,223,178,133,235,249,254,33,17,23,111,187,50,9,97,236,12,43,225,252,116,18,233,181,107,23,115,143,31,221,211,69,201,11,143,87,167,195, - 243,188,41,44,44,12,192,31,75,240,52,138,86,13,250,109,247,43,245,186,14,92,108,252,104,254,44,27,195,202,68,34,145,93,22,56,251,247,246,236, - 196,207,171,235,234,98,100,202,171,39,207,39,180,247,241,139,192,141,12,43,172,14,30,110,94,132,175,86,134,244,75,251,221,183,175,157,217,104,206,184, - 240,141,135,77,189,199,233,211,167,143,182,107,215,238,194,209,163,71,31,61,115,230,76,247,14,29,58,8,209,209,209,62,44,203,218,41,145,192,160,146, - 33,35,241,88,198,254,35,223,242,188,224,62,64,68,246,29,107,206,181,156,218,126,78,94,177,11,123,207,228,96,247,214,13,96,165,181,174,58,3,0, - 144,43,228,254,118,135,27,117,3,253,144,91,232,68,182,75,128,221,37,148,68,180,40,133,86,37,129,90,206,34,211,228,2,64,140,53,233,145,160,166, - 106,173,92,254,188,82,239,63,109,224,132,215,253,14,94,42,194,169,164,98,80,129,3,231,180,217,138,239,156,106,87,147,70,117,56,157,206,91,74,37, - 249,90,198,40,14,237,88,55,35,170,67,223,5,204,229,237,115,241,123,247,214,253,221,133,149,97,205,185,118,16,192,65,66,8,179,61,63,183,239,201, - 227,191,172,25,253,196,20,93,242,229,115,172,217,92,52,199,146,121,101,89,185,205,55,170,194,162,143,253,180,127,91,35,2,168,205,119,19,43,205,249, - 70,51,207,222,115,152,36,18,105,186,185,32,59,152,72,100,80,233,180,224,89,25,204,119,115,193,153,238,130,48,210,132,202,246,185,79,143,179,127,178, - 245,219,79,70,52,235,53,73,71,53,117,32,58,242,113,253,196,86,87,202,229,35,46,42,10,38,153,92,169,111,219,165,191,166,239,200,231,216,64,99, - 0,110,38,158,163,223,124,177,196,228,182,22,77,173,74,51,178,113,231,131,6,131,65,101,187,125,16,117,35,6,225,110,190,11,82,9,131,13,43,22, - 160,32,63,27,54,247,13,180,124,97,16,172,142,146,217,152,31,188,247,14,52,90,181,42,162,81,167,19,105,87,127,171,42,165,139,227,234,213,171,46, - 163,209,88,218,157,91,242,147,11,208,241,49,199,246,207,86,127,176,124,95,253,105,79,246,45,116,83,245,31,207,141,192,185,205,6,147,55,43,188,23, - 47,94,254,21,106,116,180,28,14,199,237,135,122,60,10,81,164,16,40,32,10,165,145,39,241,247,232,147,192,57,170,141,196,120,130,40,10,167,150,175, - 88,213,175,101,219,174,108,124,29,45,138,243,179,112,226,183,195,60,68,90,227,12,52,160,36,194,161,14,110,56,108,196,240,33,155,158,152,48,165,168, - 203,195,15,107,2,3,131,157,233,25,233,182,175,215,126,199,237,223,179,189,139,8,126,84,94,94,82,181,5,150,139,138,138,42,29,115,242,200,67,17, - 157,0,212,99,37,196,101,203,185,174,169,77,219,242,50,210,134,46,152,251,118,202,152,73,51,229,245,195,162,145,99,98,113,59,61,11,215,142,110,119, - 102,92,63,189,181,56,253,220,196,218,232,149,231,228,201,147,102,0,223,181,105,211,230,167,195,135,15,63,121,234,212,169,214,49,49,49,34,231,178,59, - 127,252,106,90,134,219,105,78,96,121,188,106,203,75,188,241,32,250,162,40,164,30,61,126,222,239,177,46,173,37,254,186,137,88,181,97,15,7,42,166, - 214,86,199,230,114,189,56,122,212,72,210,189,103,191,193,131,30,27,7,165,66,139,211,215,139,160,146,179,136,240,87,34,191,168,16,103,14,172,71,94, - 242,111,219,4,130,215,107,210,211,201,100,215,194,91,12,9,108,208,226,97,121,186,157,69,234,173,66,184,45,119,81,120,113,93,1,5,249,236,65,218, - 90,145,122,245,112,87,169,148,220,5,16,197,48,112,89,179,175,63,240,0,77,74,169,8,96,183,198,24,31,247,225,162,55,7,105,116,250,38,42,165, - 230,124,197,237,74,107,114,122,84,151,19,0,44,102,211,212,228,223,54,30,12,136,237,164,135,50,152,113,185,92,176,23,220,22,204,169,103,138,221,14, - 211,75,30,105,100,95,75,208,4,197,118,250,101,203,210,149,84,224,26,73,164,178,12,129,115,125,203,185,92,223,218,242,174,223,213,27,227,235,255,122, - 96,227,211,39,126,218,50,156,231,221,126,50,185,252,162,211,108,153,104,206,75,190,85,165,168,72,27,237,59,176,155,244,31,48,144,78,25,251,104,137, - 147,71,0,173,70,165,218,191,255,0,233,211,119,0,29,212,175,231,61,231,79,163,85,171,246,237,221,71,250,246,237,27,85,149,36,165,212,9,160,71, - 197,245,113,81,154,83,132,160,13,203,50,110,35,147,254,216,213,91,166,67,158,180,219,139,23,47,94,254,9,72,237,102,246,213,82,188,22,161,69,63, - 191,104,157,204,207,119,30,195,74,59,57,92,174,48,10,89,154,192,187,126,182,8,120,179,252,221,120,77,154,1,1,49,90,135,68,242,58,24,166,43, - 68,33,146,0,41,148,224,136,146,19,22,150,118,55,61,144,157,77,99,12,195,2,141,186,113,57,121,230,53,151,18,77,53,142,6,175,168,169,13,170, - 111,148,40,253,222,103,24,182,151,32,136,82,81,224,110,8,110,199,123,246,220,196,29,158,228,141,242,212,206,54,109,218,52,146,72,36,79,229,22,187, - 12,119,243,237,43,236,57,137,39,254,140,166,209,24,175,145,250,232,126,18,65,34,69,145,130,23,196,84,214,106,125,36,55,55,161,242,4,82,53,104, - 170,2,99,219,75,101,210,37,15,117,127,180,67,243,206,143,82,23,47,33,135,247,111,65,210,201,29,199,4,65,120,169,42,123,43,106,234,235,180,57, - 199,74,101,129,84,4,35,82,145,128,138,14,128,185,37,186,204,11,44,89,9,247,117,15,63,72,219,1,160,121,188,239,104,163,159,118,200,221,172,226, - 47,175,220,48,213,248,93,254,55,66,244,134,192,232,122,68,161,31,67,88,201,40,10,254,55,40,179,0,0,32,0,73,68,65,84,234,22,92,206,181, - 60,177,111,168,174,144,250,223,109,103,120,108,135,51,74,165,50,196,102,179,155,50,147,78,220,43,5,20,22,211,254,146,74,165,242,183,217,108,197,153, - 73,39,227,202,214,71,196,118,56,173,80,42,67,43,174,247,196,206,152,104,205,216,16,163,97,161,197,230,188,118,246,82,193,128,242,41,30,106,178,243, - 175,194,171,233,213,244,106,254,125,16,66,38,83,74,87,0,104,3,192,8,32,23,37,181,144,203,47,163,244,53,42,89,206,67,73,119,132,63,0,23, - 128,242,93,51,101,203,85,173,47,219,63,1,64,163,82,77,1,192,41,0,30,85,154,185,151,0,240,239,120,0,232,225,213,244,106,86,246,80,5,54, - 28,232,95,183,197,37,67,120,147,75,170,192,134,3,255,83,237,244,106,122,53,189,154,94,77,175,230,63,163,89,205,103,77,46,125,221,191,196,109,161, - 253,41,165,61,42,44,247,71,201,212,188,251,150,103,207,158,253,106,249,109,203,214,151,95,174,106,125,185,253,251,205,158,61,251,85,0,180,67,135,14, - 223,83,74,27,120,106,191,231,25,65,189,120,249,11,41,45,240,253,23,140,238,243,226,197,139,23,47,255,75,16,66,118,81,74,7,16,66,118,85,92, - 87,241,117,217,118,11,23,46,28,80,94,163,236,253,138,84,92,95,126,255,69,139,22,45,40,247,190,199,89,150,37,132,144,251,198,60,148,138,123,28, - 18,172,74,163,186,247,106,210,247,106,122,53,189,154,94,77,175,166,87,211,171,249,255,79,243,65,246,47,237,62,188,91,250,254,128,202,156,173,218,80, - 222,25,171,110,61,33,100,215,236,217,179,95,67,73,100,235,181,178,229,133,11,23,218,1,100,122,244,97,127,115,184,239,191,34,92,233,213,244,106,122, - 53,189,154,94,77,175,166,87,243,223,213,172,230,179,42,235,58,236,79,43,116,251,85,181,174,170,103,74,105,155,170,52,60,89,239,169,253,222,174,67, - 47,94,188,120,241,242,63,71,64,64,140,22,184,151,147,175,70,52,198,248,32,0,176,230,38,100,255,157,118,121,241,152,221,0,250,151,45,208,114,209, - 45,90,121,68,170,50,78,151,215,40,219,190,162,70,197,247,74,245,60,78,25,243,64,142,22,33,68,202,72,228,51,148,42,237,120,194,64,111,41,202, - 11,123,16,157,255,15,16,66,72,76,93,205,115,17,17,198,135,211,51,178,191,189,118,211,182,221,211,125,53,129,177,171,117,122,195,195,22,179,105,137, - 149,85,175,170,46,215,81,77,104,131,234,27,137,220,119,43,17,157,11,138,211,47,239,125,80,157,202,32,132,40,226,227,227,91,0,64,66,66,194,121, - 90,50,205,254,79,161,9,138,29,237,171,247,121,218,45,186,4,155,213,246,185,37,235,250,230,63,111,233,239,232,66,27,250,67,162,251,2,2,255,48, - 40,88,176,146,11,196,233,120,170,56,55,161,210,26,130,101,212,25,180,48,110,226,136,254,115,86,109,220,61,239,206,246,87,239,43,89,227,215,119,153, - 110,218,227,189,94,249,116,253,246,69,121,59,94,246,232,2,237,229,143,212,121,104,140,15,47,9,102,51,143,44,201,175,205,126,225,177,29,174,72,165, - 82,163,219,237,206,201,184,126,162,137,39,251,68,196,117,60,199,178,76,168,192,139,233,105,137,199,90,63,152,197,255,91,168,2,235,119,0,207,191,70, - 1,2,34,249,192,145,127,243,240,159,209,11,13,13,85,25,12,134,46,122,189,62,66,173,86,43,11,11,11,237,133,133,133,119,82,83,83,15,81,74, - 249,191,202,238,218,160,9,138,125,149,72,201,91,165,175,223,177,102,39,46,172,110,123,109,80,220,60,194,208,87,75,95,47,180,100,95,155,243,79,216, - 89,29,36,58,90,174,177,74,38,129,146,25,32,196,135,66,248,202,38,177,189,67,211,211,43,47,192,90,9,126,126,126,189,36,18,201,189,26,168,60, - 207,219,11,10,10,14,252,61,22,255,37,228,150,58,64,185,149,45,151,115,142,42,91,38,165,203,174,42,52,92,21,156,43,87,133,245,174,10,122,23, - 60,53,186,214,142,22,33,132,149,42,212,191,142,153,240,108,147,69,111,207,86,46,93,181,13,74,173,111,130,195,82,24,95,91,173,127,2,99,253,118, - 103,88,134,13,47,191,78,16,133,244,220,155,39,255,146,139,110,108,93,213,196,215,95,30,247,194,232,17,61,34,123,12,152,78,0,120,236,104,129,160, - 249,198,31,182,70,28,61,114,248,147,85,171,86,188,171,14,140,251,80,170,144,44,55,221,185,92,84,27,27,12,129,209,245,228,90,227,209,135,6,61, - 27,124,246,224,119,223,104,140,241,61,173,185,9,23,107,219,150,251,204,35,196,24,29,29,221,38,38,38,198,127,218,180,105,50,0,248,232,163,143,26, - 52,104,208,32,63,57,57,249,52,165,52,183,38,141,202,208,4,198,141,251,120,201,187,107,250,246,237,135,204,60,43,22,127,248,105,55,109,112,204,99, - 127,149,179,229,235,91,79,47,209,251,94,154,254,242,187,129,125,186,181,97,45,14,30,251,142,158,239,252,221,167,239,158,210,27,227,219,86,231,108,137, - 54,211,156,32,45,237,35,218,76,0,48,186,226,251,97,90,174,135,81,37,244,9,81,72,206,3,168,49,205,135,111,212,67,251,165,10,69,36,195,148, - 212,156,100,24,2,150,144,146,58,161,110,123,106,250,213,163,189,255,84,99,255,34,244,145,237,178,192,74,252,25,242,187,125,132,41,125,166,180,248,238, - 245,95,252,255,236,103,16,66,12,77,26,248,52,238,223,233,161,175,127,190,85,160,169,211,117,230,110,66,153,207,82,143,126,224,209,5,75,169,84,250, - 238,220,185,211,216,167,79,31,67,80,147,193,63,123,178,143,86,174,140,223,181,107,135,172,79,31,207,15,179,38,48,182,39,24,102,45,1,164,162,72, - 63,98,69,186,209,146,127,61,153,150,246,97,120,138,58,40,110,34,3,234,241,117,70,4,57,99,203,190,182,170,230,45,43,71,170,52,60,34,149,201, - 102,212,139,105,218,50,35,229,198,25,171,197,252,33,231,40,250,185,214,66,28,255,210,193,95,206,246,149,72,165,164,207,35,237,88,0,127,202,209,10, - 10,10,26,188,108,217,178,250,29,58,116,0,0,240,60,175,223,180,105,83,240,220,185,115,53,240,224,55,84,25,132,144,48,163,209,88,71,46,151,135, - 1,128,203,229,202,200,205,205,189,67,41,173,49,7,157,54,56,58,128,64,242,238,47,71,143,74,0,160,115,231,46,243,34,59,79,243,101,101,218,74, - 111,116,57,151,89,3,96,230,137,147,199,9,0,180,111,215,97,182,198,24,191,252,223,138,108,17,66,136,42,48,102,190,159,92,243,194,128,49,99,229, - 253,123,118,129,90,165,194,222,125,7,94,89,189,106,197,112,125,120,124,235,226,244,4,143,210,14,72,36,18,213,169,83,167,162,25,134,97,121,158,119, - 180,111,223,254,206,159,177,45,44,182,227,49,2,38,194,205,187,190,202,189,121,102,62,165,84,168,96,59,107,136,104,249,58,88,201,36,81,20,211,138, - 83,79,119,172,229,71,156,174,97,249,65,248,43,52,170,165,214,142,22,35,145,207,24,253,228,212,38,51,95,124,77,57,125,233,33,236,254,116,118,222, - 127,170,147,5,0,44,195,134,31,56,176,63,80,165,96,1,0,22,187,128,190,30,92,116,125,162,218,29,97,8,137,45,203,80,41,240,110,165,68,42, - 119,16,0,32,37,9,57,2,66,235,30,10,9,241,83,143,30,209,35,114,237,250,31,211,239,164,231,255,92,91,251,8,43,67,251,46,189,208,163,103, - 111,195,169,147,199,222,93,241,197,231,175,106,130,99,63,23,57,241,67,123,126,82,141,3,237,212,33,49,173,52,134,160,125,67,159,158,235,239,96,252, - 240,230,252,143,3,142,238,93,247,115,215,254,227,196,212,212,52,7,37,36,161,176,224,238,12,203,221,27,137,30,217,67,8,171,213,106,235,107,181,218, - 230,125,251,246,85,206,154,53,75,218,173,219,239,101,247,38,79,158,44,59,114,228,72,200,146,37,75,250,133,134,134,58,44,22,203,5,139,197,114,179, - 226,15,170,58,130,131,141,207,13,27,242,40,186,15,125,22,130,72,48,121,234,76,236,223,187,101,10,128,191,196,209,226,212,250,185,147,158,158,101,108, - 223,166,5,251,238,186,68,168,228,18,244,110,29,75,158,156,54,199,103,213,39,239,174,4,208,181,226,62,117,6,45,140,19,109,166,57,77,2,92,163, - 6,118,168,135,29,223,187,70,133,247,120,5,140,218,112,47,178,21,221,247,121,157,175,74,181,44,212,135,13,84,8,185,203,162,251,62,127,48,121,239, - 39,230,234,108,145,42,20,145,235,191,95,215,208,87,43,3,203,18,72,24,6,44,75,224,116,11,24,254,216,168,191,162,185,32,132,176,170,192,134,253, - 24,224,73,0,16,129,213,246,156,164,61,181,57,39,132,149,249,239,218,177,85,18,104,80,128,101,9,88,6,96,25,130,148,108,59,38,78,124,210,240, - 39,237,51,246,237,20,216,230,200,242,174,189,219,55,241,107,182,225,56,49,180,239,59,210,63,207,161,30,191,126,251,225,81,117,186,188,112,146,82,241, - 253,180,95,150,86,123,39,237,116,58,179,123,247,233,171,39,18,141,250,224,182,111,186,72,24,2,55,79,33,136,37,143,223,253,32,2,134,33,160,34, - 197,164,73,19,209,187,79,95,155,200,139,233,30,27,204,48,107,247,29,252,205,232,228,68,44,89,182,234,93,171,41,247,221,91,215,252,83,212,65,49, - 51,75,103,203,122,38,3,218,58,237,230,229,167,215,237,58,129,38,241,141,238,217,25,27,174,193,186,221,39,16,23,27,119,175,214,103,76,132,22,109, - 90,183,1,238,43,77,230,25,82,165,254,205,174,253,31,127,103,192,99,19,16,104,52,130,161,220,128,131,187,215,13,144,170,12,47,113,118,211,146,90, - 137,81,225,222,255,2,21,197,63,61,188,36,52,52,212,216,166,77,155,123,203,60,207,35,42,42,10,25,25,25,177,181,213,34,132,168,67,66,66,250, - 127,249,229,151,129,253,250,245,147,6,7,7,3,0,178,178,178,194,246,237,219,215,50,52,52,52,231,238,221,187,187,41,165,85,206,8,19,56,70,198, - 72,192,42,149,106,0,0,5,97,102,61,247,120,179,160,144,208,74,35,245,185,185,89,242,151,159,61,76,36,18,89,233,246,96,40,21,171,76,94,236, - 231,231,215,67,42,149,170,42,123,207,205,234,219,83,169,225,41,134,101,40,8,0,158,203,45,72,61,219,168,178,109,43,67,31,16,215,79,27,20,187, - 126,230,43,111,105,135,15,236,9,94,4,126,61,126,14,145,117,125,48,113,252,88,132,70,212,141,154,251,214,236,207,0,140,244,84,147,101,89,73,78, - 78,78,138,175,175,111,176,167,251,84,169,197,144,122,63,238,223,27,120,240,167,67,179,63,88,250,201,51,161,49,157,57,145,210,123,117,140,235,52,233, - 46,237,57,96,132,62,48,186,189,242,147,183,158,146,254,217,207,251,111,161,214,63,34,185,74,55,226,141,151,167,41,231,126,119,2,187,63,157,146,103, - 53,229,222,43,151,162,53,248,158,179,152,10,91,62,136,33,186,192,216,14,132,149,60,77,88,86,67,24,34,23,5,49,141,119,185,230,217,242,174,223, - 125,16,189,242,8,34,240,195,111,181,171,60,67,40,26,172,221,184,45,48,200,71,1,135,139,199,200,209,227,176,118,237,26,93,128,94,14,135,139,199, - 251,31,124,96,182,164,236,14,76,73,43,204,232,241,232,11,7,110,222,206,185,124,231,174,99,99,109,109,115,186,5,20,219,120,216,156,12,26,54,110, - 131,247,63,140,83,222,73,189,245,194,55,171,87,62,175,9,138,91,35,178,204,59,246,204,132,180,202,246,213,132,52,237,109,240,13,253,126,200,211,243, - 125,146,114,36,160,112,35,89,175,196,136,241,207,235,235,7,171,160,81,178,62,183,82,51,66,102,189,244,210,175,134,192,232,182,166,156,106,50,121,151, - 82,183,110,221,161,3,6,12,80,191,248,226,139,210,136,136,8,172,94,183,41,178,115,239,199,30,205,188,155,29,65,41,69,80,96,96,218,164,39,31, - 219,185,103,207,158,212,180,180,52,233,226,197,139,219,109,221,186,53,30,181,184,51,21,40,133,195,41,64,16,74,254,120,114,107,89,29,133,16,66,194, - 194,194,20,25,25,25,206,178,40,3,33,228,222,133,79,27,214,162,247,35,93,219,73,190,220,123,27,22,135,0,141,82,138,219,217,54,180,110,209,148, - 124,37,240,205,43,211,156,56,162,255,156,32,45,237,51,176,67,61,4,250,170,241,245,242,249,216,113,252,86,159,108,11,65,192,192,197,79,135,40,36, - 61,141,106,217,178,110,173,163,131,187,183,138,196,233,214,209,193,71,207,38,94,111,58,226,195,105,25,22,233,193,130,189,211,42,117,184,88,134,129,159, - 78,142,149,251,82,160,86,74,160,81,74,160,81,148,60,51,204,3,39,154,7,0,168,66,227,35,88,81,152,168,15,141,159,56,106,196,99,161,99,70, - 61,70,193,50,216,244,195,206,65,223,125,183,246,174,54,56,118,165,192,176,171,170,250,254,148,135,48,64,160,65,142,151,86,94,134,94,37,133,78,45, - 133,94,45,69,247,102,70,176,158,215,123,254,163,38,33,190,83,6,213,239,119,113,77,143,135,99,235,104,27,94,72,54,37,76,156,119,102,233,145,162, - 135,103,44,255,40,222,223,82,228,146,188,57,107,146,36,61,51,243,225,77,59,127,238,30,218,118,98,34,239,182,190,150,115,97,99,165,81,225,180,107, - 199,90,134,119,120,76,233,182,112,151,46,36,166,71,23,58,21,184,146,82,12,141,82,2,109,217,177,85,74,160,81,74,161,85,74,144,153,126,27,5, - 86,246,215,12,127,230,97,122,228,88,173,186,168,28,110,1,231,111,89,80,55,182,5,66,66,66,225,234,55,182,238,201,67,63,108,215,132,52,90,104, - 189,123,181,170,241,30,247,177,110,215,9,204,158,249,244,89,2,156,3,0,10,180,124,115,209,167,173,222,157,253,236,31,214,205,122,231,147,86,181,177, - 175,60,82,165,126,206,195,67,158,125,167,75,207,193,48,23,100,227,216,129,141,232,61,96,24,198,78,152,14,31,159,128,247,165,74,195,5,206,113,127, - 182,124,93,72,163,135,154,54,105,244,93,88,104,104,132,88,90,111,148,82,224,161,174,221,241,242,140,73,16,41,69,243,150,109,187,247,27,53,141,82, - 90,226,16,230,229,231,89,19,175,37,244,176,103,95,59,233,169,125,14,135,131,203,205,205,197,249,243,231,113,253,250,117,92,185,114,5,249,249,249,48, - 24,12,181,234,122,39,132,232,155,53,107,54,230,208,161,67,74,95,95,223,123,235,93,46,23,116,58,29,198,140,25,35,237,213,171,87,88,255,254,253, - 159,32,132,172,163,148,22,87,166,99,207,79,202,212,7,199,125,209,181,91,215,103,0,64,165,15,185,181,108,245,206,106,11,207,171,12,161,145,29,59, - 118,138,6,165,32,160,31,91,243,18,179,170,218,86,34,145,104,78,156,56,81,159,101,217,123,255,175,162,40,226,179,175,55,196,253,248,203,165,161,139, - 222,95,162,212,107,20,200,53,185,240,212,216,33,30,255,7,171,131,98,251,107,117,154,157,175,188,62,135,12,233,223,3,223,238,60,131,117,171,63,231, - 51,110,95,226,30,238,63,65,217,178,109,71,116,111,219,26,205,90,180,27,161,14,141,91,108,203,188,118,95,229,137,26,248,75,178,151,55,12,215,66, - 55,176,183,114,202,227,3,149,46,78,64,145,149,131,211,93,82,110,205,100,229,144,112,199,140,0,253,131,149,114,251,111,69,178,123,247,110,218,191,127, - 255,123,87,252,138,203,21,81,200,164,161,26,131,17,148,94,69,185,255,54,4,133,132,231,127,254,197,87,126,6,95,255,84,83,97,126,36,224,217,20, - 79,85,104,124,132,132,176,31,118,237,214,165,215,51,83,167,34,182,126,184,76,16,4,122,249,250,45,238,155,85,95,143,55,68,52,93,90,156,126,121, - 14,45,41,97,226,145,102,121,4,81,72,175,24,193,18,68,225,15,119,183,149,105,18,2,248,104,100,248,98,207,45,80,10,16,80,232,213,82,172,63, - 146,142,91,103,183,20,15,104,94,108,29,179,232,237,238,15,247,123,254,80,66,178,99,99,78,142,99,63,165,52,171,58,205,202,112,184,69,56,221,2, - 56,158,199,230,157,59,209,167,123,59,116,236,216,14,93,58,119,148,156,57,123,113,194,212,103,38,69,160,180,236,72,121,77,85,112,195,54,122,159,240, - 141,67,159,89,172,187,148,206,67,194,2,245,130,85,240,211,201,224,226,9,82,114,75,146,99,83,248,96,218,172,119,252,102,191,240,204,30,66,226,155, - 80,154,240,135,172,217,21,237,180,217,108,242,113,227,198,73,57,142,115,143,121,106,122,175,172,172,220,65,159,125,252,158,34,48,48,8,54,7,143,179, - 87,110,52,122,247,221,119,234,237,220,119,100,219,219,47,77,217,222,167,79,31,195,134,13,27,196,234,52,43,146,155,157,183,252,235,239,54,175,249,104, - 201,2,36,166,22,98,213,151,159,130,10,252,23,213,237,83,94,147,82,74,95,123,237,53,213,182,109,219,194,53,26,77,177,205,102,43,223,133,201,48, - 12,145,100,23,216,16,160,147,67,38,97,16,228,171,68,160,65,1,41,11,48,132,8,149,105,174,218,184,123,158,104,51,97,199,247,174,81,95,47,159, - 143,9,207,189,142,203,121,242,125,140,218,48,239,217,81,67,103,27,85,66,159,80,31,38,176,123,171,186,208,40,101,120,245,249,113,104,123,54,37,48, - 163,72,124,61,215,206,182,0,74,202,6,85,108,59,195,16,72,88,2,157,90,138,125,223,189,159,99,53,229,154,202,186,228,92,78,71,106,117,109,174, - 238,120,106,130,98,103,183,106,209,108,254,51,147,39,50,157,58,180,165,12,35,69,158,217,69,40,5,102,76,155,130,103,167,76,10,78,203,204,121,243, - 211,79,191,152,163,13,108,52,215,146,115,245,237,234,52,25,82,18,5,210,42,37,208,170,74,28,23,173,82,2,135,75,0,33,96,125,35,91,153,72, - 73,36,55,51,63,165,242,59,240,138,154,126,117,26,255,244,227,45,93,92,225,198,194,227,183,51,175,204,59,123,49,251,20,165,180,160,78,215,23,158, - 112,243,20,22,7,143,219,217,54,240,110,74,38,244,141,68,212,112,18,187,224,235,115,107,8,33,250,50,7,186,162,102,250,241,77,142,128,166,67,71, - 126,244,201,151,167,151,204,127,157,205,51,185,32,82,10,165,156,133,74,46,41,125,176,176,91,77,248,244,243,175,178,120,144,161,244,200,17,190,58,59, - 239,67,164,99,135,244,235,178,158,0,114,194,200,210,67,35,235,70,62,242,232,120,229,35,3,199,65,224,93,179,53,65,113,135,173,217,215,126,242,68, - 179,73,124,35,16,224,156,37,59,113,10,0,104,131,98,191,136,139,141,107,85,113,93,131,6,177,247,57,90,213,217,41,83,233,159,243,245,51,190,30, - 219,184,69,96,116,211,174,68,239,31,134,91,73,231,177,254,243,55,215,138,14,215,59,63,237,222,56,127,233,170,173,35,30,233,51,4,95,127,246,222, - 171,0,14,85,212,164,162,56,246,155,149,43,34,164,114,5,56,94,4,39,208,146,103,94,64,65,65,33,56,94,132,82,173,3,47,18,112,130,8,142, - 23,225,116,241,154,41,227,250,79,5,112,207,209,42,175,25,222,168,219,126,153,66,17,73,81,82,187,150,82,10,150,119,49,33,33,33,235,0,64,161, - 80,64,161,80,64,20,69,156,77,204,125,206,24,215,227,25,148,58,120,130,219,149,90,120,251,215,222,85,181,61,56,56,248,209,138,78,150,195,225,128, - 197,98,193,47,199,79,27,86,174,217,220,231,118,106,122,125,145,26,156,186,192,250,189,1,60,90,213,241,44,206,186,54,53,162,195,100,230,197,103,159, - 104,240,201,55,187,78,37,237,155,251,106,85,199,26,0,234,245,152,237,122,241,233,97,173,23,125,188,42,169,224,215,207,103,214,116,142,36,18,137,52, - 55,55,55,181,108,121,217,87,223,183,62,151,152,49,120,233,71,75,149,103,111,154,113,233,118,38,158,232,81,167,228,14,167,2,149,105,106,131,163,3, - 140,129,33,155,6,15,28,66,134,63,218,19,43,119,156,199,138,207,150,23,100,101,36,70,106,24,210,63,249,218,153,245,62,225,241,136,206,49,35,174, - 89,59,92,56,127,170,37,128,243,213,105,86,66,173,28,173,234,52,15,95,204,131,197,193,195,233,226,193,137,20,197,54,14,57,69,46,20,219,220,176, - 216,121,60,209,179,78,165,251,213,214,31,249,111,65,2,252,222,152,221,187,119,87,123,160,9,33,245,213,122,127,133,94,37,69,189,168,58,120,242,181, - 175,3,244,126,65,57,74,185,132,221,187,119,159,95,190,75,11,134,97,171,44,205,82,17,93,96,76,71,149,74,189,251,131,15,62,192,168,71,59,171, - 238,228,113,150,139,119,236,217,86,23,248,64,99,140,124,222,130,69,218,69,139,223,127,118,215,14,177,8,192,251,149,105,248,68,181,57,195,146,114,99, - 176,8,1,21,133,244,130,219,167,90,3,192,159,25,139,101,117,240,96,75,199,214,16,2,216,156,2,88,150,228,20,37,110,76,24,51,119,94,247,181, - 235,127,204,164,140,143,217,106,189,173,166,148,122,222,53,81,14,135,75,128,147,19,112,229,194,89,116,105,31,143,142,173,227,96,115,8,176,57,121,68, - 69,199,2,64,64,101,251,73,88,230,22,21,56,7,165,130,110,64,27,35,2,125,228,8,241,85,64,33,147,128,19,0,187,75,132,195,37,32,37,199, - 14,179,93,133,166,93,31,171,231,31,114,198,233,31,217,102,91,126,234,233,161,213,217,36,8,2,190,89,183,185,65,102,102,246,160,61,219,190,83,228, - 22,115,184,152,98,69,78,145,19,96,141,120,107,193,114,197,43,51,39,15,254,230,251,31,82,31,233,220,46,181,182,109,182,230,92,91,219,180,99,255, - 47,6,12,24,172,186,114,114,15,146,206,255,52,223,146,237,249,248,44,66,8,179,105,211,38,126,242,228,201,230,5,11,22,68,236,216,177,35,42,55, - 55,247,60,0,206,199,199,39,46,166,65,228,133,3,251,246,134,245,31,252,152,52,61,207,14,131,90,134,200,64,53,142,255,178,159,147,203,165,149,142, - 55,41,237,30,28,29,222,227,21,236,56,126,171,207,149,124,229,145,73,19,159,72,61,112,52,49,127,217,154,3,239,133,105,185,243,74,49,119,217,153, - 214,209,193,179,167,141,195,194,79,214,226,231,179,137,57,86,38,100,254,93,39,255,227,219,35,95,174,212,86,150,65,137,163,165,146,194,90,156,107,186, - 113,118,111,76,109,143,87,21,60,113,96,219,90,166,192,204,33,45,207,65,50,11,204,16,68,10,31,181,12,188,72,81,84,144,71,190,91,187,6,167, - 79,31,103,192,50,79,1,120,187,58,49,134,148,116,21,106,149,210,146,136,144,170,228,153,19,68,196,54,136,198,138,101,31,234,3,2,131,240,80,151, - 135,61,54,80,231,31,217,124,253,234,101,56,114,236,92,183,159,151,46,111,163,13,53,126,162,15,143,95,98,136,234,233,112,186,5,152,138,10,33,119, - 165,161,109,88,46,252,212,2,82,138,67,112,57,43,73,91,211,88,168,188,75,91,206,27,155,12,153,179,121,231,161,133,189,123,118,195,229,148,98,168, - 228,18,40,229,44,148,114,22,82,34,224,195,207,191,224,10,77,230,1,121,151,183,229,121,108,112,41,165,133,192,239,141,73,211,6,213,55,174,253,100, - 206,183,147,94,94,220,187,207,144,241,228,242,233,195,175,1,248,169,106,133,223,17,196,251,155,82,217,58,177,146,117,85,161,210,27,63,126,97,206,251, - 207,247,26,240,24,88,86,2,158,227,176,121,195,90,172,94,254,214,53,151,37,127,60,165,84,36,196,111,242,198,181,159,63,246,242,155,31,146,38,205, - 219,86,90,96,93,100,201,151,143,79,124,122,100,80,80,144,238,247,136,22,69,76,108,60,250,13,28,134,253,219,183,34,225,202,69,136,180,196,97,18, - 69,138,162,194,252,44,158,115,125,83,149,109,114,165,50,242,235,213,107,26,50,12,129,155,19,225,226,69,204,156,250,164,107,202,140,215,30,234,215,171, - 235,21,57,139,226,148,59,119,125,142,159,187,218,84,148,106,35,38,206,250,80,230,112,10,48,217,56,236,89,85,181,175,163,242,139,236,208,188,227,224, - 137,83,222,88,161,80,176,140,187,113,76,196,173,174,237,27,167,213,9,13,48,191,187,104,121,219,95,79,158,235,55,98,204,68,229,19,113,173,72,168, - 191,74,247,228,152,33,205,52,254,117,30,183,230,223,89,83,149,166,84,237,91,84,39,170,193,189,46,70,117,112,236,22,66,81,175,252,54,148,224,150, - 45,43,113,40,0,132,132,214,113,72,21,250,106,135,10,252,97,223,210,239,241,39,95,125,223,250,194,245,204,73,31,125,180,84,125,246,166,25,231,111, - 154,160,144,49,112,115,34,136,167,46,132,200,78,83,200,21,202,231,166,60,137,179,55,138,176,253,135,45,112,219,138,158,82,17,97,53,37,164,111,160, - 159,14,197,102,179,152,154,109,97,124,252,252,1,160,177,167,118,222,251,8,177,228,126,217,16,24,93,79,144,40,250,73,229,154,14,132,208,198,132,194, - 23,160,25,249,165,255,169,213,182,185,220,107,107,246,117,44,94,240,38,62,94,185,21,153,249,14,24,132,52,108,95,53,15,47,46,92,7,187,179,234, - 81,13,158,250,35,255,77,72,0,160,172,81,213,53,142,16,18,99,12,137,60,182,125,219,22,223,66,139,27,74,25,139,58,81,13,240,246,178,237,198, - 190,173,3,144,231,54,224,251,21,75,10,28,54,243,6,79,62,88,21,20,215,78,167,211,237,217,242,195,86,212,175,19,40,251,238,151,130,219,231,110, - 217,239,133,122,139,115,83,229,81,122,155,100,232,144,33,234,159,14,29,158,129,42,28,45,150,176,225,95,173,249,33,80,167,146,130,16,192,108,231,49, - 233,241,97,15,112,40,42,64,69,118,194,248,199,65,74,157,172,226,252,44,188,246,242,51,14,13,151,148,112,39,229,78,70,143,71,95,252,169,216,66, - 28,35,199,77,61,157,112,125,161,103,245,142,42,193,233,18,240,127,236,157,119,120,84,69,219,198,239,217,158,45,233,61,1,130,64,10,4,66,151,222, - 139,72,164,72,17,16,5,21,65,44,216,16,80,80,186,32,210,81,144,34,32,32,29,105,65,8,29,164,19,122,73,2,41,132,244,190,37,219,119,207, - 124,127,236,6,3,236,38,27,124,121,63,245,157,223,117,157,43,123,78,102,239,157,179,57,187,185,207,51,207,60,99,48,113,72,73,185,143,79,71,244, - 128,144,207,3,159,207,217,146,165,45,206,47,70,117,86,98,177,123,112,204,160,141,11,62,92,29,18,24,224,171,144,75,169,66,38,33,13,235,71,136, - 90,183,110,43,126,33,170,177,232,244,29,29,50,10,116,72,205,86,66,18,216,84,48,180,235,203,216,184,120,124,103,66,8,175,60,66,232,140,195,39, - 206,247,89,179,98,145,36,175,212,132,187,25,26,228,150,232,145,83,98,64,110,177,30,10,169,16,29,251,142,150,196,237,89,217,167,91,135,86,75,159, - 229,188,83,83,211,226,210,179,114,6,55,110,246,34,54,254,178,174,131,183,119,29,143,146,146,84,135,161,126,7,208,89,179,102,137,231,206,157,43,88, - 182,108,153,170,117,235,214,65,95,126,249,229,75,249,249,249,23,107,215,174,29,117,104,215,250,99,77,59,246,107,9,206,228,223,161,83,23,145,132,19, - 32,126,255,126,211,182,173,155,138,116,58,245,123,149,9,243,100,158,179,242,52,4,254,161,161,183,20,98,107,15,1,175,52,169,248,247,143,54,0,216, - 85,239,229,113,71,142,95,78,76,106,145,144,30,112,44,225,94,126,177,214,20,121,255,247,207,42,253,226,229,19,2,1,159,7,119,169,0,60,251,183, - 170,123,104,147,123,32,196,31,176,93,91,4,196,254,19,32,4,217,197,15,174,184,144,179,65,40,71,129,196,204,50,104,244,182,208,124,13,63,25,10, - 242,50,177,124,233,122,92,185,124,9,61,95,238,139,31,87,111,194,187,111,14,174,114,22,18,143,103,143,104,85,136,102,41,164,2,0,4,165,101,102, - 236,252,227,33,234,213,225,185,254,143,1,128,187,66,6,165,90,7,158,200,29,247,19,14,200,126,63,126,225,203,41,51,23,125,81,146,115,61,227,222, - 141,211,136,242,83,162,78,168,9,183,114,61,112,185,232,5,68,133,215,5,79,228,90,94,106,225,173,152,121,123,120,59,95,105,209,52,186,77,88,128, - 23,116,70,171,61,170,197,199,186,181,27,144,158,150,249,78,225,173,221,87,92,239,173,115,52,121,41,5,110,129,17,31,220,184,112,52,245,213,215,63, - 64,112,104,45,135,195,207,142,112,100,160,28,29,115,100,190,28,33,150,123,127,57,254,155,5,227,122,198,14,194,249,211,71,113,245,214,125,180,106,213, - 2,47,247,31,10,181,170,184,254,246,13,139,123,0,56,36,144,88,198,189,216,182,43,225,172,86,36,223,189,121,223,145,150,125,104,201,163,226,49,153, - 127,131,38,10,79,159,171,6,147,21,89,89,153,56,115,246,68,179,234,14,65,73,68,124,196,95,201,135,201,204,193,100,225,208,177,83,15,163,136,103, - 232,48,123,209,218,214,57,217,57,60,185,135,31,231,19,218,64,20,44,49,25,174,165,40,69,38,51,135,186,33,242,74,53,253,67,194,191,29,63,254, - 211,6,124,145,20,234,50,131,49,39,59,43,104,213,230,227,154,59,119,111,132,214,8,240,244,248,110,241,74,145,74,79,144,175,52,160,88,173,34,175, - 143,153,16,178,230,135,57,195,1,56,53,90,79,66,40,234,196,197,159,174,239,237,46,34,26,189,133,43,82,153,172,175,247,119,253,198,194,17,118,147, - 53,122,209,194,197,178,43,41,106,92,75,81,194,77,196,135,88,196,131,209,204,193,149,143,19,33,132,231,95,187,217,39,19,191,24,15,14,60,92,184, - 145,138,156,135,247,169,187,66,190,59,234,197,247,192,23,73,48,168,87,27,132,6,251,240,142,159,191,139,64,79,47,16,160,115,213,202,143,163,209,106, - 249,102,113,208,91,193,161,181,219,13,24,250,150,103,88,173,80,18,224,231,11,11,21,96,244,155,3,93,254,228,219,140,57,48,119,230,151,48,24,140, - 240,247,18,131,82,96,237,210,105,48,26,141,8,241,149,64,89,102,118,250,124,87,252,200,63,141,71,227,195,149,133,231,136,88,28,229,23,28,118,46, - 254,208,65,207,221,215,56,156,255,237,50,98,91,5,67,36,224,65,230,25,130,107,105,74,196,237,90,81,186,103,203,202,44,131,193,224,208,16,85,68, - 22,20,209,194,93,238,113,232,151,141,91,57,63,95,95,222,242,248,130,148,34,181,229,209,144,86,210,133,189,220,229,67,171,130,41,200,65,55,55,183, - 112,163,209,232,93,153,30,71,129,181,241,15,236,73,188,255,153,40,35,225,243,173,155,54,109,132,175,135,24,6,51,135,73,95,124,172,27,209,83,81, - 250,250,107,67,187,118,233,61,238,152,80,30,113,180,109,179,8,218,180,105,211,82,62,159,95,181,30,33,130,128,128,128,105,60,30,111,152,88,44,118, - 55,26,141,106,49,68,178,50,189,17,122,19,160,213,234,33,20,217,204,162,144,79,160,211,27,161,213,25,43,213,84,231,220,248,3,192,99,17,18,82, - 175,158,248,215,237,123,62,30,244,218,144,41,161,77,250,43,210,114,148,16,17,19,90,54,8,198,241,131,191,209,204,244,164,79,171,50,89,0,144,95, - 80,92,211,223,63,16,87,82,53,200,42,210,33,215,110,178,114,74,12,80,235,212,104,28,22,130,82,165,178,102,149,39,238,236,253,0,126,59,116,232, - 208,224,222,253,134,96,220,23,211,219,255,188,98,254,117,69,80,228,219,154,220,164,42,23,132,166,148,82,66,72,241,196,137,19,235,173,94,189,154,55, - 124,248,112,93,76,76,140,219,27,111,188,209,126,195,134,13,110,50,153,155,238,218,233,189,83,70,125,52,169,223,170,37,179,154,148,148,148,16,139,217, - 252,187,169,164,100,146,186,10,51,151,177,231,203,187,36,122,250,200,30,29,252,247,250,200,120,13,37,212,56,148,68,79,223,74,111,79,53,221,255,125, - 169,58,230,181,133,31,101,151,114,147,245,188,128,217,85,153,44,0,224,241,9,140,102,14,238,82,33,120,60,251,48,1,229,130,215,109,253,93,230,239, - 41,134,144,207,131,128,79,160,210,154,81,168,50,225,131,183,250,185,248,14,82,206,98,165,208,25,45,208,218,239,14,213,170,66,124,249,197,103,120,185, - 207,171,24,245,222,103,40,209,1,151,83,213,48,153,205,85,126,40,120,132,7,173,193,130,183,123,134,161,88,99,66,153,206,2,163,133,131,76,44,128, - 80,192,131,220,77,0,15,153,16,160,84,68,8,25,13,0,66,161,80,111,50,153,54,58,237,33,165,120,161,102,32,116,102,30,94,28,50,31,221,219, - 68,226,214,31,59,5,39,207,223,168,243,201,23,147,241,241,187,125,176,227,110,61,248,4,132,65,33,151,194,76,121,0,92,43,29,66,233,84,46,184, - 254,128,97,63,173,94,151,56,227,155,137,110,165,101,4,18,17,31,199,142,30,193,185,11,151,151,20,220,218,237,180,95,207,130,144,242,2,61,60,60, - 224,38,230,195,104,50,84,254,193,172,128,149,163,160,64,51,69,96,212,79,128,45,31,203,202,193,193,177,170,255,159,8,165,158,147,198,77,156,245,109, - 207,216,65,136,223,191,3,219,118,108,181,182,125,121,20,127,211,186,159,208,190,123,95,180,239,57,4,191,255,182,225,51,161,212,51,122,244,199,95,207, - 236,216,181,55,226,227,118,32,47,55,115,129,171,253,229,11,201,184,174,61,250,64,111,180,162,67,183,87,112,112,223,111,31,193,62,201,194,85,158,52, - 227,28,120,150,207,62,29,39,204,87,26,133,133,74,35,30,22,234,144,158,91,134,221,91,126,118,249,159,40,129,177,101,199,198,53,132,163,231,29,123, - 88,179,70,176,65,104,208,73,147,238,167,212,31,245,214,8,97,157,240,250,188,124,165,1,5,74,3,10,149,6,104,244,22,132,215,136,224,153,45,164, - 77,117,250,13,0,126,158,98,225,143,251,82,225,33,23,162,109,253,103,159,104,203,113,220,159,38,107,145,205,100,93,79,85,66,34,226,67,34,226,65, - 34,226,195,98,165,46,221,184,72,3,234,143,12,173,81,67,209,179,75,59,92,190,175,68,78,102,38,122,245,234,78,210,74,197,216,56,115,48,138,148, - 90,204,88,125,18,95,140,138,69,191,174,77,144,155,95,8,62,159,31,81,157,190,30,136,63,81,43,254,212,149,137,31,140,159,170,120,173,79,23,254, - 213,20,37,114,138,13,184,159,164,174,94,228,13,128,197,202,129,130,98,253,214,253,144,138,5,40,80,154,64,41,197,172,101,219,224,46,21,34,167,196, - 54,220,95,25,255,134,225,194,138,84,153,136,39,22,43,234,251,249,134,156,143,63,120,192,253,183,107,86,28,191,86,132,65,29,106,64,83,156,129,239, - 191,120,173,152,128,26,121,124,126,169,65,167,221,165,211,149,205,166,148,154,42,211,147,5,71,53,147,75,61,142,252,184,234,23,139,95,64,0,54,158, - 46,206,44,41,179,60,178,183,86,171,153,92,62,180,170,142,133,51,247,210,229,38,87,121,123,203,81,136,230,172,216,3,128,130,227,56,80,142,131,208, - 77,33,247,175,215,38,15,0,172,28,117,19,240,136,237,142,222,126,181,80,206,146,89,144,82,121,24,148,0,240,144,9,177,245,100,22,0,228,241,213, - 9,119,94,127,205,54,92,168,55,186,169,26,214,171,71,91,182,108,89,42,149,58,156,92,242,184,22,33,252,192,192,192,139,83,166,76,169,63,106,212, - 40,137,88,44,134,197,98,241,89,185,106,21,183,106,246,187,24,240,209,143,16,137,37,208,233,77,16,96,176,138,251,0,0,32,0,73,68,65,84,10, - 5,40,81,106,80,170,210,66,173,117,238,250,157,65,239,223,55,2,152,23,18,213,225,213,151,20,141,95,20,243,68,104,30,21,140,227,135,118,211,243, - 7,215,190,171,205,75,252,197,37,29,74,161,209,155,145,93,164,71,86,145,30,185,37,122,228,22,27,144,91,162,7,33,4,122,227,95,43,127,83,150, - 159,184,125,227,47,107,250,26,76,24,218,177,231,171,248,108,234,143,97,27,127,154,123,68,26,88,191,157,43,137,182,148,82,43,33,36,253,173,183,222, - 106,178,121,243,102,126,163,70,141,116,119,238,220,145,1,224,0,152,20,10,153,244,231,31,230,28,122,241,197,23,183,100,37,221,61,6,160,196,149,233, - 249,181,59,191,37,169,239,81,60,186,150,188,237,75,117,131,100,168,37,87,191,84,95,113,237,251,128,110,159,124,155,127,116,113,126,142,193,114,184,64, - 199,111,154,165,17,186,148,131,103,54,232,31,12,24,52,4,124,194,131,73,175,125,0,0,32,182,196,243,105,155,238,66,225,38,132,187,84,0,133,84, - 136,246,209,62,46,221,225,150,191,5,102,43,7,173,193,10,157,193,2,189,209,2,191,154,222,88,189,113,59,50,242,117,216,115,169,16,137,15,212,136, - 168,33,7,165,85,127,77,114,86,115,89,159,129,195,221,249,60,2,62,143,240,162,235,71,162,88,99,130,72,192,131,200,77,10,185,68,0,15,169,16, - 34,145,16,249,249,249,48,24,12,168,85,171,150,91,165,29,228,40,220,21,82,68,212,9,129,201,108,193,129,83,183,49,251,211,1,232,209,177,5,136, - 80,129,187,134,102,112,247,113,7,199,227,193,100,225,96,52,89,1,240,156,70,223,106,213,170,213,85,46,151,203,181,90,173,250,193,131,7,39,114,238, - 238,202,8,104,216,127,244,193,248,99,27,95,121,185,7,174,92,191,133,29,191,237,61,93,232,171,28,95,254,156,70,141,26,181,246,243,243,83,20,21, - 21,169,110,220,184,113,209,245,183,247,79,8,33,68,30,88,255,147,54,237,59,67,83,154,143,188,135,105,46,47,249,209,32,204,29,95,207,249,177,121, - 84,100,84,115,43,181,25,175,232,90,238,248,124,234,210,230,245,34,34,155,151,79,8,105,80,75,81,169,142,80,238,209,243,205,209,159,207,233,59,104, - 36,142,197,239,197,194,217,95,108,84,184,251,55,240,241,242,104,218,168,117,79,156,62,178,23,110,238,65,240,246,13,106,63,252,237,15,187,15,26,62, - 6,231,78,31,193,146,185,95,109,176,26,212,191,186,210,87,69,96,93,255,166,45,59,190,238,238,19,136,82,165,26,238,222,1,104,208,184,229,235,138, - 192,186,19,53,121,41,207,84,202,5,176,13,73,26,76,20,37,106,19,50,10,108,38,43,45,79,11,142,171,70,78,144,149,35,10,55,129,192,199,124, - 175,214,141,35,199,104,88,205,64,50,111,230,23,124,19,220,80,80,106,51,89,5,42,35,10,148,70,104,244,102,248,200,5,224,172,206,103,6,58,163, - 68,99,130,187,76,8,79,153,200,229,40,163,35,86,172,219,26,117,45,41,187,255,194,133,139,101,87,83,43,152,44,161,45,154,37,17,241,97,229,56, - 192,133,79,60,143,71,103,76,249,106,2,116,38,14,249,165,70,136,37,98,132,134,214,131,168,196,140,55,191,217,1,33,159,143,33,177,173,1,216,34, - 220,23,238,170,96,181,184,126,238,101,58,29,127,213,166,184,79,182,111,219,226,169,183,10,176,242,247,116,104,13,22,184,137,248,144,136,248,144,138,248, - 143,229,99,87,133,197,106,203,185,203,40,52,67,171,215,67,165,51,131,2,184,120,79,3,157,209,2,101,153,25,173,235,87,26,59,249,215,33,120,210, - 57,86,220,23,43,124,26,120,250,250,159,63,248,251,126,197,111,215,56,156,184,110,51,89,102,93,33,22,76,28,150,169,42,45,236,66,41,173,180,0, - 100,69,228,254,209,141,165,50,217,177,239,22,175,52,5,4,134,114,187,206,151,230,43,181,214,199,220,132,213,96,224,81,142,138,92,49,89,0,192,227, - 17,211,212,143,94,5,71,41,166,45,222,142,111,199,15,129,66,58,92,70,8,145,149,233,45,248,116,250,26,44,248,250,29,119,153,68,0,66,108,57, - 81,111,14,125,213,165,254,150,233,45,184,127,97,179,70,157,186,255,78,197,225,194,86,237,95,190,220,170,85,171,82,111,111,111,72,165,210,63,35,21, - 78,8,12,12,252,122,234,212,169,81,239,189,247,158,164,252,152,64,32,192,7,239,191,207,179,90,41,126,255,125,45,252,107,55,195,222,195,231,209,171, - 107,75,104,180,122,20,151,170,193,161,234,72,153,51,212,165,133,199,114,211,111,188,216,174,75,31,156,56,180,155,158,255,253,231,119,171,83,163,199,219, - 199,251,97,194,141,251,13,8,241,177,69,180,236,38,203,104,230,16,22,40,195,195,244,251,240,242,244,172,114,54,91,57,178,128,250,253,8,143,190,71, - 64,215,106,114,147,182,219,77,207,48,121,80,253,235,183,110,94,157,253,202,235,227,4,61,7,189,207,255,105,206,135,95,225,137,36,214,74,48,37,38, - 38,222,126,231,157,119,218,158,59,119,206,10,64,75,8,49,243,249,124,153,209,104,20,117,233,210,69,121,247,238,221,147,0,170,28,218,237,240,246,14, - 63,34,81,191,92,47,162,229,176,48,119,117,143,46,29,218,160,77,195,154,120,216,161,13,0,140,123,160,81,68,181,31,251,243,214,58,254,53,14,252, - 180,110,223,183,239,14,233,254,105,72,159,233,11,179,247,77,173,180,200,108,198,237,19,14,106,137,148,15,39,10,161,144,10,224,46,21,194,221,77,8, - 179,197,181,59,92,59,212,108,225,108,17,45,163,5,26,157,5,199,174,230,33,87,105,68,169,218,4,157,201,10,10,106,187,27,117,225,219,60,63,249, - 15,175,242,199,222,97,205,149,171,150,205,247,216,249,71,230,163,25,125,158,50,49,220,101,182,217,216,167,78,157,130,175,111,213,119,251,28,199,97,199, - 193,139,88,184,254,24,14,174,157,0,55,17,31,141,251,77,199,200,254,173,192,81,14,247,19,111,229,69,68,55,9,228,241,164,224,17,2,131,153,3, - 64,157,190,159,70,163,209,55,35,35,67,21,30,30,30,20,26,26,58,136,207,231,83,9,96,216,189,165,88,123,116,255,175,178,50,157,193,42,179,40, - 215,134,231,232,98,35,34,34,64,8,161,126,126,126,162,99,199,142,105,98,98,98,252,157,233,86,6,33,132,39,13,136,92,50,106,236,39,131,234,213, - 173,139,237,191,174,5,165,100,167,171,207,223,180,239,28,102,126,249,248,12,195,207,167,46,109,190,96,250,184,199,142,141,253,114,97,165,179,14,165,18, - 197,248,1,195,70,227,242,197,179,248,126,250,231,91,12,154,226,145,102,139,121,112,113,78,234,150,58,209,173,64,77,106,196,111,155,143,33,111,188,43, - 233,249,202,32,156,59,125,4,223,126,53,118,147,182,52,255,45,87,235,127,113,84,248,94,151,151,250,11,117,6,19,150,206,251,6,99,198,207,70,235, - 174,125,132,55,175,158,127,15,192,12,87,207,217,96,178,162,75,140,159,205,60,155,57,236,77,229,11,28,93,129,2,62,225,53,173,235,5,157,209,2, - 85,21,55,149,2,145,48,183,84,169,170,253,195,183,159,240,203,244,22,20,40,141,200,87,26,80,88,250,167,193,42,84,26,80,160,52,66,40,32,72, - 74,121,0,158,80,80,237,252,188,18,141,25,47,70,122,3,32,16,60,227,232,136,89,224,209,234,224,201,107,3,22,46,92,228,118,45,77,141,235,169, - 42,123,36,139,15,137,144,7,177,253,177,149,179,229,70,86,134,123,112,68,251,122,47,68,132,180,121,177,9,238,102,216,210,159,3,131,130,161,85,231, - 163,67,179,122,136,237,220,24,94,30,238,184,243,64,137,111,55,223,196,189,123,41,224,155,93,205,192,176,177,116,229,150,94,163,62,248,220,139,39,20, - 99,195,161,52,91,63,249,86,220,61,191,79,159,125,255,70,153,70,85,68,65,173,46,230,32,19,106,177,218,46,183,111,167,77,194,150,245,203,113,40, - 33,255,81,242,214,31,59,23,224,147,47,103,161,80,101,4,28,36,223,87,230,71,254,201,56,141,104,201,189,3,26,121,186,123,158,253,253,247,125,242, - 221,215,233,35,147,101,210,22,210,217,227,250,100,170,74,11,122,86,203,100,5,68,54,146,200,229,39,167,204,90,98,8,12,173,109,57,112,85,85,164, - 214,91,159,10,139,136,100,114,171,220,211,95,239,21,214,108,161,80,103,252,166,160,224,118,165,201,245,4,182,59,166,253,23,114,65,169,237,22,105,219, - 169,44,216,239,204,97,229,108,195,42,135,175,230,67,96,207,67,113,5,66,128,21,43,151,171,98,99,148,101,175,127,59,237,209,112,97,235,38,182,72, - 150,135,135,7,188,188,188,160,80,40,80,213,208,33,33,228,205,81,163,70,61,117,247,159,159,159,143,238,221,186,96,217,242,213,104,210,109,4,14,159, - 57,4,147,153,67,227,232,186,168,29,226,141,135,121,46,231,93,62,134,34,168,254,7,47,118,125,245,171,246,93,251,224,216,193,93,244,252,193,117,163, - 171,91,8,49,182,123,219,125,51,103,78,171,51,101,246,15,18,119,55,1,238,104,140,224,17,130,176,64,25,124,229,60,156,216,189,65,63,164,79,219, - 125,174,234,213,172,25,186,113,193,178,85,242,5,115,167,119,113,15,141,58,166,206,74,44,6,128,178,220,187,243,100,65,245,111,215,56,27,127,160,73, - 167,87,17,24,82,183,135,171,154,246,33,68,109,74,74,74,234,148,41,83,162,230,206,157,75,249,124,62,7,64,178,120,241,98,109,114,114,242,85,0, - 133,229,109,43,211,234,214,163,225,167,10,177,181,181,143,140,215,176,110,144,12,109,26,218,70,69,135,196,182,71,205,90,181,144,146,171,109,90,172,229, - 132,26,35,191,238,143,43,175,95,122,193,143,255,174,69,103,188,141,234,20,168,181,67,240,103,130,124,121,52,203,93,42,4,7,84,231,206,145,154,45, - 182,25,171,58,131,21,58,163,5,101,70,43,180,70,43,56,106,251,76,16,66,96,178,112,229,47,233,122,255,8,224,225,227,135,186,47,16,120,200,108, - 125,243,176,151,123,32,0,124,125,125,17,16,16,80,117,7,41,133,209,100,251,136,27,205,220,163,97,125,163,201,2,74,41,146,146,18,39,164,167,166, - 246,11,143,8,239,24,221,184,137,143,76,194,3,0,167,70,75,171,213,90,221,221,221,3,124,124,124,120,89,89,89,143,204,115,120,211,46,150,223,118, - 237,196,128,1,175,106,238,92,188,246,168,142,139,78,167,35,237,218,181,243,168,89,179,38,207,96,48,84,235,191,15,33,132,200,253,35,251,215,172,223, - 118,246,155,111,141,137,236,210,189,23,142,31,141,199,158,93,155,127,41,203,79,116,185,114,118,84,84,253,167,102,29,214,139,136,124,106,214,97,237,58, - 17,149,26,173,232,198,45,91,81,34,192,161,253,219,168,158,103,26,107,75,120,39,219,182,174,248,122,198,176,247,190,172,215,187,239,48,188,249,198,72, - 8,4,124,156,56,188,15,11,166,127,22,167,81,230,143,112,37,77,0,0,72,116,180,40,188,86,237,143,107,213,107,132,132,243,167,113,63,233,230,173, - 107,151,206,53,12,143,105,13,255,144,176,143,73,116,244,92,122,251,118,165,163,21,0,96,212,235,31,140,28,241,6,42,206,58,108,211,44,202,247,177, - 11,208,190,163,85,231,155,126,158,255,105,114,249,172,67,206,100,124,224,76,87,89,82,176,227,196,153,11,227,251,197,246,226,21,170,140,182,8,150,210, - 104,223,12,40,44,127,172,50,32,34,68,129,196,91,9,156,94,89,232,178,33,182,119,75,63,114,240,75,183,129,63,147,255,9,224,114,149,245,114,168, - 208,99,244,188,239,23,186,93,75,213,224,122,154,202,54,84,40,228,219,12,150,144,247,200,116,217,102,179,87,161,197,241,215,205,152,62,25,70,19,69, - 137,198,4,66,0,119,79,31,168,4,82,220,205,177,64,157,86,130,7,57,105,200,72,79,67,89,65,42,132,124,10,15,137,9,174,214,68,178,82,113, - 176,214,72,99,6,197,118,20,236,58,155,3,153,68,0,131,58,15,191,111,157,95,96,208,168,102,235,180,154,93,174,212,115,44,135,71,72,129,74,163, - 15,148,8,249,216,190,254,7,12,30,57,214,126,34,182,31,19,38,207,4,120,4,197,37,106,16,66,158,57,74,250,79,195,169,209,226,56,250,123,252, - 193,125,242,63,210,37,184,152,152,99,55,89,5,220,172,143,98,51,213,202,226,151,40,165,73,213,122,37,30,239,165,33,111,143,191,85,55,50,218,112, - 252,166,38,173,180,204,236,52,207,161,205,160,41,183,46,199,45,235,173,52,167,188,175,8,105,104,229,44,150,121,218,252,196,233,14,251,73,33,158,190, - 100,251,163,97,195,137,115,55,216,30,91,173,176,82,14,148,3,62,252,122,5,44,156,21,156,213,10,206,74,97,182,82,89,85,221,13,8,169,189,171, - 228,238,182,250,175,207,120,122,184,208,203,203,11,190,190,190,240,245,245,133,135,135,71,149,70,75,40,20,42,4,130,199,223,234,7,15,30,32,61,61, - 29,30,30,30,160,156,25,70,51,208,168,117,79,220,184,127,19,71,254,184,10,202,89,33,87,84,62,156,224,8,69,80,253,247,91,118,238,247,67,215, - 190,239,224,240,174,149,244,210,169,125,99,180,121,137,107,92,125,190,213,106,37,102,179,25,177,61,59,63,184,114,235,222,193,201,227,223,235,213,246,149, - 49,146,54,81,161,208,27,173,200,76,191,143,19,187,215,233,35,235,4,31,234,214,161,213,3,179,217,12,171,213,90,229,63,114,189,209,84,200,23,74, - 229,67,135,190,46,188,116,241,226,78,69,64,228,118,43,225,93,35,148,198,16,130,129,141,27,55,128,201,204,65,171,85,85,123,98,129,90,173,78,93, - 187,118,109,157,17,35,70,200,162,163,163,133,247,239,223,199,130,5,11,138,212,106,117,149,117,195,202,137,63,149,184,88,64,74,146,197,156,105,88,152, - 187,186,71,70,251,54,24,250,74,123,108,137,251,3,39,78,159,195,3,141,226,170,198,34,216,253,240,65,182,161,161,143,106,103,223,54,181,249,219,215, - 151,236,12,232,242,229,107,148,74,226,11,78,76,117,121,182,173,109,210,134,25,30,50,91,189,167,242,200,22,159,16,151,29,17,1,82,79,159,75,104, - 212,34,34,26,87,82,149,200,47,53,64,103,176,128,227,40,56,80,248,186,139,225,38,226,33,35,61,21,28,53,165,185,218,55,27,180,160,83,199,78, - 2,128,128,16,42,16,10,4,160,176,213,87,148,74,165,154,128,128,0,151,34,90,38,139,5,3,122,181,66,235,150,141,209,111,140,173,102,230,209,95, - 38,193,91,33,196,150,141,107,144,113,114,209,198,186,109,199,198,223,188,113,107,224,173,43,103,95,127,185,185,180,105,144,32,91,228,76,79,163,209,236, - 36,132,136,69,34,81,175,142,29,59,250,236,220,185,179,212,207,207,143,19,139,68,5,125,251,188,194,9,69,162,226,242,182,103,206,156,17,142,25,51, - 198,189,164,164,36,35,47,47,239,28,165,180,210,144,137,60,160,126,119,240,176,25,132,184,41,164,178,7,109,186,15,13,105,217,186,149,103,255,1,131, - 33,17,75,112,56,254,32,150,46,154,187,77,147,115,231,109,151,223,70,252,231,102,29,102,102,164,165,106,117,134,152,70,45,58,147,211,241,187,199,17, - 226,191,136,47,241,152,223,125,192,216,122,169,217,26,44,157,51,1,222,158,114,164,221,191,171,75,190,115,99,133,89,175,154,224,170,201,2,0,89,145, - 117,96,155,55,122,121,27,76,86,156,58,22,167,231,44,92,175,115,39,15,220,175,17,217,210,173,81,203,110,222,133,123,214,12,0,176,165,42,157,204, - 59,79,71,112,107,69,189,152,118,244,216,17,207,192,176,134,124,2,2,147,65,143,130,148,75,22,109,222,93,149,50,243,134,75,179,112,139,30,226,235, - 47,167,126,247,126,203,22,45,228,20,110,143,69,176,202,13,86,161,202,8,63,119,49,116,170,2,36,95,58,168,215,22,240,43,173,119,102,49,150,201, - 10,243,243,30,21,116,210,228,37,182,174,172,125,97,126,158,216,98,44,171,242,127,7,143,199,135,135,92,140,27,105,89,143,18,223,37,66,91,110,150, - 88,200,127,148,167,5,60,157,207,246,36,18,137,228,133,102,141,27,225,65,158,22,70,163,9,58,173,30,154,50,61,10,10,85,200,204,206,67,126,110, - 30,116,101,42,72,132,20,17,238,185,176,130,135,180,140,60,80,194,185,52,129,193,76,132,81,45,91,119,144,220,76,183,229,98,185,9,41,246,109,158, - 91,164,81,229,119,80,103,39,37,187,162,81,17,139,213,122,228,250,237,228,134,53,130,95,32,87,239,43,177,113,245,50,24,237,145,77,179,217,138,155, - 25,101,200,41,214,34,35,229,14,229,172,214,106,149,106,250,39,227,212,104,17,10,65,227,70,13,208,115,120,127,44,95,190,2,41,169,233,220,236,113, - 189,51,52,234,210,151,93,53,89,132,144,238,229,181,54,202,114,239,206,123,123,121,90,230,222,43,197,60,157,177,242,245,173,220,252,195,208,225,237,5, - 135,116,234,98,177,213,160,21,236,219,248,246,102,71,154,0,192,35,48,206,254,124,8,20,82,1,8,33,40,31,46,252,113,230,104,200,36,182,177,101, - 157,193,130,225,159,46,196,198,133,159,129,2,24,54,248,143,199,170,6,87,212,172,176,118,97,141,7,233,249,89,221,251,124,126,84,111,146,24,94,121, - 117,196,229,22,45,90,148,74,165,82,72,165,82,120,120,120,192,219,219,27,94,94,94,112,68,69,77,179,217,172,49,26,141,190,98,177,24,28,199,33, - 45,45,13,105,105,105,80,42,149,40,40,40,64,153,70,101,185,120,116,187,160,81,155,222,8,169,27,131,176,136,38,16,242,9,4,2,30,78,236,93, - 237,80,211,17,138,160,250,239,183,236,212,247,199,110,253,70,225,240,174,85,244,210,169,125,239,105,243,18,87,59,107,239,72,147,227,184,107,3,6,12, - 136,25,51,102,140,104,234,248,49,135,226,226,79,36,109,223,191,170,79,73,73,105,77,74,41,188,60,61,31,14,233,211,118,95,151,118,45,31,28,61, - 122,148,219,188,121,179,129,16,114,163,50,77,0,40,204,207,255,229,232,145,99,211,58,116,234,140,53,235,55,119,186,117,251,78,167,251,247,147,81,51, - 172,46,94,168,19,1,45,241,198,177,147,167,161,41,205,119,152,67,230,236,220,237,81,45,82,82,82,114,118,200,144,33,61,255,248,227,15,222,144,33, - 67,180,133,133,133,103,96,191,143,114,22,205,170,168,121,118,69,255,2,0,191,212,238,252,214,182,44,83,233,199,0,230,214,10,171,133,19,167,207,225, - 220,31,23,86,20,202,106,77,127,123,248,91,163,107,247,229,143,234,219,166,54,63,192,91,134,95,87,45,224,239,61,151,190,48,189,200,186,6,192,204, - 202,250,249,36,69,106,19,218,53,240,129,217,74,193,81,219,23,174,187,155,208,225,23,175,35,77,129,81,242,246,123,99,198,220,111,212,184,233,39,195, - 223,122,79,212,180,110,77,92,188,87,10,16,2,159,32,57,114,114,114,112,106,199,42,75,73,214,221,21,124,62,247,212,176,79,101,253,44,78,191,18, - 94,161,221,232,194,194,66,156,56,113,2,229,6,203,223,223,223,161,209,122,82,179,40,47,251,204,204,239,87,182,123,247,205,87,241,74,231,134,56,121, - 233,62,140,246,122,77,229,83,201,83,207,253,36,254,120,72,93,227,251,3,34,85,58,179,56,253,235,52,229,169,138,179,98,159,212,164,148,26,9,33, - 123,19,19,19,219,55,105,210,164,246,129,3,7,138,111,93,56,52,174,98,63,62,255,252,115,197,242,229,203,101,148,210,51,6,131,225,169,168,187,195, - 115,231,225,215,132,203,151,125,77,102,14,167,47,92,107,208,173,93,83,112,20,184,116,233,18,214,252,188,70,127,227,250,213,249,101,121,65,51,156,153, - 23,103,239,167,171,166,202,81,187,138,154,57,89,233,243,15,199,237,216,216,178,83,31,188,254,225,140,25,39,226,54,79,107,222,225,21,94,131,150,61, - 145,112,238,24,142,28,56,248,157,73,83,60,173,170,117,72,157,245,83,34,149,125,20,221,188,19,50,30,164,35,45,249,230,47,186,162,228,108,69,80, - 253,95,178,51,31,188,87,167,97,59,252,113,104,203,56,56,49,90,85,93,243,53,253,165,171,14,236,223,59,52,51,243,167,160,50,157,94,66,41,213, - 75,196,130,92,5,207,249,12,245,167,255,238,183,77,114,159,23,6,12,30,254,94,220,210,165,139,132,129,94,50,228,150,232,161,210,153,160,214,154,192, - 35,4,225,33,114,104,213,197,56,185,227,123,179,81,83,50,132,210,123,38,103,154,138,192,250,179,0,250,225,231,99,143,67,236,89,51,164,78,183,175, - 42,141,214,169,179,175,247,249,124,236,190,40,74,105,55,69,96,125,117,249,90,135,142,206,157,16,219,231,251,245,46,53,97,178,216,234,143,89,56,192, - 202,113,246,40,31,64,31,141,231,63,253,129,175,168,233,225,229,129,149,219,79,161,176,88,3,173,193,4,157,222,8,131,209,2,139,197,4,41,223,136, - 6,190,37,16,121,170,80,108,16,227,230,221,98,20,100,221,43,161,132,124,173,205,75,90,94,217,251,89,142,72,234,21,21,28,18,196,203,81,25,33, - 21,243,113,245,228,1,147,217,104,152,239,138,201,114,164,89,90,84,188,240,147,241,95,12,91,183,118,125,80,76,29,15,100,22,234,144,89,160,135,90, - 111,187,207,177,88,57,24,52,133,184,126,108,125,174,85,175,94,88,213,107,252,91,112,106,180,44,38,189,122,231,193,139,190,147,166,125,207,191,119,63, - 197,60,235,227,216,76,157,70,213,187,218,145,172,10,172,125,255,133,42,239,136,30,199,94,210,100,70,122,165,173,158,26,46,164,28,56,74,177,239,66, - 238,163,225,66,206,158,121,121,229,126,229,203,8,86,92,187,176,115,239,113,135,175,39,170,55,233,116,121,158,119,239,205,47,1,0,62,159,255,104,43, - 207,205,210,235,245,149,206,66,162,148,110,88,189,122,245,196,247,222,123,79,242,240,225,67,220,191,127,31,165,165,165,112,115,115,195,193,131,7,205,224, - 44,243,175,255,241,91,90,98,66,252,55,81,45,122,214,136,105,211,27,50,153,28,130,106,44,173,38,15,140,26,218,178,115,191,31,186,245,127,23,71, - 126,91,77,47,157,220,59,86,155,159,184,202,101,1,59,37,37,37,183,8,33,201,243,231,207,111,186,102,205,154,58,227,199,143,79,217,240,195,180,165, - 0,80,84,100,91,3,248,202,149,43,116,236,216,177,6,189,94,159,90,82,82,146,80,213,4,8,0,208,21,200,190,93,243,227,220,70,15,179,114,94, - 173,219,232,69,248,215,121,17,65,225,173,80,162,54,225,226,189,108,164,220,57,138,59,167,119,28,208,42,44,211,170,219,231,38,77,154,212,228,241,120, - 47,104,52,154,160,232,232,232,38,114,185,252,74,147,38,77,154,9,4,130,204,203,151,47,87,126,241,60,65,250,137,117,134,218,157,223,90,242,64,237, - 222,37,37,87,219,236,129,218,253,138,86,226,249,89,254,209,197,134,192,158,243,23,82,107,201,173,237,235,75,118,254,186,106,1,127,248,232,207,173,55, - 149,222,31,11,164,226,195,115,70,198,184,252,26,132,240,114,222,31,209,239,207,242,14,246,72,150,253,177,75,97,250,210,210,107,74,0,19,165,33,13, - 127,184,249,241,152,153,141,91,182,123,163,227,203,67,120,22,145,2,135,126,251,137,166,94,63,182,93,64,173,147,181,46,172,6,80,21,70,163,177,74, - 147,229,8,229,67,121,231,237,155,127,30,185,243,183,93,115,250,247,237,231,251,227,215,175,225,251,149,187,33,151,74,64,57,14,67,186,214,26,116,103, - 243,75,125,106,6,186,133,238,60,158,121,234,195,69,55,39,106,181,166,164,170,34,49,118,227,124,218,221,221,189,160,125,251,246,173,37,18,9,41,44, - 44,20,4,4,4,88,60,61,61,141,57,57,57,90,131,193,176,147,82,234,114,148,17,0,76,102,14,105,121,122,236,217,181,19,215,46,28,197,157,59, - 137,234,59,183,239,44,35,2,186,72,147,155,84,92,181,194,211,112,14,103,29,58,62,86,25,86,131,250,215,13,43,102,117,213,234,13,35,155,180,141, - 69,237,6,237,120,38,179,21,55,46,29,199,241,29,139,190,55,170,139,38,61,75,255,202,9,169,81,39,130,242,197,56,123,34,14,148,227,86,0,0, - 229,184,21,87,254,56,240,94,171,222,163,224,19,80,187,9,33,132,184,154,239,85,17,145,128,87,246,251,206,117,191,165,165,165,225,238,221,187,184,119, - 239,30,138,139,139,241,235,175,105,213,250,251,148,21,167,29,86,248,214,125,105,224,107,175,239,27,52,244,77,183,58,17,49,188,168,26,222,240,85,8, - 144,120,47,29,73,151,175,115,137,23,15,232,77,170,252,254,218,226,52,167,198,79,238,31,29,72,120,116,82,249,218,133,109,218,180,139,250,98,246,156, - 214,190,254,1,14,191,199,139,10,242,197,19,62,220,27,117,238,252,89,151,214,58,228,172,214,162,209,35,135,112,124,219,66,161,120,20,167,38,0,104, - 121,20,203,118,156,114,150,74,35,248,102,179,5,141,130,76,208,202,141,32,60,1,252,253,195,144,158,241,16,233,153,42,164,103,23,225,218,221,68,100, - 100,164,154,168,133,187,67,249,88,81,213,141,245,83,240,4,117,124,125,124,144,90,172,129,155,88,128,244,164,203,134,50,149,114,83,181,52,42,160,45, - 76,202,145,7,70,245,28,50,100,232,193,174,47,245,245,108,217,182,187,204,207,195,11,34,1,69,114,90,54,18,206,28,44,75,185,118,74,101,54,106, - 122,253,39,86,125,249,167,224,212,104,153,12,101,125,134,245,235,180,139,207,23,136,57,206,98,48,25,13,3,255,138,201,122,94,80,106,205,28,57,204, - 150,220,94,126,111,96,225,168,116,216,224,67,186,138,247,10,102,43,149,13,27,124,70,11,0,148,115,158,216,23,28,236,19,91,190,118,225,131,7,69, - 151,138,139,13,199,159,181,24,105,57,121,121,121,51,103,207,158,253,138,86,171,173,223,185,115,103,137,135,135,7,138,138,138,16,31,31,111,222,191,127, - 255,237,252,252,252,111,40,205,179,16,210,252,151,235,250,223,70,36,94,142,255,166,126,139,151,106,196,180,237,237,242,107,136,36,210,119,187,246,125,135, - 28,217,189,154,94,60,177,251,125,109,126,210,202,103,237,175,221,56,93,32,132,220,156,60,121,114,203,192,192,192,192,111,190,249,198,77,165,82,9,127, - 252,241,71,125,97,97,97,174,74,165,58,71,169,243,196,229,167,53,19,204,0,6,40,2,35,187,208,157,171,123,120,249,133,246,244,244,175,81,175,180, - 32,43,85,89,144,29,15,224,136,189,80,100,181,104,214,172,89,93,30,143,55,4,64,35,185,92,30,174,80,40,36,148,210,250,132,144,91,28,199,93, - 143,142,142,222,15,160,90,127,191,244,19,235,12,29,223,255,121,115,177,150,19,25,121,162,205,233,39,214,25,0,32,47,126,188,22,192,158,192,46,147, - 6,236,61,151,190,244,86,137,231,184,252,227,223,186,188,246,93,57,165,15,175,134,87,221,202,53,116,217,183,50,1,140,148,7,70,45,184,113,229,220, - 84,66,33,180,194,50,75,155,151,124,249,63,161,47,20,10,245,161,161,161,14,103,23,74,36,146,74,243,87,40,61,97,1,176,134,144,206,235,119,109, - 91,63,114,247,222,61,115,58,118,235,239,235,86,163,6,94,8,32,88,63,169,249,184,163,87,10,46,246,253,226,212,242,148,108,253,117,74,105,181,242, - 97,212,106,117,18,33,164,68,163,209,244,163,148,62,36,132,212,44,41,41,185,106,54,155,111,84,219,16,112,120,189,77,155,23,127,37,132,8,168,133, - 155,119,78,200,223,172,207,185,147,249,44,198,162,34,49,47,120,224,211,111,150,52,175,23,30,217,188,124,173,195,134,181,221,49,102,226,130,230,181,235, - 68,52,255,115,253,195,202,211,4,236,145,219,183,119,253,60,239,212,149,243,199,191,242,11,174,93,59,55,51,229,206,195,123,87,103,90,116,202,103,90, - 152,185,34,105,247,110,45,90,51,127,226,248,156,172,212,53,101,249,73,55,1,160,44,63,233,166,44,48,242,235,194,220,204,241,69,249,41,243,159,245, - 189,40,43,43,203,222,180,105,147,87,187,118,237,120,129,129,129,40,40,40,192,241,227,199,57,142,227,170,92,0,250,73,52,69,41,199,9,169,231,243, - 203,202,31,230,137,228,238,189,45,22,75,8,165,128,64,32,200,49,106,85,7,213,60,249,23,180,56,173,138,235,146,35,0,120,229,107,23,114,28,71, - 230,45,93,159,46,116,115,119,184,62,162,89,175,150,113,28,231,242,90,135,37,15,46,215,171,238,121,57,213,42,42,220,241,230,216,73,175,2,212,10, - 10,43,33,196,66,41,44,32,84,3,142,156,230,19,44,215,84,99,57,164,39,33,4,30,148,8,224,46,21,128,128,64,163,44,166,213,201,201,114,68, - 89,94,226,45,66,58,135,253,110,220,54,226,216,225,3,131,173,86,235,11,246,43,39,205,160,43,219,174,201,241,254,133,210,75,127,109,218,250,63,12, - 242,23,191,71,42,23,119,113,24,229,239,164,89,191,174,172,95,141,208,192,17,105,233,249,23,83,30,106,127,161,21,150,213,249,43,253,180,151,120,248, - 154,16,242,134,88,44,86,24,141,198,50,74,233,134,188,188,188,153,244,169,21,206,155,11,165,1,186,17,98,55,217,20,147,190,236,108,89,94,226,235, - 142,52,43,34,15,136,234,233,38,151,79,212,235,202,54,148,229,38,174,127,214,126,58,105,227,41,145,72,154,41,20,10,97,97,97,225,5,74,169,242, - 175,106,86,151,202,52,155,54,109,90,139,199,227,189,192,113,92,32,0,79,0,5,0,10,5,2,65,214,229,203,151,211,93,25,58,124,146,14,111,239, - 240,235,214,163,225,167,241,167,18,23,219,135,21,31,81,99,240,34,183,55,122,119,249,252,151,93,123,158,154,117,248,79,188,230,255,91,154,132,116,22, - 40,130,11,71,242,196,158,179,186,69,233,181,133,217,89,99,79,223,40,184,64,41,117,58,235,195,149,126,138,197,226,225,38,147,73,42,18,137,116,70, - 163,177,202,187,241,255,214,185,203,2,235,191,195,3,117,121,101,10,14,228,114,197,73,43,255,158,191,59,225,199,196,196,116,16,137,68,181,172,86,171, - 204,104,52,106,117,58,93,90,122,122,250,217,39,191,251,254,91,253,84,4,70,46,18,137,36,31,3,128,201,100,88,162,201,75,250,180,178,231,58,107, - 255,79,255,27,249,215,105,153,44,224,11,253,97,47,204,205,89,44,5,185,41,23,93,170,193,245,60,250,89,201,107,141,166,148,86,123,132,230,111,3, - 181,47,187,240,60,54,0,221,153,38,211,100,154,76,211,65,91,222,63,161,159,76,243,223,171,233,22,220,160,166,91,112,131,154,174,62,223,81,251,127, - 234,185,255,93,53,43,121,173,209,255,173,215,122,30,155,203,43,135,51,24,12,198,127,10,90,141,25,113,12,198,243,64,151,125,219,229,58,128,207,210, - 158,193,40,135,0,232,238,232,23,180,26,33,65,66,136,67,141,202,168,74,159,105,50,77,166,201,52,153,38,211,100,154,255,62,205,39,180,95,118,240, - 171,68,7,154,108,232,240,191,21,90,100,154,76,147,105,50,77,166,201,52,153,230,191,79,243,223,186,85,190,118,12,131,193,96,48,24,12,6,227,153, - 97,70,139,193,96,48,24,12,6,227,57,193,140,22,131,193,96,48,24,12,198,115,130,25,45,6,131,193,96,48,24,140,231,4,51,90,12,6,131,193, - 96,48,24,207,9,66,41,69,92,92,28,141,141,141,37,0,30,123,204,96,48,24,12,6,131,241,223,224,223,234,69,30,69,180,226,226,226,158,223,90, - 60,12,6,131,193,96,48,24,85,240,111,244,34,143,140,86,108,108,44,249,55,158,32,131,193,96,48,24,140,127,6,255,70,47,242,88,142,214,191,37, - 76,199,96,48,24,12,6,227,159,201,191,205,139,176,100,120,6,131,193,96,48,24,140,231,4,177,151,210,103,48,24,12,6,131,193,96,252,135,97,17, - 45,6,131,193,96,48,24,140,231,4,51,90,12,6,131,193,96,48,24,207,137,231,106,180,8,33,221,153,38,211,100,154,76,147,105,50,77,166,201,52, - 255,151,32,132,140,46,127,204,34,90,12,6,131,193,96,48,24,14,32,132,72,8,33,146,138,251,174,60,143,82,186,170,252,177,224,121,116,140,193,96, - 48,24,12,6,227,159,10,33,68,66,41,53,0,208,3,48,18,66,60,43,236,59,44,63,81,49,138,197,140,22,131,193,96,48,24,12,134,115,148,0, - 36,0,64,41,149,16,66,12,132,16,79,103,141,9,33,163,43,154,171,138,251,204,104,49,24,12,6,131,193,96,84,128,82,90,62,68,104,44,223,39, - 132,24,202,247,171,3,51,90,12,6,131,193,96,48,24,14,176,27,172,114,211,85,62,124,232,168,221,42,103,67,135,4,128,195,153,3,148,210,35,174, - 118,228,89,102,31,84,165,207,52,153,38,211,100,154,76,147,105,50,205,127,159,102,85,218,213,241,31,207,27,187,201,82,86,56,228,212,108,57,133,82, - 250,220,54,0,221,153,38,211,100,154,76,147,105,50,77,166,201,52,255,137,155,205,38,57,223,175,112,124,180,51,13,86,222,129,193,96,48,24,12,6, - 195,49,198,242,18,15,246,232,86,165,57,90,21,135,15,203,97,57,90,12,6,131,193,96,48,24,14,160,127,38,193,63,218,119,214,182,220,100,149,255, - 164,108,214,33,131,193,96,48,24,12,134,115,8,33,60,216,243,178,202,163,90,212,65,142,22,173,144,252,254,36,204,104,49,24,12,6,131,193,96,56, - 166,27,128,125,132,144,126,0,246,216,143,61,21,213,114,52,100,200,34,90,12,6,131,193,96,48,24,149,19,15,192,13,182,138,240,110,206,26,149,155, - 170,39,11,151,2,0,177,103,203,35,46,46,142,198,198,198,58,44,43,207,96,48,24,12,6,131,241,188,249,187,121,145,138,249,89,229,56,203,211,114, - 100,178,0,251,162,210,229,39,22,23,23,71,255,243,221,100,48,24,12,6,131,193,168,156,191,169,23,145,194,150,163,37,1,224,9,64,238,168,81,197, - 68,248,242,173,252,119,108,232,144,193,96,48,24,12,6,195,49,79,230,104,205,7,48,229,201,70,44,25,158,193,96,48,24,12,6,163,250,60,153,163, - 165,135,3,163,85,89,50,60,203,209,98,48,24,12,6,131,241,183,224,239,230,69,170,147,163,229,84,163,220,104,49,24,12,6,131,193,96,48,254,164, - 194,130,210,143,112,84,71,171,50,216,208,33,131,193,96,48,24,12,134,99,148,0,196,120,124,233,157,106,69,180,216,90,135,12,6,131,193,96,48,24, - 14,176,15,19,26,97,159,121,88,89,105,7,103,26,207,213,104,17,66,186,51,77,166,201,52,153,38,211,100,154,76,147,105,254,131,241,132,45,178,85, - 41,21,75,59,176,242,14,12,6,131,193,96,48,24,85,96,207,209,210,3,112,43,207,215,114,150,163,229,172,196,3,51,90,12,6,131,193,96,48,24, - 142,81,194,54,116,88,49,162,229,40,65,158,213,209,98,48,24,12,6,131,193,168,14,148,82,137,163,153,135,79,194,22,149,102,48,24,12,6,131,193, - 168,38,132,144,151,96,171,8,95,113,230,161,211,136,150,163,245,14,153,209,98,48,24,12,6,131,193,112,204,65,252,89,17,222,211,89,163,138,17,173, - 242,199,143,204,23,0,135,51,7,40,165,71,92,237,197,179,204,62,168,74,159,105,50,77,166,201,52,153,38,211,100,154,255,62,205,170,180,171,227,63, - 158,55,132,144,86,0,78,86,60,86,221,202,240,160,148,62,183,13,64,119,166,201,52,153,38,211,100,154,76,147,105,62,187,0,203,0,0,32,0,73, - 68,65,84,50,205,127,243,6,96,180,253,103,48,128,209,229,251,148,82,86,176,148,193,96,48,24,12,6,227,63,1,165,52,135,254,39,115,180,8,33, - 97,94,94,94,191,186,185,185,81,189,94,79,74,75,75,95,167,148,62,120,6,157,104,0,115,0,20,1,152,74,41,125,248,23,251,213,14,192,135,246, - 221,31,40,165,103,254,138,30,131,193,96,48,24,140,255,61,158,156,113,72,157,175,115,24,247,196,204,195,184,242,7,207,28,209,34,132,132,249,250,250, - 238,57,126,252,120,86,118,118,118,221,19,39,78,228,250,250,250,238,33,132,132,85,83,167,233,160,65,131,46,152,205,230,216,146,146,146,145,66,161,112, - 206,51,244,165,29,33,228,160,221,96,193,221,221,253,43,74,233,107,28,199,189,166,80,40,190,114,212,134,193,96,48,24,12,6,163,10,148,21,55,251, - 44,196,167,40,143,100,85,216,114,202,127,247,76,70,139,16,18,230,237,237,189,39,62,62,62,185,113,227,198,189,1,100,198,196,196,180,61,120,240,224, - 21,47,47,175,95,171,161,211,116,208,160,65,167,127,249,229,23,217,165,75,151,176,115,231,78,152,205,102,93,53,251,210,238,195,15,63,60,106,54,155, - 95,26,48,96,192,17,66,200,152,14,29,58,52,3,0,141,70,3,127,127,255,24,66,200,152,55,223,124,243,72,113,113,113,207,224,224,224,120,102,182, - 24,12,6,131,193,96,84,5,181,175,111,72,109,9,240,158,176,205,66,124,138,39,151,223,249,75,75,240,16,66,194,60,61,61,247,236,221,187,55,185, - 73,147,38,189,41,165,23,8,33,87,1,104,155,55,111,94,211,205,205,141,186,168,243,200,100,93,187,118,13,169,169,169,152,53,107,150,26,192,162,106, - 118,105,242,194,133,11,197,2,129,0,155,54,109,18,44,91,182,236,167,128,128,0,24,12,6,232,245,122,236,223,191,223,239,228,201,147,43,70,141,26, - 69,82,82,82,48,117,234,84,193,152,49,99,38,3,232,85,221,115,103,48,24,12,6,131,241,63,139,18,64,107,71,191,120,50,47,171,34,132,82,138, - 184,184,184,114,115,212,57,54,54,246,164,211,198,182,156,172,61,91,182,108,73,238,209,163,71,31,163,209,120,214,106,181,94,149,201,100,90,0,1,55, - 110,220,240,234,220,185,115,205,146,146,146,182,149,245,212,145,201,154,50,101,138,250,225,195,135,157,41,165,87,171,62,215,199,180,218,13,26,52,232,200, - 134,13,27,4,34,145,72,80,92,92,140,51,103,206,32,51,51,19,86,171,21,254,254,254,168,87,175,30,132,66,33,138,138,138,44,239,191,255,190,41, - 37,37,165,39,203,219,98,48,24,12,6,227,239,131,171,94,228,191,9,33,68,82,49,47,235,201,253,10,199,131,1,196,194,150,155,21,11,252,105,190, - 30,13,29,198,198,198,18,0,39,42,121,177,48,111,111,239,189,59,119,238,204,238,214,173,91,239,251,99,134,74,116,58,157,74,163,209,104,13,6,67, - 141,91,183,110,5,119,239,222,189,126,105,105,233,235,149,104,180,35,132,236,5,112,126,241,226,197,78,77,150,189,221,6,251,86,233,48,31,165,244,204, - 142,29,59,62,185,123,247,46,191,168,168,8,219,183,111,231,46,94,188,104,252,249,231,159,13,191,254,250,171,225,225,195,135,230,228,228,100,170,209,104, - 112,248,240,97,126,74,74,202,103,204,100,49,24,12,6,131,241,247,163,42,47,242,255,128,30,120,44,41,94,239,164,93,172,221,88,197,150,231,105,149, - 255,226,145,209,178,59,201,206,21,159,69,8,169,225,238,238,190,210,203,203,235,84,205,154,53,227,14,30,60,168,236,208,166,117,167,228,177,175,203,238, - 159,59,131,237,225,65,175,202,229,242,246,119,239,222,13,237,210,165,75,237,194,194,194,126,206,102,29,18,66,218,125,244,209,71,167,84,42,85,31,149, - 74,37,90,179,102,13,142,28,57,226,208,100,217,219,189,161,82,169,222,24,58,116,232,41,103,102,139,16,210,206,195,195,227,247,151,95,126,121,70,76, - 76,12,57,125,250,52,30,62,124,104,254,238,187,239,214,223,188,121,51,248,202,149,43,193,95,125,245,213,90,30,143,199,185,187,187,163,105,211,166,150, - 26,53,106,124,227,238,238,206,146,226,25,12,6,131,193,248,155,225,200,139,252,127,99,55,89,250,170,214,60,44,207,203,122,50,71,235,209,208,161,221, - 69,62,66,42,149,14,140,137,137,153,186,97,195,6,190,159,159,31,213,235,245,5,62,238,138,134,247,62,121,199,39,229,220,89,100,229,21,160,119,66, - 242,175,69,69,69,161,47,189,244,146,87,73,73,73,63,74,105,122,37,29,216,160,82,169,222,88,178,100,9,114,115,115,209,191,127,127,244,232,209,195, - 4,160,117,197,225,194,138,237,242,243,243,209,167,79,31,244,236,217,115,35,165,244,77,7,154,91,57,142,123,141,16,2,173,86,139,85,171,86,97,221, - 186,117,134,91,183,110,5,83,74,75,237,109,188,58,119,238,156,187,115,231,78,241,177,99,199,224,231,231,7,131,193,128,94,189,122,109,163,148,14,113, - 245,141,102,48,24,12,6,131,241,252,112,228,69,254,191,33,132,60,53,76,72,171,89,25,222,97,50,60,33,164,70,179,102,205,190,57,113,226,68,80, - 217,229,115,197,234,143,134,186,115,197,5,94,183,35,154,120,167,93,189,130,204,188,2,116,61,122,97,91,94,94,222,11,177,177,177,178,146,146,146,254, - 149,153,172,114,56,142,67,110,110,46,242,242,242,160,84,42,1,32,254,201,156,44,190,208,45,10,0,242,243,243,145,147,147,3,149,74,85,165,102,97, - 97,33,140,70,35,56,142,131,72,36,114,216,78,34,145,64,173,86,163,184,184,24,122,189,179,200,31,131,193,96,48,24,12,198,35,60,129,63,235,103, - 57,139,106,85,136,96,197,85,44,237,0,216,141,214,147,14,82,161,80,76,89,189,122,181,81,123,229,124,177,220,98,12,231,213,12,195,195,228,68,220, - 204,56,132,66,43,225,186,199,159,221,106,176,88,234,245,238,221,91,82,90,90,218,159,82,154,230,66,103,87,141,30,61,122,248,59,239,188,67,212,106, - 53,22,44,152,143,58,66,60,168,216,64,30,88,255,147,150,239,200,154,143,25,59,26,111,141,120,27,42,149,10,11,22,44,176,2,112,150,205,255,131, - 151,151,151,187,175,175,111,204,174,93,187,252,252,252,252,132,3,7,14,228,95,185,114,101,14,33,228,75,123,155,57,227,199,143,231,219,77,155,121,238, - 220,185,133,106,181,250,6,128,31,92,232,51,131,193,96,48,24,140,255,2,127,183,104,150,29,61,0,35,33,196,211,110,182,244,176,173,19,253,24,229, - 57,89,246,97,195,199,143,217,215,230,121,12,47,47,175,83,201,201,201,18,227,200,216,154,210,224,144,192,252,11,231,240,176,84,141,44,35,135,2,185, - 103,238,251,215,147,11,163,162,162,120,121,121,121,253,40,165,169,174,246,150,16,210,78,70,176,40,38,80,218,124,114,167,80,20,20,233,176,230,143,172, - 145,103,244,244,23,121,80,212,136,142,159,168,215,55,25,170,197,241,57,66,92,250,89,155,96,53,235,19,1,172,170,42,121,157,16,50,102,233,210,165, - 43,26,53,106,68,138,139,139,169,209,104,180,174,90,181,202,10,0,95,124,241,5,191,115,231,206,130,173,91,183,34,62,62,158,110,219,182,109,44,165, - 116,165,171,125,102,48,24,12,6,131,241,191,9,33,132,82,74,137,125,8,209,19,128,158,82,250,148,209,170,44,162,229,176,96,41,165,20,70,163,177, - 148,211,168,105,193,241,195,200,86,170,81,200,19,162,238,199,19,81,38,145,67,36,18,249,232,245,250,146,234,152,44,187,238,153,50,142,182,32,74,221, - 167,165,37,70,244,137,241,71,131,96,249,4,0,8,110,104,158,208,100,168,22,55,118,202,112,115,183,223,167,22,147,174,5,165,244,77,23,76,86,187, - 225,195,135,47,30,51,102,12,17,8,4,144,203,229,36,58,58,90,176,127,255,126,113,92,92,156,184,110,221,186,130,205,155,55,163,160,160,0,17,17, - 17,214,218,181,107,47,100,137,240,12,6,131,193,96,48,92,192,8,60,202,203,82,150,239,63,137,163,138,240,229,56,52,90,28,199,37,157,57,115,70, - 175,238,18,123,59,215,204,33,207,196,161,198,187,227,16,247,227,143,104,61,126,98,246,197,139,23,77,28,199,37,85,213,59,66,72,119,135,191,208,227, - 231,164,98,163,158,184,185,131,199,231,139,1,128,39,164,98,0,200,185,38,212,187,89,185,159,171,161,57,121,209,162,69,226,155,55,111,162,176,176,208, - 18,23,23,71,19,18,18,204,123,246,236,193,134,13,27,176,123,247,110,115,124,124,60,45,43,43,179,4,6,6,10,6,15,30,44,4,48,217,165,126, - 254,5,152,38,211,100,154,76,147,105,50,77,166,249,143,71,90,33,47,203,211,190,61,5,33,36,216,62,108,24,252,228,239,28,38,195,107,52,154,89, - 19,38,76,216,251,235,134,245,231,77,101,6,174,244,96,92,163,251,91,182,160,253,55,51,30,118,29,54,188,118,100,100,100,129,70,163,153,85,157,158, - 206,232,20,241,134,222,96,238,75,57,107,171,158,109,107,123,15,234,16,229,86,98,177,32,49,75,181,15,0,114,110,136,246,149,229,137,63,109,55,218, - 234,118,81,104,205,107,58,40,178,132,71,8,120,60,254,25,158,144,191,243,194,198,27,187,156,72,207,110,216,176,97,135,241,227,199,11,126,252,241,71, - 75,122,122,250,103,53,106,212,152,186,102,205,154,160,162,162,34,204,159,63,191,176,168,168,104,70,88,88,216,194,193,131,7,211,85,171,86,153,1,204, - 174,78,223,25,12,6,131,193,96,252,79,210,13,192,62,66,72,63,0,123,236,199,28,37,196,199,82,74,87,217,135,16,31,203,43,119,104,180,40,165, - 153,82,169,244,219,129,175,13,253,114,242,228,201,169,125,127,63,121,77,38,147,249,95,188,120,81,18,25,25,89,80,84,84,52,157,82,154,89,157,158, - 126,62,118,136,128,154,141,124,88,205,65,212,98,230,149,20,149,96,213,238,51,106,43,176,24,0,44,148,191,248,236,18,239,183,95,30,47,244,24,50, - 91,44,21,64,36,21,16,137,73,192,19,9,44,58,190,208,153,46,165,244,12,33,164,231,248,241,227,39,3,152,77,41,61,227,238,238,222,79,167,211, - 5,233,116,58,104,52,154,27,148,210,149,132,144,59,243,230,205,123,212,166,58,125,103,48,24,12,6,131,241,63,73,60,0,55,216,146,224,221,42,107, - 88,177,142,22,240,103,50,188,211,181,14,117,58,221,78,66,200,197,175,191,254,122,202,55,223,124,19,8,91,2,216,85,141,70,51,171,186,38,11,0, - 126,92,119,224,129,206,96,184,199,81,122,197,96,52,72,18,110,63,136,163,28,183,252,15,29,205,2,0,93,246,237,135,210,208,152,232,251,127,88,222, - 175,219,202,210,91,44,178,138,248,124,83,41,143,199,187,39,16,11,50,222,251,201,185,182,221,56,61,90,187,80,163,209,204,238,223,191,127,121,93,136, - 31,28,181,97,48,24,12,6,131,193,168,2,35,254,204,205,82,218,143,61,21,209,170,108,173,195,74,23,149,182,27,170,49,127,161,131,143,152,112,40, - 225,4,170,40,171,175,203,186,145,5,224,43,251,246,204,216,77,21,139,90,49,24,12,6,131,193,248,43,72,1,84,44,208,105,114,214,176,98,53,120, - 135,75,240,48,24,12,6,131,193,96,48,30,163,27,108,145,172,242,173,155,163,70,132,144,209,21,102,30,174,170,104,186,8,0,135,51,7,40,165,71, - 92,237,197,179,204,62,168,74,159,105,50,77,166,201,52,153,38,211,100,154,255,62,205,170,180,171,227,63,158,55,132,16,138,199,115,179,156,214,209,170, - 24,197,122,108,159,82,250,220,54,0,221,153,38,211,100,154,76,147,105,50,77,166,201,52,255,137,27,0,195,147,91,37,109,71,151,111,21,143,87,154, - 163,197,96,48,24,12,6,131,241,63,140,195,186,89,142,160,78,18,226,93,206,209,34,132,248,11,133,194,175,100,50,217,114,153,76,182,82,40,20,206, - 39,132,120,187,250,252,114,20,10,197,184,224,224,224,187,193,193,193,153,97,97,97,7,60,60,228,159,212,115,35,29,9,33,78,75,56,84,163,143,60, - 66,72,20,33,228,19,153,76,118,71,42,149,166,19,66,54,18,66,62,33,132,248,253,21,237,89,161,100,224,173,79,250,239,158,21,74,6,62,241,154, - 177,65,65,65,167,9,33,61,255,90,239,255,100,152,156,116,31,172,32,25,131,21,36,99,152,252,217,139,194,121,120,120,188,17,18,18,114,206,207,207, - 47,43,36,36,228,140,84,42,29,84,157,231,19,66,2,130,130,130,190,175,85,171,86,82,104,104,232,98,71,133,216,254,78,116,116,35,29,218,184,145, - 130,182,18,162,110,47,33,203,219,74,72,143,158,132,200,158,69,139,16,210,158,16,178,195,211,211,243,170,80,40,220,79,8,25,96,191,190,6,8,133, - 194,253,158,158,158,87,9,33,59,8,33,237,159,65,155,71,8,249,158,16,146,69,8,249,214,190,255,81,173,90,181,212,77,154,52,73,111,210,164,201, - 186,136,136,136,55,93,213,147,203,229,61,106,213,170,181,51,44,44,44,189,109,219,182,197,53,106,212,72,172,89,179,230,122,55,55,183,206,174,245,103, - 48,63,32,172,241,171,126,181,155,44,10,9,111,57,195,195,191,110,221,234,158,19,131,193,96,252,75,41,207,205,210,87,120,252,20,21,115,178,158,218, - 119,33,108,214,7,192,28,0,203,174,95,191,158,64,41,77,160,148,38,92,191,126,61,1,192,114,0,115,225,36,132,248,228,113,95,95,223,233,179,102, - 205,210,231,228,228,208,130,130,2,154,148,148,68,23,77,153,200,189,228,35,160,117,253,189,181,193,193,193,247,195,106,212,216,210,80,193,155,8,160,94, - 117,194,149,0,188,165,82,233,133,41,83,166,104,78,159,62,173,49,26,141,26,142,227,52,217,217,217,154,35,71,142,104,218,181,107,167,1,240,41,0, - 254,179,132,64,103,132,224,36,253,249,107,58,35,4,39,43,30,175,95,191,254,109,142,227,232,192,129,3,13,0,66,255,74,88,53,20,112,107,232,1, - 175,65,10,228,89,214,207,164,244,199,241,116,144,28,25,207,162,25,16,16,176,103,220,184,113,170,172,172,44,106,48,24,104,70,70,6,29,51,102,140, - 50,32,32,96,147,139,239,167,111,76,76,76,222,185,115,231,184,210,210,82,122,226,196,9,174,81,163,70,121,0,130,93,184,102,186,63,209,151,85,33, - 33,33,7,170,179,5,4,4,172,169,238,223,168,149,4,25,166,132,227,148,94,138,167,123,7,182,161,139,90,212,160,3,124,196,165,237,197,248,168,19, - 32,168,198,181,52,184,83,167,78,101,55,110,220,176,22,21,21,209,219,183,111,115,239,190,251,174,30,192,173,119,223,125,87,127,251,246,109,174,168,168, - 136,222,184,113,195,218,169,83,167,50,0,163,92,237,39,108,55,55,107,167,77,155,70,41,165,116,214,172,89,180,113,227,198,180,107,215,174,84,163,209, - 80,74,105,58,165,116,157,197,98,25,233,138,166,167,167,231,27,227,198,141,211,104,181,90,90,14,199,113,180,180,180,148,46,91,182,172,44,40,40,232, - 0,0,191,202,206,221,205,63,178,77,171,46,253,150,93,191,115,111,229,79,95,77,88,233,30,24,177,194,59,40,114,137,119,80,228,0,63,191,6,114, - 87,175,185,103,185,230,153,38,211,100,154,76,243,239,190,193,86,206,193,233,144,161,189,205,104,103,251,149,14,29,18,66,134,77,156,56,241,179,161,67, - 135,162,113,227,198,5,31,125,244,145,181,78,157,58,124,0,72,77,77,213,0,120,225,242,229,203,190,59,118,236,232,70,8,241,163,148,110,174,68,203, - 187,109,219,182,227,222,121,231,29,73,167,78,157,96,50,153,112,238,220,57,124,50,115,46,105,123,239,24,212,119,18,164,225,203,127,175,155,88,172,173, - 187,243,195,161,67,188,20,238,179,66,130,131,85,102,139,101,101,97,97,225,20,106,239,185,19,237,87,27,52,104,176,126,235,214,173,68,36,18,97,235, - 214,173,152,62,125,58,138,138,138,80,183,110,93,116,236,216,17,199,143,31,199,134,13,27,102,124,254,249,231,111,19,66,26,83,74,173,149,157,187,171, - 220,187,119,239,216,205,155,55,27,204,153,51,71,188,115,231,206,143,1,124,225,164,143,158,94,94,94,173,9,33,145,148,210,164,210,210,210,243,148,82, - 101,36,33,10,169,39,188,219,213,174,43,91,49,172,187,249,65,161,202,227,244,197,4,49,45,83,1,39,119,60,83,159,188,188,188,222,24,57,114,100, - 151,185,115,231,42,172,86,43,204,102,51,124,125,125,241,253,247,223,123,104,52,154,87,164,82,233,171,58,157,238,183,202,52,252,252,252,62,94,186,116, - 169,111,237,218,181,201,205,155,55,161,211,233,200,152,49,99,252,103,204,152,49,30,192,103,213,233,15,143,199,11,91,187,118,173,183,175,175,47,204,102, - 51,154,53,107,86,126,33,34,62,62,30,38,147,9,102,179,25,253,251,247,7,96,51,255,13,26,52,168,246,140,88,10,16,170,211,0,9,135,209,177, - 69,12,58,212,244,194,176,166,101,158,187,174,165,45,221,118,59,179,59,33,164,111,101,215,81,57,66,161,240,253,117,235,214,73,87,173,90,101,222,191, - 127,191,190,101,203,150,226,229,203,151,75,86,173,90,21,109,52,26,241,254,251,239,27,46,93,186,100,124,229,149,87,220,214,174,93,43,13,15,15,127, - 13,192,26,23,187,249,237,180,105,211,222,154,58,117,42,78,157,58,133,201,147,39,99,242,100,219,138,80,101,101,101,232,214,173,27,138,139,139,161,86, - 171,205,169,169,149,47,37,234,238,238,222,239,131,15,62,88,62,103,206,28,121,197,227,132,16,200,229,114,140,24,49,66,214,187,119,239,94,93,187,118, - 189,78,8,137,161,148,22,57,210,241,244,80,180,24,249,250,107,162,64,93,9,26,27,243,113,107,235,15,60,121,157,72,201,207,75,150,118,95,176,121, - 127,48,128,101,46,158,27,131,193,96,252,171,176,47,191,163,7,224,86,190,20,15,165,212,224,160,105,220,19,81,173,184,71,143,42,115,171,19,38,76, - 72,160,148,38,76,158,60,57,1,182,200,150,8,128,194,190,9,0,12,157,52,105,82,2,165,52,97,226,196,137,9,0,250,56,115,188,0,250,108,223, - 190,221,180,120,241,98,26,24,24,72,131,130,130,232,146,37,75,40,199,113,52,119,255,38,122,180,1,232,157,175,70,80,74,41,77,154,253,33,61,218, - 0,52,101,197,12,58,124,248,112,173,76,38,27,230,204,69,3,240,105,222,188,185,90,167,211,105,214,175,95,175,145,201,100,151,0,68,3,16,194,54, - 171,82,1,224,205,232,232,104,213,205,155,55,53,155,55,111,214,0,152,238,138,51,7,80,15,64,23,185,92,62,96,82,168,48,153,254,252,53,157,20, - 136,27,0,26,1,240,183,183,9,153,56,113,34,165,148,210,154,53,107,158,114,114,238,158,49,49,49,19,147,147,147,167,154,205,230,169,87,174,92,153, - 26,25,25,249,101,223,58,193,109,118,15,235,209,76,57,99,108,51,186,224,179,152,249,47,191,216,125,203,144,206,195,222,122,193,239,244,219,1,110,218, - 215,60,249,234,161,178,199,116,92,186,131,8,13,13,189,144,145,145,65,181,90,45,85,171,213,84,173,86,211,172,172,44,154,154,154,74,79,159,62,77, - 131,131,131,143,86,165,25,20,20,116,59,35,35,131,174,88,180,136,14,108,84,159,118,244,114,167,157,188,221,105,11,133,91,89,3,160,69,21,206,190, - 251,19,90,135,175,94,189,154,0,32,1,64,66,81,81,81,66,81,81,81,66,73,73,201,163,99,0,18,148,74,101,130,82,169,76,48,26,141,9,117, - 235,214,61,232,202,223,168,226,214,206,13,237,90,185,161,184,141,4,186,62,161,126,217,99,235,248,89,207,15,107,67,75,62,232,74,23,55,11,165,237, - 197,248,200,197,191,123,31,177,88,124,2,192,120,0,124,0,35,122,245,234,165,165,148,210,94,189,122,105,1,140,176,31,255,68,32,16,28,1,208,203, - 149,126,2,224,133,135,135,151,81,106,139,100,1,56,27,30,30,94,214,184,113,99,218,184,113,99,90,179,102,77,53,128,17,85,189,159,229,91,189,122, - 245,146,116,58,29,165,148,82,131,193,64,75,75,75,105,118,118,54,77,73,73,161,183,110,221,162,151,46,93,162,233,233,233,116,219,182,109,86,47,47, - 175,56,103,154,110,254,145,109,90,117,234,179,44,110,194,135,43,239,253,186,114,165,193,66,87,234,213,218,149,105,187,183,172,172,85,43,250,71,47,175, - 23,60,92,185,238,92,189,62,171,179,49,77,166,201,52,255,119,52,255,142,27,170,145,12,239,84,163,252,193,254,253,251,233,19,226,223,93,190,124,57, - 97,210,164,73,9,120,34,36,246,68,187,209,147,39,79,46,31,74,156,227,172,93,104,104,232,154,164,164,36,58,98,196,8,26,21,21,69,163,162,162, - 232,200,145,35,169,82,169,164,154,123,55,233,209,6,160,151,94,107,65,41,165,84,125,231,10,61,218,0,52,97,120,91,122,237,218,53,90,163,70,141, - 248,74,94,127,223,153,51,103,10,54,109,218,148,11,96,163,221,96,181,6,176,68,42,149,174,133,109,184,176,54,0,239,136,136,136,98,173,86,171,25, - 56,112,160,6,64,173,74,52,59,69,69,69,221,95,179,102,13,205,207,207,167,197,197,197,116,94,187,72,74,127,254,154,206,106,81,155,91,177,98,133, - 97,252,248,241,101,62,62,62,251,1,132,12,28,56,208,66,41,165,29,59,118,204,115,164,231,229,229,213,43,57,57,121,170,94,175,159,90,90,90,58, - 181,184,184,120,234,222,221,187,167,190,212,40,114,132,114,198,216,102,187,135,245,104,246,114,168,247,128,133,61,91,190,151,245,229,168,129,147,219,70,223, - 209,207,253,248,248,224,58,129,223,63,203,133,225,239,239,159,99,48,24,40,128,167,182,251,247,239,83,95,95,223,140,170,52,124,124,124,38,127,50,116, - 136,245,213,218,161,244,254,226,41,212,124,120,51,53,31,88,79,239,125,247,25,237,27,228,167,106,45,226,77,114,181,63,65,65,65,135,47,92,184,240, - 152,209,42,41,41,113,104,180,84,42,85,130,209,104,76,8,15,15,63,248,44,231,94,113,107,45,70,221,78,82,254,165,43,35,58,208,130,177,93,105, - 47,79,97,250,95,248,176,13,133,173,224,238,240,106,62,143,7,96,110,185,161,250,238,187,239,40,165,148,134,135,135,151,1,224,253,133,254,120,214,175, - 95,63,117,212,168,81,150,6,13,26,228,183,107,215,174,244,226,197,139,244,228,201,147,244,192,129,3,116,199,142,29,244,230,205,155,52,43,43,139,38, - 37,37,209,216,216,216,82,0,157,28,107,13,226,123,6,215,127,75,30,16,185,242,202,134,213,43,245,122,211,202,140,131,123,87,94,154,240,246,202,26, - 33,17,46,27,45,182,177,141,109,108,251,171,219,147,94,228,239,176,193,54,116,248,104,171,238,243,121,0,16,23,23,71,99,99,99,73,92,92,28,5, - 108,195,92,0,220,90,180,104,81,48,119,238,220,5,212,86,124,139,52,22,144,193,221,100,194,107,221,100,194,107,141,5,100,48,33,132,80,74,87,205, - 158,61,123,102,227,198,141,115,96,91,229,58,8,14,160,148,118,240,245,245,69,70,70,6,60,61,61,225,233,233,137,140,140,12,80,74,97,161,128,153, - 2,6,147,9,58,157,14,122,142,66,199,1,42,141,6,65,65,65,48,153,76,14,147,115,9,33,77,94,123,237,181,186,49,49,49,5,19,38,76,200, - 6,48,10,192,218,119,222,121,231,240,217,179,103,99,52,26,77,241,173,91,183,244,141,26,53,234,5,32,40,57,57,249,141,101,203,150,97,196,136,17, - 0,208,201,137,102,163,216,216,216,3,55,111,222,172,59,124,248,112,156,56,113,2,243,230,205,67,97,97,161,205,218,26,12,212,106,181,154,218,182,109, - 107,90,188,120,241,139,29,59,118,188,80,97,56,245,158,19,205,200,176,176,48,24,12,6,20,20,20,224,230,205,155,112,247,244,196,245,236,194,192,206, - 11,87,20,125,181,251,176,112,232,139,49,62,159,246,104,103,248,54,254,68,68,116,72,96,160,209,100,14,74,202,201,203,118,164,87,21,34,145,40,163, - 176,176,16,70,163,17,58,157,14,42,149,10,69,69,69,40,44,44,68,118,118,54,68,34,209,253,170,52,60,138,139,79,165,158,57,73,182,253,244,29, - 234,90,138,33,216,185,4,130,61,203,81,207,88,128,149,83,198,184,27,125,253,167,121,122,120,148,120,123,123,175,34,132,132,87,165,215,172,89,51,20, - 21,21,161,168,168,8,190,190,190,240,246,246,134,183,183,55,74,75,75,161,84,42,161,82,169,16,17,17,129,38,77,154,96,195,134,13,207,114,218,79, - 113,206,64,83,44,176,142,61,156,152,13,145,92,142,58,222,138,176,23,221,137,143,179,246,132,144,174,34,145,104,187,175,175,111,60,33,228,3,66,136, - 156,16,242,129,175,175,111,188,80,40,236,15,96,22,165,116,83,53,187,241,237,180,105,211,38,38,39,39,203,174,93,187,134,9,19,38,96,250,244,233, - 184,119,239,222,15,148,82,206,254,186,239,251,249,249,237,231,243,249,171,9,33,189,9,33,189,66,66,66,28,22,197,171,64,255,241,227,199,235,155,55, - 111,158,116,231,206,157,254,103,206,156,105,241,217,103,159,41,31,60,120,128,164,164,36,4,7,7,163,102,205,154,208,104,52,40,41,41,65,255,254,253, - 61,61,60,60,134,57,18,162,116,187,85,8,96,205,151,239,81,57,172,72,253,121,1,178,143,239,193,214,248,179,212,68,73,82,73,73,170,10,0,252, - 253,163,229,161,33,225,23,106,134,68,228,149,111,1,65,145,57,242,128,134,1,213,124,79,24,12,6,227,41,158,244,34,127,7,8,33,47,193,133,100, - 248,202,112,152,163,37,147,201,166,157,58,117,170,205,168,81,163,74,174,95,191,190,13,0,98,248,24,212,191,109,211,181,159,141,126,93,198,233,52,152, - 179,114,203,90,92,79,6,128,237,0,246,183,104,209,226,139,21,43,86,4,183,105,211,230,67,0,147,29,200,218,50,214,189,189,161,215,235,65,8,129, - 155,155,27,56,142,131,86,171,71,153,21,176,234,141,80,42,149,208,217,247,57,131,9,101,101,101,143,158,235,128,206,163,70,141,42,88,182,108,153,53, - 39,39,231,39,0,141,70,140,24,209,111,233,210,165,88,176,96,129,126,230,91,111,248,122,22,102,142,140,230,243,57,179,16,91,18,205,152,124,234,212, - 41,140,30,61,26,132,144,33,0,126,121,82,80,42,149,46,223,178,101,139,244,214,173,91,232,219,183,239,173,204,204,204,153,0,174,78,15,198,90,0, - 29,44,69,185,183,62,252,240,195,117,205,155,55,31,59,116,232,80,185,86,171,13,232,219,183,47,50,50,50,144,149,149,117,214,81,39,41,165,73,87, - 174,92,105,17,20,20,68,82,82,82,144,152,152,40,221,179,103,79,67,43,143,231,149,105,117,119,27,223,46,162,116,120,235,166,250,77,231,174,138,78, - 39,166,122,125,214,189,189,247,213,135,57,114,51,65,149,134,200,17,106,181,122,201,204,153,51,27,124,251,237,183,138,226,226,98,228,231,231,131,82,10, - 55,55,55,204,155,55,79,83,92,92,188,180,42,141,16,55,193,231,223,127,246,14,17,220,62,11,92,59,249,232,184,225,110,2,214,249,136,241,227,206, - 223,196,145,81,81,226,75,151,46,141,26,61,122,244,16,66,72,11,74,105,178,51,61,251,93,1,120,188,199,83,175,8,33,224,241,120,106,74,169,86, - 46,151,155,21,10,5,120,60,158,144,58,30,3,175,54,60,11,76,224,243,1,177,20,60,161,243,148,68,66,200,224,33,67,134,252,176,104,209,34,137, - 68,34,33,27,55,110,108,49,113,226,196,79,191,251,238,59,239,55,222,120,67,104,48,24,232,167,159,126,218,137,16,50,158,82,234,178,19,12,15,15, - 255,112,234,212,169,152,55,111,30,182,108,217,2,157,78,167,189,119,239,222,26,0,83,8,33,31,133,135,135,15,254,240,195,15,221,150,44,89,130,188, - 188,188,160,221,187,119,7,88,173,214,43,227,198,141,187,90,133,116,251,158,61,123,98,236,216,177,0,144,67,41,125,16,25,25,105,201,206,206,70,211, - 166,77,241,226,139,47,34,55,55,23,26,141,6,165,165,165,8,11,11,3,199,113,109,156,137,113,132,90,45,20,200,59,123,24,239,254,126,215,92,100, - 129,21,32,167,249,22,126,60,96,51,89,30,30,226,243,51,99,219,70,53,240,149,243,1,128,114,28,62,223,122,188,232,162,210,224,5,32,223,213,247, - 132,193,96,48,254,65,28,196,159,139,74,59,45,245,240,228,172,67,160,138,69,165,221,220,220,188,155,53,107,134,58,117,234,120,95,191,126,93,0,192, - 228,43,22,124,249,233,168,161,50,69,194,65,168,245,6,12,233,208,80,150,144,152,250,37,108,70,75,16,22,22,38,105,214,172,25,220,221,221,107,56, - 233,199,137,220,220,220,240,102,205,154,225,206,157,59,0,128,232,232,104,152,76,38,40,213,106,155,177,50,115,80,42,149,208,20,228,65,107,5,68,238, - 190,72,79,79,7,159,207,119,150,21,28,92,175,94,189,130,213,171,87,91,1,156,2,48,103,250,244,233,152,52,105,18,150,45,91,182,101,128,28,115, - 183,28,57,224,139,43,199,208,127,210,162,161,137,102,250,197,195,135,15,225,229,229,5,185,92,30,225,72,176,99,199,142,205,229,114,57,214,175,95,79, - 51,51,51,219,81,74,213,0,48,51,148,80,0,144,242,160,164,148,46,33,132,252,114,247,238,221,29,31,127,252,113,72,235,214,173,241,238,187,239,2, - 192,126,71,154,165,165,165,231,223,252,63,246,206,59,44,170,107,107,227,239,158,62,48,3,51,244,46,42,130,136,138,138,189,97,193,26,123,239,70,163, - 38,70,175,137,38,246,4,196,168,49,26,99,202,53,137,137,37,106,52,138,98,215,168,216,43,22,20,165,35,69,80,122,153,206,244,217,223,31,48,92, - 84,202,144,228,126,55,101,126,207,115,30,152,57,251,188,179,246,153,115,102,214,236,189,246,90,51,102,180,93,185,114,37,175,188,188,92,112,252,248,241, - 177,235,215,175,103,119,234,212,169,244,113,124,252,208,185,179,103,233,112,254,250,225,159,110,223,191,236,110,47,24,211,204,217,17,199,226,18,57,70,38, - 238,214,209,239,106,186,113,88,115,248,44,50,223,72,77,238,76,194,200,87,25,232,119,50,157,97,167,155,155,219,24,141,70,51,120,206,156,57,66,59, - 59,59,100,102,102,98,223,190,125,138,184,184,184,35,26,141,230,100,67,186,70,19,237,232,211,180,9,112,238,74,245,115,58,19,197,93,45,7,195,223, - 121,15,94,222,62,208,104,52,104,219,182,45,137,140,140,20,188,255,254,251,75,81,57,162,88,39,175,58,89,0,12,132,144,18,74,169,68,161,80,40, - 109,108,108,52,28,14,7,101,101,101,60,250,7,44,86,32,132,48,122,241,240,65,143,182,254,0,207,6,207,74,21,121,119,229,180,172,182,182,118,118, - 118,111,109,219,182,141,255,221,119,223,233,82,82,82,76,187,118,237,226,253,235,95,255,114,213,233,116,152,61,123,182,38,48,48,144,177,109,219,54,254, - 153,51,103,198,2,104,244,144,155,94,175,71,124,124,252,103,148,210,21,85,182,125,176,102,205,154,201,17,17,17,0,128,67,135,14,161,176,176,16,227, - 198,141,131,167,167,39,34,34,34,16,25,25,89,87,191,108,219,181,107,23,226,228,228,132,171,87,175,230,81,74,159,17,66,58,118,236,216,209,110,212, - 168,81,104,213,170,21,148,74,37,116,58,93,181,163,229,229,229,5,177,88,236,84,151,125,58,208,51,139,55,127,239,97,164,112,7,112,182,44,63,229, - 188,121,159,217,201,90,55,162,115,160,219,139,36,230,188,99,249,101,121,122,166,1,0,180,38,98,50,153,56,146,198,158,15,43,86,172,88,249,139,208, - 13,141,40,42,253,106,134,120,160,202,209,50,15,213,13,27,54,236,165,180,242,175,126,49,26,203,139,32,81,170,144,45,85,33,167,220,244,210,62,147, - 233,229,199,175,146,151,151,119,242,246,237,219,111,133,132,132,176,242,242,42,103,196,66,66,66,160,82,169,144,247,40,22,74,19,32,104,17,12,165,82, - 137,242,164,135,16,182,235,14,167,97,211,240,197,55,223,104,74,75,75,191,175,77,147,203,229,178,189,189,189,139,51,51,51,13,0,202,68,34,209,160, - 38,77,154,224,202,149,43,0,240,51,5,54,35,238,50,112,53,26,180,114,72,69,232,235,235,139,162,162,34,40,20,138,43,181,105,222,190,125,59,77, - 175,215,183,29,57,114,36,217,179,103,207,33,66,72,56,128,199,171,220,193,124,148,91,8,165,17,124,66,200,64,7,7,135,247,35,34,34,194,22,46, - 92,136,19,39,78,224,252,249,243,58,84,198,130,221,126,85,147,82,42,37,132,108,255,240,195,15,187,49,24,140,119,46,92,184,96,8,8,8,144,233, - 116,58,99,203,192,64,70,120,228,90,206,130,119,230,137,75,85,72,28,220,210,163,7,33,64,226,139,162,103,105,242,218,87,137,153,233,195,99,157,154, - 212,187,93,232,91,147,70,8,5,45,90,67,249,36,214,125,123,212,153,47,250,218,176,134,23,86,24,70,137,68,162,241,87,174,92,89,160,213,106,155, - 243,120,188,167,18,137,228,75,185,92,222,160,147,197,98,177,134,5,251,120,59,72,202,202,192,175,26,137,146,233,77,40,209,24,144,44,14,192,148,42, - 39,171,184,184,24,5,5,5,112,119,119,39,70,163,113,68,125,154,231,207,159,199,240,225,195,1,0,18,137,4,132,16,16,66,74,2,3,3,11,121, - 60,94,41,135,195,145,109,222,188,89,173,86,171,193,98,177,248,70,163,145,217,144,157,245,209,85,64,92,67,109,200,183,111,143,236,55,160,125,235,86, - 244,218,189,71,164,92,165,222,93,87,123,185,92,254,111,127,127,127,86,89,89,217,73,0,201,122,189,126,255,161,67,135,248,211,167,79,87,71,69,69, - 77,5,224,183,101,203,150,241,10,133,162,206,10,237,181,145,158,158,254,239,245,235,215,47,95,189,122,53,246,238,221,187,16,192,10,0,240,247,247,31, - 21,17,17,129,205,155,55,99,239,222,189,166,228,228,228,51,38,147,41,125,201,146,37,237,220,220,220,74,242,243,243,211,235,114,180,0,116,26,50,100, - 136,230,198,141,27,92,185,92,126,157,16,242,254,252,249,243,231,116,237,218,85,62,105,210,36,65,89,89,153,196,214,214,150,187,99,199,14,7,22,139, - 5,165,82,9,66,8,228,114,185,182,54,49,23,151,214,2,71,30,206,16,6,241,165,20,48,152,76,147,60,125,2,223,207,203,77,249,165,166,147,229, - 254,34,137,185,243,81,78,89,150,158,187,171,40,47,109,89,99,206,131,21,43,86,172,52,68,93,190,200,255,18,74,105,44,106,113,172,94,229,165,218, - 134,85,255,191,54,162,85,179,131,42,149,170,48,39,39,167,213,139,23,47,12,0,12,0,80,170,53,124,186,126,71,244,206,177,221,252,5,249,122,61, - 142,221,75,80,149,106,13,159,86,29,110,120,241,226,133,252,217,179,103,118,21,21,21,138,58,236,184,245,237,183,223,86,92,190,124,217,46,35,35,3, - 70,163,17,29,59,118,68,106,106,42,202,147,227,33,104,213,17,130,62,195,145,240,224,30,226,206,199,32,75,161,53,164,124,180,94,170,80,42,35,180, - 90,237,177,218,4,217,108,118,89,101,95,42,71,63,100,50,217,99,133,66,209,219,205,205,13,137,137,137,2,165,17,139,198,175,252,226,107,74,169,145, - 83,185,82,108,241,164,73,147,112,255,254,125,0,184,95,155,166,76,38,91,56,119,238,220,203,63,253,244,19,43,35,35,99,240,206,22,236,177,68,0, - 0,32,0,73,68,65,84,157,59,7,167,164,164,80,82,150,99,188,161,98,195,111,230,162,206,223,249,6,158,31,62,124,56,60,60,60,176,99,199,14, - 124,249,229,151,250,119,223,125,55,237,203,47,191,236,12,96,127,109,186,148,82,41,128,95,157,157,157,23,180,105,211,70,174,84,42,81,90,90,138,188, - 188,60,56,58,57,49,12,96,244,112,17,139,247,159,44,144,11,88,191,222,65,236,243,252,122,71,179,186,115,88,51,38,247,237,16,250,175,213,43,133, - 184,113,12,100,110,4,232,206,79,240,222,155,227,237,212,154,253,125,58,177,88,211,165,6,195,62,0,141,202,17,65,8,25,210,187,119,239,95,214,175, - 95,111,179,106,211,122,108,105,229,5,67,105,41,138,53,70,148,104,12,144,149,39,35,49,49,1,78,78,206,200,202,202,130,90,173,70,82,82,18,101, - 50,153,245,58,112,122,189,190,230,107,128,193,96,200,1,72,120,60,94,41,155,205,46,100,177,88,101,25,25,25,74,181,90,13,6,131,33,48,26,141, - 54,22,216,234,237,236,236,188,4,192,88,0,39,228,37,37,95,133,176,33,6,11,125,155,187,58,13,253,232,237,233,206,77,60,93,37,25,105,79,245, - 223,159,187,89,162,214,224,211,186,180,40,165,167,80,99,68,146,16,242,94,84,84,212,28,0,187,104,101,221,173,24,0,223,53,100,83,45,124,116,228, - 200,145,229,171,87,175,134,141,141,77,117,242,84,27,27,27,62,0,28,56,112,0,137,137,137,93,205,241,90,0,126,177,64,211,47,56,56,56,35,58, - 58,154,11,192,115,254,252,249,221,191,254,250,107,188,249,230,155,69,9,9,9,93,41,165,153,132,16,191,119,222,121,231,238,222,189,123,29,76,38,19, - 202,203,203,161,213,106,107,29,25,182,181,49,253,240,113,79,159,142,207,74,203,152,79,95,20,98,222,184,145,88,126,252,193,119,118,158,45,31,54,21, - 243,207,157,57,246,147,111,206,174,173,184,159,252,180,226,172,194,62,171,180,48,109,229,111,56,15,86,172,88,177,210,32,127,70,103,203,18,94,29,197, - 170,201,75,83,135,230,142,169,213,234,127,251,250,250,138,0,248,0,24,14,224,196,99,35,14,35,37,27,241,89,207,87,2,149,142,215,99,99,245,151, - 248,196,187,119,239,106,155,54,109,250,8,192,39,117,24,33,115,118,118,94,183,100,201,146,13,235,214,173,99,177,88,44,92,190,124,25,183,207,157,54, - 37,93,143,37,217,21,198,10,217,189,15,95,176,168,241,142,91,69,217,147,135,42,28,161,148,62,175,175,99,74,165,50,39,61,61,157,219,166,77,27, - 227,195,135,15,157,41,165,71,207,156,57,211,123,217,178,101,184,114,229,202,254,11,106,227,20,74,77,135,8,33,44,0,83,70,140,24,241,254,248,241, - 227,209,190,125,123,29,234,152,254,161,148,222,32,132,76,201,205,205,221,190,116,233,82,241,210,165,75,193,96,48,72,205,115,85,82,82,130,71,143,30, - 97,210,164,73,210,155,55,111,46,10,11,11,155,221,171,87,47,156,61,123,214,179,62,123,1,128,16,114,43,41,41,105,140,72,36,34,233,233,233,144, - 201,100,184,113,227,6,219,215,215,183,199,161,67,135,120,205,155,55,71,194,147,39,56,51,101,202,48,66,136,47,165,244,89,109,58,54,108,178,96,230, - 132,17,66,205,141,147,64,220,53,0,128,66,38,71,69,86,60,198,119,241,183,191,146,148,61,31,149,171,48,27,133,163,163,227,123,91,182,108,17,4, - 4,4,224,131,245,155,176,100,245,50,188,227,234,11,217,139,28,148,24,1,174,173,45,214,125,180,26,35,38,76,130,171,171,43,158,60,121,66,119,236, - 216,161,148,74,165,155,235,211,53,59,90,76,38,19,132,16,0,80,74,165,82,5,151,203,149,178,88,172,82,163,209,88,120,234,155,175,58,50,74,11, - 103,17,66,152,54,38,198,169,170,197,22,181,198,231,137,9,241,109,225,231,247,228,199,29,59,4,93,187,118,37,247,238,221,91,48,127,222,220,57,99, - 131,155,157,25,61,32,20,238,30,238,26,147,78,43,57,115,226,148,254,187,168,51,87,181,196,180,244,1,165,21,150,158,7,74,233,47,168,225,244,16, - 66,38,3,152,0,32,154,82,250,51,33,100,38,128,209,0,142,212,21,32,79,8,97,0,248,97,220,184,202,98,2,21,21,21,42,243,243,237,218,181, - 171,249,90,245,15,7,191,130,173,173,173,29,159,207,127,122,246,236,89,155,73,147,38,57,108,216,176,225,197,155,111,190,233,181,127,255,254,127,3,200, - 34,132,4,2,104,161,84,42,141,12,6,3,129,129,129,216,182,109,155,194,104,52,238,170,77,207,134,24,155,245,25,62,130,105,163,146,192,80,161,128, - 42,55,11,77,213,133,2,185,141,40,110,205,232,30,182,249,155,22,163,160,195,96,236,97,167,203,148,164,124,252,31,49,173,107,197,138,21,43,117,241, - 103,118,178,8,33,188,218,98,136,107,155,50,52,83,107,140,22,165,52,151,16,82,18,31,31,223,225,240,225,195,31,19,66,60,40,165,223,161,50,30, - 43,234,85,241,21,43,86,204,27,59,118,44,58,117,234,244,152,82,90,88,151,129,37,37,37,155,217,108,118,55,91,91,219,209,71,143,30,85,82,74, - 99,202,75,75,207,186,115,141,143,114,43,240,168,177,95,56,0,178,31,60,120,224,208,169,83,39,195,158,61,123,124,1,236,93,186,116,233,218,251,247, - 239,219,93,187,118,173,207,138,21,43,242,93,92,92,42,130,131,131,109,102,204,152,129,69,139,22,97,249,242,229,72,73,73,153,69,235,249,210,165,148, - 30,38,132,156,190,114,229,202,108,46,151,219,223,207,207,175,217,104,63,183,32,187,38,77,89,73,231,78,42,247,164,23,239,1,144,140,202,47,98,165, - 88,44,158,41,22,139,13,114,185,188,214,248,159,87,206,193,222,25,51,102,132,173,90,181,202,142,195,225,144,248,248,120,122,228,200,17,135,91,183,110, - 241,124,124,124,136,92,46,135,111,211,166,216,252,249,231,252,153,51,103,126,0,224,95,181,233,232,77,212,219,206,187,41,200,156,143,171,159,179,91,82, - 233,235,228,174,158,6,157,137,250,52,226,60,86,163,213,106,59,53,109,218,20,42,149,10,54,54,54,24,49,115,14,62,217,186,25,51,219,180,1,67, - 111,132,49,191,0,210,135,247,85,159,60,124,148,162,2,241,97,50,153,39,36,18,201,231,148,210,90,87,92,154,25,57,114,36,164,82,41,8,33,104, - 221,186,53,4,2,129,158,195,225,104,55,110,220,168,201,202,202,82,157,250,230,171,142,97,254,158,17,239,109,223,196,55,150,23,99,195,230,111,230,255, - 250,40,45,22,175,92,111,102,4,78,142,159,252,248,227,143,130,208,208,80,2,0,221,187,119,39,235,54,124,202,59,184,227,123,191,183,60,125,238,223, - 143,189,173,63,126,38,70,125,47,41,109,219,77,53,14,214,229,176,153,233,104,71,156,4,12,70,164,64,36,30,173,144,73,142,234,77,166,240,219,50, - 90,14,0,132,144,137,1,1,1,159,164,166,166,218,4,5,5,181,33,132,12,110,213,170,85,215,164,164,36,155,160,160,160,214,132,16,54,165,180,182, - 105,201,13,107,214,172,153,181,122,245,234,234,149,134,85,206,215,71,227,199,87,86,67,170,168,168,80,3,64,7,33,113,182,103,49,54,216,59,185,140, - 150,149,22,31,147,25,76,171,30,42,104,201,171,130,77,185,164,101,136,200,118,212,238,165,243,219,53,51,86,60,26,54,104,192,221,105,211,166,225,204, - 153,51,217,0,154,56,57,57,93,27,48,96,128,195,144,33,67,80,82,82,34,18,8,4,216,182,109,155,234,244,233,211,95,105,181,218,90,29,66,22, - 192,49,26,77,144,63,186,14,229,179,76,24,12,70,116,119,36,204,229,195,250,219,234,83,227,161,145,203,113,50,250,180,182,168,176,116,153,58,63,53, - 167,190,243,104,197,138,21,43,127,55,170,126,243,155,157,63,53,33,132,95,151,179,85,243,113,181,227,85,79,222,136,17,203,151,47,127,64,41,53,231, - 210,154,94,75,155,145,171,87,175,126,64,41,125,176,108,217,178,7,120,61,153,232,107,9,205,0,172,217,182,109,27,229,241,120,63,254,198,124,22,53, - 19,120,186,143,30,61,186,155,76,38,235,236,230,230,214,25,149,142,163,143,179,179,115,198,254,253,251,21,21,21,21,10,74,169,194,96,48,40,238,223, - 191,175,232,219,183,175,2,149,1,219,164,33,59,95,221,86,185,227,198,189,143,222,162,171,220,113,227,149,99,167,237,218,181,235,108,102,102,230,73,123, - 123,251,101,150,104,2,240,113,113,113,9,119,116,116,60,231,236,236,188,202,209,209,49,95,167,211,209,242,242,114,154,154,154,74,175,92,185,66,111,223, - 190,77,29,29,29,159,215,101,103,152,13,235,78,249,166,5,212,180,107,61,213,126,189,146,2,160,146,173,43,104,201,183,145,244,222,220,193,180,47,159, - 121,171,177,231,147,82,10,177,88,252,195,209,163,71,77,233,233,233,244,212,169,83,244,244,233,211,116,209,162,69,180,165,167,135,166,27,151,81,216,155, - 199,58,247,91,18,150,106,52,154,7,50,153,236,129,66,161,120,16,20,20,244,160,75,151,46,209,221,186,117,251,34,42,42,234,189,13,27,54,140,10, - 179,227,165,170,98,162,40,93,58,148,210,5,189,232,211,57,125,105,127,27,214,163,58,53,221,220,158,107,52,26,74,41,165,74,165,146,94,187,118,141, - 94,186,116,137,186,59,59,203,66,109,152,243,122,242,208,167,167,61,196,150,218,217,79,196,216,125,231,219,79,141,21,103,247,210,3,51,135,26,250,138, - 25,219,106,180,59,72,41,205,31,55,110,92,22,165,52,255,200,145,35,185,148,210,252,177,99,199,102,81,74,243,1,252,82,155,230,43,201,73,119,161, - 50,167,214,130,53,107,214,60,160,148,62,88,179,102,205,3,160,50,137,106,31,17,227,167,216,237,155,77,154,211,63,209,168,217,195,140,125,68,140,159, - 106,181,83,204,58,25,183,107,43,213,158,251,153,30,93,52,213,216,203,221,254,106,64,64,192,230,247,222,123,47,250,246,237,219,143,141,70,99,98,70, - 70,70,226,55,223,124,147,216,173,91,183,155,78,78,78,241,92,46,247,221,250,250,222,169,153,255,165,91,159,175,162,169,75,70,211,187,131,155,208,91, - 253,189,233,181,80,79,122,177,135,27,189,60,176,37,221,60,188,191,209,199,167,85,84,99,175,165,63,98,179,106,90,53,173,154,255,28,205,191,194,6, - 160,43,106,73,90,138,122,242,141,214,185,222,157,82,122,146,16,34,160,148,46,25,63,126,60,54,110,220,56,177,109,219,182,147,189,188,188,92,0,32, - 47,47,79,5,64,54,126,252,120,132,135,135,99,211,166,77,95,208,202,88,150,255,55,40,165,5,132,16,239,133,11,23,22,109,216,176,193,52,123,246, - 236,86,148,210,39,132,144,150,83,167,78,93,192,98,177,198,251,250,250,6,231,231,231,23,87,84,84,252,12,96,59,173,252,98,108,52,60,6,140,157, - 154,122,224,28,3,213,211,38,132,144,161,225,225,225,147,198,142,29,171,219,186,117,171,65,38,147,157,176,208,238,92,0,107,205,143,157,156,156,220,31, - 61,122,244,174,171,171,43,35,35,35,3,26,141,6,233,233,233,38,0,199,235,210,80,24,232,87,223,29,185,16,184,100,218,112,123,85,242,67,112,152, - 76,232,217,92,20,220,57,135,93,215,146,101,74,29,26,76,225,80,27,18,137,228,243,69,139,22,77,93,182,108,25,223,215,215,151,220,186,117,11,135, - 14,29,210,20,21,21,13,161,148,94,253,45,154,64,229,98,9,46,151,11,0,88,177,98,5,24,12,6,187,168,168,136,75,8,225,17,66,108,9,33, - 76,125,102,34,76,178,114,20,150,75,144,91,88,255,66,54,163,201,116,40,54,54,118,113,135,14,29,24,247,238,221,67,113,113,49,210,211,211,169,145, - 210,95,174,170,12,141,10,88,7,0,91,71,167,209,237,29,120,12,238,238,112,132,106,25,204,239,77,24,7,96,65,213,238,93,132,16,14,128,210,160, - 160,160,126,85,35,89,21,201,201,201,103,9,33,94,0,126,170,77,211,198,198,166,4,64,201,145,35,71,0,96,46,165,212,68,8,233,24,17,17,145, - 127,237,218,53,172,89,179,166,16,192,54,0,16,58,56,141,12,22,113,8,119,207,26,116,215,128,241,181,137,214,186,184,64,232,234,214,191,141,128,1, - 246,206,143,209,217,61,144,193,53,232,218,70,70,70,94,83,40,20,154,131,7,15,106,103,205,154,197,76,75,75,187,11,224,58,42,167,53,13,13,245, - 189,88,135,95,46,198,165,244,155,209,173,37,144,149,1,163,65,9,202,99,131,99,43,66,138,209,150,126,247,164,36,57,215,192,127,179,113,103,212,138, - 21,43,86,254,126,208,58,130,227,169,165,49,90,181,28,120,128,16,82,178,105,211,166,254,0,236,163,162,162,58,181,108,217,18,0,144,154,154,106,27, - 24,24,152,210,174,93,187,36,0,119,40,165,13,174,102,171,194,252,193,223,216,105,194,186,72,88,182,108,25,217,187,119,175,1,168,116,130,170,190,92, - 190,2,240,85,125,113,62,191,151,128,128,128,129,31,127,252,177,118,231,206,157,198,79,62,249,228,4,173,39,143,84,125,148,149,149,109,153,62,125,250, - 212,136,136,8,145,157,157,29,137,143,143,55,237,218,181,75,86,86,86,182,165,174,99,98,181,134,131,125,120,172,177,18,101,212,192,137,33,77,237,146, - 22,14,67,106,236,117,252,124,53,81,158,86,86,113,254,158,193,112,232,183,216,66,41,77,39,132,180,15,15,15,95,161,211,233,198,178,217,236,187,50, - 153,44,146,82,90,107,142,48,75,208,235,245,133,205,155,55,127,245,117,244,38,147,137,82,74,217,6,131,65,224,168,51,157,142,248,114,231,59,179,2, - 69,188,146,18,9,246,164,201,52,53,22,91,188,70,113,113,241,23,115,230,204,121,51,34,34,194,193,222,222,158,36,36,36,208,131,7,15,42,138,75, - 75,55,254,22,27,85,229,101,231,79,29,142,26,223,75,107,32,251,178,228,148,197,36,103,107,216,122,1,192,5,0,32,132,76,35,132,140,3,112,140, - 82,250,90,30,182,151,52,85,170,243,0,184,227,198,141,67,124,124,252,68,0,7,0,252,178,118,237,218,110,225,225,225,136,140,140,68,68,68,196,64, - 0,231,228,229,165,167,163,127,249,121,74,95,189,158,177,47,91,110,98,50,200,153,90,53,75,10,47,156,189,16,51,178,179,189,39,249,225,220,117,147, - 202,68,31,206,156,57,179,92,171,213,158,3,240,53,128,120,74,105,173,171,11,235,34,231,69,250,174,67,183,176,86,64,13,238,253,218,247,6,87,169, - 128,180,180,20,103,159,73,141,63,103,20,165,169,148,154,158,180,60,211,226,248,54,43,86,172,88,249,187,64,8,233,131,202,170,32,125,41,165,87,95, - 153,70,172,217,174,206,60,90,141,25,46,115,119,116,116,220,213,188,121,243,40,95,95,223,40,161,80,248,5,0,159,198,14,45,2,240,91,191,126,189, - 76,36,18,181,255,141,195,118,181,105,186,2,240,2,224,244,71,105,190,186,173,245,192,194,180,101,19,31,173,245,192,194,26,199,117,105,213,170,213,167, - 0,222,248,45,154,175,180,247,117,116,116,252,198,209,209,241,185,163,163,227,55,0,124,45,209,236,196,100,78,237,199,103,222,234,193,101,20,244,227,51, - 111,117,102,50,167,52,242,117,255,20,67,202,0,72,48,19,19,250,219,176,30,245,183,97,61,10,102,98,2,106,76,241,214,241,190,123,59,59,59,111, - 117,116,116,204,115,118,118,174,245,156,89,106,103,123,27,120,244,23,51,143,245,176,35,202,254,34,230,145,78,182,112,251,189,125,7,16,178,102,205,154, - 55,41,165,111,122,122,122,142,55,247,19,64,112,120,120,248,112,74,233,112,15,15,143,48,74,41,186,216,194,181,175,152,185,191,167,61,145,244,21,51, - 247,119,177,133,107,93,118,246,19,51,15,245,180,39,146,80,123,198,254,38,60,52,253,35,222,35,4,5,113,220,220,252,195,155,121,250,103,55,243,244, - 151,250,120,248,167,216,185,6,188,15,47,47,254,95,237,90,178,106,90,53,173,154,127,77,205,63,227,86,233,38,189,254,183,81,26,255,101,3,255,18, - 111,174,85,211,170,105,213,180,106,90,53,173,154,86,205,255,173,230,159,113,171,233,88,161,170,102,112,29,237,230,213,216,60,106,238,171,119,234,208,138, - 21,43,86,172,88,177,98,229,159,10,173,49,77,72,107,153,50,172,177,175,58,70,139,16,50,143,16,82,253,28,1,48,160,142,131,44,14,108,39,132, - 212,170,81,31,13,233,91,53,173,154,86,77,171,166,85,211,170,105,213,252,251,105,54,164,221,24,255,227,191,13,33,228,181,24,239,186,28,174,26,113, - 90,167,105,205,133,119,255,229,33,183,191,196,112,165,85,211,170,105,213,180,106,90,53,173,154,86,205,255,173,230,159,117,67,35,227,178,80,53,133,104, - 126,108,157,58,180,98,197,138,21,43,86,172,88,169,3,90,207,148,161,153,87,86,29,190,52,162,85,171,163,197,238,186,190,208,96,48,184,2,0,139, - 197,42,210,223,253,200,163,190,23,96,3,97,6,224,199,42,193,185,250,202,229,240,175,106,94,48,24,12,14,85,154,229,250,187,31,13,174,87,179,203, - 186,115,47,181,143,93,61,176,150,158,49,217,93,214,229,189,98,107,131,101,112,170,169,165,148,200,127,195,206,191,138,230,63,25,78,183,245,133,122,125, - 229,117,196,102,179,138,116,177,245,95,71,156,174,235,242,94,106,127,103,181,91,125,154,182,54,188,210,22,94,46,95,212,167,153,145,87,178,68,169,82, - 59,213,167,217,216,123,211,199,195,35,204,88,117,111,50,129,185,185,121,121,255,63,247,166,133,16,66,58,1,248,8,128,125,141,167,227,41,165,239,255, - 86,77,43,86,172,88,249,163,168,145,222,193,76,95,90,75,78,73,218,216,60,90,6,131,193,245,193,209,8,40,53,64,216,140,117,174,126,163,183,191, - 86,40,217,160,46,231,74,18,14,6,51,245,50,7,23,150,206,62,47,47,143,84,25,245,35,128,38,181,104,58,60,56,26,1,149,22,8,157,28,233, - 208,4,176,47,230,112,62,176,17,8,250,85,84,84,180,1,0,27,27,155,132,10,165,242,178,139,78,183,229,213,246,117,117,160,166,173,253,167,175,115, - 109,53,122,251,34,163,201,196,125,113,239,251,80,117,73,26,139,109,208,108,91,5,156,141,0,44,170,207,246,210,235,78,88,233,196,6,250,115,249,252, - 246,98,7,135,222,38,74,131,76,38,19,49,26,12,137,50,169,244,186,201,96,120,100,208,42,157,30,156,248,212,84,159,157,175,246,101,2,192,58,10, - 140,23,8,133,253,152,108,118,15,0,48,234,245,183,148,10,197,229,49,192,97,75,250,110,233,249,249,173,237,255,105,232,245,6,215,204,115,17,208,232, - 129,144,113,159,186,182,155,186,103,63,0,104,139,30,185,41,210,78,116,5,0,65,139,225,177,60,247,144,66,0,96,61,203,119,77,61,181,26,26,61, - 16,52,60,210,181,33,205,89,225,135,156,150,205,27,203,3,128,243,71,254,221,242,82,244,119,67,1,160,255,216,249,103,7,141,91,152,10,0,155,126, - 136,118,250,229,211,137,245,106,90,118,111,74,57,210,180,83,254,90,89,190,216,71,192,114,79,75,75,99,0,128,167,167,167,69,247,166,55,32,202,7, - 22,48,152,204,222,45,252,253,67,0,208,140,167,79,227,140,6,195,13,15,96,219,31,124,45,45,162,244,229,228,172,85,181,48,173,252,77,32,132,244, - 118,23,8,6,217,113,56,97,84,169,132,194,100,186,88,96,48,156,167,148,94,255,61,154,66,119,193,32,174,29,39,76,166,151,128,170,232,69,67,17, - 126,175,102,168,189,189,251,64,30,79,56,160,162,130,97,210,235,101,23,53,154,130,11,191,71,211,202,223,130,43,148,82,66,8,89,67,41,93,83,21, - 179,213,168,15,169,58,167,14,149,26,224,106,58,208,167,91,59,204,155,250,134,176,230,190,195,219,35,155,164,221,59,222,106,231,158,45,140,118,237,218, - 33,51,51,211,162,23,83,105,129,43,105,0,36,73,118,229,2,193,211,173,155,55,219,15,28,56,144,229,233,233,9,66,8,10,10,10,186,197,196,196, - 116,90,188,120,241,59,144,36,149,171,180,144,95,177,32,5,168,217,214,54,45,155,226,163,133,19,69,0,176,106,198,182,78,247,82,10,29,159,62,125, - 26,182,124,249,242,82,230,229,203,223,57,3,187,11,129,92,75,236,220,123,50,150,47,202,63,224,55,109,225,194,35,254,254,254,66,95,95,95,98,103, - 103,7,38,147,137,242,242,242,38,9,9,9,67,99,99,99,149,49,87,127,228,222,191,59,50,163,136,223,85,109,81,223,43,242,248,231,237,236,18,166, - 143,25,227,61,113,226,68,126,139,22,45,0,0,79,159,62,13,56,124,248,240,228,35,71,142,132,163,34,207,160,210,66,221,80,223,171,53,1,240,129, - 30,98,87,215,105,76,54,187,141,193,96,240,2,0,22,139,245,194,168,215,39,72,138,138,126,126,181,189,149,215,209,232,129,164,124,96,64,239,16,76, - 31,59,64,0,0,203,39,173,239,246,44,43,157,163,213,106,209,50,48,168,231,39,159,126,113,14,12,6,246,69,199,84,183,183,68,51,62,41,19,17, - 159,108,69,222,227,195,221,140,210,244,126,114,153,148,9,0,246,34,209,216,195,7,15,92,246,12,30,127,39,189,68,103,145,102,125,247,230,175,7,191, - 241,120,254,228,114,235,111,207,239,98,55,105,210,4,143,31,63,182,168,239,213,215,134,52,197,206,228,225,145,184,101,233,82,247,208,208,80,8,133,66, - 176,88,44,24,12,134,1,55,110,220,24,16,17,17,49,31,210,20,165,165,247,166,5,108,33,132,244,155,53,111,145,199,27,163,198,99,236,144,158,127, - 136,168,149,255,61,132,16,55,127,71,199,83,91,22,45,106,57,180,127,127,129,151,175,47,76,69,69,200,77,77,237,124,234,198,141,69,1,124,126,106, - 186,70,51,156,214,83,31,183,54,77,103,127,199,83,75,182,44,106,217,127,104,127,65,83,47,95,228,168,179,145,250,44,185,243,205,179,119,22,113,154, - 177,82,245,217,198,70,107,186,185,249,159,90,190,252,139,150,3,7,14,19,248,248,120,162,168,200,132,180,180,103,93,46,95,62,249,158,157,93,64,170, - 66,145,222,40,77,43,127,43,250,154,3,226,9,33,17,0,250,54,86,160,86,71,139,197,98,21,13,156,185,193,181,119,215,182,184,247,40,85,154,157, - 147,175,48,239,43,75,56,220,114,84,79,175,214,215,174,93,133,70,163,193,173,91,183,240,232,209,35,100,101,101,225,237,183,223,214,176,128,185,117,104, - 150,135,78,142,116,128,52,77,24,192,77,105,22,147,156,204,84,171,213,184,118,237,26,202,203,203,193,229,114,225,237,237,141,65,131,6,177,146,147,147, - 29,195,6,14,17,133,14,153,146,9,81,128,130,197,98,149,215,217,1,22,171,40,108,198,58,215,214,1,77,241,52,59,79,250,209,167,59,21,38,19, - 101,101,100,61,211,93,189,122,21,33,33,33,184,112,225,130,83,89,89,217,199,219,182,109,251,136,253,217,183,95,233,181,165,31,214,163,87,30,58,57, - 210,193,169,40,202,247,210,175,199,56,9,9,9,156,239,191,255,30,165,165,165,224,114,185,16,139,197,112,119,119,71,203,150,45,201,170,85,171,132,195, - 135,39,224,95,115,199,251,234,252,230,164,212,101,103,117,223,21,207,108,157,101,231,91,68,159,62,205,232,213,171,215,75,30,113,243,230,205,49,120,240, - 96,254,180,105,211,90,76,156,60,213,20,58,108,214,83,8,125,85,13,106,42,115,109,156,84,183,61,7,76,158,124,34,50,50,82,236,238,238,14,129, - 64,0,0,144,74,165,222,217,217,217,221,194,195,195,199,197,198,31,100,133,14,207,205,131,192,167,162,190,243,249,79,133,205,102,21,153,71,145,236,4, - 54,229,185,207,11,149,0,160,213,106,161,213,106,161,209,104,240,238,252,183,153,115,199,117,241,247,237,189,232,97,214,139,194,178,160,152,59,142,230,99, - 27,210,100,169,178,36,146,156,139,115,35,150,46,117,119,115,251,207,140,224,190,189,123,153,101,101,101,3,34,34,34,90,83,219,190,146,160,225,145,226, - 250,52,235,187,55,37,169,167,155,125,178,112,112,251,237,159,158,130,209,104,196,237,219,183,113,237,218,53,124,241,197,23,244,236,217,179,82,123,129,160, - 129,123,51,197,174,151,71,129,223,103,159,29,33,60,30,15,199,143,31,71,114,114,50,24,12,6,218,181,107,135,233,211,167,99,192,128,1,238,243,230, - 189,77,67,135,76,202,128,40,80,254,123,174,165,170,2,219,139,86,70,124,230,49,99,206,2,108,250,100,149,213,209,250,155,64,8,105,218,210,199,231, - 230,165,221,187,61,60,236,236,128,248,120,32,33,1,250,243,231,209,210,199,7,173,250,247,23,76,234,222,61,100,208,167,159,198,17,66,122,82,74,179, - 45,209,108,210,210,231,230,222,75,187,61,68,30,118,72,70,60,46,33,1,123,36,219,225,235,221,28,125,222,31,40,232,58,182,99,200,166,81,95,55, - 70,179,89,211,166,45,111,236,223,31,227,225,224,224,137,204,76,224,238,93,138,139,23,77,240,240,8,196,232,209,173,4,125,250,76,10,249,248,227,65, - 113,132,144,174,148,210,231,127,204,25,178,242,87,161,106,154,208,162,24,45,74,233,15,132,16,15,0,195,170,142,173,76,239,64,41,197,233,211,167,205, - 203,23,251,14,27,54,236,42,8,97,248,141,222,190,255,211,85,115,133,43,55,252,168,200,56,246,246,84,0,16,1,77,154,119,232,144,126,233,210,37, - 86,122,122,58,246,236,217,163,10,8,8,184,215,188,121,243,178,193,3,7,202,154,248,250,74,95,228,231,47,3,165,175,151,215,33,132,209,20,176,43, - 177,181,77,79,78,78,118,78,76,76,196,253,251,247,225,231,231,7,7,7,7,176,217,108,232,245,122,200,100,50,4,6,6,130,199,227,161,99,199,142, - 37,78,74,165,127,54,32,175,67,147,9,0,129,163,191,95,188,110,229,91,194,143,63,221,37,77,62,246,246,215,142,64,128,111,135,14,9,43,87,174, - 100,104,52,26,152,76,38,4,7,7,195,211,211,19,238,222,77,75,244,26,165,123,213,25,124,125,58,177,242,195,31,222,94,94,133,9,9,9,206,193, - 193,193,40,42,42,130,88,44,134,72,36,130,88,44,174,222,154,53,107,134,37,75,150,192,195,195,163,168,66,173,246,168,210,172,181,239,29,1,94,154, - 64,144,114,245,234,85,159,144,144,144,90,223,40,181,90,13,149,74,133,184,184,56,140,27,55,46,55,64,169,12,124,0,104,234,210,180,5,58,180,8, - 14,62,123,241,226,69,103,123,123,123,20,20,20,64,38,147,129,197,98,193,214,214,22,206,206,206,224,243,249,0,128,180,180,52,12,27,54,172,36,63, - 35,99,168,10,120,88,171,230,63,153,170,107,233,85,124,221,220,6,233,8,57,242,205,55,223,240,187,118,237,138,139,23,47,98,246,155,111,110,48,2, - 225,47,53,172,253,90,98,2,0,15,8,235,220,171,215,217,207,62,251,140,193,227,241,16,21,21,133,248,248,120,16,66,208,185,115,103,204,153,51,7, - 0,240,246,219,111,155,46,157,61,59,84,3,92,172,71,179,214,123,83,12,120,247,26,62,60,37,58,58,154,159,155,155,139,209,163,71,191,72,78,72, - 88,201,7,226,59,2,25,87,0,93,149,102,173,215,146,55,32,50,121,120,36,30,57,114,196,189,160,160,0,31,124,240,65,201,243,103,207,150,11,42, - 107,38,66,9,244,246,109,222,252,179,125,251,246,57,251,251,251,35,36,36,164,192,152,147,211,250,57,32,253,45,215,82,149,147,181,99,101,196,103,179, - 102,204,89,128,189,59,182,225,211,200,229,185,148,82,31,66,72,12,165,212,26,67,248,23,133,16,66,188,4,130,39,177,71,143,182,246,84,169,128,187, - 119,129,202,149,88,208,159,60,105,110,4,198,128,1,200,114,118,166,253,34,35,147,94,232,245,109,105,213,114,173,186,52,237,189,4,79,142,199,30,109, - 173,245,84,33,30,119,65,81,217,252,251,103,149,161,143,4,4,67,108,71,195,53,207,155,174,27,178,37,201,80,72,27,210,100,136,68,30,9,103,207, - 62,104,101,50,185,33,37,133,154,205,196,217,179,38,179,153,232,214,141,192,198,38,155,46,93,218,47,65,173,126,222,174,62,77,43,191,143,215,124,145, - 63,1,141,41,193,67,95,201,165,101,126,204,48,63,57,108,216,48,130,151,3,190,94,163,130,201,220,176,105,211,38,150,90,173,198,206,157,59,229,19, - 198,141,139,234,211,187,119,70,51,95,95,9,97,48,26,252,176,45,230,241,222,219,180,105,147,88,171,213,226,254,253,251,232,212,169,19,220,221,221,33, - 20,10,33,20,10,225,234,234,138,192,192,64,20,21,21,193,206,206,14,203,150,45,19,21,243,120,239,53,164,107,50,81,22,0,24,77,38,46,7,152, - 231,215,185,243,253,240,240,112,134,147,147,19,28,29,29,33,20,10,145,156,156,12,173,86,11,91,27,91,139,86,90,50,24,12,134,80,40,196,165,75, - 151,176,104,209,34,244,232,209,3,98,177,24,118,118,118,104,211,166,13,6,13,26,132,185,115,231,34,35,35,3,196,130,160,146,68,22,107,193,220,185, - 115,93,235,115,178,36,18,9,138,139,139,225,237,237,141,241,227,199,187,38,178,88,11,106,109,12,192,9,112,247,14,8,56,113,247,238,93,103,129,64, - 128,125,251,246,225,216,177,99,248,245,215,95,113,230,204,25,156,58,117,10,199,143,31,71,113,113,49,0,32,32,32,0,135,14,29,114,22,186,186,158, - 114,2,220,45,57,7,86,128,103,133,133,231,219,20,20,56,79,155,58,245,186,66,161,192,180,105,211,176,97,227,198,85,108,96,177,37,199,7,2,34, - 71,15,143,221,159,125,246,25,163,160,160,0,99,198,140,41,217,178,113,227,91,113,231,206,181,120,240,235,175,45,54,68,70,190,213,167,79,159,146,231, - 207,159,99,239,222,189,12,183,38,77,118,7,2,162,198,218,41,7,22,125,249,229,151,124,181,90,141,129,3,7,102,152,18,18,2,13,192,1,5,144, - 92,237,100,213,67,62,176,96,217,178,101,238,60,30,15,31,124,240,65,137,234,217,179,182,6,96,143,20,200,150,2,217,6,96,143,60,51,179,237,140, - 25,51,74,120,60,30,182,110,221,234,158,255,159,162,219,22,65,8,233,68,8,57,65,8,185,10,32,111,214,188,69,179,66,186,116,55,59,89,187,1, - 76,32,132,252,12,160,206,17,103,43,127,9,38,172,26,53,202,219,195,198,166,16,177,177,101,168,205,47,161,20,234,115,231,202,248,64,246,196,206,157, - 189,0,76,104,72,115,218,138,169,222,14,238,162,194,120,196,150,153,157,172,151,36,65,113,86,118,172,76,224,32,204,238,53,181,187,37,154,147,38,77, - 250,216,211,214,214,173,48,41,137,150,213,97,38,174,92,209,148,41,149,188,172,14,29,38,248,0,24,223,128,166,149,223,137,37,190,200,255,51,87,170, - 28,171,134,108,58,93,149,168,116,94,213,10,196,211,230,29,213,142,86,149,39,89,239,220,163,131,147,83,167,182,109,219,226,214,173,91,8,14,14,190, - 43,22,139,13,28,30,15,28,30,15,212,212,240,143,90,27,129,32,108,192,128,1,172,59,119,238,192,207,207,15,54,54,54,224,114,185,224,112,56,213, - 27,159,207,135,135,135,7,100,50,25,194,194,194,216,54,2,65,88,131,194,0,158,165,61,17,22,223,249,108,206,143,63,237,254,246,208,161,131,54,77, - 154,52,129,157,157,29,156,156,156,224,236,236,140,166,77,155,86,78,1,233,169,204,18,61,163,209,104,100,50,153,240,243,243,195,134,13,27,176,123,247, - 110,92,185,114,5,39,78,156,192,146,37,75,208,185,115,103,60,121,242,4,177,177,177,176,228,23,142,157,72,244,198,196,137,19,185,181,237,211,104,52, - 144,74,165,144,74,165,144,72,36,200,207,207,71,247,238,221,185,118,34,209,27,117,233,105,248,252,113,123,247,238,117,229,114,185,48,153,76,144,203,229, - 200,201,201,65,108,108,172,250,216,177,99,138,211,167,79,171,174,95,191,174,190,117,235,22,5,0,153,76,6,66,8,134,15,31,238,84,193,229,78,180, - 228,28,88,169,228,60,160,9,210,106,71,116,237,210,37,46,35,35,3,239,189,247,30,198,77,154,244,153,45,208,190,161,99,51,94,113,96,232,179,103, - 193,58,96,79,49,144,93,12,100,235,128,61,134,204,204,224,154,14,76,70,35,29,24,0,176,19,137,58,123,120,120,224,226,197,139,200,201,202,90,158, - 8,52,170,8,52,131,201,236,21,26,26,138,19,39,78,224,249,179,103,203,139,129,226,87,219,20,3,197,217,25,25,203,119,239,222,141,65,131,6,129, - 201,98,245,106,164,153,139,40,165,35,40,165,161,148,82,183,93,219,191,194,153,227,135,205,78,214,28,74,233,93,74,233,116,74,233,147,70,234,90,249, - 19,33,98,50,223,24,214,189,187,189,113,251,118,55,253,185,115,28,42,149,222,1,33,6,243,126,10,24,158,74,36,119,98,211,211,57,185,7,14,52, - 27,212,162,133,200,22,168,243,179,14,0,56,34,246,27,161,195,122,218,159,213,29,117,123,170,74,227,232,140,218,59,64,13,77,66,12,164,132,125,71, - 243,76,207,57,254,226,80,179,86,131,90,136,24,182,245,107,178,217,162,193,189,122,13,183,143,138,50,185,93,188,104,226,200,229,52,22,64,181,166,201, - 68,13,169,169,79,239,156,59,119,135,243,203,47,47,154,251,249,13,20,1,194,122,87,228,90,249,253,88,226,139,252,47,168,10,136,175,243,187,158,82, - 154,79,41,253,161,198,86,29,109,219,168,17,45,87,87,87,47,161,80,136,188,188,60,4,181,106,85,196,227,241,192,101,179,193,231,214,234,63,188,134, - 74,165,10,246,244,244,132,84,42,133,179,179,243,75,14,86,77,135,203,206,206,14,12,6,3,77,154,52,129,74,165,10,110,80,183,240,137,235,193,175, - 231,191,123,251,234,217,230,99,198,140,133,131,131,35,124,124,188,225,234,234,10,27,27,27,248,248,248,160,69,139,22,116,203,150,45,176,117,109,119,215, - 18,91,107,58,79,44,22,11,70,163,17,133,133,133,72,73,73,65,124,124,60,110,223,190,141,135,15,31,66,46,151,195,146,145,100,85,69,69,123,22, - 235,245,193,52,141,70,3,137,68,2,137,68,82,237,104,21,23,23,35,59,59,27,10,165,178,67,93,122,14,78,78,99,219,182,109,203,4,0,27,27, - 27,116,232,208,1,219,183,111,55,156,60,118,108,82,235,219,183,29,125,206,157,19,255,248,253,247,147,198,143,31,111,188,115,231,14,100,50,25,146,146, - 146,224,226,226,194,226,242,249,86,71,171,145,60,0,148,206,114,249,144,30,61,122,100,74,165,82,108,222,188,153,193,182,179,251,33,18,168,117,202,177, - 26,38,179,167,217,129,201,123,246,108,197,179,90,28,152,103,64,113,78,70,198,10,179,3,67,88,172,70,7,42,117,235,214,173,173,201,100,194,227,199, - 143,33,6,98,27,123,124,11,127,255,16,243,200,175,121,186,176,54,4,192,245,184,184,56,216,216,216,32,168,117,235,142,141,124,153,45,132,144,252,217, - 111,191,135,232,95,111,2,0,118,255,240,117,33,42,157,44,235,84,246,223,4,54,208,203,213,215,23,52,59,27,208,233,132,134,235,215,187,25,111,222, - 44,2,144,86,76,105,218,173,236,236,162,188,194,194,110,148,82,161,54,63,31,158,206,206,96,3,245,58,237,12,54,163,151,143,155,15,10,76,47,96, - 132,65,152,173,201,232,246,66,157,93,196,164,172,52,27,165,93,26,205,36,69,21,210,138,110,148,82,97,145,54,31,206,158,206,0,187,1,77,6,21, - 31,142,147,0,0,32,0,73,68,65,84,167,135,143,143,43,242,242,40,244,122,8,111,222,164,93,99,99,105,17,165,36,77,42,45,78,139,137,185,89, - 148,154,250,162,27,165,84,248,252,185,6,142,142,158,0,26,253,227,194,74,35,249,179,141,104,209,87,74,240,212,149,83,171,230,104,86,141,81,45,0, - 53,28,45,11,95,16,0,192,102,179,193,229,241,192,229,114,43,29,36,30,207,98,13,66,8,248,124,126,181,99,85,211,193,170,249,191,173,173,173,69, - 14,12,0,148,167,255,218,123,206,91,179,185,60,30,15,90,173,6,148,82,240,120,124,136,197,98,248,249,249,65,38,147,161,71,207,62,154,92,9,231, - 148,83,208,232,248,198,244,217,140,193,96,128,82,169,68,121,121,57,202,202,202,32,147,201,80,81,81,97,241,82,116,147,201,196,204,205,205,197,129,3, - 7,80,90,90,10,160,50,208,218,236,92,153,255,102,102,102,98,223,190,125,200,202,202,2,26,241,254,244,238,221,27,167,78,157,98,246,13,11,219,113, - 193,215,55,239,130,175,111,94,223,176,176,29,39,78,156,96,122,121,121,33,59,59,27,247,239,223,71,121,121,185,69,201,215,172,188,206,83,160,92,85, - 86,54,123,213,170,85,84,40,20,98,243,231,159,183,95,15,76,169,239,152,154,14,140,168,30,7,70,244,251,28,24,80,74,97,50,153,96,52,90,148, - 197,228,53,8,33,132,205,102,55,54,181,130,197,141,107,6,190,47,251,120,3,206,28,63,108,222,149,102,117,178,254,94,24,1,38,209,235,81,115,202, - 208,32,151,35,249,248,113,156,42,40,64,69,205,207,117,74,1,157,14,166,6,126,176,80,35,101,26,97,4,106,76,25,170,141,106,92,76,60,135,138, - 251,6,152,180,53,218,130,66,15,29,168,169,129,31,65,160,12,131,129,188,52,179,41,147,25,241,227,143,41,120,244,232,36,76,166,255,12,10,87,153, - 9,128,54,234,59,211,202,63,7,243,72,214,171,255,3,85,171,14,171,60,200,234,191,117,81,88,88,248,66,169,84,54,247,245,245,197,243,231,207,93, - 155,52,105,242,140,203,102,131,195,229,130,48,26,190,254,108,109,109,31,231,229,229,245,244,242,242,130,193,96,168,118,170,216,108,118,245,198,225,112,0, - 84,142,210,60,124,248,16,182,182,182,143,161,174,55,115,2,140,218,242,166,29,59,118,172,30,25,170,12,86,23,129,199,227,99,245,234,213,166,173,91, - 182,108,107,210,63,82,250,230,226,85,116,213,250,29,13,218,217,24,44,253,98,178,181,181,125,236,227,227,211,93,36,18,33,58,58,26,217,217,217,40, - 47,47,135,74,165,130,70,163,129,74,165,130,86,171,5,159,207,71,235,214,173,97,111,111,143,152,152,152,199,208,104,106,213,43,47,45,141,126,252,248, - 113,247,46,93,186,84,127,152,244,235,215,143,244,235,215,207,217,252,88,165,82,161,164,164,4,119,239,222,69,76,76,12,8,33,72,75,75,51,106,42, - 42,126,249,189,253,254,167,162,6,110,49,119,239,222,245,206,59,239,188,213,179,103,79,24,129,161,0,246,213,213,254,191,237,192,152,185,125,251,246,19, - 163,209,216,179,101,203,150,144,0,93,1,28,111,204,241,79,211,211,227,12,6,67,88,251,246,237,17,29,21,213,27,64,173,43,182,148,64,239,144,144, - 16,84,84,84,32,41,49,241,129,37,218,181,5,190,239,254,225,235,220,93,219,191,242,129,5,241,99,86,254,90,24,129,219,133,105,105,19,221,189,188, - 64,37,18,69,161,193,144,148,94,84,212,145,154,76,158,42,153,12,169,132,24,236,249,252,88,47,141,38,200,198,217,89,152,147,155,11,35,112,187,62, - 77,147,129,222,206,40,120,58,209,201,213,13,114,42,87,148,23,151,39,165,102,165,116,52,81,147,167,172,66,6,146,69,12,124,1,63,214,232,166,9, - 114,228,56,11,115,115,114,65,140,13,104,154,116,119,51,50,10,125,93,93,221,32,147,81,69,105,105,65,82,74,74,122,71,163,145,122,202,100,42,16, - 146,106,224,243,237,99,53,26,175,32,87,87,91,225,139,23,185,0,244,141,30,45,182,98,57,150,250,34,255,159,88,154,176,180,170,237,75,1,241,102, - 26,229,157,75,203,203,31,196,197,197,161,99,199,142,120,250,244,105,23,106,50,177,56,92,46,184,28,14,24,22,124,145,84,40,149,23,47,94,188,104, - 232,208,161,3,20,10,5,88,44,214,75,163,89,92,46,23,108,54,187,122,213,220,209,163,71,117,21,74,229,197,134,116,77,70,147,145,193,96,84,127, - 153,73,36,18,168,84,21,216,176,97,3,190,217,178,101,170,17,88,204,22,184,52,42,102,229,143,70,173,82,93,58,115,230,140,190,121,243,230,152,53, - 107,22,22,47,94,140,197,139,23,227,157,119,222,193,172,89,179,48,125,250,116,140,25,51,6,93,187,118,133,139,139,11,82,82,82,244,106,149,234,82, - 93,122,60,181,250,200,204,153,51,139,204,14,154,82,169,132,92,46,135,84,42,69,113,113,49,110,222,188,137,189,123,247,98,203,150,45,56,122,244,40, - 52,26,13,116,58,29,30,62,124,88,46,208,235,163,254,63,251,254,119,131,13,68,223,184,113,3,142,142,142,240,244,246,238,83,95,219,42,7,6,237, - 219,183,135,20,232,93,87,59,233,111,112,96,106,162,148,203,239,101,102,102,162,111,223,190,240,240,246,254,172,53,96,211,152,227,141,6,195,245,27,55, - 110,96,198,140,25,240,109,222,252,51,23,192,229,213,54,46,128,75,179,22,45,62,155,53,107,22,206,159,63,15,163,193,80,231,8,221,43,129,239,217, - 214,192,247,127,14,50,163,49,230,220,221,187,229,134,161,67,115,238,20,21,233,210,138,139,187,82,147,233,63,113,19,148,178,100,106,117,215,68,64,199, - 236,219,55,229,114,102,102,169,10,168,183,136,176,94,174,143,185,121,238,118,121,8,237,150,115,239,193,61,93,114,102,82,87,19,253,143,38,5,101,85, - 40,213,93,117,25,208,117,99,247,77,73,187,156,89,106,82,53,160,169,151,93,186,117,235,92,89,151,46,134,156,216,216,219,186,196,196,180,174,70,35, - 253,143,38,5,75,173,150,117,165,52,81,215,171,23,35,37,43,235,114,41,80,247,103,178,149,191,31,102,39,203,60,101,104,14,138,175,122,254,213,182, - 243,204,127,127,215,212,161,141,209,184,242,195,15,63,212,51,24,12,140,29,59,214,238,248,137,19,227,31,62,122,228,87,84,84,36,54,26,141,13,106, - 185,104,52,95,125,248,225,135,18,173,86,139,192,192,64,148,149,149,193,104,52,130,197,98,129,197,98,129,16,2,6,131,1,161,80,136,184,184,56,236, - 218,181,75,230,162,209,124,213,144,174,209,104,124,188,111,223,62,48,153,76,202,231,243,65,8,1,139,197,194,214,173,91,139,190,1,162,1,128,201,96, - 104,1,128,193,248,79,0,101,3,52,56,111,105,14,68,183,164,173,131,70,243,229,166,77,155,228,73,73,73,80,42,149,213,163,111,10,133,2,50,153, - 172,250,49,33,4,74,165,18,39,78,156,144,59,104,52,95,214,165,87,10,20,60,79,75,27,217,165,75,151,210,204,204,76,72,165,82,60,126,252,24, - 49,49,49,56,116,232,16,206,159,63,143,244,244,116,24,12,6,120,121,121,129,82,138,99,199,142,73,13,114,249,208,82,160,192,194,115,240,143,164,169, - 187,123,152,155,171,107,142,139,179,243,243,166,238,238,175,45,198,16,1,169,169,169,169,48,24,12,240,243,243,115,172,47,78,139,26,12,55,204,14,140, - 79,243,230,27,125,107,113,96,124,1,23,223,22,45,54,154,29,24,106,48,220,104,172,205,118,192,215,75,151,46,173,224,112,56,56,120,240,160,159,222, - 223,63,153,5,76,17,2,173,250,2,156,134,142,247,0,182,125,252,241,199,5,132,16,252,252,243,207,206,162,22,45,158,176,128,153,34,160,169,8,104, - 202,2,102,138,90,180,120,114,240,224,65,103,131,193,128,197,139,23,23,120,0,219,234,145,172,25,248,238,99,13,124,255,71,177,119,249,177,99,229,241, - 105,105,62,246,131,7,59,214,58,219,65,8,188,186,119,119,76,45,46,110,185,253,201,19,41,128,189,13,105,238,90,185,175,252,209,147,135,62,161,162, - 48,71,6,121,93,147,128,160,179,123,119,199,194,244,226,150,247,183,91,166,185,119,239,135,210,184,184,39,62,253,251,219,59,50,24,175,15,22,16,2, - 244,232,225,229,88,92,156,218,242,201,147,237,229,168,103,244,218,202,223,18,115,86,248,62,64,165,227,85,215,10,196,87,2,225,95,154,58,36,181,197, - 65,177,187,174,47,4,168,107,159,110,237,112,239,81,138,212,217,193,254,156,121,95,89,194,225,150,253,131,237,219,125,251,237,183,96,179,217,200,205,205, - 69,98,98,34,236,237,237,49,117,234,84,77,133,92,62,210,92,235,144,16,50,128,82,26,83,165,89,89,79,77,154,38,108,193,138,111,254,235,153,83, - 76,145,72,4,133,66,1,6,131,1,62,159,15,91,91,91,216,216,216,224,254,253,251,24,54,98,148,177,216,54,180,58,97,169,185,158,90,77,77,115, - 158,162,174,128,109,28,240,129,171,167,231,135,31,125,244,145,205,224,193,131,193,225,112,224,221,52,160,192,111,200,230,175,25,12,98,120,94,42,91,221, - 162,169,167,40,49,45,27,0,169,172,137,88,149,167,168,54,59,155,104,175,250,29,221,179,197,190,67,135,202,120,116,137,68,130,194,194,66,20,21,21, - 65,34,145,64,169,84,2,0,78,157,58,133,51,215,146,101,21,222,227,51,234,178,243,63,125,79,177,243,212,197,54,219,191,111,15,211,197,197,5,133, - 133,133,40,46,46,134,68,34,65,69,69,5,140,70,35,202,202,202,176,115,247,30,99,169,48,52,203,156,16,178,94,77,101,174,141,163,226,166,87,72, - 107,95,250,214,91,111,217,217,219,219,195,100,50,161,188,188,28,57,57,57,200,204,204,196,181,107,215,148,69,18,45,148,206,3,159,155,19,150,214,122, - 62,255,32,254,146,154,53,242,104,121,122,120,228,61,123,246,204,213,104,52,194,203,203,203,32,41,43,219,200,5,206,219,1,249,0,104,9,240,209,151, - 95,127,61,123,212,168,81,232,220,185,115,110,65,97,97,179,218,174,37,16,194,12,4,68,42,111,239,132,187,119,239,186,231,228,228,96,198,140,25,37, - 207,158,62,93,97,142,215,146,2,189,125,91,180,216,120,240,224,65,231,230,205,155,35,56,56,184,128,159,147,211,38,165,50,63,85,109,215,103,157,247, - 166,36,245,116,179,249,99,218,118,126,247,221,119,97,48,24,112,237,218,53,196,198,198,226,217,179,103,184,121,243,166,196,94,32,152,100,174,117,88,215, - 245,57,52,64,233,247,243,207,251,8,135,195,193,238,221,187,17,23,23,7,0,8,9,9,193,172,89,179,96,48,24,48,109,218,116,122,58,197,38,163, - 190,235,147,16,210,22,192,231,168,116,242,58,83,74,249,132,144,60,0,62,141,137,201,250,75,94,75,86,77,16,66,218,121,139,197,167,15,207,158,237, - 33,98,50,137,228,214,45,104,243,242,144,32,149,194,214,213,21,78,109,219,66,170,215,211,15,99,98,242,138,85,170,225,148,210,120,75,52,29,189,197, - 167,231,31,158,237,193,17,49,201,61,201,45,20,104,243,80,250,84,10,23,190,43,130,156,218,66,39,209,211,147,139,99,242,148,133,22,107,182,23,139, - 125,78,206,158,125,208,147,201,116,32,183,110,73,144,151,167,133,84,154,0,55,55,91,4,7,59,67,173,46,167,151,46,45,123,161,82,21,13,161,148, - 38,53,164,249,123,249,39,107,254,217,48,231,204,170,235,111,45,237,171,71,177,94,139,209,122,149,154,245,212,214,125,7,209,203,101,62,230,230,29,222, - 30,201,234,213,59,180,85,228,154,8,70,151,46,93,224,227,227,131,144,144,16,228,228,228,240,196,98,113,67,245,212,20,161,67,166,100,182,107,215,78, - 188,98,197,10,209,160,65,131,216,62,62,62,160,148,34,46,46,14,209,209,209,186,29,59,118,200,84,110,35,36,15,46,31,80,88,82,79,45,22,80, - 1,88,235,157,151,247,195,130,249,243,35,58,116,236,248,214,154,53,107,24,66,91,27,246,134,213,115,248,0,176,238,223,135,68,163,198,79,197,151,254, - 64,159,41,181,215,145,171,105,103,206,243,185,207,222,24,19,230,255,193,194,217,198,137,19,39,10,236,237,237,225,227,227,3,7,7,7,100,100,100,224, - 249,243,231,244,228,201,147,138,219,15,83,217,199,206,223,123,198,23,121,88,82,151,80,30,58,120,66,214,27,111,188,225,48,115,230,76,187,78,157,58, - 177,121,60,30,120,60,30,10,11,11,145,158,158,174,59,121,242,164,66,229,58,180,252,193,229,131,114,11,107,29,86,132,78,142,76,191,126,97,205,226, - 132,199,143,167,155,128,246,58,157,206,203,104,52,18,6,131,145,111,50,153,30,235,228,242,93,154,144,53,91,173,181,14,45,195,104,52,114,140,70,35, - 36,18,9,46,92,184,192,122,250,244,233,71,143,30,61,250,40,47,47,15,122,189,30,227,198,141,67,72,72,8,46,95,190,140,226,194,194,147,245,105, - 165,0,82,222,243,231,179,230,206,157,123,118,223,190,125,140,71,143,30,57,239,222,189,123,103,109,14,204,244,233,211,77,133,57,57,179,52,128,180,46, - 189,6,238,205,146,95,15,126,243,104,244,216,241,173,215,132,127,196,238,209,163,7,156,157,157,209,187,119,111,232,116,58,113,80,80,80,67,247,166,60, - 116,200,164,140,246,237,219,11,182,110,221,234,62,123,246,108,44,92,184,16,0,80,81,81,129,243,231,207,99,241,226,197,5,57,172,174,202,134,174,207, - 170,145,42,179,3,118,21,64,40,128,12,107,224,251,63,3,74,105,60,33,100,240,176,173,91,163,231,245,232,225,212,43,32,192,193,187,103,79,180,80, - 40,144,155,151,135,99,169,169,229,209,9,9,165,114,96,44,165,52,177,49,154,159,13,219,26,29,58,175,135,83,203,94,1,14,157,189,123,66,102,84, - 224,69,78,30,18,143,164,150,199,69,37,148,82,121,163,52,31,17,66,134,108,221,58,34,186,71,143,121,78,1,1,125,29,122,245,242,132,92,238,143, - 188,188,92,36,38,30,45,75,74,138,46,3,228,99,95,117,178,172,252,163,48,151,225,169,51,237,68,125,9,75,27,172,117,120,61,246,9,106,150,249, - 168,196,35,209,208,100,230,211,183,63,220,24,204,212,203,28,216,68,109,159,150,154,74,26,170,121,88,93,79,77,20,160,112,202,252,165,203,134,117,235, - 222,251,242,203,47,195,204,41,28,108,109,109,31,87,40,149,23,93,52,154,175,84,162,128,139,141,173,205,247,28,40,4,48,223,225,193,131,175,135,143, - 26,183,137,239,232,199,94,181,126,135,154,201,96,104,211,243,138,241,165,63,32,176,96,129,164,74,11,36,72,60,12,133,78,227,83,62,94,186,244,131, - 117,107,215,118,17,10,133,125,116,6,67,128,201,100,2,76,166,52,149,82,121,149,234,116,119,53,33,225,91,248,34,15,106,113,93,66,113,144,220,49, - 235,112,151,159,118,237,90,20,21,21,245,90,223,157,52,154,175,85,226,160,24,75,250,94,179,141,26,184,133,162,162,91,117,181,37,176,214,58,180,20, - 150,201,52,207,193,193,97,111,88,88,24,127,192,128,1,24,54,108,24,122,244,232,1,147,201,4,74,41,228,114,57,14,29,58,132,77,155,54,165,53, - 3,214,54,164,167,1,46,242,206,156,25,218,190,125,251,221,245,57,48,85,78,86,131,49,137,245,223,155,188,52,131,104,100,246,228,5,27,252,181,178, - 124,177,147,173,193,61,225,201,99,134,229,247,102,160,220,24,119,168,235,184,49,99,22,48,89,172,222,85,43,32,105,82,98,226,3,115,81,105,132,204, - 186,208,200,107,201,156,187,206,26,248,254,15,130,82,154,72,8,9,218,112,227,198,84,219,91,183,6,178,40,237,105,160,20,70,224,166,6,184,0,96, - 63,165,212,210,80,142,151,52,47,110,184,49,245,138,237,173,129,148,69,123,82,3,5,49,225,166,73,253,251,52,111,220,216,48,237,214,173,175,6,82, - 202,238,70,169,209,4,24,238,0,234,11,0,14,52,86,211,202,223,134,190,53,70,175,8,80,57,202,133,70,230,249,170,179,214,161,121,212,135,197,98, - 21,153,203,124,212,5,27,8,171,26,201,66,131,181,14,171,254,207,6,228,208,104,62,129,70,243,73,117,163,26,171,11,217,175,180,111,76,167,202,129, - 20,24,52,195,81,148,8,156,152,95,169,215,101,221,242,154,125,170,235,216,151,237,228,148,169,129,235,80,40,174,67,161,216,92,107,223,89,156,178,134, - 236,124,181,239,57,128,236,247,246,253,85,205,58,79,198,111,108,255,79,230,69,73,201,49,0,66,239,83,167,220,126,61,117,106,226,7,75,150,140,243, - 240,244,108,225,236,236,236,96,103,103,199,184,115,231,78,166,65,173,254,186,3,240,83,213,104,106,131,104,128,139,129,57,57,109,38,140,25,179,128,176, - 88,189,106,58,48,212,96,184,233,7,108,171,111,36,203,76,99,239,77,31,158,71,88,213,72,22,152,22,222,155,207,43,237,88,15,131,97,61,226,95, - 207,134,242,27,238,205,117,132,16,57,128,90,239,33,43,127,95,170,28,148,61,85,219,159,93,243,167,170,205,138,21,0,149,117,14,9,33,213,69,165, - 171,168,117,213,33,173,172,115,88,235,212,33,40,165,255,181,13,192,0,171,166,85,243,239,162,137,202,160,119,251,63,187,157,86,77,171,166,85,211,170, - 249,87,212,252,187,110,214,228,107,86,172,88,8,165,212,72,169,101,37,156,172,88,177,98,197,202,63,151,154,163,91,4,192,128,218,26,209,70,172,38, - 32,132,212,170,81,31,13,233,91,53,173,154,86,77,171,166,85,211,170,105,213,252,251,105,54,164,221,24,255,227,207,74,205,96,248,90,211,59,252,129, - 47,244,151,88,82,106,213,180,106,90,53,173,154,86,77,171,166,85,243,127,171,249,87,166,230,8,150,25,179,163,101,157,58,180,98,197,138,21,0,145, - 145,132,81,153,162,50,146,1,28,102,2,19,152,149,143,127,59,19,38,144,90,147,217,46,154,230,104,247,123,116,173,88,177,242,231,130,214,147,176,180, - 206,244,14,86,254,251,16,66,154,184,187,187,111,7,64,10,10,10,230,81,74,115,254,215,54,89,121,29,39,39,167,48,131,193,0,169,84,218,96,234, - 133,191,34,109,252,201,24,202,64,80,245,19,20,57,137,105,180,214,172,218,173,3,200,12,144,255,228,226,34,38,36,37,164,211,163,150,190,22,33,132, - 49,116,128,207,54,0,56,27,147,187,128,254,23,242,106,17,66,90,186,184,184,156,99,177,88,44,163,209,56,191,176,176,240,84,93,109,39,76,152,192, - 4,0,54,189,188,210,217,177,213,138,247,223,33,108,149,102,151,68,83,161,148,50,217,204,44,30,219,253,6,152,94,103,203,21,221,107,205,203,20,21, - 21,85,103,21,239,182,1,100,104,171,214,173,71,116,12,182,201,248,252,171,46,95,246,241,115,102,103,230,62,20,126,246,189,116,187,189,99,211,17,51, - 39,57,157,98,217,146,233,59,119,150,40,234,210,248,171,179,129,16,87,19,139,213,134,201,229,122,83,189,222,141,0,70,6,155,93,168,85,169,158,171, - 129,248,79,41,149,52,86,243,83,66,28,117,64,48,155,199,243,49,26,12,110,4,160,76,22,171,80,175,209,228,114,128,248,21,255,0,77,14,143,231, - 109,52,24,220,0,224,207,104,231,63,17,66,136,7,128,97,53,159,163,13,229,209,178,179,179,187,207,96,48,188,73,141,31,116,140,170,82,10,230,231, - 106,238,35,132,192,104,52,62,47,43,43,235,212,8,195,236,1,76,4,96,94,162,190,31,192,161,223,26,112,76,8,177,231,112,56,31,10,4,130,254, - 21,21,21,109,0,192,198,198,38,65,169,84,94,210,233,116,159,255,22,93,66,8,11,192,4,161,80,216,143,193,96,244,163,149,245,142,46,43,20,138, - 75,0,162,232,111,200,175,66,8,177,113,117,117,93,223,170,85,171,41,43,87,174,44,117,114,114,10,92,188,120,241,61,23,23,151,3,37,37,37,171, - 41,165,255,211,186,140,102,8,33,45,220,221,221,247,179,217,108,102,110,110,110,63,0,240,241,241,185,172,213,106,141,69,69,69,83,41,165,79,27,169, - 39,0,208,77,40,20,118,18,10,133,161,70,163,49,200,100,50,193,100,50,37,41,20,138,107,58,157,238,62,128,59,148,82,229,127,163,63,191,5,66, - 136,157,171,171,235,62,66,8,8,33,1,148,82,249,255,218,166,63,26,202,64,80,98,66,114,160,249,113,235,54,173,234,110,76,208,164,150,182,22,59, - 90,253,251,120,140,24,57,114,32,3,0,180,250,179,35,208,200,226,215,13,65,8,105,57,118,236,216,91,251,246,237,115,208,104,52,152,55,111,222,126, - 145,72,180,77,42,149,174,172,239,56,123,161,195,226,205,91,207,219,86,214,191,134,171,201,100,116,125,241,226,105,64,226,147,91,67,18,18,110,111,168, - 72,190,116,199,68,216,111,235,208,59,217,18,59,90,183,32,195,71,77,24,51,108,237,218,53,152,50,105,74,211,132,4,181,141,151,125,6,183,172,66, - 224,239,228,226,58,114,237,186,195,228,198,245,99,35,247,237,142,188,244,214,91,206,253,255,110,206,86,36,33,12,38,139,213,199,53,36,164,203,164,99, - 199,136,173,187,59,147,193,98,49,0,192,164,211,53,145,61,123,230,181,239,141,55,186,126,66,200,229,112,224,30,181,32,134,133,16,66,214,177,88,221, - 28,90,181,10,157,116,236,24,132,62,62,44,22,143,199,0,0,131,70,227,163,200,205,245,56,56,114,100,215,72,66,174,68,80,106,81,241,103,171,230, - 31,171,249,15,103,24,173,74,241,64,95,41,44,93,167,163,197,96,48,188,95,188,120,225,42,16,8,0,84,166,129,48,26,141,48,26,141,168,250,114, - 4,165,180,250,175,193,96,64,171,86,245,124,64,87,65,42,63,201,250,3,120,179,111,223,190,227,63,255,252,115,118,112,112,176,185,100,72,239,85,171, - 86,253,155,16,114,4,149,249,76,46,90,250,139,151,16,50,88,32,16,252,188,121,243,102,251,129,3,7,178,60,61,61,65,8,65,65,65,65,183,152, - 152,152,78,139,23,47,158,79,8,153,70,41,61,215,176,90,181,102,91,59,59,187,195,99,198,140,241,238,211,167,15,63,40,40,8,38,147,9,15,31, - 62,156,125,255,254,253,201,71,142,28,137,32,132,140,167,22,214,107,35,132,16,161,80,56,211,203,203,107,125,120,120,184,227,180,105,211,184,79,158,60, - 41,247,243,243,35,55,110,220,112,57,116,232,208,252,141,27,55,78,176,179,179,91,173,80,40,246,88,242,225,99,111,111,127,159,193,96,120,3,13,59, - 194,0,44,118,134,9,33,29,154,53,107,118,232,250,245,235,205,178,179,179,141,163,71,143,222,11,0,151,46,93,10,214,235,245,100,208,160,65,103,9, - 33,19,41,165,15,45,236,123,59,71,71,199,227,83,166,76,113,108,209,162,133,109,179,102,205,136,64,32,0,147,201,132,84,42,245,76,72,72,24,112, - 231,206,157,138,152,152,152,50,66,200,72,250,74,249,140,6,180,123,184,186,186,78,103,179,217,109,13,6,131,23,0,176,88,172,23,122,189,254,73,81, - 81,209,62,74,105,157,137,92,27,194,205,205,237,155,245,235,215,59,23,21,21,209,141,27,55,126,3,96,230,111,213,250,179,179,255,64,20,238,223,139, - 5,0,142,185,198,68,205,253,132,16,18,20,0,206,251,239,47,65,167,206,93,49,117,202,132,6,53,135,13,240,217,204,230,114,156,212,106,245,45,169, - 74,19,229,230,36,158,56,101,242,240,52,0,56,251,235,149,137,93,187,58,94,22,217,242,38,240,249,252,30,122,173,174,244,116,76,238,82,75,237,37, - 132,180,244,242,242,58,231,224,224,96,91,86,86,86,80,92,92,252,221,216,177,99,215,253,244,211,79,14,153,153,153,200,205,205,197,123,239,189,39,124, - 254,252,249,2,30,143,119,91,163,209,212,57,178,37,151,151,125,181,106,197,168,112,145,200,153,41,176,181,135,157,200,17,126,45,218,163,91,143,17,24, - 58,236,45,164,167,197,117,251,105,247,218,184,23,47,98,62,21,58,54,95,39,145,52,171,243,115,169,77,32,233,99,118,178,194,195,215,32,53,57,89, - 158,157,197,248,215,233,99,44,219,161,97,173,120,6,109,65,246,141,235,199,154,245,234,61,26,0,58,237,219,29,121,105,209,52,199,176,175,127,46,251, - 91,56,241,19,8,97,182,99,179,223,26,249,211,79,226,160,73,147,56,146,132,4,109,234,129,3,154,130,152,24,35,95,44,54,121,188,241,6,211,45, - 44,140,183,40,45,141,115,109,253,250,208,245,235,214,53,7,112,160,62,77,66,8,89,203,102,207,28,188,117,171,107,200,252,249,28,69,86,150,46,227, - 251,239,85,133,215,174,25,89,60,30,245,25,50,132,184,244,235,199,159,159,148,196,185,185,113,99,232,6,46,215,111,149,86,251,179,85,243,255,79,211, - 10,78,147,26,133,165,1,11,70,180,8,33,16,8,4,56,120,240,32,216,108,54,88,44,22,216,108,118,157,255,55,105,242,90,101,143,218,52,199,186, - 187,187,255,123,219,182,109,110,131,7,15,6,159,207,175,222,199,100,50,49,112,224,64,12,24,48,128,157,151,151,55,249,224,193,131,147,55,108,216,80, - 72,8,89,72,41,141,110,64,183,95,96,96,96,244,249,243,231,109,212,106,53,174,93,187,134,242,242,114,112,185,92,120,123,123,99,208,160,65,172,228, - 228,100,199,129,3,7,70,19,66,134,83,74,47,91,96,107,39,23,23,151,171,71,142,28,225,183,107,215,142,164,167,167,35,36,36,4,0,32,149,74, - 49,122,244,104,254,180,105,211,90,76,154,52,233,14,169,44,52,121,191,1,189,142,238,238,238,123,198,140,25,227,185,97,195,6,123,59,59,59,100,103, - 103,231,187,187,187,7,152,207,247,228,201,147,185,35,70,140,240,216,180,105,211,87,135,15,31,94,74,8,153,73,41,125,80,159,174,217,33,182,181,181, - 69,97,97,33,246,239,223,143,5,11,22,128,201,100,162,168,168,8,135,14,29,194,191,254,245,47,179,67,99,145,51,44,16,8,6,180,111,223,126,231, - 165,75,151,188,197,98,49,60,61,61,25,31,127,252,113,91,63,63,63,155,166,77,155,50,243,243,243,17,29,29,237,55,125,250,244,227,124,62,127,182, - 90,173,110,112,74,205,205,205,109,215,233,211,167,155,36,36,36,224,251,239,191,71,89,89,25,184,92,46,196,98,49,220,221,221,17,16,16,64,86,172, - 88,97,59,98,196,8,219,133,11,23,238,2,208,161,33,77,66,72,123,87,87,215,237,147,39,79,246,139,140,140,20,187,187,187,195,252,195,64,42,149, - 122,103,103,103,119,11,15,15,31,239,230,230,150,89,84,84,244,54,165,244,81,131,157,127,89,191,67,88,88,216,240,209,163,71,51,243,243,243,177,111, - 223,190,225,132,144,14,150,58,151,127,53,238,223,139,197,188,119,223,83,120,250,248,112,206,159,219,57,86,34,105,125,79,108,83,89,144,90,82,1,93, - 255,62,204,206,131,6,191,197,121,99,216,104,197,15,223,126,37,180,196,209,98,115,57,78,251,127,254,34,231,250,141,251,109,47,196,196,14,25,59,114, - 36,229,112,196,126,0,176,116,241,251,236,232,19,39,118,15,28,208,53,175,119,175,78,57,83,167,45,105,248,67,164,10,66,72,203,150,45,91,94,137, - 139,139,115,227,241,120,40,43,43,115,250,225,135,31,190,232,213,171,23,35,35,35,3,201,201,201,200,202,202,130,84,42,197,192,129,3,133,15,30,60, - 248,14,64,157,142,150,142,209,127,189,103,83,253,215,78,54,130,102,58,163,204,149,234,243,91,95,56,125,161,221,47,251,42,66,220,60,90,5,188,57, - 43,2,107,215,29,97,31,216,255,89,248,197,152,95,0,70,179,186,43,2,80,244,88,181,122,37,100,114,13,166,77,153,139,233,83,230,58,81,104,61, - 168,81,45,208,86,148,139,237,56,73,167,182,237,248,98,12,0,239,26,206,214,197,191,139,179,213,154,197,234,51,250,192,1,81,224,168,81,220,216,133, - 11,21,170,236,108,85,203,17,35,202,125,195,195,181,76,163,17,146,204,76,206,211,136,8,129,67,239,222,252,208,149,43,29,52,197,197,94,145,132,116, - 136,168,231,190,90,203,98,117,29,254,239,127,187,180,157,51,135,247,40,50,82,89,114,237,90,133,255,27,111,148,135,188,243,142,6,0,228,89,89,156, - 212,136,8,91,151,208,80,155,238,31,126,232,96,212,106,221,63,33,164,203,199,148,222,109,172,102,147,137,19,141,225,187,119,119,190,182,100,73,95,162, - 215,51,135,116,239,254,112,227,190,125,47,126,143,230,31,105,103,222,213,171,154,50,63,63,132,140,30,93,218,196,213,85,243,71,246,253,247,216,249,79, - 135,82,154,15,224,135,218,246,17,74,41,78,159,62,221,7,149,213,168,35,135,13,27,182,6,0,196,98,113,161,68,34,113,141,142,142,110,208,201,98, - 179,217,240,240,240,64,64,64,64,81,97,97,161,91,93,134,16,66,114,77,38,147,55,165,180,122,244,165,46,52,26,13,210,210,210,208,174,93,187,231, - 148,82,159,122,52,237,108,109,109,51,146,147,147,157,19,19,19,113,255,254,125,248,249,249,193,193,193,1,108,54,27,122,189,30,50,153,12,129,129,129, - 224,241,120,232,216,177,99,137,82,169,244,171,111,10,136,16,194,19,8,4,105,87,175,94,245,9,9,9,193,221,187,119,225,227,227,3,119,119,119,0, - 64,86,86,22,110,220,184,129,55,222,120,3,113,113,113,24,55,110,92,174,82,169,12,160,148,106,234,210,116,114,114,202,191,116,233,210,243,224,224,96, - 181,82,169,100,20,22,22,178,175,93,187,102,144,203,229,66,169,84,202,150,72,36,108,153,76,198,82,42,149,108,6,131,193,169,168,168,96,95,188,120, - 145,169,213,106,237,235,59,79,230,247,233,196,137,19,8,14,14,70,116,116,52,62,248,224,3,220,188,121,19,62,62,62,136,138,138,194,135,31,126,136, - 148,148,20,56,59,59,163,117,235,214,245,190,71,0,224,239,239,159,254,248,241,227,22,28,14,199,92,215,209,92,47,15,197,197,197,120,250,244,41,94, - 188,120,1,127,127,127,76,153,50,229,233,243,231,207,253,235,211,3,0,111,111,239,226,132,132,4,231,118,237,218,161,176,176,16,98,177,24,34,145,8, - 98,177,184,250,127,63,63,63,44,89,178,4,238,238,238,69,21,21,21,245,218,72,8,233,16,28,28,124,238,226,197,139,206,246,246,246,40,40,40,128, - 76,38,3,139,197,130,173,173,45,156,157,157,171,29,249,180,180,52,12,27,54,172,36,35,35,99,112,35,70,224,24,110,110,110,201,241,241,241,1,148, - 82,228,228,228,32,37,37,5,239,190,251,110,154,90,173,110,245,223,136,45,250,95,81,35,238,138,51,115,214,60,206,152,81,61,180,73,9,167,8,207, - 148,130,14,109,237,165,0,240,240,137,76,164,97,4,34,168,205,112,122,244,248,45,238,158,159,126,96,195,4,55,16,164,36,166,210,79,234,210,30,220, - 223,115,206,251,239,207,110,219,183,87,31,134,92,169,116,253,238,187,173,29,51,50,146,92,1,192,207,47,168,104,254,252,197,15,236,4,130,162,43,55, - 174,154,190,252,114,215,147,115,151,242,118,52,100,47,33,196,47,32,32,224,246,201,147,39,157,93,92,92,32,18,137,160,84,42,161,211,233,144,152,152, - 168,62,120,240,160,222,222,222,222,174,160,160,0,18,137,4,132,16,156,56,113,34,135,82,234,251,170,150,57,70,11,0,222,29,26,196,110,221,63,192, - 129,195,51,216,216,176,83,61,64,140,60,66,133,110,103,207,61,108,119,246,194,221,169,99,198,126,224,210,187,207,24,132,127,52,94,159,151,151,19,162, - 67,239,228,218,98,180,130,2,72,255,209,227,198,76,88,187,118,13,214,132,71,226,212,137,99,82,161,128,161,177,23,179,69,161,255,199,222,121,199,55, - 85,189,127,252,115,178,87,247,222,5,10,180,133,182,172,178,65,70,217,101,137,128,40,42,200,20,17,5,17,65,16,4,7,202,144,37,50,101,131,200, - 198,50,203,22,65,100,211,22,218,50,58,73,155,238,36,109,246,205,61,191,63,218,212,82,211,54,69,253,126,229,251,203,251,245,202,171,201,205,185,159, - 156,115,115,155,251,220,231,60,231,121,58,116,214,205,120,119,72,86,105,169,60,112,209,146,189,175,197,14,153,17,208,165,235,80,92,254,229,48,118,110, - 93,120,131,72,232,11,61,141,184,144,16,111,255,232,232,177,227,174,95,23,92,155,50,165,84,204,231,23,68,77,152,96,181,122,64,78,124,188,76,208, - 176,161,147,115,207,158,110,43,26,53,162,218,130,130,239,23,88,249,93,94,72,136,171,75,72,200,164,105,169,169,130,59,159,125,86,202,200,229,197,209, - 211,167,23,88,211,204,142,143,151,9,253,252,156,92,7,15,118,91,21,28,76,77,121,121,27,172,197,24,89,211,60,227,224,224,242,227,137,19,49,148, - 207,239,54,235,227,143,37,3,7,14,132,74,165,194,129,3,7,176,97,253,122,189,175,175,239,61,191,132,132,91,145,42,213,60,91,53,163,167,79,47, - 48,155,205,100,196,204,153,189,19,211,210,122,230,230,229,53,0,0,95,55,183,172,232,144,144,27,91,226,226,146,215,52,108,200,218,218,207,77,39,79, - 122,239,79,79,31,239,230,230,38,81,228,229,241,68,66,97,97,135,230,205,247,125,63,119,238,5,230,238,93,129,56,32,192,201,121,224,192,122,143,61, - 122,250,244,130,34,181,154,55,237,139,47,58,103,40,20,13,74,245,250,38,37,106,181,143,217,100,226,56,73,165,133,141,194,194,242,180,151,46,229,52, - 210,104,222,223,68,105,141,149,85,254,42,214,108,145,255,5,44,30,173,11,177,177,177,127,90,93,67,41,181,201,155,197,231,243,159,153,166,170,5,1, - 33,4,55,111,222,132,187,187,59,124,124,124,32,18,61,91,124,48,63,63,31,191,254,250,43,238,223,191,143,150,45,91,2,40,191,163,174,9,145,72, - 244,193,146,37,75,92,12,6,3,110,220,184,129,232,232,104,136,68,34,8,4,130,103,140,192,188,188,60,68,68,68,96,214,172,89,206,95,125,245,213, - 7,168,165,70,29,143,199,155,58,97,194,4,47,139,7,43,43,43,11,109,218,180,169,124,223,211,211,19,183,111,223,70,116,116,52,2,2,2,48,124, - 248,112,175,157,59,119,78,5,176,172,38,77,161,80,200,137,138,138,106,11,0,50,153,12,28,14,39,197,201,201,201,211,219,219,91,230,228,228,244,167, - 49,110,221,186,181,132,195,225,152,106,27,59,80,62,93,152,155,155,139,200,200,72,40,149,229,21,92,202,202,202,208,164,73,19,168,84,229,33,105,122, - 189,30,126,126,126,208,106,107,15,253,106,217,178,229,103,225,225,225,125,186,119,239,46,226,243,249,184,115,231,14,90,183,110,141,189,123,247,34,40,40, - 8,82,169,20,169,169,169,136,138,138,194,197,139,23,225,233,233,137,136,136,8,81,155,54,109,126,41,42,42,58,159,158,158,254,89,45,253,228,56,56, - 56,224,226,197,139,216,178,101,11,210,210,210,32,151,203,225,232,232,136,86,173,90,161,121,243,230,232,212,169,19,82,83,83,65,234,56,153,8,33,62, - 77,155,54,141,251,253,247,223,61,40,165,216,185,115,39,74,75,75,97,48,24,192,225,112,32,22,139,225,234,234,138,158,61,123,194,211,211,19,77,155, - 54,197,79,63,253,228,209,191,127,255,227,21,30,169,220,186,142,171,171,171,235,251,11,22,44,8,244,242,242,66,122,122,58,148,74,37,188,189,189,209, - 189,123,119,255,51,103,206,188,15,96,69,93,26,47,10,150,192,119,66,8,57,125,234,135,97,77,27,21,71,181,12,147,6,30,140,243,14,220,27,151, - 23,1,0,164,219,124,119,0,0,32,0,73,68,65,84,145,205,188,19,135,13,148,102,221,73,140,203,58,125,234,240,141,251,41,56,104,203,212,182,82, - 163,223,23,127,230,90,191,214,45,219,176,75,190,153,25,251,238,148,241,34,47,239,113,80,100,30,198,153,115,55,131,102,126,56,193,115,217,242,77,39, - 226,207,92,227,40,53,250,121,182,244,55,52,52,104,205,182,181,157,60,84,249,251,144,122,95,8,137,99,20,26,55,14,133,82,169,132,88,44,22,191, - 246,218,107,230,57,115,230,104,156,156,156,164,132,16,156,63,127,62,15,64,223,186,116,117,94,174,212,108,52,49,84,200,101,41,113,212,18,115,145,48, - 33,233,9,250,244,234,161,232,210,62,242,171,57,139,150,127,210,52,180,181,231,219,227,23,242,191,248,236,245,245,32,232,106,77,231,126,42,61,215,188, - 49,145,0,136,93,244,249,103,120,252,56,213,117,226,152,146,133,60,145,196,47,60,184,179,227,250,45,231,251,53,105,210,176,193,140,169,195,143,125,251, - 221,183,177,168,226,217,218,182,117,193,17,66,72,140,45,199,246,223,8,95,40,140,26,113,240,32,41,185,119,207,160,121,252,88,211,254,219,111,139,13, - 90,45,185,179,97,131,187,226,230,77,39,137,163,163,169,65,175,94,37,141,95,126,89,237,219,187,119,89,246,209,163,28,167,118,237,68,189,191,248,130, - 127,112,210,164,102,0,126,179,34,219,226,141,184,56,148,102,102,154,138,126,249,69,23,243,221,119,5,129,125,251,174,48,24,141,30,150,159,10,14,33, - 32,150,208,9,150,37,188,89,179,56,148,199,131,201,213,117,204,108,32,180,46,205,15,115,114,134,189,62,126,124,236,145,147,39,209,176,97,195,202,235, - 153,139,139,11,102,206,156,137,233,211,167,139,110,223,190,221,110,255,254,253,237,150,45,93,234,61,27,24,102,75,63,79,255,246,155,235,228,69,139,230, - 182,140,142,14,218,177,123,183,168,113,227,198,0,128,71,143,30,53,253,230,235,175,131,35,163,162,20,95,125,240,193,182,196,57,115,34,0,252,82,155, - 102,238,165,75,134,253,233,233,227,207,157,63,239,18,25,25,9,0,72,78,78,246,90,181,106,213,132,136,225,195,71,47,122,231,157,121,3,117,186,18, - 167,252,124,209,192,53,107,120,63,142,24,81,167,166,165,159,0,208,253,237,183,63,232,218,163,71,243,97,227,199,187,5,5,5,17,7,7,7,24,141, - 70,200,229,114,215,196,196,196,198,113,106,181,234,208,111,191,237,220,84,81,44,254,31,194,170,45,242,162,99,49,180,186,31,59,118,140,2,232,30,27, - 27,123,17,40,191,128,155,205,102,155,140,44,30,143,135,138,96,97,155,62,148,82,138,130,130,2,20,20,20,84,78,29,229,229,229,225,220,185,115,72, - 77,77,5,159,207,135,64,32,128,209,88,119,13,90,153,76,214,171,87,175,94,188,223,126,251,13,33,33,33,144,72,36,149,253,178,60,4,2,1,124, - 125,125,161,82,169,16,19,19,195,95,189,122,117,47,212,98,104,57,59,59,15,24,57,114,164,208,242,186,180,180,20,92,110,249,141,175,94,175,71,105, - 105,41,138,138,138,80,82,82,2,157,78,135,142,29,59,10,227,226,226,6,160,22,67,171,42,26,141,166,52,47,47,207,165,107,215,174,174,219,182,109, - 75,238,216,177,99,88,213,247,47,92,184,160,211,233,116,124,14,135,99,83,29,189,93,187,118,85,30,251,167,79,159,98,253,250,245,149,239,165,166,166, - 98,245,234,213,149,165,0,106,251,142,194,195,195,251,239,220,185,51,122,199,142,29,197,92,46,23,201,201,201,216,189,123,55,40,165,240,244,244,132,70, - 163,129,66,161,192,249,243,231,193,48,12,28,28,28,224,239,239,47,158,58,117,106,151,133,11,23,242,1,124,86,147,182,217,108,54,115,185,92,4,7, - 7,99,254,252,249,208,233,116,16,8,202,237,75,149,74,133,146,146,18,220,186,117,11,233,233,233,168,235,34,35,22,139,135,239,216,177,195,75,40,20, - 66,171,213,66,173,86,35,43,43,11,25,25,25,186,188,188,60,198,209,209,145,19,28,28,204,17,137,68,162,161,67,135,18,139,193,57,112,224,64,247, - 157,59,119,190,138,58,140,36,66,136,103,179,102,205,62,153,48,97,66,229,220,54,165,20,185,185,185,24,54,108,152,244,202,149,43,115,8,33,187,41, - 165,249,181,233,188,104,80,74,105,73,73,243,235,55,206,36,71,29,140,243,14,204,200,54,119,158,249,209,114,30,0,108,220,176,184,243,193,184,167,191, - 134,55,84,100,237,63,20,122,221,197,37,169,214,239,136,16,194,233,217,205,119,144,183,187,203,200,97,131,7,211,117,235,86,180,121,119,202,120,81,112, - 232,76,0,128,63,223,11,49,204,231,68,163,125,36,94,183,110,69,155,97,131,95,185,149,150,150,190,33,166,187,223,79,231,46,230,252,92,155,199,208, - 203,93,236,47,21,151,193,63,164,57,194,154,201,112,251,206,3,28,216,119,21,97,205,218,193,96,48,128,97,24,217,160,65,131,52,123,247,238,213,165, - 164,164,168,181,90,109,55,74,105,74,93,227,207,206,78,98,195,124,58,24,5,18,17,163,86,10,52,179,231,237,31,209,166,125,159,104,87,95,127,190, - 167,140,253,185,127,239,118,187,183,108,158,63,125,222,130,221,104,219,174,79,199,251,201,191,52,7,112,207,154,86,210,35,26,23,217,148,48,143,31,62, - 140,205,72,79,207,14,245,246,49,60,42,161,166,247,103,111,234,221,181,219,240,22,141,155,189,36,188,159,116,145,204,159,245,234,158,69,75,190,125,13, - 21,198,214,217,248,61,221,198,140,185,42,4,80,163,119,252,223,12,225,114,3,165,62,62,220,196,109,219,244,141,99,99,75,0,224,206,134,13,238,202, - 135,15,37,237,102,204,120,74,76,38,242,52,62,222,73,238,225,193,248,117,233,162,117,14,11,211,235,211,210,52,222,45,90,56,10,197,98,127,107,154, - 2,145,40,192,33,56,152,151,182,109,155,54,100,208,160,98,0,48,24,141,30,105,233,233,206,82,169,20,148,82,152,76,166,103,98,136,45,113,195,145, - 97,97,86,61,227,213,53,211,62,253,180,197,172,89,179,144,155,155,11,134,97,192,231,243,159,105,175,209,104,80,86,86,134,49,99,198,96,205,210,165, - 29,108,209,52,155,205,100,242,162,69,115,63,158,59,183,241,164,73,147,56,85,127,123,221,220,220,176,255,192,1,225,218,181,107,3,62,89,179,102,204, - 235,34,209,227,186,52,11,154,52,129,155,66,33,177,24,89,0,16,22,22,134,245,235,215,139,198,141,27,39,28,52,104,208,242,219,45,91,174,90,209, - 165,203,67,247,208,80,39,161,72,20,96,235,241,4,0,181,78,23,185,98,213,42,215,107,215,174,65,161,80,32,55,183,252,126,148,16,130,182,109,219, - 146,55,222,120,195,185,81,96,96,59,107,154,127,35,127,178,69,94,20,172,5,193,91,224,1,64,197,128,72,197,0,43,207,6,179,217,252,140,193,82, - 151,161,245,60,148,148,148,160,164,164,4,155,55,111,134,64,32,168,188,248,2,128,193,96,168,115,127,141,70,19,229,231,231,7,165,82,137,208,208,208, - 103,60,89,2,129,0,60,30,15,2,129,0,34,145,8,122,189,30,65,65,65,208,104,52,81,181,105,106,181,218,86,110,110,110,0,202,47,176,122,125, - 249,111,158,94,175,175,236,175,193,96,64,113,113,49,74,75,75,161,86,171,81,86,86,214,218,150,241,178,44,139,132,132,132,71,97,97,97,173,184,92, - 46,28,28,28,100,101,101,101,149,177,69,69,69,69,216,190,125,123,217,155,111,190,233,113,244,232,209,58,13,45,66,8,222,123,239,61,136,68,34,104, - 52,26,172,91,183,14,211,166,77,131,64,32,128,90,173,198,250,245,235,49,99,198,12,240,120,60,24,12,6,172,90,181,170,70,173,164,164,164,180,223, - 126,251,173,117,155,54,109,92,15,29,58,148,223,187,119,111,207,190,125,251,66,34,145,64,171,213,194,100,50,161,67,135,14,8,15,15,71,94,94,30, - 78,156,56,81,208,180,105,83,143,107,215,174,177,185,185,185,25,181,245,179,170,241,196,227,241,96,54,155,161,80,40,80,82,82,130,252,252,124,200,229, - 114,100,103,103,131,199,227,161,174,155,121,119,119,247,87,34,35,35,185,0,32,145,72,208,170,85,43,204,157,59,151,209,106,181,35,1,156,168,104,214, - 127,211,166,77,135,46,95,190,204,243,243,243,195,131,7,15,224,233,233,201,19,139,197,117,26,90,62,62,62,91,127,254,249,103,55,139,113,109,57,206, - 26,77,249,215,49,108,216,48,183,29,59,118,108,5,48,160,214,142,190,128,184,72,32,104,21,233,164,220,27,151,23,49,243,163,229,188,240,200,242,155, - 215,137,147,192,91,182,244,195,136,209,67,156,142,185,72,84,181,122,153,1,160,127,175,192,181,131,7,247,230,188,54,106,96,170,64,224,18,178,97,227, - 66,47,47,239,113,127,52,224,56,193,221,195,9,33,193,66,178,255,216,125,175,217,115,62,215,239,218,241,237,227,61,63,198,245,19,242,227,251,0,120, - 167,38,237,148,71,37,71,53,122,113,51,85,225,93,226,230,221,25,173,90,134,195,203,179,8,155,182,254,132,134,141,218,66,175,215,195,201,201,73,106, - 54,155,141,92,46,119,151,45,70,22,0,156,61,91,194,70,68,148,24,184,106,150,121,119,218,178,151,123,247,31,220,188,103,207,94,236,233,248,211,198, - 206,173,141,57,253,251,182,82,156,140,95,155,154,35,127,210,52,34,170,11,146,18,207,247,3,72,2,96,253,132,77,72,165,39,27,55,38,231,247,238, - 157,200,106,217,91,146,47,190,188,215,63,54,246,173,200,151,186,190,196,198,159,57,103,16,162,224,190,83,151,78,79,223,29,223,255,208,15,187,86,245, - 57,121,98,107,19,165,42,35,110,235,214,154,67,16,94,0,60,56,60,30,167,240,242,101,115,227,57,115,244,0,144,119,243,166,99,219,143,62,146,251, - 180,104,161,7,0,142,72,68,213,247,238,137,209,165,139,86,224,233,201,48,197,197,90,89,84,148,3,88,214,199,154,160,153,97,188,121,34,17,39,255, - 252,121,38,106,220,56,61,80,254,255,40,149,74,113,228,200,17,8,133,194,202,135,64,32,168,124,238,237,237,109,89,124,101,147,38,0,228,228,228,32, - 55,55,23,206,206,206,240,244,244,68,110,110,46,174,92,185,130,148,148,20,240,249,124,244,235,215,15,156,26,98,155,171,107,142,152,57,179,119,179,168, - 168,160,234,70,22,0,24,141,70,20,21,21,97,200,144,33,156,19,39,78,248,156,204,204,28,252,41,240,167,96,243,170,154,173,99,99,11,21,251,247, - 91,253,236,54,109,218,144,95,127,253,85,212,175,111,223,233,31,126,249,229,218,53,59,118,100,153,25,198,230,227,9,148,207,58,16,66,16,24,24,136, - 162,162,34,148,150,150,207,96,59,56,56,192,213,213,21,38,147,9,44,165,124,107,154,127,23,53,217,34,47,10,213,147,150,62,19,12,95,49,40,0, - 232,94,101,7,176,44,107,147,145,197,231,243,235,140,185,170,11,107,23,87,91,12,45,75,95,197,98,113,229,63,90,85,3,203,210,79,14,135,131,170, - 23,206,218,96,89,150,171,86,171,113,224,192,1,116,235,214,173,114,90,74,169,84,162,164,164,4,74,165,18,58,157,14,105,105,105,56,123,246,44,154, - 52,105,2,216,152,252,245,241,227,199,55,26,54,108,24,109,233,75,143,30,61,2,182,109,219,38,31,48,96,128,31,165,20,243,230,205,43,232,208,161, - 131,135,173,125,5,202,23,18,92,185,114,5,77,154,52,1,165,20,2,129,0,201,201,201,240,242,242,2,203,178,224,241,120,200,207,207,135,163,99,237, - 57,18,19,18,18,198,190,253,246,219,114,103,103,231,22,133,133,133,57,34,145,168,235,165,75,151,2,141,70,35,156,156,156,224,228,228,132,227,199,143, - 195,197,197,5,31,124,240,65,166,86,171,189,34,147,201,188,181,90,237,221,220,220,92,155,166,125,44,48,12,131,178,178,50,20,23,23,163,168,168,8, - 42,149,10,58,157,174,206,62,90,163,107,215,174,136,139,139,227,46,94,188,248,135,199,143,203,111,12,67,66,66,240,193,7,31,112,253,253,253,145,150, - 150,134,27,55,110,192,104,52,130,82,90,235,63,47,159,207,239,241,225,135,31,118,9,10,10,34,70,163,17,44,203,66,175,215,195,242,60,51,51,19, - 205,154,53,227,4,7,7,119,36,132,244,176,101,97,133,157,114,20,153,135,225,207,247,2,56,78,160,218,195,40,44,120,190,178,145,121,121,121,95,206, - 250,244,215,113,107,150,24,189,179,115,128,176,200,161,104,218,60,6,99,223,48,99,241,210,3,8,12,10,69,70,70,6,122,244,232,33,144,203,229,111, - 3,152,105,171,118,124,252,111,230,211,199,79,12,31,241,234,91,209,189,122,13,96,78,157,58,142,132,187,167,18,223,126,245,149,60,202,150,18,55,23, - 201,173,228,7,215,155,182,104,213,29,6,198,220,21,248,108,9,128,26,239,12,30,61,162,134,133,11,23,114,142,29,222,250,198,107,163,199,180,140,137, - 233,99,58,21,255,51,110,92,141,191,179,124,201,132,139,139,87,253,212,163,119,191,97,17,158,222,87,142,71,134,234,199,7,186,59,215,43,101,202,191, - 13,66,8,5,0,129,84,202,162,226,55,76,230,232,200,112,249,252,202,99,36,16,10,89,137,139,11,3,148,223,116,177,18,9,107,54,153,204,117,93, - 85,121,98,113,165,38,135,16,80,74,159,49,178,170,27,90,28,14,167,78,7,64,85,77,11,148,210,202,27,234,13,27,54,64,36,18,65,40,20,130, - 207,231,215,25,126,81,85,51,49,45,173,231,246,93,187,68,214,140,172,194,194,66,20,22,22,162,180,180,20,163,70,141,18,44,188,126,189,77,13,114, - 149,154,65,190,190,122,153,68,162,72,74,74,242,107,222,188,249,51,253,85,169,84,144,72,36,216,181,123,183,96,96,108,236,148,152,227,199,151,3,168, - 53,255,149,181,177,19,66,224,229,229,5,87,87,87,16,66,192,48,12,114,115,115,145,152,152,136,235,215,175,131,75,72,189,211,25,213,7,107,182,200, - 139,68,93,30,45,171,103,99,125,12,45,46,151,251,220,94,173,154,176,101,234,80,42,149,222,203,201,201,233,236,239,239,15,134,97,42,13,173,234,83, - 135,64,185,247,227,246,237,219,144,74,165,86,221,253,85,53,41,165,29,219,181,107,135,131,7,15,226,252,249,243,120,242,228,9,52,26,13,244,122,61, - 180,90,45,18,19,19,193,178,44,34,35,35,33,147,201,234,212,4,128,178,178,178,28,62,159,31,38,145,72,42,183,249,250,250,162,176,176,144,53,153, - 76,216,190,125,187,202,199,199,71,38,145,72,108,54,92,9,33,200,203,203,67,64,64,64,101,140,150,90,173,134,151,151,151,197,176,128,94,175,135,163, - 163,99,157,83,135,148,82,29,128,15,171,104,183,29,49,98,196,158,189,123,247,54,58,115,230,12,174,93,187,6,79,79,79,124,245,213,87,79,210,211, - 211,95,163,148,94,183,169,147,245,192,150,115,168,176,176,240,192,189,123,247,58,182,107,215,174,242,87,162,71,143,30,164,71,143,30,30,150,215,26,141, - 6,249,249,249,248,253,247,223,113,230,204,25,16,66,144,154,154,106,214,106,181,53,46,35,39,132,8,130,131,131,183,205,157,59,215,129,97,152,202,115, - 91,34,145,64,44,22,67,32,16,128,203,229,34,61,61,29,67,134,12,113,254,238,187,239,182,18,66,26,83,74,235,62,81,95,16,74,180,48,222,78, - 80,57,71,54,243,78,220,184,97,113,231,137,147,96,153,58,100,34,155,121,37,222,78,80,56,71,123,193,232,34,172,93,231,196,153,172,119,13,166,19, - 131,78,156,188,48,242,163,233,31,240,67,66,154,229,157,57,119,51,40,134,249,156,184,123,56,161,176,64,133,244,76,5,30,103,24,104,72,72,179,188, - 27,191,223,19,45,93,177,178,105,153,70,247,211,185,139,57,63,215,166,77,41,213,17,66,134,46,95,45,186,248,214,219,109,133,18,169,31,138,10,238, - 33,40,200,19,67,6,182,192,150,29,87,224,236,236,6,111,111,111,112,56,28,153,173,99,47,40,40,32,7,126,252,101,220,155,99,38,116,232,219,39, - 150,57,121,234,24,239,252,233,163,87,182,110,252,228,16,229,150,73,9,85,75,26,52,244,185,251,232,225,237,215,122,246,26,5,137,192,177,9,16,110, - 245,132,173,92,96,64,145,201,225,64,252,230,152,137,157,250,246,29,204,156,58,117,24,167,142,239,248,109,193,130,6,199,159,60,221,45,184,122,61,91, - 60,116,248,59,197,113,39,238,27,94,25,212,48,197,79,214,234,95,145,67,239,121,161,148,230,179,12,227,27,208,167,15,81,63,121,34,144,184,186,234, - 26,244,234,85,146,23,31,239,40,224,243,85,92,0,218,71,143,132,206,173,91,235,0,128,49,26,9,215,199,135,155,115,247,46,37,28,142,194,154,38, - 151,199,83,48,122,125,96,64,223,190,92,77,70,6,223,193,219,155,1,0,147,201,84,167,161,5,192,234,20,116,117,77,91,199,167,209,104,192,2,86, - 141,141,234,154,185,121,121,13,42,110,194,43,49,153,76,149,70,86,97,97,33,74,74,74,32,147,201,144,175,215,91,157,226,172,174,217,167,125,251,237, - 11,63,251,108,230,254,3,7,4,192,31,70,150,229,193,231,243,241,205,146,37,130,105,31,125,244,206,20,30,239,253,250,28,79,160,252,166,157,203,229, - 130,199,227,33,35,35,3,153,153,153,200,200,200,64,70,70,6,36,18,9,104,13,199,243,239,226,69,142,207,170,201,200,2,234,72,239,80,159,96,120, - 91,13,3,179,185,198,68,202,127,194,22,67,171,172,172,236,76,124,124,124,251,151,95,126,153,247,219,111,191,193,199,199,167,210,208,178,252,181,76,71, - 73,165,82,28,58,116,200,88,86,86,86,107,125,38,141,70,115,246,248,241,227,209,243,231,207,231,143,29,59,22,73,73,73,152,52,105,18,74,74,74, - 160,82,169,80,88,88,8,141,70,131,246,237,219,67,44,22,227,238,221,187,38,141,70,83,107,138,3,74,41,205,203,203,43,245,244,244,244,173,254,222, - 240,225,195,189,191,255,254,123,205,131,7,15,76,157,59,119,118,2,108,51,56,44,252,248,227,143,149,30,193,148,148,20,124,255,253,247,149,49,89,55, - 111,222,196,178,101,203,42,115,159,213,7,74,233,245,136,136,8,198,100,50,161,73,147,38,240,247,247,135,78,167,195,202,149,43,153,127,194,200,178,21, - 157,78,183,255,173,183,222,250,248,214,173,91,190,60,30,175,220,165,93,49,62,163,209,136,135,15,31,34,49,49,17,15,30,60,64,81,81,81,229,141, - 192,237,219,183,139,77,38,211,79,53,233,122,122,122,206,219,178,101,139,143,84,42,125,230,124,182,120,67,45,94,210,252,252,124,184,184,184,32,38,38, - 198,235,236,217,179,243,0,204,255,79,140,251,159,134,16,66,122,118,227,182,157,246,238,80,12,27,40,205,58,24,247,244,215,101,75,63,172,8,134,247, - 74,28,54,208,63,235,78,178,11,134,191,124,184,237,185,139,36,187,182,88,186,138,24,171,35,237,219,187,157,63,120,244,232,214,57,179,166,223,156,249, - 225,4,79,141,246,145,56,36,88,72,0,224,113,134,129,222,77,98,117,203,150,79,191,185,120,201,119,28,69,97,201,164,107,215,106,78,111,80,213,120, - 137,8,133,56,36,188,155,188,105,104,151,134,191,253,186,11,14,82,45,194,194,219,162,111,159,142,56,119,225,22,20,249,58,228,228,228,64,175,215,215, - 154,46,225,193,221,67,111,80,66,131,8,37,153,132,67,197,111,188,53,190,107,108,236,96,26,23,119,148,57,124,104,215,229,159,118,174,222,207,17,240, - 121,90,131,179,129,16,157,18,156,132,164,210,178,242,27,26,190,72,80,179,251,181,34,177,107,243,136,112,159,55,222,154,228,60,160,255,16,122,252,248, - 97,246,167,189,219,207,255,180,57,106,23,203,81,9,210,82,53,34,101,137,73,73,137,208,165,84,197,106,20,143,27,235,252,98,135,191,208,70,187,217, - 104,204,46,149,203,189,188,250,246,21,167,45,93,42,241,142,142,214,53,124,249,101,181,226,242,101,73,241,141,27,18,169,171,43,227,220,186,181,78,226, - 231,87,126,113,55,155,33,112,117,229,63,185,112,129,99,212,233,158,90,211,52,234,245,217,165,89,89,190,110,221,186,137,30,126,246,153,212,187,125,123, - 29,169,136,33,174,205,208,226,114,185,0,135,99,245,71,175,186,166,173,227,211,106,181,96,1,171,139,148,234,210,100,24,230,25,35,203,98,104,85,96, - 83,63,55,46,88,240,91,80,223,190,69,23,46,92,240,238,222,189,59,81,171,213,80,171,213,207,24,91,126,126,126,164,121,100,164,244,199,243,231,67, - 172,253,48,89,59,158,182,140,157,195,225,252,227,134,214,139,76,245,105,67,192,134,60,90,192,31,30,45,91,12,45,27,61,90,38,147,201,4,47,47, - 47,20,20,20,212,120,225,231,112,56,144,72,36,150,57,226,90,87,222,233,245,250,149,31,125,244,209,212,1,3,6,120,132,133,133,33,63,63,31,222, - 222,222,16,139,197,149,177,99,22,189,155,55,111,98,203,150,45,42,189,94,191,178,14,205,21,75,150,44,121,119,216,176,97,110,62,62,62,112,117,117, - 197,221,187,119,225,234,234,10,149,74,133,228,228,100,56,58,58,130,16,130,178,178,50,28,61,122,84,173,215,235,107,141,251,209,104,52,244,210,165,75, - 70,71,71,199,187,249,249,249,220,162,162,34,94,113,113,49,79,165,82,241,149,74,37,255,228,201,147,30,206,206,206,154,115,231,206,229,7,5,5,113, - 159,60,121,194,53,153,76,117,90,175,132,16,188,255,254,251,16,8,4,208,235,245,88,185,114,37,102,206,156,89,25,147,181,100,201,18,204,157,59,183, - 210,112,222,180,105,83,93,146,207,64,41,133,209,104,132,201,100,130,201,100,178,201,248,253,43,216,98,176,83,74,115,9,33,3,219,181,107,119,122,223, - 190,125,238,21,57,201,160,80,40,160,80,40,144,159,159,143,210,210,82,48,12,3,127,127,127,40,20,10,28,62,124,88,169,86,171,251,214,182,226,144, - 203,229,190,213,181,107,87,94,245,62,88,238,242,44,198,187,72,36,130,92,46,71,143,30,61,132,23,46,92,120,11,47,184,161,101,49,96,154,53,133, - 160,79,223,113,130,102,17,157,12,119,18,227,178,194,27,42,178,70,15,113,58,6,0,183,19,20,206,119,146,93,208,44,98,32,237,211,215,53,90,145, - 187,49,170,121,40,49,214,86,174,7,0,156,165,162,17,189,123,181,151,59,202,100,156,101,203,55,157,88,183,110,69,155,253,199,254,72,239,176,108,121, - 121,122,135,222,189,218,179,15,238,63,24,1,160,230,244,14,213,140,151,129,3,7,221,218,178,109,11,30,36,158,243,251,248,253,22,194,34,133,9,18, - 135,64,180,109,229,131,141,219,238,225,206,157,59,185,6,131,161,71,109,99,167,132,6,37,38,37,132,70,69,52,247,121,227,173,137,78,3,7,14,65, - 92,220,17,236,220,190,249,210,43,163,134,253,240,180,88,197,245,226,75,5,82,202,10,185,2,103,158,64,36,201,51,24,202,215,64,240,249,98,39,96, - 4,91,203,204,33,38,79,28,237,220,179,215,16,28,59,126,4,59,183,111,188,248,105,196,240,205,13,91,55,35,29,218,44,159,220,160,81,112,3,141, - 70,161,4,17,26,117,58,214,113,233,214,244,111,31,207,125,235,241,173,132,17,203,95,212,85,135,58,134,185,183,119,200,144,214,19,110,221,18,57,183, - 104,33,81,92,190,172,243,238,210,69,235,221,165,139,22,192,51,222,58,179,82,201,17,6,4,8,85,121,121,194,155,91,182,136,181,192,253,26,100,239, - 238,28,48,160,221,180,71,143,4,158,93,186,72,228,231,207,75,73,121,37,146,90,13,45,30,143,7,90,243,84,215,51,154,100,199,14,14,128,90,23, - 97,9,4,2,104,52,26,152,128,154,126,4,159,209,244,61,117,42,235,209,163,71,77,221,220,220,158,49,178,138,138,138,42,159,235,116,58,104,52,26, - 72,36,146,68,91,52,21,151,46,233,190,126,255,253,249,175,141,26,181,250,204,217,179,98,119,119,119,40,149,202,103,12,45,131,193,128,158,49,49,130, - 37,183,110,189,1,96,129,45,199,211,187,71,143,58,227,129,185,92,46,216,127,120,234,240,69,166,54,143,86,141,87,53,139,209,100,235,170,67,107,23, - 72,66,72,175,106,155,230,70,71,71,235,82,82,82,16,20,20,84,105,172,84,253,76,39,39,39,184,184,184,224,230,205,155,248,242,203,47,181,0,230, - 214,166,73,41,85,107,52,154,87,123,247,238,173,229,241,120,8,15,15,175,204,159,197,178,44,132,66,33,100,50,25,110,221,186,133,65,131,6,105,52, - 26,205,171,213,115,104,89,209,84,106,52,154,215,251,246,237,171,73,76,76,68,215,174,93,113,231,206,29,148,150,150,162,180,180,20,105,105,105,136,136, - 136,176,4,159,107,53,26,205,235,148,82,101,109,154,106,181,122,208,204,153,51,185,123,246,236,105,232,239,239,31,209,182,109,219,176,152,152,152,198,47, - 191,252,114,240,128,1,3,124,155,54,109,170,235,219,183,175,103,255,254,253,61,53,26,13,255,215,95,127,205,49,153,76,253,235,56,158,0,202,141,147, - 148,148,148,202,169,66,30,143,135,130,130,130,202,204,253,150,31,37,107,134,112,77,154,22,88,150,173,52,176,44,6,87,93,215,128,26,52,235,188,112, - 8,133,66,139,199,243,79,109,173,124,71,183,239,223,191,223,187,91,183,110,183,199,141,27,167,206,205,205,133,163,163,35,66,66,66,16,26,26,10,15, - 15,15,24,141,70,28,58,116,168,236,240,225,195,247,148,74,101,143,234,57,180,170,107,114,56,156,52,107,63,178,22,111,150,197,208,18,139,197,240,247, - 247,183,28,219,52,27,198,254,151,248,199,53,43,12,152,152,158,125,27,13,136,29,234,124,232,200,21,225,234,181,135,239,69,247,194,38,247,6,170,163, - 238,13,84,71,163,123,97,211,234,181,135,239,29,58,114,69,56,32,118,168,115,76,207,190,141,146,18,31,132,61,83,247,208,74,63,197,98,113,167,174, - 93,162,139,47,92,190,200,46,94,242,29,167,103,143,87,110,109,254,225,208,161,205,63,28,58,212,179,199,43,183,22,47,249,142,115,225,242,69,182,107, - 151,232,98,177,88,220,201,150,177,79,158,56,218,57,118,192,16,196,197,29,98,246,255,248,253,146,189,7,82,187,141,159,122,73,145,146,114,135,230,101, - 159,2,159,147,129,164,164,36,165,193,96,232,97,45,16,222,154,230,164,9,163,171,26,89,191,184,251,116,221,116,255,62,204,241,241,63,155,206,158,189, - 165,253,229,118,158,242,70,82,65,145,60,191,232,137,74,85,104,96,89,51,204,102,51,119,225,194,242,128,221,154,190,163,206,157,187,227,220,153,221,216, - 190,109,131,146,101,161,27,190,111,159,121,196,136,207,104,80,80,80,131,93,123,118,147,254,131,135,184,80,128,29,52,108,136,203,158,125,123,72,163,38, - 141,26,132,132,148,167,180,121,17,207,165,47,41,205,43,72,74,250,237,238,230,205,58,159,177,99,221,121,174,174,78,57,241,241,50,173,92,206,51,27, - 141,196,108,52,18,115,89,25,199,80,80,192,229,122,123,11,225,228,228,240,211,232,209,14,102,157,238,212,55,148,150,90,211,92,64,105,177,42,35,227, - 226,205,239,190,211,123,191,250,170,155,208,219,219,9,102,51,177,252,190,215,244,224,241,120,207,120,96,106,211,244,247,240,120,122,244,232,81,132,134,134, - 194,223,223,255,153,120,94,75,66,110,119,119,119,28,56,112,0,20,184,97,139,102,235,134,13,111,126,243,245,215,6,150,101,81,92,92,252,39,111,86, - 113,113,49,88,150,197,241,99,199,12,170,210,210,237,182,142,189,7,151,91,250,218,75,47,45,142,141,141,53,62,122,244,8,44,203,162,170,103,43,47, - 47,15,14,14,14,208,233,245,129,132,16,169,45,154,121,39,79,202,106,88,211,81,73,117,143,214,63,113,46,253,175,82,171,71,139,97,24,4,6,6, - 62,83,210,133,195,225,60,243,168,207,138,67,74,233,14,66,200,169,190,125,251,206,239,208,161,195,228,249,243,231,115,195,194,194,160,84,42,225,234,234, - 10,47,47,47,36,39,39,227,232,209,163,230,130,130,130,245,0,22,217,178,132,158,82,122,158,16,50,176,69,139,22,123,103,207,158,237,220,167,79,31, - 126,96,96,32,40,165,184,117,235,22,14,30,60,104,220,188,121,179,170,194,200,178,41,120,153,82,122,154,16,242,202,128,1,3,118,189,245,214,91,142, - 102,179,153,159,150,150,6,189,94,15,147,201,132,204,204,76,227,207,63,255,92,170,209,104,70,83,74,79,219,160,119,147,16,210,60,62,62,254,173,95, - 127,253,245,203,113,227,198,185,199,196,196,8,24,134,193,229,203,151,243,91,183,110,237,149,151,151,103,60,112,224,64,161,78,167,155,107,54,155,109,42, - 193,67,8,129,74,165,130,135,135,7,244,122,61,88,150,133,193,96,128,131,131,67,101,217,36,74,169,205,11,1,170,195,48,12,215,104,52,98,212,168, - 81,96,89,22,43,87,174,4,195,48,245,22,115,118,118,190,113,251,246,237,129,173,90,149,39,124,231,114,185,149,231,144,72,36,130,135,135,7,220,221, - 221,17,23,23,7,62,159,95,107,150,125,11,21,153,222,91,19,66,58,221,187,119,239,77,0,173,140,70,163,191,217,108,38,28,14,39,135,82,122,87, - 165,82,253,96,107,9,158,188,188,188,47,199,140,25,211,122,247,238,221,14,60,222,31,255,26,60,30,15,34,145,8,94,94,94,112,118,118,6,165,20, - 6,131,1,243,230,205,83,149,149,149,125,89,223,99,241,111,37,186,109,123,108,252,126,149,195,217,115,167,242,239,167,226,96,213,20,14,46,66,224,220, - 69,146,173,200,221,24,37,207,202,114,136,110,219,222,38,77,147,193,88,248,250,232,25,65,21,37,120,230,165,165,165,111,216,181,227,219,199,0,176,116, - 197,202,166,138,194,146,73,15,238,63,24,177,97,195,143,157,76,6,99,161,45,154,127,24,47,187,148,160,208,81,74,175,17,66,26,14,122,245,228,220, - 38,141,156,6,231,21,106,159,150,149,105,222,163,148,90,93,50,111,141,46,157,187,225,220,233,61,216,185,125,151,138,178,92,157,135,135,7,5,128,251, - 247,61,232,253,251,37,244,143,184,98,151,50,62,189,179,104,198,123,49,51,148,170,162,21,43,214,214,158,184,182,69,203,14,104,209,178,3,166,190,247, - 137,115,243,136,240,32,0,216,183,143,154,35,155,146,159,231,207,255,108,240,162,69,159,65,165,214,195,82,174,39,57,33,233,216,163,71,212,182,85,64, - 255,82,204,12,243,203,137,169,83,27,48,106,181,123,155,169,83,61,205,133,133,98,99,86,86,89,89,70,134,86,224,236,204,10,188,189,249,194,224,96, - 190,170,160,64,120,240,245,215,101,5,15,31,102,125,74,105,173,49,174,243,25,230,26,102,204,104,170,41,42,242,236,242,241,199,30,188,143,62,226,212, - 22,12,95,245,255,215,22,205,235,119,239,30,155,52,126,252,211,5,243,231,247,93,191,97,131,36,42,42,10,185,185,185,8,15,15,135,191,191,63,226, - 227,227,113,224,167,159,202,74,212,234,185,0,214,217,162,185,227,248,241,228,176,136,136,130,13,27,54,248,197,198,198,146,178,178,50,40,149,74,40,149, - 74,232,245,122,84,36,132,166,41,169,169,247,77,38,211,122,91,52,187,124,252,177,135,57,63,95,188,168,125,251,108,1,203,126,243,202,176,97,51,23, - 125,254,185,168,81,163,70,68,175,215,87,122,181,140,70,35,28,28,28,140,6,131,193,29,192,159,188,85,214,52,69,155,55,51,249,249,249,240,244,244, - 172,76,215,84,53,47,161,90,173,6,173,98,12,219,177,29,82,211,181,220,205,205,237,6,143,199,11,0,106,175,157,87,117,155,201,100,202,206,207,207, - 143,174,210,166,23,165,212,106,60,20,33,36,4,192,87,61,123,246,124,229,195,15,63,36,23,46,92,192,225,195,135,233,227,199,143,247,3,152,91,211, - 143,100,29,154,142,34,145,232,3,153,76,214,203,146,194,65,42,149,222,43,43,43,59,163,215,235,87,214,148,13,190,14,77,39,145,72,244,190,76,38, - 235,173,86,171,91,1,128,163,163,227,237,178,178,178,120,189,94,191,138,214,80,168,186,14,77,137,179,179,243,151,30,30,30,175,127,244,209,71,238,151, - 46,93,202,57,119,238,156,160,164,164,100,183,193,96,168,177,168,180,53,77,119,119,247,27,92,46,55,224,159,248,142,0,160,101,203,150,113,131,6,13, - 138,29,61,122,52,76,38,19,214,173,91,135,248,248,248,99,169,169,169,3,107,218,199,154,38,33,196,35,32,32,224,194,228,201,147,131,71,141,26,37, - 117,117,117,5,143,199,67,89,89,25,30,62,124,136,91,183,110,209,35,71,142,148,222,188,121,51,91,163,209,116,167,148,22,212,165,249,87,177,166,201, - 231,243,187,5,6,6,254,184,96,193,2,199,222,189,123,75,220,221,221,193,229,114,97,50,153,144,147,147,131,132,132,4,156,58,117,170,108,255,254,253, - 101,133,133,133,163,40,165,23,255,27,253,252,59,53,155,135,146,79,171,21,138,174,49,219,123,109,109,109,233,103,76,119,191,33,35,94,233,223,15,0, - 246,29,56,113,242,236,5,121,173,69,165,107,235,103,93,125,181,69,179,89,83,238,130,196,164,132,103,18,90,70,52,143,76,105,22,53,236,11,91,180, - 44,153,225,171,143,189,74,182,253,63,168,54,205,106,41,60,253,201,220,57,248,234,203,197,56,178,239,208,177,164,71,180,178,76,208,139,120,46,85,217, - 70,22,241,120,29,29,252,253,187,14,92,181,202,232,22,26,74,165,238,238,148,49,24,204,249,247,239,179,89,23,46,144,43,171,86,73,76,26,77,252, - 167,86,74,99,213,164,249,5,143,215,65,234,235,251,210,74,150,157,115,39,33,193,161,234,13,155,197,243,92,245,166,210,207,207,47,79,46,151,123,219, - 162,57,112,205,26,163,70,38,19,205,249,230,155,110,165,58,93,183,69,139,22,241,174,95,191,142,239,191,251,142,209,101,103,239,202,7,222,183,54,27, - 82,155,102,240,251,239,139,103,125,255,253,216,144,38,77,188,222,124,243,77,62,159,207,71,89,89,25,178,178,178,112,250,212,41,67,210,253,251,73,42, - 149,106,48,165,84,110,171,230,192,53,107,140,46,33,33,144,122,122,210,179,231,207,59,79,250,224,131,201,13,26,54,116,238,219,175,31,223,201,201,9, - 197,197,197,72,75,75,195,161,67,135,242,74,75,75,253,40,165,102,91,52,119,253,250,107,139,227,23,47,14,255,226,139,47,132,145,145,145,112,118,118, - 134,90,173,70,66,66,2,46,94,188,168,95,191,126,189,82,169,84,78,102,24,230,104,77,253,252,255,76,149,24,173,99,180,188,28,207,31,239,253,147, - 161,0,182,124,17,132,144,104,0,159,86,188,252,156,214,93,51,240,133,253,241,177,210,38,200,205,205,109,163,78,167,163,90,173,118,18,165,52,243,223, - 214,79,66,8,47,58,58,250,251,188,188,188,78,148,82,56,59,59,95,73,76,76,156,66,41,173,113,174,190,38,77,66,8,23,64,39,7,7,135,246, - 142,142,142,221,244,122,125,179,138,233,183,251,101,101,101,23,141,70,227,53,0,87,40,165,127,90,49,241,159,28,123,69,63,123,251,249,249,141,103,89, - 182,9,33,196,197,108,54,195,100,50,149,176,44,251,80,169,84,110,6,16,255,223,238,231,223,165,25,209,132,188,76,57,104,86,249,102,45,113,87,213, - 13,8,194,226,126,226,67,122,200,214,126,18,66,56,253,123,5,174,5,202,87,38,210,58,74,25,61,99,104,217,96,188,216,194,51,154,77,120,99,40, - 161,207,104,18,74,50,195,215,14,138,250,0,0,32,0,73,68,65,84,91,188,188,211,22,173,154,12,45,91,137,8,35,221,64,209,137,165,184,118,63, - 149,158,171,169,159,127,23,255,105,205,133,132,184,115,128,102,92,145,40,128,101,24,31,112,185,44,225,112,114,24,157,46,27,64,194,130,231,184,249,93, - 76,136,219,119,174,174,87,56,60,158,15,0,78,133,247,133,101,9,49,83,66,152,170,211,91,85,111,44,235,210,52,2,81,124,145,40,208,204,48,222, - 185,128,195,113,179,185,141,142,210,210,0,224,211,91,148,38,63,79,63,141,64,20,87,36,10,58,78,233,144,124,153,172,69,158,86,235,9,128,58,200, - 100,247,85,101,101,219,117,58,221,218,234,51,23,182,104,10,68,162,0,51,195,120,3,0,135,199,203,219,171,215,7,102,59,57,189,169,211,235,131,29, - 28,28,76,6,131,65,165,211,233,70,155,76,166,179,245,25,251,67,134,105,254,43,135,211,213,40,147,185,27,9,145,25,24,198,104,48,26,179,116,58, - 221,61,0,223,82,74,43,211,143,216,13,45,235,84,49,184,254,136,219,178,172,78,251,39,30,0,122,217,53,237,154,118,77,187,166,93,211,174,105,215, - 252,231,53,1,72,1,4,1,224,254,155,251,249,191,248,0,48,177,226,225,91,253,189,186,39,178,237,216,177,99,199,142,29,59,255,122,40,165,26,88, - 137,201,178,243,207,67,107,89,117,72,0,88,93,57,64,235,225,18,124,158,213,7,117,233,219,53,237,154,118,77,187,166,93,211,174,105,215,252,223,211, - 172,75,187,62,246,199,191,5,82,75,30,173,127,218,149,246,66,184,43,237,154,118,77,187,166,93,211,174,105,215,180,107,254,119,53,255,23,30,0,38, - 86,223,246,215,10,20,254,15,67,8,241,38,132,88,45,139,240,87,218,218,121,241,176,127,191,118,236,216,177,99,167,46,8,33,19,169,149,41,196,255, - 120,140,150,229,130,69,41,181,90,215,170,190,237,254,238,125,43,246,95,76,8,102,85,60,95,66,41,157,243,119,180,181,225,115,253,60,60,60,134,121, - 121,121,181,45,44,44,188,166,80,40,246,83,74,243,234,177,127,83,169,84,58,133,16,18,9,0,148,210,4,141,70,243,61,165,52,245,121,251,84,69, - 155,0,152,40,18,137,70,186,186,186,54,41,42,42,122,104,48,24,246,1,216,64,43,204,248,122,234,133,1,24,133,242,233,235,131,148,210,187,182,238, - 235,29,57,244,39,10,52,5,192,97,9,59,156,67,57,251,1,176,4,72,85,36,28,30,89,223,190,212,209,207,191,237,251,253,155,250,211,140,16,172, - 35,132,52,99,89,186,138,82,186,168,142,246,45,8,193,26,66,72,88,69,251,122,165,66,176,99,199,142,29,59,117,99,153,58,180,182,234,176,94,134, - 150,191,191,255,43,148,210,73,0,40,33,100,227,211,167,79,15,212,179,35,54,93,180,254,202,197,173,218,190,43,40,165,51,235,217,71,111,66,48,139, - 101,41,7,0,56,28,242,177,183,183,183,148,203,229,254,41,192,208,108,54,75,9,193,84,150,165,164,162,237,44,66,200,170,231,53,14,223,120,227,141, - 21,171,86,173,18,75,165,82,100,100,100,244,153,60,121,114,103,66,200,12,90,45,39,135,53,36,18,201,107,237,218,119,154,241,205,210,229,14,222,94, - 94,50,198,204,26,211,210,211,101,243,230,204,108,47,145,72,86,213,86,76,185,90,63,8,128,137,60,30,111,164,88,44,110,172,211,233,30,49,12,179, - 159,203,229,246,253,242,203,47,35,7,12,24,32,86,169,84,66,134,97,154,236,220,185,115,198,150,45,91,250,19,66,134,208,90,150,233,19,66,252,1, - 128,82,90,181,150,217,240,140,140,140,104,129,64,64,66,66,66,56,0,238,214,209,190,18,10,52,77,188,188,47,10,0,34,186,140,72,73,188,188,15, - 21,207,109,25,162,205,88,59,23,196,98,241,122,157,78,151,105,121,191,162,159,207,101,208,63,95,159,176,118,221,218,53,157,219,69,183,32,99,39,188, - 183,144,16,114,145,82,250,11,33,132,15,96,56,0,1,128,219,148,210,132,138,62,111,219,188,113,125,100,203,168,112,242,250,91,147,22,17,66,206,81, - 74,175,254,167,250,107,199,142,29,59,255,31,176,230,201,178,80,95,143,214,187,169,169,169,14,0,16,26,26,58,5,128,205,134,150,181,139,86,76,76, - 76,107,137,68,242,76,22,100,173,86,43,36,4,49,207,99,188,88,62,195,96,208,115,248,124,33,56,28,50,163,69,139,22,13,10,10,10,46,113,56, - 156,93,217,217,217,197,245,26,109,185,38,54,109,218,20,234,235,235,251,167,108,205,57,57,57,194,33,67,6,215,75,111,44,33,34,189,72,212,94,64, - 136,175,153,97,92,0,128,199,227,21,135,57,59,71,127,245,197,23,82,66,8,91,88,88,8,173,86,139,233,211,167,75,146,146,146,134,2,88,91,71, - 31,67,59,116,236,60,253,212,169,147,205,84,69,197,186,77,43,54,222,210,242,248,101,141,154,55,19,126,191,113,187,203,196,177,163,223,35,132,220,166, - 86,202,145,84,211,225,0,56,244,193,7,31,68,12,28,56,80,168,86,171,197,90,173,182,193,174,93,187,230,69,71,71,59,180,106,213,74,248,227,143, - 63,18,165,82,9,74,169,52,60,60,156,142,28,57,82,183,119,239,222,169,0,86,215,160,89,105,248,114,185,220,149,97,97,97,11,42,198,44,168,210, - 134,223,188,121,115,25,0,36,39,39,47,36,4,31,84,108,183,106,100,19,32,53,162,203,8,128,160,73,226,229,125,226,136,174,35,116,160,120,72,128, - 84,0,240,247,247,95,4,84,201,11,245,44,247,159,62,125,250,92,181,9,7,14,28,68,0,236,247,243,243,59,144,151,151,215,144,16,76,168,173,159, - 214,240,241,241,9,246,244,244,92,195,178,172,49,49,49,113,152,101,123,116,116,116,39,71,71,199,24,181,90,125,233,198,141,27,23,107,218,159,67,72, - 211,118,209,45,73,139,54,157,224,236,236,12,169,84,250,46,128,95,0,140,154,53,107,214,180,208,208,80,44,93,186,212,8,160,99,197,13,66,120,187, - 182,173,72,120,68,27,56,58,58,2,64,35,0,118,67,203,142,29,59,118,254,70,8,33,190,0,98,171,110,123,46,143,22,0,33,0,92,186,116,9, - 0,68,207,211,151,42,157,194,251,239,191,15,95,95,223,103,26,228,228,228,224,194,5,155,170,228,216,244,25,159,127,254,185,67,73,73,73,175,31,126, - 248,225,37,127,127,255,101,79,159,62,253,173,182,157,41,165,10,66,200,18,14,135,124,76,8,129,72,36,78,153,60,121,242,173,138,183,27,252,252,243, - 207,210,65,131,6,105,0,164,3,128,72,36,246,231,114,57,161,229,65,111,88,82,155,65,56,130,144,16,161,80,216,115,210,154,53,76,155,65,131,120, - 50,79,79,2,0,233,15,30,184,47,89,186,180,115,241,227,199,66,173,187,123,97,97,89,153,54,37,37,5,34,145,136,112,185,220,54,117,13,88,38, - 147,77,251,226,171,37,50,85,81,137,86,175,42,53,112,205,38,189,163,68,98,206,205,85,20,56,72,165,154,57,159,46,20,188,51,225,205,105,0,166, - 212,33,53,117,198,140,25,205,218,181,107,231,255,211,79,63,17,165,82,9,30,143,231,208,170,85,43,68,71,71,155,207,157,59,71,26,54,108,136,200, - 200,72,92,190,124,25,87,174,92,33,173,91,183,150,30,60,120,240,13,88,49,180,170,27,215,92,46,103,122,120,120,120,43,153,76,102,8,13,13,197, - 132,9,19,64,41,69,175,94,189,34,29,28,28,14,148,149,149,9,147,147,31,188,84,151,145,109,153,30,244,138,28,122,23,64,20,40,30,230,37,28, - 110,81,165,73,179,228,228,228,14,197,197,197,149,193,136,150,2,230,47,189,244,82,93,135,179,18,203,185,48,120,240,160,143,1,66,98,98,98,74,166, - 78,157,202,121,240,224,193,235,47,191,60,52,50,53,245,33,106,235,103,117,124,124,124,130,251,245,235,183,123,243,230,205,109,187,116,233,114,161,234,123, - 174,174,174,125,215,173,91,55,109,219,182,109,225,237,218,181,43,249,253,247,223,173,150,36,49,179,244,251,177,19,166,46,114,118,118,70,70,122,154,121, - 220,184,113,77,253,253,253,95,1,32,138,140,140,68,251,246,237,177,97,195,6,1,0,8,4,130,25,61,122,244,44,122,99,204,36,111,71,71,71,164, - 166,38,43,1,28,179,249,0,216,177,99,199,142,29,91,137,165,148,110,180,22,167,197,3,128,99,199,142,85,198,216,196,198,198,214,88,184,144,82,170, - 184,115,231,78,160,70,163,177,105,186,132,86,89,162,73,41,85,112,185,220,239,57,28,50,133,16,130,200,200,168,39,43,87,174,180,86,211,203,16,25, - 25,245,132,203,229,52,162,148,130,16,206,58,150,53,43,172,105,90,235,31,33,100,137,80,40,154,5,0,62,62,190,143,79,156,56,97,24,62,124,56, - 150,46,93,42,152,61,123,246,204,224,224,224,169,25,25,25,185,53,245,179,226,245,28,111,111,111,233,166,77,155,66,39,79,158,124,75,46,151,207,1, - 0,63,63,191,197,0,154,3,72,175,178,13,235,215,239,125,58,97,194,132,20,133,66,49,167,38,205,87,8,105,28,28,30,222,115,209,165,75,148,163, - 215,147,130,95,126,81,229,43,20,166,71,249,249,210,109,55,110,12,156,183,120,49,63,48,40,8,23,142,30,245,40,208,104,242,149,122,189,78,161,80, - 80,134,97,174,212,164,89,133,8,47,79,79,233,134,111,215,93,119,228,115,89,111,127,127,194,115,115,225,115,164,206,66,14,143,167,107,20,220,68,0, - 32,162,134,99,86,169,41,16,8,222,232,211,167,143,116,239,222,189,36,50,50,18,46,46,46,248,229,151,95,112,251,246,109,152,76,38,78,113,113,49, - 218,182,109,139,111,190,249,6,65,65,65,40,41,41,65,102,102,166,135,80,40,244,172,229,120,62,115,62,205,154,53,11,190,190,190,96,24,6,69,69, - 69,96,24,6,14,14,14,0,128,236,236,108,28,61,106,189,34,75,109,223,123,13,237,209,177,99,71,53,33,228,126,181,183,238,87,105,83,167,166,191, - 191,255,143,121,121,249,253,123,246,236,137,226,226,98,211,103,159,125,134,22,45,90,32,44,44,204,106,251,170,154,173,91,183,126,217,108,54,79,0,0, - 163,209,24,231,235,235,59,120,249,242,229,193,28,14,167,242,6,199,226,201,82,42,149,197,9,9,9,201,175,189,246,90,247,219,183,111,103,181,108,217, - 50,243,206,157,59,202,234,154,148,210,207,249,124,254,111,206,206,206,95,238,222,189,91,216,162,69,11,38,47,47,111,214,229,203,151,115,151,45,91,70, - 101,50,25,201,201,201,209,54,106,212,104,103,108,108,108,216,180,105,211,228,203,151,47,87,239,217,179,231,154,86,171,157,78,41,45,177,117,236,245,197, - 174,105,215,180,107,218,53,255,10,182,218,34,255,82,142,85,143,211,122,198,163,21,27,27,75,142,29,59,70,109,24,88,97,64,64,64,160,68,34,1, - 0,155,10,192,86,197,108,54,79,245,240,240,200,155,51,103,78,151,208,208,80,195,212,169,83,19,210,210,210,230,86,109,211,176,97,195,47,191,251,238, - 59,164,164,164,164,47,94,188,248,114,65,65,65,189,130,119,41,165,179,9,33,43,1,32,39,39,167,224,232,209,163,45,46,93,186,52,101,197,138,21, - 158,239,190,251,174,96,218,180,105,163,1,44,173,75,135,203,229,106,172,77,23,90,195,215,215,215,96,45,134,203,194,32,66,36,78,66,97,143,69,151, - 46,81,67,122,186,102,203,242,229,142,27,126,255,125,129,137,82,111,47,47,47,116,237,220,185,84,204,229,22,228,229,230,178,94,141,27,115,211,78,156, - 240,208,10,133,242,189,123,247,42,11,11,11,15,215,245,249,132,16,149,153,101,141,142,254,129,204,240,151,251,68,92,191,118,251,129,163,167,7,39,186, - 117,100,84,82,74,250,77,106,54,155,8,33,86,107,50,86,197,217,217,57,180,176,176,16,42,149,10,158,158,158,88,185,114,37,124,124,124,160,209,104, - 112,245,234,85,26,16,16,64,46,93,186,132,128,128,0,228,231,231,195,96,48,64,173,86,231,233,245,122,171,181,25,41,165,10,30,143,183,149,195,33, - 99,9,33,104,212,40,36,99,237,218,181,6,150,101,209,172,89,51,188,252,242,203,56,120,240,32,18,19,19,45,158,39,67,112,112,131,12,14,135,4, - 151,239,94,187,135,176,54,44,165,125,158,62,125,58,172,238,214,127,134,16,194,241,243,243,27,221,180,105,211,41,175,189,246,154,73,40,20,162,172,172, - 12,26,141,6,137,137,137,166,254,253,7,148,12,30,60,200,57,46,46,174,198,126,154,76,166,9,183,110,221,234,162,211,233,138,135,15,31,238,186,104, - 209,34,46,143,199,51,2,128,217,92,94,189,199,226,201,218,186,117,235,169,111,191,253,246,252,234,213,171,253,222,121,231,157,238,159,126,250,233,121,0, - 39,173,245,205,100,50,157,13,8,8,184,253,213,87,95,237,218,180,105,147,231,242,229,203,57,102,179,217,143,101,89,152,205,102,176,44,43,49,155,205, - 97,148,82,228,231,231,227,202,149,43,215,181,90,237,216,218,226,232,236,216,177,99,231,191,77,61,108,145,127,29,21,177,212,86,227,180,254,227,171,14, - 185,92,238,134,211,167,79,183,122,233,165,151,120,49,49,49,145,1,1,1,145,217,217,217,9,0,16,16,16,16,217,175,95,191,72,47,47,47,172,90, - 181,74,195,229,114,55,60,207,103,84,187,232,221,242,245,245,93,118,240,224,193,37,147,38,77,130,143,143,79,243,191,101,32,245,192,73,36,106,61,110, - 229,74,134,111,50,113,214,44,91,230,180,252,252,249,37,63,237,219,199,235,216,177,35,161,148,226,222,221,187,146,111,86,175,150,142,26,58,52,61,249, - 241,99,230,200,169,83,38,197,211,167,69,79,243,243,231,83,74,139,234,210,55,153,76,87,83,31,166,250,119,233,209,201,239,151,223,19,111,15,27,58, - 160,39,159,199,33,15,211,159,222,240,245,241,112,190,112,62,94,103,50,153,234,140,203,41,43,43,75,99,24,198,141,82,234,121,225,194,5,120,122,122, - 162,184,184,24,38,147,9,6,131,193,160,209,104,196,133,133,133,208,233,116,208,235,245,112,114,114,194,189,123,247,20,12,195,156,171,73,147,97,152,113, - 98,177,248,115,62,159,47,20,8,4,242,27,55,110,64,165,82,53,112,113,113,89,202,48,12,228,114,57,46,93,186,244,145,147,147,83,58,0,136,197, - 98,8,133,34,119,189,94,207,212,20,12,111,11,207,177,16,178,18,95,95,223,160,70,141,26,45,250,248,227,89,205,90,182,108,133,252,252,124,176,44, - 11,153,76,6,141,70,3,39,39,39,116,234,212,41,109,225,194,133,57,148,98,98,45,198,32,23,0,207,100,50,9,6,15,30,236,44,149,74,75,51, - 51,51,139,194,195,195,3,45,134,86,113,113,241,189,123,247,238,61,24,53,106,84,183,51,103,206,220,191,118,237,218,253,174,93,187,182,228,112,56,13, - 106,235,99,118,118,118,113,64,64,192,180,233,211,167,175,27,60,120,176,11,33,4,60,30,15,157,58,117,66,118,118,54,146,147,147,193,48,12,142,28, - 57,82,92,92,92,188,192,110,100,217,177,99,199,206,63,71,149,24,173,63,21,149,254,143,27,90,10,133,34,63,32,32,224,228,205,155,55,7,142,28, - 57,18,23,46,92,24,3,96,6,0,136,68,162,49,35,71,142,196,205,155,55,241,224,193,131,147,10,133,34,255,239,248,76,161,80,168,51,24,202,157, - 83,98,177,88,92,207,221,27,84,76,25,2,64,131,90,182,213,8,135,199,243,141,234,215,143,87,124,251,182,106,211,181,107,159,239,218,181,139,215,165, - 75,23,98,50,26,97,102,89,132,132,132,144,152,94,189,100,91,119,237,114,51,151,149,93,250,226,227,143,127,217,56,110,92,105,10,165,233,182,116,80, - 175,215,175,126,111,202,196,222,103,207,95,242,11,15,15,113,63,25,127,254,150,187,155,179,52,180,105,83,89,81,113,177,121,238,236,89,60,189,94,191, - 166,46,29,173,86,123,232,204,153,51,67,3,3,3,61,19,18,18,96,48,24,96,54,155,17,19,19,3,74,169,8,0,203,227,241,240,224,193,3,24, - 141,198,188,212,212,84,249,195,135,15,69,0,190,174,77,87,167,211,101,84,125,29,24,24,216,59,54,54,22,12,195,160,95,191,126,56,114,228,72,239, - 164,164,164,229,85,154,148,217,50,238,218,168,240,144,53,243,247,247,63,88,177,201,166,32,248,128,128,128,200,166,77,155,174,255,250,235,175,5,1,1, - 1,160,148,194,213,213,5,26,141,6,5,5,133,136,136,136,64,64,64,0,190,254,250,107,0,216,83,155,199,141,101,89,40,20,138,226,71,143,30,229, - 60,121,242,196,53,52,52,20,132,16,148,149,149,105,45,134,150,76,38,59,118,224,192,129,30,95,125,245,85,68,120,120,120,80,98,98,98,94,191,126, - 253,164,65,65,65,161,11,23,46,228,44,88,176,160,70,3,41,59,59,251,113,243,230,205,7,44,90,180,168,133,217,108,22,122,120,120,204,111,215,174, - 157,203,141,27,55,176,106,213,170,205,148,210,20,55,55,183,171,28,14,199,199,215,215,247,101,46,151,123,241,121,22,132,216,177,99,199,142,157,58,169, - 140,209,66,53,207,150,205,134,86,243,230,205,101,74,165,242,205,6,13,26,8,1,64,34,145,52,111,220,184,241,204,71,143,30,89,173,190,94,27,26, - 141,230,167,93,187,118,245,249,246,219,111,5,3,6,12,104,28,16,16,208,14,0,134,13,27,214,216,209,209,17,187,118,237,50,106,52,154,159,234,171, - 91,19,38,147,233,165,182,109,219,162,168,168,8,233,233,233,9,245,217,247,231,159,127,150,162,60,46,171,214,109,181,193,24,12,174,46,254,254,156,167, - 231,207,27,139,84,42,223,151,186,117,35,38,163,17,28,14,7,133,133,133,200,204,204,132,179,139,11,121,144,154,234,176,121,214,172,159,27,180,108,41, - 52,27,12,238,182,234,83,74,203,8,33,99,222,155,250,238,161,221,187,247,120,148,148,168,30,139,37,18,131,72,200,247,158,54,245,93,115,81,81,209, - 91,148,210,82,27,164,190,222,189,123,119,191,126,253,250,221,13,10,10,242,202,207,207,247,41,41,41,49,23,21,21,113,81,30,107,69,0,224,252,249, - 243,80,169,84,140,217,108,190,4,96,17,165,212,166,41,86,0,104,208,160,129,115,251,246,237,187,123,122,122,66,169,84,194,221,221,29,173,90,181,234, - 222,160,65,131,31,210,211,211,149,182,234,216,66,124,124,188,35,165,180,3,165,20,253,250,245,179,105,31,179,217,252,118,108,108,172,128,16,2,173,86, - 3,177,88,2,153,204,1,142,142,78,8,13,13,131,92,46,71,223,190,125,13,143,30,61,250,62,39,39,167,214,115,148,101,89,228,228,228,232,10,10, - 10,144,153,153,201,47,40,40,0,0,20,23,23,107,45,193,249,127,149,164,164,36,99,64,64,192,99,169,84,250,205,196,137,19,93,24,134,65,227,198, - 141,225,235,235,219,53,47,47,239,74,73,73,201,248,14,29,58,188,213,165,75,23,238,182,109,219,134,0,120,243,111,249,96,59,118,236,216,177,243,12, - 181,198,104,1,181,7,158,249,250,250,118,117,115,115,155,167,213,106,133,150,41,25,66,136,208,211,211,243,136,159,159,223,98,185,92,94,175,160,184,226, - 226,98,149,175,175,239,145,171,87,175,142,24,54,108,24,226,227,227,223,2,128,97,195,134,225,234,213,171,120,242,228,201,145,226,226,226,58,99,138,108, - 33,32,32,160,127,247,238,221,135,181,109,219,22,113,113,113,48,155,205,87,234,222,235,15,170,174,48,132,149,85,135,150,109,54,137,113,185,32,132,128, - 97,24,0,64,65,126,62,82,146,147,81,84,92,12,189,78,135,50,141,198,28,218,176,161,86,105,48,240,9,80,175,185,47,74,105,134,131,131,67,166, - 70,83,230,229,230,225,170,149,137,197,40,81,41,5,55,174,255,166,166,148,62,178,81,195,64,8,233,118,226,196,137,249,92,46,119,164,131,131,3,166, - 76,153,194,237,222,189,59,4,2,1,244,122,61,74,74,74,176,107,215,174,124,134,97,26,1,0,33,196,65,38,147,109,231,114,185,217,42,149,106,94, - 93,159,97,48,24,6,12,28,56,144,103,48,24,240,197,23,95,96,193,130,5,232,215,175,31,239,250,245,235,3,0,236,174,207,152,107,131,101,89,244, - 238,221,187,106,48,124,245,160,120,171,240,249,252,200,38,77,154,32,63,63,31,249,249,249,240,244,244,132,159,159,31,124,124,124,176,124,249,114,186,106, - 213,170,147,70,163,241,251,252,252,252,58,99,199,204,102,51,30,61,122,164,213,235,245,92,14,135,35,49,153,76,2,149,74,101,204,206,206,214,90,206, - 1,181,90,221,111,218,180,105,45,53,26,141,230,193,131,7,153,99,198,140,233,168,209,104,52,153,153,153,41,7,15,30,172,211,26,243,243,243,11,244, - 243,243,219,56,127,254,124,247,192,192,64,200,229,114,4,7,7,99,217,178,101,77,246,236,217,179,181,121,243,230,104,213,170,21,180,90,45,120,60,158, - 204,150,99,96,199,142,29,59,255,45,94,196,248,44,224,47,228,209,10,10,10,114,49,155,205,31,13,26,52,168,247,208,161,67,209,183,111,223,103,222, - 223,189,123,183,227,129,3,7,22,7,6,6,246,51,26,141,95,215,103,170,143,101,217,67,187,119,239,30,208,177,99,71,105,143,30,61,66,0,64,36, - 18,25,118,239,222,173,97,89,246,144,173,58,22,170,39,143,244,247,247,111,193,227,241,134,13,28,56,176,197,216,177,99,145,152,152,136,93,187,118,61, - 12,13,13,189,92,79,233,244,58,86,29,90,182,213,8,87,40,44,44,201,205,117,113,8,10,226,187,58,58,230,196,197,197,5,246,234,213,139,100,101, - 101,161,184,184,24,58,157,14,215,175,95,103,121,64,6,207,213,149,100,92,189,74,184,66,97,189,23,27,4,250,186,54,253,116,246,228,6,58,157,46, - 66,169,84,50,124,62,159,31,224,227,146,85,31,13,74,169,94,38,147,69,3,224,177,44,171,113,115,115,147,158,62,125,26,66,161,16,132,16,68,69, - 69,65,44,22,11,100,50,89,38,0,248,248,248,8,55,108,216,224,60,122,244,232,95,234,210,110,211,166,13,191,97,195,134,131,67,67,67,113,245,234, - 85,36,36,36,100,92,189,122,53,184,117,235,214,8,10,10,26,220,166,77,155,125,55,111,222,52,213,119,220,53,140,227,185,130,225,205,102,51,75,8, - 1,135,195,1,203,178,200,207,207,71,163,70,141,176,118,237,90,172,92,185,242,11,185,92,126,180,30,90,230,210,210,82,142,131,131,131,52,35,35,67, - 37,147,201,28,117,58,157,38,53,53,85,103,241,104,185,185,185,53,143,138,138,10,223,186,117,235,41,129,64,32,106,223,190,125,179,244,244,244,108,150, - 101,109,154,54,22,137,68,147,151,45,91,230,238,228,228,132,221,187,119,99,207,158,61,41,29,58,116,8,157,48,97,2,198,142,29,11,134,97,112,243, - 230,77,108,221,186,53,167,176,176,240,191,154,213,222,142,29,59,118,254,87,169,173,168,116,141,134,86,80,80,208,8,129,64,240,225,171,175,190,202,13, - 11,11,131,66,161,128,147,147,147,169,34,3,53,92,92,92,76,18,137,4,147,39,79,70,203,150,45,187,206,154,53,171,179,191,191,255,218,167,79,159, - 110,183,165,83,10,133,66,227,235,235,187,127,202,148,41,95,223,190,125,171,17,0,252,254,251,239,79,228,114,249,108,133,66,81,227,10,190,26,6,104, - 73,138,73,36,18,201,181,166,77,155,166,245,239,223,223,105,232,208,161,240,244,244,196,205,155,55,241,205,55,223,164,26,12,134,249,23,46,92,96,234, - 163,253,119,192,232,245,185,55,14,31,118,236,254,250,235,78,239,199,198,46,123,119,202,148,111,63,253,244,83,94,88,88,24,209,104,52,184,118,237,26, - 61,112,224,128,105,235,231,159,175,132,76,198,191,122,224,128,208,96,48,100,212,231,51,2,2,2,186,13,232,215,45,108,217,183,171,161,211,150,226,218, - 149,99,40,46,206,199,134,141,7,195,2,2,2,186,101,103,103,95,180,85,139,16,18,26,31,31,239,69,41,133,80,40,196,162,69,139,224,231,231,7, - 39,39,39,168,213,106,204,152,49,195,249,131,15,62,112,6,128,196,196,196,202,244,12,117,33,151,203,59,77,158,60,217,145,97,24,156,60,121,210,64, - 8,153,119,230,204,153,31,162,162,162,132,93,187,118,117,220,177,99,71,103,0,23,234,20,178,129,231,13,134,167,148,62,60,125,250,116,219,145,35,71, - 82,62,159,79,74,74,74,224,226,226,130,181,107,215,150,229,228,228,212,43,7,21,165,116,211,210,165,75,39,0,0,203,178,113,203,150,45,27,62,103, - 206,156,38,89,89,89,101,149,94,205,130,130,115,227,199,143,55,171,213,106,195,188,121,243,134,139,68,34,225,186,117,235,46,80,74,107,205,247,102,65, - 42,149,134,56,57,57,33,62,62,30,59,119,238,220,152,147,147,179,49,40,40,168,117,114,114,242,220,30,61,122,4,102,101,101,177,215,175,95,223,225, - 226,226,178,81,46,151,27,235,125,64,236,216,177,99,199,78,157,212,148,67,11,168,197,208,50,155,205,147,79,157,58,197,101,89,22,27,55,110,196,141, - 27,55,168,84,42,157,39,149,74,191,147,72,36,102,173,86,59,105,194,132,9,163,23,44,88,192,233,218,181,43,174,94,189,202,105,212,168,209,91,0, - 42,13,45,66,72,175,218,114,109,40,149,202,235,10,69,110,163,42,9,42,27,137,68,226,235,181,13,166,186,166,149,164,152,237,23,45,90,84,230,235, - 235,107,72,72,72,192,250,245,235,217,27,55,110,156,23,10,133,27,228,114,185,222,22,205,191,131,170,154,66,134,185,185,115,230,204,102,109,134,12,97, - 199,127,248,97,169,64,34,153,182,108,245,234,89,37,106,181,31,8,161,238,206,206,25,27,23,45,90,220,111,240,224,210,196,139,23,197,183,227,227,249, - 158,38,211,157,250,244,51,59,59,251,98,211,198,65,216,182,233,91,24,141,122,228,60,205,0,0,20,20,42,81,155,145,101,77,147,97,24,229,43,175, - 188,34,0,32,121,227,141,55,132,121,121,121,104,220,184,49,0,64,165,82,225,216,177,99,8,15,15,7,0,220,187,119,175,242,121,93,253,148,201,100, - 131,59,119,238,140,140,140,12,36,38,38,158,149,203,229,133,126,126,126,103,179,178,178,6,180,109,219,22,135,14,29,26,132,26,12,173,250,126,71,182, - 24,90,214,52,37,18,201,236,131,7,15,190,125,229,202,149,145,51,103,206,228,199,196,196,0,0,212,106,181,134,82,106,174,143,230,147,39,79,14,1, - 168,244,206,250,248,248,156,88,180,104,209,150,113,227,198,53,180,244,239,206,157,59,87,1,92,237,221,187,247,167,81,81,81,97,91,183,110,61,85,80, - 80,176,203,146,67,171,166,126,86,133,97,24,24,12,6,16,66,146,0,32,51,51,243,86,155,54,109,70,238,217,179,199,67,34,145,232,228,114,121,137, - 45,99,255,171,216,53,237,154,118,77,187,230,255,103,106,77,88,90,195,14,12,203,178,184,112,225,2,14,30,60,104,54,26,141,19,229,114,121,213,108, - 213,171,253,252,252,226,95,121,229,149,237,201,201,201,220,164,164,36,216,114,33,170,138,78,167,51,17,242,231,109,245,209,176,198,182,109,219,144,155,155, - 107,204,202,202,58,195,48,204,161,191,184,122,241,47,175,58,220,74,169,254,117,66,206,44,232,210,165,247,252,248,120,209,248,79,62,209,143,25,59,246, - 35,179,193,96,226,10,4,172,80,38,227,152,69,34,126,226,197,139,226,85,239,188,227,166,213,235,79,238,172,71,128,57,80,233,209,194,152,241,211,161, - 173,226,209,186,122,61,5,245,245,104,233,116,186,8,0,144,72,36,153,0,124,222,124,243,77,176,44,11,173,86,11,181,90,13,185,92,174,28,59,118, - 172,25,0,100,50,25,111,216,176,97,78,182,232,134,132,132,248,241,249,124,156,60,121,18,124,62,255,24,0,240,249,252,99,241,241,241,3,70,141,26, - 5,127,127,255,16,66,8,161,117,88,73,149,69,165,9,154,0,0,8,154,120,69,14,189,91,165,168,244,253,214,173,91,3,54,198,101,85,165,98,113, - 199,74,15,15,143,125,179,102,205,154,210,190,125,251,62,11,22,44,32,40,79,213,240,151,200,205,205,205,240,241,241,121,251,243,207,63,95,3,224,25, - 239,82,133,103,139,170,213,234,219,55,110,220,176,154,21,190,38,204,102,115,101,94,46,11,21,83,176,117,214,200,180,99,199,142,29,59,127,15,245,246, - 104,17,66,54,118,235,214,109,34,0,46,33,100,253,211,167,79,255,244,227,47,151,203,83,252,253,253,151,54,108,216,176,178,208,116,125,58,85,145,201, - 253,27,14,135,204,42,127,93,255,4,149,244,143,146,57,179,0,16,14,135,187,253,214,173,91,159,100,102,102,230,215,215,240,179,198,223,177,234,16,0, - 118,83,154,54,138,144,83,31,70,70,246,234,247,206,59,104,209,175,159,147,95,112,176,89,107,52,178,247,46,95,38,87,246,239,23,220,142,143,231,107, - 245,250,147,7,41,205,172,111,63,179,179,179,47,54,14,9,56,61,124,216,128,62,33,13,253,0,0,143,211,228,40,40,82,158,174,143,145,85,21,157, - 78,55,100,237,218,181,71,5,2,1,143,86,41,101,99,52,26,139,44,198,24,33,196,111,227,198,141,63,114,56,156,140,186,244,146,146,146,142,204,159, - 63,127,88,122,122,250,233,204,204,204,116,0,200,200,200,72,247,243,243,219,158,147,147,51,44,35,35,227,64,93,70,22,240,167,162,210,72,188,188,79, - 12,32,202,82,84,250,121,107,25,86,165,160,160,32,7,192,60,95,95,223,221,125,250,244,153,0,224,185,115,122,85,37,55,55,55,3,192,192,234,219, - 45,158,173,231,144,100,42,146,148,130,16,242,252,201,195,236,216,177,99,231,223,79,91,0,150,74,36,22,7,138,103,181,231,6,84,148,11,172,192,242, - 58,31,192,245,42,26,85,183,215,181,47,0,20,0,184,91,177,237,79,84,95,113,8,216,16,163,245,244,233,211,3,176,161,104,180,173,237,106,130,82, - 58,135,16,178,170,226,249,115,101,1,175,170,193,48,204,115,105,84,135,195,225,164,13,26,52,168,94,237,235,106,243,35,165,25,211,8,217,17,183,102, - 77,171,147,235,215,251,155,25,198,157,0,148,43,20,22,26,12,134,116,79,147,233,78,125,61,89,85,121,244,56,187,47,0,132,134,134,210,212,212,84, - 80,74,255,210,234,13,74,233,29,0,129,117,180,145,3,232,106,139,94,118,118,246,30,0,123,170,111,151,203,229,63,2,248,209,214,126,85,22,149,6, - 56,44,97,135,71,116,25,177,31,0,107,41,42,253,119,146,147,147,147,140,138,60,111,255,70,138,138,138,206,237,217,179,167,73,66,66,130,210,108,54, - 63,254,111,247,199,142,29,59,118,254,33,218,2,240,36,132,196,1,0,165,116,32,0,16,66,226,170,63,183,180,177,180,171,218,198,162,81,125,123,109, - 251,2,192,236,217,179,63,89,188,120,177,20,128,213,98,204,207,189,234,240,63,197,243,26,88,127,183,70,85,178,179,179,55,253,157,122,22,86,151,27, - 82,54,5,58,63,47,41,41,41,47,228,242,88,91,177,20,149,174,66,228,127,165,35,255,2,114,114,114,182,30,58,116,232,10,128,194,220,220,220,122, - 175,84,181,99,199,142,157,23,4,79,107,134,145,181,134,86,140,171,26,177,214,206,218,107,66,72,220,226,197,139,107,213,179,230,205,2,254,37,134,150, - 29,59,118,158,143,138,210,58,41,255,237,126,216,177,99,199,206,139,72,117,47,22,240,103,227,139,16,18,55,123,246,236,79,80,195,180,97,69,155,103, - 226,179,170,190,38,0,122,213,240,225,54,175,38,32,132,88,213,168,141,186,244,237,154,118,77,187,166,93,211,174,105,215,180,107,254,239,105,214,165,93, - 195,254,177,53,77,245,213,54,141,88,253,121,93,251,218,208,214,106,154,159,218,12,45,75,77,184,127,228,1,160,151,93,211,174,105,215,180,107,218,53, - 237,154,118,77,187,230,95,124,180,165,148,198,162,188,106,10,165,148,198,82,74,251,205,158,61,123,142,101,219,236,217,179,231,80,74,99,44,237,42,218, - 84,238,99,217,86,253,111,245,109,117,180,173,237,152,76,180,60,170,110,183,79,29,218,177,99,199,142,29,59,118,254,237,92,7,208,150,254,225,109,202, - 7,112,111,241,226,197,197,85,98,167,242,1,220,1,208,178,162,93,62,240,167,152,43,67,197,107,131,149,54,6,91,218,214,4,173,33,32,222,110,104, - 213,64,43,95,238,231,65,1,94,209,64,133,215,175,162,100,10,91,110,181,130,86,152,175,96,89,80,74,33,207,43,185,121,87,65,63,125,222,207,11, - 243,39,110,94,98,241,74,150,210,46,21,155,46,42,11,245,211,19,148,244,79,201,38,107,162,153,15,105,38,230,224,35,150,162,5,0,112,8,238,234, - 88,44,189,159,75,235,157,79,170,58,132,16,18,225,137,137,66,137,244,85,103,23,215,38,197,197,5,169,70,157,126,95,82,62,54,84,30,139,122,208, - 216,141,116,96,41,62,1,192,225,115,176,60,165,144,90,93,201,97,199,142,29,59,118,236,84,96,45,161,249,239,54,182,251,71,169,109,234,176,94,134, - 86,132,23,121,7,4,159,1,160,160,88,152,152,71,215,213,107,127,63,210,75,204,229,110,6,192,213,25,205,31,82,22,151,172,118,152,131,151,196,2, - 238,114,0,172,206,108,30,151,40,183,61,94,44,50,128,244,227,177,156,157,44,165,124,51,75,183,131,34,206,65,128,95,175,102,83,93,125,250,26,20, - 224,21,125,248,247,156,62,231,215,189,143,246,45,26,131,154,25,128,53,65,218,245,35,156,93,241,38,218,55,11,2,101,77,0,203,192,161,255,50,244, - 143,116,126,238,28,70,97,254,196,45,216,195,43,97,211,166,205,62,126,33,205,9,203,24,145,252,251,233,209,31,204,154,223,51,210,153,68,218,98,108, - 181,244,35,227,27,55,10,251,104,250,103,223,114,253,252,2,101,102,70,207,228,62,185,223,122,245,146,249,7,90,250,145,229,119,228,116,179,45,125,33, - 132,144,230,158,152,196,19,9,71,72,196,178,38,26,141,250,161,217,104,218,23,233,199,235,183,116,217,202,86,221,123,15,112,48,171,115,57,38,22,205, - 127,218,251,99,240,154,181,223,15,32,132,12,166,229,65,217,54,195,82,204,74,217,49,113,0,159,199,37,205,222,222,196,69,13,75,102,235,162,185,55, - 121,141,208,186,211,75,80,130,95,146,20,244,79,169,37,108,161,153,55,249,129,80,132,130,96,63,161,248,49,49,143,230,61,143,142,29,59,118,254,189, - 16,66,182,1,88,65,41,173,87,194,224,58,52,91,0,72,163,148,170,255,46,77,59,47,30,245,243,104,17,124,145,248,40,203,21,102,35,34,66,67, - 62,7,80,47,67,75,204,229,110,191,158,170,240,1,99,196,166,47,167,236,53,152,0,198,100,132,153,49,193,204,152,192,48,70,152,77,38,80,147,30, - 243,183,156,7,12,106,68,71,54,221,14,192,215,214,207,224,83,206,206,155,151,79,187,17,131,18,123,214,45,126,47,43,191,244,189,51,119,229,5,17, - 222,100,78,82,30,182,214,199,32,56,191,254,125,236,58,116,44,123,213,15,101,15,88,74,225,230,36,9,27,61,48,49,112,199,145,243,89,43,183,235, - 30,0,128,179,76,24,246,214,221,212,160,250,28,135,234,120,137,197,43,55,124,191,198,199,215,93,66,152,43,95,131,49,155,17,24,28,203,157,51,117, - 180,239,23,43,54,175,0,48,166,182,253,195,189,73,243,208,198,205,62,220,126,236,74,144,70,157,103,56,189,235,147,71,84,15,147,143,127,51,254,231, - 139,191,229,206,253,248,253,25,225,222,228,180,173,209,230,0,0,32,0,73,68,65,84,218,3,5,77,170,77,135,252,31,123,231,29,30,69,245,189,241, - 247,206,204,182,108,202,166,55,66,66,2,36,132,16,8,189,247,38,4,190,244,174,136,32,69,81,192,2,72,199,66,81,105,74,145,34,82,148,46,136, - 132,26,149,222,36,212,96,8,132,154,222,235,102,235,204,220,223,31,41,134,144,182,1,177,252,230,243,60,251,108,102,118,231,157,59,187,155,157,119,207, - 61,231,12,33,76,125,87,252,180,120,201,151,141,186,244,234,99,35,230,165,178,122,109,94,192,198,205,155,22,4,54,106,161,110,31,236,37,79,217,51, - 145,232,114,51,96,98,84,202,46,13,186,217,233,94,29,110,222,184,229,251,201,0,190,178,228,152,133,18,211,214,162,88,253,174,235,132,162,253,181,139, - 191,77,16,18,126,7,21,204,128,96,42,190,135,96,6,21,11,238,91,78,220,12,148,209,195,171,42,48,20,61,194,207,254,238,145,156,148,216,124,197, - 151,139,62,10,114,37,71,32,96,251,31,25,56,101,169,193,12,118,35,190,53,221,29,247,240,130,168,59,118,43,179,216,32,190,217,132,116,182,178,177, - 237,173,207,203,61,177,225,42,61,94,157,113,74,72,72,84,31,134,97,250,16,66,58,18,66,94,161,148,222,121,17,154,28,199,185,2,112,36,132,92, - 166,148,106,171,171,67,8,249,16,192,184,194,197,77,148,210,47,158,119,108,132,16,47,0,238,133,139,73,148,210,184,231,213,252,127,78,88,169,11,75, - 23,39,205,91,58,117,168,2,21,129,189,253,1,192,202,210,81,80,64,5,194,2,102,45,250,245,234,14,103,87,119,192,156,15,152,242,1,179,14,48, - 107,1,179,14,105,137,143,1,147,22,184,127,4,60,165,74,75,247,3,67,54,16,189,7,93,155,120,195,69,163,194,148,126,65,206,27,142,70,111,218, - 116,252,78,55,0,195,170,52,86,74,209,178,97,93,172,218,164,141,58,24,145,210,19,0,66,27,59,31,109,25,228,83,115,229,86,125,84,216,141,140, - 87,0,160,87,176,230,72,139,122,30,222,34,170,223,148,91,164,180,189,103,173,186,68,184,182,30,98,78,28,114,114,116,136,123,184,13,14,53,154,50, - 130,136,142,149,109,111,197,98,230,187,115,150,202,242,115,146,141,130,41,85,112,102,50,57,78,41,18,36,156,50,104,197,44,97,234,155,175,10,31,204, - 91,52,19,192,168,138,116,130,92,49,121,217,178,149,13,219,54,11,116,77,218,55,133,228,101,38,131,103,213,202,126,173,219,194,222,63,72,76,62,185, - 140,40,106,119,131,189,83,109,196,159,255,1,143,46,254,72,218,53,25,168,252,110,135,252,85,148,99,180,252,93,72,187,158,29,90,236,170,237,237,233, - 65,169,8,81,164,160,162,128,55,6,247,192,71,187,239,67,16,4,12,234,217,174,235,210,9,93,168,40,138,160,84,68,108,82,122,254,175,151,162,186, - 198,100,208,75,149,29,59,37,56,19,210,170,115,187,27,17,23,3,205,209,63,163,217,168,197,81,4,56,91,252,56,208,238,234,177,239,2,129,205,149, - 73,149,9,33,132,212,119,133,240,232,232,18,120,119,24,207,174,223,113,212,37,59,53,126,244,190,109,107,7,175,91,191,254,123,0,19,171,170,21,236, - 70,124,95,233,217,253,151,197,27,246,215,122,189,123,224,131,146,143,217,105,28,250,46,249,241,198,91,7,214,205,13,30,31,66,50,55,92,167,87,170, - 53,96,9,9,137,106,161,82,169,204,27,55,110,180,30,61,122,244,145,194,235,248,61,119,3,96,133,66,33,126,251,237,183,236,168,81,163,154,23,154, - 173,124,75,53,188,188,188,58,0,248,188,40,67,131,16,242,185,175,175,239,60,0,16,197,103,126,231,101,11,130,48,42,46,46,174,204,217,162,34,250, - 244,233,227,9,192,183,132,166,47,33,196,183,172,231,218,219,219,11,109,218,180,121,116,232,208,161,4,75,199,254,255,9,74,105,34,128,23,146,163,21, - 245,100,207,148,38,134,196,60,0,136,170,194,142,159,154,242,211,155,133,37,91,22,188,182,164,65,45,71,228,106,141,56,126,229,17,4,193,12,129,231, - 11,35,91,60,4,222,140,158,33,206,104,163,159,136,175,14,221,1,47,136,139,43,210,44,141,137,138,35,26,119,27,186,91,20,169,66,41,99,178,3, - 106,58,185,190,63,40,132,153,210,175,1,116,38,126,104,144,27,249,245,118,50,125,170,25,105,185,154,34,255,236,49,149,181,78,40,99,93,21,203,91, - 3,221,72,203,225,125,186,219,81,67,54,204,105,247,145,155,111,198,253,116,51,146,244,89,80,146,167,47,85,87,158,166,72,209,168,134,135,135,245,185, - 93,51,30,58,113,57,156,43,199,203,20,148,151,9,34,101,145,117,219,224,20,216,157,43,202,219,170,104,156,86,106,219,215,58,244,8,213,60,249,97, - 60,177,10,232,9,215,38,53,241,240,244,22,164,92,57,132,188,188,28,162,204,206,130,155,83,29,244,26,53,12,95,12,107,142,220,156,92,176,137,49, - 26,133,76,105,95,158,38,21,48,106,217,210,207,60,56,150,41,120,61,139,110,130,25,58,131,1,16,120,168,56,17,132,22,61,102,134,96,54,169,27, - 13,156,241,22,128,75,101,105,150,228,118,50,221,209,192,149,180,135,104,14,164,102,29,8,112,54,50,133,22,155,159,32,55,50,162,105,207,49,237,41, - 193,153,138,142,189,60,130,157,208,167,153,175,141,181,117,78,20,226,246,190,131,24,168,168,91,219,113,24,241,198,100,245,134,13,27,250,18,66,38,149, - 204,81,43,169,249,74,67,135,225,10,153,108,22,0,100,229,229,111,169,235,227,54,110,246,135,83,106,49,114,117,177,126,81,36,43,63,47,215,124,235, - 196,214,187,93,58,117,104,124,237,244,241,55,222,10,38,247,215,222,42,152,50,174,234,103,201,18,36,77,73,243,101,104,106,52,26,191,90,181,106,205, - 51,155,205,29,228,114,185,155,201,100,130,40,138,73,10,133,226,204,163,71,143,62,206,206,206,126,80,214,118,127,199,177,219,216,216,144,222,189,123,59, - 174,92,185,146,159,58,117,234,9,66,72,103,74,233,227,231,209,180,179,179,67,175,94,189,228,171,87,175,166,147,39,79,110,65,8,185,68,41,213,89, - 162,41,147,201,182,159,61,123,22,187,119,239,6,0,68,71,71,195,223,223,223,186,172,109,31,62,124,104,221,169,83,167,237,40,117,69,143,210,154,55, - 111,222,244,251,249,231,159,177,119,239,94,0,192,157,59,119,16,16,16,80,230,120,206,158,61,203,142,28,57,210,15,192,83,70,235,175,120,143,254,205, - 84,154,163,21,22,22,70,67,67,67,73,233,191,203,224,190,183,131,162,9,244,2,0,88,236,246,111,39,209,165,33,30,178,87,126,217,187,166,131,74, - 206,96,254,198,247,99,83,51,114,91,113,4,34,0,240,20,140,131,141,226,194,226,209,33,222,153,121,122,28,188,28,127,58,50,217,178,16,105,100,2, - 61,1,160,248,196,31,236,68,2,70,127,113,98,231,206,153,175,52,154,214,175,17,126,58,255,104,26,128,74,187,190,83,81,4,21,249,226,228,119,0, - 128,40,2,34,143,18,231,85,136,160,5,235,68,203,34,90,157,8,225,50,93,209,203,81,173,88,61,97,194,155,118,230,212,187,200,48,202,17,155,169, - 71,146,78,134,60,206,21,241,81,55,5,134,224,68,101,90,132,32,7,130,222,222,81,97,195,4,119,127,171,70,206,177,89,153,10,202,179,118,253,63, - 181,79,251,101,249,35,94,151,170,37,4,149,94,172,91,163,177,247,215,167,63,98,179,51,211,96,239,222,0,175,12,237,131,133,161,65,200,205,209,34, - 245,124,24,173,235,97,71,30,159,249,30,179,123,213,71,122,114,34,12,102,128,104,13,25,122,163,62,175,60,77,202,96,253,212,15,166,143,240,241,112, - 177,46,42,42,160,162,128,144,250,181,209,189,67,75,156,56,123,14,191,223,140,134,88,88,84,64,69,17,113,41,153,201,122,147,176,197,162,23,84,224, - 65,205,207,166,225,21,230,101,89,60,101,216,208,141,168,5,96,110,171,186,182,99,103,246,241,177,181,86,18,232,205,2,244,70,51,114,207,173,134,83, - 173,134,80,171,84,164,9,116,28,80,246,107,171,224,200,172,253,191,92,14,18,19,34,240,197,188,169,243,71,244,235,108,99,45,22,164,219,81,190,192, - 156,219,217,59,244,253,236,187,35,19,126,220,188,252,220,230,175,62,187,58,103,193,167,142,67,70,142,104,243,205,170,229,29,0,252,100,233,184,37,36, - 254,9,12,25,50,68,149,156,156,124,50,52,52,52,168,123,247,238,234,246,237,219,67,171,213,226,248,241,227,208,106,181,62,53,107,214,244,57,126,252, - 248,192,86,173,90,221,246,242,242,234,180,103,207,30,75,114,104,57,252,121,145,119,17,0,79,8,65,225,58,2,64,164,213,188,206,45,195,48,232,220, - 185,179,235,218,181,107,83,223,126,251,237,112,66,72,71,90,112,153,177,231,162,67,135,14,138,117,235,214,25,39,77,154,212,130,16,114,145,82,106,168, - 234,182,121,121,121,242,26,53,106,192,197,197,5,130,32,64,171,213,226,192,129,3,200,206,206,134,40,138,176,178,178,194,167,203,54,34,234,234,73,92, - 186,116,9,217,217,217,242,202,52,227,226,226,72,72,72,8,180,218,130,217,76,189,94,143,240,240,112,24,12,6,240,60,15,142,227,48,253,147,21,136, - 190,114,18,215,174,93,67,92,92,220,75,185,218,136,5,94,228,95,197,75,175,58,20,4,254,163,13,91,119,94,248,104,226,48,76,30,222,173,230,199, - 107,126,236,118,59,149,110,5,128,32,23,50,250,213,206,117,189,237,213,50,44,252,225,10,64,233,71,207,187,191,91,233,52,186,129,59,153,182,255,210, - 227,147,179,134,53,65,109,15,59,255,58,117,136,34,38,166,10,215,20,20,121,56,216,40,235,133,54,118,62,10,81,132,189,173,50,16,2,15,123,27, - 101,189,94,193,154,35,0,96,175,150,7,150,21,249,42,143,230,222,242,241,106,37,55,222,186,169,135,247,235,125,187,91,245,238,59,208,202,70,198,35, - 253,210,113,228,200,188,96,118,244,129,193,156,129,184,7,49,194,47,23,255,136,79,203,53,188,95,233,48,41,78,199,63,184,227,226,215,168,187,67,218, - 161,217,41,126,99,126,240,101,32,50,185,223,15,72,182,118,109,97,117,249,222,131,60,145,62,27,209,41,77,78,118,246,35,179,0,15,157,192,217,198, - 252,246,29,102,246,106,136,204,140,20,232,77,60,178,117,188,201,221,94,165,52,60,184,5,131,137,135,209,44,66,102,95,3,199,47,220,76,19,205,230, - 35,229,105,198,164,209,107,0,108,74,174,171,227,66,66,102,216,89,93,131,89,135,199,113,9,216,26,118,161,73,225,243,170,13,21,249,130,233,231,66, - 138,146,228,171,147,4,95,223,141,180,176,82,201,191,254,124,218,200,160,214,1,142,74,49,238,2,136,104,130,181,192,65,167,16,160,169,89,27,162,49, - 151,230,235,245,89,145,64,185,111,62,11,202,17,153,10,12,39,195,43,141,221,108,60,172,204,16,238,133,129,169,55,16,16,11,188,89,118,78,230,213, - 63,206,255,124,191,71,135,214,33,167,143,236,123,112,237,210,249,152,22,45,155,215,23,41,234,84,247,181,144,144,248,59,9,12,12,116,215,104,52,145, - 31,124,240,129,227,128,1,3,176,127,255,126,228,228,228,96,203,150,45,88,185,114,37,22,44,88,0,179,217,140,13,27,54,168,247,237,219,215,98,237, - 218,181,113,62,62,62,13,30,63,126,156,84,137,52,1,160,4,32,67,193,185,139,0,16,15,31,62,140,222,189,123,227,240,225,195,98,225,58,129,16, - 98,182,196,204,20,193,48,12,20,10,5,66,67,67,93,100,50,25,198,143,31,255,27,33,164,61,165,213,47,128,97,89,22,114,185,28,125,250,244,81, - 40,149,74,140,25,51,166,21,33,228,2,173,226,117,109,121,158,103,227,226,226,144,157,157,141,238,125,251,98,197,226,197,232,220,185,51,186,119,239,14, - 74,41,194,195,195,209,173,109,48,134,253,175,19,254,248,227,15,240,60,95,165,243,122,82,82,18,146,147,147,241,74,223,190,216,184,118,45,90,182,108, - 137,122,245,234,129,231,121,156,60,121,18,131,123,182,133,170,127,55,68,71,75,23,158,168,34,47,44,71,235,185,185,149,66,47,6,185,144,67,195,123, - 182,232,211,183,93,16,54,238,250,229,179,160,32,178,19,0,156,108,149,159,190,214,185,54,110,63,201,196,47,215,18,14,221,78,165,47,228,154,128,162, - 0,103,39,59,53,192,42,160,51,137,188,221,125,84,154,192,44,82,10,117,135,25,120,181,239,237,154,45,131,106,214,44,170,58,180,233,189,28,163,111, - 222,243,110,94,207,221,27,130,25,16,204,176,27,246,3,240,73,153,145,220,167,104,231,167,60,49,227,253,105,109,122,245,31,106,165,80,107,32,228,196, - 194,156,116,19,233,119,79,67,171,246,71,210,227,251,216,125,236,82,246,221,184,244,28,134,193,241,228,108,195,135,49,25,180,220,104,81,17,122,51,22, - 207,155,253,126,232,238,157,187,108,149,181,219,145,152,213,189,179,21,28,175,116,241,107,202,228,171,156,233,162,45,187,236,180,70,44,169,76,39,95,155, - 243,99,248,241,163,195,234,250,181,179,125,248,123,24,116,122,3,12,102,160,65,139,78,16,4,170,32,12,17,237,88,150,164,164,103,130,152,133,228,51, - 215,31,38,158,189,126,159,53,216,86,174,93,18,142,176,239,246,237,212,24,48,235,240,191,14,13,177,226,251,95,222,1,48,198,18,141,103,16,11,34, - 90,20,104,215,192,149,124,3,160,221,149,3,43,3,155,245,159,10,88,16,209,10,118,33,189,130,235,120,126,183,226,211,25,142,78,94,254,44,17,205, - 160,238,141,128,156,56,74,226,46,64,83,163,21,4,207,54,216,240,213,151,121,162,72,119,86,212,218,130,10,60,132,7,191,130,191,241,29,242,243,114, - 32,228,167,3,32,96,51,239,67,20,10,140,150,96,141,189,135,119,111,235,254,193,251,83,124,125,189,125,28,163,239,68,101,118,106,223,92,229,238,230, - 18,184,144,16,102,190,133,201,246,18,18,127,55,122,189,254,199,165,75,151,58,246,233,83,208,142,40,47,47,15,23,46,92,192,166,77,155,96,109,253, - 244,247,100,239,222,189,65,41,117,156,63,127,254,143,0,90,151,167,217,170,85,171,190,107,214,172,73,104,220,184,241,125,20,152,45,57,0,230,214,173, - 91,76,108,108,44,113,112,112,160,158,158,158,230,132,132,4,17,128,240,198,27,111,176,54,54,54,117,243,242,242,78,89,50,118,66,8,20,10,5,20, - 10,5,134,14,29,234,194,178,44,25,55,110,220,201,66,179,85,237,107,137,42,20,10,200,229,114,12,30,60,88,65,8,33,227,198,141,43,50,91,166, - 202,182,21,4,129,59,124,248,48,174,92,185,130,5,141,27,99,90,141,26,112,116,116,196,201,147,39,65,41,133,181,181,53,50,50,50,176,115,231,78, - 116,233,210,5,60,207,87,26,209,2,128,189,123,247,34,34,34,2,159,52,107,134,105,26,13,108,108,108,16,30,94,48,27,168,84,42,241,248,241,99, - 132,135,135,163,83,167,78,213,61,236,255,87,188,144,28,173,78,132,112,196,13,238,38,163,14,148,167,0,129,103,80,16,145,223,190,93,249,7,165,52, - 12,131,217,95,109,61,20,186,124,106,95,50,190,95,19,207,143,191,251,109,18,0,140,29,20,80,67,173,228,176,234,167,219,148,97,48,219,82,221,178, - 8,10,34,114,134,193,164,238,45,235,33,33,203,136,152,132,172,95,111,83,90,233,52,26,0,252,178,252,85,108,59,120,50,118,229,54,125,20,165,20, - 246,54,202,122,163,111,196,120,127,119,56,226,201,178,221,250,40,42,82,216,171,101,129,99,254,104,91,105,213,97,115,111,249,248,143,102,124,216,182,223, - 152,15,84,124,212,30,24,99,142,65,52,233,144,99,146,35,139,117,71,220,147,39,88,180,225,80,108,142,214,56,236,86,138,101,6,51,58,141,230,5, - 185,144,1,139,22,206,58,177,248,211,249,54,249,247,79,230,177,132,215,177,62,29,185,79,23,44,39,185,6,227,208,152,140,202,203,139,13,182,88,178, - 116,217,87,161,111,142,26,24,21,224,223,209,73,72,120,224,164,207,201,73,249,225,104,132,59,10,126,41,18,0,136,137,75,71,106,182,150,23,120,243, - 41,91,25,62,142,172,74,116,176,144,218,110,196,101,64,251,70,35,93,108,229,208,229,101,193,213,86,134,158,45,235,140,172,237,70,102,220,79,166,21, - 54,131,171,16,209,12,106,214,225,226,146,46,129,84,48,7,66,48,195,116,99,187,197,50,148,96,218,228,14,54,118,14,198,135,12,180,214,128,149,51, - 136,157,15,160,241,37,178,250,67,145,112,63,146,127,103,228,168,244,7,143,226,190,117,182,66,197,211,218,212,12,33,233,26,132,252,116,228,107,181,16, - 242,51,10,126,130,167,220,126,58,255,79,20,0,67,14,64,121,128,146,130,226,144,231,40,174,144,144,248,59,121,252,248,241,107,31,125,244,209,217,150, - 45,91,186,57,59,59,163,97,195,134,56,120,240,32,62,248,224,131,226,231,52,110,220,24,148,82,100,100,100,96,233,210,165,73,9,9,9,175,85,164, - 25,21,21,117,103,219,182,109,237,131,130,130,76,114,185,60,11,128,50,43,43,75,149,145,145,65,244,122,61,68,81,20,53,26,141,144,144,144,96,30, - 54,108,152,225,252,249,243,117,180,90,237,19,75,198,77,8,41,142,104,41,20,10,204,157,59,55,41,60,60,60,135,101,89,119,0,95,3,24,94,157, - 215,131,101,217,98,205,217,179,103,27,127,253,245,87,51,203,178,10,0,65,0,44,138,228,243,60,143,102,205,154,225,216,233,171,56,252,203,121,228,36, - 220,193,164,55,95,67,195,134,13,113,236,216,177,234,12,15,0,16,18,18,130,163,225,103,113,246,202,117,60,142,190,129,119,38,189,137,6,13,26,224, - 232,209,163,213,214,252,255,6,33,196,3,64,104,201,117,165,251,104,117,10,11,11,43,250,102,127,198,190,214,119,33,33,158,117,21,219,231,247,170,83, - 95,214,125,62,136,204,10,123,252,143,182,157,189,104,117,84,67,55,50,234,102,114,229,213,97,37,185,149,76,35,27,184,146,29,215,255,8,28,249,191, - 150,53,177,241,160,122,46,0,12,109,239,135,203,119,83,113,41,58,101,71,100,10,141,180,248,72,75,209,208,141,168,65,177,99,233,187,253,58,249,120, - 185,99,211,254,179,32,4,63,86,101,91,74,41,109,25,228,131,149,219,74,87,24,186,123,47,219,173,143,58,118,43,167,23,0,244,168,111,125,164,121, - 29,7,239,202,154,118,90,41,184,9,189,6,190,170,226,163,15,2,143,194,65,120,3,116,38,17,137,105,185,200,215,212,196,201,11,215,117,217,122,227, - 212,72,11,77,86,17,183,83,233,253,198,30,228,137,86,171,243,80,187,212,209,115,68,164,121,122,17,151,111,63,202,142,76,172,90,169,114,76,12,53, - 182,246,34,237,191,217,186,123,158,76,174,24,202,18,16,87,141,181,203,55,43,62,129,173,173,13,68,99,30,160,77,197,128,183,23,165,222,140,55,249, - 1,64,128,51,177,233,80,91,190,149,99,72,220,175,247,140,115,42,219,7,49,99,226,168,158,141,101,162,81,139,119,151,238,194,250,25,253,240,106,215, - 250,178,176,115,209,19,1,124,92,157,99,7,10,162,71,212,172,67,235,89,167,163,8,112,150,2,237,174,236,254,52,16,184,90,101,141,166,132,200,56, - 15,82,191,145,183,181,92,140,59,7,49,238,28,101,107,182,5,241,238,64,136,123,51,250,245,231,11,180,27,55,110,58,46,50,88,88,89,171,12,0, - 16,69,1,124,236,37,80,222,12,29,231,0,176,10,8,121,137,224,19,175,22,244,96,3,192,230,97,64,247,208,198,65,186,236,84,253,195,199,241,25, - 255,235,209,182,158,46,55,67,159,148,156,22,181,81,138,102,73,252,11,161,148,222,183,183,183,127,165,119,239,222,191,28,59,118,204,49,56,56,24,0, - 112,229,74,65,33,109,179,102,205,16,16,16,128,228,228,100,12,31,62,60,45,49,49,241,149,202,42,252,114,115,115,239,239,221,187,215,53,47,47,175, - 201,220,185,115,147,125,124,124,114,244,122,61,201,202,202,18,121,158,135,131,131,131,162,113,227,198,104,211,166,77,222,249,243,231,125,99,99,99,115,0, - 60,180,100,220,122,189,30,89,89,89,250,208,208,208,148,149,43,87,250,36,38,38,218,71,69,69,253,104,54,155,191,5,80,173,169,195,252,252,124,100, - 101,101,9,189,123,247,54,174,90,181,202,42,41,41,73,22,21,21,149,100,50,153,98,81,193,5,138,75,83,242,244,114,253,250,117,156,186,26,7,206, - 168,131,34,53,1,23,247,239,69,223,9,111,129,231,171,158,194,82,154,235,215,175,227,64,248,69,88,43,57,220,185,19,137,189,123,247,98,210,164,73, - 207,165,89,77,42,244,34,255,112,66,41,165,27,74,39,197,3,133,70,43,52,52,244,20,10,163,21,37,169,83,135,40,148,121,152,223,179,89,141,233, - 67,219,213,97,205,57,9,16,5,17,172,12,112,117,182,195,246,237,59,252,118,236,218,117,33,164,134,236,43,145,231,103,223,76,182,168,116,117,254,242, - 93,103,135,110,127,191,19,55,169,87,160,35,0,200,57,6,171,14,70,242,0,230,87,255,88,129,214,94,68,149,103,198,120,119,39,205,220,143,198,133, - 58,118,106,22,128,83,151,110,225,171,189,23,78,43,82,176,173,170,58,84,52,163,180,127,42,171,234,16,98,229,121,151,130,64,221,229,214,14,48,61, - 250,13,48,233,161,55,152,16,155,46,32,54,67,15,78,45,199,149,232,56,157,83,18,14,85,42,84,14,132,16,210,174,182,202,115,238,103,203,188,244, - 186,60,62,39,51,141,151,43,46,202,212,86,202,196,202,183,254,147,11,113,84,223,209,79,222,148,66,100,229,10,154,63,243,189,215,173,227,34,143,193, - 159,77,0,161,20,86,245,67,97,107,197,202,219,251,202,159,0,128,175,187,70,177,116,225,7,154,169,51,22,86,154,3,22,68,136,188,97,115,247,169, - 193,62,14,56,29,17,133,211,55,31,71,158,190,114,167,65,231,134,158,8,240,178,159,18,68,200,146,219,85,8,165,151,9,229,1,179,190,184,234,48, - 200,141,140,104,62,116,78,153,213,134,229,225,11,136,209,2,5,97,89,128,48,5,21,144,177,231,192,217,215,166,59,118,31,200,223,180,105,219,39,183, - 83,171,94,156,33,240,60,111,50,27,193,216,250,32,226,193,85,125,139,54,157,84,214,148,194,252,228,66,113,142,150,141,90,21,82,223,91,83,123,247, - 177,223,206,202,100,156,178,113,128,87,157,216,39,143,19,25,130,152,106,188,10,18,18,255,8,178,178,178,110,168,213,234,158,141,26,53,218,242,238,187, - 239,218,142,26,53,202,243,205,55,223,100,0,32,57,57,89,92,185,114,101,194,215,95,127,157,157,150,150,54,198,100,50,85,218,32,148,82,74,9,33, - 231,55,111,222,156,122,234,212,169,6,173,90,181,82,53,107,214,76,112,112,112,224,148,74,165,96,52,26,245,209,209,209,226,253,251,247,61,179,178,178, - 238,2,136,177,244,138,21,90,173,22,126,126,126,15,141,70,227,185,25,51,102,188,254,195,15,63,40,15,29,58,52,220,108,54,207,168,172,82,176,60, - 242,243,243,81,171,86,45,157,40,138,153,51,103,206,244,218,182,109,27,115,248,240,97,15,147,201,116,167,58,9,251,28,199,33,51,51,19,249,73,145, - 80,197,221,69,35,107,6,65,14,54,176,179,179,123,46,83,148,157,157,13,104,227,113,246,236,117,128,231,161,209,104,160,209,104,94,186,209,42,207,139, - 252,75,40,206,209,42,186,175,180,51,124,3,87,50,201,65,129,149,19,66,235,200,125,189,189,96,136,187,130,235,177,121,152,221,170,197,109,86,105,171, - 159,240,90,191,102,3,7,215,66,167,54,205,137,175,135,102,202,146,229,235,222,110,224,70,62,136,76,166,171,170,50,162,200,20,250,160,190,43,217,244, - 219,141,184,137,94,106,29,68,145,226,183,155,137,184,249,40,115,211,31,41,180,204,146,223,114,199,234,73,186,113,96,118,81,74,85,26,107,235,220,198, - 33,129,206,221,90,135,48,175,116,108,6,57,11,156,189,124,29,211,150,255,120,81,20,105,104,68,21,167,13,11,42,12,159,254,63,40,168,48,52,63, - 85,97,72,41,165,5,85,135,21,7,31,88,150,36,229,63,254,221,93,230,228,15,93,204,111,120,148,41,226,113,74,46,114,56,119,24,226,227,1,42, - 62,57,73,105,181,63,213,206,206,206,174,126,65,1,117,86,111,221,11,83,126,54,30,156,220,130,188,204,68,124,250,205,193,58,94,94,94,29,227,226, - 226,78,85,85,139,16,18,240,235,161,29,174,160,0,43,83,226,224,234,221,176,119,182,130,139,181,28,162,46,21,19,166,142,210,244,234,62,74,3,0, - 143,239,92,131,143,186,106,223,65,38,39,12,28,218,185,158,61,204,58,108,61,122,77,207,0,175,108,59,30,25,211,57,208,94,53,180,157,143,195,199, - 9,89,131,80,205,166,162,69,17,173,34,170,83,109,184,135,82,161,190,11,137,217,117,62,197,122,112,247,166,106,57,71,8,205,139,7,181,114,198,186, - 173,123,242,20,230,178,231,223,203,195,104,162,139,94,251,42,98,22,0,100,27,176,37,97,245,254,9,75,103,140,173,163,74,185,8,8,5,159,23,173, - 78,127,120,246,202,31,121,189,222,160,24,55,168,67,39,57,49,41,246,132,157,61,207,154,202,190,106,130,132,196,191,133,252,252,252,8,66,72,195,15, - 63,252,112,196,172,89,179,58,88,91,91,251,1,128,86,171,125,96,54,155,79,3,216,97,137,217,40,52,78,247,8,33,15,30,62,124,232,254,195,15, - 63,104,240,103,63,71,29,128,108,20,52,222,172,86,197,33,207,243,57,60,207,47,167,148,110,246,241,241,233,242,248,241,227,218,131,7,15,102,182,108, - 217,242,46,96,89,30,106,9,77,158,231,249,135,148,210,56,31,31,31,167,216,216,88,245,128,1,3,200,119,223,125,87,11,85,172,220,103,24,70,32, - 132,128,16,2,165,82,137,51,103,206,96,72,104,119,252,17,150,133,96,123,27,180,24,51,1,187,78,156,0,203,178,32,132,128,101,89,139,206,35,28, - 199,225,236,217,179,120,117,248,96,40,57,64,163,209,224,195,15,63,196,79,63,253,4,142,147,174,210,87,85,170,151,163,69,240,241,137,45,139,228,16, - 204,248,121,203,151,56,116,43,207,120,39,21,179,235,165,98,229,94,228,138,169,203,183,77,60,113,246,214,23,111,12,235,163,238,210,185,59,186,116,234, - 204,53,104,222,113,46,128,98,163,85,216,244,173,220,94,27,130,136,79,54,28,141,154,176,235,100,52,129,41,23,195,122,52,167,130,136,79,42,58,152, - 178,52,53,86,54,187,206,94,184,224,0,83,30,30,93,251,85,85,203,175,14,32,152,112,239,222,93,124,189,117,191,120,242,242,157,237,70,30,239,198, - 100,148,221,153,183,220,113,138,60,52,214,138,122,189,130,53,71,68,80,216,171,229,129,84,20,96,175,150,5,246,168,111,125,132,82,74,109,173,100,129, - 84,120,214,187,149,214,212,25,249,245,91,55,111,90,54,118,236,88,235,180,184,36,36,228,220,66,158,162,6,204,234,154,136,185,118,90,151,111,224,43, - 61,137,87,244,122,166,165,165,165,68,92,202,192,174,111,22,195,108,52,32,37,174,192,171,38,164,229,192,206,185,198,5,75,52,77,188,152,221,127,212, - 120,185,194,10,86,163,7,245,81,68,167,26,208,220,203,22,0,64,243,82,241,71,248,89,116,210,158,2,0,220,143,101,224,19,226,89,165,113,218,170, - 228,239,246,106,90,3,15,158,36,226,76,100,252,214,251,233,52,161,182,19,217,26,147,144,53,177,95,43,111,172,248,233,246,59,40,199,28,149,167,25, - 228,70,70,0,104,87,144,12,175,3,5,218,5,185,145,17,85,169,52,44,75,147,147,99,228,178,35,143,231,236,249,61,173,223,244,145,237,237,218,180, - 233,173,0,111,68,174,206,96,190,157,73,115,44,209,60,241,128,238,4,176,179,232,177,96,55,114,96,250,226,13,199,22,189,213,167,78,97,57,58,54, - 94,161,167,0,156,154,214,94,249,69,160,143,166,246,190,19,17,167,51,50,181,155,55,220,250,243,178,75,149,253,31,85,7,73,83,210,124,25,154,133, - 166,103,123,225,237,69,106,198,23,222,94,136,102,33,254,69,81,48,147,201,52,121,206,156,57,135,246,237,219,103,191,115,231,206,247,9,33,223,80,74, - 179,45,213,164,148,158,44,250,219,104,52,222,158,61,123,118,243,253,251,247,203,118,236,216,225,75,8,121,66,203,248,225,95,90,83,20,197,132,102,205, - 154,57,246,237,219,23,130,32,224,238,221,187,120,28,27,139,110,19,223,129,189,189,61,78,223,184,129,59,119,238,96,222,188,121,48,155,205,56,112,224, - 192,51,29,222,75,107,114,28,103,170,83,167,142,188,127,255,254,224,121,30,247,239,223,71,124,124,60,166,77,155,6,141,70,131,136,136,136,98,205,180, - 180,52,112,28,247,204,76,195,95,241,89,250,175,82,145,93,21,32,152,145,125,98,62,86,157,129,201,100,70,96,100,10,45,57,231,189,174,145,19,249, - 249,198,173,168,7,17,231,186,40,144,114,179,96,27,11,136,78,163,137,205,107,114,185,48,229,218,225,254,17,60,76,206,205,139,78,163,22,77,117,1, - 0,21,5,2,83,62,144,120,5,231,79,159,194,201,139,215,241,251,205,40,225,124,68,244,46,70,196,39,183,211,232,93,139,53,41,133,77,232,10,188, - 126,243,158,119,243,0,55,111,8,60,168,104,134,102,216,14,140,185,221,198,187,121,109,123,239,130,72,150,25,14,227,126,5,150,169,42,212,251,253,137, - 105,67,59,63,229,160,220,172,244,86,93,59,182,182,214,212,239,133,180,123,209,184,123,253,172,46,226,86,204,249,223,159,152,44,138,150,148,166,70,141, - 26,29,186,118,172,135,97,19,62,130,41,63,27,247,79,110,70,94,70,18,206,92,176,65,84,78,78,107,0,167,170,170,117,254,177,185,1,0,180,245, - 149,63,177,37,6,247,177,253,251,66,69,244,16,13,57,32,249,105,136,137,55,102,15,250,38,86,0,0,181,146,112,214,52,219,174,42,186,65,62,78, - 254,106,214,140,109,39,34,33,138,5,151,111,18,69,172,219,246,107,204,196,79,94,109,130,32,111,135,16,66,8,177,36,228,79,40,218,255,190,107,97, - 160,254,151,185,128,104,194,217,41,142,129,237,87,101,180,71,53,35,99,55,227,105,60,128,137,245,61,201,250,41,171,142,206,109,118,226,118,187,247,199, - 245,179,3,125,254,10,221,91,201,244,97,176,27,233,57,110,193,183,123,204,2,158,10,3,106,243,140,135,231,174,62,42,106,13,166,203,27,165,174,240, - 18,18,47,157,146,223,59,137,137,137,199,253,252,252,226,15,28,56,224,163,84,42,25,189,94,223,14,168,126,106,7,0,36,37,37,165,213,174,93,91, - 191,111,223,62,43,181,90,77,140,70,163,3,170,144,251,149,151,151,55,97,204,152,49,235,101,50,153,75,225,56,33,8,2,247,197,23,95,200,4,65, - 96,25,134,17,88,150,53,31,62,124,152,23,4,33,85,175,215,79,168,76,147,231,249,152,183,222,122,171,78,101,21,138,59,119,238,4,199,113,38,158, - 231,165,84,134,231,160,252,147,7,197,194,182,175,206,159,15,128,128,98,65,41,147,5,0,184,145,78,19,26,184,146,105,13,154,119,156,95,180,141,165, - 3,208,11,194,224,230,13,3,118,2,128,129,10,175,90,186,61,0,228,24,116,67,27,55,111,189,75,164,148,227,41,221,196,136,216,167,231,241,71,85, - 42,237,202,35,33,37,43,162,232,66,209,34,232,159,211,133,133,109,28,40,165,180,120,186,240,75,21,210,178,13,149,86,143,156,125,96,232,222,220,91, - 62,254,248,185,107,19,4,129,186,179,44,73,210,25,249,245,207,107,178,0,32,46,46,238,84,144,43,57,126,35,196,173,135,115,97,227,241,180,124,32, - 45,31,199,227,82,114,79,85,71,51,75,107,238,55,247,171,159,14,42,100,44,7,74,11,26,138,82,10,189,73,200,40,50,99,141,156,136,231,135,7, - 248,157,44,75,30,87,166,119,233,78,226,138,97,75,194,63,136,124,148,185,233,97,38,189,5,0,15,51,233,173,186,78,100,110,76,82,238,7,183,30, - 103,126,105,105,94,5,37,56,211,124,216,252,103,214,89,162,81,22,127,36,208,235,0,6,52,112,37,221,135,189,255,245,251,132,224,133,92,126,226,86, - 50,125,8,160,105,233,245,27,175,23,68,182,94,196,62,36,36,36,158,31,43,43,171,137,51,103,206,92,145,155,155,59,135,82,250,92,38,171,8,91, - 91,219,200,57,115,230,4,102,103,103,223,173,106,111,46,74,233,37,0,13,95,196,254,75,104,166,3,168,118,187,10,137,103,41,213,67,11,192,159,57, - 90,197,39,207,191,226,6,160,155,164,249,242,53,253,253,253,41,10,127,160,253,147,199,41,105,74,154,146,166,164,41,105,74,154,255,165,27,128,241,165, - 215,73,153,110,255,65,162,163,163,255,173,85,27,18,18,18,18,18,18,255,58,74,70,180,170,92,117,40,33,33,33,33,33,33,33,33,81,57,180,84, - 239,172,146,16,0,221,202,217,168,202,213,4,132,144,50,53,42,25,84,133,250,146,166,164,41,105,74,154,146,166,164,41,105,254,247,52,43,211,182,196, - 127,252,83,40,221,168,244,169,229,191,120,174,242,95,49,47,44,105,74,154,146,166,164,41,105,74,154,146,230,223,171,249,111,190,161,84,110,86,201,101, - 105,234,80,66,66,66,66,66,66,66,226,249,8,43,85,121,24,86,244,135,100,180,36,36,36,36,36,36,36,36,158,3,90,173,206,240,18,18,18,18, - 18,18,18,18,18,149,82,81,31,45,201,104,73,72,72,72,72,72,72,72,60,7,180,130,170,67,201,104,73,72,72,72,72,72,72,72,60,7,21,69, - 180,72,97,118,188,132,132,132,132,132,132,132,132,196,115,80,186,205,3,0,48,0,16,22,22,70,75,222,75,72,72,72,72,72,72,72,188,76,254,205, - 94,132,16,50,190,40,170,85,242,111,64,154,58,148,144,144,144,144,144,144,144,120,46,164,28,45,9,9,9,9,9,9,9,137,191,136,210,61,180,10, - 219,61,0,248,211,104,117,42,12,213,117,122,169,35,147,144,144,144,144,144,144,144,40,224,95,235,69,104,169,203,239,16,66,158,77,134,15,11,11,163, - 161,161,161,228,111,26,163,132,132,132,132,132,132,196,255,115,254,205,94,164,68,84,235,169,136,150,84,117,40,33,33,33,33,33,33,33,241,130,40,50, - 92,82,195,82,9,9,9,9,9,9,9,137,23,64,69,57,90,204,95,188,227,110,146,166,164,41,105,74,154,146,166,164,41,105,74,154,255,101,40,165, - 27,74,220,18,75,62,246,151,26,45,9,9,9,9,9,9,9,137,255,207,72,70,75,66,66,66,66,66,66,66,226,47,66,50,90,18,18,18,18,18, - 18,18,18,47,144,146,57,91,146,209,146,144,144,144,144,144,144,144,120,177,132,21,153,45,169,234,80,66,66,66,66,66,66,66,226,5,82,152,16,95, - 208,176,20,64,153,149,3,148,210,240,170,10,86,167,250,160,50,125,73,83,210,148,52,37,77,73,83,210,148,52,255,123,154,149,105,91,226,63,254,41, - 16,66,198,151,238,14,95,188,76,41,253,203,110,0,186,73,154,146,166,164,41,105,74,154,146,166,164,41,105,254,151,111,0,198,151,117,79,41,125,241, - 57,90,77,9,177,122,209,154,18,127,63,132,16,55,66,136,219,223,61,14,9,137,255,42,132,16,23,34,87,79,248,187,199,33,33,33,81,61,138,114, - 178,74,53,47,125,177,57,90,65,132,140,27,23,236,242,175,84,6,41,0,0,32,0,73,68,65,84,77,67,66,236,110,82,154,95,209,115,93,93,93, - 215,171,213,234,81,249,249,249,90,66,136,88,180,190,208,9,150,188,46,208,253,148,148,148,246,149,237,91,169,84,174,116,115,115,27,151,151,151,151,79, - 8,161,132,16,16,82,112,185,164,210,247,130,32,196,165,165,165,53,179,244,248,254,73,16,128,117,118,115,187,44,99,217,26,150,110,43,136,226,195,228, - 164,164,214,85,222,23,33,139,9,193,244,194,191,63,167,148,126,100,233,62,255,241,16,194,86,229,105,193,128,109,52,48,76,96,152,119,100,192,26,131, - 40,126,3,0,160,84,168,238,174,141,151,73,29,66,17,66,8,52,148,34,155,18,92,87,180,160,49,213,213,123,30,8,33,3,101,50,89,63,59,59, - 59,155,244,244,244,83,0,118,2,24,238,228,228,212,49,39,39,39,207,108,54,255,68,41,253,177,58,218,141,3,200,12,43,133,236,13,157,209,188,244, - 90,52,221,220,212,159,56,129,96,137,66,193,181,215,25,248,207,175,223,165,155,44,28,43,65,65,250,3,0,80,90,248,229,97,9,123,171,248,190,3, - 192,1,7,135,0,165,139,221,47,50,5,251,48,43,57,111,212,224,148,148,216,193,207,241,190,151,132,16,210,26,214,94,63,181,12,125,7,0,214,191, - 8,205,234,224,226,226,242,58,195,48,159,81,74,33,8,194,236,244,244,244,45,47,66,151,16,50,27,128,125,225,98,22,165,244,179,231,212,123,12,192, - 187,112,241,9,165,212,231,121,244,254,63,67,8,89,183,127,255,254,137,157,59,119,198,138,21,43,176,110,221,186,71,169,169,169,75,0,108,165,148,26, - 95,182,206,191,21,90,98,218,176,52,47,204,104,53,32,164,247,235,61,91,174,159,60,180,55,153,250,250,156,10,77,150,139,139,203,183,175,188,242,202, - 171,91,183,110,149,69,71,71,91,249,250,250,130,97,152,98,35,84,242,251,178,86,173,90,98,121,58,69,176,44,187,106,192,128,1,99,246,238,221,171, - 142,136,136,80,215,175,95,191,88,79,20,69,148,254,254,245,245,245,173,80,79,163,209,92,97,89,214,11,120,214,164,149,247,183,32,8,113,233,233,233, - 149,154,55,66,72,79,0,51,43,123,30,128,37,148,210,99,21,61,65,198,178,53,18,18,18,92,171,160,245,20,53,107,214,52,85,245,185,5,145,44, - 76,23,69,202,0,0,195,144,25,42,149,234,27,189,94,255,164,232,113,0,160,148,38,91,50,134,26,53,106,12,162,148,78,0,64,9,33,27,226,227, - 227,247,89,178,189,157,157,221,21,133,66,225,197,113,92,241,155,81,242,125,41,189,44,8,2,53,153,76,113,25,25,25,22,27,236,83,0,121,5,232, - 192,179,236,84,39,103,231,246,17,199,143,91,7,7,7,51,44,203,126,4,224,27,75,245,74,98,188,76,234,8,102,12,209,153,149,125,148,62,11,2, - 12,143,23,68,91,201,12,135,140,151,201,158,151,109,182,8,33,163,71,143,30,61,117,233,210,165,206,10,133,130,217,189,123,119,192,180,105,211,6,174, - 88,177,194,121,232,208,161,182,70,163,81,156,49,99,70,16,33,196,149,82,186,214,18,237,22,245,72,171,192,58,30,243,62,24,219,5,111,205,223,57, - 185,73,61,146,102,173,150,175,27,208,181,142,125,72,29,7,76,255,234,252,187,0,170,108,180,8,33,132,227,184,214,158,158,158,254,122,189,158,7,0, - 87,87,215,226,127,116,150,45,240,79,70,163,209,152,145,145,177,199,146,177,150,197,7,42,85,203,150,246,54,39,230,143,24,109,149,147,153,225,182,42, - 236,224,141,189,112,109,52,24,120,244,188,218,132,144,169,170,154,237,63,91,244,233,66,149,206,200,243,207,171,247,60,48,12,243,89,124,124,188,7,165, - 20,30,30,30,159,1,216,242,130,164,237,139,190,135,9,33,246,149,60,183,42,120,151,208,243,174,228,185,149,66,8,81,113,12,243,150,66,38,235,33, - 8,66,67,0,96,89,246,166,209,108,62,193,139,226,26,74,169,254,121,247,241,15,102,250,196,137,19,187,207,154,53,203,119,250,244,233,152,62,125,122, - 173,141,27,55,174,95,180,104,209,12,66,72,35,74,105,222,75,214,249,87,82,81,142,214,11,49,90,65,132,52,235,26,82,119,223,148,215,135,65,220, - 187,146,224,245,57,229,62,215,197,197,229,219,214,205,154,189,177,117,235,86,0,192,168,126,253,208,163,69,11,216,218,88,67,161,40,24,14,161,4,114, - 153,28,253,167,189,87,233,190,9,33,159,15,28,56,112,228,222,189,123,109,0,96,221,186,117,24,56,112,32,28,29,29,161,86,171,33,151,203,33,147, - 201,158,186,175,12,150,101,189,226,227,227,93,85,42,21,128,2,227,39,138,226,83,183,18,243,178,224,121,30,254,254,254,149,234,22,50,51,59,59,187, - 131,86,171,173,112,190,215,207,207,15,0,42,52,90,69,124,246,233,39,16,121,45,56,14,224,121,192,96,98,32,150,241,219,222,211,211,19,111,189,245, - 214,51,198,211,18,250,244,233,75,0,236,245,244,244,220,151,146,146,226,75,8,222,4,170,21,233,122,251,238,221,187,54,0,16,16,16,240,22,0,139, - 140,22,199,113,94,55,110,220,112,85,42,149,229,70,46,75,152,96,152,76,38,52,105,210,196,162,147,152,27,224,157,193,48,111,54,110,218,116,252,188, - 126,253,172,174,92,185,162,100,24,6,60,207,227,139,47,190,224,41,165,246,65,128,221,109,32,167,60,13,66,200,44,0,175,163,32,74,187,137,82,250, - 197,83,143,83,132,232,204,202,62,247,243,250,183,104,89,107,6,110,71,222,108,81,219,230,0,108,57,67,12,128,151,106,180,236,236,236,250,173,88,177, - 194,101,211,166,77,57,119,238,220,49,125,249,229,151,117,7,13,26,228,11,192,252,222,123,239,197,212,171,87,79,190,98,197,10,151,31,127,252,177,11, - 0,139,140,22,207,224,147,209,131,123,64,103,98,96,48,241,46,30,46,182,219,63,26,215,73,6,106,196,134,61,17,48,155,197,205,85,213,42,140,100, - 181,30,60,120,112,237,29,59,118,112,81,81,81,92,96,96,32,68,81,132,32,8,48,155,205,0,0,81,20,81,183,110,93,75,134,89,38,111,0,1, - 206,110,142,39,90,247,238,101,229,161,82,194,49,51,21,99,229,156,237,22,181,225,123,0,109,170,171,75,8,177,1,167,218,90,167,243,148,110,139,166, - 191,106,21,159,170,197,147,52,94,70,134,236,101,233,158,193,47,36,82,102,41,148,82,112,28,135,216,216,88,184,186,186,90,57,58,58,38,2,88,144, - 145,145,81,238,175,245,127,59,132,144,22,10,142,219,183,109,243,42,247,150,109,218,176,110,30,174,136,190,251,4,28,17,186,221,248,61,162,211,27,147, - 222,159,66,8,25,68,41,189,252,119,143,245,69,227,209,246,237,1,30,237,222,89,71,168,136,133,171,15,230,46,254,124,165,122,226,155,163,217,105,211, - 166,161,102,205,154,190,3,6,12,248,28,192,164,74,117,90,189,61,192,189,205,228,117,160,20,243,191,62,152,187,232,243,149,234,73,213,208,249,175,242, - 220,70,43,136,144,218,13,106,186,30,95,60,125,146,140,30,249,142,201,79,79,65,121,86,198,213,213,117,125,175,94,189,70,109,217,178,165,120,93,235, - 224,96,12,232,210,14,174,78,26,168,173,21,5,167,35,145,224,250,157,135,85,50,4,53,107,214,156,184,111,223,62,155,162,101,79,79,79,200,229,242, - 226,91,73,147,85,116,43,29,249,40,11,149,74,133,240,240,112,112,28,7,150,101,193,113,92,241,173,228,50,203,178,112,115,179,40,117,105,137,70,163, - 105,148,155,155,107,151,149,149,5,111,111,239,28,0,55,74,60,222,40,53,53,213,206,18,65,145,215,98,218,216,250,144,25,47,194,40,107,1,29,215, - 22,231,127,255,3,135,142,157,66,124,66,18,218,181,106,140,215,70,12,198,137,19,39,32,8,150,125,127,83,74,147,9,33,159,255,239,127,125,103,0, - 132,116,237,218,53,107,242,228,201,76,84,84,212,200,1,3,250,7,223,189,123,15,0,192,48,100,58,33,100,149,5,145,45,5,0,156,62,125,26,0, - 148,22,13,170,16,165,82,137,11,23,46,160,104,154,152,97,24,48,12,3,150,101,241,243,61,103,104,141,12,242,147,111,225,157,62,222,240,243,243,3, - 195,84,158,146,216,9,80,157,7,6,16,153,108,154,135,167,167,111,199,218,181,213,225,225,225,44,0,248,248,248,208,196,196,196,172,3,7,14,228,114, - 192,58,31,74,183,86,100,178,188,189,189,219,50,12,243,89,209,107,78,8,249,220,215,215,119,94,209,227,162,40,98,68,119,71,217,148,41,83,229,45, - 59,21,252,56,105,217,119,7,114,238,47,174,79,50,102,105,170,243,154,60,15,57,57,57,187,234,214,173,203,166,167,167,159,7,240,216,222,222,126,222, - 204,153,51,125,23,44,88,240,240,187,239,190,91,12,192,115,233,210,165,157,180,90,237,110,75,116,67,2,73,239,182,77,131,91,213,242,169,137,95,78, - 95,134,74,33,179,127,255,205,62,176,181,229,240,233,234,48,241,94,92,198,228,235,209,116,107,85,180,10,77,86,139,193,131,7,251,238,216,177,67,1, - 0,55,110,220,64,82,82,18,92,92,92,96,101,101,5,153,76,6,150,101,33,147,201,44,126,13,74,243,6,16,160,169,233,116,233,192,129,159,172,28, - 29,237,177,250,189,41,24,157,154,2,123,91,27,152,243,180,21,135,198,43,62,142,250,176,114,15,235,255,230,66,215,113,253,91,168,126,143,74,70,74, - 46,69,154,78,142,86,53,106,216,1,200,124,238,193,91,62,166,128,65,131,6,169,4,65,128,86,171,197,201,147,39,53,86,86,86,26,47,47,175,249, - 40,44,83,175,10,86,86,86,201,122,189,222,21,0,84,42,85,138,78,167,115,3,144,163,84,42,139,190,167,243,10,247,87,165,233,196,114,166,9,159, - 148,136,100,61,177,224,48,75,107,55,111,209,188,81,248,143,123,127,176,201,206,77,130,189,67,10,24,100,99,195,134,53,176,178,178,195,252,249,179,184, - 135,221,186,212,232,217,123,80,56,33,164,219,127,206,108,81,178,161,91,223,81,142,86,106,91,0,128,200,155,177,101,227,20,48,12,131,121,243,230,161, - 65,131,6,227,9,33,115,40,165,25,21,203,96,67,195,14,67,29,21,170,130,183,88,20,204,248,102,231,7,5,58,31,77,192,240,190,126,227,175,127, - 79,142,54,168,141,92,0,160,20,58,25,131,39,104,65,83,138,52,194,194,194,58,134,134,134,158,42,111,249,95,64,113,223,172,162,229,162,63,184,176, - 176,48,26,26,26,90,236,60,74,47,87,68,99,66,156,221,52,234,240,117,11,166,216,112,23,195,88,221,147,123,72,208,11,197,255,57,180,84,137,166, - 90,173,30,181,101,203,150,167,124,152,183,155,43,228,114,25,100,114,2,251,246,125,0,0,89,103,14,129,144,178,77,86,105,77,173,86,171,191,118,237, - 154,205,166,77,155,224,234,234,10,95,95,95,168,213,106,168,84,170,167,204,85,73,195,85,218,104,149,214,44,122,156,227,56,48,12,131,19,39,78,128, - 231,121,12,30,60,248,25,147,197,113,92,153,198,173,180,102,137,245,199,8,33,55,40,165,29,10,79,192,55,40,165,29,75,236,187,167,139,139,203,76, - 0,75,170,170,201,178,20,172,254,60,68,175,149,224,98,167,192,40,11,193,111,103,35,176,101,253,10,0,128,111,96,115,12,25,208,167,56,26,87,21, - 205,146,212,168,81,99,103,74,74,106,175,46,93,186,32,51,51,211,188,96,193,2,52,106,212,8,245,234,213,43,243,249,85,209,164,148,38,223,184,113, - 163,166,78,167,171,210,180,99,89,154,132,16,108,223,190,29,122,253,179,81,125,135,142,139,240,193,64,31,140,121,103,43,62,191,179,27,107,215,174,173, - 240,216,213,64,35,189,166,238,42,5,203,55,90,58,123,178,242,213,87,95,101,199,140,25,131,39,79,158,96,236,216,177,250,19,39,78,24,147,18,19, - 127,82,136,226,106,211,211,198,184,92,77,165,82,185,237,216,177,99,216,189,187,192,151,68,71,71,195,223,223,223,186,228,243,197,140,61,200,125,188,26, - 151,126,142,66,203,190,59,112,233,231,17,16,178,194,100,205,252,145,93,209,177,63,47,101,105,82,74,119,3,40,54,81,132,16,171,229,203,151,247,7, - 112,176,240,49,0,88,110,137,38,0,48,20,99,70,14,233,15,78,110,139,200,232,56,116,109,223,4,30,110,174,184,122,43,6,247,227,51,146,25,130, - 49,29,27,43,151,228,234,140,115,174,69,211,111,43,209,36,94,94,94,1,123,246,236,41,254,30,41,50,85,69,6,171,104,185,200,120,87,117,156,165, - 121,3,8,176,245,178,185,244,201,154,182,214,151,110,126,15,127,159,222,112,232,221,7,155,78,156,192,221,91,145,122,99,62,223,213,82,77,0,32,132, - 140,148,185,55,91,191,96,225,103,170,122,181,156,152,223,174,198,33,203,192,66,199,171,160,39,214,208,61,58,86,27,104,245,251,203,122,223,11,199,20, - 48,112,224,192,243,63,252,240,131,125,108,108,44,78,159,62,13,95,95,95,228,231,231,87,250,131,183,180,166,94,175,119,45,49,173,87,148,218,240,153, - 209,104,44,122,51,138,254,17,203,157,78,44,165,249,204,52,97,117,114,178,202,248,158,87,168,228,242,61,7,126,220,105,115,59,234,52,26,135,180,130, - 141,38,8,162,144,132,244,140,60,100,222,75,192,167,159,126,142,249,11,102,227,224,254,189,54,245,234,135,236,35,132,212,45,57,141,248,50,223,163,191, - 68,147,208,241,225,63,127,191,142,80,17,186,228,40,165,76,251,64,61,106,196,32,118,216,176,97,56,120,240,32,34,35,35,215,149,103,178,74,106,18, - 138,241,183,78,239,94,7,74,161,75,137,82,202,117,15,212,163,71,14,97,95,27,222,3,23,127,93,133,30,141,31,220,242,116,197,128,204,194,201,67, - 142,69,186,82,133,115,86,151,201,197,18,102,235,36,0,82,194,96,157,196,159,57,152,255,120,104,137,190,89,165,41,142,104,89,98,176,0,32,128,16, - 27,181,66,126,105,203,252,183,61,213,79,34,57,195,173,11,72,48,136,244,155,71,188,120,137,16,171,8,74,117,165,183,201,207,207,215,198,196,196,88, - 189,62,96,0,218,4,7,195,195,201,9,117,189,188,96,165,84,64,33,255,243,215,167,37,175,44,33,132,214,171,87,15,125,251,246,133,76,38,131,90, - 173,134,141,141,13,20,10,69,153,209,172,170,254,202,165,148,130,101,89,220,186,117,11,143,31,63,134,189,189,61,206,157,59,135,174,93,187,62,19,213, - 42,28,135,5,163,254,115,58,178,140,245,199,80,197,41,195,34,4,129,32,143,134,64,245,104,50,242,73,19,24,12,60,12,6,3,190,61,107,194,229, - 24,45,76,38,35,12,6,67,185,251,44,15,66,8,227,233,233,57,202,223,223,255,173,17,35,70,152,21,10,5,180,90,45,242,243,243,17,25,25,105, - 238,213,171,119,214,255,254,215,87,115,232,208,33,74,41,62,183,48,79,43,189,70,141,26,53,11,167,103,211,45,57,222,18,227,43,54,49,165,121,125, - 249,109,112,108,193,123,178,110,221,58,8,130,0,74,105,185,111,146,158,144,95,22,44,90,166,89,186,114,51,52,142,110,56,117,234,148,112,244,232,209, - 92,2,68,223,141,140,92,254,63,224,240,30,160,202,185,109,0,144,153,153,105,229,235,235,11,47,47,47,136,162,8,179,217,92,28,125,73,79,79,135, - 78,167,131,163,117,22,234,56,121,129,207,61,137,196,91,11,225,97,19,133,173,199,140,230,166,1,184,110,201,190,254,10,40,165,223,1,248,238,185,133, - 8,106,184,123,214,4,67,205,136,75,78,199,144,126,61,192,202,109,16,243,56,13,205,131,107,123,140,25,220,214,131,3,143,183,23,238,120,11,192,183, - 149,201,229,229,229,9,81,81,81,184,113,163,192,239,218,217,217,193,218,218,250,169,255,113,134,97,158,43,162,85,100,178,22,173,235,106,205,200,180,200, - 17,194,177,105,123,4,26,7,246,197,55,23,47,235,133,228,140,110,95,234,245,209,150,104,18,66,228,96,21,95,123,182,24,51,242,235,79,223,81,103, - 230,232,113,242,106,60,114,140,28,242,69,21,140,140,29,226,174,124,175,255,227,216,178,28,96,118,181,199,94,85,60,60,60,38,136,162,56,159,82,154, - 53,112,224,64,183,29,59,118,56,196,199,199,35,34,34,2,243,230,205,75,21,4,129,167,148,18,74,233,194,231,221,23,165,84,196,159,6,235,133,65, - 8,145,169,85,120,199,217,142,244,227,24,59,95,62,39,239,97,154,145,254,148,207,139,95,83,74,205,21,109,203,48,204,184,189,187,214,121,58,187,136, - 232,228,210,5,137,201,38,44,122,111,52,210,211,115,241,237,198,197,0,20,48,241,44,58,116,26,4,87,215,26,24,255,230,120,247,117,235,191,121,27, - 192,151,47,250,56,254,46,18,207,173,217,79,8,9,119,113,113,137,124,123,252,120,23,95,223,87,161,82,169,176,115,231,78,236,88,189,90,88,9,12, - 89,79,200,111,19,40,221,95,161,206,197,63,117,166,76,156,232,82,191,254,68,40,149,74,252,122,244,59,232,147,182,231,134,182,129,41,95,143,208,90, - 125,169,227,163,159,73,134,76,134,123,0,32,83,33,81,6,164,148,146,251,87,25,172,34,74,87,26,2,127,38,200,87,123,234,144,202,20,55,55,78, - 29,238,227,6,3,49,158,253,25,241,6,81,88,122,215,196,94,205,166,31,220,46,195,100,1,0,195,48,162,183,183,55,186,52,107,134,1,237,219,131, - 227,56,168,20,114,216,170,172,64,133,130,72,86,209,212,97,5,231,196,210,7,7,0,112,114,114,130,92,46,47,54,88,85,141,102,149,167,41,138,34, - 56,142,195,141,27,55,208,174,93,59,212,172,89,19,187,119,239,70,207,158,61,159,153,74,180,212,100,1,5,70,171,228,52,94,137,36,249,74,147,224, - 75,163,55,18,164,25,67,64,72,48,120,30,16,40,96,208,235,65,41,64,41,96,54,25,161,215,235,139,247,89,149,41,89,15,15,15,111,63,63,191, - 143,103,204,152,94,63,36,164,49,82,83,83,33,138,34,172,173,173,145,159,159,15,59,59,59,180,105,211,230,225,194,133,11,19,41,197,120,75,147,225, - 159,151,162,215,252,248,241,227,79,77,27,22,221,180,137,113,24,243,238,247,80,112,5,83,75,69,57,60,21,192,116,238,208,22,231,175,70,243,99,63, - 92,105,144,165,71,44,113,23,197,45,113,64,181,143,139,82,138,180,180,52,36,39,39,163,95,255,254,216,241,195,15,120,244,232,17,130,130,130,208,185, - 115,103,184,186,186,226,209,163,71,184,124,198,0,67,102,6,50,140,17,80,219,182,196,129,83,49,134,185,107,141,127,75,213,33,0,16,66,250,1,24, - 109,103,103,231,151,159,159,159,200,243,252,30,0,123,0,12,225,56,110,136,90,173,246,200,201,201,121,128,130,106,162,159,42,211,83,41,84,78,74,149, - 29,68,222,0,150,229,224,227,227,11,42,24,145,145,173,195,248,87,251,226,242,181,63,112,240,248,69,222,96,22,191,170,194,240,40,203,178,52,32,32, - 0,41,41,41,144,201,100,176,178,178,130,141,141,13,14,31,62,140,193,131,7,23,155,172,234,26,173,55,128,0,59,111,155,139,159,173,41,48,89,73, - 9,137,72,142,147,193,213,217,29,171,190,94,161,205,124,148,212,114,51,96,145,201,2,0,40,29,79,119,25,49,183,209,172,113,221,148,215,239,165,224, - 94,92,46,114,77,50,228,11,42,152,57,13,98,207,111,209,69,157,88,217,153,82,122,183,90,3,183,16,81,20,23,198,199,199,187,114,28,231,206,243, - 60,98,99,99,113,229,202,21,76,158,60,57,57,61,61,189,19,165,212,242,99,68,193,116,97,81,36,75,165,82,165,0,229,78,39,102,149,136,100,101, - 85,32,89,230,52,33,33,164,182,175,151,237,137,141,43,166,121,55,111,217,134,81,115,118,153,121,247,146,218,157,61,125,170,205,228,21,223,190,77,8, - 233,65,41,189,95,158,168,82,38,235,213,170,109,91,14,52,25,156,162,29,62,95,58,12,169,105,57,200,204,200,133,92,110,13,163,153,133,32,18,180, - 105,215,30,223,109,221,133,6,111,142,101,21,50,89,119,252,135,140,86,33,139,191,254,250,107,239,122,245,234,97,203,150,45,248,109,219,54,188,150,157, - 141,83,12,195,154,101,50,231,195,102,243,6,0,21,26,173,146,58,13,26,52,192,230,205,155,177,125,251,246,39,163,186,166,236,155,54,10,174,38,19, - 94,137,184,3,199,90,125,129,136,59,112,108,90,15,117,121,14,247,8,193,83,237,160,194,194,194,58,150,188,255,55,81,100,170,74,39,197,3,5,70, - 171,83,88,88,24,45,121,95,153,160,218,53,96,226,246,97,93,124,130,235,120,19,243,238,85,136,213,242,198,57,119,76,138,187,121,116,218,109,74,87, - 150,183,29,195,48,148,101,89,216,90,89,193,197,222,190,32,204,207,48,128,8,136,102,128,8,5,6,128,138,4,150,20,77,139,162,8,133,66,81,102, - 226,187,165,185,89,37,53,115,115,115,241,240,225,67,140,31,63,30,106,181,26,0,144,148,148,4,31,31,31,112,28,135,248,248,120,252,250,235,175,240, - 243,243,131,82,169,180,200,109,149,136,46,53,34,132,156,2,208,40,49,49,209,206,195,195,3,176,52,162,37,82,228,27,8,140,70,1,119,239,222,69, - 66,66,2,30,62,184,135,230,218,28,80,176,160,148,90,20,209,242,242,242,10,246,247,247,255,102,201,146,37,114,47,47,47,80,74,225,224,96,143,252, - 252,124,164,165,165,163,65,131,6,240,242,242,194,146,37,75,0,96,199,203,54,89,37,41,170,46,45,121,207,48,12,222,253,159,55,50,50,108,192,178, - 127,86,159,86,146,163,37,7,128,78,61,6,114,39,142,30,182,230,129,143,147,88,246,227,202,126,137,80,74,205,130,40,170,203,123,60,54,54,22,50, - 153,12,123,247,236,65,70,114,50,66,66,66,208,162,69,11,220,187,119,15,87,175,94,133,147,147,19,92,188,90,227,212,3,19,110,39,232,160,209,104, - 16,19,199,252,45,137,208,0,64,8,121,179,91,183,110,243,150,47,95,238,234,238,238,46,75,77,77,173,183,102,205,154,144,53,107,214,76,121,251,237, - 183,221,222,126,251,109,7,23,23,23,46,41,41,41,224,189,247,222,107,74,8,241,163,148,46,171,72,211,214,206,214,145,149,91,131,16,14,142,246,14, - 224,20,214,16,121,14,188,8,104,236,93,112,246,242,94,68,68,230,78,72,207,69,165,213,129,148,82,234,228,228,4,134,97,224,228,228,244,212,255,247, - 185,115,231,160,211,233,48,110,220,184,226,105,68,75,41,50,89,139,214,116,181,33,133,38,43,41,150,3,99,172,141,159,247,95,200,202,124,148,212,174, - 58,38,139,16,162,118,116,245,240,24,218,163,161,242,215,136,199,72,204,52,34,199,40,131,129,90,129,151,57,32,254,252,6,221,157,95,215,116,126,153, - 57,64,69,69,61,15,30,60,64,126,126,62,206,156,57,131,133,11,23,166,150,54,89,110,110,110,111,218,217,217,45,200,203,203,251,60,49,49,113,85, - 101,186,133,38,234,41,202,154,78,172,106,139,135,178,166,9,9,33,178,154,30,170,99,87,207,124,239,163,161,215,9,30,143,7,238,230,68,218,94,114, - 237,208,187,121,40,211,100,237,39,181,90,76,248,232,24,33,164,94,121,145,45,81,16,154,88,219,216,2,72,65,196,149,147,197,38,43,61,35,27,6, - 19,11,131,145,64,111,98,208,165,219,43,88,253,205,118,196,167,100,160,168,34,241,191,2,33,196,49,56,56,120,226,144,33,67,240,241,199,31,35,124, - 249,114,227,36,66,114,56,128,134,9,2,68,74,9,83,133,36,246,210,58,95,126,249,229,126,0,195,151,76,70,235,204,60,188,238,217,151,58,214,234, - 91,240,220,193,51,40,0,56,166,134,63,125,202,12,13,13,37,69,51,107,150,206,176,253,83,40,203,100,1,0,23,26,26,122,42,44,44,12,37,239, - 43,18,178,115,15,236,253,209,135,147,151,54,239,217,158,36,190,223,29,25,57,122,126,214,109,147,34,78,87,177,201,42,201,135,107,214,224,106,116,193, - 255,177,151,171,43,166,143,28,9,202,3,231,34,111,99,87,120,56,134,117,235,6,235,194,138,191,42,28,24,68,81,44,51,138,85,50,154,101,105,212, - 41,43,43,11,123,246,236,65,139,22,45,160,86,171,193,113,28,26,53,106,132,63,254,248,3,181,107,215,6,33,4,7,14,28,192,128,1,3,112,255, - 254,125,180,110,221,218,166,114,213,63,41,50,61,183,111,223,182,163,148,118,40,138,126,84,23,131,193,128,168,168,40,244,237,219,23,14,14,14,168,81, - 99,7,194,143,125,15,117,240,107,32,4,22,25,45,65,16,222,8,13,13,149,19,66,160,211,229,67,165,178,130,181,181,13,108,109,237,16,16,80,15, - 9,9,9,232,217,179,167,49,38,38,102,109,98,98,162,69,137,209,0,16,20,20,100,157,157,157,253,90,173,90,181,20,0,96,101,101,21,84,167,78, - 157,15,98,98,98,114,45,209,41,105,176,8,33,96,89,182,216,104,113,12,3,15,119,215,226,229,194,252,180,114,63,4,132,144,156,248,116,131,18,0, - 188,189,189,177,122,253,65,38,52,52,20,83,166,76,129,217,108,198,218,181,5,69,118,35,70,140,128,201,100,194,190,125,5,69,146,28,199,85,24,54, - 185,114,229,10,34,34,34,96,54,155,145,157,157,141,35,71,142,224,212,233,211,216,121,224,23,60,122,112,15,141,234,249,96,236,216,55,32,147,201,176, - 117,235,86,180,107,215,206,146,151,224,133,35,147,201,70,109,220,184,209,99,203,150,45,89,7,14,28,208,182,106,213,74,185,98,197,10,151,213,171,87, - 187,152,76,38,76,153,50,37,229,226,197,139,134,254,253,251,91,111,216,176,193,163,78,157,58,221,1,60,99,180,8,33,214,0,134,1,120,181,85,67, - 13,151,145,163,3,229,141,136,121,240,16,89,185,70,136,130,9,143,158,36,32,87,39,32,37,35,23,77,90,245,248,250,228,201,147,179,9,33,179,40, - 165,135,42,27,103,100,100,36,46,94,188,136,71,143,30,225,193,131,7,197,235,175,93,187,134,149,43,87,98,234,212,169,112,112,112,176,232,216,203,55, - 89,117,240,243,254,139,89,201,119,19,170,107,178,124,90,180,104,17,254,197,23,95,120,188,253,225,39,176,15,30,14,59,123,103,24,96,3,40,29,105, - 236,217,53,250,187,39,191,121,169,38,11,0,40,165,243,61,60,60,230,123,120,120,168,142,31,63,174,169,85,171,22,120,158,55,150,142,100,117,234,212, - 105,206,198,141,27,61,106,215,174,61,25,64,165,70,235,101,192,48,120,243,243,117,19,157,109,21,79,18,112,119,89,97,47,65,22,200,207,1,78,254, - 0,174,237,220,135,147,251,207,112,152,185,229,227,55,81,65,133,108,204,253,88,172,91,183,26,211,166,190,142,239,190,253,28,162,200,193,96,102,225,237, - 219,10,6,147,8,194,112,8,105,210,12,191,157,60,3,25,3,236,217,178,238,37,29,225,203,129,82,154,65,8,89,123,224,192,129,119,166,76,153,2, - 81,20,21,11,214,173,211,165,166,166,46,134,5,253,175,202,208,25,176,110,221,186,232,153,171,83,247,79,27,5,246,209,207,36,35,226,14,28,7,207, - 160,216,187,148,160,105,61,100,168,203,62,197,159,46,117,255,175,129,148,209,172,244,169,169,195,34,231,88,145,131,108,26,80,251,19,141,163,195,27,45, - 26,5,56,79,159,50,137,187,159,164,199,190,90,35,243,126,221,246,149,117,18,175,252,250,30,213,85,201,100,21,177,235,215,95,139,255,254,98,199,142, - 50,31,75,28,60,184,74,90,162,40,150,27,197,178,52,146,5,0,106,181,218,190,123,247,238,232,218,181,43,6,13,26,84,156,147,213,184,113,99,236, - 220,185,19,3,7,14,196,181,107,215,224,225,225,129,192,192,64,4,6,6,226,240,225,195,22,237,163,104,26,47,56,56,184,168,234,176,81,92,92,156, - 69,213,134,37,49,24,12,72,79,79,135,163,163,35,20,10,5,90,182,108,129,119,222,109,9,103,143,205,8,174,95,15,90,173,182,184,252,189,50,100, - 50,89,112,221,186,117,145,154,154,138,212,212,84,184,184,184,192,211,211,19,238,238,238,88,182,108,25,93,181,106,213,81,147,201,180,54,53,53,213,226, - 72,150,135,135,71,123,71,71,199,57,58,157,78,81,226,23,174,194,197,197,229,39,79,79,207,197,9,9,9,150,36,21,195,100,50,129,16,130,176,7, - 158,208,26,9,114,226,34,48,229,127,62,79,25,47,153,76,86,149,132,94,237,240,225,195,93,107,214,244,66,108,76,36,246,238,165,88,190,124,121,81, - 85,36,162,11,127,24,20,45,119,238,220,25,190,190,190,160,22,244,202,16,69,17,55,110,220,192,142,159,78,193,195,167,62,158,220,141,194,213,195,63, - 163,150,139,35,26,52,105,6,179,217,252,92,173,55,94,4,102,179,121,147,191,191,63,53,26,141,167,0,172,190,121,243,230,235,137,137,137,83,183,109, - 219,230,62,122,244,232,164,131,7,15,174,4,176,229,230,205,155,19,63,253,244,211,174,60,207,151,89,45,200,178,236,119,239,189,247,94,167,33,67,134, - 16,142,152,141,71,142,108,229,4,222,76,230,124,188,73,8,63,125,138,17,120,51,25,57,250,61,241,224,137,155,204,148,247,190,16,154,182,13,197,173, - 91,183,220,251,244,233,243,41,128,10,141,86,81,164,170,188,8,229,131,7,15,176,105,211,38,204,156,89,149,118,117,5,140,5,106,219,249,216,92,92, - 180,166,155,13,225,242,10,77,22,251,34,76,86,171,193,131,7,255,60,103,206,28,39,142,227,240,254,164,145,152,255,197,183,112,108,57,69,116,246,242, - 37,143,78,174,208,221,59,189,169,203,223,81,205,150,150,150,182,30,192,122,71,71,199,100,107,107,107,228,230,230,62,243,249,35,132,168,234,213,171,167, - 82,40,20,232,209,163,135,163,135,135,71,52,195,48,171,226,227,227,203,117,28,101,77,19,150,53,157,248,60,85,135,14,46,232,211,178,125,19,219,59, - 154,143,109,85,156,254,90,173,104,149,29,1,144,109,112,123,112,254,241,176,28,146,162,108,220,172,115,83,216,113,214,125,80,142,209,98,88,246,106,118, - 102,86,175,156,92,35,206,158,187,133,225,195,234,194,96,34,16,69,6,121,90,3,192,202,192,0,24,49,114,52,40,225,144,145,156,0,150,101,111,86, - 237,213,253,87,241,209,196,137,19,123,205,154,53,203,175,176,255,149,79,97,255,171,233,132,144,134,180,146,230,227,21,232,212,250,121,231,220,247,127,58, - 243,77,118,104,27,221,221,166,5,181,83,142,77,235,33,67,38,195,61,142,69,58,165,120,42,205,40,52,52,180,99,201,251,127,19,101,69,178,138,168, - 82,142,150,127,109,175,87,58,54,111,246,238,236,89,179,109,255,56,127,18,51,63,89,77,253,155,117,207,93,127,230,170,49,207,218,183,87,110,234,221, - 115,85,29,11,0,244,236,60,16,141,130,90,60,243,96,187,206,5,189,36,207,254,118,5,201,169,241,85,18,44,50,81,229,229,100,85,165,164,191,52, - 58,157,46,235,214,173,91,174,113,113,113,79,37,190,251,250,250,130,16,130,75,151,46,225,226,197,139,24,62,124,56,56,142,131,76,38,195,169,83,167, - 44,138,198,148,136,46,221,160,148,118,36,132,244,244,242,242,42,179,218,176,42,90,58,157,14,217,217,217,56,118,236,24,234,214,173,139,69,139,22,193, - 211,195,13,179,103,191,15,81,20,145,147,147,3,65,16,170,26,209,18,139,162,69,162,40,34,53,53,21,126,126,126,88,179,102,13,86,174,92,249,105, - 66,66,194,65,75,199,232,237,237,109,47,8,194,135,125,251,246,237,222,191,127,127,244,236,217,243,169,199,127,248,225,7,219,125,251,246,45,174,89,179, - 230,43,38,147,105,73,114,114,114,106,85,116,55,111,46,104,191,164,110,53,31,51,135,212,194,171,111,109,197,178,101,63,66,169,252,179,99,4,203,178, - 248,248,227,143,43,52,49,34,165,254,242,180,243,9,239,207,248,210,117,241,226,112,132,135,167,128,97,24,120,120,120,128,97,24,60,124,248,16,12,195, - 192,199,199,7,12,195,32,62,62,190,40,39,48,19,101,84,61,150,5,195,48,208,235,245,136,125,242,8,113,49,209,176,201,73,130,139,157,26,153,145, - 55,208,104,236,155,197,253,159,254,78,40,165,219,1,108,47,177,234,75,66,136,81,163,209,12,2,176,159,82,90,20,209,248,180,240,86,38,173,90,181, - 106,60,107,214,44,89,81,187,13,47,159,207,120,147,201,36,2,64,80,72,135,98,183,223,165,55,112,239,222,61,44,91,182,12,90,173,22,242,170,52, - 186,67,129,105,45,170,48,44,9,203,178,240,243,243,195,164,73,150,181,236,113,242,241,250,250,82,196,41,225,122,204,55,186,155,119,142,88,21,152,172, - 186,207,107,178,234,190,254,250,235,135,62,250,232,35,199,156,156,28,220,189,123,23,89,89,89,120,109,64,71,126,205,250,169,230,84,247,134,52,254,230, - 225,191,197,100,149,132,82,58,223,203,203,107,190,40,138,148,82,58,183,196,248,149,222,222,222,103,142,31,63,238,196,243,60,190,250,234,43,251,164,164, - 36,251,14,29,58,204,4,80,174,209,42,107,154,176,172,233,68,148,168,58,84,42,149,142,21,12,241,153,170,67,65,64,128,157,173,61,50,17,7,131, - 179,185,113,150,19,159,113,34,241,205,107,158,143,155,4,89,11,102,63,38,199,136,26,106,123,136,148,6,148,39,106,48,155,143,92,139,184,218,195,187, - 102,93,246,224,161,211,232,55,96,8,12,6,6,122,51,1,97,101,32,172,28,13,27,53,65,96,131,70,160,0,174,92,62,207,27,205,230,19,21,140, - 243,95,135,103,187,119,135,123,182,123,103,21,168,72,203,232,163,229,55,96,192,128,197,0,222,173,76,199,173,245,187,195,221,219,20,232,148,236,163,245, - 222,59,19,17,121,89,166,57,29,177,84,222,179,21,194,82,195,9,212,170,63,171,14,101,76,245,91,115,252,211,120,174,134,165,222,222,222,246,174,54, - 234,205,111,143,125,195,246,241,245,11,72,186,125,9,231,78,71,103,238,218,247,99,134,54,61,101,172,5,38,171,120,154,207,217,163,22,252,202,48,90, - 86,182,46,0,0,191,160,22,224,158,88,214,70,168,172,104,86,117,76,86,17,69,230,170,116,226,251,132,9,19,176,113,227,70,180,109,219,22,254,254, - 254,197,95,246,150,70,205,74,71,151,170,83,109,88,146,220,220,92,248,248,248,96,195,134,13,184,121,243,38,108,109,109,49,124,248,112,228,230,230,22, - 27,172,170,38,195,83,74,239,29,63,126,188,249,208,161,67,169,76,38,35,89,89,89,176,183,183,199,154,53,107,180,137,137,137,97,21,110,92,6,222, - 222,222,67,228,114,249,251,195,134,13,99,235,213,171,135,228,228,100,216,217,217,153,9,33,50,0,176,183,183,55,91,89,89,97,226,196,137,8,9,9, - 105,63,125,250,244,182,53,106,212,88,19,31,31,95,110,111,165,162,233,194,157,59,119,2,0,198,174,138,130,209,88,96,84,214,174,93,139,194,92,183, - 98,98,98,98,128,42,84,178,216,216,216,192,223,223,191,204,247,190,125,251,246,184,114,229,74,193,212,36,199,193,213,213,21,231,206,157,171,82,37,21, - 45,108,4,121,235,214,45,212,247,117,198,205,240,227,112,86,203,16,226,233,14,175,246,29,17,29,29,253,183,69,179,10,123,83,77,2,208,21,5,159, - 193,111,1,76,40,177,188,134,82,250,181,37,154,60,207,83,134,97,72,108,108,172,73,173,86,19,71,71,71,78,169,84,194,96,48,20,27,174,123,247, - 238,225,208,161,67,136,139,139,131,163,163,35,163,209,104,96,50,153,170,146,227,204,28,0,0,32,0,73,68,65,84,212,63,42,32,32,0,238,238,238, - 79,37,190,143,29,59,22,141,27,55,198,212,169,83,45,74,132,127,29,8,222,248,217,146,90,74,134,213,212,119,126,5,15,162,30,234,137,1,170,159, - 15,60,151,201,226,66,66,66,126,154,57,115,166,227,141,27,55,48,111,222,60,188,246,218,107,0,96,62,114,228,72,108,102,106,124,155,204,212,120,80, - 74,75,87,92,189,116,50,51,51,215,163,196,101,127,92,92,92,198,176,44,59,91,163,209,104,78,157,58,101,239,226,226,66,182,110,221,106,158,59,119, - 110,22,203,178,153,132,144,21,127,227,112,1,0,148,226,118,90,118,140,143,204,193,83,188,174,167,231,167,198,206,12,204,148,213,117,33,13,130,49,32, - 229,143,179,99,248,152,54,201,137,73,12,133,120,187,60,13,81,20,55,205,156,245,241,135,209,81,87,189,85,118,42,76,152,56,11,97,71,127,3,97, - 100,56,115,254,18,140,38,1,105,25,217,24,54,98,20,188,60,156,113,251,226,177,84,94,20,215,188,204,227,252,171,161,84,92,221,163,223,24,7,165, - 85,65,154,169,40,10,216,254,237,251,96,152,85,152,55,111,30,130,131,131,223,34,132,44,44,175,197,67,17,132,136,171,27,118,28,225,32,87,22,232, - 80,81,192,134,61,51,11,251,104,77,195,154,245,251,26,54,240,125,176,160,162,62,90,255,21,202,75,134,47,147,90,181,106,41,173,101,24,239,104,37, - 159,254,246,200,254,46,41,49,145,136,251,227,42,0,192,108,210,153,18,163,111,87,218,10,189,176,193,91,201,169,32,90,209,212,149,94,95,249,47,250, - 210,154,69,39,220,210,209,44,75,76,86,89,154,0,158,57,209,178,44,139,154,53,107,98,241,226,197,149,246,209,42,227,216,139,214,247,196,255,177,119, - 221,97,81,156,123,247,188,219,41,75,47,75,87,80,65,177,247,168,24,123,47,137,88,19,141,61,118,197,174,81,99,137,53,106,236,198,168,49,246,222, - 98,69,99,87,236,34,160,8,42,189,215,165,44,219,103,230,253,254,160,92,68,22,22,82,238,189,223,245,60,207,62,192,148,179,191,153,93,102,206,252, - 42,208,24,64,233,100,248,30,198,84,26,26,226,116,112,112,64,86,86,97,135,132,142,29,59,162,99,199,127,213,51,232,116,186,18,47,150,133,133,197, - 71,30,173,242,56,77,77,77,23,156,57,115,102,76,80,80,208,144,57,115,230,8,187,116,41,108,23,148,159,159,175,164,70,204,118,43,203,201,178,236, - 196,192,192,64,62,199,113,216,189,123,55,158,61,123,70,205,204,204,22,155,153,153,109,55,53,53,101,85,42,213,132,241,227,199,15,95,182,108,25,175, - 125,251,246,120,248,240,33,207,203,203,107,36,128,3,134,56,139,241,248,241,99,240,120,60,48,217,241,152,188,224,56,204,77,5,120,243,230,13,178,179, - 179,63,106,98,106,204,249,44,237,41,41,126,181,111,223,190,36,12,217,186,117,107,240,249,124,4,7,7,151,27,134,45,195,73,237,236,236,74,190,31, - 34,145,8,183,110,221,194,15,63,252,0,15,91,107,200,195,67,225,212,177,51,186,141,25,143,97,195,134,129,207,231,195,214,214,22,248,112,214,167,193, - 99,255,51,40,195,57,166,77,155,54,227,126,254,249,231,90,211,166,77,171,121,239,222,189,78,237,219,183,247,222,190,125,187,215,212,169,83,107,222,187, - 119,207,4,70,228,230,148,230,124,250,244,233,169,237,219,183,79,28,53,106,148,136,227,56,54,46,46,78,15,128,56,57,57,241,159,62,125,202,253,254, - 251,239,80,169,84,112,115,115,227,185,186,186,146,235,215,175,115,225,225,225,143,41,165,223,25,115,236,44,203,126,208,198,65,40,20,162,71,143,30,24, - 49,98,68,165,255,251,101,57,107,214,243,89,221,229,243,186,238,153,201,193,72,73,122,15,46,215,81,119,241,220,239,154,170,136,172,178,156,18,137,100, - 254,182,109,219,106,133,134,134,98,233,210,165,24,58,116,40,120,60,158,246,196,137,19,113,33,33,33,109,40,165,149,10,202,127,224,115,55,132,21,111, - 223,190,117,213,104,52,16,139,197,216,185,115,167,110,205,154,53,175,51,51,51,253,104,57,21,229,101,57,171,89,117,152,93,1,231,71,85,135,185,89, - 184,116,238,252,211,150,210,1,123,49,57,57,163,36,177,145,18,98,123,70,86,223,207,172,85,163,36,222,229,165,188,124,86,121,201,0,39,40,165,90, - 66,200,224,1,254,95,221,56,118,236,168,116,201,210,165,120,240,56,20,89,57,10,112,148,15,142,16,44,90,180,4,78,246,182,200,75,126,171,212,232, - 116,3,104,153,81,60,255,198,207,232,47,225,36,132,55,245,250,239,7,182,240,8,184,130,180,8,9,63,255,189,217,136,97,3,4,131,7,15,198,153, - 51,103,16,22,22,182,203,144,200,42,205,73,41,111,106,232,157,227,91,8,192,169,50,34,36,2,69,180,217,200,175,7,8,134,13,27,134,179,23,131, - 112,236,66,244,207,71,127,167,23,254,202,99,250,79,68,121,121,90,64,5,66,203,66,128,48,191,250,181,92,219,55,107,96,34,96,85,72,12,127,143, - 236,2,53,174,191,138,203,225,81,94,181,123,235,20,94,32,69,136,143,255,184,130,57,39,167,48,59,46,63,191,106,99,165,120,60,222,7,222,172,63, - 227,201,42,109,167,76,38,43,185,73,22,11,186,226,27,119,113,14,80,53,90,59,44,136,143,143,183,140,143,143,7,165,20,143,31,63,182,108,221,186, - 245,2,252,9,111,214,236,217,179,75,188,86,101,127,150,183,172,50,20,37,165,111,182,183,183,63,57,111,222,188,201,173,91,183,238,190,116,233,82,2, - 160,234,101,92,0,40,165,12,199,113,184,125,251,54,206,156,57,195,234,116,186,111,147,147,147,75,231,58,108,117,113,113,185,238,239,239,127,32,34,34, - 130,255,250,245,107,24,35,232,84,42,21,188,189,189,193,48,12,214,77,118,71,126,126,35,48,12,3,150,101,97,110,110,254,193,156,75,99,62,39,30, - 143,7,150,101,63,18,90,143,31,63,6,159,207,135,159,159,31,94,188,120,81,226,209,170,204,3,165,211,233,226,101,50,153,108,197,138,21,37,118,101, - 100,100,224,218,181,107,248,172,77,91,212,255,118,2,146,147,147,177,105,211,38,184,184,184,96,245,234,213,200,206,206,6,195,48,255,180,59,189,87,207, - 158,61,173,246,239,223,159,118,228,200,17,159,141,27,55,154,205,158,61,219,109,227,198,141,137,29,59,118,180,184,119,239,94,91,84,49,9,154,101,217, - 133,132,144,171,171,87,175,94,48,125,250,244,214,163,70,141,18,10,133,66,46,41,41,137,57,122,244,40,241,246,246,230,137,68,34,18,24,24,200,61, - 121,242,228,17,195,48,235,40,165,247,140,229,47,157,127,87,92,97,56,114,228,200,42,31,120,128,163,100,164,5,47,195,111,251,206,53,188,186,158,110, - 186,131,71,175,37,220,123,248,54,138,175,97,2,246,1,6,91,3,84,4,66,136,221,164,73,147,230,5,7,7,11,239,222,189,139,177,99,199,34,37, - 37,37,251,200,145,35,225,81,81,81,125,41,165,85,74,51,248,167,193,231,243,79,248,250,250,142,158,58,117,170,105,143,30,61,36,203,150,45,203,205, - 207,207,47,87,100,149,135,127,162,234,16,192,175,11,231,92,12,152,213,104,116,173,113,78,53,241,71,65,58,228,2,62,207,210,154,135,102,53,248,200, - 207,124,231,112,225,198,254,24,84,210,151,141,82,250,148,16,210,181,65,163,166,167,215,173,94,231,184,120,254,60,225,233,139,87,64,25,29,30,223,185, - 3,169,136,165,225,207,255,72,211,232,180,95,254,187,67,188,127,7,146,239,111,61,70,8,57,111,107,107,251,114,204,168,81,222,190,190,95,193,204,204, - 12,167,78,157,194,161,173,91,217,205,192,144,95,8,121,49,161,176,167,158,65,164,61,44,225,9,30,63,102,140,79,179,102,227,96,102,102,134,147,39, - 79,226,192,230,205,70,243,252,55,163,122,57,90,60,146,255,232,109,156,226,241,219,56,5,56,74,57,74,53,60,30,18,10,116,186,213,145,81,137,213, - 18,5,197,161,195,149,171,166,86,103,119,131,156,197,226,167,186,37,221,101,193,178,108,98,233,25,105,165,111,210,134,126,215,235,245,137,70,210,175,245, - 240,248,104,6,106,149,243,178,138,81,28,14,52,86,100,25,219,71,11,0,50,51,51,83,0,44,118,118,118,62,210,189,123,247,241,0,140,75,156,43, - 3,66,200,238,14,29,58,124,11,128,79,8,217,149,148,148,244,81,66,105,114,114,114,164,171,171,235,122,79,79,207,146,65,211,21,113,114,28,23,221, - 168,81,163,146,6,162,101,133,84,121,127,115,28,87,233,103,148,147,147,131,86,173,90,125,52,211,146,82,138,184,184,184,98,143,19,128,194,115,95,145, - 128,83,40,20,19,166,77,155,246,139,80,40,244,0,64,138,69,46,203,178,252,109,219,182,153,176,44,203,7,64,120,60,30,35,20,10,213,103,206,156, - 97,24,134,137,215,104,52,19,42,179,243,47,198,137,37,75,150,80,0,138,23,47,94,52,222,190,125,187,215,215,95,127,29,121,239,222,189,71,0,28, - 1,28,175,14,105,145,112,186,71,8,105,191,115,231,206,133,19,38,76,104,53,108,216,48,65,199,142,29,113,233,210,37,246,246,237,219,143,85,42,213, - 218,170,8,44,0,32,132,228,186,187,187,3,64,165,255,239,44,203,86,152,200,107,87,67,178,125,248,36,23,147,221,107,175,41,50,147,181,65,122,133, - 246,187,253,64,88,85,236,41,139,26,53,106,236,16,8,4,230,33,33,33,240,242,242,202,62,122,244,168,226,229,203,151,147,41,165,87,255,12,239,63, - 133,212,212,212,57,132,144,37,155,54,109,74,110,210,164,137,68,36,18,105,141,21,89,255,20,40,165,12,33,164,247,79,221,6,157,239,176,104,154,103, - 183,78,126,102,238,53,29,93,195,223,167,225,221,195,75,5,47,47,172,138,165,26,249,23,148,210,74,231,155,82,74,159,16,66,234,204,158,55,187,120, - 168,116,227,46,215,207,209,255,161,161,210,43,215,175,95,239,237,235,235,139,83,167,78,225,250,225,195,24,154,153,137,91,124,62,159,39,18,217,93,208, - 233,54,192,184,198,197,43,55,110,220,232,211,176,97,67,156,56,113,2,129,7,14,96,72,245,120,12,161,37,0,135,162,223,51,1,68,0,104,14,192, - 20,128,6,133,163,157,236,75,109,159,85,180,174,120,253,93,0,127,91,34,108,181,114,180,66,223,198,52,255,171,13,81,169,84,217,222,222,222,85,234, - 34,168,215,235,43,140,225,50,12,147,88,171,86,45,0,198,119,103,175,76,20,101,101,101,181,48,214,190,170,226,207,230,98,149,6,203,113,177,206,206, - 206,92,17,111,121,239,85,238,50,10,196,84,229,125,82,82,82,34,0,84,62,225,219,0,146,146,146,78,195,136,161,209,198,110,7,0,217,217,217,213, - 30,230,107,8,132,210,164,101,203,150,253,235,111,35,4,54,40,53,40,62,41,165,161,0,90,255,165,70,254,13,160,148,158,4,112,146,16,194,187,119, - 239,222,184,134,13,27,246,0,112,3,192,46,90,216,209,251,207,242,151,8,174,221,187,119,7,80,74,145,151,151,183,185,170,2,171,24,105,105,105,85, - 206,19,52,132,236,52,237,205,163,187,18,59,171,114,116,1,123,20,90,163,230,45,86,4,66,72,179,230,205,155,15,136,143,143,215,134,133,133,61,139, - 139,139,219,8,224,178,49,30,218,255,36,80,74,213,142,142,142,191,141,24,49,226,51,0,251,255,44,95,121,225,196,63,11,74,105,12,33,164,201,173, - 217,63,140,185,101,109,209,7,172,160,46,180,188,11,208,102,93,2,176,175,42,231,188,72,72,109,68,57,173,74,254,63,131,20,246,191,10,24,61,122, - 52,150,44,89,130,192,13,27,116,147,8,201,21,2,244,106,225,131,38,143,0,243,141,229,25,57,114,36,150,44,89,130,203,235,214,85,139,167,18,56, - 16,66,46,2,192,130,5,11,190,91,179,102,141,205,194,133,11,27,175,93,187,118,117,209,223,175,138,215,3,0,165,180,239,194,133,11,27,148,90,159, - 15,224,233,159,180,161,122,40,253,196,254,87,191,0,116,253,196,249,137,243,19,231,39,206,255,37,78,30,143,55,27,64,211,255,116,59,63,113,126,226, - 252,79,227,172,228,213,167,80,178,24,254,105,232,247,82,203,254,54,251,0,56,3,248,182,212,203,185,120,93,181,71,240,124,194,39,124,194,39,124,194, - 199,96,89,246,127,202,43,242,9,159,240,239,68,105,47,86,117,214,255,85,160,21,12,149,38,0,186,26,216,169,42,141,35,203,229,168,196,168,10,249, - 63,113,126,226,252,196,249,137,243,19,231,39,206,79,156,255,255,56,43,227,54,176,127,31,66,200,69,74,105,95,67,63,139,56,63,250,189,212,178,191, - 44,237,160,156,99,49,56,84,250,111,117,245,225,191,196,93,249,137,243,19,231,39,206,79,156,159,56,63,113,126,226,252,247,114,86,242,234,131,194,214, - 55,116,193,130,5,11,233,127,88,232,176,162,87,5,161,195,83,252,164,36,88,138,197,102,34,0,208,106,149,58,87,87,228,1,131,254,171,146,58,63, - 225,223,15,66,136,12,0,168,17,195,167,171,178,237,39,124,194,39,124,194,39,252,207,32,131,22,121,170,0,100,0,32,69,127,107,139,126,102,0,133, - 73,240,101,126,255,96,253,63,5,35,170,14,79,241,51,51,205,236,5,2,185,15,203,170,235,1,128,64,192,123,147,153,105,19,105,111,127,42,179,58, - 98,203,65,38,123,46,228,243,93,141,217,86,207,178,73,153,105,105,31,180,142,167,192,127,189,192,51,86,68,252,25,177,241,79,8,21,7,7,7,153, - 76,38,235,111,105,105,217,38,39,39,231,73,70,70,198,89,67,115,15,9,33,107,8,193,188,162,223,127,164,148,46,52,196,91,149,109,203,217,215,219, - 204,204,108,50,33,164,33,0,80,74,195,148,74,229,78,74,233,199,13,219,254,159,131,16,98,10,224,75,129,64,48,210,222,222,190,85,106,106,234,50, - 74,105,181,186,121,19,66,4,0,102,91,91,91,15,181,182,182,174,149,157,157,29,149,151,151,119,2,192,70,74,105,165,165,210,203,103,184,180,233,216, - 163,227,226,219,129,183,87,46,221,146,252,240,163,245,115,92,236,186,119,107,183,228,246,133,160,21,11,183,39,85,216,125,186,28,219,120,0,138,155,230, - 113,40,124,106,253,75,219,235,147,194,233,5,253,0,116,4,112,27,192,5,99,142,219,0,215,103,0,190,67,161,205,27,41,165,183,254,50,67,255,6, - 16,66,204,101,50,217,58,0,253,4,2,193,235,164,164,164,111,41,165,198,182,177,249,187,108,18,160,176,204,191,33,10,219,112,60,165,70,180,112,48, - 6,246,246,246,125,5,2,193,228,162,214,46,59,51,51,51,255,145,220,158,234,64,34,145,108,118,114,114,26,167,82,169,148,132,16,90,186,223,35,195, - 48,137,25,25,25,127,91,229,252,191,17,255,158,138,193,191,0,229,10,173,164,36,88,10,4,114,159,244,212,208,161,201,41,33,67,0,192,197,185,241, - 9,71,167,70,199,147,146,196,186,150,221,252,165,66,51,193,78,62,95,216,84,173,213,216,11,5,194,76,29,163,15,230,105,233,228,148,55,103,202,109, - 182,40,228,243,93,99,35,111,57,50,186,108,8,77,92,32,52,253,168,151,84,9,92,92,92,170,117,48,182,182,181,45,116,18,147,0,161,144,223,141, - 163,76,67,202,1,60,34,12,99,88,253,13,145,70,243,83,118,246,251,106,55,10,172,103,79,156,40,48,12,4,221,64,113,157,0,199,222,100,210,84, - 99,247,55,86,68,252,73,177,81,122,223,77,148,210,57,198,238,107,44,220,220,220,108,6,14,28,184,249,135,31,126,48,149,74,165,36,62,62,190,199, - 252,249,243,63,119,115,115,155,149,152,152,152,92,198,30,25,33,152,199,113,148,7,0,60,30,153,47,147,201,204,248,124,254,71,189,141,88,150,53,35, - 4,83,57,142,146,162,109,231,17,66,182,24,35,24,77,77,77,191,106,213,186,237,172,117,235,55,74,101,142,142,230,12,203,233,98,98,99,205,23,47, - 156,211,218,212,212,116,139,74,165,58,90,25,71,89,16,66,8,159,207,31,42,145,72,250,2,240,45,90,28,174,209,104,46,178,44,123,220,216,27,186, - 147,147,211,93,62,159,95,179,42,239,205,178,108,124,106,106,170,95,229,91,126,12,66,200,96,15,15,143,125,29,58,116,48,107,213,170,21,196,98,49, - 150,44,89,50,27,64,133,66,171,88,80,153,153,153,13,53,55,55,175,165,80,40,222,171,84,170,211,98,177,184,235,150,45,91,220,219,181,107,103,145, - 150,150,70,248,124,190,236,242,229,203,223,108,222,188,185,7,33,164,75,101,55,185,220,247,116,177,164,159,111,251,220,247,183,22,3,232,85,118,61,163, - 54,25,73,249,238,125,85,244,69,2,170,80,90,79,8,225,9,133,194,45,78,78,78,163,213,106,181,26,133,189,215,168,76,38,43,94,15,0,208,106, - 181,114,185,92,94,215,88,222,82,252,117,1,140,181,182,182,30,61,119,238,92,155,94,189,122,225,240,225,195,83,246,236,217,35,39,132,252,6,224,87, - 74,105,68,21,105,231,165,166,166,246,22,10,133,196,221,221,157,15,192,104,161,69,8,241,1,176,8,133,55,155,157,148,82,150,16,210,9,40,252,127, - 7,240,99,177,112,227,243,249,59,235,214,173,219,63,60,60,252,103,74,169,193,121,148,149,193,201,201,233,151,29,59,118,12,249,226,139,47,248,25,25, - 25,174,77,154,52,57,2,160,125,117,249,74,29,203,24,137,68,50,179,113,227,198,245,35,34,34,34,243,242,242,54,162,240,124,26,252,159,34,132,184, - 1,232,106,109,109,221,101,209,162,69,210,190,125,251,98,247,238,221,189,247,236,217,163,32,132,220,0,240,199,159,21,129,2,129,96,114,98,98,162,61, - 165,20,206,206,206,147,81,201,112,115,3,118,126,7,96,20,10,67,92,123,41,165,235,255,140,77,229,129,207,231,111,25,58,116,232,232,35,71,142,152, - 197,198,198,154,185,186,186,150,52,207,38,132,84,251,254,249,9,127,14,229,229,104,21,163,92,161,37,22,155,137,88,86,93,47,57,37,100,200,231,29, - 182,89,1,192,221,59,211,134,56,58,53,8,19,139,205,34,37,150,38,103,252,251,117,109,58,168,111,7,226,230,236,136,196,148,116,217,175,199,2,123, - 94,12,188,117,6,133,13,196,202,5,163,203,134,169,238,15,68,220,223,10,251,142,201,216,126,57,17,15,95,198,64,153,155,137,154,78,166,88,31,208, - 29,78,54,102,213,58,72,169,204,167,19,207,196,236,248,215,95,141,176,234,255,165,175,176,134,147,19,40,149,32,242,189,162,237,149,107,183,90,158,62, - 121,116,178,84,230,51,84,145,22,105,244,197,173,185,11,49,45,208,225,75,1,159,124,211,190,117,131,46,95,245,110,207,171,239,91,7,175,95,133,119, - 63,127,243,241,250,250,50,222,13,134,165,7,205,69,56,247,60,217,112,67,191,242,4,71,183,110,221,218,75,36,18,93,233,237,52,26,141,136,16,124, - 86,29,177,81,252,30,90,173,134,39,20,138,193,227,145,89,141,27,55,246,205,204,204,188,69,8,217,151,148,84,53,111,193,116,66,196,114,129,160,57, - 79,34,113,102,181,90,59,0,32,98,177,220,205,198,166,209,162,239,190,147,242,249,124,46,43,43,11,74,165,146,140,31,63,222,228,253,251,247,254,0, - 182,86,98,35,246,236,217,227,227,236,236,172,45,187,46,37,37,69,252,197,23,253,171,98,98,49,167,207,103,109,218,205,12,12,188,234,155,151,45,87, - 239,217,180,251,133,222,196,84,237,89,207,71,180,115,247,1,203,111,71,15,159,70,8,9,166,148,26,61,175,142,16,226,97,106,106,122,102,195,134,13, - 13,59,117,234,36,116,116,116,68,90,90,26,194,195,195,27,222,188,121,243,203,3,7,14,204,38,132,248,83,74,141,233,224,238,125,227,224,62,71,115, - 91,59,176,122,61,92,26,55,43,206,111,192,187,155,215,192,232,116,224,244,122,248,246,253,18,64,97,206,164,175,175,111,181,186,238,18,66,92,26,52, - 104,112,104,245,234,213,34,141,70,131,199,143,31,227,214,173,91,92,74,74,74,133,13,113,9,33,2,66,200,181,165,75,151,186,249,249,249,89,100,102, - 102,130,101,89,251,115,231,206,77,110,218,180,169,165,187,187,187,248,224,193,131,80,40,20,96,24,198,182,86,173,90,182,95,125,245,149,246,224,193,131, - 179,1,172,43,143,115,249,12,151,54,121,239,233,226,84,82,171,103,221,230,35,145,74,174,246,156,213,203,249,138,101,109,82,226,217,234,85,187,182,69, - 173,122,230,243,165,150,141,108,243,146,254,152,223,171,118,237,61,87,222,87,254,48,68,8,225,241,120,188,45,254,254,254,95,31,59,118,204,44,60,60, - 220,204,215,215,23,28,199,149,116,224,47,110,56,235,237,93,233,164,176,242,248,215,78,156,56,113,254,144,33,67,208,184,113,227,146,166,168,223,127,255, - 61,230,207,159,111,115,247,238,221,217,71,143,30,157,77,8,89,71,41,93,80,5,234,210,215,219,170,126,198,203,163,163,163,7,159,57,115,102,248,188, - 121,243,188,1,76,5,176,36,43,43,171,3,0,216,217,217,137,1,220,34,132,140,153,59,119,238,164,5,11,22,160,119,239,222,75,8,33,171,170,227, - 229,35,132,240,237,237,237,123,127,241,197,23,124,189,94,15,115,115,115,232,245,250,218,85,229,41,195,73,0,236,152,48,97,194,164,137,19,39,194,198, - 198,6,122,189,222,231,216,177,99,123,150,44,89,210,134,16,50,182,60,91,9,33,35,39,77,154,52,112,196,136,17,104,209,162,5,4,130,194,211,184, - 97,195,6,172,88,177,66,122,237,218,181,47,15,30,60,248,37,33,228,52,165,180,218,189,208,56,142,131,64,32,64,66,66,2,28,29,29,37,182,182, - 182,129,132,144,221,89,89,89,103,141,217,223,214,214,246,51,66,200,170,226,198,196,132,144,31,61,61,61,191,47,251,30,165,65,41,133,64,32,72,203, - 207,207,31,154,153,153,249,162,178,247,32,132,252,56,116,232,208,175,143,28,57,34,5,128,245,235,215,99,230,204,153,144,201,100,144,74,165,198,30,234, - 39,252,13,160,213,234,12,95,1,148,74,101,179,133,211,191,1,143,87,248,212,88,199,203,3,107,190,251,150,156,191,24,216,172,162,253,132,38,46,136, - 184,191,21,18,247,0,104,244,12,30,189,140,198,245,245,61,0,0,62,189,22,65,163,235,82,108,176,173,216,212,244,71,45,203,62,128,147,211,99,196, - 197,85,24,91,149,202,124,58,57,56,201,46,238,218,181,206,180,97,237,186,208,49,122,36,165,39,129,16,9,220,92,45,48,102,100,47,97,135,14,46, - 246,203,151,255,114,201,220,193,103,64,65,70,100,165,13,67,235,58,144,253,237,155,121,15,249,170,143,159,164,81,195,6,16,73,76,75,214,53,111,209, - 2,205,91,180,224,45,80,228,119,123,242,244,121,183,83,215,30,105,234,58,144,19,17,25,116,84,5,148,37,93,46,9,33,152,49,99,6,138,159,190, - 139,145,150,150,134,155,55,111,148,187,143,145,248,224,61,86,173,90,101,33,151,203,123,237,221,187,183,179,179,179,243,170,148,148,148,251,198,144,124,67, - 72,77,72,36,93,70,111,220,200,53,237,223,159,111,237,228,196,227,88,150,36,71,69,217,109,218,186,181,99,246,187,119,166,5,182,182,217,114,149,74, - 25,25,25,9,19,19,19,34,16,8,90,150,229,161,148,166,17,66,126,228,241,200,124,66,8,36,18,147,200,137,19,39,22,95,76,106,94,184,112,193, - 172,95,191,126,74,0,177,0,32,145,152,184,242,249,60,159,194,4,66,252,104,140,192,52,55,55,159,190,114,245,143,230,121,217,57,42,93,65,129,222, - 209,82,74,32,149,242,243,243,20,121,201,169,25,234,69,203,86,8,38,140,25,49,29,192,100,163,78,32,33,30,77,154,52,121,114,230,204,25,71,59, - 59,59,228,228,228,32,43,43,11,79,158,60,1,165,20,254,254,254,146,182,173,91,53,251,110,209,226,135,132,144,54,198,136,45,115,91,123,172,247,107, - 10,0,248,62,54,171,248,125,176,123,112,223,146,109,86,36,230,2,0,76,76,76,254,204,8,169,54,93,186,116,17,1,192,216,177,99,243,242,243,243, - 215,0,56,66,43,104,170,90,132,217,139,23,47,118,245,242,242,170,113,228,200,17,40,20,10,0,112,244,242,242,130,143,143,15,123,251,246,109,248,248, - 248,192,194,194,2,119,239,222,197,195,135,15,209,162,69,11,11,145,72,52,4,6,132,86,199,30,29,23,75,250,249,182,175,219,124,36,164,150,206,216, - 115,244,56,34,158,31,104,175,209,133,47,94,51,213,117,132,138,74,70,185,121,91,44,168,217,162,131,93,157,6,253,81,163,249,11,123,53,123,47,122, - 201,148,90,107,5,38,234,3,75,55,36,103,149,199,91,20,46,92,239,239,239,63,248,216,177,99,214,0,16,26,26,138,180,180,52,56,56,56,192,196, - 196,4,66,161,176,100,62,105,53,49,106,231,206,157,37,162,141,97,24,80,90,56,5,192,204,204,12,159,127,254,57,154,54,109,138,179,103,207,142,2, - 240,145,208,34,132,248,181,110,221,250,112,141,26,53,220,75,47,239,211,167,15,134,13,27,6,0,232,208,161,67,151,65,131,6,209,98,65,152,146,146, - 162,120,250,244,105,55,74,233,227,242,12,226,241,120,170,164,164,36,204,157,59,23,49,49,49,83,8,33,113,0,76,196,98,113,241,38,98,66,136,79, - 131,6,13,182,204,156,57,19,239,223,191,199,235,215,175,159,84,55,148,74,41,101,61,61,61,223,233,245,250,22,12,195,64,165,82,97,192,128,1,38, - 182,182,182,105,124,62,255,77,102,102,230,112,90,88,206,110,20,8,33,38,0,54,78,156,56,113,210,188,121,243,112,227,198,13,156,63,127,30,35,70, - 140,64,64,64,0,164,82,233,232,128,128,128,135,0,246,150,179,123,151,157,59,119,130,101,217,143,254,55,76,76,76,224,231,231,135,250,245,235,227,252, - 249,243,93,80,106,62,106,85,64,8,169,225,239,239,47,230,56,14,5,5,5,184,125,251,182,212,212,212,84,234,230,230,54,30,128,81,66,203,218,218, - 250,192,241,227,199,113,226,196,9,0,64,100,100,36,188,189,189,205,43,219,47,44,44,172,86,255,254,253,143,1,168,83,217,182,53,106,212,152,120,236, - 216,177,18,69,229,226,226,2,137,68,130,82,223,131,79,248,15,68,185,87,34,173,86,169,19,8,120,111,92,156,27,159,184,123,103,90,73,232,16,224, - 189,209,106,149,58,0,96,57,138,60,37,3,83,9,15,177,169,249,120,21,149,249,17,15,45,83,162,41,52,245,128,164,85,44,40,165,208,234,88,104, - 114,83,177,230,146,18,225,137,106,104,11,228,208,234,10,211,176,236,237,237,5,129,129,87,102,254,241,199,205,73,191,253,246,27,63,209,202,234,53,114, - 115,155,149,199,105,107,91,219,66,96,110,122,226,231,93,75,76,41,63,10,145,241,5,168,227,214,10,246,214,238,72,205,44,192,131,215,151,241,230,237, - 69,120,57,215,64,192,244,158,38,43,87,31,57,110,99,227,229,33,151,71,231,25,178,179,8,35,127,185,26,9,38,59,10,108,214,123,176,249,201,31, - 109,32,117,240,64,243,78,174,112,112,175,45,25,21,176,98,36,10,93,198,31,113,82,74,211,248,124,254,207,60,30,153,68,8,65,227,198,77,18,55, - 110,220,168,251,136,16,208,53,110,220,36,145,207,231,185,21,94,216,121,59,57,142,77,43,143,179,156,115,157,70,8,249,81,44,150,204,3,0,39,39, - 231,132,75,151,46,233,6,15,30,140,13,27,54,136,231,207,159,191,200,205,205,109,108,217,240,94,89,78,127,66,60,92,107,215,238,190,234,193,3,42, - 212,235,73,246,147,39,121,57,41,41,76,106,126,190,248,228,155,55,189,199,205,153,35,118,119,119,199,253,139,23,237,50,10,10,104,142,70,163,202,201, - 201,161,12,195,60,41,143,147,82,186,80,38,147,153,237,217,179,199,103,226,196,137,47,146,147,147,23,2,128,139,139,203,26,0,245,1,196,150,90,134, - 93,187,142,39,141,31,63,62,50,45,45,237,131,144,105,5,199,222,192,209,193,193,236,232,47,7,67,108,45,76,121,246,110,206,60,161,149,149,144,145, - 152,137,40,133,218,203,171,182,25,128,6,6,206,217,7,156,132,16,98,106,106,122,230,247,223,127,119,20,10,133,96,89,22,14,14,14,136,137,137,65, - 78,78,14,242,243,243,17,21,254,26,158,238,238,88,190,96,190,243,212,249,11,206,16,66,90,148,190,153,149,103,39,171,255,240,163,46,118,241,151,69, - 233,60,11,35,143,189,44,98,226,227,227,33,149,74,209,176,97,67,233,131,7,15,238,25,18,89,165,57,77,76,76,134,180,107,215,206,226,200,145,35, - 104,209,162,5,172,172,172,112,251,246,109,132,134,134,66,167,211,241,20,10,5,164,82,41,214,174,93,11,15,15,15,228,231,231,35,54,54,214,78,40, - 20,218,27,226,188,29,120,123,101,238,251,91,139,83,201,213,158,123,142,30,199,248,175,134,194,137,70,221,179,170,77,86,118,239,215,238,123,202,119,239, - 107,110,209,216,198,187,97,63,136,196,82,76,157,183,2,145,97,23,108,148,249,33,83,8,155,224,14,96,70,89,206,34,143,8,207,221,221,125,220,201, - 147,39,45,138,151,243,249,252,146,153,135,165,135,192,27,26,248,110,204,249,36,132,32,38,38,6,142,142,142,144,74,165,37,3,196,195,195,195,241,232, - 209,35,20,79,163,48,192,57,252,143,63,254,112,55,55,55,47,187,13,50,51,51,193,48,12,204,204,204,192,178,44,116,58,29,244,122,61,212,106,181, - 180,126,253,250,147,1,60,46,143,147,227,184,89,67,134,12,105,247,248,241,227,90,91,183,110,133,86,171,93,159,154,154,138,129,3,7,130,227,56,116, - 233,210,229,51,74,105,196,162,69,139,0,0,51,103,206,212,23,20,20,76,172,206,177,23,29,127,253,65,131,6,213,186,113,227,6,218,183,111,15,141, - 70,131,13,27,54,88,238,218,181,203,242,224,193,131,14,243,230,205,219,7,160,71,69,156,69,159,215,122,39,39,167,73,95,125,245,149,105,209,12,83, - 28,56,112,0,203,151,47,63,6,96,209,149,43,87,150,158,63,127,126,228,184,113,227,176,124,249,242,0,20,9,173,242,56,163,163,163,225,224,224,0, - 75,75,75,0,128,78,167,67,112,112,48,174,95,191,142,122,245,234,85,122,76,21,216,89,195,223,223,127,223,209,163,71,45,18,18,18,112,247,238,93, - 120,122,122,66,169,84,86,58,27,182,52,103,94,94,158,212,203,203,11,30,30,30,37,227,206,94,191,126,109,112,68,218,254,211,55,193,228,197,97,228, - 55,223,32,43,43,75,90,30,103,89,168,84,42,117,124,124,188,116,221,186,117,112,118,118,70,141,26,53,96,98,98,2,66,8,244,122,61,168,1,93, - 109,204,231,222,177,35,17,100,38,217,124,97,101,109,51,133,82,42,200,205,149,255,162,67,206,169,247,239,233,71,17,8,99,57,63,161,16,2,0,184, - 116,233,18,237,211,167,15,41,254,233,234,138,188,204,76,155,72,71,167,70,199,29,157,26,20,205,253,226,189,225,243,109,34,101,50,101,30,0,232,24, - 138,160,55,57,8,121,151,138,208,119,169,48,151,24,231,124,209,232,152,194,250,76,74,161,86,252,235,161,85,167,148,67,163,43,76,247,208,106,148,200, - 205,120,77,6,15,232,102,50,105,210,4,56,59,187,58,24,160,131,78,98,18,48,117,102,111,107,91,107,33,46,62,184,138,207,234,13,128,137,68,136, - 172,92,53,64,128,183,81,215,1,206,2,97,145,241,104,221,192,12,61,186,251,74,207,158,138,152,3,96,137,49,246,50,137,79,32,242,238,5,33,171, - 135,62,51,2,92,78,28,96,238,4,21,145,34,43,37,14,111,238,157,46,140,198,87,2,150,101,167,56,56,56,228,44,90,180,168,99,157,58,117,116, - 147,39,79,126,25,27,27,251,193,88,155,154,53,107,254,180,115,231,78,188,123,247,46,105,213,170,85,183,51,50,50,22,27,99,99,49,40,165,11,8, - 33,155,1,32,37,37,37,243,220,185,115,205,239,220,185,19,176,121,243,102,217,180,105,211,196,211,166,77,27,3,224,7,67,251,79,39,68,108,46,145, - 116,93,117,247,46,101,18,19,53,135,182,109,19,239,8,10,90,164,227,56,23,123,71,71,210,182,117,235,2,51,30,47,51,43,45,141,113,168,85,139, - 31,115,253,186,29,53,53,77,190,114,229,74,158,66,161,48,56,58,135,207,231,43,203,11,23,150,7,103,103,103,109,121,57,92,134,64,8,201,227,40, - 213,217,120,121,162,123,151,182,117,222,69,68,69,73,172,172,249,222,222,53,235,190,126,19,251,152,99,24,13,33,36,175,114,38,128,207,231,15,221,188, - 121,115,35,75,75,75,112,28,7,43,43,43,100,100,100,64,171,213,34,47,47,15,218,252,92,232,114,115,17,26,31,131,118,29,58,98,112,207,238,190, - 7,207,253,62,20,192,177,138,120,93,26,55,43,241,100,173,168,105,87,178,124,121,66,78,137,232,90,215,204,27,34,169,20,221,102,85,37,18,245,33, - 40,165,47,196,98,241,101,127,127,255,222,115,230,204,225,165,164,164,92,37,132,180,163,148,190,174,104,63,169,84,90,59,51,51,19,10,133,2,86,86, - 86,216,188,121,51,100,50,25,148,74,37,158,62,125,74,221,220,220,200,237,219,183,225,230,230,134,172,172,44,232,116,58,168,84,170,84,173,86,107,48, - 92,94,20,30,236,53,171,151,243,149,136,231,7,218,187,146,232,167,67,102,119,120,23,17,250,38,254,218,245,7,63,48,106,147,132,156,196,63,230,123, - 181,124,97,63,101,238,114,108,95,191,20,17,143,239,102,203,60,242,118,152,18,205,254,214,221,12,219,91,80,80,160,14,15,15,183,8,9,9,1,33, - 4,86,86,86,48,51,51,43,87,108,85,21,69,30,179,226,247,65,65,65,1,68,34,17,236,236,236,176,119,239,222,146,27,175,167,167,103,69,52,191, - 116,235,214,109,168,135,135,135,69,233,133,45,91,182,196,132,9,19,240,243,207,63,35,40,40,232,131,121,154,169,169,169,41,122,189,126,191,33,66,74, - 105,14,33,164,231,128,1,3,158,223,187,119,207,114,239,222,189,96,24,166,220,215,158,61,123,240,232,209,163,37,148,210,55,85,62,1,133,231,160,222, - 192,129,3,239,30,62,124,216,58,35,35,3,197,223,141,130,130,2,176,44,139,186,117,235,18,134,97,42,204,123,35,132,240,248,124,254,185,109,219,182, - 245,27,63,126,60,4,2,1,180,90,45,182,109,219,134,249,243,231,167,1,24,69,41,213,17,66,22,237,223,191,127,100,255,254,253,209,164,73,19,223, - 138,56,21,10,5,20,10,5,132,66,33,156,156,156,176,114,229,74,104,181,133,151,21,31,31,159,226,247,229,3,248,197,199,199,167,95,100,100,228,6, - 74,233,143,229,113,57,59,59,15,160,148,126,203,178,108,190,191,191,191,221,209,163,71,45,146,146,146,240,252,249,115,44,89,178,68,206,113,28,203,113, - 28,81,169,84,209,50,153,236,185,68,34,49,85,42,149,217,89,89,89,171,169,225,153,149,68,46,151,35,61,61,29,189,251,244,193,169,147,39,193,48, - 12,244,122,253,71,47,134,97,112,253,226,73,36,68,135,163,109,155,54,128,145,209,11,66,8,17,10,133,24,59,118,44,4,2,1,76,77,77,161,86, - 171,161,215,23,214,103,20,9,173,42,133,165,189,189,45,236,4,16,141,247,241,249,60,96,240,140,190,14,206,46,174,176,182,148,32,60,252,117,187,155, - 55,174,111,171,95,215,97,23,167,213,239,122,19,147,243,183,15,187,47,171,69,254,238,209,73,55,113,0,0,32,0,73,68,65,84,247,251,59,97,68, - 213,225,32,214,222,254,84,102,82,146,88,39,22,155,69,2,133,94,174,66,145,53,136,5,142,130,209,233,139,46,20,180,232,101,164,208,210,179,120,23, - 17,134,123,215,126,135,189,50,9,153,209,77,1,81,35,104,85,185,80,107,11,159,252,57,142,197,203,231,55,144,151,155,141,134,45,250,2,60,222,35, - 67,124,86,118,164,111,219,230,141,249,239,226,195,208,210,103,16,106,185,181,71,92,74,30,114,20,26,200,243,212,104,218,112,1,50,228,42,228,41,213, - 120,253,238,32,92,93,106,241,136,32,170,11,140,20,90,154,215,103,160,121,115,30,162,26,237,32,174,219,31,252,26,126,136,15,185,133,151,87,54,33, - 241,213,125,80,142,133,179,79,171,202,137,0,16,66,182,93,189,122,181,85,187,118,237,4,93,187,118,109,226,226,226,210,36,57,57,249,37,0,184,184, - 184,52,233,221,187,119,19,7,7,7,108,217,178,69,69,8,217,102,20,105,25,148,9,183,61,145,201,100,171,206,156,57,179,109,194,132,9,112,116,116, - 108,84,209,190,25,66,97,147,81,171,87,83,33,159,79,143,109,223,46,90,126,245,234,198,223,246,239,23,117,238,212,137,80,74,17,28,28,108,182,110, - 251,118,179,175,191,248,34,54,46,61,157,185,19,20,164,75,73,76,204,79,47,40,88,158,156,156,108,116,97,192,95,9,189,94,255,48,38,58,202,173, - 89,171,166,14,47,94,71,191,238,209,165,109,27,30,143,199,123,19,21,247,208,193,193,210,236,198,181,63,116,122,189,254,163,106,183,242,32,145,72,250, - 118,238,220,89,32,151,203,225,226,226,130,140,140,12,36,37,37,21,122,28,114,229,208,229,230,66,151,159,11,78,145,143,232,167,79,208,180,150,151,228, - 100,97,178,124,133,66,171,248,41,179,172,119,165,180,103,75,108,97,1,177,84,10,82,197,176,33,33,228,11,107,107,235,249,57,57,57,151,41,165,43, - 117,58,221,212,249,243,231,183,220,186,117,171,253,170,85,171,44,191,253,246,219,147,132,144,166,148,82,141,33,14,133,66,241,158,97,24,59,0,178,27, - 55,110,192,209,209,17,185,185,185,197,158,22,173,82,169,52,201,202,202,130,70,163,129,86,171,133,165,165,37,158,61,123,150,205,48,204,133,202,236,179, - 172,77,86,106,116,225,139,237,124,205,147,117,140,77,135,244,108,78,190,116,67,242,10,0,27,123,213,174,189,71,199,221,141,126,27,118,193,38,230,233, - 237,236,228,183,5,181,246,92,138,50,152,163,69,41,165,132,16,142,16,66,235,214,173,139,204,204,76,240,249,124,152,153,153,65,42,149,226,202,149,43, - 24,52,104,80,149,133,22,33,196,196,220,220,124,53,143,199,27,106,101,101,229,192,178,44,22,44,88,128,126,253,250,65,44,22,67,167,211,149,120,52, - 139,189,84,21,121,58,40,165,193,0,44,203,188,71,39,123,123,251,155,26,141,6,81,81,81,56,119,238,92,71,74,233,29,163,12,252,23,111,20,33, - 164,167,159,159,223,129,230,205,155,215,166,148,162,81,163,70,24,54,108,24,14,30,60,136,224,224,96,228,229,229,113,215,175,95,255,13,192,134,170,112, - 19,66,72,209,249,173,59,112,224,192,251,71,142,28,177,201,202,202,130,74,165,66,65,65,1,78,158,60,137,118,237,218,193,222,222,30,135,15,31,102, - 40,165,6,63,251,162,28,186,189,187,118,237,234,55,110,220,56,236,216,177,3,199,142,29,67,255,254,253,49,116,232,80,100,100,100,200,214,175,95,63, - 146,16,178,23,192,210,97,195,134,65,161,80,224,233,211,167,225,198,216,170,215,235,145,147,147,131,156,156,28,152,154,154,22,159,27,160,80,172,28,220, - 180,105,211,87,1,1,1,168,85,171,214,210,162,162,160,143,170,68,57,142,155,152,148,148,100,35,16,8,236,24,134,65,66,66,2,158,61,123,134,41, - 83,166,100,103,103,103,79,160,148,198,17,66,22,141,29,59,118,229,172,89,179,74,190,75,179,102,205,186,72,8,233,105,200,155,147,144,144,0,177,88, - 140,227,199,142,65,93,36,76,139,206,73,137,237,197,194,104,212,215,254,32,100,32,82,83,43,191,116,214,173,107,211,64,204,151,204,16,137,132,118,114, - 185,188,228,218,161,213,106,161,209,104,62,240,100,137,68,66,187,86,205,106,92,82,41,243,191,123,21,41,55,56,32,189,126,29,235,198,102,230,86,1, - 125,122,14,30,222,189,231,151,124,70,175,71,96,224,5,252,250,235,78,116,242,243,65,173,58,141,48,109,250,12,43,141,150,89,112,253,250,213,249,109, - 91,121,93,205,207,203,89,88,17,231,39,148,15,1,0,148,175,32,7,177,174,174,144,3,0,33,196,222,198,198,102,59,203,178,157,128,241,16,74,157, - 240,250,217,99,100,203,133,208,168,88,112,180,80,108,25,3,141,70,139,187,129,231,177,121,211,70,100,101,101,193,239,243,142,80,8,220,225,225,238,1, - 181,170,208,145,65,41,160,211,234,225,32,171,129,23,47,94,234,243,10,10,238,24,226,19,153,232,124,61,100,62,208,232,218,192,68,44,70,110,190,22, - 242,34,145,117,248,212,16,104,148,42,48,90,29,24,173,30,14,30,3,81,79,214,25,28,123,161,220,80,146,65,112,44,116,49,119,161,139,185,11,211, - 54,211,241,251,154,175,62,88,109,236,220,221,244,244,244,116,23,23,151,11,193,193,193,3,134,12,25,130,91,183,110,125,11,96,18,0,152,152,152,124, - 59,100,200,16,4,7,7,227,213,171,87,23,210,211,211,255,146,193,171,98,177,88,165,209,20,222,99,205,204,204,76,42,217,214,181,165,191,63,47,247, - 197,139,188,77,15,30,44,221,179,119,175,168,107,151,46,68,207,48,224,88,22,117,188,189,73,247,238,221,205,15,158,56,97,199,215,235,31,205,157,58, - 245,198,207,35,70,228,63,86,40,140,77,52,175,89,20,50,4,128,154,21,44,51,26,26,141,102,235,196,9,227,186,221,186,125,199,189,102,13,87,139, - 107,55,238,190,20,75,68,188,90,158,181,248,57,57,57,130,101,75,23,154,106,52,26,99,69,171,175,189,189,61,82,83,83,241,238,221,59,104,52,26, - 232,245,122,112,202,2,104,229,114,104,243,114,65,84,5,144,176,44,212,153,105,168,89,203,11,248,87,69,98,133,40,47,92,88,58,84,104,98,105,9, - 145,185,20,60,161,176,220,112,151,1,206,230,173,90,181,58,113,250,244,105,209,152,49,99,90,19,66,182,23,221,32,186,44,89,178,228,201,246,237,219, - 37,19,38,76,168,187,97,195,134,145,0,126,49,196,163,86,171,79,92,186,116,233,235,26,53,106,200,66,67,67,161,86,171,193,113,28,122,245,234,5, - 0,37,223,153,136,136,8,149,90,173,78,15,11,11,203,139,139,139,211,193,136,42,193,165,91,146,31,206,26,236,230,47,115,114,125,100,98,90,211,147, - 42,94,12,152,53,216,109,253,79,39,19,213,87,222,191,207,95,50,165,214,218,130,252,144,41,214,110,138,29,87,46,24,22,89,165,64,73,81,57,187, - 157,157,29,4,2,1,132,66,33,68,34,17,30,60,120,128,130,130,2,20,123,80,12,133,14,203,156,67,19,11,11,139,87,203,151,47,119,155,48,97, - 130,200,196,196,4,114,185,28,135,15,31,198,216,177,99,241,235,175,191,150,155,255,82,89,72,169,44,248,124,126,192,136,17,35,160,213,106,49,108,216, - 48,236,217,179,39,0,192,157,42,145,0,160,148,62,34,132,120,191,124,249,210,18,64,255,161,67,135,238,31,56,112,32,238,220,185,131,11,23,46,116, - 4,16,9,64,5,96,13,41,28,226,188,166,162,66,16,82,216,194,97,167,131,131,67,255,6,13,26,188,28,56,112,96,195,35,71,142,88,167,167,167, - 23,23,63,32,38,38,6,251,246,237,75,217,187,119,111,30,203,178,118,60,30,239,82,78,78,142,161,170,105,2,96,239,166,77,155,70,23,133,3,113, - 250,244,105,186,113,227,70,178,100,201,18,200,229,114,116,234,212,9,187,118,237,154,161,80,40,154,108,220,184,113,252,224,193,131,177,98,197,10,20,20, - 20,24,172,140,173,44,213,76,175,215,19,0,109,55,109,218,84,35,32,32,0,167,79,159,70,243,230,205,77,163,163,163,127,6,48,174,236,246,197,158, - 196,232,232,104,40,149,74,220,191,127,31,75,151,46,149,151,18,89,51,38,77,154,180,114,198,140,25,88,189,122,53,13,13,13,77,31,56,112,160,108, - 247,238,221,252,58,117,234,204,0,80,174,208,186,126,253,58,194,195,195,49,101,202,20,116,239,222,29,90,173,22,251,246,237,195,209,163,71,193,178,44, - 38,79,158,140,97,195,134,65,40,20,226,248,241,227,216,180,105,19,234,215,175,95,225,177,213,243,182,91,219,170,101,135,249,206,174,117,112,248,200,81, - 100,103,103,151,156,147,226,243,66,41,69,126,126,62,82,83,83,97,101,105,129,245,27,86,246,158,252,237,104,119,20,182,193,248,8,190,181,109,55,12, - 26,54,110,246,176,175,71,35,244,229,115,28,220,255,11,194,66,131,75,248,24,189,14,145,225,207,16,25,254,12,50,167,26,232,222,181,35,249,234,171, - 175,122,141,248,122,168,3,128,191,173,117,196,127,179,55,171,210,170,195,138,220,117,69,34,235,213,241,227,199,237,252,252,252,248,12,195,224,106,96,32, - 166,76,250,6,35,71,44,128,14,54,96,180,34,112,162,10,239,225,37,80,169,148,160,160,40,40,40,64,80,80,16,40,199,224,224,238,141,160,148,43, - 17,90,0,133,86,167,131,171,71,93,236,220,179,138,129,80,248,196,16,95,94,22,159,213,51,20,73,233,241,136,79,9,131,149,133,7,4,66,15,100, - 229,40,33,224,57,65,175,142,0,91,228,86,85,22,36,66,165,251,115,159,31,155,251,177,247,148,86,225,162,171,82,169,14,29,58,116,168,247,79,63, - 253,36,238,211,167,143,143,139,139,75,91,0,24,52,104,144,143,165,165,37,14,29,58,164,85,169,84,135,254,148,145,165,160,215,235,59,183,106,213,10, - 114,185,28,49,49,49,47,43,218,150,213,106,237,164,142,142,252,244,91,183,244,25,114,185,123,231,206,157,137,158,97,192,35,4,217,185,185,136,139,141, - 133,181,181,53,121,21,17,33,221,54,109,218,89,159,134,13,5,197,21,137,198,224,194,133,11,102,40,204,203,170,112,89,85,64,41,45,32,132,140,154, - 54,109,218,217,67,135,14,91,165,166,165,189,149,136,37,140,84,106,234,60,98,248,80,65,78,78,206,215,148,82,133,177,124,114,185,28,209,209,209,48, - 53,53,133,72,40,4,167,82,130,45,80,64,157,157,5,190,78,3,49,203,194,214,84,2,55,39,71,120,56,216,87,78,136,194,234,194,226,196,247,210, - 225,194,245,173,124,33,54,151,66,108,33,197,228,139,183,1,0,34,145,8,88,98,48,186,91,2,66,136,189,171,171,235,239,71,142,28,17,101,100,100, - 32,56,56,248,37,165,52,151,16,98,1,128,11,15,15,255,35,44,44,172,111,81,213,93,101,213,98,27,207,156,57,211,205,207,207,143,241,244,244,52, - 79,79,79,119,151,203,229,92,74,74,202,7,46,161,107,215,174,73,242,243,243,11,56,142,59,139,194,62,80,149,246,47,154,53,216,205,36,232,5,166, - 119,232,81,179,145,165,125,99,100,51,47,26,61,122,153,50,125,214,96,183,173,63,157,76,84,155,18,205,126,194,38,184,11,76,212,70,37,49,83,74, - 169,189,189,61,194,195,195,17,20,20,132,184,184,56,68,71,71,151,8,170,144,144,16,108,218,180,9,179,102,205,130,149,149,85,165,124,230,230,230,171, - 151,45,91,230,22,16,16,32,42,94,198,231,243,49,117,234,84,228,230,230,98,207,158,61,152,58,117,106,121,118,24,99,46,0,128,16,226,213,173,91, - 183,62,206,206,206,200,202,202,130,147,147,19,252,252,252,250,17,66,60,41,165,49,70,19,125,136,201,61,122,244,88,185,124,249,114,232,245,122,140,29, - 59,22,111,223,190,61,241,246,237,219,205,30,30,30,211,231,205,155,39,147,201,100,24,50,100,136,57,0,127,67,36,182,182,182,107,126,249,229,151,175, - 251,244,233,195,211,233,116,159,223,188,121,19,177,177,177,208,106,181,96,24,6,239,223,191,199,212,169,83,83,178,178,178,58,80,74,223,27,97,215,152, - 69,139,22,141,158,62,125,58,214,173,91,135,101,203,150,253,102,101,101,213,176,105,211,166,205,150,45,91,134,185,115,231,162,70,141,26,176,179,179,171, - 183,100,201,18,223,89,179,102,97,235,214,173,88,186,116,233,111,0,246,85,231,68,112,28,71,214,174,93,219,100,211,166,77,206,197,34,139,199,227,225, - 248,241,227,120,241,226,69,63,3,251,236,114,114,114,250,214,217,217,89,124,253,250,117,105,141,26,53,192,48,140,190,72,100,109,243,240,240,152,242,254, - 253,123,244,233,211,7,81,81,81,135,40,165,35,59,116,232,80,48,107,214,44,51,83,83,83,131,95,44,134,97,48,113,226,68,56,57,57,225,238,189, - 251,224,243,8,154,55,111,142,71,143,30,161,78,157,58,248,252,243,207,241,226,197,11,232,117,58,248,248,248,160,123,247,238,72,72,72,168,240,248,248, - 60,50,106,245,138,185,120,250,34,2,103,206,136,240,244,233,83,200,100,50,72,36,18,80,74,161,209,104,144,145,145,1,189,78,131,70,13,188,112,96, - 239,90,164,167,103,0,60,98,48,229,134,240,200,240,209,223,12,192,189,251,129,248,249,231,95,160,80,20,148,187,157,88,108,130,58,62,190,112,117,113, - 68,66,98,2,8,15,198,93,244,170,137,255,230,208,225,159,170,58,180,182,182,222,124,236,216,49,187,78,157,58,241,11,10,10,192,113,28,218,251,249, - 97,122,64,0,46,28,57,2,239,214,195,64,180,82,48,102,198,85,61,168,85,74,212,111,214,22,131,135,12,69,124,92,28,122,244,29,8,181,90,89, - 242,132,81,104,48,160,213,234,96,239,232,142,107,215,174,241,49,118,172,193,28,19,86,39,14,137,124,175,110,151,163,122,129,160,167,7,161,211,232,208, - 168,209,18,232,56,59,56,186,125,11,189,254,28,242,50,110,2,0,44,237,58,33,49,62,30,60,190,232,149,81,198,150,3,174,224,227,2,200,170,92, - 116,115,114,114,114,93,92,92,78,5,5,5,13,247,247,247,199,181,107,215,198,3,128,191,191,63,130,130,130,16,29,29,125,42,39,39,39,183,186,246, - 149,134,139,139,75,255,78,157,58,13,107,217,178,37,46,94,188,8,74,233,61,99,246,227,11,133,148,199,227,129,227,56,16,0,89,57,57,120,251,246, - 45,178,50,51,161,215,235,81,160,80,112,190,62,62,10,202,113,22,149,146,149,66,233,10,67,148,83,117,88,188,172,42,156,0,64,41,141,147,74,165, - 241,249,10,133,131,165,141,109,190,137,88,204,230,230,228,230,190,126,21,170,53,242,230,80,140,240,176,176,176,134,201,201,201,136,143,139,3,163,84,128, - 175,209,130,167,81,162,75,219,207,96,10,10,19,112,16,114,122,8,249,66,228,23,86,231,85,26,238,40,22,250,192,191,60,91,132,144,194,112,161,185, - 57,196,82,139,146,117,69,199,83,169,161,18,137,228,200,201,147,39,157,93,93,93,177,98,197,10,184,185,185,213,107,212,168,145,178,125,251,246,166,50, - 153,12,245,235,215,71,219,182,109,113,229,202,21,0,168,240,28,80,74,25,66,72,247,123,247,238,205,126,240,224,193,96,115,115,115,50,109,218,52,65, - 175,94,189,32,145,72,160,84,42,33,151,203,113,244,232,209,76,150,101,155,21,217,106,103,110,110,190,143,16,18,163,80,40,2,202,114,30,220,212,216, - 37,61,155,27,43,115,114,29,208,161,71,205,70,157,123,116,133,151,119,103,116,238,17,15,0,107,109,5,177,195,214,47,110,120,214,222,221,118,223,181, - 171,215,151,250,117,232,188,104,193,4,155,149,107,127,145,87,154,79,71,8,1,199,113,31,244,14,42,141,232,232,104,236,222,189,27,11,23,86,222,130, - 142,199,227,13,157,48,97,130,168,244,178,226,144,113,223,190,125,225,239,239,255,129,208,178,183,183,135,147,147,19,98,99,99,1,160,220,202,200,114,48, - 125,204,152,49,68,165,82,97,220,184,113,216,179,103,15,134,13,27,70,238,220,185,51,29,192,71,231,206,8,155,215,207,155,55,111,246,212,169,83,145, - 157,157,141,203,151,47,163,87,175,94,56,126,252,184,195,229,203,151,87,119,234,212,9,124,62,31,23,47,94,4,195,48,21,246,250,18,137,68,253,251, - 244,233,195,75,72,72,128,72,36,66,139,22,45,144,152,152,8,165,82,137,164,164,36,204,152,49,35,53,43,43,171,163,177,255,71,34,145,40,96,250, - 244,233,56,118,236,24,22,44,88,176,31,192,184,220,220,220,193,15,30,60,56,246,197,23,95,32,41,41,9,103,207,158,197,210,165,75,201,200,145,35, - 177,99,199,14,204,152,49,227,55,0,227,42,168,144,204,79,79,79,183,170,93,187,54,210,210,210,160,80,40,112,246,236,89,199,43,87,174,120,186,186, - 186,90,70,71,71,179,63,252,240,131,56,32,32,0,155,55,111,70,112,112,48,14,30,60,136,206,157,59,51,81,81,81,229,122,201,138,90,54,156,181, - 181,181,189,110,110,110,142,252,252,252,226,202,210,57,11,22,44,152,186,102,77,161,147,61,57,57,25,163,70,141,26,65,8,225,150,47,95,110,38,18, - 137,160,86,171,203,87,37,0,88,150,69,141,26,53,176,251,204,45,68,88,91,34,82,157,129,0,239,218,240,241,241,65,231,206,157,17,120,243,49,242, - 130,94,64,244,248,58,236,219,127,134,250,237,218,21,127,151,12,130,99,57,0,28,60,221,165,8,188,176,23,207,95,70,225,249,203,48,136,37,133,73, - 240,42,149,18,205,26,213,65,235,22,173,144,156,146,132,67,7,247,194,214,222,181,194,235,8,165,20,34,1,11,95,31,39,28,57,248,11,46,94,190, - 129,131,135,142,150,228,188,9,4,66,52,109,214,26,45,90,248,33,42,250,61,246,238,253,25,14,142,238,6,249,62,1,32,132,56,3,232,3,224,82, - 217,138,220,146,208,97,233,159,165,193,113,92,103,63,63,63,190,66,161,128,90,173,70,106,106,42,98,99,99,97,109,99,141,168,228,24,116,52,211,33, - 149,203,67,248,203,87,44,225,11,131,43,51,166,79,135,166,64,135,166,152,50,102,152,193,109,40,40,204,45,237,11,67,55,12,243,14,91,183,26,124, - 114,102,88,253,31,129,215,111,182,26,51,178,191,240,218,205,61,208,107,57,168,244,86,40,80,107,81,160,19,130,103,213,11,200,188,3,190,64,130,207, - 154,212,193,217,51,87,116,148,209,223,48,196,87,22,2,89,67,48,105,255,10,73,115,5,31,70,244,76,44,108,141,14,29,22,131,101,217,227,135,15, - 31,254,178,77,155,54,102,157,58,117,170,13,0,18,137,68,119,248,240,97,37,203,178,199,171,68,134,143,187,193,59,59,59,55,19,137,68,195,250,247, - 239,223,108,244,232,209,120,253,250,53,14,29,58,20,89,167,78,157,10,123,136,241,197,226,44,69,122,186,181,212,211,83,96,99,97,145,124,229,242,229, - 26,93,187,117,35,241,241,241,200,202,202,130,90,173,70,240,203,151,84,200,231,39,18,75,75,94,196,139,23,60,190,88,108,236,205,6,248,176,194,176, - 188,170,195,226,101,85,134,187,179,77,237,165,11,39,122,169,213,234,134,121,121,121,140,64,40,20,186,57,89,199,85,133,67,163,209,92,252,227,143,63, - 190,236,214,181,171,228,109,72,48,244,185,185,208,230,202,33,226,88,216,54,109,2,158,78,3,162,213,195,181,62,133,58,199,28,119,30,191,209,107,52, - 154,74,155,26,22,11,45,94,25,97,32,150,74,33,177,176,132,68,42,45,43,24,42,124,146,35,132,152,245,239,223,191,203,103,159,125,6,74,41,118, - 239,222,13,157,78,39,214,233,116,208,106,181,208,233,116,200,203,203,195,193,131,7,177,115,231,206,7,0,126,171,204,70,74,41,99,102,102,246,5,33, - 196,81,32,16,40,29,28,28,204,143,31,63,94,210,110,162,105,211,166,176,176,176,16,73,165,210,68,0,240,242,242,18,254,250,235,175,214,253,250,245, - 187,91,30,95,221,70,245,230,122,49,54,29,76,76,107,122,90,218,55,134,151,119,103,0,64,183,190,99,224,85,199,3,121,153,33,158,106,85,236,0, - 145,64,110,243,106,107,210,107,211,62,13,71,23,164,223,126,139,242,203,251,203,179,23,60,30,175,220,112,108,173,90,181,48,101,202,148,74,57,8,33, - 60,43,43,43,135,226,60,31,0,200,202,202,66,74,74,10,194,195,195,81,183,110,93,100,103,103,195,213,213,21,90,173,22,45,91,182,132,74,165,194, - 166,77,155,112,255,254,253,7,40,170,140,172,228,61,76,189,189,189,71,53,107,214,12,151,47,95,198,211,167,79,147,2,3,3,93,253,252,252,224,233, - 233,57,154,16,242,29,165,134,123,240,149,195,103,254,249,231,159,79,155,58,117,42,194,194,194,48,113,226,196,172,132,132,132,179,39,78,156,24,183,116, - 233,82,94,143,30,61,144,146,146,130,245,235,215,179,247,239,223,223,0,96,69,69,124,148,210,55,9,9,9,110,106,181,26,217,217,217,96,24,6,74, - 165,18,87,174,92,193,193,131,7,211,138,68,214,59,99,237,107,210,164,73,125,30,143,135,99,199,142,1,192,98,74,41,71,8,57,59,96,192,128,164, - 31,126,248,193,117,225,194,133,24,63,126,60,116,58,29,214,173,91,135,133,11,23,94,66,161,200,170,232,34,250,147,147,147,211,183,19,39,78,172,55, - 107,214,44,4,5,5,57,62,123,246,172,69,112,112,48,220,221,221,145,149,149,37,176,179,179,195,230,205,155,49,115,230,204,211,0,50,31,62,124,56, - 52,58,58,122,13,173,164,97,40,33,100,151,171,171,235,183,148,82,170,84,42,99,23,44,88,176,126,213,170,85,152,57,115,38,94,189,122,133,220,220, - 92,88,88,88,144,121,243,230,141,90,188,120,49,198,142,29,75,11,10,10,118,86,196,249,230,205,27,132,199,196,33,215,195,30,5,38,192,57,181,26, - 83,27,52,64,72,72,8,30,191,136,134,123,106,60,204,242,229,48,187,115,7,158,147,38,97,255,254,253,149,158,87,74,89,40,229,97,96,53,54,104, - 218,168,46,154,54,172,137,192,155,207,1,0,93,6,250,65,89,144,143,253,251,119,227,221,187,183,16,8,133,176,182,117,170,148,147,227,56,104,243,222, - 32,71,151,130,174,157,90,160,87,143,142,248,237,192,113,48,122,29,198,141,249,26,242,156,28,28,56,176,23,81,209,239,33,16,10,97,103,255,247,55, - 66,173,72,139,252,23,160,15,165,116,119,81,8,241,3,239,150,81,217,162,122,125,97,226,123,82,82,18,158,61,123,134,152,152,24,152,153,153,65,197, - 176,220,207,127,220,231,8,17,37,114,148,62,160,76,73,151,226,143,57,88,54,169,84,199,90,43,27,27,27,177,70,163,2,195,232,75,221,85,8,64, - 0,145,0,112,118,241,66,66,124,2,85,171,213,183,43,178,77,164,81,111,62,127,246,228,212,182,237,252,236,123,117,89,142,179,231,190,135,60,47,15, - 106,157,16,5,106,29,148,106,192,218,214,7,45,27,53,65,114,114,22,66,158,222,81,8,52,74,99,18,69,223,110,91,52,198,123,204,148,185,48,173, - 209,14,154,240,179,224,20,105,37,30,45,19,169,13,108,61,124,145,83,160,193,201,27,207,1,192,232,81,47,105,105,105,74,23,23,151,195,83,167,78, - 93,247,252,249,51,55,0,120,254,252,121,98,74,74,202,252,180,180,52,163,43,238,128,15,186,193,19,51,51,179,231,117,234,212,73,238,211,167,143,213, - 128,1,3,96,111,111,143,224,224,96,172,89,179,230,141,78,167,155,123,251,246,237,10,67,61,90,173,54,233,249,185,115,150,29,191,249,198,122,110,191, - 126,235,167,78,157,186,121,197,138,21,66,111,111,111,162,215,233,16,26,26,74,143,28,62,172,223,185,112,225,38,177,185,185,224,201,249,243,66,70,163, - 169,172,71,211,223,14,55,55,183,14,189,123,118,240,221,240,211,86,168,85,10,60,14,186,4,185,60,3,191,236,62,227,235,230,230,214,33,49,49,241, - 142,49,60,44,203,30,223,183,111,223,236,214,205,154,53,243,114,119,71,104,92,12,196,28,11,17,163,7,79,167,1,159,81,195,173,17,192,227,73,145, - 146,154,139,85,199,78,133,25,35,140,235,245,238,143,21,137,185,32,132,96,99,155,134,16,91,72,33,50,151,98,242,239,55,75,132,194,197,21,11,33, - 150,74,81,187,117,229,13,225,41,165,74,11,11,139,103,161,161,161,45,27,54,108,136,217,179,103,35,54,54,22,28,199,33,45,45,77,157,146,146,146, - 148,145,145,17,139,194,254,63,123,42,185,137,149,128,199,227,185,222,185,115,167,36,220,112,227,198,13,184,184,184,192,202,202,10,121,121,121,152,48,97, - 130,245,247,223,23,246,95,124,246,236,25,74,11,148,178,8,125,30,190,33,39,159,202,169,226,197,128,108,230,69,163,206,61,18,208,173,239,104,92,191, - 248,27,110,6,254,1,91,65,108,12,204,243,175,100,198,100,230,37,22,120,239,242,109,62,142,159,82,16,184,107,250,23,54,124,103,103,238,228,130,157, - 185,57,21,217,234,237,237,13,153,76,86,146,163,37,16,8,48,118,236,88,52,105,210,4,1,1,1,133,33,216,202,207,35,103,105,105,153,161,86,171, - 101,38,38,38,72,77,77,197,251,247,239,17,21,21,85,210,58,128,227,56,253,156,57,115,132,211,166,77,195,207,63,255,140,219,183,111,63,0,176,156, - 82,106,236,195,218,215,67,134,12,177,208,106,181,56,122,244,40,3,160,239,201,147,39,159,181,108,217,82,208,179,103,79,139,29,59,118,124,13,96,143, - 145,92,0,96,110,105,105,41,210,233,116,216,177,99,7,18,18,18,58,80,74,195,9,33,187,134,12,25,178,179,97,195,134,117,194,194,194,222,42,20, - 138,201,148,210,144,202,200,210,210,210,198,180,104,209,226,36,199,113,53,186,118,237,106,254,211,79,63,89,70,68,68,192,205,205,13,28,199,133,209,42, - 142,176,122,251,246,109,120,74,74,138,111,199,142,29,113,229,202,149,181,132,144,213,0,214,77,154,52,201,53,46,46,14,205,154,53,131,173,173,45,34, - 34,34,242,83,82,82,118,2,248,174,2,79,22,0,128,82,26,13,96,62,33,164,241,174,93,187,134,217,218,218,126,22,28,28,140,123,247,238,97,195, - 134,13,248,254,251,239,209,190,125,123,204,158,61,59,19,192,176,162,144,182,81,125,243,138,61,91,0,208,162,69,139,228,53,107,214,96,220,184,113,244, - 215,95,127,221,114,248,240,225,128,175,191,254,26,64,225,61,112,212,168,81,244,208,161,67,163,42,42,4,224,243,249,136,136,136,128,169,38,21,161,145, - 73,144,180,108,137,207,108,109,145,26,30,142,144,144,16,56,217,218,32,242,250,19,52,229,17,8,235,213,67,94,94,30,242,242,42,117,226,234,117,58, - 45,44,109,189,160,200,137,71,70,66,16,204,44,156,208,163,115,19,40,85,90,92,56,127,26,33,161,47,193,227,241,32,115,114,135,181,141,61,34,35, - 223,2,64,69,213,198,122,157,78,7,11,155,154,80,228,38,64,155,254,28,166,82,71,140,254,102,0,148,42,29,206,156,61,141,176,176,16,240,249,124, - 56,57,187,195,202,186,144,147,208,10,57,255,231,81,156,167,85,252,179,146,170,195,127,129,207,231,223,186,122,245,234,160,214,173,91,11,222,189,123,135, - 119,239,10,31,110,228,114,57,67,192,158,74,11,57,247,149,161,125,9,33,93,139,171,51,74,207,46,148,90,88,36,69,188,9,151,201,179,211,240,242, - 197,125,188,139,12,69,76,84,56,116,58,53,248,60,30,120,124,30,106,122,53,192,253,7,65,90,53,195,4,25,226,4,128,236,236,247,249,82,153,207, - 208,149,43,190,187,56,115,238,50,211,193,131,118,34,36,226,53,20,140,19,40,5,156,236,204,209,180,214,60,36,37,103,224,216,111,59,148,156,78,55, - 188,116,15,173,242,56,1,64,150,137,250,59,119,255,54,118,207,193,35,203,230,78,155,32,251,194,127,56,196,217,175,161,79,126,14,175,150,189,64,36, - 214,184,124,237,38,238,60,123,157,198,177,116,153,44,11,191,86,198,89,26,57,57,57,15,83,83,83,220,74,117,129,119,147,72,76,42,172,142,43,203, - 73,202,116,156,231,243,121,205,87,174,92,169,151,201,100,186,176,176,48,252,252,243,207,220,243,231,207,175,241,120,188,109,201,201,201,234,202,56,29,244, - 250,151,71,22,44,168,223,202,223,159,126,53,109,154,18,18,201,244,245,27,55,46,200,144,203,93,40,199,193,193,214,54,113,253,194,133,107,6,13,25, - 34,127,117,255,190,105,208,185,115,166,98,134,121,94,153,157,127,5,42,226,76,76,76,188,227,93,219,3,251,247,252,4,157,78,131,148,164,56,0,64, - 102,86,46,42,18,89,101,57,139,170,174,252,23,127,255,253,163,197,51,3,156,62,239,210,21,241,47,95,64,151,157,9,62,195,64,72,4,80,166,155, - 35,45,45,31,243,15,157,72,87,40,149,254,101,111,18,134,236,44,246,88,73,44,45,32,50,151,66,44,181,248,192,139,101,98,105,9,177,185,20,2, - 177,184,60,47,205,71,156,10,133,98,224,160,65,131,66,158,60,121,98,51,110,220,56,180,109,219,246,133,74,165,234,68,41,53,106,204,84,121,156,28, - 199,37,125,254,249,231,60,66,136,116,248,240,225,146,140,140,140,146,206,234,10,133,2,87,174,92,65,221,186,133,85,253,175,94,189,66,131,6,13,12, - 114,142,155,23,154,4,96,197,172,193,110,235,31,189,76,153,14,96,173,87,29,119,220,12,252,3,247,110,6,45,248,172,33,183,181,247,240,150,63,152, - 117,26,50,215,183,249,56,190,212,210,25,7,206,156,230,135,63,223,187,74,169,12,173,13,96,142,33,59,9,33,160,148,126,212,202,161,123,247,238,248, - 230,155,111,42,109,248,90,134,243,196,158,61,123,38,77,156,56,81,148,146,146,130,55,111,222,160,160,160,0,38,38,38,8,12,12,100,0,236,56,124, - 248,112,224,225,195,135,123,162,48,36,80,174,192,50,244,185,155,155,155,79,237,209,163,7,222,188,121,131,167,79,159,158,166,148,134,16,66,78,191,123, - 247,110,104,251,246,237,241,219,111,191,77,133,1,161,101,136,147,227,184,210,61,147,178,1,128,82,250,18,192,103,21,30,120,57,156,69,33,142,118,0, - 96,103,103,151,32,147,201,44,95,190,124,9,15,15,15,232,116,58,163,202,169,75,115,230,230,230,254,180,109,219,182,95,199,140,25,131,31,126,248,97, - 248,137,19,39,134,247,238,221,27,125,250,244,193,190,125,251,16,18,18,178,150,26,49,86,172,188,99,47,18,142,33,245,235,215,159,226,238,238,142,13, - 27,54,32,52,52,116,205,138,21,43,22,134,132,132,160,110,221,186,146,215,175,95,27,124,152,172,236,186,100,105,105,105,169,215,235,113,238,220,185,199, - 148,210,153,132,16,199,205,155,55,15,51,55,55,135,92,46,87,133,133,133,125,77,41,61,111,136,147,82,74,93,92,92,16,24,24,136,128,128,0,180, - 77,74,130,125,141,26,232,215,164,9,58,206,154,5,134,97,176,106,213,42,52,241,174,13,169,74,133,118,195,135,99,252,132,9,168,83,167,14,158,60, - 121,66,203,227,4,0,74,200,162,113,227,167,239,26,63,238,107,147,22,205,155,66,153,151,8,149,34,13,202,252,84,108,219,115,13,132,240,224,224,224, - 12,71,39,55,196,197,197,227,193,165,203,218,2,165,106,179,88,207,173,173,152,115,90,33,103,179,66,78,101,65,58,84,138,244,18,78,71,71,151,34, - 206,56,220,15,186,172,86,21,20,252,164,165,228,71,67,156,255,235,248,83,57,90,114,185,124,198,132,9,19,58,205,159,63,223,142,97,24,190,173,173, - 45,226,226,226,152,83,167,78,101,43,20,138,74,93,231,229,190,169,80,24,226,237,83,183,211,23,95,124,193,244,239,223,79,52,98,76,79,129,131,163, - 35,114,115,178,16,249,38,24,17,175,159,195,187,110,19,44,93,177,9,176,182,174,116,144,164,34,45,242,150,84,230,211,119,249,226,57,199,219,117,232, - 110,89,183,65,19,81,211,218,86,208,233,25,36,38,38,226,252,185,151,186,176,103,247,242,56,70,59,180,32,195,184,17,60,183,11,159,138,126,105,36, - 35,135,87,175,223,54,123,199,47,251,231,206,159,62,206,188,189,95,55,132,254,241,27,78,95,60,94,160,214,104,215,139,248,216,24,154,73,171,228,133, - 2,0,181,90,173,43,91,16,165,86,171,203,107,98,90,37,236,219,183,15,105,105,105,218,216,216,216,171,12,195,156,48,52,236,185,60,108,165,84,235, - 79,200,31,139,253,252,122,46,14,12,52,25,53,111,158,118,248,136,17,115,160,209,232,32,22,83,129,185,57,15,18,137,240,213,253,251,166,91,38,77, - 178,37,90,237,245,223,42,104,27,80,14,254,242,170,67,160,196,163,133,81,227,102,66,85,202,163,245,240,105,36,170,226,209,2,0,74,105,60,33,228, - 179,233,139,22,159,25,218,163,139,111,195,26,53,37,14,158,158,48,119,114,66,86,70,6,238,63,125,163,95,113,252,76,88,145,200,50,170,175,12,199, - 113,37,30,150,46,51,230,131,240,249,64,145,24,40,174,28,242,108,217,22,68,32,0,75,57,104,52,154,74,147,180,40,165,137,132,144,129,195,135,15, - 191,113,241,226,69,94,143,30,61,154,158,61,123,182,106,49,236,50,80,42,149,159,1,128,169,169,105,140,181,181,181,235,152,49,99,160,215,235,161,84, - 42,145,155,155,139,196,196,196,156,49,99,198,232,138,182,17,15,26,52,200,178,98,70,224,167,147,137,234,89,131,221,182,218,10,98,135,229,101,134,120, - 218,10,98,99,62,107,200,109,253,233,100,162,122,249,76,235,149,242,216,59,145,137,5,129,187,14,156,57,205,31,57,96,32,235,38,125,187,192,196,145, - 158,234,92,110,10,243,191,64,8,249,168,57,233,168,81,163,170,124,204,249,249,249,11,151,44,89,210,71,46,151,187,245,236,217,83,228,235,235,139,71, - 143,30,225,226,197,139,204,195,135,15,19,10,10,10,190,163,148,170,1,92,171,50,57,0,31,31,31,79,129,64,80,28,74,219,94,180,120,251,217,179, - 103,135,142,27,55,14,53,107,214,172,79,8,145,208,42,252,31,81,74,75,162,12,127,37,8,33,81,91,182,108,113,117,114,114,34,87,175,94,213,243, - 249,252,74,219,119,148,99,219,62,66,72,107,189,94,63,254,219,111,191,69,135,14,29,192,48,12,14,29,58,132,189,123,247,26,37,178,42,67,100,100, - 228,243,132,132,132,207,231,204,153,131,13,27,54,44,156,51,103,14,18,18,18,16,25,25,89,105,234,74,69,200,203,203,83,197,199,199,155,181,105,211, - 166,133,135,135,71,216,168,81,163,26,140,27,55,14,107,215,174,165,119,238,220,25,68,41,189,82,209,254,58,157,46,190,78,157,58,178,206,157,59,99, - 223,190,125,112,117,117,133,60,52,20,147,118,239,198,160,65,131,208,161,67,7,156,63,127,30,166,166,166,112,112,112,192,196,201,147,97,103,103,7,31, - 31,31,4,5,5,25,188,150,188,121,155,117,176,81,45,89,224,138,149,63,125,95,187,150,231,196,177,163,135,240,125,188,27,160,32,55,17,118,246,50, - 184,185,123,33,35,61,19,87,175,94,97,51,51,115,246,177,60,178,252,237,219,172,143,59,108,87,129,211,213,205,11,233,233,233,184,124,249,50,155,35, - 207,219,13,61,111,197,235,88,185,209,247,146,255,69,144,162,190,89,165,114,181,74,196,23,49,38,241,182,168,242,112,75,97,123,135,66,47,151,92,46, - 159,65,41,253,184,29,252,135,251,149,40,94,82,182,137,218,224,193,34,92,186,212,24,122,253,103,214,231,203,144,98,0,0,32,0,73,68,65,84,22, - 22,93,40,199,181,108,210,164,137,116,200,144,33,156,159,95,91,177,165,165,37,169,95,191,97,94,110,78,142,45,0,80,128,45,203,89,22,197,67,165, - 5,124,97,87,150,213,53,42,180,181,242,161,210,198,40,243,90,50,226,32,224,176,148,71,200,104,142,210,223,24,30,150,71,165,81,131,163,129,140,225, - 44,21,246,43,30,57,83,225,69,200,192,211,125,73,232,144,199,227,31,116,118,118,254,46,49,49,49,157,82,202,86,196,85,17,103,241,8,158,190,1, - 1,250,230,221,187,51,182,238,238,28,165,148,141,121,254,156,60,60,127,94,248,240,252,121,19,189,70,115,235,36,165,81,198,112,186,184,184,172,185,112, - 225,130,209,185,87,253,250,245,123,93,156,183,85,145,157,165,81,187,150,91,96,45,79,215,238,181,60,11,195,211,81,49,201,136,138,73,186,246,62,42, - 177,135,161,125,42,226,36,228,95,67,165,73,81,11,7,106,196,80,233,178,156,246,246,246,207,4,2,129,91,133,7,92,6,44,203,38,103,100,100,148, - 140,179,170,196,206,175,60,61,61,215,198,197,197,157,97,89,118,166,177,239,81,9,167,183,169,169,233,101,30,143,247,65,133,11,199,113,73,197,98,140, - 16,98,103,102,102,246,65,50,124,69,156,235,23,55,252,190,77,251,246,3,30,222,187,119,118,238,202,176,15,242,134,166,15,176,29,243,213,148,25,63, - 30,221,177,101,222,214,179,217,31,84,158,149,235,109,150,201,110,3,240,46,90,95,225,113,22,157,203,15,202,209,203,241,12,155,88,88,88,172,1,48, - 148,227,56,123,66,72,38,165,244,88,41,145,85,41,12,29,59,159,207,95,91,175,94,189,25,17,17,17,71,25,134,25,91,106,251,13,181,107,215,158, - 18,27,27,187,93,175,215,207,53,150,147,16,98,217,190,125,123,249,150,45,91,120,51,103,206,196,157,59,119,108,41,165,114,99,108,172,200,206,162,117, - 78,54,54,54,191,178,44,235,75,41,189,144,159,159,191,144,82,106,48,241,219,16,39,41,252,80,134,186,186,186,206,245,246,246,246,126,251,246,109,72, - 82,82,210,250,178,222,160,63,97,103,159,47,191,252,242,194,230,205,155,137,187,187,59,18,18,18,16,16,16,64,207,157,59,215,143,82,122,169,58,156, - 69,235,23,77,154,52,105,229,136,17,35,0,20,10,218,53,107,214,208,75,151,46,141,162,148,30,172,140,147,16,210,72,42,149,254,34,20,10,61,0, - 16,142,227,8,203,178,124,62,159,207,208,82,109,24,138,214,241,9,33,44,165,148,99,24,38,94,163,209,76,160,148,134,86,102,103,253,90,14,181,40, - 159,93,213,164,161,239,160,111,134,15,32,15,159,190,197,163,135,65,72,76,78,62,203,241,120,223,69,70,102,150,27,234,173,10,103,208,211,72,60,10, - 10,162,41,201,41,39,65,249,139,95,71,101,24,117,157,255,95,7,41,213,160,180,236,223,70,9,173,63,241,198,134,133,86,121,112,113,113,65,86,86, - 107,19,129,192,79,34,145,116,226,241,249,183,178,51,50,2,0,227,132,214,95,97,103,101,168,93,155,136,13,141,36,168,14,103,217,68,246,234,112,86, - 133,195,88,78,67,67,165,57,141,38,217,142,97,158,109,165,134,207,65,89,78,55,55,183,241,28,199,85,216,74,187,52,120,60,94,76,98,98,226,7, - 225,20,99,207,167,143,143,15,125,251,246,45,40,165,149,38,83,254,187,191,75,255,75,156,7,55,53,118,169,219,168,222,220,208,231,225,27,138,194,138, - 37,88,62,221,214,194,175,115,199,37,247,111,222,254,97,233,214,236,15,30,134,254,105,59,9,33,60,90,213,234,150,106,114,18,82,216,36,180,170,156, - 34,145,104,87,171,86,173,198,63,122,244,232,87,134,97,12,246,238,169,170,157,213,197,191,131,147,16,210,135,207,231,207,241,241,241,105,26,25,25,25, - 204,178,236,134,138,68,150,177,118,18,66,190,243,244,244,156,44,18,137,36,10,133,66,158,156,156,188,132,82,122,226,207,112,86,21,198,112,214,247,182, - 107,65,105,73,211,237,85,225,239,178,12,182,64,170,50,39,229,88,142,242,87,70,68,85,60,228,250,147,208,250,16,165,61,89,69,40,169,62,172,246, - 212,213,170,162,88,40,85,136,228,228,4,0,9,0,78,254,237,6,85,19,198,136,172,170,160,58,226,232,239,224,40,139,34,33,21,84,233,134,70,160, - 172,104,250,59,17,25,25,249,223,88,173,242,255,30,223,204,12,73,6,16,208,162,211,199,235,138,196,213,220,78,253,255,105,171,62,70,117,68,86,117, - 57,43,18,89,21,65,167,211,77,36,132,204,162,85,168,86,252,255,134,34,81,85,161,176,170,38,239,106,224,255,216,59,239,176,40,174,238,143,127,239, - 204,246,93,144,38,32,168,96,69,138,29,27,86,176,43,26,53,106,162,70,212,152,104,172,24,91,80,147,104,76,20,162,137,189,39,49,138,111,52,118, - 163,24,163,130,193,222,11,22,4,11,2,2,34,210,219,246,185,191,63,150,197,5,118,151,69,125,127,111,219,207,243,204,179,59,237,59,103,102,182,156, - 57,247,220,115,177,252,93,235,190,107,238,39,102,95,7,80,77,3,251,191,94,243,127,137,50,167,202,104,158,86,205,198,251,176,98,197,138,21,43,255, - 114,254,151,157,44,43,86,254,211,32,0,122,27,91,81,147,144,32,33,196,168,134,57,44,8,225,90,53,173,154,86,77,171,166,85,211,170,105,213,252, - 47,211,252,95,227,255,45,71,203,170,105,213,180,106,90,53,173,154,86,77,171,166,85,243,191,17,82,117,172,195,255,255,28,45,43,255,187,172,127,159, - 212,5,128,25,7,169,69,197,77,107,186,189,21,43,86,172,88,177,242,175,132,86,170,163,69,12,42,196,255,203,29,45,66,136,59,116,133,246,154,0, - 120,8,224,92,77,186,43,27,209,171,13,224,3,66,200,72,0,160,148,238,3,176,151,86,83,138,66,143,68,34,201,148,203,229,46,0,32,22,139,95, - 202,229,114,195,177,12,136,193,4,0,84,63,153,75,108,109,212,168,81,166,66,161,112,177,224,240,249,148,210,59,12,195,196,217,216,216,196,60,124,248, - 176,218,225,93,12,233,217,179,231,120,150,101,151,1,128,86,171,93,20,19,19,179,163,38,251,215,4,66,72,199,250,238,117,126,85,169,85,154,204,172, - 156,175,76,117,221,222,52,152,132,243,8,230,149,189,95,57,245,168,249,18,22,53,221,222,140,125,237,248,124,254,116,87,87,215,1,207,159,63,191,14, - 96,62,165,180,218,170,198,30,30,30,33,60,30,239,35,173,86,219,152,101,217,39,26,141,230,31,41,41,41,70,187,118,91,177,98,197,138,21,43,213, - 81,35,71,203,167,54,169,67,129,81,32,232,3,138,83,4,216,19,255,138,190,176,116,255,96,31,162,86,107,116,199,20,48,208,254,249,152,217,22,28, - 28,92,111,198,140,25,232,220,185,51,46,95,190,28,176,125,251,246,143,89,150,189,195,113,220,25,0,151,169,153,50,2,122,8,33,50,0,67,0,140, - 25,48,96,64,239,101,203,150,177,205,155,55,71,105,105,41,254,254,251,239,174,43,87,174,92,67,8,57,13,224,55,0,71,168,153,218,48,114,185,220, - 69,239,51,17,66,92,134,15,31,126,205,160,86,15,33,132,128,97,24,80,74,47,1,184,196,113,220,165,125,251,246,165,250,16,210,113,114,67,193,254, - 208,167,202,42,53,147,20,10,133,203,225,21,203,193,19,137,160,40,44,64,192,132,215,17,198,83,95,207,3,225,52,96,65,115,131,190,91,115,7,64, - 92,122,122,250,157,30,61,122,36,89,120,89,203,97,89,118,217,137,19,39,220,40,165,232,215,175,223,50,0,59,106,170,97,9,132,16,81,167,118,173, - 207,28,61,176,91,92,148,147,137,254,67,62,252,7,33,100,60,165,244,128,225,118,155,6,18,87,194,195,188,41,203,127,99,1,96,211,194,49,243,215, - 244,35,235,102,253,69,95,16,66,130,128,242,33,155,86,80,74,207,108,26,72,92,193,226,139,41,203,127,35,0,176,121,225,152,121,155,6,146,181,83, - 143,215,172,87,37,33,100,234,248,241,227,215,45,91,182,140,117,115,115,67,90,90,90,127,63,63,191,102,132,16,63,115,73,196,13,27,54,252,61,176, - 207,144,198,195,63,24,45,169,237,228,128,180,140,44,187,189,187,183,79,110,216,176,225,128,164,164,164,15,107,118,149,172,88,177,98,197,202,255,10,198, - 154,14,245,111,170,117,180,252,221,137,164,88,133,161,60,150,132,116,235,216,188,215,232,129,221,24,63,223,166,184,127,239,65,223,35,49,87,86,250,185, - 50,209,26,45,141,148,9,112,248,70,186,249,158,48,106,13,120,39,15,255,6,0,152,250,241,24,246,234,213,171,77,253,253,253,203,11,2,246,234,213, - 11,189,122,245,34,155,54,109,106,125,242,228,201,214,63,255,252,179,138,16,242,171,185,250,40,132,144,233,77,154,52,89,185,110,221,58,81,143,30,61, - 32,18,137,202,215,217,216,216,96,240,224,193,24,60,120,48,155,158,158,222,239,232,209,163,253,86,172,88,161,36,132,204,165,148,110,48,165,105,200,215, - 95,127,237,111,100,241,9,66,200,99,141,70,115,179,85,171,86,169,222,132,52,253,108,96,231,83,83,187,120,201,76,233,240,132,66,236,28,175,251,175, - 54,116,180,146,98,254,132,77,45,219,108,169,173,237,29,0,113,0,238,80,74,227,30,63,126,252,192,151,144,214,157,28,152,95,127,206,209,182,178,196, - 86,64,55,214,86,106,106,42,236,236,236,36,129,129,129,25,132,144,37,103,206,156,49,57,52,192,27,210,113,201,188,169,130,220,103,119,240,34,254,18, - 102,143,236,42,157,181,254,143,111,1,28,48,183,19,33,12,179,226,34,23,54,75,55,24,239,87,217,217,217,61,0,192,201,201,73,8,224,204,234,43, - 24,248,121,151,106,42,80,154,213,39,2,150,101,55,238,220,185,243,147,144,144,16,221,208,17,231,207,195,198,198,6,75,151,46,109,48,103,206,156,112, - 152,24,8,216,195,195,35,36,176,207,208,70,107,127,248,214,183,48,39,95,177,117,227,222,107,117,91,120,179,159,77,159,99,187,65,173,172,227,225,225, - 17,98,141,108,89,177,98,197,138,21,99,84,110,58,52,196,172,163,229,237,76,118,116,107,235,245,193,232,224,174,162,150,45,154,67,32,122,61,136,172, - 127,187,118,240,111,215,142,9,43,42,236,115,245,218,141,62,251,79,94,86,120,59,147,189,15,179,232,120,75,13,211,15,74,187,108,136,107,207,226,188, - 151,98,0,144,217,187,200,23,30,126,17,211,165,75,23,212,171,87,79,16,29,29,61,17,230,235,165,44,124,248,240,161,136,101,205,215,67,117,119,119, - 199,136,17,35,224,237,237,45,12,12,12,92,136,215,195,97,84,64,44,22,191,36,132,184,0,128,163,163,163,118,201,146,37,183,105,25,0,192,113,220, - 37,150,101,47,113,28,119,229,200,145,35,207,155,19,226,50,200,223,251,220,212,177,35,164,116,255,26,147,78,130,220,196,192,161,82,27,89,150,68,38, - 187,35,146,138,227,0,220,1,16,87,183,110,221,7,205,9,169,215,201,187,225,201,77,159,143,177,53,123,98,101,248,251,251,55,11,10,10,18,107,181, - 90,20,23,23,99,243,230,205,118,18,137,196,110,192,128,1,139,97,80,219,195,143,144,150,195,221,217,73,75,210,52,211,44,209,53,132,16,98,223,45, - 160,221,179,245,17,139,107,181,235,212,13,137,103,118,33,39,167,16,249,121,69,224,56,174,202,8,195,83,143,211,204,77,131,201,202,77,11,198,124,65, - 24,134,180,30,54,31,239,213,201,159,73,8,185,7,128,47,20,150,23,30,231,17,66,220,91,180,104,177,178,105,223,110,216,188,104,44,40,199,81,0, - 43,45,141,102,17,66,92,108,109,109,143,156,60,121,178,99,251,246,237,113,249,242,101,60,125,250,20,83,167,78,85,78,155,54,77,48,110,220,56,50, - 123,246,236,25,132,144,253,148,210,11,149,247,231,241,120,31,13,121,255,67,97,81,94,129,92,165,84,41,157,156,236,168,188,88,94,152,157,91,80,250, - 193,168,79,84,113,55,46,127,4,160,138,163,245,54,215,211,138,21,43,86,172,88,76,123,0,206,0,178,0,92,171,52,143,178,247,48,50,255,10,186, - 116,31,39,3,173,87,208,165,253,56,67,87,227,243,42,128,55,78,89,2,140,70,180,94,59,95,148,82,28,59,118,140,26,190,234,167,102,181,117,185, - 71,234,236,199,84,145,240,39,45,185,246,83,149,169,244,222,1,154,113,117,47,189,242,219,215,180,108,123,152,154,6,122,67,61,166,21,232,148,246,160, - 161,129,246,242,171,87,175,70,115,28,119,44,172,27,40,189,255,27,165,247,127,163,159,7,128,238,223,191,255,68,120,120,248,177,200,200,200,99,0,142, - 153,211,4,144,89,120,237,34,189,226,2,106,138,135,15,31,210,45,91,182,208,5,11,22,208,95,126,249,133,2,200,52,167,217,175,95,191,216,187,119, - 239,210,113,227,198,221,6,32,53,181,157,47,32,251,168,65,157,120,197,239,107,84,202,144,150,52,183,187,216,232,249,187,185,185,85,176,39,194,171,14, - 221,208,193,139,238,232,227,255,130,82,122,130,82,26,65,41,253,144,82,234,77,41,69,91,160,214,16,55,167,71,242,189,107,75,149,147,58,153,189,166, - 148,82,180,109,219,182,217,220,185,115,115,148,74,37,77,74,74,162,91,183,110,165,167,78,157,162,135,15,31,166,93,187,118,77,55,176,215,245,99,111, - 207,76,229,207,223,40,170,211,52,54,241,89,118,195,181,83,251,233,163,115,251,232,213,61,225,244,31,95,142,166,51,134,116,84,213,146,136,228,0,122, - 154,218,111,90,23,52,245,110,224,156,144,156,156,76,85,42,21,157,48,97,2,237,215,175,31,237,219,183,47,237,221,187,55,237,213,171,23,237,217,179, - 39,141,137,137,161,233,233,233,180,119,55,255,226,65,190,104,103,169,93,0,90,120,122,122,190,72,74,74,162,42,149,138,70,71,71,211,93,187,118,209, - 232,232,104,26,22,22,70,1,236,152,50,101,74,105,110,110,46,237,215,175,223,115,148,245,182,53,156,60,61,61,31,220,77,72,77,93,181,124,219,153, - 29,27,118,159,57,120,224,228,153,35,167,174,71,29,57,121,125,223,149,219,143,143,120,122,122,62,48,114,255,223,234,122,90,39,235,100,157,172,147,117, - 122,61,153,242,69,202,166,96,157,203,66,131,41,165,189,43,205,7,227,117,190,116,133,249,176,176,176,5,134,243,250,109,194,194,194,22,0,160,1,1, - 1,187,41,165,77,223,213,57,0,152,84,121,153,69,57,90,154,231,87,33,240,26,0,190,86,13,245,171,135,224,242,146,1,89,29,148,18,27,100,103, - 36,35,254,220,1,157,249,213,16,21,79,249,132,144,232,7,15,30,32,62,62,30,169,169,169,144,74,165,85,182,59,127,254,60,36,18,9,220,220,220, - 44,49,15,84,89,113,60,214,59,254,158,176,9,232,129,87,163,63,67,116,116,52,94,190,124,9,129,64,0,161,80,8,141,198,228,224,238,229,48,12, - 67,128,242,202,205,70,171,58,7,18,194,171,231,104,115,116,211,226,208,134,204,165,99,252,210,148,71,72,151,107,97,111,129,189,18,27,25,164,50,105, - 134,68,34,45,111,46,44,123,77,244,39,132,47,179,17,31,253,245,187,217,117,216,155,209,226,210,71,119,32,48,162,209,167,79,159,201,0,22,83,74, - 243,2,3,3,93,151,45,91,230,144,150,150,134,251,247,239,99,239,222,189,89,26,221,137,18,74,233,55,0,16,64,136,216,195,217,254,175,13,95,135, - 218,226,204,239,66,76,252,218,2,75,43,98,231,59,56,106,248,184,41,211,214,133,14,70,113,97,41,126,59,117,19,39,110,60,126,15,192,121,106,38, - 239,109,195,121,250,136,16,210,235,253,247,223,191,117,246,236,217,218,63,255,252,51,52,26,141,209,233,231,159,127,198,233,115,55,102,82,74,175,91,98, - 19,33,196,189,97,195,134,167,175,92,185,226,44,149,74,113,234,212,41,228,229,229,149,71,178,198,143,31,79,242,242,242,70,109,222,188,121,248,179,103, - 207,126,56,119,238,92,54,116,195,65,85,248,32,176,44,251,88,163,81,249,184,251,122,177,35,7,119,235,86,148,125,7,54,78,173,112,249,214,227,99, - 249,121,57,165,44,203,62,54,220,254,93,92,79,43,86,172,88,177,82,51,8,33,199,40,165,131,8,33,199,42,47,171,252,94,191,93,120,120,120,249, - 188,126,159,136,136,136,229,6,243,37,239,200,182,10,227,29,234,209,59,90,129,81,81,81,20,64,160,177,157,21,247,15,66,17,127,4,2,207,46,16, - 122,191,7,214,179,43,82,238,156,193,237,63,87,227,249,189,243,160,156,22,110,205,58,88,106,139,220,199,199,7,114,185,46,53,75,161,80,64,32,115, - 144,207,158,52,70,12,0,28,79,92,238,53,149,121,135,213,98,219,37,8,29,50,41,174,186,234,90,238,58,100,234,246,251,110,194,4,8,4,2,8, - 4,130,242,193,103,45,113,180,72,217,198,28,199,1,70,92,72,66,8,105,39,226,255,182,103,241,244,14,162,103,113,66,197,221,75,72,87,112,244,104, - 166,54,202,146,145,147,165,50,105,154,68,42,141,147,216,200,12,29,173,199,0,64,249,252,200,93,223,76,111,37,203,124,34,147,95,139,70,134,156,83, - 213,50,46,243,205,159,127,254,233,194,227,241,234,104,181,90,164,164,164,224,222,189,123,88,187,118,109,102,97,97,97,224,141,27,55,18,12,236,101,218, - 75,132,123,35,151,134,54,226,221,137,21,43,30,223,53,234,188,153,195,185,229,176,126,239,5,182,142,154,60,118,17,134,14,236,139,113,129,126,52,41, - 61,71,14,224,20,181,96,0,107,74,105,26,33,164,79,247,238,221,255,209,166,77,27,95,74,41,90,182,108,137,81,163,70,33,50,50,18,183,110,221, - 66,97,97,161,234,228,201,147,107,40,165,219,171,211,43,59,47,169,131,131,195,137,152,152,24,103,169,84,138,147,39,79,162,180,180,20,110,110,110,152, - 54,109,154,48,34,34,98,103,65,65,193,200,240,240,112,113,82,82,210,134,191,254,250,171,1,0,134,82,90,229,67,160,84,42,183,253,22,185,99,221, - 180,233,51,234,198,92,190,31,173,40,46,180,171,239,145,90,88,219,209,198,102,245,138,111,234,43,149,202,201,6,199,53,184,158,127,191,209,245,180,98, - 197,138,21,43,85,48,235,139,0,175,157,167,202,206,150,37,24,56,97,165,97,97,97,11,9,33,199,194,194,194,22,134,135,135,151,2,72,127,27,195, - 245,77,135,134,77,136,122,167,139,7,0,193,193,193,177,81,81,81,8,14,14,142,53,169,194,105,161,74,58,11,85,210,89,72,2,102,226,143,240,209, - 21,86,191,205,16,97,131,151,158,138,81,40,20,188,29,59,118,148,231,109,1,128,86,91,253,240,136,53,197,18,71,11,101,67,19,149,57,90,85,140, - 104,40,178,137,221,246,249,200,78,78,218,18,190,242,252,81,164,41,56,205,15,143,84,37,215,242,232,138,133,38,4,15,207,154,140,212,115,167,33,181, - 177,73,253,228,108,156,97,20,235,14,128,167,0,208,80,92,43,122,239,236,209,93,235,8,32,80,70,237,67,186,130,83,108,121,166,222,190,214,136,158, - 62,36,249,244,233,83,148,148,148,224,226,197,139,56,112,224,64,86,101,39,171,204,222,191,127,153,255,81,199,90,133,47,4,202,107,167,145,174,224,20, - 205,44,184,8,206,173,134,117,17,48,228,36,97,88,201,192,110,126,152,245,233,48,172,254,229,15,141,210,165,219,160,117,71,142,143,44,82,168,22,89, - 226,100,25,216,124,7,128,31,33,68,4,32,104,212,168,81,199,135,15,31,142,216,216,88,28,61,122,212,11,64,6,0,16,66,150,2,112,133,174,55, - 162,169,145,227,25,129,64,176,231,244,233,211,205,221,221,221,113,250,244,105,148,150,150,98,202,148,41,202,233,211,167,11,198,143,31,79,242,243,243,203, - 35,89,23,47,94,204,134,9,39,11,0,158,63,127,254,103,131,6,13,186,116,239,222,125,104,35,47,239,90,79,10,11,94,218,72,197,146,115,177,103, - 4,55,174,93,218,240,252,249,243,242,65,91,43,94,207,104,139,175,167,21,43,86,172,88,49,141,69,190,8,42,70,166,106,130,193,126,252,240,240,240, - 123,225,225,225,21,34,94,111,131,177,72,150,158,55,170,163,165,205,79,169,122,16,206,114,71,203,88,164,202,193,193,65,35,145,72,42,56,90,156,133, - 154,57,135,118,227,201,212,49,229,145,44,125,100,11,253,199,87,217,182,38,17,45,170,75,154,174,96,132,204,213,123,244,158,177,125,186,248,53,170,203, - 168,247,174,197,243,18,141,124,241,67,149,60,190,144,190,119,223,72,146,117,185,166,70,13,177,76,146,44,177,145,85,118,178,158,1,128,77,157,102,195, - 119,142,14,10,108,237,221,132,209,252,190,10,105,37,234,162,176,7,42,213,147,98,122,208,152,30,165,116,113,223,190,125,23,59,57,57,137,215,173,91, - 103,231,233,233,9,141,70,163,172,236,100,201,92,189,71,255,62,190,127,151,102,117,28,24,245,254,245,72,45,213,150,172,125,162,222,185,165,154,107,224, - 220,106,88,151,218,118,54,127,109,89,62,85,34,21,241,33,151,203,17,177,105,63,78,94,184,59,40,43,238,208,95,0,254,170,70,194,28,159,12,26, - 52,104,245,210,165,75,161,86,171,49,113,226,68,60,126,252,248,228,195,135,15,215,122,120,120,204,157,63,127,190,123,157,58,117,240,193,7,31,8,0, - 140,55,161,241,253,111,191,253,54,168,117,235,214,136,141,141,69,94,94,30,220,220,220,48,125,250,116,97,120,120,248,206,130,130,130,145,203,151,47,23, - 63,125,250,212,108,36,203,16,141,70,243,237,214,213,83,231,180,239,212,149,121,244,40,65,147,210,161,7,115,230,244,209,179,14,14,14,59,245,219,200, - 92,189,71,255,62,97,64,141,175,167,21,43,86,172,88,121,103,68,1,8,214,207,24,70,183,12,157,48,125,196,202,112,190,242,246,101,235,43,230,31, - 189,1,250,102,67,66,136,155,222,182,10,17,45,0,8,14,14,182,184,91,61,87,156,85,101,153,37,205,124,193,62,68,61,185,61,120,11,123,48,16, - 200,28,228,131,151,158,138,49,181,173,76,38,179,56,162,197,41,228,102,215,27,212,193,178,200,209,98,89,150,0,56,193,113,220,37,24,56,90,246,117, - 188,123,124,249,69,232,154,174,195,251,51,153,159,6,32,175,72,161,152,127,95,195,61,47,49,239,100,1,0,180,234,36,169,204,38,78,44,171,144,151, - 149,2,0,18,215,166,29,194,62,159,177,169,231,232,193,36,107,74,87,228,230,149,42,230,222,211,144,180,82,58,242,62,165,103,140,201,69,71,71,111, - 5,176,53,48,48,48,83,38,147,161,168,168,168,202,61,208,219,219,101,120,127,38,243,147,142,200,41,86,41,230,223,211,32,189,148,219,99,206,84,231, - 86,195,186,56,219,219,254,181,101,217,84,105,250,243,103,16,8,4,176,177,177,193,169,243,113,200,186,123,248,109,28,44,176,44,187,100,225,194,133,139, - 167,77,155,134,236,236,108,28,61,122,20,3,7,14,196,238,221,187,61,143,31,63,190,58,40,40,8,44,203,226,216,177,99,80,171,213,137,198,52,8, - 33,195,38,77,154,52,119,248,240,225,184,122,245,42,50,50,50,42,68,178,242,242,242,70,109,218,180,105,120,82,82,82,181,145,172,74,116,104,216,164, - 173,96,193,87,63,66,81,242,146,151,149,118,57,54,250,20,115,41,39,39,71,10,32,255,77,175,167,21,43,86,172,88,177,12,51,190,72,86,153,19, - 149,101,108,222,192,193,50,54,79,42,69,193,148,149,214,223,126,87,246,83,221,176,59,219,12,155,16,45,138,104,241,92,91,64,147,121,183,124,158,43, - 126,89,97,189,216,214,209,162,166,67,181,6,188,45,219,203,235,104,137,179,179,179,197,181,107,215,150,27,58,8,82,169,20,238,238,238,200,205,205,197, - 182,109,219,0,160,186,164,104,77,173,225,99,209,97,244,68,92,171,39,4,85,171,202,35,91,91,38,76,40,223,136,16,2,129,64,160,207,13,171,238, - 79,247,10,33,228,25,199,113,151,40,165,212,191,89,227,111,197,50,217,132,118,173,154,212,158,53,245,19,126,210,75,5,98,186,46,200,219,255,253,23, - 54,169,212,102,90,50,205,51,239,100,1,79,134,108,222,85,57,146,245,188,109,179,198,139,196,82,241,167,157,90,52,171,19,54,123,42,63,41,83,65, - 98,58,204,47,56,176,98,190,244,41,108,231,166,210,92,163,78,86,37,22,15,28,56,112,49,165,148,114,28,247,21,0,24,218,59,123,250,167,252,39, - 47,228,136,238,186,40,247,192,247,95,216,166,194,188,189,206,173,134,117,113,117,168,245,215,150,229,211,164,25,105,201,16,137,68,176,181,181,69,106,102, - 62,248,60,214,108,157,180,234,32,132,136,122,244,232,241,197,212,169,83,17,23,23,135,41,83,166,100,164,164,164,28,252,253,247,223,167,124,253,245,215, - 188,126,253,250,33,35,35,3,43,87,174,84,159,63,127,126,57,128,149,198,116,120,60,222,39,223,126,251,45,77,79,79,39,79,159,62,133,155,155,27, - 102,204,152,33,92,190,124,121,121,78,86,77,34,89,122,158,63,127,30,235,213,196,3,239,253,185,6,26,181,34,54,47,59,229,108,252,147,220,88,71, - 161,112,78,87,255,86,111,116,61,173,88,177,98,197,202,59,225,90,53,243,255,106,162,42,149,120,176,184,96,105,226,250,69,31,123,125,60,109,30,36, - 158,93,160,120,112,8,92,81,102,121,68,75,108,227,0,71,15,95,228,21,43,176,47,250,6,0,24,141,64,152,162,176,176,16,254,254,254,216,56,190, - 89,79,121,97,182,88,2,64,33,170,37,63,44,236,22,115,252,248,241,18,142,227,246,0,56,94,141,204,146,230,205,155,111,248,241,199,31,133,190,163, - 63,70,209,229,115,21,86,50,12,3,137,68,2,145,72,132,59,119,238,32,38,38,70,9,96,137,57,65,66,200,21,141,70,115,123,223,190,125,169,94, - 141,235,245,15,108,223,97,230,194,5,97,182,247,207,157,196,87,203,55,112,77,219,245,203,143,216,125,184,48,223,198,163,87,73,122,252,45,11,78,245, - 54,42,58,89,233,190,141,60,122,6,180,109,51,239,171,175,22,213,186,119,238,20,190,94,177,133,122,181,238,157,191,226,192,145,130,87,210,6,125,75, - 51,31,92,53,47,169,227,239,191,255,222,10,96,171,126,222,171,113,189,254,61,218,183,155,185,104,193,66,219,251,231,78,34,108,233,90,174,89,251,254, - 185,17,187,15,20,23,216,122,244,54,103,175,139,223,251,157,235,187,57,254,181,254,187,207,164,47,210,82,32,18,137,96,99,99,131,148,140,60,44,94, - 179,183,88,197,113,253,45,177,201,12,34,91,91,91,145,74,165,194,198,141,27,145,146,146,18,64,41,77,33,132,108,249,240,195,15,215,181,108,217,210, - 231,222,189,123,137,69,69,69,211,40,165,241,166,68,236,237,237,3,156,157,157,201,165,75,151,240,217,103,159,41,103,204,152,33,24,55,110,28,201,205, - 205,125,211,72,22,0,160,94,189,122,61,134,4,119,70,151,62,83,98,149,242,188,179,73,241,59,99,25,122,65,220,182,77,139,55,186,158,86,172,88, - 177,98,229,127,3,125,36,203,212,74,147,83,15,128,215,204,9,147,155,215,21,188,136,252,126,6,45,124,114,145,150,94,221,74,11,14,125,74,163,86, - 142,163,199,215,207,162,83,130,155,83,31,23,242,162,153,19,38,247,0,120,149,234,73,244,54,156,31,232,13,117,159,38,160,125,154,128,6,55,131,26, - 192,194,182,109,219,30,158,222,1,229,117,180,166,119,0,5,240,25,0,27,19,53,42,122,27,89,230,6,96,155,191,191,191,230,204,153,51,244,225,200, - 222,244,166,79,109,58,109,218,52,250,245,215,95,211,49,99,198,80,103,103,103,77,217,69,112,171,78,243,189,247,222,171,71,41,69,253,250,245,237,219, - 249,54,125,113,39,250,40,61,27,185,142,254,50,253,125,218,177,165,239,171,58,62,221,111,75,220,188,219,84,83,75,163,92,179,78,157,58,11,40,165, - 253,41,165,110,148,82,120,121,57,217,180,245,105,154,126,251,244,81,122,110,215,6,250,203,244,247,105,167,86,126,217,245,124,131,226,197,46,62,29,44, - 209,52,54,233,236,245,122,17,23,125,236,181,189,45,124,94,185,54,237,124,203,148,189,134,154,141,58,124,112,228,121,122,38,189,114,229,10,61,126,252, - 56,61,119,238,28,141,252,253,8,245,104,63,178,168,118,203,161,93,204,29,219,18,59,1,216,5,7,7,211,196,196,68,58,96,192,0,10,192,238,77, - 52,1,28,78,74,74,162,119,239,222,165,11,23,46,164,0,118,76,157,58,181,52,63,63,159,246,238,221,59,5,186,206,12,188,55,177,179,113,195,186, - 17,195,6,119,91,50,253,179,225,61,222,246,122,190,171,201,170,105,213,180,106,90,53,255,23,52,255,91,39,179,17,173,191,117,209,128,173,45,93,201, - 63,150,175,92,63,103,227,214,29,243,190,152,249,137,172,91,215,62,136,59,253,43,14,28,251,189,88,174,80,174,20,176,248,49,238,21,173,182,14,69, - 84,60,229,87,94,70,8,145,58,54,65,121,13,166,71,185,0,165,180,70,185,197,84,231,73,78,34,132,252,24,20,20,180,236,211,46,29,222,159,222, - 185,39,212,106,53,34,35,35,145,156,156,124,16,192,34,74,169,69,17,183,184,184,184,87,205,155,54,8,117,148,8,230,77,27,51,204,57,235,241,125, - 60,127,112,19,0,160,80,148,170,51,18,98,91,215,196,62,137,68,114,197,217,217,249,161,179,179,115,174,86,81,52,73,204,171,245,213,148,81,67,92, - 178,147,226,145,122,79,215,50,170,144,151,168,82,19,98,124,106,162,171,167,65,131,6,34,25,31,147,117,246,14,117,126,249,248,222,107,123,149,114,245, - 139,196,7,109,44,209,41,81,40,151,127,179,58,178,239,119,243,38,136,106,213,170,133,27,119,31,225,171,85,187,139,75,149,234,254,89,119,14,189,147, - 230,49,74,41,212,106,181,197,29,29,76,240,69,235,214,173,189,151,45,91,230,53,126,252,120,188,109,36,203,144,199,79,159,135,5,6,6,250,61,122, - 120,35,200,81,34,248,199,219,92,79,43,86,172,88,177,98,197,162,28,173,184,76,90,2,96,105,99,87,178,101,193,178,213,139,25,178,102,2,71,233, - 175,26,6,223,60,121,69,171,102,198,215,0,74,105,73,176,15,209,244,29,58,134,7,0,124,94,181,249,83,230,180,18,1,12,39,132,180,255,233,194, - 213,47,203,22,127,71,41,173,81,91,174,45,15,119,187,250,53,174,219,173,109,115,49,171,45,197,243,7,143,145,83,44,199,169,123,201,121,12,101,126, - 173,169,93,79,158,60,249,27,0,90,52,109,240,160,155,95,19,143,238,254,205,165,124,162,196,243,251,55,144,95,170,196,201,123,201,249,32,228,141,19, - 170,13,237,229,189,133,189,47,238,28,190,230,220,106,88,111,66,200,233,133,211,71,139,22,175,218,243,78,157,44,0,37,105,105,105,217,37,37,37,78, - 233,233,233,74,188,97,145,56,74,233,35,66,72,203,89,179,102,45,157,59,119,238,188,239,191,255,94,240,38,57,89,166,200,77,75,62,212,189,249,219, - 95,79,43,86,172,88,177,242,191,65,229,98,165,134,243,53,42,239,240,36,147,102,1,152,214,164,9,153,253,248,49,85,190,43,3,141,69,186,222,134, - 50,199,106,240,27,11,48,164,240,114,98,114,209,149,196,228,34,112,148,114,148,42,24,6,169,197,42,213,242,132,39,207,223,188,215,29,33,218,107,143, - 82,74,175,63,78,149,83,142,163,28,165,74,66,240,66,173,230,150,223,125,242,236,200,191,131,189,89,119,14,93,168,227,247,126,183,11,87,238,206,46, - 46,86,109,200,186,127,232,226,27,219,85,9,74,169,154,16,242,81,64,64,192,199,90,173,118,11,165,84,253,22,90,74,0,95,16,66,14,198,197,197, - 237,189,120,241,98,6,222,129,147,5,224,159,119,255,173,88,177,98,197,202,127,53,198,170,195,191,81,29,173,119,233,100,253,59,18,151,152,228,255,207, - 208,189,155,152,212,226,159,161,251,174,237,125,113,255,224,117,0,163,222,165,166,30,74,233,73,0,39,223,161,222,53,66,72,67,0,236,59,113,178,240, - 207,187,255,86,172,88,177,98,229,191,23,99,213,225,129,55,116,180,172,88,249,119,130,234,50,51,223,137,147,101,197,138,21,43,86,172,212,148,202,81, - 44,67,8,128,222,38,118,58,109,233,1,8,33,70,53,170,49,202,172,190,85,211,170,105,213,180,106,90,53,173,154,86,205,255,62,205,255,70,42,71, - 177,0,3,231,235,159,217,165,17,255,33,93,74,173,154,86,77,171,166,85,211,170,105,213,180,106,254,107,53,255,27,38,0,147,42,47,179,54,29,90, - 177,98,197,138,21,43,86,172,188,5,134,17,45,253,123,250,38,189,14,203,4,154,150,9,60,122,87,6,26,57,198,116,55,55,183,73,173,90,181,242, - 21,8,4,76,97,97,225,55,49,49,49,75,42,111,215,189,57,255,58,203,160,158,193,158,0,97,1,134,129,150,226,249,217,219,37,237,254,89,54,90, - 121,123,8,33,158,146,90,206,127,16,134,21,106,53,42,104,213,42,0,175,135,99,226,56,77,178,70,41,239,103,106,127,183,54,239,123,104,180,220,247, - 0,221,8,48,83,1,110,19,1,111,10,133,102,51,1,251,25,88,186,2,90,50,159,199,103,23,164,223,216,151,250,255,113,78,255,108,246,239,223,207, - 190,205,254,35,70,140,48,58,128,104,221,186,117,143,73,165,210,38,166,246,43,46,46,206,72,79,79,15,122,155,99,255,187,67,8,233,14,96,61,128, - 230,149,86,197,3,8,165,148,70,191,237,49,2,9,225,185,2,147,5,192,124,0,80,1,43,50,129,173,127,191,163,142,28,239,2,23,23,151,179,60, - 30,207,171,184,184,184,184,160,160,160,113,173,90,181,158,200,100,50,153,70,163,73,124,249,242,101,119,179,59,19,98,209,231,179,5,96,155,0,124,168, - 101,152,25,124,96,163,130,227,116,181,19,41,173,118,128,91,66,200,167,0,22,3,200,0,48,133,82,122,179,38,235,173,88,249,103,64,205,228,104,85, - 235,104,17,66,154,1,232,81,54,117,111,223,190,189,107,113,113,49,8,33,153,0,206,2,136,5,16,75,41,77,120,23,198,178,44,251,195,218,181,107, - 231,204,152,49,163,124,48,232,59,119,238,24,223,150,65,189,51,199,162,93,174,221,121,136,246,189,71,64,231,104,49,64,201,11,4,245,110,255,70,199, - 39,132,216,58,56,56,124,67,8,25,201,48,76,181,63,26,28,199,105,41,165,251,114,115,115,23,83,74,11,107,114,44,27,153,88,173,209,106,141,30, - 131,199,178,218,162,98,185,201,178,23,78,78,78,23,25,134,105,100,56,96,118,153,253,70,223,27,206,107,52,154,231,89,89,89,213,58,161,132,16,49, - 195,19,132,18,34,232,3,134,107,6,16,16,48,9,156,86,121,138,211,168,214,82,74,205,143,230,109,94,219,211,173,126,227,115,159,47,138,168,119,247, - 65,60,22,78,31,131,239,215,239,192,130,208,143,177,118,219,110,132,78,26,13,63,191,202,255,119,21,225,32,88,190,104,230,200,222,225,27,247,118,93, - 48,109,164,40,124,227,190,110,11,167,127,40,92,190,97,111,183,133,211,63,16,133,111,216,219,117,193,204,145,146,229,155,246,115,0,198,190,137,157,31, - 53,171,91,12,141,70,100,116,37,143,167,248,71,66,154,236,77,116,223,150,144,144,144,0,150,112,235,250,117,244,62,211,209,207,227,153,177,109,178,51, - 82,26,60,123,250,48,72,192,48,51,7,135,69,94,50,167,39,18,137,26,197,199,199,123,113,28,7,173,86,11,141,253,173,187,182,0,0,32,0,73, - 68,65,84,70,83,254,170,84,42,209,189,123,247,119,18,253,38,132,12,6,240,13,116,249,161,225,148,210,189,111,161,101,195,227,241,62,23,10,133,61, - 52,26,141,47,0,240,249,252,7,10,133,34,86,163,209,172,166,148,22,213,80,114,77,90,90,154,159,141,141,13,84,42,85,249,0,244,44,203,250,120, - 120,120,108,4,224,245,166,182,234,113,5,38,119,238,218,117,237,184,57,115,216,210,179,103,177,118,251,246,53,40,40,0,128,141,213,237,43,18,137,254, - 98,24,198,179,38,199,227,56,46,89,161,80,152,124,88,49,6,143,199,243,74,79,79,119,113,119,119,7,0,200,100,50,153,225,252,155,18,11,144,254, - 64,119,13,203,206,114,170,93,187,219,141,147,39,101,45,90,180,96,88,150,93,0,192,162,34,213,132,144,58,13,26,52,216,114,226,196,9,38,41,41, - 201,125,200,144,33,127,248,251,251,111,131,238,9,141,42,20,10,89,131,6,13,230,159,56,113,130,60,123,246,204,173,127,255,254,155,1,188,217,159,129, - 21,43,53,192,88,89,7,61,38,127,60,9,33,199,1,244,104,223,190,189,100,212,168,81,232,209,163,7,188,188,188,32,22,139,1,0,217,217,217,174, - 183,110,221,250,224,236,217,179,31,28,61,122,20,132,144,82,0,231,41,165,70,191,212,189,7,119,155,33,182,17,173,3,128,172,231,217,25,207,159,190, - 92,151,145,145,177,146,26,140,70,77,8,105,60,110,220,184,217,51,103,206,196,177,99,199,176,123,247,110,40,20,10,20,22,22,34,38,38,198,184,161, - 197,47,145,27,19,1,200,158,1,41,127,3,82,23,64,230,106,225,165,169,138,131,131,195,55,161,161,161,179,252,252,252,64,169,174,138,185,90,173,134, - 70,163,129,90,173,70,110,110,46,102,207,158,13,64,151,223,198,113,28,254,252,243,207,25,147,38,77,2,128,207,141,105,6,180,243,184,206,16,166,158, - 62,86,67,181,218,231,151,110,166,182,211,104,181,172,92,174,50,58,82,185,88,44,48,235,228,241,249,252,122,247,255,248,195,133,17,10,65,181,90,128, - 227,64,57,14,128,193,68,117,203,168,150,3,85,107,193,105,56,104,74,21,232,48,117,106,181,215,129,16,210,153,47,148,236,254,232,211,57,117,58,118, - 234,196,111,80,223,29,26,45,135,199,73,207,235,220,184,126,185,203,190,157,27,167,16,66,70,83,74,223,168,206,150,80,90,235,228,134,205,63,213,187, - 118,235,46,162,207,156,197,233,152,88,0,192,95,103,116,114,12,195,84,103,159,131,75,243,129,45,67,39,14,21,69,108,216,195,15,157,56,140,253,126, - 195,239,252,153,31,15,97,35,214,237,22,204,252,120,8,27,177,126,183,96,230,196,161,108,248,218,95,90,17,66,28,40,165,185,166,244,76,221,35,104, - 52,162,127,60,201,100,1,32,107,203,22,168,95,190,132,251,226,197,0,128,143,26,187,26,119,192,140,224,236,236,124,157,207,231,215,171,110,59,181,90, - 93,173,19,28,18,18,210,185,101,203,150,135,162,162,142,218,140,120,127,120,179,250,13,26,157,30,217,47,32,211,112,155,203,151,46,185,158,206,124,212, - 251,151,3,49,76,248,156,144,195,71,194,67,134,13,89,16,105,242,94,113,28,199,40,20,10,36,38,38,234,243,12,42,83,109,164,193,24,132,16,6, - 192,90,39,39,167,142,217,217,217,31,1,88,88,80,80,208,138,101,89,56,58,58,46,36,132,60,182,179,179,251,57,63,63,255,34,116,81,35,139,134, - 12,32,132,116,175,85,171,86,228,161,67,135,28,218,182,109,203,100,101,101,161,81,163,70,200,201,201,233,112,246,236,89,255,137,19,39,78,36,132,132, - 80,74,207,214,192,92,111,169,84,74,199,141,27,71,180,218,215,167,251,203,47,191,160,95,11,77,147,207,250,203,74,228,74,154,31,157,104,247,153,64, - 32,56,255,236,217,179,252,26,93,12,0,2,96,254,184,57,115,88,155,103,207,96,115,251,54,62,42,40,224,125,175,139,110,85,235,104,49,12,227,25, - 185,231,87,47,161,80,88,254,187,100,106,210,106,181,80,41,85,136,248,206,232,184,236,22,33,149,74,165,238,238,238,153,82,169,84,250,198,34,0,92, - 1,143,28,134,249,180,141,191,255,164,175,135,12,145,92,191,126,93,196,48,12,52,26,13,86,174,92,169,161,148,218,251,1,181,238,3,5,22,200,57, - 9,133,66,198,203,75,231,243,218,217,217,185,69,70,70,46,210,175,76,76,76,36,11,23,46,36,101,235,9,116,195,179,89,177,242,255,66,229,132,120, - 75,154,14,7,20,20,20,64,171,213,194,214,214,22,44,91,241,127,223,201,201,9,125,250,244,65,247,238,221,49,106,212,40,220,191,127,95,50,106,212, - 168,62,166,196,198,204,25,132,250,94,58,7,72,173,230,220,46,68,221,138,248,229,219,253,206,0,230,24,108,54,113,242,228,201,36,59,59,27,35,71, - 142,60,171,80,40,222,163,148,154,252,242,105,57,60,15,26,53,6,28,37,146,213,87,182,17,165,188,148,50,12,83,170,111,58,52,115,110,38,33,132, - 140,116,119,119,199,158,61,123,160,84,86,45,23,86,171,86,45,220,187,119,175,124,158,101,89,116,234,212,137,37,132,140,132,9,71,139,16,166,222,133, - 107,207,92,244,243,131,250,52,23,4,180,243,204,116,118,178,165,0,200,162,69,186,223,9,253,31,220,55,223,124,99,137,157,96,248,124,100,197,198,150, - 47,99,120,12,24,1,1,225,3,12,79,215,138,10,10,80,45,192,105,0,78,13,136,221,234,91,162,221,161,174,135,215,177,229,171,54,217,43,212,20, - 123,142,68,35,41,233,41,88,134,65,227,38,94,232,27,216,141,239,223,62,160,254,138,37,115,142,18,66,6,80,74,45,26,0,187,2,28,21,55,241, - 168,141,159,127,185,1,103,7,27,140,28,58,16,18,177,8,223,175,255,21,223,45,152,14,175,198,158,216,186,102,153,201,221,237,236,236,150,250,122,53, - 241,220,180,51,10,190,62,62,236,166,200,40,248,250,149,189,54,247,101,55,69,70,193,175,185,31,187,41,50,10,173,154,123,55,184,158,113,101,41,128, - 233,166,207,185,210,61,234,171,187,71,94,60,65,185,35,252,108,202,20,0,40,119,180,106,2,159,207,175,151,158,158,238,82,221,118,213,69,13,66,66, - 66,2,218,180,105,115,56,38,38,198,54,47,47,143,183,111,255,126,237,192,1,3,122,19,224,244,136,50,103,235,202,165,75,174,167,79,158,232,189,112, - 211,49,161,50,225,24,249,106,249,26,201,151,179,62,57,120,52,34,100,216,136,17,35,206,27,211,85,40,20,73,109,218,180,161,101,239,235,138,68,34, - 129,225,122,66,136,187,151,151,87,149,168,181,5,77,138,107,47,93,186,52,221,207,207,15,62,62,62,23,59,118,236,88,75,38,147,225,196,137,19,240, - 245,245,109,94,171,86,173,43,251,246,237,227,127,241,197,23,173,183,111,223,14,0,51,204,95,33,93,47,168,160,160,160,61,199,142,29,19,11,4,2, - 148,150,150,226,222,189,123,176,183,183,135,80,40,196,144,33,67,216,46,93,186,56,5,6,6,30,40,123,24,176,184,7,148,92,46,167,11,23,46,132, - 84,42,133,84,42,133,76,38,131,76,38,131,141,24,100,75,168,135,100,230,182,60,201,231,139,183,68,68,110,90,114,198,195,195,227,235,148,148,148,60, - 75,181,245,148,158,61,11,155,219,183,1,131,239,174,165,216,73,29,17,22,22,102,118,27,30,143,7,129,64,128,206,157,59,87,171,231,228,228,116,144, - 199,227,85,120,50,165,148,138,195,194,194,180,9,9,9,50,134,97,100,28,199,33,44,44,76,171,209,104,196,174,174,174,23,57,142,203,204,202,202,122, - 223,156,110,32,32,190,8,12,35,124,254,231,110,238,238,13,123,52,110,44,61,125,250,52,11,0,158,158,158,52,35,35,35,239,240,225,195,133,60,96, - 179,39,165,59,45,116,178,64,41,189,39,22,139,79,122,123,123,247,85,171,213,104,220,184,113,198,166,77,155,210,0,16,74,41,1,64,180,90,173,175, - 183,183,183,88,169,84,82,232,162,167,86,254,59,240,7,96,248,89,85,2,16,150,189,207,134,46,170,89,187,210,114,0,120,5,221,131,162,171,137,249, - 108,0,247,1,120,3,112,41,91,119,13,64,78,77,13,52,27,209,138,138,138,42,127,132,13,14,14,46,255,99,177,181,181,197,181,107,215,64,8,129, - 173,173,45,106,213,170,5,59,59,59,20,20,20,224,254,253,251,136,143,143,199,179,103,207,64,8,65,227,198,141,1,221,19,132,225,65,203,127,224,126, - 251,241,24,196,54,34,16,2,180,237,217,10,173,186,183,64,251,171,79,66,221,221,221,183,165,167,167,39,18,66,120,45,90,180,152,216,169,83,39,172, - 90,181,10,10,133,98,149,49,39,203,80,243,236,61,117,59,0,112,119,119,159,187,235,196,99,233,216,254,77,74,210,211,211,127,120,131,139,83,225,135, - 248,213,171,87,22,143,197,199,113,28,114,115,171,6,74,12,53,43,71,8,86,175,221,96,95,152,159,137,111,191,223,5,181,90,141,57,115,230,128,227, - 184,242,41,47,207,248,111,119,101,59,169,182,82,144,129,209,77,132,1,8,15,240,248,80,231,87,164,236,217,0,66,1,162,5,80,233,188,42,107,18, - 66,196,172,64,242,251,146,239,215,217,223,140,127,142,35,209,55,161,42,72,67,198,237,67,0,128,198,157,71,99,175,130,69,199,86,77,48,107,209,10, - 135,47,103,133,252,78,8,241,49,108,70,180,228,143,141,82,45,190,93,186,20,219,214,173,194,138,85,235,80,144,159,7,62,191,54,0,64,163,209,66, - 91,233,220,170,156,59,165,253,195,66,39,144,239,55,31,68,7,63,55,28,56,113,21,93,219,120,226,208,201,235,232,238,223,16,71,78,223,68,207,142, - 77,112,60,246,46,102,77,30,77,70,255,181,189,191,185,235,89,249,30,173,89,179,193,190,176,32,19,199,150,237,196,203,141,27,145,60,125,58,58,148, - 109,115,149,16,8,234,213,3,4,168,66,117,231,254,224,193,3,40,20,138,42,203,69,34,17,124,125,125,141,238,99,168,169,84,42,191,140,138,138,18, - 231,229,229,241,50,50,50,32,147,201,216,53,171,127,148,79,155,52,190,245,136,126,1,39,0,224,208,145,67,173,191,217,176,151,167,124,112,136,148,156, - 255,17,130,198,189,197,161,99,122,229,205,249,241,247,47,1,244,53,102,103,70,70,198,0,253,251,198,141,27,199,39,36,36,120,235,155,154,203,154,16, - 5,26,141,198,75,223,156,168,209,104,160,80,40,208,187,119,239,242,39,48,99,231,238,224,224,208,201,215,215,23,55,111,222,196,186,117,235,28,131,130, - 130,240,232,209,35,16,66,176,124,249,114,226,231,231,199,127,245,234,21,250,245,235,135,131,7,15,86,241,12,140,124,62,109,101,50,217,246,163,71,143, - 138,25,134,65,97,97,33,56,142,67,215,174,93,193,48,12,238,222,189,139,69,139,22,225,224,193,131,56,124,248,176,196,223,223,127,59,33,196,215,176, - 89,223,204,61,162,114,185,156,138,68,34,136,68,34,136,197,98,136,197,98,8,133,66,20,201,129,73,171,147,21,172,184,54,215,188,77,215,38,19,102, - 46,103,126,248,234,227,24,0,71,170,209,172,128,10,88,177,246,215,95,215,125,148,159,207,0,192,207,132,112,42,74,87,24,53,198,136,102,161,60,15, - 158,77,234,225,192,158,195,24,62,106,104,149,125,120,60,30,248,124,1,4,124,62,108,29,171,6,162,42,107,10,4,2,215,248,248,120,39,62,159,15, - 74,169,46,18,166,82,101,126,249,229,151,206,193,193,193,182,127,254,249,39,19,28,28,204,57,56,56,20,95,189,122,245,165,70,163,113,234,214,173,155, - 73,77,41,208,74,110,215,116,173,152,79,91,125,191,96,138,104,236,216,177,236,132,9,19,144,146,146,130,137,19,39,202,79,157,58,165,124,145,145,113, - 68,200,113,27,84,128,241,156,16,19,231,174,71,46,151,247,235,221,187,247,237,176,176,48,159,157,59,119,238,159,48,97,194,214,74,215,96,119,215,174, - 93,125,23,47,94,188,138,82,250,147,37,154,111,138,85,243,221,98,202,23,41,195,149,16,114,204,224,248,131,244,243,97,97,97,11,195,195,195,239,17, - 66,142,25,46,215,111,7,0,250,101,149,231,203,246,117,92,176,96,65,139,136,136,136,229,1,1,1,123,46,94,188,248,20,53,116,180,170,205,209,210, - 159,144,225,73,86,18,64,65,65,1,10,10,10,144,154,154,138,45,91,182,148,125,161,249,224,241,120,224,241,120,229,249,12,166,56,125,244,220,122,0, - 235,253,253,253,249,113,151,246,253,57,127,219,204,94,237,122,183,101,111,68,199,141,0,240,29,128,1,227,198,141,171,13,0,59,119,238,124,5,224,207, - 154,156,228,187,130,82,186,47,49,49,113,150,155,155,91,121,142,138,97,243,161,70,163,129,88,44,134,62,151,69,46,151,99,203,150,45,26,74,233,62, - 51,154,72,184,23,131,196,123,103,116,251,113,28,56,237,235,253,151,44,89,98,216,53,20,83,202,34,39,213,193,25,187,230,180,210,107,165,229,85,156, - 179,74,48,140,96,230,136,144,233,110,28,225,225,143,152,91,224,243,249,224,12,162,153,124,86,247,180,124,239,81,58,220,93,155,227,189,209,147,235,28, - 138,220,48,19,192,247,22,25,109,128,79,235,0,132,206,154,133,159,182,109,195,162,197,75,203,189,116,141,86,11,77,181,118,50,76,239,46,45,160,41, - 74,7,203,178,232,217,161,9,88,150,69,159,128,102,96,89,22,253,186,248,128,199,227,161,127,87,63,52,109,218,20,60,30,207,108,91,164,238,30,69, - 35,241,222,223,6,78,175,238,158,168,50,50,170,108,175,206,200,0,245,112,170,209,249,82,74,49,113,226,196,188,212,212,84,85,229,117,245,235,215,23, - 156,61,123,214,222,68,179,93,57,66,161,240,187,129,3,7,30,62,124,248,48,149,74,165,18,149,178,68,241,241,196,79,217,111,167,12,187,173,223,102, - 216,144,97,183,127,152,63,161,247,220,133,139,33,104,20,200,211,82,228,173,248,249,8,95,200,23,126,103,137,157,250,102,196,135,15,31,154,106,70,52, - 60,39,163,77,223,122,114,115,115,199,249,250,250,158,93,191,126,189,35,33,4,231,206,157,3,203,178,229,211,147,39,79,192,48,12,230,207,159,175,42, - 40,40,248,164,58,219,120,60,222,172,3,7,14,216,9,133,66,20,22,22,150,127,111,88,150,69,124,124,60,126,248,225,7,140,27,55,14,41,41,41, - 112,119,119,199,156,57,115,108,34,34,34,102,1,88,106,193,169,223,81,42,149,237,164,82,41,196,98,49,244,14,23,0,156,188,199,191,91,82,82,210, - 178,118,237,218,117,156,99,143,253,209,57,232,189,214,78,206,110,1,40,115,180,44,229,49,176,237,169,70,243,229,128,67,135,92,46,28,58,196,93,250, - 227,143,231,226,162,162,173,213,239,89,134,154,69,242,227,231,240,247,247,199,141,27,55,224,239,255,122,16,3,129,64,0,161,80,8,129,64,0,129,64, - 128,218,246,22,165,80,80,134,97,112,225,194,5,104,181,90,40,149,74,40,149,74,248,249,249,229,156,57,115,198,6,0,158,60,121,66,199,142,29,155, - 119,229,202,21,180,105,99,126,60,117,57,33,209,75,150,255,104,247,227,134,72,216,57,186,34,54,54,86,123,226,196,137,66,2,36,36,222,187,183,234, - 61,224,248,62,160,202,231,223,20,132,16,190,179,179,243,113,30,143,87,225,203,38,145,72,154,44,89,178,132,159,145,145,49,250,252,249,243,125,1,192, - 209,209,49,118,235,214,173,235,0,160,105,211,166,84,36,18,213,52,71,207,202,191,152,234,124,17,224,181,163,100,56,79,8,57,22,30,30,62,168,242, - 50,67,167,202,216,123,195,125,35,34,34,150,27,104,151,190,203,243,42,111,58,140,138,138,162,70,60,72,139,169,206,209,210,115,227,198,13,117,221,186, - 117,127,74,188,245,172,87,147,86,141,33,145,137,250,18,66,214,139,68,162,217,33,33,33,184,124,249,50,238,222,189,251,11,125,203,94,56,45,91,182, - 252,75,36,18,121,26,91,167,80,40,146,227,226,226,140,230,146,229,230,230,46,46,203,57,51,153,12,111,152,47,102,152,12,111,202,22,202,81,168,85, - 106,20,151,148,190,254,19,47,115,180,138,139,139,241,225,135,31,86,136,104,189,124,249,178,218,243,35,132,224,135,35,71,112,106,223,62,12,108,221,26, - 7,175,94,69,68,200,24,248,120,214,5,213,18,80,2,164,236,222,128,236,130,34,252,22,125,1,57,133,37,248,168,91,55,120,213,170,109,94,151,47, - 232,211,161,83,128,224,244,197,251,224,243,121,96,192,129,170,75,224,238,27,8,150,97,96,231,218,16,2,62,31,124,62,15,79,82,95,193,183,69,123, - 225,49,161,184,15,222,192,209,242,240,108,4,78,171,197,184,113,227,176,103,207,30,56,213,241,132,93,253,22,248,110,213,54,12,236,221,205,236,190,250, - 104,139,222,209,103,89,182,202,171,254,189,37,209,73,202,81,168,42,223,35,142,130,2,168,183,108,25,234,45,91,134,171,101,199,244,43,46,70,105,105, - 41,208,209,124,178,126,5,125,74,161,84,42,145,154,154,170,202,200,200,168,242,15,88,167,78,157,76,165,82,89,173,99,19,25,25,121,41,36,36,100, - 88,96,96,224,193,117,107,86,43,166,79,159,46,94,58,101,80,244,8,131,28,173,142,1,1,153,20,56,253,221,162,185,189,63,30,220,182,120,117,228, - 73,77,94,41,134,15,89,96,62,33,94,143,66,161,72,106,213,170,149,121,67,202,40,41,41,121,97,106,157,62,241,189,109,219,182,181,130,130,130,112, - 246,236,89,12,31,62,92,161,82,169,18,1,32,56,56,184,217,111,191,253,38,188,127,255,62,156,157,157,249,201,201,201,219,9,33,102,19,228,133,66, - 97,96,251,246,237,25,133,66,81,197,201,138,136,136,192,232,209,163,209,172,89,51,112,28,135,162,162,34,4,5,5,241,215,173,91,23,8,203,28,173, - 80,31,31,159,31,160,235,117,104,248,91,248,0,192,60,0,120,245,234,213,139,65,195,199,221,235,214,251,253,118,13,154,182,168,54,255,199,213,213,117, - 1,195,48,31,112,28,199,22,20,20,164,42,9,105,234,215,160,129,107,151,161,67,145,207,231,179,107,163,163,153,204,162,34,27,0,22,53,65,150,170, - 139,224,217,68,151,234,55,124,212,80,220,184,113,3,35,70,15,131,64,32,0,143,199,215,125,55,5,186,136,150,125,109,91,75,36,161,86,235,134,28, - 213,63,84,170,84,42,168,84,42,232,83,179,164,82,105,249,58,133,66,1,66,136,185,207,6,19,212,189,11,46,222,76,208,76,156,183,86,193,207,190, - 30,81,135,227,118,60,7,50,205,236,99,14,105,35,151,218,237,86,132,78,183,99,249,2,240,196,98,52,8,212,213,207,84,20,22,32,225,143,131,206, - 0,117,206,127,145,129,217,191,31,22,0,88,247,134,199,177,242,111,66,117,190,136,161,163,244,182,16,66,142,133,133,133,45,4,64,195,194,194,22,234, - 231,195,195,195,75,1,164,189,139,99,0,6,77,135,111,227,100,1,168,210,212,83,153,158,61,123,206,176,181,181,93,7,0,237,218,181,67,234,229,52, - 164,94,78,131,175,119,243,46,109,91,183,203,31,61,122,52,156,156,156,48,119,238,92,10,224,151,154,30,255,73,194,61,27,0,212,221,221,125,46,0, - 184,187,187,183,190,122,245,170,243,181,107,215,208,190,253,235,78,39,42,149,10,93,187,118,53,169,83,214,196,240,57,76,228,91,189,9,148,114,80,169, - 84,40,41,41,133,82,169,130,70,205,65,163,209,192,191,185,45,34,183,133,233,150,105,244,209,51,93,212,172,94,29,91,248,183,172,163,102,24,82,122, - 237,118,70,45,99,186,74,165,18,119,146,147,113,251,153,174,211,217,123,225,70,91,32,202,137,140,62,11,63,63,191,234,172,109,82,207,189,14,210,79, - 221,209,253,120,151,166,226,218,249,189,176,181,181,1,0,52,239,241,17,4,2,157,163,85,92,170,66,109,239,250,32,148,154,44,11,32,115,116,251,139, - 39,16,123,82,45,7,74,57,80,78,11,74,57,136,108,157,164,211,63,155,0,142,211,162,67,135,14,32,44,11,173,90,129,145,131,251,32,55,191,16, - 78,246,70,79,185,10,2,129,0,61,122,244,144,152,90,255,232,209,163,82,160,106,15,204,42,103,77,57,157,163,85,92,10,133,66,1,149,82,3,149, - 90,3,174,145,0,223,126,57,6,26,149,6,37,163,2,116,203,102,13,131,74,169,70,138,148,97,90,251,57,171,25,144,210,155,247,95,154,53,152,82, - 10,189,115,96,10,99,57,129,198,136,140,140,188,24,18,18,50,108,232,144,193,235,123,183,111,118,54,233,73,98,114,196,134,196,202,155,61,84,9,28, - 158,45,218,124,162,59,159,97,102,88,234,100,1,21,155,17,223,146,133,133,133,133,173,108,108,108,144,144,144,0,150,101,65,8,121,68,41,109,5,0, - 147,39,79,126,204,227,241,26,179,44,139,141,27,55,18,30,143,215,50,32,32,96,33,0,147,142,150,70,163,241,181,181,181,173,16,205,18,8,4,8, - 11,11,195,216,177,99,203,157,44,129,64,128,29,59,118,160,93,187,118,80,42,149,198,219,100,43,65,117,131,209,155,247,240,1,112,28,71,0,128,114, - 213,120,197,58,123,199,103,127,240,65,83,196,198,162,75,227,198,126,254,254,254,80,169,94,7,116,26,53,106,84,191,176,176,240,5,33,228,31,0,54, - 81,74,111,153,213,147,83,36,63,214,165,159,222,184,113,3,29,58,116,40,143,96,25,70,179,4,2,1,36,2,155,234,204,3,240,218,209,226,56,221, - 239,82,97,97,33,19,27,27,91,219,199,199,135,0,128,143,143,15,185,117,235,150,163,84,42,125,213,164,73,147,234,30,128,5,0,16,216,247,125,222, - 169,19,199,101,26,96,233,11,150,93,90,93,151,85,74,169,90,203,113,70,147,238,29,237,236,193,169,213,56,25,177,20,246,245,61,209,184,151,238,25, - 89,89,88,128,75,91,215,193,198,209,9,173,134,127,104,209,185,90,249,247,198,18,95,228,93,57,89,122,45,125,68,43,60,60,252,94,120,120,120,149, - 232,88,77,48,76,134,55,108,74,172,16,209,2,140,182,139,90,132,254,203,106,138,85,171,86,161,101,203,150,38,215,83,74,177,110,221,58,236,218,181, - 107,21,165,244,73,77,143,63,168,87,219,230,88,125,232,94,227,102,205,9,0,44,157,53,152,41,46,46,198,133,11,23,96,103,103,135,71,143,44,43, - 251,69,8,177,181,179,179,251,134,97,152,145,108,229,30,0,70,208,106,181,90,142,227,246,229,231,231,155,44,239,64,41,160,82,107,80,92,34,135,82, - 169,196,172,249,27,170,181,35,28,32,42,101,33,175,71,247,0,163,78,4,33,4,29,90,244,192,180,177,178,42,127,222,172,174,148,24,218,116,208,141, - 97,125,243,202,93,80,10,104,181,64,109,23,71,252,178,231,71,115,135,38,26,45,87,246,116,172,69,145,66,11,223,78,131,240,252,65,44,0,93,4, - 73,40,208,53,25,11,248,124,112,148,232,170,62,152,64,32,148,120,230,102,60,241,218,118,44,14,147,6,181,196,254,211,119,48,162,119,43,156,185,114, - 31,65,29,253,112,47,241,25,154,123,53,192,198,237,251,64,41,10,55,175,254,174,60,66,194,113,154,100,147,70,26,68,180,46,95,190,92,90,57,138, - 101,248,90,93,148,8,208,125,254,244,17,173,82,185,2,115,23,108,170,118,31,232,239,81,183,78,38,29,61,67,204,69,172,44,113,196,12,137,140,140, - 188,4,160,173,185,109,26,225,95,223,175,93,171,213,34,42,42,170,252,126,84,134,16,82,33,2,89,29,28,199,33,57,57,25,119,239,222,69,64,64, - 0,242,243,243,193,103,24,204,137,139,131,95,72,8,148,2,1,56,142,131,80,40,196,228,201,147,45,190,158,53,162,172,185,148,82,173,89,113,66,200, - 143,131,6,13,106,154,80,92,140,123,241,241,232,189,100,9,0,32,42,42,170,124,27,165,82,137,217,179,103,11,239,223,191,63,241,250,245,235,19,9, - 33,171,40,165,115,76,72,66,69,229,229,57,90,31,124,52,28,77,125,27,97,215,246,221,229,235,103,207,15,5,159,47,0,159,207,135,189,189,189,69, - 103,163,86,171,203,157,214,146,146,18,230,248,241,227,245,250,244,233,35,8,13,13,37,0,176,107,215,46,102,253,250,245,178,83,167,78,9,234,214,173, - 91,181,29,189,226,57,23,164,101,43,68,0,224,225,225,129,13,91,255,96,130,131,131,17,26,26,10,181,90,141,77,155,116,223,171,209,163,71,67,165, - 82,225,192,129,3,0,0,30,143,103,178,148,13,5,133,90,33,71,97,230,11,240,37,82,112,28,7,66,8,168,86,11,85,97,1,52,18,49,192,113, - 96,24,198,126,237,218,181,147,147,147,147,93,123,245,234,37,40,40,40,152,66,8,57,105,173,163,245,159,69,117,190,136,177,92,171,178,168,148,41,178, - 12,243,182,76,57,106,134,57,91,0,170,38,210,86,67,229,242,14,134,243,21,114,180,140,193,178,108,181,209,42,125,87,93,115,204,158,61,27,182,182, - 198,67,217,74,165,146,198,197,197,221,207,200,200,216,70,41,173,222,11,49,194,177,232,155,247,190,249,124,88,33,202,218,86,237,237,237,95,245,236,217, - 179,8,128,106,239,222,138,15,200,10,133,34,217,148,142,157,157,221,55,63,255,252,243,204,161,67,135,50,149,75,12,24,54,239,233,39,181,90,141,189, - 123,247,206,252,226,139,47,0,19,81,48,253,159,120,73,113,41,74,203,18,161,31,223,221,111,217,137,153,249,163,176,113,112,71,189,198,90,147,127,38, - 140,64,151,214,80,199,179,117,249,50,91,91,49,180,102,52,9,97,158,60,75,73,175,91,191,142,35,30,167,102,193,181,65,75,228,166,189,190,14,60, - 30,11,126,89,211,161,125,45,25,178,94,190,4,195,176,102,29,227,239,126,187,137,43,119,159,225,192,233,91,80,201,139,177,122,231,9,168,20,69,80, - 201,139,161,146,235,94,151,127,241,41,8,193,11,149,188,168,153,57,173,202,240,120,60,116,236,216,209,164,163,147,150,150,102,97,68,139,150,71,180,74, - 229,53,188,71,22,160,111,58,172,110,253,155,58,6,33,33,33,157,29,29,29,183,228,228,228,124,22,25,105,186,140,131,49,220,220,220,254,180,177,177, - 105,104,233,246,53,40,94,186,220,222,222,254,27,31,31,31,223,213,171,87,243,89,150,69,175,94,189,154,125,250,233,167,201,0,208,178,101,75,119,64, - 247,27,51,117,234,84,122,249,242,229,187,0,194,205,9,10,133,194,120,59,59,187,118,61,123,246,68,126,126,62,82,83,83,33,147,201,224,247,227,143, - 136,155,58,21,173,183,108,1,211,179,39,8,33,16,10,133,136,139,139,131,68,34,137,55,165,71,8,233,8,96,5,128,46,120,221,92,72,1,92,0, - 48,159,82,122,165,242,62,250,31,6,45,199,85,119,179,198,204,157,59,23,121,124,62,16,28,12,193,147,39,80,169,84,8,8,8,64,187,118,186,10, - 30,1,1,1,224,241,120,104,213,170,21,220,221,221,177,113,227,198,49,168,216,19,187,2,138,34,53,146,31,63,71,64,64,64,121,228,42,56,56,184, - 60,162,197,231,243,203,35,91,196,120,137,190,202,231,79,13,31,146,181,90,45,225,241,120,188,207,63,255,156,12,31,62,156,42,149,74,78,40,20,50, - 7,14,28,32,103,206,156,225,21,23,23,87,23,109,40,30,53,106,148,75,253,250,245,144,250,248,30,246,239,167,88,181,106,21,206,158,213,85,217,72, - 72,208,117,92,213,207,7,5,5,161,97,195,134,160,102,62,248,114,134,167,109,53,114,12,234,6,116,67,81,230,11,108,238,21,0,129,128,15,251,186, - 245,240,241,241,88,240,4,2,8,164,50,56,239,61,98,63,110,220,184,169,147,39,79,22,156,63,127,30,73,73,73,117,7,12,24,96,173,163,245,31, - 68,53,129,158,172,74,78,146,210,96,62,11,186,158,167,131,202,222,195,224,253,53,0,237,43,109,171,95,175,172,244,170,95,95,158,243,250,46,48,23, - 209,77,188,116,233,146,151,191,191,63,82,82,82,170,244,132,211,255,113,201,100,50,72,36,18,92,188,120,17,0,170,180,95,232,137,137,137,89,15,93, - 213,101,0,128,187,187,123,64,208,7,129,23,59,244,111,143,223,194,119,231,103,100,100,180,162,101,53,116,8,33,196,221,221,125,44,95,200,251,176,113, - 11,143,30,224,184,21,167,255,56,191,196,220,137,52,110,214,188,8,64,169,65,175,195,26,247,62,4,0,134,97,70,14,29,58,148,185,127,255,62,62, - 252,240,67,236,218,181,203,228,182,99,199,142,197,158,61,123,48,116,232,80,102,193,130,5,38,203,59,84,140,150,88,214,60,100,9,9,137,183,17,185, - 251,39,147,57,72,46,46,206,0,128,151,47,179,202,151,181,107,103,190,176,51,167,81,158,186,121,253,106,64,231,238,189,4,169,153,121,224,52,10,200, - 11,95,149,175,47,201,203,4,213,200,33,144,58,162,78,109,59,220,184,116,82,169,82,202,79,153,211,156,57,180,57,166,14,246,5,40,135,97,115,126, - 193,177,13,51,202,159,160,187,14,15,69,244,222,181,22,231,248,85,134,207,231,35,46,46,174,212,84,52,139,101,217,106,107,114,1,250,168,163,26,37, - 37,165,40,41,125,227,58,172,85,32,132,56,187,186,186,110,118,116,116,20,27,115,164,8,33,206,206,206,206,155,157,156,156,196,150,54,29,86,38,36, - 36,164,243,164,73,147,162,126,248,225,7,217,220,185,115,163,66,66,66,130,107,226,108,137,68,162,134,137,137,137,229,197,74,205,189,42,149,74,4,5, - 5,89,84,188,148,82,122,148,16,242,212,205,205,237,130,159,159,159,221,227,199,143,177,123,247,110,1,159,207,247,208,255,126,20,22,22,130,101,89,188, - 124,249,82,13,224,227,234,154,206,20,10,69,108,108,108,108,155,193,131,7,179,241,241,241,96,89,86,103,87,64,0,90,111,217,130,187,159,127,142,30, - 207,158,65,174,82,65,44,22,227,175,191,254,82,149,148,148,196,154,210,147,72,36,219,146,146,146,154,139,197,98,168,84,42,112,186,200,8,225,241,120, - 93,237,237,237,215,161,210,159,180,139,139,139,203,228,217,223,123,107,53,26,109,70,202,227,44,19,178,229,100,103,103,227,232,209,163,232,212,169,19,122, - 244,232,129,180,180,52,60,121,242,4,193,193,193,229,219,220,190,125,27,55,111,222,68,147,38,38,91,224,203,225,88,53,154,248,52,132,128,47,0,95, - 192,215,189,242,249,101,147,238,189,126,153,190,230,97,53,80,181,90,173,43,23,195,48,32,132,64,34,209,61,183,176,44,203,213,171,87,47,35,39,39, - 199,13,0,43,145,72,160,213,106,205,62,180,112,148,122,9,94,93,76,159,243,197,15,46,225,225,167,113,250,244,75,48,12,3,55,55,55,48,12,131, - 164,164,36,48,12,3,79,79,79,48,12,131,180,180,52,189,147,152,11,185,241,239,157,22,128,196,222,1,78,66,17,8,33,40,76,75,129,80,32,128, - 88,34,134,99,195,198,229,15,250,175,94,189,146,71,68,68,36,240,249,252,54,250,58,91,176,214,209,250,111,226,218,191,104,95,139,160,148,110,171,182, - 233,208,8,3,59,119,238,188,101,244,232,209,189,214,172,89,3,27,27,27,100,100,100,148,255,33,10,133,66,212,175,95,31,57,57,57,216,186,117,43, - 158,63,127,30,3,96,178,165,70,101,100,100,92,126,116,43,49,59,104,68,103,167,230,157,189,237,83,19,159,119,2,112,177,204,201,250,101,244,236,129, - 19,130,222,239,0,129,144,143,212,71,38,243,109,223,57,44,203,178,132,16,124,248,161,101,109,254,163,70,141,66,108,108,44,204,53,51,114,250,136,86, - 137,28,197,165,53,142,72,154,100,218,204,177,152,54,115,108,185,51,97,73,211,11,0,184,187,255,110,114,29,167,81,173,57,246,251,214,73,109,59,4, - 120,182,107,222,16,87,174,223,194,111,91,94,7,25,182,175,95,138,239,183,199,160,190,171,3,84,138,98,252,185,255,167,23,42,69,201,26,115,199,171, - 46,72,195,16,2,11,235,84,190,222,167,204,121,226,243,249,104,209,162,133,201,136,86,78,78,78,105,117,209,44,160,236,30,41,213,40,42,46,69,105, - 201,187,113,180,8,33,173,187,118,237,122,106,223,190,125,78,46,46,46,72,79,79,175,224,104,17,66,90,119,233,210,229,212,190,125,251,156,92,93,93, - 145,154,154,106,113,89,17,61,6,78,150,77,102,102,38,22,47,94,44,77,79,79,63,26,18,18,50,216,82,103,139,97,24,40,20,10,60,120,240,192, - 210,195,90,92,188,212,206,206,110,199,158,61,123,236,94,189,122,5,150,101,241,224,193,131,10,189,14,245,211,47,191,252,34,24,54,108,216,207,0,204, - 118,107,211,104,52,171,198,142,29,59,49,45,45,205,193,197,197,5,25,25,25,16,10,133,160,148,130,4,5,161,219,211,167,80,105,181,144,72,36,72, - 72,72,192,182,109,219,138,21,10,197,42,99,90,132,16,161,84,42,245,18,8,4,248,232,163,143,42,172,219,185,115,39,222,107,199,182,155,212,71,84, - 164,129,88,145,41,25,240,39,203,178,100,242,220,21,205,58,118,15,110,241,240,238,149,199,89,153,207,47,84,115,250,106,165,82,9,31,31,31,92,187, - 118,13,167,79,159,70,207,158,61,209,163,71,15,220,185,115,7,39,79,158,196,205,155,55,65,8,129,147,147,147,62,253,194,108,14,134,178,88,131,151, - 105,217,85,162,87,149,231,5,2,1,20,66,203,58,247,197,199,199,227,218,181,107,229,165,101,88,150,213,132,132,132,128,82,74,147,146,146,96,107,107, - 75,199,143,31,175,229,241,120,154,180,52,203,242,131,109,108,108,224,229,229,85,225,193,71,63,117,235,214,13,215,175,95,7,195,48,224,241,120,112,113, - 113,193,133,11,23,204,126,240,41,165,229,206,160,80,32,128,64,168,115,52,13,191,219,10,133,34,229,244,233,211,109,197,98,241,95,222,222,222,125,149, - 74,37,7,107,29,45,43,255,143,152,42,241,96,210,209,162,148,62,5,208,155,16,50,230,240,225,195,171,214,173,91,231,60,104,208,32,228,230,230,194, - 211,211,19,110,110,110,56,118,236,24,142,31,63,254,74,171,213,206,161,148,86,9,253,16,66,122,155,170,181,65,41,165,238,238,238,251,20,69,69,83, - 253,123,248,34,102,239,185,112,55,55,183,201,117,235,214,157,53,126,225,144,9,129,67,219,35,225,102,18,46,159,140,67,102,202,43,140,239,54,223,172, - 102,229,100,120,123,123,251,137,82,169,84,8,35,93,137,43,247,58,52,212,212,106,181,90,165,82,137,223,127,255,221,34,103,107,247,238,221,144,203,229, - 208,86,106,95,53,212,164,28,37,60,190,8,238,245,125,160,82,21,131,227,222,44,122,99,168,169,255,209,121,44,20,194,229,213,43,92,185,82,165,133, - 195,40,134,79,210,149,53,1,128,82,42,39,132,124,180,118,217,220,99,211,195,86,216,247,236,220,6,95,255,184,19,42,213,118,48,44,3,137,72,0, - 255,14,93,192,66,129,205,17,243,242,74,10,114,63,162,149,134,226,169,162,105,174,133,133,2,90,142,195,233,179,230,107,158,26,187,239,90,173,22,60, - 30,15,143,30,61,42,53,214,219,144,101,117,205,156,250,39,117,115,154,148,227,8,95,32,70,125,79,63,40,21,69,239,228,30,185,184,184,204,59,116, - 232,144,147,190,84,194,157,59,119,64,8,41,247,102,244,235,75,75,75,113,247,238,93,253,80,83,85,188,29,115,223,35,71,71,199,45,63,252,240,131, - 44,51,51,19,89,89,89,144,72,36,204,151,95,126,41,138,137,137,217,12,160,133,37,118,202,229,242,103,166,242,39,229,114,121,93,98,51,59,186,0, - 0,32,0,73,68,65,84,177,88,204,175,180,175,187,151,151,87,66,229,38,68,99,118,230,231,231,95,249,226,139,47,252,251,247,239,143,121,243,230,229, - 56,56,56,216,110,222,188,153,199,178,44,153,62,125,186,246,229,203,151,69,63,253,244,147,221,225,195,135,145,151,151,87,197,49,52,242,249,44,36,132, - 76,234,220,185,243,206,19,39,78,72,189,188,188,80,80,80,0,74,41,118,236,216,129,233,211,167,67,44,22,35,33,33,1,239,189,247,94,73,73,73, - 201,164,202,185,147,6,154,132,16,66,57,142,195,87,95,125,85,94,156,84,95,172,212,86,66,176,109,118,35,89,232,79,249,178,49,95,255,20,2,0, - 90,141,70,251,240,238,149,199,59,54,124,125,70,32,16,156,53,101,103,25,139,66,67,67,55,7,7,7,75,108,108,108,144,147,147,131,11,23,46,224, - 210,165,75,184,124,249,50,148,74,37,156,156,156,224,224,224,128,140,140,12,196,199,199,151,2,88,100,78,83,40,227,163,177,183,190,231,239,235,104,86, - 249,188,128,15,62,239,117,207,195,234,174,39,0,116,239,222,29,29,59,118,4,160,235,69,157,156,156,156,161,80,40,136,129,211,159,6,232,28,114,15, - 15,15,205,174,93,187,104,117,154,28,199,85,113,166,187,117,235,86,254,80,216,177,99,71,176,44,139,91,183,110,25,77,77,49,212,20,105,213,236,229, - 159,54,226,230,238,157,176,175,91,15,19,162,254,6,195,48,144,231,188,194,225,241,195,32,181,179,67,253,46,175,91,178,229,114,121,63,66,72,115,0, - 217,148,210,23,198,52,223,21,86,205,119,95,75,235,63,149,202,57,90,134,84,219,4,64,41,253,141,16,242,231,167,159,126,26,209,186,117,235,79,87, - 175,94,77,4,2,1,150,44,89,66,211,211,211,127,5,48,143,154,25,218,164,26,237,95,255,62,120,113,202,184,176,161,100,246,154,241,93,175,71,223, - 141,111,217,217,11,45,59,123,225,122,204,125,108,88,184,123,151,86,173,253,42,35,35,35,165,26,41,69,239,46,222,149,147,225,157,98,207,68,59,213, - 180,215,33,199,113,251,118,239,222,61,243,253,247,223,103,174,94,189,90,37,39,139,150,13,187,195,113,28,78,157,58,5,149,74,133,95,127,253,149,227, - 56,206,116,29,45,208,35,107,215,68,140,251,53,242,136,80,40,32,184,116,246,0,242,115,205,71,233,4,2,62,126,217,113,80,37,16,240,31,26,91, - 175,82,169,82,163,163,163,93,251,105,181,124,134,97,170,56,80,166,216,183,111,159,154,227,184,100,115,219,80,74,47,18,194,31,252,221,188,143,119,7, - 127,240,169,107,231,206,93,249,181,93,92,65,8,193,203,204,151,72,184,123,85,253,231,129,159,51,139,75,10,45,26,130,231,227,31,254,46,207,201,2, - 128,65,211,215,149,231,103,1,192,224,241,95,32,168,83,115,16,75,66,79,101,104,181,90,78,163,209,64,38,147,65,163,209,24,45,241,96,103,103,39, - 145,203,229,165,84,87,136,209,252,19,51,240,206,239,145,86,171,245,205,205,205,69,113,113,49,46,93,186,68,151,45,91,150,149,149,149,85,158,180,169, - 86,171,125,115,114,114,80,84,84,132,139,23,47,210,136,136,136,172,236,236,108,115,73,157,85,200,201,201,249,108,238,220,185,81,139,23,47,150,74,36, - 18,70,173,86,107,66,67,67,75,21,10,133,101,197,216,0,164,167,167,87,41,230,170,167,73,147,38,137,137,137,137,77,181,90,173,225,24,136,2,185, - 92,238,213,185,115,103,75,154,16,67,183,111,223,142,131,7,15,118,40,40,40,24,155,156,156,188,19,64,7,30,143,135,91,183,110,61,144,203,229,163, - 223,127,255,253,29,185,185,185,87,0,132,90,98,47,165,244,4,33,228,35,95,95,223,237,223,124,243,141,77,143,30,61,120,238,238,238,104,223,190,61, - 18,18,18,16,21,21,165,222,180,105,83,113,73,73,201,199,148,82,115,205,218,20,0,209,104,52,16,10,133,229,147,72,36,130,64,32,64,97,41,197, - 39,63,62,41,213,64,82,186,106,201,164,40,10,144,23,169,79,94,189,124,145,122,133,16,114,54,61,61,221,232,16,60,77,154,52,17,202,229,242,54, - 110,110,110,60,66,200,26,149,74,53,97,198,140,25,117,150,47,95,14,111,111,111,188,122,245,10,50,153,12,94,94,94,200,202,202,194,213,171,87,181, - 37,37,37,91,0,44,165,148,154,109,142,204,203,42,64,61,87,143,10,145,79,74,41,168,6,80,107,181,208,170,40,148,68,13,62,95,13,129,192,72, - 69,221,74,232,29,205,92,55,55,112,119,239,226,242,229,203,160,148,154,140,170,249,248,248,84,171,201,48,12,180,90,109,21,71,235,202,149,43,96,89, - 22,93,187,118,197,205,155,55,203,35,90,213,229,37,242,0,200,115,179,81,148,241,28,98,169,4,142,13,27,235,154,16,249,60,40,178,50,193,106,84, - 80,23,84,76,109,161,148,222,51,174,102,197,202,63,15,242,6,67,240,24,110,156,7,96,50,33,100,103,96,96,224,49,74,41,31,64,48,165,244,220, - 219,24,149,145,145,113,195,221,221,125,129,107,61,135,136,1,99,187,194,187,141,39,180,26,45,46,28,191,133,95,151,31,222,147,150,154,54,158,90,208, - 166,196,113,220,153,46,237,188,25,24,212,234,118,119,119,231,222,164,215,97,126,126,254,226,57,115,230,96,222,188,121,53,238,117,104,106,155,59,15,94, - 78,110,237,235,92,111,240,128,110,253,64,24,170,84,154,110,62,36,4,229,149,75,5,2,254,195,171,183,211,91,25,219,46,43,43,171,223,132,9,19, - 78,241,120,60,139,147,152,1,221,32,179,153,153,153,189,170,219,142,82,245,5,66,136,215,209,61,91,63,63,113,112,123,63,142,211,54,33,0,88,158, - 224,177,90,165,250,75,81,90,176,186,114,36,203,20,43,39,7,32,116,237,73,108,156,55,24,51,34,246,226,231,175,62,193,130,31,119,99,197,188,80, - 44,91,247,15,124,29,250,17,70,140,153,192,81,194,24,29,30,198,24,44,203,158,216,186,117,235,184,79,62,249,164,188,211,130,190,121,65,63,169,213, - 234,82,142,227,176,101,203,22,14,192,9,115,122,21,239,17,161,230,242,165,44,189,71,5,5,5,31,7,4,4,236,0,32,162,148,62,202,205,205,253, - 140,82,90,62,52,84,81,81,209,199,157,59,119,222,65,41,21,17,66,170,172,183,132,178,82,15,193,233,233,233,71,191,252,242,75,81,104,104,104,233, - 181,107,215,134,212,52,33,222,12,172,153,102,197,106,155,16,203,190,191,229,195,234,16,66,150,119,232,208,193,112,80,233,7,0,170,29,224,220,136,238, - 41,66,72,243,175,190,250,234,115,177,88,28,84,82,82,210,12,0,100,50,89,130,66,161,56,83,90,90,186,186,236,119,203,156,134,82,42,149,38,104, - 52,154,22,206,206,206,186,30,181,101,206,22,0,252,113,93,123,157,82,77,141,19,169,143,31,63,222,192,193,193,161,47,33,100,4,165,212,167,176,176, - 80,241,229,151,95,94,58,120,240,96,158,167,167,231,128,224,224,96,226,232,232,136,107,215,174,209,236,236,236,3,0,22,90,210,211,154,227,184,228,149, - 43,107,54,118,97,117,15,85,42,149,234,197,241,227,199,107,247,127,249,146,199,113,28,6,15,30,92,190,206,152,3,244,240,225,67,40,20,138,106,139, - 57,230,229,229,161,67,135,14,21,30,80,245,83,114,114,50,28,29,29,43,28,199,220,51,150,74,165,164,98,169,12,1,19,38,65,98,239,160,75,244, - 39,4,146,90,118,104,210,179,175,46,141,128,123,163,161,56,173,88,121,167,152,138,104,145,127,74,247,103,189,184,133,161,69,119,119,247,15,197,50,209, - 52,207,102,110,173,210,159,188,188,95,152,95,178,43,35,35,99,43,165,180,202,183,199,82,205,154,20,44,253,79,9,171,254,39,106,190,174,163,165,5, - 165,90,80,142,130,82,14,28,167,213,13,120,77,57,80,173,150,16,130,243,138,146,124,147,149,193,43,219,73,8,113,168,93,187,246,82,74,105,127,150, - 101,25,195,31,106,195,247,101,145,172,19,89,89,89,95,87,142,188,254,39,94,207,253,251,247,27,117,254,67,66,66,58,139,68,162,205,10,133,98,138, - 57,39,107,196,136,17,218,154,216,233,238,238,126,70,38,147,25,77,40,46,46,46,78,73,79,79,239,107,204,206,119,133,165,154,250,104,168,185,222,107, - 198,52,223,164,215,97,117,154,13,26,52,16,169,84,170,182,0,154,1,176,7,144,163,86,171,79,100,101,101,101,18,66,218,1,248,170,108,183,111,41, - 165,215,45,209,124,87,24,249,30,73,106,215,174,189,157,97,152,106,7,60,7,0,141,70,163,204,201,201,25,103,248,64,80,65,147,16,86,44,16,92, - 5,195,212,53,88,143,234,222,131,210,180,226,210,255,99,239,188,227,162,56,183,62,254,123,102,123,163,45,125,105,10,136,130,98,33,54,236,189,247,40, - 198,216,99,98,114,53,106,212,68,52,26,107,212,196,94,146,168,177,27,187,24,21,187,162,38,209,88,177,160,216,104,130,128,176,212,5,182,239,206,243, - 254,65,9,34,101,49,201,123,239,205,221,239,231,179,238,204,236,204,111,206,204,226,238,217,243,156,231,28,77,75,148,124,230,151,106,18,66,36,182,82, - 105,90,203,160,6,148,207,231,131,50,12,213,113,249,44,33,4,12,165,16,153,13,12,64,160,214,106,241,32,241,197,35,165,82,89,101,29,180,255,198, - 255,239,255,107,154,255,84,44,138,104,253,221,164,165,165,29,0,80,117,134,246,91,80,85,229,119,43,255,191,20,229,164,255,45,239,67,137,211,84,101, - 147,232,127,42,165,142,82,37,219,127,5,96,81,97,206,218,96,97,25,135,127,59,150,56,88,85,28,119,3,22,20,41,173,13,73,73,73,58,0,215, - 74,30,21,207,119,27,64,255,55,14,250,55,65,41,213,0,248,235,170,125,82,106,214,22,55,255,253,139,228,168,154,16,162,56,127,243,118,149,117,182, - 202,241,151,182,77,177,98,229,175,226,63,194,209,178,98,197,138,21,43,86,42,131,82,170,254,119,219,96,197,202,159,129,0,232,86,217,11,181,9,9, - 18,66,42,213,168,142,154,244,173,154,86,77,171,166,85,211,170,105,213,180,106,254,243,52,255,137,84,55,235,240,63,34,71,203,170,105,213,180,106,90, - 53,173,154,86,77,171,230,255,182,230,127,51,21,103,28,2,181,156,117,104,197,138,21,43,86,172,88,177,98,165,106,170,138,104,213,220,155,164,4,153, - 91,80,144,115,157,166,59,229,94,77,238,203,189,154,220,119,174,211,116,167,204,45,232,47,79,190,253,111,128,16,34,38,132,188,207,227,241,206,187,187, - 187,171,8,33,149,182,222,249,111,135,16,98,75,8,25,74,8,89,68,8,25,76,8,145,252,149,250,157,8,225,190,71,200,164,49,132,36,143,33,36, - 249,61,66,38,117,34,228,31,231,252,47,156,170,8,253,245,204,200,211,11,167,42,66,43,125,125,166,194,241,198,249,176,117,203,38,123,200,43,123,189, - 182,16,66,108,92,93,93,183,184,185,185,37,185,186,186,190,112,117,117,221,78,8,177,251,43,180,173,88,177,98,197,202,155,84,229,100,1,37,17,173, - 147,39,79,118,4,112,25,64,167,190,125,251,94,169,184,147,220,167,241,132,160,192,6,159,47,89,240,37,113,118,114,16,27,141,102,67,202,203,244,134, - 243,151,44,59,44,247,105,188,58,231,197,131,173,181,53,138,16,66,56,28,206,112,161,80,216,15,127,204,150,138,213,233,116,145,102,179,249,128,165,179, - 136,220,220,220,126,225,112,56,117,106,115,110,179,217,156,252,234,213,171,170,171,150,86,3,33,100,152,183,183,247,246,142,29,59,74,90,182,108,9,129, - 64,128,121,243,230,205,0,176,198,82,13,185,220,223,198,32,20,77,227,10,4,221,169,81,31,76,65,1,70,24,195,154,116,23,249,58,221,234,156,156, - 184,130,154,85,0,66,200,28,0,99,81,60,29,125,43,165,180,118,69,118,42,48,54,132,24,141,230,226,191,9,62,23,102,59,59,187,203,95,126,249, - 37,183,95,191,126,216,186,117,107,187,45,91,182,124,68,8,185,8,224,56,165,52,238,207,156,11,0,92,129,137,109,218,181,91,55,102,198,12,142,230, - 151,95,176,110,251,246,181,80,169,0,224,187,218,232,16,66,8,159,143,161,78,78,188,126,148,34,132,0,132,0,119,149,217,236,41,131,193,124,192,146, - 90,108,213,104,191,143,215,167,227,239,173,173,70,126,28,157,43,236,31,212,62,63,238,210,92,0,189,43,190,110,210,138,198,80,142,87,63,13,141,78, - 1,176,234,109,109,45,177,87,226,236,236,124,255,216,177,99,158,45,91,182,228,2,192,237,219,183,71,247,235,215,175,11,33,36,152,82,170,250,51,250, - 127,194,46,17,151,97,38,9,120,188,238,102,179,185,49,0,112,56,156,7,122,163,241,188,137,101,191,179,180,38,155,21,43,86,254,185,212,228,139,252, - 39,83,49,71,171,252,122,105,244,224,114,223,190,125,201,201,147,39,41,254,168,37,3,0,144,185,6,54,108,212,40,104,198,153,163,187,188,242,115,242, - 180,27,86,237,142,46,228,240,139,234,7,5,8,54,172,89,97,63,105,234,244,105,50,215,192,27,133,25,143,31,213,194,32,111,177,88,28,177,114,229, - 202,224,206,157,59,243,92,92,92,144,145,145,129,216,216,216,224,168,168,168,65,187,118,237,154,65,8,25,66,41,173,169,34,60,0,4,92,220,189,221, - 69,42,119,132,217,104,132,162,73,72,89,161,189,231,81,231,96,50,24,192,26,141,8,234,55,8,64,113,113,188,160,160,32,203,154,2,190,105,183,162, - 81,163,70,123,150,46,93,202,215,233,116,184,113,227,6,46,93,186,196,166,167,167,47,183,84,67,230,90,191,51,35,150,30,24,62,242,67,187,129,253, - 124,121,222,174,206,0,36,120,146,104,106,115,250,92,84,139,163,7,118,252,75,230,90,127,120,97,198,211,75,213,233,200,229,242,214,132,144,175,75,43, - 68,19,66,190,173,91,183,238,87,229,247,169,216,55,143,82,10,46,151,155,81,80,80,48,60,43,43,43,186,162,166,209,12,238,222,189,197,126,196,220, - 73,239,115,126,251,237,55,105,195,134,13,117,0,176,98,197,10,44,90,180,72,112,246,236,217,62,187,119,239,238,67,8,89,75,41,61,110,233,117,87, - 6,31,248,98,204,140,25,28,89,82,18,100,247,238,97,164,74,197,253,6,248,2,181,112,180,8,33,190,110,110,188,195,51,166,143,11,242,243,111,205, - 231,243,157,138,155,120,235,179,234,39,39,71,15,93,254,205,150,112,66,200,187,148,82,139,42,214,146,226,136,218,66,0,34,0,115,1,204,83,42,149, - 1,102,179,25,110,110,110,243,8,33,63,3,88,226,236,236,76,149,74,229,44,74,105,149,189,122,22,78,85,132,170,226,232,220,87,196,175,87,131,119, - 198,224,21,57,211,107,122,111,247,211,182,254,100,201,252,117,105,191,3,64,111,127,127,27,191,64,233,44,153,109,99,185,42,245,194,172,222,254,254,63, - 158,142,179,204,209,174,96,55,1,0,133,66,177,98,247,238,221,94,173,90,181,42,251,27,111,214,172,25,103,197,138,21,30,159,125,246,217,90,0,227, - 44,212,171,239,236,236,124,214,108,54,235,178,179,179,235,151,110,119,105,58,164,141,163,141,180,171,50,183,224,151,172,135,63,95,177,80,171,165,136,207, - 63,114,124,207,58,247,102,173,66,25,153,147,11,180,169,105,40,52,26,186,93,186,122,189,211,71,147,190,152,90,242,30,85,223,135,201,138,21,43,255, - 116,170,244,69,254,155,41,27,166,41,185,176,55,16,10,5,225,243,191,156,69,242,178,243,52,186,130,66,189,73,171,213,48,60,86,123,63,54,33,147, - 225,114,242,166,79,153,98,51,107,206,151,225,0,70,86,118,124,69,8,33,222,77,155,54,189,25,17,17,225,34,151,203,145,159,159,143,236,236,108,220, - 188,121,19,148,82,12,25,50,68,216,170,69,139,144,185,243,230,253,78,8,9,181,196,217,146,202,157,176,162,93,113,47,218,175,146,178,75,207,131,45, - 195,250,149,237,179,232,101,113,183,12,145,72,84,214,144,248,45,8,237,218,181,43,31,0,62,248,224,3,85,65,65,193,50,0,123,41,165,22,117,90, - 149,185,214,239,236,228,174,136,252,97,211,10,113,99,255,0,24,140,38,188,120,149,6,46,207,30,158,158,124,140,27,217,157,215,161,141,220,233,235,197, - 91,78,74,157,235,15,46,82,62,61,91,149,150,189,189,253,174,3,7,14,224,224,193,131,0,128,167,79,159,34,32,32,64,90,147,13,49,49,49,126, - 3,6,12,216,15,160,94,77,251,86,44,140,47,20,10,209,182,109,91,52,108,216,16,199,142,29,235,4,224,79,57,90,0,160,249,229,23,200,238,221, - 3,174,92,169,245,177,132,16,223,119,222,241,185,126,234,228,30,167,147,167,98,177,106,213,118,196,197,21,7,218,252,252,252,240,254,136,97,188,7,15, - 174,53,26,58,244,253,107,132,144,118,148,210,167,22,200,46,252,241,199,31,231,212,173,91,23,67,135,14,29,214,168,81,35,55,91,91,91,108,222,188, - 25,238,238,238,126,122,189,254,249,177,99,199,20,175,94,189,194,148,41,83,0,96,70,85,66,157,122,118,154,43,236,31,212,190,193,59,99,32,179,117, - 199,143,251,14,224,201,157,93,237,117,134,216,185,203,38,123,140,210,80,225,88,207,0,155,240,58,205,59,58,214,107,52,0,62,239,68,59,105,205,191, - 38,204,155,228,183,156,43,210,238,154,191,50,45,251,141,107,30,118,152,19,172,122,44,143,57,143,108,74,231,179,37,14,86,217,7,146,153,98,64,135, - 14,29,202,222,184,164,164,36,232,116,58,4,5,5,49,122,189,222,162,154,88,132,144,250,61,122,244,248,237,212,169,83,142,245,235,215,127,173,37,140, - 155,163,125,207,43,17,107,167,124,189,238,167,64,151,134,131,243,50,31,29,125,80,131,86,203,182,173,223,185,112,58,98,143,140,20,166,64,96,159,5, - 176,217,136,223,191,13,68,34,199,240,79,166,115,59,119,237,226,209,189,247,187,23,8,33,93,41,165,183,44,177,209,138,21,43,255,76,170,242,69,254, - 11,56,89,33,33,254,100,233,66,153,163,85,206,139,124,13,150,178,77,220,92,28,197,107,87,238,188,197,49,232,245,18,123,91,131,157,173,29,133,141, - 45,199,96,52,20,122,7,212,229,179,148,173,180,5,73,197,25,9,132,16,34,22,139,35,142,31,63,238,194,227,241,192,178,44,156,157,157,145,152,152, - 136,188,188,60,20,20,20,32,46,54,22,117,189,189,176,32,124,150,251,148,89,225,17,132,144,230,229,135,17,43,155,229,96,54,190,222,55,154,148,180, - 96,169,72,233,182,138,175,213,98,230,68,98,114,114,50,100,50,25,130,131,131,101,87,175,94,253,181,42,39,171,162,166,92,238,111,195,149,137,15,126, - 255,195,60,177,193,24,131,71,241,57,104,80,183,61,92,29,189,145,150,163,199,245,155,199,17,115,127,47,252,61,188,49,249,147,46,162,229,43,14,31, - 112,112,240,245,206,205,77,80,85,166,169,82,169,100,190,190,190,240,246,46,238,123,102,54,155,241,232,209,35,152,205,230,178,245,242,207,59,143,68,193, - 164,122,129,49,163,71,35,59,59,91,86,153,38,143,3,211,244,143,222,231,138,121,128,64,42,215,23,22,22,150,69,7,13,6,3,238,222,189,139,94, - 189,122,181,236,219,183,111,10,128,42,191,96,45,189,159,6,224,219,117,59,118,172,31,153,159,207,0,192,86,66,88,3,165,223,90,162,73,8,33,46, - 46,188,35,103,78,239,118,226,48,143,33,183,251,6,55,111,190,128,193,80,108,111,118,118,38,62,157,164,2,159,103,131,99,199,126,114,12,10,106,119, - 164,100,232,140,173,74,179,4,209,233,211,167,241,233,167,159,226,209,163,71,138,210,30,109,98,177,24,43,87,174,228,4,5,5,41,164,82,41,206,156, - 57,131,140,140,140,55,254,200,202,107,94,62,123,121,73,126,220,165,185,175,200,153,94,63,238,59,128,15,71,12,135,27,141,255,213,206,159,44,233,209, - 191,237,87,148,227,213,79,106,211,196,33,32,184,63,248,2,25,38,127,177,8,79,99,78,56,168,11,238,79,34,230,20,47,148,244,254,43,175,73,15, - 13,53,175,223,119,237,157,243,222,183,124,20,239,76,188,1,224,62,202,28,45,63,46,97,204,118,37,199,224,249,243,231,136,139,139,3,151,203,133,70, - 163,129,201,100,170,212,78,15,15,143,137,38,147,233,43,0,48,24,12,59,221,221,221,199,239,217,179,199,177,188,163,93,26,201,202,201,83,229,94,187, - 245,240,201,244,137,67,59,253,114,61,38,197,190,233,160,228,188,123,63,231,87,241,30,137,196,2,193,145,51,71,127,146,25,19,162,32,13,234,4,158, - 44,0,102,99,42,212,185,69,40,136,75,135,238,135,141,104,54,233,51,156,248,249,176,172,81,227,230,135,8,33,1,148,210,178,254,71,127,199,172,38, - 171,166,85,211,170,249,159,169,9,84,237,139,160,184,16,174,107,201,114,54,138,83,102,156,0,100,161,184,29,152,43,0,61,0,65,185,99,42,174,151, - 223,183,226,122,249,229,236,146,101,151,146,231,91,0,114,170,179,155,82,154,14,224,237,154,74,19,194,168,76,44,43,20,56,59,235,198,135,117,11,62, - 119,225,246,93,169,163,29,183,71,231,119,58,222,124,16,247,59,3,198,72,8,99,81,222,7,135,195,25,190,118,237,218,198,182,182,182,96,89,22,118, - 118,118,80,42,149,208,235,245,200,207,207,135,174,64,5,67,129,10,247,82,146,208,182,99,39,188,219,171,71,208,79,63,31,31,14,96,127,117,186,138, - 38,33,101,145,172,69,117,28,203,182,47,76,201,43,115,186,190,9,9,0,95,38,67,247,233,225,150,152,90,41,148,210,104,129,64,112,122,200,144,33, - 189,103,206,156,201,164,167,167,159,33,132,180,165,148,214,56,108,106,16,138,166,253,107,90,63,7,7,25,197,161,243,199,209,33,100,4,36,2,14,178, - 85,6,16,2,196,62,140,0,33,114,220,127,154,142,246,205,108,209,163,103,144,236,231,195,177,51,241,71,126,80,69,72,110,110,46,50,51,51,97,52, - 26,97,52,26,49,116,216,48,236,222,181,11,69,69,69,208,104,52,208,235,245,48,155,205,96,24,6,231,35,15,33,37,33,22,109,66,67,129,42,66, - 178,59,163,41,143,16,114,253,201,147,39,136,141,141,197,203,151,47,33,18,137,224,230,230,134,69,139,22,65,167,211,65,175,215,243,46,95,190,236,141, - 226,246,34,127,138,56,96,75,130,201,52,183,247,209,163,46,87,143,30,101,127,63,126,252,165,168,176,112,179,37,199,242,249,24,186,226,219,79,26,72, - 165,82,188,76,94,139,192,64,62,102,124,230,136,101,223,100,1,0,166,124,234,137,22,205,157,160,202,59,12,39,151,57,88,191,126,170,255,216,177,171, - 71,3,216,89,131,244,220,227,199,143,191,27,16,16,224,17,29,29,77,4,2,1,196,98,49,196,98,49,68,34,17,50,51,51,145,152,152,72,87,172, - 88,145,138,226,161,197,42,41,25,30,236,61,189,183,251,233,39,119,118,181,247,224,36,220,123,119,114,187,164,251,215,163,11,206,157,191,186,216,164,21, - 165,228,189,188,48,203,183,69,180,211,164,207,23,98,227,138,249,120,114,227,151,28,87,111,213,119,98,162,219,217,170,251,155,154,157,58,45,228,78,154, - 23,102,154,56,246,93,251,19,174,215,38,158,226,18,229,171,172,59,43,145,24,173,17,214,11,25,85,223,143,209,71,69,69,137,59,116,232,0,173,182, - 56,237,137,195,225,96,207,158,61,172,201,100,170,116,56,218,96,48,124,149,154,154,234,174,209,104,208,171,87,175,41,43,87,174,148,150,246,251,51,155, - 139,11,209,151,70,178,150,172,217,125,118,218,87,223,93,58,187,255,27,197,146,240,241,157,70,78,254,250,18,170,232,35,201,101,152,73,39,142,110,119, - 19,57,24,33,150,247,128,54,67,131,39,91,62,132,90,165,69,139,37,11,1,8,160,55,50,216,220,127,40,120,142,10,204,159,48,94,241,229,230,31, - 63,1,176,182,134,247,200,138,21,43,255,123,184,18,66,34,1,32,60,60,124,206,178,101,203,30,18,66,34,41,165,253,0,160,116,185,116,31,0,168, - 108,189,116,223,138,235,21,151,103,207,158,221,104,249,242,229,75,67,67,67,247,95,187,118,45,1,53,56,90,213,229,104,49,64,177,7,89,254,185,60, - 44,203,254,242,60,62,73,221,179,123,107,143,19,151,31,220,30,55,174,111,215,176,1,237,123,36,164,100,62,246,247,113,115,138,121,120,207,150,101,217, - 95,44,185,75,66,161,176,95,151,46,93,184,185,185,185,144,72,36,80,42,149,72,77,77,133,193,96,128,54,63,15,186,252,60,104,243,114,97,200,207, - 69,220,237,155,104,226,239,39,44,73,150,175,150,210,168,75,197,72,85,249,200,150,192,198,6,66,27,27,144,90,14,27,18,66,6,58,56,56,92,39, - 132,204,5,0,131,193,48,105,214,172,89,89,44,203,226,235,175,191,182,149,201,100,135,8,33,194,154,116,108,156,57,253,66,155,5,51,143,19,239,163, - 93,211,49,168,239,219,7,137,25,26,100,21,24,144,153,103,64,139,14,27,80,167,233,66,120,53,91,134,216,23,57,80,120,4,48,224,10,171,109,254, - 156,146,146,242,218,250,254,125,251,160,86,171,225,239,239,143,17,35,70,96,214,172,89,24,49,98,4,20,10,5,70,134,13,192,252,249,243,241,234,213, - 171,154,76,213,213,175,95,95,231,227,227,163,243,241,241,209,25,12,6,20,22,22,34,47,175,184,63,47,143,199,163,145,145,145,2,137,68,18,74,8, - 121,183,38,177,242,184,186,186,206,118,119,119,191,239,234,234,250,80,36,18,157,186,75,200,99,93,157,58,174,109,7,13,34,13,195,194,56,201,18,9, - 185,2,200,106,20,2,224,36,231,245,237,220,165,183,32,47,119,59,128,226,32,213,248,113,206,248,237,74,35,92,253,181,57,62,157,228,15,194,136,64, - 24,1,212,69,81,104,213,50,148,111,111,79,170,253,91,42,73,124,191,219,182,109,91,197,228,201,147,137,80,40,196,148,41,83,12,19,38,76,120,54, - 98,196,136,103,23,47,94,52,251,248,248,192,203,203,139,120,121,121,185,3,184,91,114,76,181,216,250,147,37,58,67,236,175,246,1,210,4,51,156,218, - 20,26,133,67,231,175,76,203,94,252,93,252,170,196,39,106,191,39,55,126,201,126,22,115,130,77,188,117,57,43,237,89,129,223,226,239,226,87,205,222, - 152,90,233,127,234,43,87,192,70,68,94,49,168,139,212,220,65,253,59,171,39,126,48,188,190,92,214,104,15,60,122,52,173,227,237,57,114,254,210,245, - 134,9,159,76,51,108,221,182,157,22,20,20,64,165,82,97,253,250,245,166,19,39,78,164,154,205,230,105,85,152,200,1,0,163,209,136,137,19,39,74, - 109,109,109,145,146,146,82,22,17,5,128,116,101,246,131,171,183,98,30,79,255,120,88,199,34,157,78,119,246,242,237,216,134,1,62,158,132,208,42,39, - 162,8,120,188,238,205,91,181,226,80,154,7,194,245,70,220,174,21,80,189,202,129,42,51,7,28,158,20,38,8,97,100,5,176,111,210,18,79,111,69, - 195,195,217,149,43,228,241,172,173,179,172,88,249,31,165,58,95,164,20,74,105,191,229,203,151,47,173,238,245,114,207,250,10,235,101,142,84,69,39,172, - 252,50,0,44,95,190,124,41,165,180,223,181,107,215,246,161,22,237,157,42,171,167,85,163,215,193,209,234,151,205,156,53,23,118,182,98,187,86,33,1, - 110,63,159,185,124,231,151,107,183,99,235,120,58,57,83,163,222,225,219,213,27,61,137,90,99,105,50,120,144,147,147,19,12,6,3,158,63,127,142,151, - 47,95,194,96,48,192,84,84,4,93,94,30,180,185,185,48,23,21,128,111,54,67,163,204,132,163,68,4,88,216,191,173,178,225,194,242,67,133,34,91, - 91,8,109,108,193,240,120,149,14,43,86,161,249,78,203,150,45,15,198,196,196,180,234,214,173,219,98,66,136,29,165,244,69,106,106,106,215,121,243,230, - 233,92,93,93,49,113,226,196,6,0,198,212,164,37,20,232,131,124,220,26,160,190,223,24,212,241,234,130,188,34,35,148,42,35,50,243,12,216,188,33, - 20,71,182,182,196,111,71,218,35,230,108,119,228,25,221,32,83,12,4,53,235,27,85,167,121,254,252,121,44,90,180,8,139,23,47,198,215,95,127,141, - 197,139,23,35,53,53,21,193,193,193,72,78,78,198,233,211,167,145,158,158,14,39,39,39,220,188,121,19,107,214,172,193,111,191,253,86,227,117,87,55, - 225,147,203,229,18,127,127,127,18,17,17,33,145,72,36,107,9,169,222,121,41,143,201,100,26,155,62,104,80,227,12,185,188,97,72,72,72,239,41,83, - 166,248,181,109,219,182,236,117,95,95,95,111,177,88,252,138,16,178,149,16,210,172,58,45,22,8,113,118,14,134,94,247,24,0,64,8,15,132,136,208, - 165,123,44,218,182,191,13,131,145,15,134,8,193,48,34,152,76,217,112,112,80,128,82,18,92,131,137,243,148,74,101,192,133,11,23,152,196,196,68,136, - 68,34,0,72,90,176,96,193,198,85,171,86,61,114,116,116,52,71,70,70,226,231,159,127,70,191,126,253,56,19,38,76,8,240,242,242,218,84,211,117, - 207,95,151,246,251,222,213,167,223,227,25,29,154,137,196,117,234,162,72,54,112,82,39,103,41,0,156,142,139,43,112,241,86,45,47,42,184,159,108,239, - 89,248,77,77,137,240,148,206,103,239,60,123,124,125,239,209,51,249,153,25,185,188,144,198,141,52,203,22,125,206,175,83,183,222,183,243,103,125,236,150, - 170,18,229,117,159,114,250,113,196,153,155,133,163,198,125,104,250,224,163,201,218,211,103,206,31,101,89,182,113,85,51,14,89,150,69,122,122,58,30,62, - 124,136,248,248,120,40,149,74,100,101,101,161,160,160,160,108,184,81,82,160,58,185,113,199,137,123,82,177,88,210,170,113,128,247,141,232,71,153,82,177, - 88,18,80,215,187,62,33,11,43,253,28,49,155,205,141,69,18,49,0,130,188,152,95,80,152,91,136,194,188,66,20,228,20,66,103,224,64,171,99,160, - 209,51,240,233,216,3,133,69,90,20,102,231,131,53,155,155,214,116,63,173,88,177,242,191,11,33,36,50,60,60,124,142,133,187,91,60,188,89,209,241, - 10,15,15,159,67,8,137,156,61,123,118,35,88,144,211,92,98,219,71,229,159,75,169,177,188,67,86,214,211,66,91,231,134,67,62,251,226,171,211,251, - 182,125,231,172,215,107,146,157,28,100,102,27,137,208,97,194,196,175,81,80,152,59,184,208,194,114,4,0,144,155,155,139,132,132,4,136,197,98,240,121, - 60,152,53,26,152,53,69,208,228,102,131,49,232,192,55,155,33,151,136,225,163,112,67,29,87,55,139,52,159,71,157,43,75,124,47,63,92,184,162,101, - 16,4,82,25,4,54,50,252,43,242,50,0,128,207,231,3,243,22,215,168,73,8,113,242,240,240,56,190,119,239,94,190,82,169,196,221,187,119,239,81, - 74,243,9,33,54,0,216,216,216,216,11,49,49,49,253,2,2,2,0,192,191,38,61,85,22,99,54,154,40,82,94,37,33,241,101,52,228,118,190,224, - 73,234,35,51,207,0,161,216,23,70,221,31,163,143,90,213,11,104,12,150,77,140,212,235,245,48,153,76,48,153,76,208,235,245,248,232,163,143,112,245, - 218,53,236,255,249,34,18,226,158,162,65,93,55,140,30,61,10,45,91,182,196,181,107,111,244,184,125,141,177,33,196,248,101,7,112,87,247,102,32,144, - 57,234,90,207,58,123,163,138,123,131,58,117,234,48,231,207,159,119,238,222,189,251,38,66,136,158,82,122,190,58,109,66,200,170,126,253,250,213,123,90, - 84,132,135,143,31,163,219,130,5,0,128,147,39,203,242,5,161,215,235,49,125,250,116,193,163,71,143,62,184,125,251,246,7,132,144,213,148,210,202,147, - 205,41,112,242,228,239,248,248,227,71,80,42,139,243,181,15,236,251,195,47,77,76,48,160,87,223,226,17,45,123,123,123,172,94,93,147,143,85,140,217, - 108,198,150,45,91,202,134,11,1,128,203,229,182,157,62,125,250,144,202,246,175,87,175,30,191,38,205,233,195,60,69,119,95,136,39,217,213,171,211,200, - 214,169,9,178,141,209,193,209,169,233,159,78,31,230,185,118,245,161,151,90,49,209,237,36,230,20,47,174,72,187,203,18,27,227,78,175,215,219,215,25, - 183,235,149,82,245,229,228,15,223,119,180,181,119,41,218,186,113,153,3,195,97,232,241,219,134,188,70,126,142,246,3,91,175,43,252,248,179,121,209,122, - 83,202,100,164,28,127,90,93,137,11,179,217,140,180,180,52,40,149,74,36,39,39,35,43,171,120,248,53,43,43,235,141,153,171,181,129,16,2,77,114, - 50,94,28,221,138,58,163,70,161,197,226,69,48,179,92,104,212,102,172,110,211,21,185,249,26,232,88,2,197,59,109,240,225,169,95,193,80,51,176,185, - 86,149,61,172,88,177,242,15,194,146,242,14,165,14,209,178,101,203,44,254,145,111,41,229,157,173,101,203,150,61,92,182,108,153,197,231,170,177,142,22, - 106,152,82,169,82,62,138,119,244,105,146,86,164,41,148,184,184,58,233,101,34,33,155,175,42,226,68,63,184,103,40,76,127,254,164,22,215,17,27,19, - 19,19,156,150,150,134,228,23,47,96,210,20,129,209,233,65,181,106,116,107,215,6,34,0,34,134,128,207,26,192,229,8,80,80,168,2,128,216,154,68, - 205,70,99,217,114,169,147,69,8,129,192,198,6,2,169,20,2,153,77,217,107,64,245,17,155,82,132,66,225,222,67,135,14,185,123,120,120,96,209,162, - 69,240,244,244,12,108,220,184,177,186,125,251,246,98,87,87,87,52,108,216,16,109,218,180,193,233,211,167,1,160,198,154,82,70,147,232,254,147,36,180, - 205,202,185,134,95,47,255,0,189,70,135,144,142,63,192,192,173,3,231,70,11,193,62,223,3,245,171,99,0,0,137,91,127,188,76,78,2,225,8,30, - 86,167,89,254,58,74,151,239,221,187,135,125,199,174,192,221,39,8,201,207,30,227,241,165,11,184,234,236,8,159,160,134,101,195,64,85,218,104,6,119, - 201,119,101,229,29,132,57,57,57,66,185,92,174,3,138,239,157,187,187,59,56,28,14,24,134,129,64,32,128,159,159,31,239,234,213,171,78,237,218,181, - 219,69,8,121,143,82,122,165,26,249,247,103,206,156,137,60,30,15,232,219,23,252,248,120,24,12,6,132,134,134,162,121,243,230,0,128,208,208,80,112, - 185,92,52,105,210,4,10,133,2,223,125,247,221,251,168,98,86,31,67,112,215,100,202,14,244,243,243,43,115,180,118,237,86,34,250,118,119,16,8,176, - 126,227,31,213,28,188,189,189,241,42,61,30,132,208,152,106,111,0,176,216,205,205,109,158,187,187,187,223,170,85,171,56,34,145,8,159,124,242,137,111, - 97,97,97,29,0,88,190,124,57,102,207,158,13,0,152,63,127,62,22,44,88,0,157,78,87,101,195,219,221,107,154,40,50,115,216,15,92,221,60,6, - 119,118,170,211,184,75,207,110,240,13,232,130,46,61,147,1,96,169,156,155,20,182,98,110,240,81,39,47,249,246,115,103,206,207,111,215,177,203,151,225, - 19,29,150,44,223,156,91,99,206,99,254,139,157,5,79,4,195,215,108,216,180,123,205,87,179,167,138,146,149,250,220,212,92,90,40,19,114,101,254,174, - 68,246,233,23,139,19,210,210,226,103,32,229,76,141,51,45,89,150,69,124,124,124,89,78,159,86,171,69,81,81,17,82,82,82,202,254,102,52,82,219, - 94,147,199,245,111,90,164,209,168,111,60,120,150,60,119,202,200,208,34,141,70,253,44,49,249,41,165,235,42,245,198,24,134,121,160,46,80,119,83,192, - 215,133,179,0,0,32,0,73,68,65,84,231,105,161,188,251,4,158,93,125,96,52,17,232,77,102,40,179,11,160,51,1,102,134,135,70,97,163,97,38, - 92,100,165,165,130,225,112,238,213,100,175,21,43,86,254,177,212,88,222,129,16,18,25,26,26,186,31,248,35,234,84,186,12,64,7,160,186,84,30,101, - 121,103,170,116,56,177,170,243,84,208,173,150,74,134,12,79,150,36,200,215,92,222,161,68,128,52,109,236,163,88,49,255,125,79,214,100,106,144,153,149, - 97,226,114,133,60,47,59,77,122,77,39,47,143,78,167,139,188,112,225,194,160,238,221,187,11,159,61,184,7,125,126,62,244,249,121,224,177,38,200,197, - 205,193,24,116,32,122,61,60,2,89,104,11,196,184,114,53,198,168,211,233,34,107,210,45,117,180,24,14,231,245,188,44,153,12,66,27,91,8,101,178, - 138,67,139,213,142,29,18,66,36,3,6,12,232,218,186,117,107,80,74,177,101,203,22,24,12,6,129,193,96,128,94,175,135,193,96,128,74,165,194,238, - 221,187,241,253,247,223,95,5,176,163,38,27,89,147,254,194,217,243,81,45,199,143,236,199,59,21,185,26,38,189,25,26,226,137,162,34,35,10,245,18, - 152,29,71,1,25,39,193,225,138,16,218,196,23,199,14,71,24,96,210,93,172,73,23,120,221,225,210,235,245,72,73,78,194,203,184,167,144,169,94,193, - 217,86,2,117,252,83,132,140,30,243,86,209,9,47,47,47,176,44,139,206,157,59,67,171,213,194,104,52,150,57,90,2,129,0,129,129,129,188,155,55, - 111,202,91,180,104,177,191,164,246,217,239,85,105,101,103,103,227,196,137,19,104,221,186,53,58,118,236,136,212,212,84,196,199,199,163,111,223,190,101,251, - 220,187,119,15,209,209,209,240,247,175,62,72,152,149,99,60,245,50,229,238,176,129,3,7,242,175,95,191,14,74,41,2,2,108,97,107,35,5,97,132, - 8,10,114,1,80,252,27,160,83,167,78,80,169,226,77,185,185,244,84,117,154,148,210,189,132,144,159,245,122,253,243,14,29,58,40,226,226,226,240,217, - 103,159,113,15,28,56,0,0,8,15,15,71,120,248,235,147,41,52,154,170,135,238,27,52,14,252,220,215,228,208,81,36,174,83,215,214,169,9,124,3, - 186,0,0,186,247,27,15,223,122,222,80,101,221,175,171,213,36,13,230,115,115,29,238,175,79,125,36,238,27,60,78,155,121,249,25,0,75,10,0,83, - 205,179,3,25,201,188,81,7,127,62,126,122,98,159,126,3,120,70,179,201,20,236,195,179,63,116,244,100,102,234,139,228,117,72,62,83,234,88,86,251, - 203,194,108,54,155,85,42,21,164,82,41,98,98,98,116,125,251,246,21,50,12,131,231,207,159,151,57,90,46,78,242,134,109,91,4,7,46,89,179,251, - 172,84,40,20,246,236,212,60,232,209,179,23,47,41,37,73,85,233,234,141,198,243,15,238,222,235,236,172,168,199,137,191,124,29,142,237,251,64,167,99, - 160,209,179,208,153,0,19,135,15,247,102,173,96,239,31,4,10,224,214,245,171,70,157,209,88,101,73,19,43,86,172,252,243,169,198,23,81,150,115,140, - 114,0,36,45,91,182,44,171,92,180,73,9,224,30,128,166,37,251,41,43,28,167,68,241,236,193,22,229,116,148,64,153,195,85,126,89,95,97,159,26, - 127,0,86,140,104,149,56,94,175,247,58,172,102,74,37,156,156,156,92,66,66,154,251,255,184,237,32,40,165,120,18,189,18,185,153,143,49,111,233,239, - 254,158,158,158,29,95,190,124,121,165,38,35,0,192,108,54,31,216,190,125,251,140,86,239,132,132,212,245,244,196,189,164,68,240,169,25,124,179,25,140, - 65,7,174,89,15,207,70,102,48,140,12,105,105,249,88,190,247,96,140,217,108,62,80,147,110,96,159,1,88,244,50,31,132,16,172,10,13,134,192,70, - 6,190,84,134,127,29,143,42,115,174,34,23,205,134,64,38,131,127,171,154,11,194,83,74,213,54,54,54,183,31,60,120,208,34,56,56,24,51,102,204, - 64,82,82,18,88,150,69,70,70,134,54,61,61,61,85,169,84,38,1,56,10,224,71,75,42,143,243,117,218,181,145,71,118,77,14,109,215,209,105,224, - 224,239,241,243,225,25,200,203,87,65,109,18,163,72,107,66,145,142,3,185,99,99,180,108,210,4,105,169,153,120,120,253,108,33,87,167,94,89,243,93, - 253,3,66,8,162,163,163,225,167,176,193,211,95,175,192,73,194,67,83,133,27,20,109,219,149,213,151,170,14,30,7,166,247,223,127,191,172,50,124,143, - 30,61,18,71,141,26,229,62,125,250,116,108,219,182,13,87,175,94,205,145,201,100,122,134,97,184,92,46,23,2,129,0,3,6,12,200,141,138,138,98, - 88,150,149,162,56,250,84,149,163,101,212,235,245,8,12,12,196,173,91,183,112,225,194,5,116,233,210,5,29,59,118,196,253,251,247,113,238,220,57,68, - 71,71,131,16,2,71,71,71,24,139,157,103,99,21,90,48,24,112,232,155,111,183,207,89,179,230,251,70,35,71,142,196,145,35,251,49,126,92,3,16, - 70,8,66,132,24,208,191,1,22,45,190,133,86,173,58,193,201,137,135,53,171,143,37,104,52,230,221,22,220,198,37,231,206,157,83,104,181,90,228,229, - 229,81,153,76,70,178,179,139,103,180,86,22,209,82,171,213,162,170,132,30,220,137,93,153,87,64,115,105,97,244,224,28,83,116,227,46,61,83,208,189, - 223,56,156,143,220,129,168,179,23,32,231,38,37,66,90,112,58,43,49,75,149,94,20,176,41,232,157,9,156,151,69,103,55,77,25,232,192,113,119,103, - 15,133,127,159,159,87,149,54,165,148,18,66,72,206,163,61,199,143,82,12,104,19,218,170,94,176,183,187,32,55,43,147,30,62,118,58,198,144,120,228, - 4,74,28,172,154,186,44,80,74,23,133,135,135,127,85,178,188,115,238,220,185,19,150,47,95,238,252,234,213,171,178,28,173,204,172,156,168,54,125,63, - 53,103,231,229,235,183,175,249,98,168,88,36,20,204,93,190,253,178,145,131,235,85,233,154,88,246,187,176,207,230,77,125,246,36,218,163,142,88,128,99, - 95,204,199,189,115,151,96,100,248,248,248,194,13,232,12,102,228,101,101,227,226,7,147,32,115,117,192,247,151,143,100,176,44,251,67,117,182,90,177,98, - 229,159,77,53,190,72,101,53,246,50,44,216,175,166,245,191,156,18,39,171,44,47,198,162,41,120,89,89,89,153,191,252,114,3,151,35,151,224,74,228, - 18,60,140,190,135,180,84,61,82,51,180,176,181,181,173,50,130,65,8,233,86,126,157,82,74,213,106,245,144,185,243,190,122,37,18,75,208,161,107,87, - 184,57,187,64,194,231,129,99,98,193,33,60,20,102,217,227,233,125,53,102,109,223,147,89,168,86,15,169,248,37,81,81,179,220,118,16,66,32,180,181, - 129,64,102,3,161,141,237,107,195,136,34,91,91,136,108,108,193,21,8,42,75,154,127,67,179,176,176,240,221,161,67,135,230,230,231,231,99,194,132,9, - 184,114,229,74,244,217,179,103,109,239,221,187,39,206,204,204,172,71,41,237,65,41,221,92,149,147,85,81,51,39,39,174,128,154,116,195,151,125,53,77, - 163,53,57,98,216,152,253,144,50,41,48,153,89,80,0,10,185,0,109,187,45,134,82,223,6,7,54,125,173,102,13,218,145,229,107,104,85,212,164,148, - 82,87,87,87,84,120,29,23,46,92,192,176,161,239,162,231,224,65,112,174,235,7,151,110,125,208,115,194,199,216,180,105,19,24,134,129,147,147,19,80, - 46,194,81,94,115,103,52,229,237,189,79,201,222,251,148,236,184,67,185,0,70,239,217,179,231,155,166,77,155,94,186,122,245,234,74,0,195,141,70,163, - 254,206,157,59,169,10,133,162,232,167,159,126,66,199,142,29,237,221,221,221,143,152,76,38,25,165,116,72,53,239,209,151,83,167,78,213,60,123,246,12, - 82,169,20,38,147,9,87,175,94,197,247,223,127,143,85,171,86,33,58,58,26,142,142,142,240,247,247,135,78,167,195,173,91,183,52,0,190,172,234,126, - 82,74,89,165,210,244,238,250,245,203,179,251,245,107,143,237,219,55,194,205,173,13,120,92,55,112,121,206,144,202,2,177,245,199,111,208,187,119,8,142, - 31,59,152,147,149,109,122,183,98,21,247,42,236,212,222,184,113,3,155,54,109,194,208,161,67,83,135,13,27,102,206,207,47,46,118,27,30,30,14,74, - 41,40,165,88,80,146,99,166,211,233,94,11,83,151,215,156,240,197,131,212,207,151,196,44,202,120,149,218,250,202,165,223,223,143,58,123,1,9,207,162, - 16,117,246,2,126,141,186,22,158,241,42,181,117,72,203,250,252,33,19,38,127,190,43,226,8,71,102,235,142,93,17,71,56,35,62,157,246,117,243,158, - 93,170,188,246,242,183,1,0,45,204,204,152,189,116,229,134,66,147,65,203,172,88,247,93,154,70,153,254,37,74,167,98,86,17,205,42,175,169,86,171, - 55,107,52,26,133,70,163,81,104,181,218,47,147,146,146,58,204,152,49,67,105,54,155,203,162,165,153,15,143,253,30,251,235,142,165,46,78,14,226,54, - 45,26,53,88,189,249,240,229,228,148,140,159,74,107,104,85,241,30,105,11,53,218,119,7,13,25,85,148,151,171,67,232,180,112,176,34,25,116,102,192, - 72,57,48,17,46,30,44,89,13,177,220,6,123,19,239,168,243,141,134,119,203,215,208,170,225,218,223,26,171,166,85,211,170,249,159,169,249,79,129,82, - 186,165,116,216,16,40,137,104,213,52,165,210,195,195,163,195,192,1,221,208,169,223,92,80,74,241,248,206,183,200,85,62,129,135,155,16,241,201,170,80, - 0,87,106,97,64,50,33,164,245,212,47,231,70,12,235,209,53,40,184,110,93,97,157,58,62,144,186,184,32,43,75,137,223,174,63,50,126,189,239,80, - 76,137,147,101,73,11,30,176,44,91,156,228,14,160,235,212,89,32,28,14,80,82,198,161,244,139,177,110,139,54,32,92,46,204,148,133,78,167,171,49, - 73,139,82,250,146,16,242,238,200,145,35,47,70,70,70,50,61,123,246,108,118,244,232,209,183,207,12,6,80,152,241,244,146,204,181,126,191,175,103,79, - 60,208,186,203,32,219,128,70,205,249,205,235,112,96,48,18,164,165,190,64,100,196,77,195,163,27,103,85,212,164,29,94,164,172,190,5,143,193,96,72, - 174,87,175,158,235,166,77,155,202,146,225,205,102,51,178,178,178,240,251,239,191,163,113,139,86,8,26,247,1,148,74,37,214,175,95,15,111,111,111,244, - 239,223,31,57,57,57,48,153,76,22,221,87,74,169,25,192,217,146,7,0,128,97,24,210,174,93,59,51,203,178,147,230,207,159,255,221,147,39,79,164, - 107,214,172,25,78,8,249,138,82,250,70,237,8,127,127,127,129,86,171,109,230,238,238,206,37,132,172,213,235,245,227,102,207,158,237,182,116,233,82,52, - 104,208,0,89,89,89,144,74,165,8,8,8,128,82,169,196,205,155,55,205,106,181,122,19,128,69,148,82,101,69,189,10,246,61,39,132,180,158,50,229, - 95,17,223,44,159,24,160,213,117,18,200,229,237,64,169,9,74,101,18,10,84,87,13,139,23,237,136,203,200,52,14,161,148,62,179,228,154,1,204,159, - 60,121,50,80,210,130,39,62,62,254,110,80,80,80,0,80,121,68,203,18,86,31,122,169,5,176,111,197,103,109,62,83,101,221,15,144,115,147,18,91, - 7,179,235,87,31,122,169,93,248,153,253,146,220,164,43,79,95,22,157,221,180,43,226,8,103,204,224,119,205,158,178,103,225,34,23,122,184,75,255,234, - 117,41,165,180,89,179,102,94,132,228,248,102,102,63,185,61,126,194,196,48,59,190,230,84,83,207,108,127,198,59,68,20,29,29,157,88,83,52,171,10, - 221,167,132,144,14,179,103,207,62,75,41,125,45,55,33,51,43,39,42,180,223,100,154,151,151,127,55,243,209,177,106,171,194,151,104,221,36,132,116,13, - 110,28,114,228,155,165,203,93,59,77,157,193,125,122,233,50,96,54,226,197,149,203,48,11,245,236,234,107,231,51,242,13,134,193,212,90,21,222,138,149, - 255,105,44,41,239,240,159,10,33,196,29,64,95,20,71,178,250,2,136,166,148,70,3,22,20,44,5,128,151,47,95,94,241,247,243,60,247,244,105,135, - 30,222,158,206,0,128,248,196,52,164,102,232,206,89,58,108,88,158,18,103,171,249,158,19,167,134,11,133,194,126,164,164,132,3,125,139,166,210,38,147, - 233,101,221,186,117,171,120,117,106,165,91,205,102,115,101,225,198,202,236,188,76,8,25,229,239,239,191,252,197,139,23,17,148,210,34,75,142,171,142,194, - 140,167,151,228,114,127,191,107,23,142,76,187,126,57,178,27,53,233,27,3,0,225,10,106,213,84,186,176,176,112,226,39,159,124,178,153,199,227,121,163, - 36,231,172,52,7,203,108,54,115,12,6,131,200,108,54,115,0,16,134,97,76,60,30,79,27,17,17,97,50,153,76,201,58,157,110,226,219,218,79,41, - 61,65,41,253,129,82,122,211,201,201,41,236,248,241,227,61,123,245,234,37,58,113,226,196,12,0,51,43,238,127,234,212,169,58,14,14,14,61,8,33, - 67,41,165,129,5,5,5,186,185,115,231,254,30,17,17,145,239,227,227,211,171,111,223,190,68,46,151,227,214,173,91,52,59,59,251,48,128,47,41,165, - 241,181,176,39,158,16,210,116,226,199,63,188,39,151,111,238,75,41,154,130,130,16,6,15,242,243,217,83,106,181,249,167,18,135,209,82,61,19,94,143, - 164,45,142,137,137,217,1,128,87,89,142,86,173,144,20,30,215,106,146,222,37,50,245,209,213,235,94,106,1,96,254,154,188,124,0,91,167,12,150,179, - 177,119,182,126,235,97,251,236,139,117,71,115,182,91,34,23,18,18,226,199,48,204,112,0,193,46,194,188,122,206,130,124,51,33,180,51,33,140,19,128, - 251,13,27,54,140,4,240,242,109,76,165,197,237,138,124,42,110,207,124,120,236,119,84,61,60,92,149,214,77,66,72,189,207,102,78,159,36,224,241,186, - 195,108,110,178,248,231,67,212,218,84,218,138,21,43,255,32,250,82,74,183,148,22,42,45,25,62,180,220,209,2,128,184,248,151,61,1,160,126,253,250, - 244,217,179,103,160,148,254,41,143,179,196,145,218,143,26,170,190,215,68,86,86,86,243,63,115,124,77,80,74,247,1,216,247,87,106,150,56,82,139,74, - 30,111,5,165,244,1,128,86,127,153,81,150,159,119,108,233,114,118,118,246,172,113,227,198,245,176,177,177,249,53,47,47,111,99,101,251,247,232,209,227, - 133,193,96,184,128,226,47,124,123,0,57,70,163,241,140,94,175,207,32,132,52,95,189,122,117,105,229,251,197,148,210,219,111,105,19,11,96,111,201,227, - 47,133,82,186,87,161,80,76,119,116,116,244,215,106,181,2,173,86,203,47,255,27,64,44,22,87,27,117,43,143,189,13,217,201,231,230,58,218,219,144, - 55,28,41,185,7,142,104,138,98,26,200,61,112,196,82,189,232,232,232,248,102,205,154,237,97,24,166,46,165,212,21,160,118,148,66,73,41,205,226,114, - 185,169,143,30,61,178,168,7,231,255,7,37,142,212,202,146,135,21,43,86,172,252,227,168,182,142,86,109,120,250,244,233,127,93,72,207,202,223,3,165, - 244,17,33,68,158,155,91,117,57,130,164,164,36,29,128,107,37,143,138,199,223,6,80,195,0,217,191,159,180,180,180,144,191,66,103,194,23,15,82,1, - 76,107,94,73,107,231,249,235,115,10,0,124,222,121,64,237,52,239,222,189,155,12,192,162,161,96,43,86,172,88,177,242,247,96,73,29,45,43,86,222, - 138,170,170,141,91,177,98,197,138,21,43,255,43,84,87,71,139,0,168,116,230,0,173,69,103,238,183,153,125,80,147,190,85,211,170,105,213,180,106,90, - 53,173,154,86,205,127,158,230,255,2,164,124,147,233,210,89,121,127,199,3,64,55,171,166,85,211,170,105,213,180,106,90,53,173,154,86,205,255,165,7, - 128,143,74,151,173,67,135,86,172,88,249,159,229,240,225,195,22,53,21,125,239,139,173,253,100,50,135,121,133,170,252,229,251,87,142,63,90,186,125,232, - 208,161,22,207,104,181,98,197,202,63,151,202,134,14,75,23,170,116,180,252,252,188,26,50,102,182,45,165,12,135,50,212,72,84,154,3,113,57,57,175, - 149,29,240,246,246,182,231,49,232,79,40,149,18,194,154,89,14,115,53,62,62,229,81,85,154,149,24,38,112,112,112,152,204,231,243,187,233,245,122,79, - 134,97,94,234,116,186,11,106,181,122,35,173,80,184,240,223,73,131,6,13,70,92,190,124,217,190,93,187,118,58,177,88,108,210,104,52,220,51,103,206, - 8,123,247,238,157,247,252,249,243,183,154,145,232,225,225,209,229,240,225,195,190,49,49,49,198,85,171,86,233,135,15,31,206,15,13,13,229,79,152,48, - 33,33,53,53,53,170,54,90,132,144,134,132,144,221,132,16,14,203,178,163,105,241,140,196,191,28,66,8,195,48,204,68,66,200,96,74,169,31,33,36, - 158,82,122,148,101,217,42,11,183,214,160,247,46,128,62,12,195,132,0,0,203,178,209,0,78,81,74,45,158,121,247,255,169,41,145,72,154,1,128,90, - 173,190,251,87,105,18,66,154,1,0,165,244,173,52,9,33,227,196,98,241,135,0,160,209,104,126,164,148,214,216,14,234,13,54,7,209,144,133,143,1, - 0,209,243,3,1,0,181,90,159,24,107,249,4,153,205,65,180,50,189,90,105,84,128,16,210,103,228,200,145,75,127,250,233,167,249,148,210,99,111,171, - 83,29,110,110,94,27,87,173,219,162,152,54,249,131,229,40,238,8,81,45,141,8,233,46,224,112,6,232,205,230,95,31,1,135,0,112,229,114,249,8, - 129,64,208,65,175,215,187,115,185,220,116,189,94,255,75,126,126,254,62,74,105,149,29,16,44,230,49,113,48,168,225,70,216,63,250,188,81,6,58,190, - 4,175,16,72,115,255,180,254,159,132,16,194,160,184,222,142,17,192,54,250,22,229,60,56,28,206,52,133,66,49,88,165,82,169,57,28,14,45,150,37, - 197,255,160,184,198,31,203,178,153,217,217,217,163,107,210,146,249,144,6,2,41,217,109,54,66,99,210,209,79,10,147,233,99,27,111,210,134,2,163,41, - 80,151,225,48,206,44,203,166,3,136,98,76,56,81,144,74,159,215,164,249,239,128,16,226,131,226,251,90,167,100,19,15,128,43,128,251,0,166,81,74, - 11,255,61,150,253,239,65,107,74,134,47,87,238,190,83,223,190,125,175,248,249,121,53,28,58,104,200,210,143,39,126,66,56,28,6,49,15,31,114,223, - 31,61,174,135,92,46,247,144,233,116,65,32,132,85,139,68,49,70,163,33,245,208,190,159,108,2,27,52,48,155,205,44,54,109,254,161,183,159,159,215, - 28,75,156,45,66,72,125,55,55,183,221,225,225,225,110,3,6,12,224,184,185,185,33,41,41,201,126,255,254,253,13,54,108,216,16,70,8,25,77,139, - 107,249,212,10,66,72,123,55,57,211,195,70,76,186,162,192,140,2,35,46,190,210,224,28,165,244,215,218,106,149,162,86,171,63,77,75,75,107,213,162, - 69,11,186,109,219,54,50,118,236,88,250,244,233,83,162,209,104,118,226,45,75,63,72,165,210,239,154,52,105,18,48,118,236,216,248,184,184,184,62,7, - 15,30,60,53,102,204,24,63,169,84,250,12,64,253,90,202,237,200,206,206,110,170,209,104,224,233,233,185,13,192,59,111,99,83,117,16,66,8,135,195, - 57,234,225,225,65,191,253,246,219,99,77,155,54,117,205,201,201,49,125,254,249,231,221,174,95,191,222,155,16,50,192,82,103,139,16,226,64,8,217,236, - 230,230,230,180,124,249,242,231,205,155,55,191,47,20,10,5,207,158,61,147,76,159,62,253,51,134,97,194,40,165,19,41,181,252,11,162,84,211,195,195, - 195,105,233,210,165,73,33,33,33,49,124,62,159,255,236,217,51,233,172,89,179,166,189,173,38,195,48,155,66,67,67,29,230,207,159,31,219,160,65,131, - 107,28,14,71,240,242,229,75,102,193,130,5,147,57,28,206,48,150,101,63,126,27,59,93,93,93,29,22,44,88,16,27,26,26,122,157,207,231,243,159, - 60,121,194,132,135,135,79,174,141,157,142,142,142,157,29,29,29,183,188,122,245,138,11,0,238,238,238,45,253,253,253,55,148,239,105,89,18,194,134,209, - 104,44,208,106,181,35,179,179,179,43,45,132,59,118,246,250,254,0,176,193,80,186,94,252,92,211,58,176,233,132,37,215,29,226,78,40,0,140,152,177, - 114,80,241,115,241,246,85,69,0,151,203,101,119,187,19,26,157,110,121,201,24,66,200,192,46,93,186,44,136,138,138,250,161,83,167,78,179,246,236,217, - 227,146,146,146,242,13,33,196,235,189,247,222,27,123,241,226,197,101,74,165,242,176,165,122,53,33,224,11,133,132,33,16,139,36,182,150,236,207,99,152, - 126,215,6,14,252,240,199,39,79,66,54,60,126,236,91,228,238,222,106,202,148,41,174,67,134,12,97,188,188,188,240,252,249,115,199,61,123,246,4,253, - 248,227,143,131,9,33,83,41,165,47,222,218,184,199,196,161,40,15,141,117,122,132,80,10,251,210,205,132,32,79,104,64,180,244,49,121,240,31,224,108, - 125,181,99,199,142,249,207,159,63,199,178,101,203,0,160,210,114,48,85,65,8,153,62,120,240,224,190,17,17,17,226,67,135,14,137,91,180,104,1,55, - 55,55,0,197,245,3,75,135,104,124,125,125,45,210,163,44,86,173,61,53,254,157,152,156,211,248,110,200,171,101,18,47,98,106,63,40,96,112,191,177, - 33,176,115,150,64,36,227,34,47,91,21,252,36,58,165,231,165,131,207,191,145,249,144,229,69,201,248,138,214,162,38,223,255,7,142,142,142,219,18,18, - 18,58,75,165,210,215,182,199,199,199,55,11,8,8,200,71,113,91,52,139,33,132,248,56,59,59,239,101,89,86,151,157,157,253,1,0,216,216,216,252, - 36,149,74,29,210,211,211,231,252,93,63,100,74,169,232,139,252,157,231,250,171,33,132,132,80,74,163,203,23,46,165,21,155,74,151,239,152,205,152,217, - 182,31,79,252,132,12,31,241,222,171,231,241,9,44,151,39,24,113,230,236,89,73,195,134,13,25,221,198,141,48,41,149,48,126,246,89,155,11,23,46, - 24,135,141,24,165,225,113,200,14,63,223,186,146,3,251,246,187,69,28,57,220,22,64,181,142,22,33,68,224,230,230,182,251,242,229,203,30,190,190,190, - 200,203,203,67,82,82,18,138,138,138,16,22,22,198,107,219,182,173,199,208,161,67,119,19,66,218,89,26,217,34,132,184,214,243,228,70,174,250,42,172, - 126,239,30,109,165,30,94,254,160,175,180,72,137,123,220,34,242,242,245,41,1,246,204,211,231,249,180,31,165,212,162,98,165,229,201,202,202,250,98,252, - 248,241,71,58,119,238,236,44,20,10,161,80,40,72,120,120,120,102,90,90,218,194,218,106,149,179,23,34,145,8,12,195,152,1,148,61,87,108,15,100, - 33,158,14,14,14,112,112,112,0,0,143,183,181,169,228,252,140,189,189,253,70,27,27,155,161,42,149,74,195,48,12,37,132,80,169,84,42,118,112,112, - 184,23,251,248,169,66,167,211,213,91,185,246,199,117,93,218,55,181,61,127,254,60,134,12,25,66,207,157,59,55,17,128,69,125,234,8,33,155,7,15, - 30,172,158,55,111,158,246,121,124,146,71,236,211,120,34,21,9,88,39,39,39,222,205,155,55,185,107,214,172,17,45,88,176,96,51,128,161,181,176,123, - 243,123,239,189,103,152,57,115,102,250,147,231,9,46,15,98,159,83,153,136,103,114,114,114,228,92,191,126,157,125,27,77,134,97,54,125,241,197,23,170, - 137,19,39,230,102,231,228,187,229,170,10,169,144,199,49,186,185,185,113,143,29,59,166,219,187,119,47,243,225,135,31,110,2,48,204,82,77,0,155,6, - 12,24,80,16,30,30,158,247,44,62,209,237,193,163,167,144,8,121,70,87,87,23,206,173,91,183,12,43,87,174,100,150,44,89,98,145,157,82,169,116, - 215,193,131,7,185,199,142,21,127,246,253,254,251,239,140,159,159,159,164,252,62,26,173,14,12,1,178,178,178,36,161,161,161,187,0,120,86,212,9,89, - 248,24,99,103,3,159,126,250,105,173,154,196,3,64,136,251,20,68,215,80,254,150,221,20,68,71,204,88,57,136,203,229,178,31,126,248,225,27,221,3, - 180,90,45,1,48,32,164,22,206,86,159,62,125,190,60,121,242,164,255,158,61,123,86,239,221,187,87,15,0,34,145,200,105,255,254,253,203,194,194,194, - 16,22,22,54,15,192,95,230,104,153,169,217,0,0,66,145,80,248,248,241,99,18,24,24,88,109,65,101,3,203,222,254,241,201,147,230,255,10,12,108, - 145,195,178,245,248,189,123,23,78,159,62,61,75,165,82,33,41,41,9,6,131,1,99,199,142,229,116,234,212,73,17,22,22,182,158,16,242,46,165,212, - 80,147,29,28,14,103,165,135,135,199,71,249,249,249,133,165,81,157,160,186,54,220,14,205,76,194,38,245,140,2,62,199,196,239,255,25,75,206,109,36, - 69,129,190,248,13,0,248,106,40,249,192,159,118,180,236,188,136,175,153,135,37,206,158,226,46,202,23,154,69,133,47,104,149,206,18,33,228,93,169,84, - 58,168,168,168,232,112,201,151,115,253,126,253,250,225,250,245,235,0,208,22,192,70,66,72,23,134,97,222,103,89,118,43,173,166,25,61,33,100,202,192, - 129,3,187,71,68,68,216,0,192,225,195,135,97,52,26,225,231,231,7,62,159,15,129,64,0,30,143,87,214,29,196,66,220,157,157,157,224,100,199,131, - 131,92,218,123,214,247,3,185,222,13,109,145,105,126,136,28,154,7,19,213,129,239,40,69,131,158,246,8,233,209,133,57,177,41,102,206,137,239,98,155, - 147,58,164,63,77,122,189,91,194,191,19,134,97,132,247,239,223,135,66,161,120,109,59,135,195,1,128,14,111,33,57,47,62,62,62,244,206,157,59,232, - 220,185,243,188,198,141,27,247,186,114,229,138,91,118,118,54,58,119,238,188,30,192,223,234,104,1,175,251,34,127,247,185,254,98,66,80,92,160,180,172, - 112,41,74,154,74,151,245,58,44,185,176,78,0,64,41,195,225,112,24,36,196,39,25,59,119,238,58,38,57,57,89,214,170,85,43,134,199,227,161,40, - 42,10,218,91,183,32,147,201,48,120,240,96,222,47,191,252,98,107,43,179,157,144,152,144,88,192,225,48,160,148,169,49,231,193,193,193,97,242,156,57, - 115,220,2,2,2,96,50,153,202,42,154,155,76,38,164,164,164,64,38,147,97,244,232,209,46,18,137,100,178,37,87,71,8,169,83,223,207,37,250,242, - 169,205,239,76,255,184,143,180,190,228,60,164,41,83,33,59,252,47,4,165,157,65,248,160,86,210,115,223,205,11,241,87,200,163,9,33,117,106,86,124, - 29,173,86,251,91,76,76,204,132,43,87,174,176,0,112,233,210,37,26,27,27,59,241,207,252,10,101,89,22,233,233,233,96,89,150,83,178,94,250,252, - 182,146,127,26,66,8,99,107,107,187,169,87,175,94,239,189,120,241,66,124,250,244,105,199,228,228,100,167,196,196,68,231,250,245,235,115,151,45,91,118, - 82,171,51,112,140,102,170,55,153,141,5,233,15,31,198,231,102,100,68,111,223,190,93,67,8,25,108,225,57,222,117,119,119,119,156,61,123,54,8,79, - 210,50,176,97,227,0,14,79,108,199,240,4,118,26,141,214,156,144,144,144,50,123,246,236,186,77,155,54,85,148,12,175,89,164,169,80,40,156,102,206, - 156,9,174,208,166,89,147,166,33,254,2,161,212,230,216,241,72,223,86,173,90,117,138,143,143,79,11,15,15,119,111,209,162,69,173,52,91,180,104,225, - 240,225,135,31,154,68,18,219,208,186,126,190,13,59,182,107,211,189,85,171,86,125,184,92,174,73,169,84,190,24,61,122,180,123,255,254,253,93,107,163, - 233,226,226,226,16,30,30,110,242,242,241,235,217,179,123,143,214,124,177,141,29,87,32,181,87,171,181,230,39,79,158,188,152,59,119,174,123,179,102,205, - 92,44,209,84,171,213,60,39,39,39,4,7,7,163,161,159,31,242,243,243,17,17,17,129,29,59,118,96,235,214,173,216,183,111,31,154,183,235,1,27, - 27,27,164,165,165,65,165,82,241,44,177,179,20,163,209,248,167,63,232,216,77,65,116,131,254,163,1,159,124,242,73,218,135,31,126,248,74,44,22,179, - 21,31,114,185,220,60,114,228,200,140,209,179,214,14,40,29,90,172,10,66,200,192,174,93,187,222,63,117,234,84,220,158,61,123,208,176,97,67,244,236, - 217,83,0,0,147,39,79,22,132,133,133,225,224,193,131,56,124,248,240,163,250,245,235,95,37,132,12,180,196,206,209,163,71,183,27,54,108,216,175,195, - 134,13,187,59,124,248,240,45,19,39,78,124,237,155,43,61,237,229,109,189,94,143,166,33,45,36,139,183,221,24,89,147,94,44,176,103,203,227,199,59, - 150,63,124,248,98,94,195,134,246,62,137,137,242,157,43,87,58,149,54,233,54,26,141,72,73,73,129,131,131,3,70,142,28,233,36,20,10,107,28,238, - 34,132,172,25,56,112,224,184,228,228,100,217,143,63,254,232,126,247,238,93,69,122,122,186,251,197,11,103,157,63,159,49,217,198,78,38,16,164,41,139, - 29,213,196,52,72,31,39,160,29,165,176,47,63,156,248,54,16,5,17,75,188,200,6,255,118,246,79,103,30,108,54,60,60,50,196,201,193,93,56,187, - 202,253,9,105,242,237,183,223,30,58,113,226,196,136,118,237,218,29,33,132,136,43,217,71,212,188,121,243,136,131,7,15,142,107,223,190,253,111,132,144, - 224,170,244,60,61,61,7,255,252,243,207,142,165,235,78,78,78,16,137,68,111,56,89,124,62,31,12,99,81,251,222,215,248,122,255,8,174,60,72,135, - 152,220,83,56,248,237,125,124,219,251,9,187,180,77,162,110,227,232,199,56,119,240,62,50,113,31,125,254,229,143,17,115,155,118,147,152,177,164,214,39, - 248,27,81,42,149,239,119,232,208,225,80,159,62,125,116,119,238,220,129,82,169,132,135,71,217,111,237,90,255,112,2,32,151,72,36,240,242,242,66,64, - 64,192,136,95,126,249,197,205,104,52,34,49,49,17,153,153,153,209,127,161,233,85,82,222,23,249,47,227,36,169,208,76,186,148,178,191,202,146,222,66, - 151,1,128,18,82,116,63,38,134,199,17,8,70,253,180,119,175,144,207,231,227,197,139,23,120,244,232,17,212,23,47,66,115,237,26,50,50,50,80,88, - 88,8,87,87,87,108,222,182,77,170,55,211,241,79,158,62,229,80,230,143,124,3,90,197,20,79,161,80,216,109,200,144,33,85,58,100,105,105,105,232, - 211,167,15,143,195,225,188,49,173,180,162,38,33,132,40,156,201,137,139,71,22,187,187,11,30,1,207,167,3,5,209,0,213,1,38,61,144,250,0,56, - 185,16,62,133,143,201,217,197,99,220,60,36,220,19,165,99,250,53,217,89,238,28,126,129,129,129,91,71,141,26,197,0,64,151,46,93,72,96,96,224, - 22,66,136,95,85,199,212,164,169,86,171,175,223,190,125,27,97,97,97,142,254,254,254,23,194,194,194,28,31,61,122,4,181,90,125,253,109,53,75,112, - 108,212,168,81,182,88,44,222,71,8,169,241,3,182,188,166,189,189,253,198,62,125,250,12,221,187,119,47,31,0,46,95,190,140,19,39,78,224,225,195, - 135,120,246,236,25,27,18,18,226,188,118,235,161,77,27,127,216,181,102,80,219,166,138,78,45,67,130,100,133,185,133,174,174,174,109,41,165,126,149,105, - 86,66,159,133,11,23,62,138,141,123,97,199,225,241,185,60,46,87,104,107,43,117,117,176,145,122,202,37,34,15,33,67,100,106,181,250,213,190,125,251, - 88,0,125,44,213,92,188,120,113,66,236,243,23,246,12,135,199,229,243,248,252,196,196,56,183,93,59,183,249,0,0,31,148,175,82,169,50,118,236,216, - 97,168,141,230,252,249,243,99,114,242,10,29,184,92,46,143,207,225,10,242,243,243,249,249,249,249,124,169,88,236,44,17,10,5,58,157,46,117,221,186, - 117,154,218,104,46,92,184,240,209,147,184,100,57,67,8,135,16,134,107,107,35,117,116,180,147,56,59,203,196,78,18,46,71,160,82,169,82,119,239,222, - 109,145,166,193,96,224,103,100,100,32,54,54,22,94,45,90,224,252,249,243,240,246,246,70,88,88,24,222,123,239,61,136,197,98,116,9,109,140,217,179, - 103,35,46,46,14,6,131,65,88,153,102,89,158,84,5,100,50,89,100,231,206,157,123,87,115,61,175,29,91,209,206,16,119,66,55,232,63,26,80,222, - 193,42,255,186,92,46,223,48,96,192,128,142,37,203,230,202,162,93,21,53,251,244,233,243,229,197,139,23,253,119,239,222,61,96,244,232,209,191,237,222, - 189,27,173,91,183,70,108,108,44,234,214,173,139,157,59,119,226,189,247,222,251,109,253,250,245,3,238,220,185,211,212,215,215,119,78,77,154,195,135,15, - 159,212,172,89,179,168,87,175,94,133,230,228,228,4,71,68,68,140,31,60,120,112,194,136,17,35,186,150,238,99,54,26,247,158,60,126,4,125,7,12, - 65,131,70,193,155,198,206,217,211,184,58,77,74,41,125,8,108,217,145,158,174,220,171,213,170,195,120,60,137,228,198,13,249,225,31,126,112,42,29,206, - 5,128,212,212,84,244,239,223,159,199,231,243,219,87,103,39,33,228,219,65,131,6,133,69,68,68,56,0,197,81,157,107,215,174,225,193,131,7,72,74, - 74,66,94,94,30,186,78,44,196,39,203,138,181,63,89,70,209,99,50,149,86,167,105,9,18,31,226,230,104,203,189,58,126,93,131,201,31,109,106,200, - 149,201,121,248,105,214,51,100,37,234,202,162,133,21,236,36,161,161,161,123,134,13,27,70,244,122,61,244,122,189,158,82,170,169,76,91,161,80,136,154, - 54,109,138,137,19,39,50,182,182,182,235,171,178,179,168,168,72,119,234,212,41,140,30,61,26,83,167,78,69,189,122,245,224,224,224,0,30,143,135,93, - 123,14,56,189,55,254,227,250,239,180,235,208,180,225,59,173,155,20,232,56,45,248,18,249,135,21,63,227,171,187,246,66,151,59,136,73,252,29,27,6, - 188,100,111,238,84,23,126,254,254,138,199,79,174,100,60,156,51,108,75,12,253,189,77,214,158,105,201,200,48,198,162,125,152,15,124,155,57,124,38,243, - 38,129,53,105,254,25,106,171,217,184,113,227,118,55,111,222,20,118,232,208,1,47,94,188,0,143,87,246,123,170,236,255,219,219,216,185,112,225,66,161, - 86,171,197,189,123,247,48,102,204,152,84,131,193,240,217,159,177,211,82,202,251,34,255,77,80,74,211,105,185,102,210,229,115,182,42,70,180,22,2,128, - 145,197,137,81,99,198,171,35,35,35,37,2,129,0,47,94,188,64,122,122,58,118,237,216,97,238,226,226,82,208,211,195,67,181,107,199,14,170,215,235, - 65,41,69,96,96,32,134,14,29,42,126,55,108,68,38,81,105,14,212,100,16,33,196,189,116,124,125,252,248,241,111,188,254,249,231,159,195,214,214,22, - 132,16,55,11,174,111,216,148,133,131,60,29,124,237,51,232,171,93,57,224,136,0,174,13,192,181,5,68,118,128,208,6,16,72,160,187,19,149,195,208, - 158,73,67,218,127,224,129,218,13,245,64,161,80,204,59,118,236,152,243,157,59,119,168,74,165,66,122,122,58,93,186,116,169,179,66,161,152,87,243,209, - 149,147,150,150,182,56,60,60,60,35,40,40,200,246,228,201,147,94,65,65,65,182,225,225,225,25,105,105,105,139,223,86,19,0,248,124,62,231,225,195, - 135,242,37,75,150,188,7,224,118,112,112,112,182,167,167,231,237,146,164,201,106,177,177,177,41,115,178,128,226,232,26,151,203,5,143,199,131,66,161,208, - 231,228,228,152,219,191,227,39,14,180,99,140,10,33,95,44,23,139,60,109,108,237,90,101,103,103,223,39,132,88,212,159,144,16,210,172,101,203,150,60, - 51,229,177,69,56,31,4,0,0,32,0,73,68,65,84,159,140,233,170,152,60,174,179,203,247,75,62,244,94,183,248,35,143,111,23,76,8,92,58,103, - 76,39,134,101,181,117,235,214,117,43,77,104,175,9,134,97,66,154,55,111,206,101,193,195,163,39,137,25,73,41,47,11,150,47,154,231,98,50,153,8, - 0,52,108,22,210,211,217,217,185,67,96,96,96,115,75,107,194,136,197,226,102,13,26,52,224,50,28,30,9,109,221,194,65,38,19,187,150,190,102,107, - 111,223,166,77,187,118,61,24,74,243,221,221,221,93,196,98,113,179,90,92,59,151,5,31,77,155,53,225,57,59,217,203,122,118,110,91,47,180,77,104, - 253,198,173,90,135,246,31,60,164,7,49,153,84,126,126,126,46,165,73,242,213,161,211,233,68,123,247,238,197,146,37,75,208,196,199,7,30,30,30,112, - 113,113,193,181,107,215,112,243,230,77,56,56,56,32,51,51,19,43,87,174,196,209,163,71,97,48,24,108,44,177,179,20,74,169,205,253,251,247,255,213, - 187,119,239,174,53,239,93,57,38,147,137,169,232,96,149,82,84,84,212,32,42,42,106,250,208,161,67,67,1,64,44,22,179,165,73,242,85,113,234,212, - 169,61,165,145,172,105,211,166,181,91,187,118,237,111,143,31,63,134,76,38,195,205,155,55,49,126,252,248,223,214,175,95,223,238,227,143,63,198,142,29, - 59,144,144,144,176,173,58,189,225,195,135,47,152,48,97,194,186,43,87,174,48,174,174,174,112,112,112,192,160,65,131,176,109,219,54,174,201,100,218,62, - 108,216,176,187,195,134,13,187,107,78,57,247,229,161,173,75,175,197,220,191,139,73,83,102,10,244,38,99,141,77,47,41,165,84,35,147,21,152,58,116, - 200,57,104,52,170,135,243,249,18,187,187,119,229,39,182,111,47,115,182,102,207,158,13,59,59,59,160,56,129,185,74,60,61,61,63,58,122,244,104,217, - 231,161,163,163,35,4,2,1,248,124,62,120,60,30,56,28,14,46,108,146,226,135,217,197,254,197,15,179,9,206,109,36,127,170,55,171,212,147,4,59, - 184,10,238,254,107,103,163,166,193,93,29,113,109,255,43,44,237,123,231,229,205,131,202,233,218,76,172,170,226,176,119,62,255,252,243,134,153,153,153,184, - 117,235,22,110,221,186,85,105,4,136,82,170,61,113,226,196,55,5,5,5,240,245,245,197,192,129,3,59,16,66,90,84,182,47,33,4,205,155,55,71, - 255,254,253,209,185,115,103,52,105,210,4,122,131,137,55,108,212,71,13,30,37,42,61,150,174,248,90,18,21,21,193,252,246,219,21,206,238,35,231,236, - 90,119,238,177,142,111,227,126,157,72,156,220,45,185,78,181,57,27,205,220,123,99,203,197,41,204,134,203,99,100,187,78,108,240,179,177,177,33,209,183, - 238,26,119,125,119,48,57,88,58,48,243,250,254,108,168,201,43,116,29,231,203,176,181,72,63,248,187,17,137,68,107,175,92,185,226,102,48,24,16,19, - 19,131,169,83,167,254,217,158,161,101,1,16,47,47,47,92,190,124,25,35,71,142,212,102,100,100,212,170,191,233,159,161,188,47,242,79,129,11,188,217, - 41,59,57,57,57,79,46,151,123,52,104,208,128,209,235,245,197,67,18,135,15,155,183,110,223,126,82,171,213,78,1,192,223,248,253,247,155,60,60,61, - 59,143,26,61,154,24,141,70,244,237,219,87,16,25,25,233,24,151,145,81,99,67,228,138,191,54,198,142,29,139,181,107,215,2,0,62,253,244,83,0, - 197,161,245,202,126,149,84,68,102,135,62,61,251,53,183,77,145,110,176,53,180,49,22,214,137,179,185,46,45,20,55,7,35,224,66,196,1,107,48,154, - 158,101,14,190,29,247,44,168,161,56,39,187,110,183,70,29,177,245,252,238,62,0,14,90,122,147,36,18,73,75,133,66,129,219,183,111,231,52,111,222, - 60,143,82,106,183,120,241,98,39,137,68,210,210,82,141,138,80,74,19,9,33,29,166,77,155,54,153,97,152,110,44,203,94,200,200,200,216,72,41,77, - 180,228,120,66,200,39,0,230,163,92,30,138,94,175,7,195,48,160,148,98,248,240,225,152,61,123,118,195,7,15,30,32,42,42,74,222,173,91,183,235, - 132,144,60,0,31,80,74,43,141,154,169,84,42,205,205,155,55,197,81,81,81,96,89,22,114,185,28,182,182,182,16,10,133,24,52,104,144,44,60,60, - 188,235,217,179,103,51,85,117,188,57,162,244,212,34,161,76,102,3,55,143,246,31,143,120,255,49,165,180,198,153,88,165,136,68,34,129,152,107,210,194, - 160,97,190,93,180,158,145,240,249,68,196,231,66,200,170,241,229,55,95,51,124,106,230,162,150,227,243,124,62,159,111,35,132,158,35,224,24,37,4,244, - 237,82,221,94,135,195,225,8,68,124,232,64,241,198,112,22,33,0,143,97,24,134,97,248,0,76,150,106,10,133,66,190,141,144,234,8,232,27,154,12, - 0,49,135,112,8,33,2,20,207,206,122,131,16,119,66,203,69,145,202,114,69,88,150,69,251,246,237,113,50,234,54,14,159,184,128,172,23,247,49,119, - 214,52,180,104,209,2,145,145,145,213,218,84,154,163,85,17,177,88,108,62,127,254,188,83,183,110,221,166,15,28,56,208,112,236,216,177,55,38,148,132, - 44,124,92,105,142,22,187,41,136,142,158,181,118,64,101,81,170,82,4,2,1,115,248,240,97,225,144,33,67,230,68,125,230,227,250,197,193,100,84,151, - 163,69,8,25,216,190,125,251,73,123,247,238,213,245,234,213,75,56,124,248,112,4,7,7,183,27,55,110,28,0,160,91,183,110,88,187,118,109,187,113, - 227,198,225,192,129,3,56,122,244,168,182,83,167,78,179,8,33,169,148,210,83,149,105,178,44,219,127,243,230,205,175,109,51,24,12,48,153,76,48,26, - 141,238,38,147,201,189,228,179,8,235,214,173,207,58,119,54,18,179,230,44,132,139,179,155,69,206,53,135,195,33,99,103,206,204,218,185,114,37,86,30, - 56,128,153,117,235,74,118,63,122,132,115,90,45,14,70,69,101,149,156,167,198,220,204,162,162,34,205,169,83,167,108,15,30,60,8,123,123,123,212,171, - 87,15,114,185,28,60,30,15,12,71,12,14,223,1,13,26,181,4,112,19,0,80,87,129,162,64,95,252,70,8,242,40,131,90,231,20,137,124,72,29, - 87,31,209,149,73,59,130,237,109,93,248,56,179,49,25,103,55,164,28,213,102,97,53,76,120,82,205,100,141,230,190,190,190,200,204,204,196,169,83,167, - 138,128,42,29,50,176,44,251,205,247,223,127,255,249,156,57,115,132,129,129,129,0,208,12,192,173,202,246,149,74,165,240,240,240,40,115,44,135,143,249, - 216,111,226,244,137,226,193,61,186,128,203,117,66,94,145,17,217,5,70,200,157,100,152,53,125,152,232,98,115,143,22,155,215,255,116,156,16,210,130,210, - 55,255,175,17,130,91,55,238,255,214,88,20,8,16,6,72,97,46,129,128,160,144,24,65,56,28,106,54,155,145,156,156,12,74,41,70,14,30,159,242, - 209,210,8,151,118,35,85,240,106,160,0,161,232,136,255,16,71,192,209,209,177,89,118,118,54,18,19,19,49,102,204,152,212,172,172,172,243,69,69,69, - 227,211,210,210,0,32,231,45,36,203,156,249,102,205,154,161,101,203,150,8,11,11,19,169,213,234,97,126,126,126,30,0,218,252,85,182,87,70,69,95, - 228,159,66,149,229,29,132,70,99,3,221,166,77,40,186,112,1,130,115,231,112,80,161,40,212,106,181,51,40,165,41,0,64,8,153,182,99,231,206,171, - 3,126,255,221,86,255,248,49,252,30,60,0,207,222,222,162,15,159,242,108,223,190,29,42,149,10,249,249,249,0,128,13,27,54,64,165,82,161,52,151, - 161,198,11,224,163,157,155,75,93,188,194,51,176,92,70,150,212,64,221,90,166,181,73,243,72,118,45,202,103,60,240,248,69,43,169,38,91,223,154,112, - 244,208,102,169,225,209,182,30,184,224,182,171,141,141,165,227,254,92,46,55,231,233,211,167,253,235,215,175,127,2,128,211,219,228,3,148,135,82,250,28, - 192,148,183,57,150,195,225,204,79,72,72,112,217,182,109,219,228,197,139,23,83,224,15,71,171,116,153,203,229,130,82,10,59,59,59,240,120,60,215,107, - 215,174,185,182,106,213,234,59,20,127,160,189,1,195,48,52,56,56,24,9,9,9,224,114,185,176,179,179,3,107,50,96,225,244,143,97,230,8,185,95, - 124,241,69,179,33,67,134,196,108,219,182,205,104,27,218,182,77,118,118,246,195,73,35,71,197,28,59,118,76,207,178,236,230,202,52,43,185,230,187,207, - 158,61,227,120,42,92,57,212,164,102,165,124,64,116,127,29,21,200,220,32,226,114,40,159,48,16,138,196,118,137,47,95,102,179,44,27,107,137,38,203, - 178,209,9,9,9,98,87,23,71,174,90,163,47,20,243,168,96,195,178,175,211,71,255,107,178,194,104,50,17,109,244,205,203,194,6,65,226,164,12,165, - 180,110,221,186,22,105,106,52,154,187,169,169,169,28,87,87,87,238,249,139,23,46,217,203,164,206,182,246,246,173,1,192,80,144,127,147,209,233,148,28, - 30,215,85,153,157,157,163,209,104,18,44,189,246,184,184,56,174,187,187,11,103,219,246,157,151,92,37,66,23,27,1,215,86,72,8,145,112,136,138,111, - 98,179,68,18,137,75,226,203,151,57,148,210,42,35,132,203,243,70,13,6,0,134,89,120,160,156,54,238,223,191,143,211,191,197,66,74,245,32,218,124, - 156,219,241,35,70,126,49,231,173,243,254,132,66,33,252,253,253,57,7,14,28,176,15,11,11,11,31,62,124,184,241,192,129,3,85,14,109,87,164,186, - 104,22,54,7,221,145,72,36,133,173,91,183,118,216,189,123,119,86,175,225,195,83,140,70,188,95,157,222,200,145,35,23,238,217,179,167,44,1,37,54, - 54,22,93,186,116,1,0,44,88,176,0,189,122,245,66,171,86,173,16,27,27,139,128,128,0,92,188,120,81,196,225,112,68,163,70,141,90,10,160,82, - 71,171,60,91,182,108,193,248,241,227,43,75,172,142,3,160,37,14,129,133,179,151,239,114,202,201,206,66,166,242,213,221,154,239,64,49,132,16,140,157, - 57,51,107,179,94,143,189,55,110,96,180,84,42,217,249,252,57,250,182,106,133,198,93,186,100,89,242,89,87,26,213,209,106,181,224,241,120,176,181,181, - 133,163,163,35,248,124,62,56,60,5,184,130,166,96,248,124,132,180,111,138,149,51,164,234,49,189,177,158,16,228,9,5,136,230,75,80,169,179,75,8, - 33,82,111,12,162,20,42,117,10,46,253,31,123,215,25,30,69,217,69,207,59,179,125,55,187,217,244,10,73,8,36,132,4,8,32,32,189,11,82,68, - 144,242,97,161,40,2,34,32,8,72,9,69,122,81,65,164,11,8,168,168,84,41,82,164,133,142,16,138,161,132,208,66,58,41,155,182,155,108,157,121, - 191,31,201,198,16,82,54,1,84,190,111,207,243,204,179,153,118,230,206,102,103,230,206,125,239,61,215,234,144,168,253,137,163,131,74,120,228,131,85,33, - 106,149,187,8,7,87,60,194,145,85,137,59,245,169,136,0,112,175,162,234,98,137,68,210,64,173,86,35,33,33,1,241,241,241,55,43,74,240,167,148, - 230,183,104,209,226,190,68,34,9,117,115,115,3,128,50,75,6,9,33,132,231,249,226,60,172,173,63,110,119,109,212,54,80,218,165,117,24,182,236,157, - 135,143,6,124,3,33,75,192,113,38,124,181,188,39,44,122,45,6,244,30,78,218,117,174,19,126,116,159,241,3,0,223,150,230,228,4,152,183,244,63, - 231,212,18,7,166,1,120,162,118,117,117,87,136,68,34,184,168,188,140,211,70,140,79,161,148,22,95,55,66,86,100,102,242,156,11,50,83,181,50,181, - 176,0,160,76,149,243,124,95,20,18,19,19,199,182,109,219,118,65,94,94,94,150,78,167,123,7,0,106,213,170,229,199,48,140,4,64,185,163,35,21, - 200,66,136,254,252,243,79,40,149,74,36,37,253,213,147,62,33,33,1,60,207,255,107,138,0,254,141,168,168,234,144,1,128,3,7,14,180,59,112,224, - 0,61,112,224,64,59,235,78,60,165,188,69,163,1,53,20,126,183,66,161,144,2,40,89,209,36,87,171,213,68,232,235,11,34,41,76,253,160,192,115, - 43,125,53,155,109,147,150,225,57,176,32,166,39,130,14,58,41,193,124,215,78,24,43,158,129,84,177,250,175,141,41,5,44,20,28,120,155,68,10,75, - 128,106,52,26,88,44,22,167,218,181,107,31,176,88,44,78,133,116,79,191,41,253,93,224,56,238,62,203,178,248,248,227,143,129,162,232,143,209,104,68, - 106,106,42,12,6,3,140,70,35,30,60,120,128,156,156,28,24,141,70,220,184,113,3,181,106,213,2,203,178,229,134,211,9,33,148,82,138,26,53,106, - 192,223,223,31,44,161,216,176,100,54,166,127,50,18,255,169,197,99,211,202,175,208,190,125,251,122,1,1,1,45,4,2,1,231,233,233,41,218,181,107, - 215,94,142,227,222,172,130,142,214,111,83,167,78,245,15,11,11,115,87,171,148,102,137,152,133,216,172,163,18,67,38,21,228,103,160,70,13,63,11,100, - 242,160,247,222,123,143,131,13,15,71,43,231,167,159,126,234,21,18,18,226,232,164,86,234,196,66,54,173,77,227,70,137,211,63,26,25,7,0,98,55, - 119,61,164,242,208,193,131,7,91,170,194,57,99,198,140,90,110,110,110,106,6,52,143,51,153,82,212,142,142,70,181,163,163,137,49,24,51,137,80,88, - 0,145,248,149,49,99,198,144,170,112,78,154,52,41,32,52,52,84,173,86,41,180,2,33,155,34,226,249,20,41,248,84,161,209,148,37,117,115,205,135, - 220,161,241,123,239,189,87,46,167,53,154,53,101,202,148,132,146,203,89,150,133,70,163,129,62,53,26,162,164,219,8,119,16,162,169,155,19,36,18,73, - 105,181,226,114,57,75,131,16,2,134,97,224,239,239,47,220,191,127,191,250,240,225,195,179,6,15,30,220,196,150,125,95,153,83,193,16,224,186,122,81, - 24,113,139,112,28,199,49,12,131,144,144,16,215,189,123,247,10,132,66,225,182,242,134,143,0,224,135,31,126,152,214,161,67,135,180,174,93,187,26,15, - 28,56,0,66,8,142,31,63,142,164,164,36,116,235,214,13,148,82,107,85,27,174,94,189,138,206,157,59,27,219,180,105,147,244,195,15,63,204,42,223, - 152,191,48,108,216,48,152,205,102,104,181,90,104,52,26,236,223,191,31,225,225,225,84,46,151,247,101,107,188,54,191,255,7,211,90,214,111,216,8,171, - 86,124,97,20,11,132,139,108,225,180,130,16,130,193,159,126,154,145,211,184,177,102,171,78,151,63,68,165,146,215,78,72,112,190,124,248,176,171,201,84, - 105,177,33,128,191,162,58,190,190,190,197,78,150,72,36,130,64,236,6,86,209,0,98,151,174,144,123,246,197,137,43,18,131,163,2,187,149,14,56,164, - 80,163,92,105,7,121,13,204,111,57,208,107,87,171,255,120,29,147,215,196,70,66,8,67,8,97,168,128,236,26,250,85,112,109,55,127,25,206,111,79, - 197,145,85,137,123,244,169,152,13,224,110,101,215,185,201,100,210,115,28,7,134,97,32,16,8,74,230,136,158,221,179,103,15,46,95,190,12,0,197,178, - 61,121,121,121,28,203,178,144,74,165,0,224,80,30,47,199,113,16,10,133,16,10,133,56,121,225,148,203,127,222,234,73,206,93,251,29,173,26,189,141, - 76,173,9,143,115,76,200,206,7,194,154,70,160,65,151,221,184,254,64,139,70,13,235,179,172,88,49,184,44,190,130,7,52,65,251,136,246,203,184,193, - 213,49,38,202,14,158,255,245,214,205,83,59,174,223,248,105,245,190,187,45,155,182,213,1,128,78,167,131,86,171,165,132,16,58,126,248,180,251,91,135, - 101,113,43,222,185,206,11,12,210,123,21,125,7,207,19,132,16,63,119,119,247,115,174,174,174,199,9,33,126,132,16,63,149,74,117,214,219,219,251,54, - 33,164,55,165,244,215,228,228,228,16,173,86,219,138,82,250,136,82,250,40,35,35,163,99,90,90,90,203,138,138,181,92,92,92,54,230,230,230,126,194, - 113,220,27,69,211,235,28,199,53,138,141,141,13,109,212,168,209,205,192,192,192,171,129,129,129,7,3,3,3,247,6,6,6,238,237,208,161,195,114,171, - 220,195,139,68,89,190,200,75,4,107,170,75,143,162,252,172,30,214,21,214,144,204,201,210,9,104,22,137,228,134,101,244,104,168,247,238,133,48,54,22, - 67,7,15,86,201,229,242,21,132,144,38,132,144,86,14,14,14,171,102,207,158,173,116,93,184,16,222,167,78,33,110,255,126,152,133,194,50,195,190,149, - 161,160,160,0,2,65,97,112,205,104,52,66,161,80,128,227,56,0,79,15,217,148,6,103,193,249,164,199,183,33,134,63,120,80,237,161,220,182,23,7, - 221,143,112,223,159,91,43,232,174,78,20,52,199,237,85,247,21,126,173,47,234,136,64,43,86,75,17,31,159,0,14,124,149,198,155,245,122,125,78,86, - 86,22,26,53,106,228,114,249,242,229,218,225,225,225,206,177,177,177,208,235,245,127,84,231,124,173,32,132,180,240,241,241,217,238,235,235,251,208,199,199, - 103,59,33,164,69,21,118,223,120,250,244,105,176,44,139,217,179,103,35,47,47,15,38,147,9,153,153,153,136,143,143,135,209,104,68,98,98,34,98,98, - 98,96,52,26,17,23,23,7,131,161,242,23,18,158,231,161,82,169,160,47,208,98,205,252,233,152,57,117,34,114,238,70,33,49,249,49,212,142,10,140, - 29,59,150,117,114,114,226,57,142,243,183,88,44,157,57,142,91,107,171,195,89,36,90,120,166,70,141,26,245,151,44,89,18,58,125,254,90,145,74,160, - 165,18,165,148,23,43,37,84,92,239,85,12,139,88,33,250,122,217,151,119,206,159,63,159,100,139,120,167,149,179,113,227,198,193,73,73,73,225,33,33, - 33,117,93,253,2,36,18,47,159,236,201,17,51,238,82,131,254,34,241,169,217,102,237,218,181,209,103,207,158,77,174,10,167,66,161,168,183,101,203,150, - 250,30,30,30,245,133,50,153,52,233,209,163,95,51,146,147,126,101,213,78,82,70,165,126,125,247,238,221,81,59,119,238,76,173,10,103,80,80,80,200, - 252,249,243,195,26,52,104,16,230,89,171,182,68,230,83,35,83,234,235,151,41,107,16,46,129,175,127,183,85,171,86,93,61,127,254,188,77,156,44,203, - 90,24,134,129,80,40,132,92,46,199,161,67,135,48,250,131,65,168,225,227,130,186,33,33,232,244,209,39,216,185,115,103,113,14,15,203,178,229,62,209, - 55,47,28,187,175,177,23,137,194,186,122,81,88,87,47,170,177,23,137,162,188,197,129,97,24,136,197,98,4,5,5,9,15,29,58,232,114,230,200,158, - 181,231,39,251,71,53,246,34,81,141,189,72,84,101,54,150,5,107,30,150,213,145,19,139,197,8,15,15,247,58,116,232,144,64,40,20,238,36,132,52, - 44,107,63,74,233,111,39,79,158,92,60,100,200,16,113,247,238,221,113,241,226,69,12,27,54,236,204,174,93,187,0,0,23,47,94,196,248,241,227,207, - 28,59,118,12,35,71,142,68,199,142,29,197,103,206,156,89,101,139,246,143,197,98,193,166,77,155,96,177,88,224,224,224,0,103,103,103,244,236,217,19, - 209,209,209,35,191,251,238,187,219,172,80,248,118,143,55,222,194,129,189,187,16,115,35,122,228,230,5,239,86,89,20,152,97,24,116,31,60,56,35,35, - 44,76,179,57,55,55,255,125,39,39,121,72,106,170,243,137,237,219,93,43,219,151,16,66,56,142,43,118,174,172,78,135,117,18,136,221,32,80,212,135, - 64,217,20,215,239,138,204,194,102,244,138,232,21,122,171,34,253,44,161,152,25,214,119,122,45,244,157,94,11,189,39,7,12,149,215,196,6,69,77,140, - 234,62,206,191,67,96,83,71,228,166,153,176,255,171,184,71,250,76,44,4,16,99,203,117,206,243,252,205,164,164,36,136,197,98,212,172,89,51,152,16, - 98,205,11,220,56,124,248,240,49,115,230,204,153,0,96,78,209,57,57,116,232,208,33,76,171,213,34,54,54,22,0,46,151,199,75,41,45,174,50,212, - 228,198,73,2,188,27,160,97,189,17,112,114,110,136,100,141,17,201,26,35,54,172,121,19,81,167,231,225,242,145,247,16,159,154,10,153,103,95,112,22, - 67,185,213,140,86,152,205,102,239,107,215,174,145,211,167,79,19,158,231,97,54,155,105,94,110,46,189,114,230,12,10,34,35,137,74,165,34,173,155,181, - 213,110,158,119,224,143,221,43,207,92,54,229,87,249,69,253,89,48,227,254,253,251,45,182,111,223,222,1,192,140,6,13,26,156,143,143,143,111,121,234, - 212,169,186,190,190,190,43,42,221,187,28,88,101,33,226,226,226,158,152,138,100,33,140,148,210,198,148,210,238,148,210,222,69,211,248,103,210,122,179,29, - 79,249,34,47,17,42,175,58,44,33,20,134,218,206,206,74,179,217,148,248,251,239,191,155,24,134,129,92,46,199,144,97,195,152,53,171,87,183,25,212, - 162,197,241,15,187,116,57,120,252,216,177,198,205,155,55,7,165,20,12,195,224,231,159,127,46,208,235,11,50,107,214,172,169,46,125,144,210,40,153,123, - 69,41,69,110,110,110,177,163,149,147,147,3,15,15,15,155,135,14,117,185,56,122,236,80,84,22,229,62,138,239,126,119,153,105,81,234,155,205,179,121, - 78,144,195,153,145,83,64,145,167,135,224,34,227,220,124,72,80,31,211,131,206,205,99,34,111,159,203,212,115,250,42,85,75,164,165,165,77,31,54,108, - 88,166,151,151,23,81,169,84,240,241,241,97,62,251,236,179,140,132,132,132,57,85,225,41,9,87,87,215,255,116,232,208,97,95,100,100,100,191,200,200, - 72,255,13,27,54,244,235,208,161,195,62,87,87,215,255,216,72,241,203,180,105,211,116,98,177,24,175,190,250,42,242,242,242,80,84,229,83,225,84,17, - 172,195,142,34,145,8,235,150,204,194,204,169,19,145,121,235,60,174,159,249,29,39,83,9,34,230,127,9,145,72,84,45,173,175,32,119,69,131,6,222, - 202,91,227,135,13,76,158,58,101,138,242,234,213,171,194,49,227,198,211,184,20,13,196,221,191,96,209,110,58,115,77,231,134,30,175,119,194,236,25,19, - 27,80,74,43,81,103,2,66,221,21,13,234,123,43,111,78,252,112,208,253,113,227,198,201,22,45,90,164,111,209,162,69,193,227,199,143,101,10,39,231, - 16,129,163,186,126,92,74,170,67,139,22,45,30,124,244,209,71,217,85,229,140,136,136,144,31,62,124,88,208,191,127,127,75,86,86,150,131,80,38,107, - 68,36,210,102,233,89,89,142,253,250,247,191,219,175,95,191,124,158,231,71,86,133,115,230,204,153,242,152,152,24,65,139,22,45,204,169,169,169,74,133, - 139,107,56,171,118,110,250,48,229,177,170,89,243,230,247,198,140,25,163,171,200,206,146,201,226,74,165,50,169,85,171,86,248,234,171,175,240,245,215,95, - 163,91,183,110,136,190,17,141,30,99,38,32,116,212,120,236,61,119,1,73,73,73,152,59,119,46,194,195,195,33,18,137,98,202,36,29,113,139,92,73, - 161,228,74,10,37,24,113,139,88,231,121,74,114,172,142,144,88,44,70,227,198,77,176,231,200,25,83,231,85,233,143,175,166,226,149,226,237,203,192,229, - 153,101,71,186,26,123,145,168,146,121,88,132,144,98,254,150,45,91,122,30,63,126,92,40,20,10,247,17,66,234,149,181,127,191,126,253,70,91,37,28, - 222,127,255,253,51,43,86,172,104,253,254,251,133,47,218,175,190,250,42,230,205,155,215,58,34,34,226,204,252,249,243,209,169,83,39,4,6,6,86,90, - 248,194,113,28,44,22,11,6,13,26,4,139,197,130,244,244,116,220,185,115,7,235,215,175,7,165,84,10,0,94,222,190,175,136,197,98,92,187,114,41, - 127,198,251,205,127,168,140,179,196,249,21,159,43,207,243,208,106,181,232,55,106,84,70,98,157,58,154,181,25,25,249,31,56,57,201,3,30,61,114,86, - 26,141,62,21,229,164,18,66,192,243,124,177,99,101,117,184,74,79,69,15,74,155,96,202,231,127,59,245,125,50,0,160,237,187,222,232,61,57,96,168, - 87,144,252,155,54,239,20,6,189,119,206,187,79,243,146,185,69,48,227,102,21,34,214,23,47,94,188,8,181,90,141,254,253,251,75,24,134,89,8,20, - 38,191,83,74,87,82,74,151,89,185,36,18,201,23,239,189,247,30,147,157,157,141,235,215,175,3,192,177,178,8,173,121,167,214,115,215,106,8,56,94, - 140,243,87,15,225,72,228,14,220,79,76,199,163,52,61,32,112,132,94,151,8,83,65,18,244,89,81,200,53,200,203,162,123,10,34,145,40,189,65,131, - 6,180,105,211,194,116,174,123,247,238,89,226,30,61,178,92,90,190,156,254,57,98,4,81,222,185,35,146,201,100,164,86,173,90,144,74,165,188,84,42, - 205,180,241,187,120,30,120,33,114,11,47,64,22,226,185,161,164,47,242,50,161,162,170,195,178,4,75,65,85,178,129,59,86,173,113,236,63,232,93,93, - 120,120,184,147,143,143,15,8,33,120,179,79,31,210,33,50,82,41,244,246,134,75,147,38,197,195,17,71,127,255,29,135,14,29,210,29,216,179,219,103, - 216,7,31,244,2,176,165,60,99,8,33,130,218,181,107,23,31,55,37,37,5,18,137,164,56,39,34,55,55,23,110,110,110,72,73,73,41,119,168,163, - 20,182,78,157,114,97,74,90,243,233,181,154,43,133,228,144,238,49,56,74,33,36,28,80,64,97,230,0,131,153,226,149,0,214,249,72,129,197,105,255, - 197,93,15,0,108,173,202,23,168,215,235,79,16,66,70,240,60,191,3,0,19,25,25,201,223,188,121,115,180,173,137,235,101,65,46,151,79,62,116,232, - 144,115,68,68,68,214,254,253,251,115,122,246,236,233,184,114,229,74,231,110,221,186,77,6,240,83,101,251,83,74,11,8,33,91,18,18,18,70,55,109, - 218,20,26,141,6,38,147,9,81,81,81,8,10,10,194,229,203,151,17,28,28,140,75,151,46,161,110,221,186,224,56,14,122,189,30,60,207,151,59,188, - 107,189,153,107,50,210,129,204,120,36,95,252,13,49,215,47,227,120,50,193,202,159,246,161,166,127,173,106,233,212,212,245,80,132,249,184,187,28,89,244, - 249,76,247,184,19,63,99,215,166,149,252,201,131,7,67,197,74,140,104,55,232,147,183,140,102,248,1,16,183,108,222,20,221,157,98,56,185,63,82,143, - 221,168,88,201,186,174,135,34,204,219,205,229,240,210,69,115,149,247,14,126,135,95,214,125,69,119,126,191,45,92,15,52,15,11,11,235,206,48,140,26, - 128,190,40,207,203,166,214,54,101,113,30,221,183,175,177,30,104,254,235,175,191,118,151,203,229,158,0,204,249,249,249,247,159,133,243,216,254,253,141,173, - 118,18,66,220,1,152,40,165,247,108,229,180,98,192,128,1,243,198,143,31,63,133,227,56,55,235,50,179,217,204,126,241,197,23,2,158,231,89,74,169, - 137,97,24,211,225,195,135,57,139,197,146,172,215,235,71,217,202,109,69,209,16,16,196,98,49,186,116,233,146,117,225,194,5,134,227,56,7,0,227,129, - 138,115,170,0,160,160,160,224,137,60,173,210,67,141,37,29,185,17,35,70,100,30,62,124,88,72,8,81,161,48,137,186,107,105,190,200,200,200,185,111, - 191,253,246,212,159,126,250,233,206,138,21,43,222,24,57,114,36,126,254,249,103,212,169,83,7,215,174,93,195,244,233,211,1,160,117,68,68,196,222,141, - 27,55,6,198,197,197,125,81,153,141,102,179,25,22,139,5,219,182,109,195,155,111,190,9,55,55,55,120,123,123,131,16,114,226,131,15,62,88,13,0, - 44,97,69,0,96,208,27,12,33,33,77,109,142,224,6,6,6,22,223,235,82,83,83,139,43,5,95,123,251,237,140,13,139,22,225,135,130,2,124,224, - 228,36,79,244,245,245,218,123,239,222,135,132,144,245,229,69,142,172,81,157,202,156,44,91,35,204,5,41,152,182,103,193,67,79,0,221,218,190,235,141, - 182,239,122,163,105,111,119,194,176,4,127,30,201,68,244,81,205,78,115,46,78,208,42,180,203,161,148,222,116,113,113,217,219,174,93,187,55,234,213,171, - 135,225,195,135,127,36,18,137,68,102,179,121,156,85,230,129,16,226,200,48,204,156,77,155,54,125,232,236,236,140,211,167,79,227,212,169,83,39,40,165, - 241,229,124,143,0,80,172,153,85,179,70,176,62,38,78,43,127,156,120,22,103,78,239,65,157,240,79,32,243,236,5,231,144,249,48,221,254,26,198,204, - 35,112,169,217,11,137,113,247,192,10,36,209,54,216,124,35,49,49,49,48,48,48,144,60,124,248,208,2,128,114,28,71,77,109,218,152,67,23,45,18, - 70,127,244,17,105,25,19,195,82,66,248,75,151,46,1,128,77,121,158,207,27,86,185,133,232,232,232,50,229,22,170,138,6,13,26,180,62,117,234,148, - 68,175,215,227,228,201,147,104,214,172,184,182,235,159,19,115,196,147,190,200,203,4,242,116,175,195,98,103,171,204,167,38,225,137,176,110,112,48,39,98, - 240,221,155,189,122,229,95,189,122,181,248,173,79,255,199,31,208,29,58,4,142,227,64,41,197,169,200,72,188,247,238,187,90,33,75,54,4,4,248,83, - 66,255,210,110,41,171,148,94,36,18,245,239,223,191,127,241,205,39,33,33,1,10,133,2,98,177,24,60,207,195,98,177,128,101,89,56,58,58,194,98, - 177,60,21,130,41,205,73,41,53,115,26,93,191,141,61,222,73,241,214,154,232,135,106,127,248,137,100,197,23,167,167,138,224,141,112,33,92,5,105,244, - 216,23,93,146,121,67,102,63,90,170,183,88,101,37,255,132,144,224,134,13,27,174,238,211,167,15,3,0,157,59,119,102,26,54,108,248,13,33,164,220, - 86,57,149,113,74,165,82,137,72,36,194,190,125,251,52,119,238,220,233,182,111,223,62,141,72,36,130,84,42,45,87,251,170,12,206,245,75,150,44,129, - 92,46,135,197,98,129,209,104,44,206,207,42,249,105,50,153,224,234,234,138,3,7,14,128,227,184,3,149,112,162,134,159,63,136,91,109,108,222,123,12, - 167,50,68,85,118,178,74,114,214,241,114,168,235,233,234,242,251,210,5,115,221,178,238,70,33,49,49,145,30,62,116,224,124,1,165,73,217,185,116,70, - 150,150,214,205,55,80,105,179,64,196,255,190,238,51,26,209,22,102,144,178,170,252,254,226,12,243,114,168,235,227,230,114,248,171,47,22,41,179,99,47, - 35,37,53,21,191,29,216,119,181,128,210,36,74,233,78,74,233,80,142,227,234,115,28,87,159,82,58,180,60,231,165,170,156,58,157,174,129,78,167,107, - 240,60,57,121,158,111,192,243,188,205,156,37,29,149,101,203,150,221,78,73,73,121,47,45,45,173,171,117,202,202,202,234,172,213,106,219,231,231,231,183, - 41,88,230,239,168,211,233,220,243,242,242,188,10,10,10,94,161,148,70,149,197,89,30,116,58,29,189,116,233,82,188,151,151,87,254,206,157,59,209,174, - 93,59,71,15,15,143,173,22,139,69,65,41,125,202,201,42,201,201,140,188,69,126,252,114,226,158,117,235,214,149,155,19,104,48,24,144,150,150,102,8, - 15,15,207,60,112,224,0,252,252,252,20,5,5,5,63,155,76,38,47,0,189,203,178,51,61,61,125,199,182,109,219,26,213,170,85,43,112,232,208,161, - 88,187,118,45,86,172,88,97,0,128,141,27,55,26,74,68,178,106,60,124,248,176,105,89,195,134,79,216,201,48,91,95,123,237,53,122,234,212,41,188, - 249,230,155,197,66,162,223,126,251,45,44,22,75,110,167,78,157,120,0,40,208,231,231,82,158,194,104,42,123,252,189,172,239,83,44,22,191,94,82,47, - 208,42,198,44,22,139,65,41,69,221,214,173,51,178,195,195,53,155,114,114,242,103,55,104,160,250,48,36,100,104,61,224,221,178,56,9,33,79,68,117, - 74,79,182,70,178,74,114,82,74,211,10,146,49,124,207,130,135,135,172,145,45,169,131,0,250,60,11,118,47,122,152,174,79,199,183,0,202,116,126,42, - 58,119,141,70,51,102,209,162,69,6,39,39,39,188,245,214,91,152,63,127,254,7,173,91,183,206,241,240,240,184,16,20,20,244,231,192,129,3,83,162, - 162,162,198,116,236,216,17,177,177,177,248,242,203,47,179,179,178,178,222,169,136,147,16,82,28,201,235,221,163,179,102,205,55,95,241,157,218,143,134,92, - 166,132,89,88,3,26,173,25,89,58,10,163,164,57,196,34,9,186,182,8,195,133,195,155,243,57,163,110,75,121,156,86,104,181,218,157,67,134,12,201, - 21,137,68,48,26,141,84,40,20,66,82,152,119,204,11,187,117,51,181,188,121,211,194,81,202,19,66,48,105,210,36,93,86,86,214,79,149,113,62,11, - 74,113,62,23,185,133,210,118,62,15,89,136,23,113,238,47,51,138,162,89,79,76,214,117,79,200,59,88,63,9,225,57,142,227,17,80,43,64,25,247, - 48,126,229,128,1,253,223,239,222,189,135,188,71,143,30,210,176,219,133,67,23,251,246,237,195,174,93,187,242,143,28,57,146,43,17,178,27,107,212,172, - 225,193,113,60,8,41,63,98,2,0,74,165,114,220,180,105,211,100,57,57,57,88,177,98,5,223,168,81,35,70,161,80,192,100,50,97,227,198,141,230, - 176,176,48,33,195,48,200,201,201,1,195,48,101,15,117,60,125,130,215,9,33,93,87,119,232,187,171,233,199,195,92,66,59,180,116,106,95,195,7,230, - 38,20,201,9,15,113,231,216,145,172,27,135,151,103,66,255,184,47,165,212,230,166,215,86,120,123,123,207,218,181,107,151,251,212,169,83,169,94,175,39, - 241,241,241,116,193,130,5,238,195,135,15,159,5,192,214,161,190,210,32,233,233,233,32,132,240,0,138,63,81,5,89,3,74,105,52,33,228,215,62,125, - 250,244,238,212,169,19,110,223,190,93,60,68,88,210,209,178,86,31,46,92,184,48,27,64,185,138,206,86,8,133,66,172,216,178,3,217,89,25,240,240, - 240,134,84,38,171,86,36,11,0,196,12,51,123,241,220,153,238,25,183,46,144,232,243,199,249,237,215,31,167,89,56,90,182,226,127,94,50,5,0,166, - 178,220,60,134,157,189,100,225,92,71,235,176,230,79,87,82,114,9,71,199,84,203,192,151,141,243,111,132,94,175,23,182,109,219,22,148,210,143,35,34, - 34,190,249,243,207,63,21,171,87,175,30,74,8,153,71,41,205,168,108,127,2,128,231,249,226,223,115,233,97,195,252,252,124,174,78,157,58,169,102,179, - 121,115,68,68,196,212,168,168,40,201,202,149,43,223,6,48,155,210,138,219,156,60,120,240,96,65,147,38,77,38,198,198,198,110,15,13,13,29,9,160, - 166,193,96,200,142,136,136,88,186,113,227,198,247,109,137,100,1,192,207,63,255,188,124,216,176,97,135,122,245,234,245,25,207,243,197,185,97,132,144,7, - 238,238,238,197,67,184,233,143,83,167,140,120,127,208,20,173,54,203,102,157,59,7,7,135,15,35,34,34,164,58,157,14,171,86,173,226,195,194,194,24, - 235,75,209,247,223,127,111,9,14,14,22,244,31,61,58,99,89,106,42,230,157,62,173,155,82,191,126,163,77,119,238,188,130,50,34,238,214,23,199,178, - 34,89,214,180,139,234,128,82,154,76,8,25,190,103,193,195,111,1,116,107,57,192,19,191,46,121,136,172,56,227,82,88,112,175,162,170,193,10,56,19, - 9,33,93,31,63,126,252,235,204,153,51,29,95,121,229,21,212,175,95,95,232,224,224,208,92,169,84,66,42,149,34,59,59,27,71,143,30,197,218,181, - 107,141,55,110,220,232,67,41,45,87,6,132,227,184,180,224,224,194,119,90,66,8,37,132,100,230,26,136,227,47,123,154,59,12,27,177,147,156,185,116, - 22,73,38,30,6,51,143,128,90,141,209,190,219,50,236,253,237,26,151,28,119,243,166,185,32,107,131,13,246,222,147,203,229,187,231,206,157,59,224,179, - 207,62,147,101,100,100,112,49,10,152,205,0,0,32,0,73,68,65,84,6,131,129,223,177,99,7,59,116,232,80,142,10,4,188,72,32,192,184,113,227, - 10,178,179,179,247,20,85,139,255,93,120,33,114,11,47,64,22,226,185,160,180,47,242,191,130,50,175,80,158,101,206,174,93,183,230,245,159,183,253,228, - 201,178,140,231,189,251,247,47,189,209,183,95,210,239,191,255,238,44,114,116,108,6,128,55,142,28,121,222,100,40,208,236,255,245,87,191,128,0,255,240, - 162,166,210,148,103,153,179,21,29,80,171,213,234,78,159,62,157,63,117,234,84,146,144,144,240,163,135,135,199,192,131,7,15,58,244,237,219,183,224,246, - 237,219,59,61,61,61,123,119,232,208,65,57,113,226,68,131,86,171,181,185,241,40,165,244,38,33,164,222,31,51,191,120,251,143,37,107,186,64,192,182, - 130,65,8,240,230,179,48,229,253,14,224,71,74,169,205,122,71,37,161,80,40,194,61,60,60,112,245,234,213,172,230,205,155,27,245,122,189,104,254,252, - 249,46,10,133,34,188,58,124,69,246,82,173,86,11,158,231,5,0,72,209,39,248,170,215,226,255,231,141,55,222,248,245,151,95,126,121,173,71,143,30, - 8,12,12,132,217,108,70,112,112,48,140,70,35,130,130,130,96,48,24,240,249,231,159,35,39,39,103,2,173,160,89,49,33,4,22,139,165,56,217,214, - 199,215,175,80,167,231,25,100,44,20,66,38,48,102,255,38,164,101,102,240,191,92,123,252,56,223,196,117,141,77,211,221,40,189,93,62,7,93,135,161, - 99,147,0,192,192,163,194,142,243,10,49,2,99,246,175,199,227,180,12,252,124,37,37,91,103,226,187,197,148,193,89,37,59,95,18,206,198,159,223,70, - 63,27,5,65,202,211,184,178,21,148,210,125,0,190,164,148,94,117,117,117,29,124,244,232,209,182,29,59,118,148,30,62,124,120,12,128,153,149,237,127, - 37,133,18,126,109,61,138,117,155,10,109,41,165,145,197,113,92,20,199,113,27,40,165,59,253,252,252,94,59,118,236,88,139,247,222,123,79,182,101,203, - 150,137,0,42,20,4,45,138,84,253,10,0,132,144,132,65,131,6,77,121,248,240,225,92,90,168,151,101,147,212,136,21,155,54,109,138,5,240,180,114, - 114,9,252,244,197,176,221,0,108,214,138,3,128,188,188,60,125,84,84,148,126,226,196,137,36,33,33,225,160,167,167,231,107,135,14,29,146,247,237,219, - 215,16,29,29,125,204,219,219,187,109,231,206,157,29,126,187,120,49,41,255,222,189,253,251,31,62,244,53,243,124,185,162,103,132,144,231,234,100,89,97, - 117,182,118,207,123,184,248,215,197,15,59,243,6,236,52,102,225,60,128,196,103,224,60,69,8,9,125,247,221,119,127,233,217,179,103,203,208,208,80,212, - 172,89,19,119,238,220,65,122,122,58,174,95,191,142,125,251,246,237,211,235,245,149,54,212,206,204,204,124,170,61,17,145,185,120,111,94,53,123,223,165, - 51,205,130,219,246,24,34,171,239,205,195,104,162,72,120,116,15,159,207,216,152,159,242,232,206,77,147,197,212,199,230,97,212,130,130,245,95,127,253,181, - 112,255,254,253,61,86,174,92,169,244,243,243,99,69,34,17,3,128,94,190,124,153,142,29,59,86,151,145,145,113,32,55,55,119,125,165,100,207,23,167, - 238,223,191,223,152,101,217,231,42,183,80,93,89,8,59,170,7,82,222,239,48,48,176,70,40,195,241,173,40,101,88,74,136,206,204,99,95,124,124,124, - 118,201,109,106,59,59,43,169,74,54,144,240,68,72,8,207,241,44,115,246,254,253,132,226,136,17,33,164,51,125,186,101,78,160,74,165,90,33,151,203, - 35,146,147,147,175,170,213,234,222,132,144,185,148,210,25,217,217,217,191,42,149,202,222,0,230,251,249,249,45,143,142,142,126,74,255,164,44,206,103,69, - 101,156,117,235,214,29,116,229,202,21,199,198,141,27,231,196,196,196,108,171,91,183,238,160,253,251,247,59,246,236,217,51,39,38,38,102,91,117,56,107, - 214,172,217,105,215,174,93,174,167,78,157,50,175,95,191,222,50,100,200,16,65,221,186,117,133,99,199,142,189,159,144,144,80,102,245,77,121,156,164,176, - 213,206,6,161,80,216,137,97,24,194,243,124,241,63,213,154,71,199,113,220,94,0,35,75,223,120,74,114,186,186,186,158,17,8,4,62,69,203,81,242, - 179,36,204,102,115,82,122,122,122,185,90,100,37,57,235,121,41,91,43,69,100,161,222,76,169,133,167,35,110,166,106,43,150,254,182,145,211,65,196,46, - 52,152,121,222,194,243,35,255,159,56,75,10,150,90,19,227,43,154,47,79,0,180,170,215,17,33,164,49,195,48,127,168,84,170,99,217,217,217,195,41, - 165,79,61,132,159,229,218,36,132,52,84,40,20,127,72,36,146,244,252,252,252,190,5,5,5,151,158,149,179,130,99,253,45,156,132,144,64,165,82,57, - 87,173,86,47,125,244,232,209,85,181,90,221,139,82,250,9,207,243,203,243,242,242,246,41,149,202,94,148,210,9,254,254,254,155,163,163,163,55,87,196, - 233,226,226,114,217,122,109,2,160,214,235,210,122,61,151,188,174,205,102,115,98,86,86,214,171,182,218,89,98,157,59,128,0,20,10,240,222,165,148,230, - 86,247,220,75,173,175,5,160,19,10,245,251,178,1,60,0,112,153,82,122,189,186,156,69,219,16,161,204,121,36,43,150,191,109,173,46,100,89,113,52, - 103,202,223,98,46,200,218,80,209,189,174,2,206,186,206,206,206,239,88,44,150,16,74,169,51,128,44,177,88,124,59,35,35,227,123,74,233,83,35,44, - 47,250,183,68,8,113,0,176,28,64,67,0,143,241,151,144,113,28,128,175,43,115,82,255,46,59,237,40,204,209,42,57,92,248,196,58,27,29,254,234, - 30,248,165,248,231,218,57,237,156,118,78,155,246,81,85,244,240,125,86,59,9,33,33,0,98,41,165,92,137,101,255,138,115,183,115,254,255,113,18,66, - 24,90,73,181,229,191,193,206,255,37,206,151,25,21,37,195,63,123,220,217,14,59,236,248,191,128,173,17,142,103,224,175,86,196,207,14,59,94,4,42, - 115,178,236,176,163,52,202,141,104,1,40,179,114,160,138,158,127,149,171,15,108,8,225,218,57,237,156,118,78,59,167,157,211,206,105,231,252,31,227,252, - 127,131,125,232,208,206,105,231,180,115,218,57,237,156,118,78,59,231,63,206,249,50,195,62,116,104,135,29,118,216,97,135,29,118,216,241,130,96,117,170, - 202,74,138,183,59,90,85,4,41,236,89,247,17,128,126,0,106,3,184,7,96,7,128,213,213,25,211,39,133,42,216,83,0,180,66,97,247,250,7,0, - 78,3,88,68,41,173,80,230,224,255,25,110,110,110,211,132,66,161,26,40,108,109,98,253,44,249,55,199,113,217,57,57,57,11,94,196,241,157,157,157, - 149,26,141,38,175,42,182,150,180,173,228,167,217,108,126,97,118,218,241,239,4,33,36,216,217,217,249,7,141,70,243,14,165,244,78,229,123,216,97,199, - 203,3,119,119,247,145,38,147,41,66,36,18,205,79,75,75,91,243,79,219,243,119,161,188,202,195,98,71,235,192,129,3,145,0,208,163,71,143,118,0, - 224,228,228,116,142,97,152,90,85,57,8,207,243,15,178,178,178,202,21,80,115,114,114,58,199,178,236,83,156,102,179,89,41,16,8,202,124,104,89,44, - 150,196,156,156,156,87,170,98,199,139,2,41,172,169,222,239,228,228,164,159,59,119,238,234,246,237,219,215,72,78,78,182,76,158,60,185,237,181,107,215, - 122,16,66,94,175,138,179,69,8,105,65,8,217,220,168,81,163,221,131,7,15,254,165,121,243,230,226,204,204,76,229,142,29,59,124,182,108,217,18,69, - 8,121,135,82,90,110,163,213,255,103,8,133,66,117,98,98,162,18,40,148,176,40,114,172,96,54,155,97,54,155,161,211,233,16,30,94,109,153,179,114, - 225,235,235,219,142,231,249,181,126,126,126,129,222,222,222,119,120,158,31,154,154,154,90,225,255,168,180,173,22,139,5,148,210,98,59,67,67,67,159,187, - 157,255,171,32,132,188,230,236,236,252,65,205,154,53,95,201,207,207,23,197,198,198,94,7,48,131,82,90,237,190,111,229,28,199,5,192,124,71,71,199, - 215,67,67,67,189,238,221,187,167,73,75,75,187,8,96,18,165,52,246,25,185,131,219,181,107,119,102,213,170,85,46,163,70,141,58,67,8,105,109,119, - 182,236,248,167,80,179,102,77,181,78,167,219,0,160,177,80,40,244,148,74,165,144,201,100,169,18,137,228,170,76,38,123,255,204,153,51,217,149,146,148, - 2,199,113,51,227,226,226,60,95,125,245,213,37,245,235,215,255,60,35,35,67,111,50,153,142,101,101,101,77,168,172,168,166,180,47,242,178,192,58,116, - 88,114,8,241,137,161,195,162,190,66,237,75,238,36,16,8,124,31,61,122,228,46,149,74,193,243,124,241,195,172,244,100,93,110,52,26,81,191,126,253, - 10,85,132,133,66,97,141,132,132,4,119,177,88,92,188,204,104,52,194,199,199,135,79,76,76,116,47,106,123,80,12,131,193,0,95,95,223,127,83,207, - 163,143,156,157,157,115,226,227,19,194,245,6,211,156,225,99,166,78,123,167,95,23,167,115,231,206,241,175,191,254,186,33,50,50,242,35,0,54,137,172, - 18,66,28,9,33,91,38,79,158,252,185,84,174,114,57,126,238,166,97,203,142,3,73,141,130,3,200,132,9,19,216,177,99,199,158,106,220,184,241,15, - 132,144,38,85,137,108,57,59,59,31,146,72,36,254,0,96,48,24,226,53,26,205,107,213,60,215,151,2,153,153,153,40,40,40,120,106,10,13,13,181, - 181,87,166,205,240,245,245,149,138,68,162,221,223,124,243,141,250,234,149,43,88,179,118,109,61,134,97,150,161,48,26,89,41,210,210,210,158,178,51,36, - 164,236,230,203,118,60,13,66,136,75,199,142,29,119,44,95,190,220,129,231,121,24,12,6,196,196,196,120,174,95,191,190,11,33,164,19,165,52,242,57, - 29,71,30,28,28,124,127,230,204,153,170,134,13,27,194,108,54,67,175,215,187,70,71,71,247,252,246,219,111,187,21,93,147,127,86,151,223,217,217,249, - 135,111,191,253,214,69,46,151,99,239,222,189,46,157,58,117,58,77,8,105,83,93,103,139,16,194,184,184,184,140,5,208,145,231,121,49,128,139,89,89, - 89,243,104,53,84,221,29,29,29,47,57,57,57,249,201,100,50,66,139,52,248,172,19,207,243,148,231,121,232,245,122,98,48,24,174,104,52,154,167,122, - 81,218,241,114,193,213,213,245,131,188,188,188,85,18,137,68,228,228,228,4,185,92,14,129,64,0,129,64,80,83,34,145,212,148,72,36,221,59,118,236, - 56,250,248,241,227,21,42,236,183,108,236,57,20,12,153,195,18,134,5,128,122,117,92,84,142,142,142,152,51,103,142,162,119,239,222,10,0,56,115,230, - 204,224,33,67,134,116,34,132,212,47,207,217,42,203,23,121,89,80,94,197,33,240,100,83,233,200,146,43,172,205,94,47,92,184,0,91,196,202,173,45, - 18,42,130,85,97,252,218,181,107,197,203,172,15,26,177,88,140,179,103,159,20,149,111,209,162,69,153,130,153,47,18,253,195,8,5,128,237,31,23,218, - 213,127,101,97,197,249,246,143,67,208,166,182,12,253,198,206,30,152,175,55,53,5,160,203,206,202,202,186,180,107,87,114,163,224,96,209,15,63,252,208, - 204,199,199,167,31,108,116,180,0,76,105,210,164,201,78,86,230,232,58,120,200,208,193,239,11,24,211,123,35,38,206,79,72,201,208,125,248,225,135,187, - 246,238,221,59,120,241,226,197,183,38,77,154,52,5,192,116,91,237,151,74,165,254,49,49,49,65,28,199,33,52,52,244,95,215,198,128,16,210,200,193, - 193,225,123,173,86,251,46,165,244,170,117,153,82,169,252,62,47,47,175,120,153,173,176,70,176,202,154,158,23,252,253,253,37,0,36,148,210,198,163,70, - 141,146,221,136,142,198,154,181,107,173,171,155,86,182,191,245,250,49,26,141,120,235,173,183,222,229,56,78,96,117,2,13,6,131,49,39,39,71,95,162, - 178,39,157,82,218,165,50,78,66,72,45,133,66,177,20,64,227,130,130,2,31,0,80,40,20,73,60,207,239,214,233,116,211,105,81,3,223,170,130,16, - 82,3,64,24,80,110,43,40,186,112,225,194,216,41,83,166,220,255,7,56,187,186,187,187,43,238,223,191,143,213,171,87,91,156,156,156,204,189,123,247, - 150,142,27,55,142,61,127,254,124,111,0,145,182,218,84,9,58,79,156,56,81,85,191,126,125,108,220,184,209,18,21,21,149,234,239,239,239,250,250,235, - 175,75,70,143,30,45,24,50,100,72,111,0,213,118,180,52,26,205,188,137,19,39,110,217,182,109,155,242,193,131,7,88,185,114,165,235,192,129,3,35, - 9,33,237,108,117,182,72,161,72,241,88,0,29,88,150,109,51,100,200,16,203,152,49,99,132,12,195,152,151,45,91,230,182,113,227,198,129,174,174,174, - 141,51,50,50,108,122,73,35,132,12,119,116,116,252,15,203,178,1,177,177,177,206,214,190,179,214,201,108,54,23,71,140,141,70,35,94,125,245,213,218, - 213,61,255,127,19,88,150,53,241,60,47,4,32,165,148,26,42,155,255,135,205,125,174,112,113,113,25,149,149,149,181,218,211,211,19,30,30,30,79,61, - 107,13,6,3,164,82,169,200,211,211,243,219,55,223,124,83,184,103,207,158,114,135,0,9,75,102,238,253,105,174,143,179,147,18,0,176,124,237,225,124, - 0,216,179,103,15,146,147,147,225,228,228,132,250,245,235,179,115,231,206,245,154,48,97,194,87,0,222,47,143,171,180,47,242,178,160,244,176,97,201,249, - 10,115,180,40,165,197,125,242,108,65,233,86,45,165,43,18,40,165,196,104,52,162,116,68,11,0,44,22,11,132,66,225,19,251,115,28,7,66,8,45, - 197,81,89,41,234,16,133,66,17,174,211,233,190,161,148,218,244,48,40,201,185,253,227,16,108,145,76,30,100,237,68,218,125,98,225,231,22,0,231,30, - 190,191,114,85,187,118,62,99,103,172,152,93,144,153,156,49,237,221,94,254,65,158,46,50,69,118,90,142,115,221,186,93,81,168,168,108,147,157,0,218, - 14,30,60,120,235,145,11,113,68,42,21,137,4,44,43,108,221,32,216,165,134,35,235,168,4,28,19,238,199,158,27,58,116,104,131,73,147,38,181,169, - 2,39,0,64,161,80,224,251,239,191,183,230,147,217,124,238,207,11,229,113,18,66,26,5,5,5,157,136,136,136,80,141,25,51,230,24,33,164,19,0, - 4,7,7,159,152,55,111,158,106,248,240,225,199,138,34,19,79,57,91,165,57,173,209,84,171,83,53,100,200,144,119,45,22,75,241,239,185,12,7,6, - 40,229,196,216,122,238,38,147,233,24,128,87,197,98,177,57,33,62,30,187,118,63,209,137,229,184,45,231,110,181,149,227,56,193,149,43,87,132,37,126, - 235,66,0,10,0,174,148,82,48,12,243,212,3,188,52,39,33,36,68,46,151,159,219,183,111,159,234,149,87,94,33,98,177,24,22,139,5,209,209,209, - 53,22,47,94,60,226,232,209,163,175,19,66,66,105,169,230,233,182,216,9,32,236,244,233,211,186,192,192,192,50,123,150,230,230,230,10,130,131,131,219, - 1,120,234,218,122,209,156,148,210,31,8,33,15,183,111,223,254,133,197,98,121,11,128,73,171,213,166,127,242,201,39,164,118,237,218,54,71,87,42,251, - 191,171,84,170,94,29,59,118,196,182,109,219,240,229,151,95,246,163,148,254,74,8,241,203,206,206,142,27,61,122,52,234,212,169,211,15,192,231,85,225, - 180,130,16,18,220,182,109,219,111,231,204,153,163,60,112,224,0,130,130,130,144,151,151,135,79,63,253,212,125,214,172,89,39,9,33,237,173,206,86,5, - 215,81,168,68,34,217,188,109,219,54,135,192,192,192,64,145,72,196,4,6,6,66,163,209,64,175,215,75,230,207,159,223,64,38,147,93,251,250,235,175, - 55,3,232,91,153,157,132,144,79,150,46,93,186,108,220,184,113,112,115,115,51,177,44,139,115,231,206,149,123,14,190,190,190,32,132,20,55,59,174,232, - 220,5,2,193,99,0,46,0,118,113,28,55,131,218,216,39,176,60,206,34,62,119,235,60,203,178,144,72,36,16,139,197,16,139,197,24,49,98,132,54, - 34,34,66,105,43,39,249,203,187,8,39,132,252,193,178,108,133,243,165,83,67,254,206,251,167,21,132,16,95,66,200,114,0,29,0,48,12,195,68,186, - 186,186,142,75,77,77,125,100,43,167,183,183,183,139,86,171,253,218,203,203,11,30,30,30,64,33,17,124,124,124,96,54,155,241,248,241,99,80,74,145, - 157,157,13,185,92,14,111,111,239,175,71,140,24,177,99,221,186,117,153,101,114,242,88,252,198,192,136,153,44,203,50,0,192,10,20,14,159,76,5,252, - 253,253,209,186,117,107,232,245,122,228,228,228,32,44,44,76,64,8,25,204,48,140,138,82,186,134,82,250,196,253,243,127,1,21,37,195,127,94,122,92, - 148,20,117,139,23,137,68,54,57,90,69,219,87,22,65,97,204,102,51,68,34,81,241,2,179,217,12,66,8,56,142,123,98,57,80,232,104,85,3,206, - 163,71,143,230,191,253,246,219,145,132,144,181,182,58,91,165,49,120,240,224,167,154,156,78,152,48,33,49,45,45,141,190,213,53,92,113,251,96,114,74, - 109,39,7,153,155,82,25,32,117,114,86,103,102,102,158,7,160,174,194,33,234,52,105,210,68,182,101,215,233,196,225,227,23,206,125,37,208,69,213,208, - 215,213,201,211,81,38,118,96,136,78,106,49,39,58,59,59,7,85,213,110,235,125,67,46,151,131,97,152,127,85,68,203,193,193,225,251,136,136,8,85, - 151,46,93,176,121,243,102,245,144,33,67,142,121,120,120,48,81,81,81,42,158,231,49,103,206,28,245,140,25,51,190,7,80,207,22,62,158,231,97,50, - 153,96,50,153,138,29,152,18,191,161,98,7,198,186,45,203,178,213,138,66,24,12,134,111,188,189,189,91,180,105,211,70,92,228,100,233,0,176,0,226, - 1,124,98,11,135,53,42,0,20,54,237,142,143,143,135,80,40,44,238,89,39,20,10,33,149,74,109,178,71,34,145,76,252,249,231,159,85,205,154,53, - 35,153,153,153,224,121,190,248,38,185,122,245,106,105,191,126,253,124,162,162,162,166,161,148,51,96,35,72,121,14,17,0,168,84,42,11,128,170,54,191, - 44,147,211,98,177,144,86,173,90,77,202,200,200,104,80,80,80,48,223,22,34,74,233,121,0,45,172,243,117,234,212,121,4,192,223,221,221,189,78,21, - 109,42,23,190,190,190,205,100,50,25,46,95,190,12,0,71,139,142,251,168,78,157,58,9,0,106,184,187,187,219,52,222,75,8,9,14,9,9,249,221, - 221,221,93,102,189,135,246,239,223,95,184,126,253,122,101,82,82,18,76,38,19,166,76,153,130,158,61,123,194,213,213,21,19,38,76,240,88,178,100,201, - 15,0,154,84,192,41,21,139,197,91,239,222,189,27,228,229,229,37,187,112,225,2,26,54,108,136,140,140,12,164,166,166,66,171,213,34,53,53,21,239, - 191,255,190,251,87,95,125,229,109,131,141,159,44,89,178,100,217,132,9,19,176,108,217,50,176,44,107,160,148,138,74,190,12,151,179,159,45,95,1,240, - 151,83,212,71,32,16,244,84,40,20,199,229,114,249,244,180,180,180,104,91,9,74,193,197,250,135,64,32,128,84,42,133,68,34,129,68,34,129,66,161, - 128,187,187,187,162,154,188,47,5,8,33,62,132,144,155,34,145,72,34,151,203,69,12,195,64,34,145,116,117,118,118,190,241,218,107,175,213,63,114,228, - 72,156,45,60,122,189,126,171,68,34,17,186,187,23,254,123,130,130,130,208,176,97,67,232,116,58,62,39,39,7,106,181,154,121,244,232,17,10,10,10, - 144,146,146,2,63,63,63,33,195,48,91,1,188,94,22,223,217,168,148,181,0,138,195,252,110,110,110,143,1,200,172,243,82,169,20,62,62,62,72,74, - 74,130,82,169,100,103,205,154,213,247,151,95,126,233,67,8,25,76,41,253,190,4,213,83,190,200,203,132,178,242,180,128,34,71,171,71,143,30,179,15, - 28,56,208,174,244,78,148,82,8,133,194,231,150,235,98,117,168,84,42,85,241,178,162,168,21,120,158,47,47,162,85,229,227,72,165,82,217,168,81,163, - 242,214,172,89,83,101,103,171,255,202,219,197,81,172,210,8,13,13,61,55,109,218,180,222,39,78,156,72,122,37,48,64,160,72,126,164,149,170,212,106, - 248,214,236,49,228,205,190,215,81,88,125,104,43,238,230,229,229,201,106,251,202,141,12,163,39,53,37,2,165,151,66,36,241,116,114,242,17,25,13,105, - 42,39,39,177,193,96,200,6,80,110,19,104,0,240,244,244,60,44,147,201,252,172,243,30,30,30,142,148,82,200,229,114,120,121,121,57,4,4,4,20, - 15,69,232,245,250,71,169,169,169,149,190,249,59,57,57,29,150,72,36,126,12,195,128,16,2,150,101,193,48,12,24,134,41,254,155,101,89,16,66,144, - 159,159,255,232,225,195,135,54,69,19,180,90,237,187,99,198,140,57,182,101,203,22,117,131,6,13,176,119,239,94,181,179,179,51,120,158,71,84,84,20, - 102,206,156,153,157,147,147,243,174,45,92,0,158,72,126,183,190,20,196,196,196,20,59,46,37,39,165,178,204,151,220,74,65,8,9,105,211,166,205,242, - 1,3,6,144,133,11,23,82,20,14,127,73,1,4,164,164,164,36,82,27,47,14,74,41,76,166,191,82,102,4,2,1,132,66,161,53,31,162,74,205, - 129,89,150,237,218,164,73,19,146,147,147,99,117,32,33,16,8,192,178,44,88,150,197,170,85,171,100,205,154,53,139,144,74,165,147,68,34,81,174,217, - 108,254,73,175,215,207,167,148,86,57,169,245,69,162,77,155,54,227,19,18,18,122,250,249,249,237,171,46,7,165,212,8,60,17,153,120,102,88,35,193, - 69,81,211,252,18,199,178,14,199,218,116,44,87,87,215,31,126,251,237,55,95,63,63,63,152,205,102,88,44,22,104,181,90,68,70,70,194,96,48,192, - 98,177,32,40,40,8,51,103,206,212,143,27,55,78,186,110,221,186,52,173,86,251,78,37,180,227,118,236,216,161,240,242,242,146,21,20,20,224,254,253, - 251,104,210,164,9,242,242,242,160,211,233,144,159,159,15,147,201,132,220,220,92,53,199,113,198,74,206,115,240,168,81,163,150,141,28,57,18,155,55,111, - 198,134,13,27,52,110,110,110,142,221,186,117,43,254,173,90,44,22,188,253,246,219,104,214,172,89,241,126,69,247,130,42,61,20,4,2,129,64,34,145, - 8,164,82,105,55,137,68,210,33,56,56,248,130,68,34,153,118,253,250,245,75,85,225,1,176,11,133,78,155,64,38,147,65,42,149,66,42,149,66,44, - 22,163,85,171,86,92,126,126,254,181,74,25,74,160,244,245,91,217,252,63,13,66,200,114,145,72,36,113,118,118,46,126,163,228,121,94,228,224,224,0, - 119,119,247,149,0,186,219,194,67,41,109,228,236,236,92,124,127,15,15,15,71,66,66,194,238,156,156,156,247,210,210,210,192,48,204,86,134,97,250,20, - 241,35,43,43,11,53,106,212,104,84,30,95,171,38,94,35,65,104,113,68,43,180,142,147,67,201,245,42,149,10,42,149,10,15,31,62,132,78,167,163, - 177,177,177,100,212,168,81,196,104,52,126,71,8,57,79,41,125,0,148,239,139,188,12,168,86,142,150,53,162,101,235,3,128,16,242,212,208,97,105,152, - 205,102,135,176,176,176,178,18,190,72,89,142,22,165,244,169,161,67,91,33,20,10,149,213,117,182,74,99,223,206,109,30,139,103,78,153,233,236,29,80, - 123,210,164,25,130,94,189,122,93,216,178,101,11,231,92,175,123,167,227,135,191,247,248,250,211,201,7,127,251,237,55,0,88,93,5,218,51,251,247,239, - 247,156,48,118,52,102,78,28,119,72,21,228,42,118,32,206,10,169,65,151,238,0,90,32,169,19,210,115,215,190,125,41,0,162,42,34,145,203,229,126, - 55,111,222,12,42,89,72,96,52,26,33,151,203,113,252,248,113,55,153,76,230,6,0,5,5,5,168,95,191,190,77,134,73,36,18,191,59,119,238,4, - 41,149,74,228,231,231,195,96,48,192,108,54,131,231,121,16,66,32,20,10,33,22,139,161,80,40,170,84,217,71,41,189,74,8,233,52,120,240,224,99, - 251,246,237,83,215,174,93,27,44,203,34,54,54,22,125,251,246,205,206,206,206,46,115,216,176,60,88,163,68,37,243,177,4,2,1,126,8,12,196,240, - 228,228,98,7,102,185,163,35,102,218,144,103,88,26,132,144,144,46,93,186,156,248,241,199,31,221,79,156,56,129,215,94,123,141,28,58,116,136,7,64, - 147,147,147,19,108,229,177,230,187,88,29,66,171,157,165,39,91,97,177,88,148,98,177,24,122,189,30,66,161,176,216,193,178,78,181,106,213,130,70,163, - 17,228,230,230,10,146,147,147,229,243,230,205,27,115,242,228,73,47,0,131,170,250,29,60,79,172,89,179,198,111,248,240,225,241,2,129,128,118,235,214, - 237,221,71,143,30,189,233,229,229,117,236,196,137,19,95,2,168,60,201,179,20,220,220,220,46,187,184,184,248,30,60,120,208,204,48,12,223,164,73,147, - 172,146,69,59,28,199,81,163,209,136,228,228,100,90,80,80,224,82,57,99,33,167,187,187,187,207,242,229,203,77,249,249,249,79,112,42,20,10,209,47, - 191,252,98,202,203,203,227,100,50,89,102,101,156,25,25,25,239,12,30,60,248,244,177,99,199,92,89,150,197,163,71,143,144,153,153,9,181,90,141,173, - 91,183,194,207,207,15,59,118,236,208,104,52,154,15,150,46,93,26,161,213,106,109,145,122,104,219,188,121,115,191,236,236,108,168,213,106,232,116,58,92, - 190,124,25,161,161,161,72,78,78,6,195,48,80,171,213,88,189,122,117,62,33,68,83,9,215,232,89,179,102,193,104,52,162,87,175,94,232,213,171,151, - 115,233,13,76,38,19,222,123,239,61,180,105,83,156,193,0,66,72,149,94,128,5,2,1,74,56,69,172,68,34,145,137,197,226,246,82,169,244,228,142, - 29,59,146,251,245,235,103,115,52,146,227,184,25,2,129,160,103,145,211,6,153,76,6,137,68,2,165,82,137,246,237,219,211,7,15,30,76,176,217,176, - 66,62,17,33,164,17,138,156,231,202,230,255,5,104,39,147,201,68,165,23,230,231,231,139,188,188,188,218,148,181,67,89,16,8,4,46,50,89,97,192, - 201,207,207,15,57,57,57,156,209,104,28,184,117,235,86,51,0,52,105,210,100,32,199,113,122,139,197,194,138,197,98,232,116,58,184,187,187,151,255,123, - 103,240,217,222,159,230,121,150,206,209,242,242,242,66,227,198,141,97,48,24,144,146,146,130,200,200,72,51,199,113,63,174,89,179,134,119,115,115,27,246, - 214,91,111,177,81,81,81,31,3,24,111,165,250,95,201,209,42,9,107,213,97,59,0,39,1,180,47,125,146,165,157,159,10,14,82,233,208,161,88,44, - 206,142,143,143,87,148,124,168,88,44,22,120,123,123,243,148,82,82,150,163,85,153,243,86,17,132,66,161,114,234,212,169,217,107,214,172,121,7,192,108, - 91,246,217,254,113,8,182,148,152,223,183,115,155,199,218,197,115,86,126,179,100,158,243,189,131,223,97,195,138,47,56,142,67,84,131,6,13,218,104,181, - 90,129,163,194,140,140,108,28,68,161,142,150,77,78,97,209,27,243,166,63,254,248,35,170,123,247,238,103,55,253,188,203,57,249,254,253,243,146,220,140, - 20,85,157,32,129,200,199,175,79,158,94,47,26,56,112,160,27,128,183,42,226,98,89,22,217,217,217,72,77,125,114,164,83,46,151,35,38,38,230,169, - 109,109,1,195,48,224,56,14,59,119,238,132,92,46,135,66,161,120,98,178,58,89,213,13,34,120,120,120,48,78,78,78,79,68,97,170,202,101,205,209, - 50,26,141,48,26,141,48,153,76,28,0,161,64,32,192,251,137,137,197,81,158,170,56,48,37,65,8,169,215,179,103,207,19,91,183,110,117,187,124,249, - 50,226,226,226,176,119,239,222,123,132,144,113,2,129,224,237,170,242,149,72,210,231,114,115,115,133,185,185,185,197,209,65,161,80,88,28,49,180,5,28, - 199,137,4,2,65,241,219,168,117,42,249,125,178,44,11,15,15,15,120,122,122,98,237,218,181,162,128,128,128,158,85,254,18,158,35,150,44,89,82,103, - 249,242,229,27,183,108,217,114,240,157,119,222,249,37,58,58,122,168,163,163,227,159,199,143,31,159,39,145,72,170,219,83,206,227,246,237,219,114,179,217, - 98,173,140,19,91,157,90,107,180,147,227,57,52,111,214,172,194,168,112,105,206,27,55,110,40,74,112,74,202,225,212,87,70,68,41,189,67,8,105,211, - 185,115,231,115,191,255,254,187,147,159,159,31,146,146,146,144,148,148,132,58,117,234,96,193,130,5,186,220,220,220,86,69,206,213,175,54,218,231,237,228, - 228,36,140,143,143,135,197,98,65,163,70,141,176,122,245,106,12,28,56,16,245,235,215,71,110,110,46,110,222,188,137,205,155,55,59,137,68,162,10,239, - 29,0,214,206,153,51,231,149,207,63,255,28,203,151,47,199,206,157,59,179,8,33,42,79,79,79,214,42,65,2,0,67,134,12,121,34,175,214,214,251, - 136,117,91,107,212,201,234,108,73,36,18,72,165,82,198,193,193,65,22,22,22,86,165,164,122,74,233,93,133,66,113,92,42,149,118,147,74,165,172,149, - 187,101,203,150,188,94,175,191,59,117,234,212,51,85,225,43,226,188,90,149,249,127,18,214,156,180,210,16,139,197,240,244,244,180,153,71,34,145,16,235, - 189,209,98,177,32,39,39,135,243,242,242,42,30,222,191,114,229,10,231,239,239,207,177,44,203,138,197,98,16,66,32,151,203,203,189,73,83,142,206,233, - 53,112,70,113,213,33,17,40,84,159,76,45,116,212,175,92,185,2,147,201,132,200,200,72,243,210,165,75,147,179,179,179,63,1,32,56,124,248,240,224, - 201,147,39,179,238,238,238,197,121,180,21,249,34,47,3,74,15,25,150,78,134,63,217,163,71,15,82,84,90,73,138,118,0,96,187,163,85,244,144,168, - 244,105,73,8,65,74,74,74,241,188,187,187,123,149,143,101,43,92,92,92,116,45,90,180,80,102,100,100,216,122,19,123,2,86,39,107,209,188,217,206, - 153,183,206,35,49,57,5,154,52,115,212,153,63,31,238,6,80,152,17,189,174,222,73,140,184,181,202,86,206,122,110,242,240,6,222,202,221,93,186,247, - 172,49,224,195,241,204,71,31,125,212,122,240,224,193,57,239,188,243,206,88,7,7,135,96,147,201,148,181,235,192,129,184,1,3,6,4,112,28,55,184, - 188,50,88,43,10,10,10,30,181,111,255,87,53,172,187,187,187,234,232,209,163,30,113,113,113,24,61,122,116,122,82,82,82,118,201,109,109,177,209,100, - 50,61,10,15,15,47,119,184,208,58,164,8,0,121,121,121,54,113,2,133,201,240,193,193,193,39,162,162,162,84,148,82,220,185,115,7,44,203,162,78, - 157,58,248,237,183,223,212,221,187,119,47,55,25,190,44,232,245,122,248,249,249,65,175,215,67,167,211,229,3,144,108,13,8,0,0,124,156,153,137,203, - 75,151,226,194,194,133,214,99,219,106,38,196,98,113,216,91,111,189,117,108,211,166,77,110,177,177,177,136,139,139,195,87,95,125,117,47,51,51,179,53, - 165,52,13,192,161,42,156,115,160,167,167,103,183,238,221,187,123,3,128,78,167,35,127,252,241,7,164,82,105,241,181,176,111,223,62,36,37,37,129,16, - 2,39,39,39,95,66,72,0,165,244,97,121,156,148,82,242,240,225,67,44,90,180,8,60,207,99,242,228,201,8,10,10,42,118,176,30,61,122,132,121, - 243,230,129,227,56,204,154,53,11,117,234,212,129,217,108,150,18,66,4,148,82,75,121,188,47,18,19,38,76,184,183,123,247,238,131,9,9,9,175,47, - 94,188,184,29,33,132,159,52,105,210,34,149,74,85,173,68,76,43,180,186,2,196,222,143,135,133,227,96,177,88,144,152,24,15,119,119,119,24,141,133, - 67,117,142,42,229,83,185,159,127,51,103,190,217,108,214,245,233,211,71,189,115,231,78,82,167,78,29,60,120,240,0,66,161,16,132,144,124,91,171,12, - 75,32,73,163,209,4,177,44,43,186,123,247,46,252,253,253,209,188,121,115,204,159,63,31,25,25,25,176,88,44,112,119,119,231,205,102,243,21,163,209, - 120,170,34,34,74,233,38,66,136,146,227,184,101,243,230,205,67,102,102,166,211,238,221,187,181,215,175,95,119,72,79,79,47,119,191,162,251,128,77,47, - 149,214,252,169,18,14,22,148,74,37,90,180,104,65,187,116,233,194,39,39,39,199,219,82,177,94,18,114,185,124,186,68,34,233,32,145,72,100,214,104, - 86,167,78,157,248,248,248,248,114,146,62,254,94,188,200,74,70,47,47,175,72,165,82,217,51,43,43,235,137,31,96,171,86,173,76,30,30,30,167,109, - 229,113,112,112,200,98,89,214,5,0,146,146,146,160,80,40,68,247,239,223,95,72,8,153,2,0,1,1,1,11,53,26,141,40,160,232,126,234,233,233, - 9,163,209,88,238,11,203,185,43,169,223,1,248,206,58,239,226,226,146,146,147,147,35,251,226,139,47,180,11,23,46,44,224,56,206,0,224,120,118,118, - 118,177,142,150,191,191,127,142,80,40,116,86,171,213,62,37,168,158,242,69,94,38,84,24,209,2,138,245,43,138,97,13,15,219,122,67,177,229,109,220, - 154,163,85,50,202,96,77,120,47,235,88,69,15,245,106,13,29,22,57,89,210,93,187,118,109,93,188,120,241,69,91,247,43,153,163,181,238,203,185,139, - 173,78,214,245,51,191,227,215,219,57,25,147,23,46,91,94,29,123,0,32,212,77,209,208,211,195,245,228,210,133,115,85,247,14,126,135,95,214,125,69, - 175,95,186,212,236,210,165,75,239,141,30,61,186,38,10,127,88,26,0,215,0,12,160,148,230,84,198,153,152,152,248,68,126,84,80,80,208,29,145,72, - 228,33,151,203,145,148,148,164,189,115,231,78,149,135,100,210,211,211,95,136,62,142,163,163,227,247,243,230,205,83,1,64,84,84,20,250,246,237,155,13, - 0,191,253,246,155,58,48,48,16,235,215,175,87,15,31,62,220,166,100,120,179,217,156,93,175,94,225,102,60,207,35,39,39,135,7,128,15,83,82,176, - 222,203,11,2,129,0,23,22,46,196,116,179,25,243,171,232,192,123,123,123,239,220,176,97,131,91,70,70,6,226,226,226,48,123,246,236,187,233,233,233, - 173,41,165,229,63,125,202,0,33,164,126,72,72,200,209,227,199,143,187,41,149,74,104,181,90,104,181,90,12,25,50,4,3,7,14,132,193,96,192,246, - 237,219,177,119,239,94,168,84,42,104,181,90,232,116,58,167,30,61,122,156,35,132,180,45,175,66,139,82,74,187,118,237,138,211,167,79,131,101,89,52, - 107,214,12,153,153,197,197,64,240,240,240,40,107,29,139,194,235,253,31,113,180,4,2,1,141,140,140,92,220,174,93,59,36,36,36,188,222,164,73,147, - 111,134,14,29,154,244,172,188,14,10,25,66,234,248,193,104,52,194,96,48,160,103,215,246,184,125,251,54,52,154,44,228,231,231,195,217,197,177,202,82, - 31,207,139,147,16,82,163,107,215,174,39,126,252,241,71,151,205,155,55,27,219,183,111,47,254,230,155,111,136,74,165,66,90,90,90,117,79,57,242,204, - 153,51,126,157,59,119,174,123,235,214,45,68,70,70,194,104,52,162,113,227,198,136,141,141,69,139,22,45,160,213,106,47,94,186,116,105,175,45,100,148, - 210,229,69,47,33,203,102,205,154,133,61,123,246,136,9,33,176,33,25,222,166,40,164,88,44,46,174,10,84,42,149,104,217,178,37,223,169,83,39,222, - 104,52,38,198,199,199,127,54,104,208,160,170,228,181,2,0,210,210,210,162,131,131,131,47,20,13,63,50,45,90,180,160,70,163,49,113,248,240,225,54, - 191,0,189,72,60,107,37,99,69,240,244,160,62,97,127,0,0,32,0,73,68,65,84,244,252,196,213,213,181,115,173,90,181,240,248,241,99,81,81,110, - 154,169,105,211,166,38,79,79,207,143,109,229,145,72,36,183,68,34,81,91,107,164,54,62,62,30,148,210,201,245,235,215,31,151,151,151,135,204,204,76, - 177,74,165,42,126,169,174,91,183,46,12,6,195,45,91,249,89,150,157,227,239,239,31,33,18,137,230,167,167,167,63,37,11,65,8,17,135,135,135,171, - 68,34,17,76,38,211,19,206,102,105,95,228,101,129,173,57,90,164,44,103,171,42,17,45,91,162,6,214,4,251,146,243,86,167,174,244,177,170,59,52, - 229,232,232,104,176,58,89,243,230,205,179,217,201,42,137,29,63,126,239,229,200,231,215,72,190,248,27,98,174,95,198,238,155,217,25,147,23,46,27,219, - 235,173,65,143,75,110,215,127,229,109,108,31,81,57,95,176,187,162,190,143,135,203,201,175,150,46,82,101,222,58,143,148,212,84,252,118,241,82,148,145, - 210,155,0,38,87,199,198,178,96,13,235,203,229,114,176,44,251,175,250,193,230,228,228,188,59,124,248,240,99,243,230,205,83,207,152,49,35,59,43,43, - 171,19,0,116,239,222,253,216,250,245,235,213,211,166,77,203,205,206,206,182,41,25,62,43,43,235,137,150,53,69,50,14,174,214,243,23,8,4,104,21, - 17,81,101,39,75,44,22,215,111,214,172,153,3,207,243,120,248,240,33,29,63,126,252,189,212,212,212,42,59,89,0,224,233,233,57,241,248,241,227,110, - 155,54,109,202,221,178,101,75,38,207,243,194,240,240,112,223,87,94,121,133,108,221,186,21,0,48,96,192,0,76,158,60,25,55,110,220,128,66,161,64, - 235,214,173,185,217,179,103,187,127,242,201,39,31,163,80,39,233,41,112,28,39,10,8,8,56,6,160,227,173,91,183,0,224,28,165,180,88,52,181,162, - 117,54,128,207,203,203,19,42,149,202,50,61,9,81,225,219,80,85,135,250,138,57,207,158,61,187,232,203,47,191,220,253,233,167,159,22,59,145,213,228, - 4,240,116,244,105,208,219,239,128,163,4,143,53,121,208,235,13,208,25,184,42,23,243,60,15,78,66,136,188,75,151,46,135,127,250,233,39,207,243,231, - 207,131,227,56,62,54,54,246,97,159,62,125,84,147,38,77,114,121,134,34,163,21,131,6,13,234,119,246,236,89,77,221,186,117,157,47,94,188,136,180, - 180,52,88,44,22,116,236,216,17,98,177,56,126,225,194,133,34,0,43,108,37,44,114,182,52,63,254,248,227,48,149,74,21,74,8,113,201,31,57,18, - 78,223,125,135,149,43,159,150,5,252,240,195,15,193,48,140,77,14,187,53,205,160,85,171,86,92,251,246,237,169,94,175,191,27,31,31,63,241,89,157, - 34,137,68,50,77,42,149,158,116,112,112,144,117,233,210,133,143,143,143,255,236,89,248,94,22,92,188,120,49,105,244,232,209,161,42,149,106,121,155,54, - 109,58,184,184,184,48,78,78,78,145,62,62,62,227,26,54,108,248,200,86,30,161,80,56,84,161,80,220,179,88,44,108,209,11,30,0,192,98,177,136, - 25,134,65,64,64,64,241,179,164,89,179,102,240,244,244,228,110,223,190,61,212,86,254,180,180,180,39,170,16,203,192,136,86,173,90,9,12,6,3,226, - 226,226,158,24,238,45,203,23,121,25,80,122,216,16,40,225,124,81,74,177,127,255,126,90,242,147,82,10,31,31,159,4,179,217,76,111,2,244,218,181, - 107,244,195,15,63,172,112,210,235,245,212,221,221,61,197,186,127,209,77,164,115,201,121,31,31,159,4,131,193,240,196,126,6,131,129,122,120,120,112,5, - 5,5,79,113,22,20,20,80,95,95,223,164,138,56,75,79,0,134,92,189,122,117,205,244,233,211,155,87,180,93,185,156,107,67,232,230,205,155,255,67, - 41,109,215,38,212,239,207,254,225,30,180,85,144,123,242,222,29,63,14,164,148,182,43,61,245,11,5,173,140,51,196,67,81,175,83,88,205,172,63,15, - 255,68,143,127,57,134,126,217,59,136,54,241,85,102,135,184,202,194,109,181,209,150,115,167,148,34,44,44,236,14,207,243,212,104,52,210,176,176,176,216, - 231,193,89,213,169,34,78,0,141,28,29,29,111,1,104,84,114,153,90,173,126,98,89,85,237,4,112,157,82,74,53,26,13,213,106,181,212,96,48,80, - 142,227,104,73,20,109,83,33,103,64,64,64,236,241,227,199,249,160,160,160,132,26,53,106,156,69,145,190,85,117,206,221,203,203,235,225,253,251,247,105, - 237,218,181,19,138,184,63,209,233,116,180,52,116,58,29,237,208,161,3,141,141,141,165,254,254,254,250,216,216,88,234,229,229,21,83,145,157,0,106,249, - 248,248,28,115,117,117,141,4,16,100,235,186,202,190,207,237,219,183,7,82,74,63,160,148,126,88,206,244,1,165,52,228,159,230,164,148,194,213,213,53, - 145,82,74,11,10,244,52,59,59,135,166,166,62,166,121,121,121,52,47,47,143,222,186,117,155,94,186,116,153,70,223,184,65,125,125,125,51,255,110,78, - 23,23,151,117,169,169,169,218,115,231,206,229,175,93,187,54,223,211,211,243,22,0,63,0,193,78,78,78,169,99,198,140,161,14,14,14,143,108,253,45, - 149,90,30,42,20,10,175,46,94,188,248,143,253,251,247,63,222,187,119,175,113,227,198,141,137,163,71,143,62,37,16,8,174,2,8,173,42,167,117,170, - 81,163,198,173,212,212,84,106,177,88,168,217,108,166,38,147,137,154,76,38,106,52,26,169,209,104,164,6,131,129,30,57,114,196,226,233,233,121,210,22, - 206,185,115,231,230,173,95,191,158,95,182,108,217,229,5,11,22,180,174,232,216,85,177,147,82,138,95,126,249,37,54,38,38,134,30,59,118,236,193,243, - 226,172,234,84,22,39,195,48,38,0,20,192,171,40,212,185,170,112,254,159,178,179,83,167,78,179,6,14,28,72,187,117,235,70,27,55,110,252,212,212, - 164,73,19,58,106,212,40,186,127,255,126,186,116,233,210,89,207,106,39,10,3,59,193,0,22,116,234,212,201,124,250,244,105,58,96,192,0,10,160,171, - 117,155,178,124,145,151,109,2,240,97,233,101,86,121,7,82,242,19,0,76,38,83,194,157,59,119,188,234,90,44,44,0,172,90,245,100,26,82,17,97, - 49,78,159,62,109,33,132,220,67,5,48,153,76,9,199,143,31,247,88,185,114,101,113,152,33,33,33,1,22,139,133,79,78,78,102,190,249,230,155,39, - 182,63,121,242,164,197,98,177,196,87,196,89,26,148,210,205,0,54,63,143,62,119,167,110,196,141,59,252,219,30,215,87,155,183,201,86,57,59,151,249, - 6,103,85,144,175,8,68,192,204,95,178,112,174,218,58,4,249,243,149,212,108,189,129,235,112,43,61,255,250,51,27,89,10,90,173,54,206,122,238,58, - 157,174,74,223,221,223,1,90,152,127,85,175,178,101,213,1,207,243,112,116,116,4,80,245,202,168,18,182,196,126,240,193,7,25,113,113,113,111,82,74, - 51,158,197,30,74,233,217,232,232,104,255,33,67,134,40,131,130,130,238,19,66,132,239,191,255,190,201,211,211,83,116,230,204,25,51,0,210,174,93,59, - 65,106,106,42,77,74,74,210,188,241,198,27,121,195,135,15,119,185,118,237,154,152,231,249,10,69,11,105,97,57,116,167,170,174,171,12,253,250,245,187, - 143,50,132,67,159,5,47,130,211,10,173,174,0,247,30,38,130,167,20,28,199,129,43,138,66,89,171,60,249,156,124,88,44,85,27,45,125,86,78,161, - 80,216,122,249,242,229,221,25,134,97,46,92,184,96,88,178,100,73,66,122,122,122,111,74,105,60,0,16,66,218,111,222,188,249,7,27,164,28,202,4, - 165,244,38,33,164,197,103,159,125,54,22,64,107,0,53,81,168,233,118,6,192,10,250,12,10,230,9,9,9,221,26,52,104,176,135,16,226,88,222,54, - 12,195,164,164,166,166,246,45,111,125,73,148,39,30,250,60,208,191,127,255,32,192,182,174,36,127,39,94,150,74,198,163,71,143,126,254,230,155,111,10, - 252,252,252,166,249,249,249,49,89,89,89,208,106,181,96,24,6,158,158,158,8,11,11,131,167,167,39,127,235,214,173,5,159,125,246,89,165,154,124,161, - 161,161,129,102,179,185,54,195,48,129,0,2,41,165,129,132,144,64,0,206,0,208,172,89,51,149,191,191,191,224,213,87,95,69,243,230,205,113,242,228, - 73,236,216,177,227,59,74,233,97,43,71,89,190,200,63,13,66,72,59,20,22,211,205,70,81,162,62,45,167,221,87,121,149,135,229,150,100,165,167,167, - 119,237,216,177,227,239,44,203,6,216,98,12,165,52,238,241,227,199,101,138,153,149,228,28,58,116,232,19,156,28,199,25,50,51,51,63,106,217,178,229, - 106,150,101,159,40,167,224,121,254,81,90,90,218,223,218,171,175,180,142,86,215,238,111,62,211,195,22,0,28,68,76,237,152,253,235,241,56,45,3,63, - 95,73,205,202,51,114,237,239,164,235,170,43,216,87,33,226,226,226,186,189,8,222,151,0,233,54,8,146,86,58,252,247,240,225,195,94,207,201,30,164, - 166,166,126,17,17,17,241,218,130,5,11,220,14,30,60,168,2,10,95,80,250,246,237,155,22,29,29,221,6,128,68,175,215,31,93,176,96,129,219,156, - 57,115,92,80,36,198,216,163,71,143,199,143,31,63,182,181,149,211,255,45,196,98,241,233,90,1,126,109,128,191,94,252,74,188,85,22,127,242,60,255, - 184,28,138,23,194,201,178,236,167,205,155,55,103,63,253,244,211,199,7,15,30,180,54,210,45,169,199,117,7,21,136,146,218,130,34,103,106,73,209,244, - 220,64,41,77,0,208,248,121,114,254,63,130,190,36,149,140,123,246,236,153,49,112,224,192,205,206,206,206,223,7,6,6,214,245,240,240,80,201,100,50, - 24,12,134,60,163,209,24,115,231,206,157,119,34,34,34,30,216,194,181,121,243,102,22,128,136,231,121,41,195,48,10,0,42,66,136,19,138,28,45,66, - 8,76,38,19,226,226,226,48,125,250,116,238,216,177,99,75,1,204,170,130,185,77,1,184,225,175,251,184,27,0,35,0,113,209,178,170,106,178,217,138, - 147,148,82,66,8,161,214,79,148,225,36,151,37,86,74,43,107,193,67,41,213,161,132,2,243,243,64,37,156,126,207,243,88,207,130,193,134,37,219,176, - 110,201,19,125,14,1,148,63,95,73,142,86,78,129,101,244,138,195,55,190,48,88,40,111,178,240,195,238,164,233,110,190,32,211,255,111,65,109,232,15, - 248,119,131,82,26,77,8,105,57,122,244,232,25,114,185,188,25,0,228,231,231,95,72,78,78,158,75,139,170,10,43,91,111,71,249,72,76,76,172,178, - 204,198,223,193,105,52,26,199,181,108,217,242,107,142,227,190,52,155,205,85,150,27,176,195,142,191,19,63,255,252,243,3,20,61,151,251,247,239,207,2, - 192,246,237,219,171,92,13,60,100,200,16,142,22,54,50,215,163,176,123,70,46,10,5,183,9,0,232,116,186,172,228,228,228,91,28,199,221,2,240,3, - 173,122,197,173,27,33,100,63,165,180,39,0,88,255,46,185,236,5,161,61,33,36,178,232,179,220,166,215,101,69,178,172,168,158,200,208,255,48,182,223, - 248,75,11,172,180,3,85,217,124,121,136,73,213,70,226,25,223,96,237,120,57,65,11,133,114,7,87,119,189,29,47,31,138,134,8,123,255,211,118,216, - 97,71,85,81,29,7,203,138,155,55,111,190,176,20,129,127,18,69,195,132,237,138,102,43,28,210,44,43,154,5,84,189,103,153,29,118,216,97,135,29, - 118,216,97,199,255,5,8,33,237,8,33,180,196,212,174,156,237,62,164,148,174,183,78,37,157,46,2,160,115,89,59,209,42,116,37,47,42,173,175,18, - 42,227,183,115,218,57,237,156,118,78,59,167,157,211,206,249,191,199,89,77,244,168,100,232,240,192,11,56,38,74,228,102,205,166,148,206,182,206,151,177, - 221,19,137,240,79,204,191,224,50,199,191,85,58,192,206,105,231,180,115,218,57,237,156,118,78,59,231,203,201,89,201,212,97,202,148,41,83,81,40,141, - 65,167,76,153,50,149,82,218,163,208,141,161,61,94,212,113,81,56,108,72,75,76,237,42,216,246,67,235,84,114,185,61,71,203,14,59,236,176,195,14, - 59,236,248,183,227,220,194,133,11,243,23,46,92,104,77,124,79,7,64,104,97,52,171,202,130,210,182,130,22,230,104,217,36,55,65,43,107,193,243,119, - 131,16,226,205,8,68,239,10,69,146,14,160,124,24,0,128,97,111,112,70,253,9,139,197,244,61,165,52,185,186,220,245,8,169,87,71,45,219,107,224, - 56,81,66,158,177,223,45,74,255,168,14,79,127,66,90,73,196,226,35,18,181,90,86,214,122,67,118,118,129,193,104,124,109,59,165,103,171,107,171,29, - 118,216,97,135,29,118,252,157,32,132,40,156,156,156,142,49,12,227,87,98,25,202,250,27,0,56,142,75,209,104,52,175,209,10,180,5,95,4,103,41, - 24,1,84,235,89,254,60,81,157,161,67,1,240,68,111,161,191,165,99,182,64,36,29,174,118,245,156,255,159,161,227,92,130,130,235,146,26,53,124,0, - 10,196,39,36,122,220,187,27,219,233,151,45,43,38,136,164,210,233,38,189,254,219,170,114,135,18,162,240,115,144,156,249,118,202,219,106,1,44,24,52, - 239,199,67,161,132,212,184,89,40,45,97,51,250,19,210,74,237,226,114,120,225,209,163,50,167,134,13,159,88,71,41,45,236,175,119,253,186,108,218,107, - 175,29,238,79,72,87,187,179,245,191,7,66,136,167,74,165,250,68,40,20,182,55,153,76,126,98,177,56,129,227,184,200,172,172,172,229,148,210,103,238, - 211,103,199,191,27,33,94,14,109,234,6,250,253,152,156,250,248,74,174,222,248,126,76,82,158,230,159,182,201,142,231,7,165,82,121,153,97,24,95,224, - 47,39,192,218,179,215,58,95,250,147,231,249,7,153,153,153,45,203,227,36,132,4,58,59,59,175,6,208,180,50,193,228,162,161,166,75,26,141,230,35, - 90,88,125,92,22,159,210,201,201,233,115,66,72,127,134,97,216,202,206,137,231,121,142,82,186,61,43,43,107,22,165,52,175,188,237,156,156,156,142,222, - 190,125,187,169,187,187,123,165,145,26,139,197,130,248,248,120,183,102,205,154,157,2,80,174,66,247,243,224,252,187,125,145,234,160,44,39,171,50,148,213, - 235,240,133,42,178,138,101,202,189,173,59,246,236,48,106,236,167,138,171,209,49,56,114,242,60,114,117,6,176,12,3,181,82,142,224,224,218,100,217,250, - 157,174,223,173,93,246,165,204,65,221,163,64,155,253,70,85,248,21,114,193,244,201,125,154,41,92,156,57,128,231,48,177,123,184,98,218,254,43,211,1, - 76,181,149,163,216,201,58,118,76,158,246,248,49,230,120,123,67,96,177,64,202,48,144,18,2,41,195,64,33,149,162,219,198,141,152,123,240,160,124,198, - 235,175,219,157,173,255,49,40,149,202,161,193,193,193,75,54,108,216,224,82,171,86,45,40,20,10,104,52,26,215,59,119,238,52,26,63,126,252,96,71, - 71,199,136,156,156,156,117,255,180,157,118,188,56,240,60,222,221,52,255,35,159,148,71,119,125,70,44,216,22,28,226,42,111,127,59,35,63,245,159,182, - 235,121,194,197,197,165,147,171,171,235,26,216,88,129,78,41,229,50,50,50,222,211,104,52,149,246,144,37,132,52,114,112,112,248,94,171,213,190,75,75, - 9,116,18,66,26,57,254,183,189,239,14,143,162,218,223,127,207,204,206,214,108,54,155,178,9,9,1,34,72,8,23,41,134,162,136,20,133,32,245,75, - 199,2,161,36,38,20,191,94,192,43,92,21,185,33,128,21,47,168,8,38,134,162,161,8,6,148,72,53,40,130,23,126,84,81,64,8,69,122,72,207, - 110,178,201,102,251,249,254,145,157,205,18,178,45,217,112,241,247,228,125,158,121,118,118,231,204,187,103,102,206,156,121,231,243,249,156,207,9,8,200,212, - 104,52,247,109,115,5,169,84,90,80,93,93,29,234,170,140,72,36,42,212,235,245,97,238,184,24,134,137,188,115,231,78,168,76,38,131,197,98,129,213, - 106,133,213,106,181,191,72,219,132,16,128,26,81,100,177,88,208,177,99,71,163,43,78,127,127,255,207,10,11,11,7,241,243,4,242,251,58,195,157,59, - 119,6,117,234,212,233,51,0,245,38,230,14,12,12,92,252,234,171,175,206,233,220,185,51,0,216,235,201,127,22,23,23,99,246,236,217,246,255,176,90, - 173,248,225,135,31,94,157,54,109,26,0,204,117,113,236,109,66,67,67,73,114,178,235,28,69,41,41,41,72,73,73,193,39,159,124,66,56,142,83,186, - 42,235,43,206,7,165,69,60,133,67,48,124,127,184,206,12,191,171,206,124,135,246,224,252,7,234,58,20,8,37,211,159,236,55,116,192,236,57,243,253, - 54,127,251,35,114,255,248,13,23,126,217,114,79,153,30,131,167,33,191,184,2,211,102,254,67,78,88,193,0,161,68,54,221,88,93,181,206,19,254,78, - 132,132,117,10,146,253,239,147,189,30,227,238,72,115,209,34,80,138,167,187,183,231,90,237,251,253,127,59,17,242,241,121,74,221,102,136,174,43,178,50, - 94,122,9,125,77,38,132,178,44,88,66,192,2,96,8,65,181,94,143,19,147,39,163,215,87,95,225,95,217,217,178,197,35,71,122,37,182,228,114,249, - 175,132,144,64,173,86,59,156,214,76,44,253,208,131,16,210,73,46,151,239,162,148,150,105,181,218,199,255,219,245,225,65,8,9,7,80,68,41,53,215, - 249,93,8,64,73,41,45,244,134,79,34,145,188,252,226,139,47,174,88,181,106,149,172,160,160,0,121,121,121,176,88,44,144,72,36,136,142,142,38,57, - 57,57,193,243,231,207,95,174,80,40,196,229,229,229,31,123,81,79,1,199,113,233,65,65,65,67,195,194,194,252,10,11,11,171,212,106,245,15,122,189, - 254,101,218,192,105,83,8,33,12,199,113,147,162,162,162,70,71,68,68,132,221,185,115,167,248,246,237,219,59,245,122,253,122,74,105,131,38,106,182,241, - 134,3,232,10,91,182,122,0,119,163,162,162,206,93,187,118,205,171,115,233,134,51,47,42,42,234,188,183,156,132,16,63,0,91,1,68,184,41,154,7, - 96,34,245,210,154,205,131,161,214,221,75,87,102,36,164,78,125,154,172,155,59,40,122,198,39,57,71,59,69,72,251,157,207,211,221,106,8,223,195,8, - 66,72,240,180,105,211,90,38,36,36,136,221,151,6,150,45,91,86,177,113,227,70,167,211,243,56,240,62,30,29,29,253,211,230,205,155,21,207,62,251, - 236,1,66,200,64,94,80,17,66,30,239,208,161,195,79,203,150,45,83,36,38,38,222,179,205,29,244,122,189,202,104,52,130,115,50,89,124,101,101,37, - 252,253,253,85,158,112,1,128,84,42,197,150,45,91,192,113,28,56,142,67,89,89,25,34,35,35,237,223,133,66,161,125,189,117,235,214,110,249,44,22, - 75,47,150,101,161,213,106,237,211,55,89,44,22,168,213,106,80,74,33,22,139,237,83,58,57,108,239,229,140,143,16,50,33,34,34,2,155,55,111,134, - 193,96,184,111,187,66,161,192,217,179,181,147,140,176,44,139,39,158,120,130,33,132,76,128,11,161,101,75,188,137,164,164,36,176,44,11,150,101,193,48, - 140,125,157,95,44,22,11,82,82,82,64,41,117,59,165,89,83,112,62,100,56,72,93,100,134,167,148,222,5,240,224,99,180,168,195,16,79,66,72,132, - 191,50,244,189,89,127,255,135,124,215,161,223,113,243,214,205,251,68,22,0,156,220,191,30,131,94,252,39,78,95,8,199,164,233,175,200,127,63,113,232, - 61,66,200,126,62,102,139,186,24,54,26,224,47,252,240,159,19,159,150,104,77,121,168,8,4,90,182,19,129,189,94,137,249,35,186,138,255,190,243,215, - 15,0,196,187,171,167,88,36,218,255,110,78,142,148,23,89,125,244,122,136,0,152,1,8,5,2,48,132,192,96,54,67,103,177,32,220,106,197,149,105, - 211,240,232,250,245,88,184,99,135,236,173,184,184,253,0,100,238,234,9,0,66,161,48,60,43,43,43,116,238,220,185,7,9,33,67,40,165,167,92,158, - 76,15,56,27,2,79,57,9,33,221,187,117,235,182,111,209,162,69,65,238,58,101,79,57,165,82,233,56,150,101,87,91,44,150,89,58,157,46,203,91, - 78,66,8,3,32,53,33,33,97,250,225,195,135,175,16,66,6,209,154,204,196,32,132,8,30,125,244,209,156,190,125,251,182,35,132,124,1,32,181,174, - 240,112,194,217,178,109,219,182,203,86,173,90,37,187,116,233,18,180,90,45,56,142,195,164,73,147,144,149,149,5,157,78,7,177,88,140,247,223,127,223, - 239,216,177,99,111,17,66,118,82,74,111,184,59,118,66,136,48,32,32,224,226,234,213,171,85,163,70,141,98,170,171,171,97,181,90,253,182,110,221,58, - 42,37,37,229,105,66,72,7,103,98,203,5,39,19,30,30,190,238,139,47,190,232,240,236,179,207,10,116,58,29,172,86,107,248,174,93,187,18,223,124, - 243,205,1,132,144,41,148,210,122,19,16,186,186,70,132,144,199,101,50,89,167,89,179,102,21,141,26,53,234,14,0,156,56,113,130,249,237,183,223,250, - 44,89,178,228,198,219,111,191,125,186,1,156,221,253,253,253,99,146,147,147,139,71,140,24,145,39,20,10,173,255,249,207,127,4,185,185,185,79,191,243, - 206,59,87,223,124,243,205,122,231,253,116,194,185,245,200,145,35,253,35,35,35,173,182,78,143,218,254,131,50,12,67,109,159,184,120,241,226,35,253,251, - 247,223,4,224,127,220,113,118,108,33,159,245,220,51,79,126,40,21,11,165,86,179,9,22,179,17,67,251,117,1,75,44,56,118,254,38,122,183,149,97, - 253,236,158,109,146,211,142,159,237,28,236,255,196,217,146,138,92,119,156,141,197,131,226,204,206,206,54,230,230,230,86,213,87,190,46,206,158,61,123,159, - 194,169,143,83,46,151,103,110,218,180,73,17,30,30,142,117,235,214,41,167,79,159,126,128,16,50,16,0,58,116,232,240,211,169,83,167,20,0,176,100, - 201,18,229,194,133,11,51,113,255,252,167,245,30,187,66,161,56,144,145,145,49,112,234,212,169,196,96,48,192,113,81,42,149,184,126,253,58,100,50,217, - 1,79,142,157,16,2,139,197,98,23,82,63,252,240,3,214,172,89,131,45,91,182,216,197,150,64,32,176,111,231,247,113,199,9,192,46,162,142,29,59, - 134,140,140,12,132,134,134,34,36,36,4,42,149,10,189,122,245,130,159,159,159,93,108,185,227,44,46,46,134,213,234,217,59,19,165,20,26,141,198,237, - 177,243,168,43,130,234,19,70,142,214,185,166,230,124,88,193,139,200,134,194,46,180,108,166,186,122,83,203,251,2,140,64,56,105,194,212,87,131,111,23, - 150,227,78,129,6,44,83,107,169,142,29,52,21,2,150,193,241,125,53,134,43,134,101,161,169,212,67,173,53,98,252,212,57,65,95,172,88,52,9,192, - 251,174,248,187,16,18,221,59,34,104,76,167,78,173,153,63,196,23,16,59,244,23,88,172,0,61,60,18,143,151,133,178,29,247,139,198,116,33,100,217, - 239,148,94,114,197,35,86,42,165,129,93,187,34,53,34,2,253,76,38,8,41,69,92,65,1,126,155,51,7,250,172,44,48,0,132,227,198,225,153,149, - 43,113,40,34,2,45,116,58,168,231,205,131,106,239,94,8,21,138,122,131,230,235,3,33,4,3,6,12,64,78,78,78,240,144,33,67,246,113,28,55, - 214,100,50,29,242,116,127,71,40,149,202,147,2,129,32,210,93,57,179,217,124,91,173,86,247,240,150,159,227,184,126,125,250,244,217,177,125,251,246,64, - 163,209,232,147,183,16,177,88,60,100,204,152,49,25,107,214,172,81,36,38,38,102,136,197,226,42,189,94,191,215,211,253,109,34,107,105,90,90,218,140, - 164,164,36,101,98,98,34,189,114,229,138,18,0,111,29,81,245,237,219,247,209,140,140,140,22,61,123,246,124,53,57,57,89,72,8,89,232,206,202,35, - 151,203,103,102,100,100,132,20,23,23,219,69,22,199,113,184,125,251,54,164,82,41,24,134,1,195,48,224,56,14,239,189,247,94,240,204,153,51,231,0, - 152,227,193,241,166,175,94,189,90,53,120,240,96,230,218,181,107,96,24,6,18,137,4,47,189,244,18,163,211,233,2,83,83,83,55,0,120,222,211,227, - 7,0,142,227,38,165,167,167,119,232,211,167,143,224,194,133,11,232,221,187,55,142,31,63,142,113,227,198,113,21,21,21,143,204,159,63,63,1,78,222, - 176,156,129,16,18,46,147,201,58,255,244,211,79,183,90,181,106,101,239,92,30,121,228,17,203,240,225,195,75,47,92,184,16,115,244,232,209,146,222,189, - 123,123,60,97,57,33,164,165,76,38,235,184,123,247,238,187,169,169,169,3,211,210,210,70,1,64,175,94,189,118,46,89,178,228,199,210,210,210,199,14, - 31,62,92,218,183,111,223,219,30,82,70,132,135,135,91,102,207,158,45,119,85,104,237,218,181,106,0,173,9,33,109,105,205,68,219,78,17,19,213,226, - 173,15,230,76,144,194,98,4,53,233,0,99,21,96,212,194,106,168,2,17,74,1,147,14,42,113,41,182,206,140,81,44,216,124,245,143,191,169,20,195, - 255,40,42,247,184,189,62,172,48,155,205,251,46,95,190,220,239,242,229,203,30,239,227,238,92,2,128,86,171,157,60,112,224,192,3,235,214,173,83,118, - 238,220,25,153,153,153,202,248,248,248,3,161,161,161,12,47,178,78,158,60,137,69,139,22,169,53,26,205,100,79,255,91,163,209,252,51,37,37,229,240, - 164,73,147,100,142,191,51,12,3,165,82,137,97,195,134,85,87,86,86,254,211,83,62,139,197,2,129,64,128,219,183,111,99,237,218,181,120,231,157,119, - 16,29,29,13,147,201,100,191,247,121,177,101,235,247,60,234,252,204,102,51,78,156,56,129,204,175,190,194,194,183,222,130,191,127,205,220,218,70,163,17, - 165,101,101,144,72,36,118,49,230,10,148,210,109,151,47,95,158,19,25,25,121,143,203,144,255,4,0,185,92,14,171,213,10,179,217,140,234,234,106,172, - 88,177,194,76,41,221,230,138,151,239,195,89,150,197,156,57,115,160,215,215,190,227,117,181,197,36,71,69,69,161,91,183,110,246,239,12,195,184,20,27, - 142,156,95,60,213,25,58,135,210,49,41,203,1,0,145,145,145,136,137,137,65,120,120,184,83,206,166,214,34,222,162,110,76,86,131,99,180,30,196,76, - 217,156,80,242,76,187,246,29,200,205,187,165,16,8,4,240,11,8,193,83,163,231,130,101,25,200,149,33,32,22,157,189,44,203,176,16,176,2,148,86, - 232,16,213,182,61,35,150,72,159,129,27,161,165,8,224,86,191,254,252,83,146,18,243,109,72,91,75,96,225,31,167,17,34,48,193,21,120,109,72,180, - 52,105,231,239,171,1,60,235,73,125,89,179,25,161,44,11,35,165,248,109,206,28,196,166,167,131,127,141,143,77,79,199,233,164,36,4,113,28,196,12, - 3,106,50,221,231,211,119,7,190,81,222,186,117,11,89,89,89,65,19,38,76,216,33,22,139,39,121,35,54,28,184,66,142,29,59,22,218,182,109,91, - 167,101,254,252,243,79,244,232,209,195,107,247,148,88,44,30,18,23,23,183,57,43,43,43,224,252,249,243,8,13,13,109,180,208,146,72,36,253,226,226, - 226,54,127,249,229,151,138,162,162,34,164,167,167,43,70,142,28,185,73,34,145,140,174,174,174,118,43,54,235,138,172,244,244,116,245,218,181,107,191,112, - 116,17,82,74,239,18,66,214,245,236,217,115,86,82,82,146,18,192,140,228,228,100,184,19,91,98,177,120,64,187,118,237,80,90,90,106,239,104,197,226, - 26,3,158,159,159,31,2,2,2,32,20,10,161,215,235,17,27,27,75,68,34,209,211,158,28,179,191,191,255,160,49,99,198,48,191,252,242,11,242,243, - 243,161,84,42,33,151,203,97,177,88,144,152,152,200,174,88,177,194,235,142,165,85,171,86,163,6,14,28,40,56,119,238,28,174,93,187,6,189,94,143, - 220,220,92,40,20,10,196,199,199,11,63,248,224,131,145,240,82,104,1,232,156,148,148,84,224,40,178,120,248,249,249,145,14,29,58,148,6,7,7,119, - 7,224,177,208,2,208,249,149,87,94,41,124,247,221,119,251,229,228,228,44,224,127,204,201,201,153,15,0,31,127,252,241,97,149,74,213,29,128,167,66, - 11,148,82,235,11,47,188,112,67,36,18,129,227,56,136,68,162,123,22,161,80,8,134,97,252,109,197,221,190,62,255,113,45,255,253,196,249,203,151,251, - 73,88,238,239,163,187,160,181,82,8,72,131,32,236,183,0,68,217,166,230,63,75,255,4,246,47,192,71,99,74,153,164,141,213,223,62,26,20,164,186, - 82,90,90,111,192,49,33,196,229,11,157,139,227,138,246,166,60,33,164,39,128,127,163,102,68,214,91,148,82,183,177,83,142,16,10,133,173,21,10,69, - 54,223,198,221,193,108,54,179,37,37,37,243,80,227,186,117,10,74,233,175,132,144,129,211,167,79,63,144,153,153,169,236,210,165,11,190,255,254,123,165, - 82,89,19,146,115,242,228,73,140,29,59,86,93,86,86,230,177,219,144,231,13,12,12,60,179,101,203,150,167,38,76,152,96,239,136,252,253,253,113,254, - 252,121,92,188,120,241,180,167,124,12,195,192,106,181,130,227,56,44,95,190,28,70,163,17,27,55,110,196,55,223,124,3,134,97,64,8,1,33,4,10, - 133,2,159,124,242,137,87,253,158,197,98,193,134,13,27,176,96,254,124,187,200,2,0,161,80,136,22,97,97,8,14,9,193,213,171,87,221,10,173,178, - 178,178,127,101,103,103,195,85,48,124,118,118,182,125,221,49,24,222,147,122,178,44,11,189,94,143,184,184,218,169,98,95,121,229,21,251,122,105,105,41, - 88,150,229,207,133,71,39,128,101,89,232,40,48,90,82,251,219,176,215,94,179,175,23,23,23,59,229,124,16,90,164,177,112,49,234,48,150,82,122,218, - 22,34,49,28,192,46,155,59,241,193,197,104,81,106,237,24,217,50,2,103,174,156,133,128,101,33,10,8,65,64,80,24,172,102,3,52,133,215,112,112, - 251,103,0,128,180,13,219,192,48,12,4,2,22,122,131,5,209,173,35,96,181,90,157,142,116,0,128,78,132,60,53,182,67,248,19,173,218,40,201,185, - 192,107,232,16,26,124,111,129,199,197,136,206,147,147,222,114,105,175,78,132,60,117,158,210,35,238,234,43,102,24,48,132,64,38,20,66,159,149,133,211, - 168,17,88,0,112,58,41,9,204,183,223,194,95,44,6,75,8,4,54,19,116,67,80,94,94,14,66,8,50,51,51,3,227,227,227,55,73,165,210,36, - 119,110,180,186,80,171,213,195,251,244,233,243,227,134,13,27,84,45,90,180,184,111,123,126,126,62,166,78,157,90,164,86,171,135,123,195,43,149,74,199, - 141,25,51,38,99,253,250,245,138,203,151,47,67,171,213,66,165,242,56,252,161,94,16,66,186,15,24,48,96,71,86,86,86,64,126,126,62,52,26,13, - 244,122,61,50,51,51,149,195,134,13,203,242,208,141,250,182,163,200,74,78,78,254,29,64,40,33,100,117,221,191,179,109,235,226,32,182,52,0,62,112, - 70,108,54,155,219,248,249,249,161,176,176,16,83,167,78,197,165,75,181,207,203,136,136,154,144,160,168,168,40,92,189,122,21,42,149,10,132,16,151,129, - 185,60,84,42,149,220,96,48,32,33,33,1,183,110,213,134,248,68,68,68,224,246,237,219,32,132,200,92,236,94,47,194,194,194,194,116,58,29,250,246, - 237,139,234,234,106,0,192,196,137,19,193,113,28,10,11,11,193,113,92,136,183,156,0,66,134,15,31,238,52,181,138,66,161,48,6,6,6,254,205,217, - 118,39,8,30,57,114,228,157,244,244,244,251,6,182,28,63,126,252,127,130,130,130,114,130,130,130,58,120,201,105,117,20,85,66,161,240,30,161,197,113, - 28,24,134,241,56,70,237,82,97,229,42,1,185,219,237,221,217,131,167,182,14,13,0,213,22,64,248,236,191,112,166,72,138,229,43,118,3,0,254,241, - 82,15,116,29,180,20,134,245,131,49,167,55,43,154,124,91,255,58,128,183,235,227,59,118,204,43,189,211,24,124,8,128,31,5,183,6,64,55,111,118, - 54,155,205,146,62,125,250,72,63,252,240,195,32,79,202,127,253,245,215,72,73,73,113,25,20,205,131,23,91,241,241,241,7,190,255,254,123,101,187,118, - 237,32,16,8,144,155,155,219,32,145,197,67,173,86,47,88,188,120,241,254,177,99,199,250,1,53,47,173,82,169,20,243,230,205,211,105,181,218,5,238, - 246,119,132,213,106,133,64,32,176,191,36,75,36,18,196,198,198,218,69,22,33,4,85,85,85,16,8,4,252,136,68,143,132,128,90,173,70,120,139,22, - 240,247,247,71,251,232,104,92,182,245,35,252,186,88,44,6,33,4,102,179,217,37,143,109,228,224,92,184,136,183,106,32,40,0,183,46,188,136,136,8, - 88,173,86,94,100,186,179,36,120,196,25,18,18,2,173,86,235,41,231,67,7,23,22,173,88,0,167,1,12,167,181,83,240,220,147,222,161,63,108,209, - 244,77,53,164,146,128,18,43,165,16,176,53,254,90,129,128,5,203,50,40,45,186,139,149,255,154,1,0,72,219,240,13,118,29,190,128,200,118,143,213, - 250,113,9,1,168,235,198,173,10,16,166,207,28,251,164,180,128,220,133,50,66,6,137,164,142,126,12,20,130,68,49,152,61,32,82,118,34,187,58,29, - 117,226,1,234,131,132,97,106,130,223,9,169,119,56,14,99,219,198,18,82,147,253,213,67,31,58,15,94,200,75,165,82,24,141,70,176,44,139,79,63, - 253,84,57,104,208,160,213,0,188,18,90,148,210,243,132,144,97,137,137,137,123,182,109,219,22,18,18,82,251,124,45,46,46,70,98,98,98,113,65,65, - 193,48,111,131,238,57,142,91,189,102,205,26,197,245,235,215,81,85,85,5,169,84,106,239,124,26,2,66,72,167,94,189,122,237,219,187,119,111,160,70, - 163,129,209,104,132,84,42,5,165,20,44,203,226,235,175,191,14,30,49,98,196,110,66,200,179,174,234,42,149,74,71,219,132,19,146,146,146,148,73,73, - 73,253,81,59,233,167,83,36,37,37,41,231,206,157,59,18,46,132,22,199,113,183,74,75,75,91,72,165,82,108,223,190,29,114,185,28,50,153,12,17, - 17,17,40,45,45,133,76,38,3,165,20,38,147,137,239,44,74,60,57,246,162,162,34,173,217,108,14,216,179,103,15,74,74,106,119,105,221,186,53,212, - 106,53,172,86,171,71,49,50,142,200,203,203,43,32,132,180,58,115,230,12,174,95,191,142,33,67,134,224,219,111,191,69,143,30,53,222,97,131,193,208, - 144,36,126,22,150,101,157,118,126,182,55,208,64,95,114,162,230,225,229,21,167,213,106,181,242,34,203,241,211,81,124,185,249,207,218,63,39,132,249,91, - 152,124,237,187,51,7,78,29,252,88,8,116,69,215,32,241,15,1,81,70,97,249,138,221,56,247,103,205,245,90,190,233,36,54,167,14,3,164,65,136, - 9,40,70,11,127,193,24,56,17,90,189,122,245,242,202,50,213,8,56,6,166,187,126,106,59,193,145,35,71,4,211,167,79,119,59,80,8,0,10,10, - 10,60,14,143,224,17,26,26,202,40,149,74,8,4,2,159,196,231,80,74,143,42,149,202,220,239,190,251,174,251,240,225,195,33,18,137,144,155,155,139, - 83,167,78,93,160,148,30,245,134,139,183,104,45,94,188,24,51,102,204,64,88,88,24,22,44,88,0,129,64,96,95,8,33,118,11,151,55,8,13,115, - 61,240,145,143,209,114,5,66,136,127,64,64,192,98,134,97,38,176,30,156,56,139,197,98,177,90,173,219,52,26,141,203,244,14,124,204,145,39,215,194, - 241,28,184,169,107,163,57,31,132,22,241,22,117,71,27,58,179,104,161,118,212,225,125,83,1,241,138,228,96,83,15,169,36,12,123,241,246,157,188,136, - 224,64,57,170,141,26,219,13,199,128,101,24,116,125,172,231,169,106,13,0,0,15,223,73,68,65,84,230,101,118,215,225,11,136,108,91,43,178,228,82, - 49,10,242,239,66,32,96,46,58,227,237,34,32,99,147,122,180,139,10,12,230,240,135,202,128,191,133,57,121,137,239,238,143,200,75,26,60,23,44,105, - 211,69,64,198,254,110,166,219,157,113,82,74,237,66,203,104,54,67,56,110,156,221,93,8,212,88,182,126,5,80,153,157,13,133,72,4,0,94,91,180, - 28,133,22,80,99,217,74,72,72,40,53,153,76,179,188,34,170,173,243,41,137,68,50,126,242,228,201,89,217,217,217,193,1,1,1,208,104,52,152,60, - 121,114,73,73,73,201,120,79,130,237,235,194,100,50,205,234,209,163,199,231,107,215,174,13,82,40,20,0,208,160,14,135,71,80,80,208,174,181,107,215, - 6,233,245,122,152,205,102,251,177,243,80,169,84,216,188,121,179,106,228,200,145,187,0,180,113,198,163,211,233,190,75,79,79,111,85,199,162,149,139,251, - 223,142,8,128,14,105,105,105,93,248,178,58,157,110,135,171,58,26,12,134,159,47,92,184,208,179,75,151,46,68,167,211,193,104,52,34,56,184,198,66, - 202,178,44,202,203,203,237,49,27,167,78,157,130,201,100,250,197,147,99,175,168,168,56,176,97,195,134,49,73,73,73,76,139,22,45,236,86,24,161,80, - 136,185,115,231,90,42,43,43,15,122,194,227,136,188,188,188,93,91,183,110,125,57,62,62,158,11,10,10,130,88,44,70,215,174,93,17,17,17,129,215, - 95,127,221,160,209,104,246,120,203,9,224,230,217,179,103,37,209,209,209,245,54,104,169,84,170,0,224,209,67,217,1,183,78,156,56,33,122,242,201,39, - 119,238,217,179,231,49,199,13,189,122,245,218,41,151,203,3,0,220,245,146,147,214,21,87,142,214,44,145,72,4,129,64,224,246,237,135,23,89,239,205, - 120,102,106,220,99,129,216,121,224,24,134,197,112,128,65,228,124,39,139,9,68,232,135,176,0,139,211,184,200,7,229,58,68,77,124,224,191,1,248,1, - 240,202,154,3,0,129,129,129,103,42,42,42,186,158,56,113,194,155,221,60,202,39,198,143,46,228,99,178,114,115,115,193,178,44,218,183,111,143,61,123, - 246,40,135,14,29,234,213,136,67,71,104,52,154,5,169,169,169,59,135,13,27,230,39,145,72,240,214,91,111,233,42,42,42,188,58,126,98,123,73,230, - 56,14,49,49,49,152,59,119,46,222,127,255,125,204,154,53,11,209,209,209,246,50,252,200,67,111,44,90,66,161,16,97,97,97,48,153,76,118,107,22, - 0,92,190,116,9,2,129,0,86,171,21,6,131,193,173,69,43,32,32,96,113,70,70,198,171,163,71,143,102,234,138,18,62,29,133,227,98,50,153,176, - 117,235,214,87,23,44,88,0,120,96,5,99,89,22,93,187,118,189,199,93,184,106,213,42,251,122,108,108,44,226,226,226,188,18,199,44,203,34,38,101, - 249,61,238,194,221,170,218,211,214,42,62,9,209,239,124,234,140,179,201,181,72,3,224,114,180,33,143,186,163,14,29,147,151,214,13,134,111,50,152,13, - 213,63,254,121,229,210,51,49,157,123,50,249,197,218,123,70,36,196,14,24,15,66,8,90,182,125,12,172,64,0,150,101,32,96,89,40,21,18,92,56, - 115,198,170,215,233,126,172,143,115,0,33,130,22,114,209,170,151,158,235,42,201,19,21,66,21,238,7,33,87,211,24,233,159,227,239,45,44,21,0,157, - 253,49,237,78,176,244,199,130,234,85,3,8,217,121,176,78,58,0,30,86,171,21,114,177,24,213,122,61,116,102,51,6,172,92,105,119,23,50,132,224, - 87,0,93,86,174,196,145,172,172,26,161,37,22,123,60,42,132,135,163,208,42,46,46,198,148,41,83,74,238,222,189,27,223,144,24,45,30,213,213,213, - 135,100,50,89,252,248,241,227,51,183,111,223,30,52,126,252,248,210,252,252,252,120,79,226,158,234,131,78,167,203,18,139,197,85,83,166,76,249,106,211, - 166,77,193,33,33,33,246,55,145,134,128,16,82,60,112,224,64,183,193,32,132,16,119,153,130,83,147,147,147,133,0,102,216,44,91,93,146,147,147,143, - 80,74,23,214,225,73,73,75,75,155,232,32,200,62,7,176,210,21,113,121,121,249,154,185,115,231,78,63,116,232,80,136,68,34,177,119,180,237,219,183, - 183,89,98,107,68,22,165,20,175,189,246,90,113,97,97,161,71,233,29,244,122,125,114,106,106,106,191,234,234,234,192,41,83,166,176,18,137,4,5,5, - 5,88,177,98,133,101,253,250,245,234,202,202,202,169,158,240,56,194,100,50,109,88,180,104,209,0,173,86,219,54,49,49,81,168,209,104,160,211,233,240, - 250,235,175,27,214,173,91,119,91,167,211,121,157,240,183,119,239,222,87,110,220,184,241,116,85,85,85,153,76,118,175,55,147,227,56,226,231,231,215,19, - 192,87,222,112,198,198,198,94,189,121,243,230,147,75,151,46,253,217,100,50,113,199,143,31,183,7,195,127,250,233,167,7,37,18,201,64,120,31,180,111, - 21,139,197,247,88,176,234,174,11,4,2,183,125,90,199,22,178,165,239,189,220,111,106,220,223,2,240,221,129,147,72,221,241,231,197,232,169,170,152,71, - 3,139,96,45,186,128,127,188,212,3,203,55,157,4,80,227,58,180,22,158,3,45,187,10,234,223,10,215,74,139,157,186,88,31,148,235,144,82,122,16, - 94,186,11,29,81,90,90,26,42,151,203,127,13,10,10,186,63,119,64,61,48,24,12,156,78,167,251,20,192,98,87,229,234,138,172,83,167,78,97,204, - 152,49,106,0,216,179,103,143,178,123,247,238,200,201,201,81,198,197,197,53,72,108,81,74,127,10,8,8,184,113,240,224,193,78,173,90,181,194,209,163, - 71,175,81,74,127,242,134,195,198,99,15,120,127,241,197,23,49,104,208,32,180,110,221,250,158,209,134,252,186,55,98,195,108,54,163,115,231,206,208,27, - 12,16,10,133,118,215,164,64,32,128,42,52,20,87,174,92,241,200,162,197,48,204,132,209,163,71,51,231,207,159,199,243,207,63,143,204,204,76,167,101, - 39,79,158,140,45,91,182,96,244,232,209,204,27,111,188,225,50,189,3,31,132,238,201,49,241,207,105,119,253,190,175,56,155,90,139,52,20,14,98,171, - 94,144,123,115,104,241,251,212,186,14,129,123,146,132,53,9,204,102,99,230,183,27,63,155,251,228,234,167,85,225,161,1,40,213,232,236,98,235,244,193, - 111,0,0,99,147,151,65,96,179,116,41,228,18,72,133,44,178,190,252,184,216,104,172,174,183,117,85,112,204,140,55,158,106,31,32,242,51,161,188,5, - 197,99,170,90,11,9,105,91,195,121,143,224,122,60,16,33,231,202,240,210,163,114,197,199,231,213,51,0,172,170,67,9,189,90,173,83,159,57,35,29, - 146,145,129,227,241,241,104,105,177,224,231,136,8,4,113,28,2,196,98,48,132,64,247,253,247,56,178,125,59,194,196,98,192,223,31,230,37,75,160,191, - 112,1,166,138,10,93,93,62,119,208,104,52,152,56,113,98,113,113,113,241,120,189,94,223,32,65,228,136,170,170,170,189,114,185,124,70,239,222,189,87, - 155,76,166,89,85,85,85,141,26,25,165,215,235,247,74,36,146,113,19,39,78,252,102,199,142,29,33,124,48,107,67,80,92,92,236,245,136,199,250,64, - 41,181,18,66,22,218,18,227,205,72,74,74,82,158,56,113,98,58,33,100,53,31,124,72,8,9,77,72,72,120,185,142,200,114,59,234,144,82,122,83, - 46,151,47,153,55,111,222,178,143,62,250,72,206,7,190,255,246,219,111,48,155,205,224,56,14,22,139,5,9,9,9,218,146,146,146,229,212,73,70,231, - 122,120,245,132,144,246,75,151,46,93,187,114,229,202,65,44,203,250,89,44,150,202,170,170,170,159,171,171,171,167,54,36,143,150,237,60,76,121,251,237, - 183,167,172,88,177,98,52,195,48,161,102,179,185,184,162,162,34,91,167,211,173,171,155,87,204,19,28,57,114,164,104,245,234,213,127,22,21,21,117,140, - 140,140,212,200,229,114,131,193,96,96,165,82,169,194,207,207,47,22,192,81,0,127,120,195,121,234,212,169,252,207,63,255,252,186,94,175,143,249,252,243, - 207,15,43,20,138,3,132,16,34,20,10,3,165,82,233,51,0,126,6,224,249,176,55,0,12,195,88,197,98,241,125,46,67,71,139,150,39,49,90,109, - 85,178,105,131,218,11,240,221,143,39,145,250,221,205,13,22,74,183,111,63,93,246,253,130,62,128,113,219,75,232,58,254,171,26,119,33,0,107,225,57, - 24,183,77,6,145,133,224,240,29,14,26,157,241,62,23,1,143,7,232,58,108,20,68,34,17,211,177,99,71,211,198,141,27,221,38,248,4,128,95,126, - 249,5,11,22,44,112,57,218,19,0,2,2,2,50,151,45,91,166,32,132,216,69,86,89,89,217,64,0,24,58,116,232,129,156,156,28,101,155,54,109, - 144,150,150,166,124,249,229,151,239,75,239,224,9,202,203,203,231,77,154,52,105,47,0,88,173,214,121,222,238,239,104,209,226,5,85,235,214,173,237,223, - 29,23,135,24,45,143,96,177,88,32,20,10,33,16,8,16,30,17,97,255,47,74,41,174,92,185,130,210,210,82,143,132,22,203,178,44,33,4,207,63, - 239,217,128,228,23,94,120,1,63,255,252,51,60,113,51,218,248,17,21,21,229,182,140,13,30,233,3,150,101,17,25,233,122,16,188,43,206,166,214,34, - 222,194,209,77,232,106,196,33,117,50,207,33,240,64,131,225,105,158,80,34,91,248,101,198,167,31,37,204,124,77,126,238,106,1,52,90,61,88,182,182, - 241,242,65,240,10,63,9,90,181,8,192,166,47,254,93,81,81,174,126,155,58,153,247,176,181,191,48,121,96,207,71,197,194,240,74,196,116,153,8,86, - 82,43,2,104,254,216,250,43,210,103,63,134,222,172,148,124,123,179,50,25,245,9,45,131,97,240,91,207,61,183,47,117,247,110,89,175,13,27,112,53, - 33,1,17,58,29,196,54,87,34,67,8,228,66,33,228,66,97,141,200,90,177,2,58,179,25,43,227,227,171,244,6,195,115,158,158,15,66,8,74,74, - 74,48,106,212,168,162,188,188,188,97,13,113,237,57,131,86,171,205,130,151,113,94,174,80,93,93,125,136,16,50,116,212,168,81,187,247,238,221,171,242, - 69,122,135,198,194,65,108,25,79,156,56,241,242,225,195,135,175,226,222,137,69,213,135,15,31,190,154,152,152,72,214,174,93,187,14,192,34,79,19,120, - 106,181,218,79,149,74,37,250,245,235,183,232,221,119,223,13,238,209,163,7,66,67,67,81,81,81,129,83,167,78,97,206,156,57,165,229,229,229,239,150, - 149,149,125,228,101,157,141,0,60,30,202,238,33,167,21,192,122,219,226,19,204,154,53,235,183,171,87,175,150,168,84,170,39,132,66,97,23,212,196,1, - 229,3,88,7,47,5,17,143,25,51,102,156,185,122,245,106,113,203,150,45,159,180,113,42,1,220,1,144,209,0,206,188,147,39,79,70,246,236,217,147, - 225,56,142,178,44,11,142,227,168,64,32,160,182,184,26,10,0,217,217,217,98,184,113,115,93,45,212,45,157,252,239,255,188,241,71,126,245,246,11,5, - 85,115,1,208,109,231,100,251,187,170,216,193,131,59,220,134,62,253,105,16,69,77,162,74,170,189,11,226,23,134,219,214,150,72,217,121,49,223,12,226, - 52,214,239,175,132,115,231,206,249,141,24,49,194,163,164,177,85,85,85,66,163,209,104,114,87,78,163,209,76,78,76,76,60,176,108,217,50,229,194,133, - 11,239,9,124,39,132,12,140,139,139,59,144,150,150,166,124,243,205,55,203,213,106,117,131,238,9,91,30,167,70,61,195,40,165,72,77,77,69,90,90, - 26,220,101,52,183,141,238,115,217,249,241,150,43,94,68,25,141,70,156,59,119,206,158,179,139,119,23,242,169,29,204,102,179,203,209,234,22,139,197,98, - 48,24,240,245,215,95,123,36,182,54,111,222,140,234,234,106,88,220,40,56,199,84,12,221,186,117,67,105,105,169,125,176,79,108,108,172,189,156,209,232, - 50,17,190,83,206,152,152,24,20,23,23,131,143,23,110,21,95,107,236,49,87,54,40,127,240,67,15,87,22,45,226,77,74,2,95,64,226,23,176,183, - 199,83,131,250,196,191,60,199,79,171,183,224,250,245,27,40,42,188,11,134,48,8,111,25,137,54,109,162,32,21,49,200,76,255,168,242,244,145,3,255, - 169,40,47,29,226,140,107,132,82,116,100,197,184,62,79,182,107,231,79,96,54,1,22,19,96,54,1,86,219,39,255,155,245,222,54,119,254,188,154,190, - 241,107,233,255,251,94,109,168,119,206,170,9,132,244,81,6,5,237,75,201,206,150,89,141,70,148,204,155,7,153,217,12,137,237,173,4,0,32,22,195, - 188,100,73,141,200,154,60,185,74,163,86,123,53,5,143,74,165,58,73,8,9,41,42,42,250,75,101,134,87,169,84,187,40,165,197,69,69,69,62,177, - 78,249,2,182,145,127,106,62,89,169,195,239,2,0,42,222,202,213,0,222,40,149,74,245,6,195,48,189,41,165,193,12,195,148,89,173,214,163,133,133, - 133,239,83,74,175,248,162,238,205,240,30,164,54,51,252,35,110,138,22,2,248,59,128,10,74,233,117,79,249,187,41,149,1,122,145,105,199,255,60,38, - 30,48,33,54,0,109,91,248,131,19,74,144,87,110,70,206,31,229,200,56,152,127,75,103,178,140,200,45,172,60,235,158,237,225,6,33,132,180,105,211, - 198,69,64,218,253,184,113,227,134,217,19,107,41,113,49,205,14,33,228,113,165,82,153,169,86,171,189,154,130,199,151,8,14,14,62,182,111,223,190,30, - 109,219,182,101,28,3,222,249,92,121,188,123,75,32,168,209,114,135,14,29,50,63,255,252,243,71,243,243,243,251,57,227,84,40,20,251,127,255,253,247, - 56,141,70,115,159,160,114,204,20,207,127,175,172,172,196,204,153,51,127,40,47,47,175,119,10,30,165,82,185,226,163,143,62,122,117,236,216,177,12,159, - 142,194,113,161,182,233,130,248,197,104,52,226,171,175,190,178,126,252,241,199,159,168,213,106,167,174,195,136,136,136,91,121,121,121,145,124,170,5,103,139, - 35,162,162,162,238,94,191,126,221,233,108,12,77,193,249,87,4,169,51,185,52,240,95,16,90,0,32,148,201,102,251,203,3,255,53,118,210,43,193,81, - 237,162,73,88,120,75,16,48,40,200,191,131,27,127,94,162,59,54,126,86,82,89,94,186,184,170,74,251,153,43,158,78,132,180,123,68,33,220,38,178, - 160,3,248,227,168,51,63,85,93,80,0,70,142,201,189,94,97,154,112,222,133,219,135,23,91,11,119,236,144,137,58,116,184,47,81,156,213,106,133,254, - 194,5,172,140,143,247,90,100,53,163,25,205,104,60,8,33,109,225,62,71,150,9,192,109,111,221,168,132,16,18,19,234,55,145,2,19,24,88,59,51, - 132,136,204,20,185,160,216,47,19,84,173,62,149,71,189,14,19,104,198,195,5,66,136,95,80,80,208,1,150,101,219,216,190,223,19,51,196,175,243,159, - 86,171,245,122,65,65,193,64,74,169,211,17,194,132,144,118,254,254,254,159,89,44,150,94,174,226,121,128,26,55,20,203,178,199,43,42,42,102,59,11, - 65,104,170,81,135,33,33,33,87,110,220,184,209,142,31,69,237,248,172,172,111,100,249,229,203,151,209,191,127,255,27,119,239,222,117,234,103,108,10,206, - 135,17,46,242,104,61,60,22,45,30,132,144,8,161,88,62,69,36,149,60,107,53,153,99,64,0,1,199,93,52,84,235,126,212,235,180,95,58,115,23, - 62,72,76,32,164,143,88,36,218,47,84,40,164,245,157,39,83,69,133,78,111,48,12,110,22,89,205,104,70,51,154,209,140,191,10,8,33,29,130,130, - 130,246,113,28,39,182,125,119,220,118,95,121,179,217,92,93,84,84,52,132,82,154,123,223,198,38,228,252,255,6,188,242,108,138,5,192,160,102,206,102, - 206,102,206,102,206,102,206,102,206,102,206,102,206,191,242,130,26,135,24,5,208,223,201,246,36,103,251,62,176,96,248,102,52,163,25,205,104,70,51,154, - 209,140,191,34,168,205,93,232,42,159,86,93,247,33,173,155,222,193,83,236,218,181,139,250,122,62,34,135,161,156,62,203,6,219,84,156,77,120,236,62, - 155,231,201,33,187,238,226,225,195,135,167,248,136,179,41,235,233,203,107,228,83,78,254,154,251,146,215,177,29,249,170,77,57,212,211,103,237,190,169,57, - 125,216,142,234,214,179,209,109,180,158,235,222,232,123,233,1,213,211,151,215,200,39,156,117,219,143,47,120,235,107,147,141,109,83,245,212,179,209,237,254, - 65,113,250,162,29,57,169,103,163,218,168,139,107,239,179,103,211,131,130,67,204,157,211,121,105,169,147,20,15,94,9,173,166,202,109,225,248,208,129,143, - 178,193,54,5,39,15,95,11,174,38,152,72,243,160,175,57,235,156,79,95,33,197,214,161,255,12,15,166,208,241,16,62,203,44,92,231,88,125,194,235, - 200,233,171,115,89,95,167,232,203,122,54,5,167,227,111,62,234,200,1,248,230,94,170,239,186,251,146,211,87,247,82,157,253,125,114,47,53,69,155,175, - 167,253,52,154,183,46,167,47,238,165,186,156,190,104,247,15,130,147,255,189,49,247,82,125,156,190,104,247,206,174,125,99,121,255,27,160,46,114,104,217, - 182,59,205,163,229,121,6,54,52,237,204,218,182,11,225,84,41,54,148,179,41,45,80,190,228,180,41,253,135,158,19,190,189,70,41,54,206,20,31,114, - 14,240,213,53,106,138,246,238,200,233,43,254,186,60,190,184,78,245,113,54,182,190,78,234,217,40,212,199,217,216,118,255,160,56,225,219,107,228,147,123, - 169,14,167,207,238,165,186,199,187,107,215,174,20,95,114,250,210,58,138,123,235,217,232,235,84,31,167,143,44,80,117,235,217,40,212,199,233,139,103,72, - 83,241,254,149,240,127,22,93,33,203,89,128,128,45,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; -const char* dpf_resources::blender_icons16_png = (const char*) temp1; - -static const unsigned char temp2[] = {0,1,0,0,0,19,1,0,0,4,0,48,70,70,84,77,102,9,29,176,0,0,1,60,0,0,0,28,71,68,69,70,144,48,138,184,0,0,1,88, +static const unsigned char temp1[] = {0,1,0,0,0,19,1,0,0,4,0,48,70,70,84,77,102,9,29,176,0,0,1,60,0,0,0,28,71,68,69,70,144,48,138,184,0,0,1,88, 0,0,2,148,71,80,79,83,63,137,191,2,0,0,3,236,0,0,157,8,71,83,85,66,151,65,114,65,0,0,160,244,0,0,21,114,79,83,47,50, 89,45,118,45,0,0,182,104,0,0,0,86,99,109,97,112,228,111,14,235,0,0,182,192,0,0,22,6,99,118,116,32,0,105,29,57,0,0,204,200, 0,0,1,254,102,112,103,109,113,52,118,106,0,0,206,200,0,0,0,171,103,97,115,112,0,7,0,7,0,0,207,116,0,0,0,12,103,108,121,102, @@ -24811,5 +18541,4 @@ static const unsigned char temp2[] = {0,1,0,0,0,19,1,0,0,4,0,48,70,70,84,77,102, 43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43, 43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43, 43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,29,0,0}; -const char* dpf_resources::dejavusans_ttf = (const char*) temp2; - +const char* dpf_resources::dejavusans_ttf = (const char*) temp1; diff --git a/dpf/dgl/src/Resources.hpp b/dpf/dgl/src/Resources.hpp index dbdaca5..0010f95 100644 --- a/dpf/dgl/src/Resources.hpp +++ b/dpf/dgl/src/Resources.hpp @@ -5,11 +5,8 @@ namespace dpf_resources { - extern const char* blender_icons16_png; - const unsigned int blender_icons16_png_size = 250706; - - extern const char* dejavusans_ttf; - const unsigned int dejavusans_ttf_size = 741536; + extern const char* dejavusans_ttf; + const unsigned int dejavusans_ttf_size = 741536; }; #endif diff --git a/dpf/dgl/src/Widget.cpp b/dpf/dgl/src/Widget.cpp index 155c955..b94d5dd 100644 --- a/dpf/dgl/src/Widget.cpp +++ b/dpf/dgl/src/Widget.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/WidgetPrivateData.hpp b/dpf/dgl/src/WidgetPrivateData.hpp index e49b68c..bbac64b 100644 --- a/dpf/dgl/src/WidgetPrivateData.hpp +++ b/dpf/dgl/src/WidgetPrivateData.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/Window.cpp b/dpf/dgl/src/Window.cpp index 351d774..c44f7c4 100644 --- a/dpf/dgl/src/Window.cpp +++ b/dpf/dgl/src/Window.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dgl/src/oui-blendish/LICENSE b/dpf/dgl/src/oui-blendish/LICENSE deleted file mode 100644 index c160346..0000000 --- a/dpf/dgl/src/oui-blendish/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -Blendish - Blender 2.5 UI based theming functions for NanoVG - -Copyright (c) 2014 Leonard Ritter - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/dpf/dgl/src/oui-blendish/blendish.h b/dpf/dgl/src/oui-blendish/blendish.h deleted file mode 100644 index 9f8c9d2..0000000 --- a/dpf/dgl/src/oui-blendish/blendish.h +++ /dev/null @@ -1,2399 +0,0 @@ -/* -Blendish - Blender 2.5 UI based theming functions for NanoVG - -Copyright (c) 2014 Leonard Ritter - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -#ifndef BLENDISH_H -#define BLENDISH_H - -#ifndef NANOVG_H -#error "nanovg.h must be included first." -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/* - -Revision 6 (2014-09-21) - -Summary -------- - -Blendish is a small collection of drawing functions for NanoVG, designed to -replicate the look of the Blender 2.5+ User Interface. You can use these -functions to theme your UI library. Several metric constants for faithful -reproduction are also included. - -Blendish supports the original Blender icon sheet; As the licensing of Blenders -icons is unclear, they are not included in Blendishes repository, but a SVG -template, "icons_template.svg" is provided, which you can use to build your own -icon sheet. - -To use icons, you must first load the icon sheet using one of the -nvgCreateImage*() functions and then pass the image handle to bndSetIconImage(); -otherwise, no icons will be drawn. See bndSetIconImage() for more information. - -Blendish will not render text until a suitable UI font has been passed to -bndSetFont() has been called. See bndSetFont() for more information. - - -Drawbacks ---------- - -There is no support for varying dpi resolutions yet. The library is hardcoded -to the equivalent of 72 dpi in the Blender system settings. - -Support for label truncation is missing. Text rendering breaks when widgets are -too short to contain their labels. - -Usage ------ - -To use this header file in implementation mode, define BLENDISH_IMPLEMENTATION -before including blendish.h, otherwise the file will be in header-only mode. - -*/ - -// you can override this from the outside to pick -// the export level you need -#ifndef BND_EXPORT -#define BND_EXPORT -#endif - -// if that typedef is provided elsewhere, you may define -// BLENDISH_NO_NVG_TYPEDEFS before including the header. -#ifndef BLENDISH_NO_NVG_TYPEDEFS -typedef struct NVGcontext NVGcontext; -typedef struct NVGcolor NVGcolor; -typedef struct NVGglyphPosition NVGglyphPosition; -#endif - -// describes the theme used to draw a single widget or widget box; -// these values correspond to the same values that can be retrieved from -// the Theme panel in the Blender preferences -typedef struct BNDwidgetTheme { - // color of widget box outline - NVGcolor outlineColor; - // color of widget item (meaning changes depending on class) - NVGcolor itemColor; - // fill color of widget box - NVGcolor innerColor; - // fill color of widget box when active - NVGcolor innerSelectedColor; - // color of text label - NVGcolor textColor; - // color of text label when active - NVGcolor textSelectedColor; - // delta modifier for upper part of gradient (-100 to 100) - int shadeTop; - // delta modifier for lower part of gradient (-100 to 100) - int shadeDown; -} BNDwidgetTheme; - -// describes the theme used to draw nodes -typedef struct BNDnodeTheme { - // inner color of selected node (and downarrow) - NVGcolor nodeSelectedColor; - // outline of wires - NVGcolor wiresColor; - // color of text label when active - NVGcolor textSelectedColor; - - // inner color of active node (and dragged wire) - NVGcolor activeNodeColor; - // color of selected wire - NVGcolor wireSelectColor; - // color of background of node - NVGcolor nodeBackdropColor; - - // how much a noodle curves (0 to 10) - int noodleCurving; -} BNDnodeTheme; - -// describes the theme used to draw widgets -typedef struct BNDtheme { - // the background color of panels and windows - NVGcolor backgroundColor; - // theme for labels - BNDwidgetTheme regularTheme; - // theme for tool buttons - BNDwidgetTheme toolTheme; - // theme for radio buttons - BNDwidgetTheme radioTheme; - // theme for text fields - BNDwidgetTheme textFieldTheme; - // theme for option buttons (checkboxes) - BNDwidgetTheme optionTheme; - // theme for choice buttons (comboboxes) - // Blender calls them "menu buttons" - BNDwidgetTheme choiceTheme; - // theme for number fields - BNDwidgetTheme numberFieldTheme; - // theme for slider controls - BNDwidgetTheme sliderTheme; - // theme for scrollbars - BNDwidgetTheme scrollBarTheme; - // theme for tooltips - BNDwidgetTheme tooltipTheme; - // theme for menu backgrounds - BNDwidgetTheme menuTheme; - // theme for menu items - BNDwidgetTheme menuItemTheme; - // theme for nodes - BNDnodeTheme nodeTheme; -} BNDtheme; - -// how text on a control is aligned -typedef enum BNDtextAlignment { - BND_LEFT = 0, - BND_CENTER, -} BNDtextAlignment; - -// states altering the styling of a widget -typedef enum BNDwidgetState { - // not interacting - BND_DEFAULT = 0, - // the mouse is hovering over the control - BND_HOVER, - // the widget is activated (pressed) or in an active state (toggled) - BND_ACTIVE -} BNDwidgetState; - -// flags indicating which corners are sharp (for grouping widgets) -typedef enum BNDcornerFlags { - // all corners are round - BND_CORNER_NONE = 0, - // sharp top left corner - BND_CORNER_TOP_LEFT = 1, - // sharp top right corner - BND_CORNER_TOP_RIGHT = 2, - // sharp bottom right corner - BND_CORNER_DOWN_RIGHT = 4, - // sharp bottom left corner - BND_CORNER_DOWN_LEFT = 8, - // all corners are sharp; - // you can invert a set of flags using ^= BND_CORNER_ALL - BND_CORNER_ALL = 0xF, - // top border is sharp - BND_CORNER_TOP = 3, - // bottom border is sharp - BND_CORNER_DOWN = 0xC, - // left border is sharp - BND_CORNER_LEFT = 9, - // right border is sharp - BND_CORNER_RIGHT = 6 -} BNDcornerFlags; - -// build an icon ID from two coordinates into the icon sheet, where -// (0,0) designates the upper-leftmost icon, (1,0) the one right next to it, -// and so on. -#define BND_ICONID(x,y) ((x)|((y)<<8)) -// alpha of disabled widget groups -// can be used in conjunction with nvgGlobalAlpha() -#define BND_DISABLED_ALPHA 0.5 - -enum { - // default widget height - BND_WIDGET_HEIGHT = 21, - // default toolbutton width (if icon only) - BND_TOOL_WIDTH = 20, - - // default radius of node ports - BND_NODE_PORT_RADIUS = 5, - // top margin of node content - BND_NODE_MARGIN_TOP = 25, - // bottom margin of node content - BND_NODE_MARGIN_DOWN = 5, - // left and right margin of node content - BND_NODE_MARGIN_SIDE = 10, - // height of node title bar - BND_NODE_TITLE_HEIGHT = 20, - // width of node title arrow click area - BND_NODE_ARROW_AREA_WIDTH = 20, - - // size of splitter corner click area - BND_SPLITTER_AREA_SIZE = 12, - - // width of vertical scrollbar - BND_SCROLLBAR_WIDTH = 13, - // height of horizontal scrollbar - BND_SCROLLBAR_HEIGHT = 14, - - // default vertical spacing - BND_VSPACING = 1, - // default vertical spacing between groups - BND_VSPACING_GROUP = 8, - // default horizontal spacing - BND_HSPACING = 8, -}; - -typedef enum BNDicon { - BND_ICON_NONE = BND_ICONID(0,29), - BND_ICON_QUESTION = BND_ICONID(1,29), - BND_ICON_ERROR = BND_ICONID(2,29), - BND_ICON_CANCEL = BND_ICONID(3,29), - BND_ICON_TRIA_RIGHT = BND_ICONID(4,29), - BND_ICON_TRIA_DOWN = BND_ICONID(5,29), - BND_ICON_TRIA_LEFT = BND_ICONID(6,29), - BND_ICON_TRIA_UP = BND_ICONID(7,29), - BND_ICON_ARROW_LEFTRIGHT = BND_ICONID(8,29), - BND_ICON_PLUS = BND_ICONID(9,29), - BND_ICON_DISCLOSURE_TRI_DOWN = BND_ICONID(10,29), - BND_ICON_DISCLOSURE_TRI_RIGHT = BND_ICONID(11,29), - BND_ICON_RADIOBUT_OFF = BND_ICONID(12,29), - BND_ICON_RADIOBUT_ON = BND_ICONID(13,29), - BND_ICON_MENU_PANEL = BND_ICONID(14,29), - BND_ICON_BLENDER = BND_ICONID(15,29), - BND_ICON_GRIP = BND_ICONID(16,29), - BND_ICON_DOT = BND_ICONID(17,29), - BND_ICON_COLLAPSEMENU = BND_ICONID(18,29), - BND_ICON_X = BND_ICONID(19,29), - BND_ICON_GO_LEFT = BND_ICONID(21,29), - BND_ICON_PLUG = BND_ICONID(22,29), - BND_ICON_UI = BND_ICONID(23,29), - BND_ICON_NODE = BND_ICONID(24,29), - BND_ICON_NODE_SEL = BND_ICONID(25,29), - - BND_ICON_FULLSCREEN = BND_ICONID(0,28), - BND_ICON_SPLITSCREEN = BND_ICONID(1,28), - BND_ICON_RIGHTARROW_THIN = BND_ICONID(2,28), - BND_ICON_BORDERMOVE = BND_ICONID(3,28), - BND_ICON_VIEWZOOM = BND_ICONID(4,28), - BND_ICON_ZOOMIN = BND_ICONID(5,28), - BND_ICON_ZOOMOUT = BND_ICONID(6,28), - BND_ICON_PANEL_CLOSE = BND_ICONID(7,28), - BND_ICON_COPY_ID = BND_ICONID(8,28), - BND_ICON_EYEDROPPER = BND_ICONID(9,28), - BND_ICON_LINK_AREA = BND_ICONID(10,28), - BND_ICON_AUTO = BND_ICONID(11,28), - BND_ICON_CHECKBOX_DEHLT = BND_ICONID(12,28), - BND_ICON_CHECKBOX_HLT = BND_ICONID(13,28), - BND_ICON_UNLOCKED = BND_ICONID(14,28), - BND_ICON_LOCKED = BND_ICONID(15,28), - BND_ICON_UNPINNED = BND_ICONID(16,28), - BND_ICON_PINNED = BND_ICONID(17,28), - BND_ICON_SCREEN_BACK = BND_ICONID(18,28), - BND_ICON_RIGHTARROW = BND_ICONID(19,28), - BND_ICON_DOWNARROW_HLT = BND_ICONID(20,28), - BND_ICON_DOTSUP = BND_ICONID(21,28), - BND_ICON_DOTSDOWN = BND_ICONID(22,28), - BND_ICON_LINK = BND_ICONID(23,28), - BND_ICON_INLINK = BND_ICONID(24,28), - BND_ICON_PLUGIN = BND_ICONID(25,28), - - BND_ICON_HELP = BND_ICONID(0,27), - BND_ICON_GHOST_ENABLED = BND_ICONID(1,27), - BND_ICON_COLOR = BND_ICONID(2,27), - BND_ICON_LINKED = BND_ICONID(3,27), - BND_ICON_UNLINKED = BND_ICONID(4,27), - BND_ICON_HAND = BND_ICONID(5,27), - BND_ICON_ZOOM_ALL = BND_ICONID(6,27), - BND_ICON_ZOOM_SELECTED = BND_ICONID(7,27), - BND_ICON_ZOOM_PREVIOUS = BND_ICONID(8,27), - BND_ICON_ZOOM_IN = BND_ICONID(9,27), - BND_ICON_ZOOM_OUT = BND_ICONID(10,27), - BND_ICON_RENDER_REGION = BND_ICONID(11,27), - BND_ICON_BORDER_RECT = BND_ICONID(12,27), - BND_ICON_BORDER_LASSO = BND_ICONID(13,27), - BND_ICON_FREEZE = BND_ICONID(14,27), - BND_ICON_STYLUS_PRESSURE = BND_ICONID(15,27), - BND_ICON_GHOST_DISABLED = BND_ICONID(16,27), - BND_ICON_NEW = BND_ICONID(17,27), - BND_ICON_FILE_TICK = BND_ICONID(18,27), - BND_ICON_QUIT = BND_ICONID(19,27), - BND_ICON_URL = BND_ICONID(20,27), - BND_ICON_RECOVER_LAST = BND_ICONID(21,27), - BND_ICON_FULLSCREEN_ENTER = BND_ICONID(23,27), - BND_ICON_FULLSCREEN_EXIT = BND_ICONID(24,27), - BND_ICON_BLANK1 = BND_ICONID(25,27), - - BND_ICON_LAMP = BND_ICONID(0,26), - BND_ICON_MATERIAL = BND_ICONID(1,26), - BND_ICON_TEXTURE = BND_ICONID(2,26), - BND_ICON_ANIM = BND_ICONID(3,26), - BND_ICON_WORLD = BND_ICONID(4,26), - BND_ICON_SCENE = BND_ICONID(5,26), - BND_ICON_EDIT = BND_ICONID(6,26), - BND_ICON_GAME = BND_ICONID(7,26), - BND_ICON_RADIO = BND_ICONID(8,26), - BND_ICON_SCRIPT = BND_ICONID(9,26), - BND_ICON_PARTICLES = BND_ICONID(10,26), - BND_ICON_PHYSICS = BND_ICONID(11,26), - BND_ICON_SPEAKER = BND_ICONID(12,26), - BND_ICON_TEXTURE_SHADED = BND_ICONID(13,26), - - BND_ICON_VIEW3D = BND_ICONID(0,25), - BND_ICON_IPO = BND_ICONID(1,25), - BND_ICON_OOPS = BND_ICONID(2,25), - BND_ICON_BUTS = BND_ICONID(3,25), - BND_ICON_FILESEL = BND_ICONID(4,25), - BND_ICON_IMAGE_COL = BND_ICONID(5,25), - BND_ICON_INFO = BND_ICONID(6,25), - BND_ICON_SEQUENCE = BND_ICONID(7,25), - BND_ICON_TEXT = BND_ICONID(8,25), - BND_ICON_IMASEL = BND_ICONID(9,25), - BND_ICON_SOUND = BND_ICONID(10,25), - BND_ICON_ACTION = BND_ICONID(11,25), - BND_ICON_NLA = BND_ICONID(12,25), - BND_ICON_SCRIPTWIN = BND_ICONID(13,25), - BND_ICON_TIME = BND_ICONID(14,25), - BND_ICON_NODETREE = BND_ICONID(15,25), - BND_ICON_LOGIC = BND_ICONID(16,25), - BND_ICON_CONSOLE = BND_ICONID(17,25), - BND_ICON_PREFERENCES = BND_ICONID(18,25), - BND_ICON_CLIP = BND_ICONID(19,25), - BND_ICON_ASSET_MANAGER = BND_ICONID(20,25), - - BND_ICON_OBJECT_DATAMODE = BND_ICONID(0,24), - BND_ICON_EDITMODE_HLT = BND_ICONID(1,24), - BND_ICON_FACESEL_HLT = BND_ICONID(2,24), - BND_ICON_VPAINT_HLT = BND_ICONID(3,24), - BND_ICON_TPAINT_HLT = BND_ICONID(4,24), - BND_ICON_WPAINT_HLT = BND_ICONID(5,24), - BND_ICON_SCULPTMODE_HLT = BND_ICONID(6,24), - BND_ICON_POSE_HLT = BND_ICONID(7,24), - BND_ICON_PARTICLEMODE = BND_ICONID(8,24), - BND_ICON_LIGHTPAINT = BND_ICONID(9,24), - - BND_ICON_SCENE_DATA = BND_ICONID(0,23), - BND_ICON_RENDERLAYERS = BND_ICONID(1,23), - BND_ICON_WORLD_DATA = BND_ICONID(2,23), - BND_ICON_OBJECT_DATA = BND_ICONID(3,23), - BND_ICON_MESH_DATA = BND_ICONID(4,23), - BND_ICON_CURVE_DATA = BND_ICONID(5,23), - BND_ICON_META_DATA = BND_ICONID(6,23), - BND_ICON_LATTICE_DATA = BND_ICONID(7,23), - BND_ICON_LAMP_DATA = BND_ICONID(8,23), - BND_ICON_MATERIAL_DATA = BND_ICONID(9,23), - BND_ICON_TEXTURE_DATA = BND_ICONID(10,23), - BND_ICON_ANIM_DATA = BND_ICONID(11,23), - BND_ICON_CAMERA_DATA = BND_ICONID(12,23), - BND_ICON_PARTICLE_DATA = BND_ICONID(13,23), - BND_ICON_LIBRARY_DATA_DIRECT = BND_ICONID(14,23), - BND_ICON_GROUP = BND_ICONID(15,23), - BND_ICON_ARMATURE_DATA = BND_ICONID(16,23), - BND_ICON_POSE_DATA = BND_ICONID(17,23), - BND_ICON_BONE_DATA = BND_ICONID(18,23), - BND_ICON_CONSTRAINT = BND_ICONID(19,23), - BND_ICON_SHAPEKEY_DATA = BND_ICONID(20,23), - BND_ICON_CONSTRAINT_BONE = BND_ICONID(21,23), - BND_ICON_CAMERA_STEREO = BND_ICONID(22,23), - BND_ICON_PACKAGE = BND_ICONID(23,23), - BND_ICON_UGLYPACKAGE = BND_ICONID(24,23), - - BND_ICON_BRUSH_DATA = BND_ICONID(0,22), - BND_ICON_IMAGE_DATA = BND_ICONID(1,22), - BND_ICON_FILE = BND_ICONID(2,22), - BND_ICON_FCURVE = BND_ICONID(3,22), - BND_ICON_FONT_DATA = BND_ICONID(4,22), - BND_ICON_RENDER_RESULT = BND_ICONID(5,22), - BND_ICON_SURFACE_DATA = BND_ICONID(6,22), - BND_ICON_EMPTY_DATA = BND_ICONID(7,22), - BND_ICON_SETTINGS = BND_ICONID(8,22), - BND_ICON_RENDER_ANIMATION = BND_ICONID(9,22), - BND_ICON_RENDER_STILL = BND_ICONID(10,22), - BND_ICON_BOIDS = BND_ICONID(12,22), - BND_ICON_STRANDS = BND_ICONID(13,22), - BND_ICON_LIBRARY_DATA_INDIRECT = BND_ICONID(14,22), - BND_ICON_GREASEPENCIL = BND_ICONID(15,22), - BND_ICON_LINE_DATA = BND_ICONID(16,22), - BND_ICON_GROUP_BONE = BND_ICONID(18,22), - BND_ICON_GROUP_VERTEX = BND_ICONID(19,22), - BND_ICON_GROUP_VCOL = BND_ICONID(20,22), - BND_ICON_GROUP_UVS = BND_ICONID(21,22), - BND_ICON_RNA = BND_ICONID(24,22), - BND_ICON_RNA_ADD = BND_ICONID(25,22), - - BND_ICON_OUTLINER_OB_EMPTY = BND_ICONID(0,20), - BND_ICON_OUTLINER_OB_MESH = BND_ICONID(1,20), - BND_ICON_OUTLINER_OB_CURVE = BND_ICONID(2,20), - BND_ICON_OUTLINER_OB_LATTICE = BND_ICONID(3,20), - BND_ICON_OUTLINER_OB_META = BND_ICONID(4,20), - BND_ICON_OUTLINER_OB_LAMP = BND_ICONID(5,20), - BND_ICON_OUTLINER_OB_CAMERA = BND_ICONID(6,20), - BND_ICON_OUTLINER_OB_ARMATURE = BND_ICONID(7,20), - BND_ICON_OUTLINER_OB_FONT = BND_ICONID(8,20), - BND_ICON_OUTLINER_OB_SURFACE = BND_ICONID(9,20), - BND_ICON_OUTLINER_OB_SPEAKER = BND_ICONID(10,20), - BND_ICON_RESTRICT_VIEW_OFF = BND_ICONID(19,20), - BND_ICON_RESTRICT_VIEW_ON = BND_ICONID(20,20), - BND_ICON_RESTRICT_SELECT_OFF = BND_ICONID(21,20), - BND_ICON_RESTRICT_SELECT_ON = BND_ICONID(22,20), - BND_ICON_RESTRICT_RENDER_OFF = BND_ICONID(23,20), - BND_ICON_RESTRICT_RENDER_ON = BND_ICONID(24,20), - - BND_ICON_OUTLINER_DATA_EMPTY = BND_ICONID(0,19), - BND_ICON_OUTLINER_DATA_MESH = BND_ICONID(1,19), - BND_ICON_OUTLINER_DATA_CURVE = BND_ICONID(2,19), - BND_ICON_OUTLINER_DATA_LATTICE = BND_ICONID(3,19), - BND_ICON_OUTLINER_DATA_META = BND_ICONID(4,19), - BND_ICON_OUTLINER_DATA_LAMP = BND_ICONID(5,19), - BND_ICON_OUTLINER_DATA_CAMERA = BND_ICONID(6,19), - BND_ICON_OUTLINER_DATA_ARMATURE = BND_ICONID(7,19), - BND_ICON_OUTLINER_DATA_FONT = BND_ICONID(8,19), - BND_ICON_OUTLINER_DATA_SURFACE = BND_ICONID(9,19), - BND_ICON_OUTLINER_DATA_SPEAKER = BND_ICONID(10,19), - BND_ICON_OUTLINER_DATA_POSE = BND_ICONID(11,19), - - BND_ICON_MESH_PLANE = BND_ICONID(0,18), - BND_ICON_MESH_CUBE = BND_ICONID(1,18), - BND_ICON_MESH_CIRCLE = BND_ICONID(2,18), - BND_ICON_MESH_UVSPHERE = BND_ICONID(3,18), - BND_ICON_MESH_ICOSPHERE = BND_ICONID(4,18), - BND_ICON_MESH_GRID = BND_ICONID(5,18), - BND_ICON_MESH_MONKEY = BND_ICONID(6,18), - BND_ICON_MESH_CYLINDER = BND_ICONID(7,18), - BND_ICON_MESH_TORUS = BND_ICONID(8,18), - BND_ICON_MESH_CONE = BND_ICONID(9,18), - BND_ICON_LAMP_POINT = BND_ICONID(12,18), - BND_ICON_LAMP_SUN = BND_ICONID(13,18), - BND_ICON_LAMP_SPOT = BND_ICONID(14,18), - BND_ICON_LAMP_HEMI = BND_ICONID(15,18), - BND_ICON_LAMP_AREA = BND_ICONID(16,18), - BND_ICON_META_EMPTY = BND_ICONID(19,18), - BND_ICON_META_PLANE = BND_ICONID(20,18), - BND_ICON_META_CUBE = BND_ICONID(21,18), - BND_ICON_META_BALL = BND_ICONID(22,18), - BND_ICON_META_ELLIPSOID = BND_ICONID(23,18), - BND_ICON_META_CAPSULE = BND_ICONID(24,18), - - BND_ICON_SURFACE_NCURVE = BND_ICONID(0,17), - BND_ICON_SURFACE_NCIRCLE = BND_ICONID(1,17), - BND_ICON_SURFACE_NSURFACE = BND_ICONID(2,17), - BND_ICON_SURFACE_NCYLINDER = BND_ICONID(3,17), - BND_ICON_SURFACE_NSPHERE = BND_ICONID(4,17), - BND_ICON_SURFACE_NTORUS = BND_ICONID(5,17), - BND_ICON_CURVE_BEZCURVE = BND_ICONID(9,17), - BND_ICON_CURVE_BEZCIRCLE = BND_ICONID(10,17), - BND_ICON_CURVE_NCURVE = BND_ICONID(11,17), - BND_ICON_CURVE_NCIRCLE = BND_ICONID(12,17), - BND_ICON_CURVE_PATH = BND_ICONID(13,17), - BND_ICON_COLOR_RED = BND_ICONID(19,17), - BND_ICON_COLOR_GREEN = BND_ICONID(20,17), - BND_ICON_COLOR_BLUE = BND_ICONID(21,17), - - BND_ICON_FORCE_FORCE = BND_ICONID(0,16), - BND_ICON_FORCE_WIND = BND_ICONID(1,16), - BND_ICON_FORCE_VORTEX = BND_ICONID(2,16), - BND_ICON_FORCE_MAGNETIC = BND_ICONID(3,16), - BND_ICON_FORCE_HARMONIC = BND_ICONID(4,16), - BND_ICON_FORCE_CHARGE = BND_ICONID(5,16), - BND_ICON_FORCE_LENNARDJONES = BND_ICONID(6,16), - BND_ICON_FORCE_TEXTURE = BND_ICONID(7,16), - BND_ICON_FORCE_CURVE = BND_ICONID(8,16), - BND_ICON_FORCE_BOID = BND_ICONID(9,16), - BND_ICON_FORCE_TURBULENCE = BND_ICONID(10,16), - BND_ICON_FORCE_DRAG = BND_ICONID(11,16), - BND_ICON_FORCE_SMOKEFLOW = BND_ICONID(12,16), - - BND_ICON_MODIFIER = BND_ICONID(0,12), - BND_ICON_MOD_WAVE = BND_ICONID(1,12), - BND_ICON_MOD_BUILD = BND_ICONID(2,12), - BND_ICON_MOD_DECIM = BND_ICONID(3,12), - BND_ICON_MOD_MIRROR = BND_ICONID(4,12), - BND_ICON_MOD_SOFT = BND_ICONID(5,12), - BND_ICON_MOD_SUBSURF = BND_ICONID(6,12), - BND_ICON_HOOK = BND_ICONID(7,12), - BND_ICON_MOD_PHYSICS = BND_ICONID(8,12), - BND_ICON_MOD_PARTICLES = BND_ICONID(9,12), - BND_ICON_MOD_BOOLEAN = BND_ICONID(10,12), - BND_ICON_MOD_EDGESPLIT = BND_ICONID(11,12), - BND_ICON_MOD_ARRAY = BND_ICONID(12,12), - BND_ICON_MOD_UVPROJECT = BND_ICONID(13,12), - BND_ICON_MOD_DISPLACE = BND_ICONID(14,12), - BND_ICON_MOD_CURVE = BND_ICONID(15,12), - BND_ICON_MOD_LATTICE = BND_ICONID(16,12), - BND_ICON_CONSTRAINT_DATA = BND_ICONID(17,12), - BND_ICON_MOD_ARMATURE = BND_ICONID(18,12), - BND_ICON_MOD_SHRINKWRAP = BND_ICONID(19,12), - BND_ICON_MOD_CAST = BND_ICONID(20,12), - BND_ICON_MOD_MESHDEFORM = BND_ICONID(21,12), - BND_ICON_MOD_BEVEL = BND_ICONID(22,12), - BND_ICON_MOD_SMOOTH = BND_ICONID(23,12), - BND_ICON_MOD_SIMPLEDEFORM = BND_ICONID(24,12), - BND_ICON_MOD_MASK = BND_ICONID(25,12), - - BND_ICON_MOD_CLOTH = BND_ICONID(0,11), - BND_ICON_MOD_EXPLODE = BND_ICONID(1,11), - BND_ICON_MOD_FLUIDSIM = BND_ICONID(2,11), - BND_ICON_MOD_MULTIRES = BND_ICONID(3,11), - BND_ICON_MOD_SMOKE = BND_ICONID(4,11), - BND_ICON_MOD_SOLIDIFY = BND_ICONID(5,11), - BND_ICON_MOD_SCREW = BND_ICONID(6,11), - BND_ICON_MOD_VERTEX_WEIGHT = BND_ICONID(7,11), - BND_ICON_MOD_DYNAMICPAINT = BND_ICONID(8,11), - BND_ICON_MOD_REMESH = BND_ICONID(9,11), - BND_ICON_MOD_OCEAN = BND_ICONID(10,11), - BND_ICON_MOD_WARP = BND_ICONID(11,11), - BND_ICON_MOD_SKIN = BND_ICONID(12,11), - BND_ICON_MOD_TRIANGULATE = BND_ICONID(13,11), - BND_ICON_MOD_WIREFRAME = BND_ICONID(14,11), - - BND_ICON_REC = BND_ICONID(0,10), - BND_ICON_PLAY = BND_ICONID(1,10), - BND_ICON_FF = BND_ICONID(2,10), - BND_ICON_REW = BND_ICONID(3,10), - BND_ICON_PAUSE = BND_ICONID(4,10), - BND_ICON_PREV_KEYFRAME = BND_ICONID(5,10), - BND_ICON_NEXT_KEYFRAME = BND_ICONID(6,10), - BND_ICON_PLAY_AUDIO = BND_ICONID(7,10), - BND_ICON_PLAY_REVERSE = BND_ICONID(8,10), - BND_ICON_PREVIEW_RANGE = BND_ICONID(9,10), - BND_ICON_ACTION_TWEAK = BND_ICONID(10,10), - BND_ICON_PMARKER_ACT = BND_ICONID(11,10), - BND_ICON_PMARKER_SEL = BND_ICONID(12,10), - BND_ICON_PMARKER = BND_ICONID(13,10), - BND_ICON_MARKER_HLT = BND_ICONID(14,10), - BND_ICON_MARKER = BND_ICONID(15,10), - BND_ICON_SPACE2 = BND_ICONID(16,10), - BND_ICON_SPACE3 = BND_ICONID(17,10), - BND_ICON_KEYINGSET = BND_ICONID(18,10), - BND_ICON_KEY_DEHLT = BND_ICONID(19,10), - BND_ICON_KEY_HLT = BND_ICONID(20,10), - BND_ICON_MUTE_IPO_OFF = BND_ICONID(21,10), - BND_ICON_MUTE_IPO_ON = BND_ICONID(22,10), - BND_ICON_VISIBLE_IPO_OFF = BND_ICONID(23,10), - BND_ICON_VISIBLE_IPO_ON = BND_ICONID(24,10), - BND_ICON_DRIVER = BND_ICONID(25,10), - - BND_ICON_SOLO_OFF = BND_ICONID(0,9), - BND_ICON_SOLO_ON = BND_ICONID(1,9), - BND_ICON_FRAME_PREV = BND_ICONID(2,9), - BND_ICON_FRAME_NEXT = BND_ICONID(3,9), - BND_ICON_NLA_PUSHDOWN = BND_ICONID(4,9), - BND_ICON_IPO_CONSTANT = BND_ICONID(5,9), - BND_ICON_IPO_LINEAR = BND_ICONID(6,9), - BND_ICON_IPO_BEZIER = BND_ICONID(7,9), - BND_ICON_IPO_SINE = BND_ICONID(8,9), - BND_ICON_IPO_QUAD = BND_ICONID(9,9), - BND_ICON_IPO_CUBIC = BND_ICONID(10,9), - BND_ICON_IPO_QUART = BND_ICONID(11,9), - BND_ICON_IPO_QUINT = BND_ICONID(12,9), - BND_ICON_IPO_EXPO = BND_ICONID(13,9), - BND_ICON_IPO_CIRC = BND_ICONID(14,9), - BND_ICON_IPO_BOUNCE = BND_ICONID(15,9), - BND_ICON_IPO_ELASTIC = BND_ICONID(16,9), - BND_ICON_IPO_BACK = BND_ICONID(17,9), - BND_ICON_IPO_EASE_IN = BND_ICONID(18,9), - BND_ICON_IPO_EASE_OUT = BND_ICONID(19,9), - BND_ICON_IPO_EASE_IN_OUT = BND_ICONID(20,9), - - BND_ICON_VERTEXSEL = BND_ICONID(0,8), - BND_ICON_EDGESEL = BND_ICONID(1,8), - BND_ICON_FACESEL = BND_ICONID(2,8), - BND_ICON_LOOPSEL = BND_ICONID(3,8), - BND_ICON_ROTATE = BND_ICONID(5,8), - BND_ICON_CURSOR = BND_ICONID(6,8), - BND_ICON_ROTATECOLLECTION = BND_ICONID(7,8), - BND_ICON_ROTATECENTER = BND_ICONID(8,8), - BND_ICON_ROTACTIVE = BND_ICONID(9,8), - BND_ICON_ALIGN = BND_ICONID(10,8), - BND_ICON_SMOOTHCURVE = BND_ICONID(12,8), - BND_ICON_SPHERECURVE = BND_ICONID(13,8), - BND_ICON_ROOTCURVE = BND_ICONID(14,8), - BND_ICON_SHARPCURVE = BND_ICONID(15,8), - BND_ICON_LINCURVE = BND_ICONID(16,8), - BND_ICON_NOCURVE = BND_ICONID(17,8), - BND_ICON_RNDCURVE = BND_ICONID(18,8), - BND_ICON_PROP_OFF = BND_ICONID(19,8), - BND_ICON_PROP_ON = BND_ICONID(20,8), - BND_ICON_PROP_CON = BND_ICONID(21,8), - BND_ICON_SCULPT_DYNTOPO = BND_ICONID(22,8), - BND_ICON_PARTICLE_POINT = BND_ICONID(23,8), - BND_ICON_PARTICLE_TIP = BND_ICONID(24,8), - BND_ICON_PARTICLE_PATH = BND_ICONID(25,8), - - BND_ICON_MAN_TRANS = BND_ICONID(0,7), - BND_ICON_MAN_ROT = BND_ICONID(1,7), - BND_ICON_MAN_SCALE = BND_ICONID(2,7), - BND_ICON_MANIPUL = BND_ICONID(3,7), - BND_ICON_SNAP_OFF = BND_ICONID(4,7), - BND_ICON_SNAP_ON = BND_ICONID(5,7), - BND_ICON_SNAP_NORMAL = BND_ICONID(6,7), - BND_ICON_SNAP_INCREMENT = BND_ICONID(7,7), - BND_ICON_SNAP_VERTEX = BND_ICONID(8,7), - BND_ICON_SNAP_EDGE = BND_ICONID(9,7), - BND_ICON_SNAP_FACE = BND_ICONID(10,7), - BND_ICON_SNAP_VOLUME = BND_ICONID(11,7), - BND_ICON_STICKY_UVS_LOC = BND_ICONID(13,7), - BND_ICON_STICKY_UVS_DISABLE = BND_ICONID(14,7), - BND_ICON_STICKY_UVS_VERT = BND_ICONID(15,7), - BND_ICON_CLIPUV_DEHLT = BND_ICONID(16,7), - BND_ICON_CLIPUV_HLT = BND_ICONID(17,7), - BND_ICON_SNAP_PEEL_OBJECT = BND_ICONID(18,7), - BND_ICON_GRID = BND_ICONID(19,7), - - BND_ICON_PASTEDOWN = BND_ICONID(0,6), - BND_ICON_COPYDOWN = BND_ICONID(1,6), - BND_ICON_PASTEFLIPUP = BND_ICONID(2,6), - BND_ICON_PASTEFLIPDOWN = BND_ICONID(3,6), - BND_ICON_SNAP_SURFACE = BND_ICONID(8,6), - BND_ICON_AUTOMERGE_ON = BND_ICONID(9,6), - BND_ICON_AUTOMERGE_OFF = BND_ICONID(10,6), - BND_ICON_RETOPO = BND_ICONID(11,6), - BND_ICON_UV_VERTEXSEL = BND_ICONID(12,6), - BND_ICON_UV_EDGESEL = BND_ICONID(13,6), - BND_ICON_UV_FACESEL = BND_ICONID(14,6), - BND_ICON_UV_ISLANDSEL = BND_ICONID(15,6), - BND_ICON_UV_SYNC_SELECT = BND_ICONID(16,6), - - BND_ICON_BBOX = BND_ICONID(0,5), - BND_ICON_WIRE = BND_ICONID(1,5), - BND_ICON_SOLID = BND_ICONID(2,5), - BND_ICON_SMOOTH = BND_ICONID(3,5), - BND_ICON_POTATO = BND_ICONID(4,5), - BND_ICON_ORTHO = BND_ICONID(6,5), - BND_ICON_LOCKVIEW_OFF = BND_ICONID(9,5), - BND_ICON_LOCKVIEW_ON = BND_ICONID(10,5), - BND_ICON_AXIS_SIDE = BND_ICONID(12,5), - BND_ICON_AXIS_FRONT = BND_ICONID(13,5), - BND_ICON_AXIS_TOP = BND_ICONID(14,5), - BND_ICON_NDOF_DOM = BND_ICONID(15,5), - BND_ICON_NDOF_TURN = BND_ICONID(16,5), - BND_ICON_NDOF_FLY = BND_ICONID(17,5), - BND_ICON_NDOF_TRANS = BND_ICONID(18,5), - BND_ICON_LAYER_USED = BND_ICONID(19,5), - BND_ICON_LAYER_ACTIVE = BND_ICONID(20,5), - - BND_ICON_SORTALPHA = BND_ICONID(0,3), - BND_ICON_SORTBYEXT = BND_ICONID(1,3), - BND_ICON_SORTTIME = BND_ICONID(2,3), - BND_ICON_SORTSIZE = BND_ICONID(3,3), - BND_ICON_LONGDISPLAY = BND_ICONID(4,3), - BND_ICON_SHORTDISPLAY = BND_ICONID(5,3), - BND_ICON_GHOST = BND_ICONID(6,3), - BND_ICON_IMGDISPLAY = BND_ICONID(7,3), - BND_ICON_SAVE_AS = BND_ICONID(8,3), - BND_ICON_SAVE_COPY = BND_ICONID(9,3), - BND_ICON_BOOKMARKS = BND_ICONID(10,3), - BND_ICON_FONTPREVIEW = BND_ICONID(11,3), - BND_ICON_FILTER = BND_ICONID(12,3), - BND_ICON_NEWFOLDER = BND_ICONID(13,3), - BND_ICON_OPEN_RECENT = BND_ICONID(14,3), - BND_ICON_FILE_PARENT = BND_ICONID(15,3), - BND_ICON_FILE_REFRESH = BND_ICONID(16,3), - BND_ICON_FILE_FOLDER = BND_ICONID(17,3), - BND_ICON_FILE_BLANK = BND_ICONID(18,3), - BND_ICON_FILE_BLEND = BND_ICONID(19,3), - BND_ICON_FILE_IMAGE = BND_ICONID(20,3), - BND_ICON_FILE_MOVIE = BND_ICONID(21,3), - BND_ICON_FILE_SCRIPT = BND_ICONID(22,3), - BND_ICON_FILE_SOUND = BND_ICONID(23,3), - BND_ICON_FILE_FONT = BND_ICONID(24,3), - BND_ICON_FILE_TEXT = BND_ICONID(25,3), - - BND_ICON_RECOVER_AUTO = BND_ICONID(0,2), - BND_ICON_SAVE_PREFS = BND_ICONID(1,2), - BND_ICON_LINK_BLEND = BND_ICONID(2,2), - BND_ICON_APPEND_BLEND = BND_ICONID(3,2), - BND_ICON_IMPORT = BND_ICONID(4,2), - BND_ICON_EXPORT = BND_ICONID(5,2), - BND_ICON_EXTERNAL_DATA = BND_ICONID(6,2), - BND_ICON_LOAD_FACTORY = BND_ICONID(7,2), - BND_ICON_LOOP_BACK = BND_ICONID(13,2), - BND_ICON_LOOP_FORWARDS = BND_ICONID(14,2), - BND_ICON_BACK = BND_ICONID(15,2), - BND_ICON_FORWARD = BND_ICONID(16,2), - BND_ICON_FILE_BACKUP = BND_ICONID(24,2), - BND_ICON_DISK_DRIVE = BND_ICONID(25,2), - - BND_ICON_MATPLANE = BND_ICONID(0,1), - BND_ICON_MATSPHERE = BND_ICONID(1,1), - BND_ICON_MATCUBE = BND_ICONID(2,1), - BND_ICON_MONKEY = BND_ICONID(3,1), - BND_ICON_HAIR = BND_ICONID(4,1), - BND_ICON_ALIASED = BND_ICONID(5,1), - BND_ICON_ANTIALIASED = BND_ICONID(6,1), - BND_ICON_MAT_SPHERE_SKY = BND_ICONID(7,1), - BND_ICON_WORDWRAP_OFF = BND_ICONID(12,1), - BND_ICON_WORDWRAP_ON = BND_ICONID(13,1), - BND_ICON_SYNTAX_OFF = BND_ICONID(14,1), - BND_ICON_SYNTAX_ON = BND_ICONID(15,1), - BND_ICON_LINENUMBERS_OFF = BND_ICONID(16,1), - BND_ICON_LINENUMBERS_ON = BND_ICONID(17,1), - BND_ICON_SCRIPTPLUGINS = BND_ICONID(18,1), - - BND_ICON_SEQ_SEQUENCER = BND_ICONID(0,0), - BND_ICON_SEQ_PREVIEW = BND_ICONID(1,0), - BND_ICON_SEQ_LUMA_WAVEFORM = BND_ICONID(2,0), - BND_ICON_SEQ_CHROMA_SCOPE = BND_ICONID(3,0), - BND_ICON_SEQ_HISTOGRAM = BND_ICONID(4,0), - BND_ICON_SEQ_SPLITVIEW = BND_ICONID(5,0), - BND_ICON_IMAGE_RGB = BND_ICONID(9,0), - BND_ICON_IMAGE_RGB_ALPHA = BND_ICONID(10,0), - BND_ICON_IMAGE_ALPHA = BND_ICONID(11,0), - BND_ICON_IMAGE_ZDEPTH = BND_ICONID(12,0), - BND_ICON_IMAGEFILE = BND_ICONID(13,0), -} BNDicon; - -//////////////////////////////////////////////////////////////////////////////// - -// set the current theme all widgets will be drawn with. -// the default Blender 2.6 theme is set by default. -BND_EXPORT void bndSetTheme(BNDtheme theme); - -// Returns the currently set theme -BND_EXPORT const BNDtheme *bndGetTheme(); - -// designates an image handle as returned by nvgCreateImage*() as the themes' -// icon sheet. The icon sheet format must be compatible to Blender 2.6's icon -// sheet; the order of icons does not matter. -// A valid icon sheet is e.g. shown at -// http://wiki.blender.org/index.php/Dev:2.5/Doc/How_to/Add_an_icon -BND_EXPORT void bndSetIconImage(int image); - -// designates an image handle as returned by nvgCreateFont*() as the themes' -// UI font. Blender's original UI font Droid Sans is perfectly suited and -// available here: -// https://svn.blender.org/svnroot/bf-blender/trunk/blender/release/datafiles/fonts/ -BND_EXPORT void bndSetFont(int font); - -//////////////////////////////////////////////////////////////////////////////// - -// High Level Functions -// -------------------- -// Use these functions to draw themed widgets with your NVGcontext. - -// Draw a label with its lower left origin at (x,y) and size of (w,h). -// if iconid >= 0, an icon will be added to the widget -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndLabel(NVGcontext *ctx, - float x, float y, float w, float h, int iconid, const char *label); - -// Draw a tool button with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// if iconid >= 0, an icon will be added to the widget -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndToolButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *label); - -// Draw a radio button with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// if iconid >= 0, an icon will be added to the widget -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndRadioButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *label); - - -// Calculate the corresponding text position for given coordinates px/py -// in a text field. -// See bndTextField for more info. -BND_EXPORT int bndTextFieldTextPosition(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, const char *text, int px, int py); - -// Draw a text field with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// if iconid >= 0, an icon will be added to the widget -// if text is not NULL, text will be printed to the widget -// cbegin must be >= 0 and <= strlen(text) and denotes the beginning of the caret -// cend must be >= cbegin and <= strlen(text) and denotes the end of the caret -// if cend < cbegin, then no caret will be drawn -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndTextField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *text, int cbegin, int cend); - -// Draw an option button with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndOptionButton(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, - const char *label); - -// Draw a choice button with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// if iconid >= 0, an icon will be added to the widget -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndChoiceButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *label); - -// Draw a color button with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndColorButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, NVGcolor color); - -// Draw a number field with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// if label is not NULL, a label will be added to the widget -// if value is not NULL, a value will be added to the widget, along with -// a ":" separator -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndNumberField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - const char *label, const char *value); - -// Draw slider control with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags and state denotes -// the widgets current UI state. -// progress must be in the range 0..1 and controls the size of the slider bar -// if label is not NULL, a label will be added to the widget -// if value is not NULL, a value will be added to the widget, along with -// a ":" separator -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndSlider(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - float progress, const char *label, const char *value); - -// Draw scrollbar with its lower left origin at (x,y) and size of (w,h), -// where state denotes the widgets current UI state. -// offset is in the range 0..1 and controls the position of the scroll handle -// size is in the range 0..1 and controls the size of the scroll handle -// horizontal widget looks best when height is BND_SCROLLBAR_HEIGHT, -// vertical looks best when width is BND_SCROLLBAR_WIDTH -BND_EXPORT void bndScrollBar(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, - float offset, float size); - -// Draw a menu background with its lower left origin at (x,y) and size of (w,h), -// where flags is one or multiple flags from BNDcornerFlags. -BND_EXPORT void bndMenuBackground(NVGcontext *ctx, - float x, float y, float w, float h, int flags); - -// Draw a menu label with its lower left origin at (x,y) and size of (w,h). -// if iconid >= 0, an icon will be added to the widget -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndMenuLabel(NVGcontext *ctx, - float x, float y, float w, float h, int iconid, const char *label); - -// Draw a menu item with its lower left origin at (x,y) and size of (w,h), -// where state denotes the widgets current UI state. -// if iconid >= 0, an icon will be added to the widget -// if label is not NULL, a label will be added to the widget -// widget looks best when height is BND_WIDGET_HEIGHT -BND_EXPORT void bndMenuItem(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, - int iconid, const char *label); - -// Draw a tooltip background with its lower left origin at (x,y) and size of (w,h) -BND_EXPORT void bndTooltipBackground(NVGcontext *ctx, float x, float y, float w, float h); - -// Draw a node port at the given position filled with the given color -BND_EXPORT void bndNodePort(NVGcontext *ctx, float x, float y, BNDwidgetState state, - NVGcolor color); - -// Draw a node wire originating at (x0,y0) and floating to (x1,y1), with -// a colored gradient based on the states state0 and state1: -// BND_DEFAULT: default wire color -// BND_HOVER: selected wire color -// BND_ACTIVE: dragged wire color -BND_EXPORT void bndNodeWire(NVGcontext *ctx, float x0, float y0, float x1, float y1, - BNDwidgetState state0, BNDwidgetState state1); - -// Draw a node wire originating at (x0,y0) and floating to (x1,y1), with -// a colored gradient based on the two colors color0 and color1 -BND_EXPORT void bndColoredNodeWire(NVGcontext *ctx, float x0, float y0, float x1, float y1, - NVGcolor color0, NVGcolor color1); - -// Draw a node background with its upper left origin at (x,y) and size of (w,h) -// where titleColor provides the base color for the title bar -BND_EXPORT void bndNodeBackground(NVGcontext *ctx, float x, float y, float w, float h, - BNDwidgetState state, int iconid, const char *label, NVGcolor titleColor); - -// Draw a window with the upper right and lower left splitter widgets into -// the rectangle at origin (x,y) and size (w, h) -BND_EXPORT void bndSplitterWidgets(NVGcontext *ctx, float x, float y, float w, float h); - -// Draw the join area overlay stencil into the rectangle -// at origin (x,y) and size (w,h) -// vertical is 0 or 1 and designates the arrow orientation, -// mirror is 0 or 1 and flips the arrow side -BND_EXPORT void bndJoinAreaOverlay(NVGcontext *ctx, float x, float y, float w, float h, - int vertical, int mirror); - -//////////////////////////////////////////////////////////////////////////////// - -// Estimator Functions -// ------------------- -// Use these functions to estimate sizes for widgets with your NVGcontext. - -// returns the ideal width for a label with given icon and text -BND_EXPORT float bndLabelWidth(NVGcontext *ctx, int iconid, const char *label); - -// returns the height for a label with given icon, text and width; this -// function is primarily useful in conjunction with multiline labels and textboxes -BND_EXPORT float bndLabelHeight(NVGcontext *ctx, int iconid, const char *label, - float width); - -//////////////////////////////////////////////////////////////////////////////// - -// Low Level Functions -// ------------------- -// these are part of the implementation detail and can be used to theme -// new kinds of controls in a similar fashion. - -// make color transparent using the default alpha value -BND_EXPORT NVGcolor bndTransparent(NVGcolor color); - -// offset a color by a given integer delta in the range -100 to 100 -BND_EXPORT NVGcolor bndOffsetColor(NVGcolor color, int delta); - -// assigns radius r to the four entries of array radiuses depending on whether -// the corner is marked as sharp or not; see BNDcornerFlags for possible -// flag values. -BND_EXPORT void bndSelectCorners(float *radiuses, float r, int flags); - -// computes the upper and lower gradient colors for the inner box from a widget -// theme and the widgets state. If flipActive is set and the state is -// BND_ACTIVE, the upper and lower colors will be swapped. -BND_EXPORT void bndInnerColors(NVGcolor *shade_top, NVGcolor *shade_down, - const BNDwidgetTheme *theme, BNDwidgetState state, int flipActive); - -// computes the text color for a widget label from a widget theme and the -// widgets state. -BND_EXPORT NVGcolor bndTextColor(const BNDwidgetTheme *theme, BNDwidgetState state); - -// computes the bounds of the scrollbar handle from the scrollbar size -// and the handles offset and size. -// offset is in the range 0..1 and defines the position of the scroll handle -// size is in the range 0..1 and defines the size of the scroll handle -BND_EXPORT void bndScrollHandleRect(float *x, float *y, float *w, float *h, - float offset, float size); - -// Add a rounded box path at position (x,y) with size (w,h) and a separate -// radius for each corner listed in clockwise order, so that cr0 = top left, -// cr1 = top right, cr2 = bottom right, cr3 = bottom left; -// this is a low level drawing function: the path must be stroked or filled -// to become visible. -BND_EXPORT void bndRoundedBox(NVGcontext *ctx, float x, float y, float w, float h, - float cr0, float cr1, float cr2, float cr3); - -// Draw a flat panel without any decorations at position (x,y) with size (w,h) -// and fills it with backgroundColor -BND_EXPORT void bndBackground(NVGcontext *ctx, float x, float y, float w, float h); - -// Draw a beveled border at position (x,y) with size (w,h) shaded with -// lighter and darker versions of backgroundColor -BND_EXPORT void bndBevel(NVGcontext *ctx, float x, float y, float w, float h); - -// Draw a lower inset for a rounded box at position (x,y) with size (w,h) -// that gives the impression the surface has been pushed in. -// cr2 and cr3 contain the radiuses of the bottom right and bottom left -// corners of the rounded box. -BND_EXPORT void bndBevelInset(NVGcontext *ctx, float x, float y, float w, float h, - float cr2, float cr3); - -// Draw an icon with (x,y) as its upper left coordinate; the iconid selects -// the icon from the sheet; use the BND_ICONID macro to build icon IDs. -BND_EXPORT void bndIcon(NVGcontext *ctx, float x, float y, int iconid); - -// Draw a drop shadow around the rounded box at (x,y) with size (w,h) and -// radius r, with feather as its maximum range in pixels. -// No shadow will be painted inside the rounded box. -BND_EXPORT void bndDropShadow(NVGcontext *ctx, float x, float y, float w, float h, - float r, float feather, float alpha); - -// Draw the inner part of a widget box, with a gradient from shade_top to -// shade_down. If h>w, the gradient will be horizontal instead of -// vertical. -BND_EXPORT void bndInnerBox(NVGcontext *ctx, float x, float y, float w, float h, - float cr0, float cr1, float cr2, float cr3, - NVGcolor shade_top, NVGcolor shade_down); - -// Draw the outline part of a widget box with the given color -BND_EXPORT void bndOutlineBox(NVGcontext *ctx, float x, float y, float w, float h, - float cr0, float cr1, float cr2, float cr3, NVGcolor color); - -// Draw an optional icon specified by and an optional label with -// given alignment (BNDtextAlignment), fontsize and color within a widget box. -// if iconid is >= 0, an icon will be drawn and the labels remaining space -// will be adjusted. -// if label is not NULL, it will be drawn with the specified alignment, fontsize -// and color. -// if value is not NULL, label and value will be drawn with a ":" separator -// inbetween. -BND_EXPORT void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, int align, float fontsize, const char *label, - const char *value); - -// Draw an optional icon specified by and an optional label with -// given alignment (BNDtextAlignment), fontsize and color within a node title bar -// if iconid is >= 0, an icon will be drawn -// if label is not NULL, it will be drawn with the specified alignment, fontsize -// and color. -BND_EXPORT void bndNodeIconLabel(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, NVGcolor shadowColor, int align, - float fontsize, const char *label); - -// Calculate the corresponding text position for given coordinates px/py -// in an iconLabel. -// See bndIconLabelCaret for more info. -BND_EXPORT int bndIconLabelTextPosition(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, float fontsize, const char *label, int px, int py); - -// Draw an optional icon specified by , an optional label and -// a caret with given fontsize and color within a widget box. -// if iconid is >= 0, an icon will be drawn and the labels remaining space -// will be adjusted. -// if label is not NULL, it will be drawn with the specified alignment, fontsize -// and color. -// cbegin must be >= 0 and <= strlen(text) and denotes the beginning of the caret -// cend must be >= cbegin and <= strlen(text) and denotes the end of the caret -// if cend < cbegin, then no caret will be drawn -BND_EXPORT void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, float fontsize, const char *label, - NVGcolor caretcolor, int cbegin, int cend); - -// Draw a checkmark for an option box with the given upper left coordinates -// (ox,oy) with the specified color. -BND_EXPORT void bndCheck(NVGcontext *ctx, float ox, float oy, NVGcolor color); - -// Draw a horizontal arrow for a number field with its center at (x,y) and -// size s; if s is negative, the arrow points to the left. -BND_EXPORT void bndArrow(NVGcontext *ctx, float x, float y, float s, NVGcolor color); - -// Draw an up/down arrow for a choice box with its center at (x,y) and size s -BND_EXPORT void bndUpDownArrow(NVGcontext *ctx, float x, float y, float s, NVGcolor color); - -// Draw a node down-arrow with its tip at (x,y) and size s -BND_EXPORT void bndNodeArrowDown(NVGcontext *ctx, float x, float y, float s, NVGcolor color); - -// return the color of a node wire based on state -// BND_HOVER indicates selected state, -// BND_ACTIVE indicates dragged state -BND_EXPORT NVGcolor bndNodeWireColor(const BNDnodeTheme *theme, BNDwidgetState state); - -#ifdef __cplusplus -}; -#endif - -#endif // BLENDISH_H - -//////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////// - -#ifdef BLENDISH_IMPLEMENTATION - -#include -#include - -#ifdef _MSC_VER - #pragma warning (disable: 4996) // Switch off security warnings - #pragma warning (disable: 4100) // Switch off unreferenced formal parameter warnings - #pragma warning (disable: 4244) - #pragma warning (disable: 4305) - #ifdef __cplusplus - #define BND_INLINE inline - #else - #define BND_INLINE - #endif - -#include - -static float bnd_fminf ( float a, float b ) -{ - return _isnan(a) ? b : ( _isnan(b) ? a : ((a < b) ? a : b)); -} - -static float bnd_fmaxf ( float a, float b ) -{ - return _isnan(a) ? b : ( _isnan(b) ? a : ((a > b) ? a : b)); -} - -static double bnd_fmin ( double a, double b ) -{ - return _isnan(a) ? b : ( _isnan(b) ? a : ((a < b) ? a : b)); -} - -static double bnd_fmax ( double a, double b ) -{ - return _isnan(a) ? b : ( _isnan(b) ? a : ((a > b) ? a : b)); -} - -#else - #define BND_INLINE inline - #define bnd_fminf(a, b) fminf(a, b) - #define bnd_fmaxf(a, b) fmaxf(a, b) - #define bnd_fmin(a, b) fmin(a, b) - #define bnd_fmax(a, b) fmax(a, b) -#endif - -//////////////////////////////////////////////////////////////////////////////// - -// default text size -#define BND_LABEL_FONT_SIZE 13 - -// default text padding in inner box -#define BND_PAD_LEFT 8 -#define BND_PAD_RIGHT 8 - -// label: value separator string -#define BND_LABEL_SEPARATOR ": " - -// alpha intensity of transparent items (0xa4) -#define BND_TRANSPARENT_ALPHA 0.643 - -// shade intensity of beveled panels -#define BND_BEVEL_SHADE 30 -// shade intensity of beveled insets -#define BND_INSET_BEVEL_SHADE 30 -// shade intensity of hovered inner boxes -#define BND_HOVER_SHADE 15 -// shade intensity of splitter bevels -#define BND_SPLITTER_SHADE 100 - -// width of icon sheet -#define BND_ICON_SHEET_WIDTH 602 -// height of icon sheet -#define BND_ICON_SHEET_HEIGHT 640 -// gridsize of icon sheet in both dimensions -#define BND_ICON_SHEET_GRID 21 -// offset of first icon tile relative to left border -#define BND_ICON_SHEET_OFFSET_X 5 -// offset of first icon tile relative to top border -#define BND_ICON_SHEET_OFFSET_Y 10 -// resolution of single icon -#define BND_ICON_SHEET_RES 16 - -// size of number field arrow -#define BND_NUMBER_ARROW_SIZE 4 - -// default text color -#define BND_COLOR_TEXT {{{ 0,0,0,1 }}} -// default highlighted text color -#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}} - -// radius of tool button -#define BND_TOOL_RADIUS 4 - -// radius of option button -#define BND_OPTION_RADIUS 4 -// width of option button checkbox -#define BND_OPTION_WIDTH 14 -// height of option button checkbox -#define BND_OPTION_HEIGHT 15 - -// radius of text field -#define BND_TEXT_RADIUS 4 - -// radius of number button -#define BND_NUMBER_RADIUS 10 - -// radius of menu popup -#define BND_MENU_RADIUS 3 -// feather of menu popup shadow -#define BND_SHADOW_FEATHER 12 -// alpha of menu popup shadow -#define BND_SHADOW_ALPHA 0.5 - -// radius of scrollbar -#define BND_SCROLLBAR_RADIUS 7 -// shade intensity of active scrollbar -#define BND_SCROLLBAR_ACTIVE_SHADE 15 - -// max glyphs for position testing -#define BND_MAX_GLYPHS 1024 - -// max rows for position testing -#define BND_MAX_ROWS 32 - -// text distance from bottom -#define BND_TEXT_PAD_DOWN 7 - -// stroke width of wire outline -#define BND_NODE_WIRE_OUTLINE_WIDTH 4 -// stroke width of wire -#define BND_NODE_WIRE_WIDTH 2 -// radius of node box -#define BND_NODE_RADIUS 8 -// feather of node title text -#define BND_NODE_TITLE_FEATHER 1 -// size of node title arrow -#define BND_NODE_ARROW_SIZE 9 - -//////////////////////////////////////////////////////////////////////////////// - -BND_INLINE float bnd_clamp(float v, float mn, float mx) { - return (v > mx)?mx:(v < mn)?mn:v; -} - -//////////////////////////////////////////////////////////////////////////////// - -// the initial theme -static BNDtheme bnd_theme = { - // backgroundColor - {{{ 0.447, 0.447, 0.447, 1.0 }}}, - // regularTheme - { - {{{ 0.098,0.098,0.098,1 }}}, // color_outline - {{{ 0.098,0.098,0.098,1 }}}, // color_item - {{{ 0.6,0.6,0.6,1 }}}, // color_inner - {{{ 0.392,0.392,0.392,1 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 0, // shade_top - 0, // shade_down - }, - // toolTheme - { - {{{ 0.098,0.098,0.098,1 }}}, // color_outline - {{{ 0.098,0.098,0.098,1 }}}, // color_item - {{{ 0.6,0.6,0.6,1 }}}, // color_inner - {{{ 0.392,0.392,0.392,1 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 15, // shade_top - -15, // shade_down - }, - // radioTheme - { - {{{ 0,0,0,1 }}}, // color_outline - {{{ 1,1,1,1 }}}, // color_item - {{{ 0.275,0.275,0.275,1 }}}, // color_inner - {{{ 0.337,0.502,0.761,1 }}}, // color_inner_selected - BND_COLOR_TEXT_SELECTED, // color_text - BND_COLOR_TEXT, // color_text_selected - 15, // shade_top - -15, // shade_down - }, - // textFieldTheme - { - {{{ 0.098,0.098,0.098,1 }}}, // color_outline - {{{ 0.353, 0.353, 0.353,1 }}}, // color_item - {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner - {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 0, // shade_top - 25, // shade_down - }, - // optionTheme - { - {{{ 0,0,0,1 }}}, // color_outline - {{{ 1,1,1,1 }}}, // color_item - {{{ 0.275,0.275,0.275,1 }}}, // color_inner - {{{ 0.275,0.275,0.275,1 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 15, // shade_top - -15, // shade_down - }, - // choiceTheme - { - {{{ 0,0,0,1 }}}, // color_outline - {{{ 1,1,1,1 }}}, // color_item - {{{ 0.275,0.275,0.275,1 }}}, // color_inner - {{{ 0.275,0.275,0.275,1 }}}, // color_inner_selected - BND_COLOR_TEXT_SELECTED, // color_text - {{{ 0.8,0.8,0.8,1 }}}, // color_text_selected - 15, // shade_top - -15, // shade_down - }, - // numberFieldTheme - { - {{{ 0.098,0.098,0.098,1 }}}, // color_outline - {{{ 0.353, 0.353, 0.353,1 }}}, // color_item - {{{ 0.706, 0.706, 0.706,1 }}}, // color_inner - {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - -20, // shade_top - 0, // shade_down - }, - // sliderTheme - { - {{{ 0.098,0.098,0.098,1 }}}, // color_outline - {{{ 0.502,0.502,0.502,1 }}}, // color_item - {{{ 0.706, 0.706, 0.706,1 }}}, // color_inner - {{{ 0.6, 0.6, 0.6,1 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - -20, // shade_top - 0, // shade_down - }, - // scrollBarTheme - { - {{{ 0.196,0.196,0.196,1 }}}, // color_outline - {{{ 0.502,0.502,0.502,1 }}}, // color_item - {{{ 0.314, 0.314, 0.314,0.706 }}}, // color_inner - {{{ 0.392, 0.392, 0.392,0.706 }}}, // color_inner_selected - BND_COLOR_TEXT, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 5, // shade_top - -5, // shade_down - }, - // tooltipTheme - { - {{{ 0,0,0,1 }}}, // color_outline - {{{ 0.392,0.392,0.392,1 }}}, // color_item - {{{ 0.098, 0.098, 0.098, 0.902 }}}, // color_inner - {{{ 0.176, 0.176, 0.176, 0.902 }}}, // color_inner_selected - {{{ 0.627, 0.627, 0.627, 1 }}}, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 0, // shade_top - 0, // shade_down - }, - // menuTheme - { - {{{ 0,0,0,1 }}}, // color_outline - {{{ 0.392,0.392,0.392,1 }}}, // color_item - {{{ 0.098, 0.098, 0.098, 0.902 }}}, // color_inner - {{{ 0.176, 0.176, 0.176, 0.902 }}}, // color_inner_selected - {{{ 0.627, 0.627, 0.627, 1 }}}, // color_text - BND_COLOR_TEXT_SELECTED, // color_text_selected - 0, // shade_top - 0, // shade_down - }, - // menuItemTheme - { - {{{ 0,0,0,1 }}}, // color_outline - {{{ 0.675,0.675,0.675,0.502 }}}, // color_item - {{{ 0,0,0,0 }}}, // color_inner - {{{ 0.337,0.502,0.761,1 }}}, // color_inner_selected - BND_COLOR_TEXT_SELECTED, // color_text - BND_COLOR_TEXT, // color_text_selected - 38, // shade_top - 0, // shade_down - }, - // nodeTheme - { - {{{ 0.945,0.345,0,1 }}}, // nodeSelectedColor - {{{ 0,0,0,1 }}}, // wiresColor - {{{ 0.498,0.439,0.439,1 }}}, // textSelectedColor - {{{ 1,0.667,0.251,1 }}}, // activeNodeColor - {{{ 1,1,1,1 }}}, // wireSelectColor - {{{ 0.608,0.608,0.608,0.627 }}}, // nodeBackdropColor - 5, // noodleCurving - }, -}; - -//////////////////////////////////////////////////////////////////////////////// - -void bndSetTheme(BNDtheme theme) { - bnd_theme = theme; -} - -const BNDtheme *bndGetTheme() { - return &bnd_theme; -} - -// the handle to the image containing the icon sheet -static int bnd_icon_image = -1; - -void bndSetIconImage(int image) { - bnd_icon_image = image; -} - -// the handle to the UI font -static int bnd_font = -1; - -void bndSetFont(int font) { - bnd_font = font; -} - -//////////////////////////////////////////////////////////////////////////////// - -void bndLabel(NVGcontext *ctx, - float x, float y, float w, float h, int iconid, const char *label) { - bndIconLabelValue(ctx,x,y,w,h,iconid, - bnd_theme.regularTheme.textColor, BND_LEFT, - BND_LABEL_FONT_SIZE, label, NULL); -} - -void bndToolButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *label) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_TOOL_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.toolTheme, state, 1); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.toolTheme.outlineColor)); - bndIconLabelValue(ctx,x,y,w,h,iconid, - bndTextColor(&bnd_theme.toolTheme, state), BND_CENTER, - BND_LABEL_FONT_SIZE, label, NULL); -} - -void bndRadioButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *label) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_OPTION_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.radioTheme, state, 1); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.radioTheme.outlineColor)); - bndIconLabelValue(ctx,x,y,w,h,iconid, - bndTextColor(&bnd_theme.radioTheme, state), BND_CENTER, - BND_LABEL_FONT_SIZE, label, NULL); -} - -int bndTextFieldTextPosition(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, const char *text, int px, int py) { - return bndIconLabelTextPosition(ctx, x, y, w, h, - iconid, BND_LABEL_FONT_SIZE, text, px, py); -} - -void bndTextField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *text, int cbegin, int cend) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_TEXT_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.textFieldTheme, state, 0); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.textFieldTheme.outlineColor)); - if (state != BND_ACTIVE) { - cend = -1; - } - bndIconLabelCaret(ctx,x,y,w,h,iconid, - bndTextColor(&bnd_theme.textFieldTheme, state), BND_LABEL_FONT_SIZE, - text, bnd_theme.textFieldTheme.itemColor, cbegin, cend); -} - -void bndOptionButton(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, - const char *label) { - float ox, oy; - NVGcolor shade_top, shade_down; - - ox = x; - oy = y+h-BND_OPTION_HEIGHT-3; - - bndBevelInset(ctx,ox,oy, - BND_OPTION_WIDTH,BND_OPTION_HEIGHT, - BND_OPTION_RADIUS,BND_OPTION_RADIUS); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.optionTheme, state, 1); - bndInnerBox(ctx,ox,oy, - BND_OPTION_WIDTH,BND_OPTION_HEIGHT, - BND_OPTION_RADIUS,BND_OPTION_RADIUS,BND_OPTION_RADIUS,BND_OPTION_RADIUS, - shade_top, shade_down); - bndOutlineBox(ctx,ox,oy, - BND_OPTION_WIDTH,BND_OPTION_HEIGHT, - BND_OPTION_RADIUS,BND_OPTION_RADIUS,BND_OPTION_RADIUS,BND_OPTION_RADIUS, - bndTransparent(bnd_theme.optionTheme.outlineColor)); - if (state == BND_ACTIVE) { - bndCheck(ctx,ox,oy, bndTransparent(bnd_theme.optionTheme.itemColor)); - } - bndIconLabelValue(ctx,x+12,y,w-12,h,-1, - bndTextColor(&bnd_theme.optionTheme, state), BND_LEFT, - BND_LABEL_FONT_SIZE, label, NULL); -} - -void bndChoiceButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - int iconid, const char *label) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_OPTION_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.choiceTheme, state, 1); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.choiceTheme.outlineColor)); - bndIconLabelValue(ctx,x,y,w,h,iconid, - bndTextColor(&bnd_theme.choiceTheme, state), BND_LEFT, - BND_LABEL_FONT_SIZE, label, NULL); - bndUpDownArrow(ctx,x+w-10,y+10,5, - bndTransparent(bnd_theme.choiceTheme.itemColor)); -} - -void bndColorButton(NVGcontext *ctx, - float x, float y, float w, float h, int flags, NVGcolor color) { - float cr[4]; - bndSelectCorners(cr, BND_TOOL_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], color, color); - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.toolTheme.outlineColor)); -} - -void bndNumberField(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - const char *label, const char *value) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_NUMBER_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.numberFieldTheme, state, 0); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.numberFieldTheme.outlineColor)); - bndIconLabelValue(ctx,x,y,w,h,-1, - bndTextColor(&bnd_theme.numberFieldTheme, state), BND_CENTER, - BND_LABEL_FONT_SIZE, label, value); - bndArrow(ctx,x+8,y+10,-BND_NUMBER_ARROW_SIZE, - bndTransparent(bnd_theme.numberFieldTheme.itemColor)); - bndArrow(ctx,x+w-8,y+10,BND_NUMBER_ARROW_SIZE, - bndTransparent(bnd_theme.numberFieldTheme.itemColor)); -} - -void bndSlider(NVGcontext *ctx, - float x, float y, float w, float h, int flags, BNDwidgetState state, - float progress, const char *label, const char *value) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_NUMBER_RADIUS, flags); - bndBevelInset(ctx,x,y,w,h,cr[2],cr[3]); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.sliderTheme, state, 0); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - - if (state == BND_ACTIVE) { - shade_top = bndOffsetColor( - bnd_theme.sliderTheme.itemColor, bnd_theme.sliderTheme.shadeTop); - shade_down = bndOffsetColor( - bnd_theme.sliderTheme.itemColor, bnd_theme.sliderTheme.shadeDown); - } else { - shade_top = bndOffsetColor( - bnd_theme.sliderTheme.itemColor, bnd_theme.sliderTheme.shadeDown); - shade_down = bndOffsetColor( - bnd_theme.sliderTheme.itemColor, bnd_theme.sliderTheme.shadeTop); - } - nvgScissor(ctx,x,y,8+(w-8)*bnd_clamp(progress,0,1),h); - bndInnerBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - nvgResetScissor(ctx); - - bndOutlineBox(ctx,x,y,w,h,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.sliderTheme.outlineColor)); - bndIconLabelValue(ctx,x,y,w,h,-1, - bndTextColor(&bnd_theme.sliderTheme, state), BND_CENTER, - BND_LABEL_FONT_SIZE, label, value); -} - -void bndScrollBar(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, - float offset, float size) { - - bndBevelInset(ctx,x,y,w,h, - BND_SCROLLBAR_RADIUS, BND_SCROLLBAR_RADIUS); - bndInnerBox(ctx,x,y,w,h, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - bndOffsetColor( - bnd_theme.scrollBarTheme.innerColor, 3*bnd_theme.scrollBarTheme.shadeDown), - bndOffsetColor( - bnd_theme.scrollBarTheme.innerColor, 3*bnd_theme.scrollBarTheme.shadeTop)); - bndOutlineBox(ctx,x,y,w,h, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - bndTransparent(bnd_theme.scrollBarTheme.outlineColor)); - - NVGcolor itemColor = bndOffsetColor( - bnd_theme.scrollBarTheme.itemColor, - (state == BND_ACTIVE)?BND_SCROLLBAR_ACTIVE_SHADE:0); - - bndScrollHandleRect(&x,&y,&w,&h,offset,size); - - bndInnerBox(ctx,x,y,w,h, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - bndOffsetColor( - itemColor, 3*bnd_theme.scrollBarTheme.shadeTop), - bndOffsetColor( - itemColor, 3*bnd_theme.scrollBarTheme.shadeDown)); - bndOutlineBox(ctx,x,y,w,h, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - BND_SCROLLBAR_RADIUS,BND_SCROLLBAR_RADIUS, - bndTransparent(bnd_theme.scrollBarTheme.outlineColor)); -} - -void bndMenuBackground(NVGcontext *ctx, - float x, float y, float w, float h, int flags) { - float cr[4]; - NVGcolor shade_top, shade_down; - - bndSelectCorners(cr, BND_MENU_RADIUS, flags); - bndInnerColors(&shade_top, &shade_down, &bnd_theme.menuTheme, - BND_DEFAULT, 0); - bndInnerBox(ctx,x,y,w,h+1,cr[0],cr[1],cr[2],cr[3], shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h+1,cr[0],cr[1],cr[2],cr[3], - bndTransparent(bnd_theme.menuTheme.outlineColor)); - bndDropShadow(ctx,x,y,w,h,BND_MENU_RADIUS, - BND_SHADOW_FEATHER,BND_SHADOW_ALPHA); -} - -void bndTooltipBackground(NVGcontext *ctx, float x, float y, float w, float h) { - NVGcolor shade_top, shade_down; - - bndInnerColors(&shade_top, &shade_down, &bnd_theme.tooltipTheme, - BND_DEFAULT, 0); - bndInnerBox(ctx,x,y,w,h+1, - BND_MENU_RADIUS,BND_MENU_RADIUS,BND_MENU_RADIUS,BND_MENU_RADIUS, - shade_top, shade_down); - bndOutlineBox(ctx,x,y,w,h+1, - BND_MENU_RADIUS,BND_MENU_RADIUS,BND_MENU_RADIUS,BND_MENU_RADIUS, - bndTransparent(bnd_theme.tooltipTheme.outlineColor)); - bndDropShadow(ctx,x,y,w,h,BND_MENU_RADIUS, - BND_SHADOW_FEATHER,BND_SHADOW_ALPHA); -} - -void bndMenuLabel(NVGcontext *ctx, - float x, float y, float w, float h, int iconid, const char *label) { - bndIconLabelValue(ctx,x,y,w,h,iconid, - bnd_theme.menuTheme.textColor, BND_LEFT, - BND_LABEL_FONT_SIZE, label, NULL); -} - -void bndMenuItem(NVGcontext *ctx, - float x, float y, float w, float h, BNDwidgetState state, - int iconid, const char *label) { - if (state != BND_DEFAULT) { - bndInnerBox(ctx,x,y,w,h,0,0,0,0, - bndOffsetColor(bnd_theme.menuItemTheme.innerSelectedColor, - bnd_theme.menuItemTheme.shadeTop), - bndOffsetColor(bnd_theme.menuItemTheme.innerSelectedColor, - bnd_theme.menuItemTheme.shadeDown)); - state = BND_ACTIVE; - } - bndIconLabelValue(ctx,x,y,w,h,iconid, - bndTextColor(&bnd_theme.menuItemTheme, state), BND_LEFT, - BND_LABEL_FONT_SIZE, label, NULL); -} - -void bndNodePort(NVGcontext *ctx, float x, float y, BNDwidgetState state, - NVGcolor color) { - nvgBeginPath(ctx); - nvgCircle(ctx, x, y, BND_NODE_PORT_RADIUS); - nvgStrokeColor(ctx,bnd_theme.nodeTheme.wiresColor); - nvgStrokeWidth(ctx,1.0f); - nvgStroke(ctx); - nvgFillColor(ctx,(state != BND_DEFAULT)? - bndOffsetColor(color, BND_HOVER_SHADE):color); - nvgFill(ctx); -} - -void bndColoredNodeWire(NVGcontext *ctx, float x0, float y0, float x1, float y1, - NVGcolor color0, NVGcolor color1) { - float length = bnd_fmaxf(fabsf(x1 - x0),fabsf(y1 - y0)); - float delta = length*(float)bnd_theme.nodeTheme.noodleCurving/10.0f; - - nvgBeginPath(ctx); - nvgMoveTo(ctx, x0, y0); - nvgBezierTo(ctx, - x0 + delta, y0, - x1 - delta, y1, - x1, y1); - NVGcolor colorw = bnd_theme.nodeTheme.wiresColor; - colorw.a = (color0.a= 0) { - w += BND_ICON_SHEET_RES; - } - if (label && (bnd_font >= 0)) { - nvgFontFaceId(ctx, bnd_font); - nvgFontSize(ctx, BND_LABEL_FONT_SIZE); - w += nvgTextBounds(ctx, 1, 1, label, NULL, NULL); - } - return w; -} - -float bndLabelHeight(NVGcontext *ctx, int iconid, const char *label, float width) { - int h = BND_WIDGET_HEIGHT; - width -= BND_TEXT_RADIUS*2; - if (iconid >= 0) { - width -= BND_ICON_SHEET_RES; - } - if (label && (bnd_font >= 0)) { - nvgFontFaceId(ctx, bnd_font); - nvgFontSize(ctx, BND_LABEL_FONT_SIZE); - float bounds[4]; - nvgTextBoxBounds(ctx, 1, 1, width, label, NULL, bounds); - int bh = (int)(bounds[3] - bounds[1]) + BND_TEXT_PAD_DOWN; - if (bh > h) - h = bh; - } - return h; -} - -//////////////////////////////////////////////////////////////////////////////// - -void bndRoundedBox(NVGcontext *ctx, float x, float y, float w, float h, - float cr0, float cr1, float cr2, float cr3) { - float d; - - w = bnd_fmaxf(0, w); - h = bnd_fmaxf(0, h); - d = bnd_fminf(w, h); - - nvgMoveTo(ctx, x,y+h*0.5f); - nvgArcTo(ctx, x,y, x+w,y, bnd_fminf(cr0, d/2)); - nvgArcTo(ctx, x+w,y, x+w,y+h, bnd_fminf(cr1, d/2)); - nvgArcTo(ctx, x+w,y+h, x,y+h, bnd_fminf(cr2, d/2)); - nvgArcTo(ctx, x,y+h, x,y, bnd_fminf(cr3, d/2)); - nvgClosePath(ctx); -} - -NVGcolor bndTransparent(NVGcolor color) { - color.a *= BND_TRANSPARENT_ALPHA; - return color; -} - -NVGcolor bndOffsetColor(NVGcolor color, int delta) { - float offset = (float)delta / 255.0f; - return delta?( - nvgRGBAf( - bnd_clamp(color.r+offset,0,1), - bnd_clamp(color.g+offset,0,1), - bnd_clamp(color.b+offset,0,1), - color.a) - ):color; -} - -void bndBevel(NVGcontext *ctx, float x, float y, float w, float h) { - nvgStrokeWidth(ctx, 1); - - x += 0.5f; - y += 0.5f; - w -= 1; - h -= 1; - - nvgBeginPath(ctx); - nvgMoveTo(ctx, x, y+h); - nvgLineTo(ctx, x+w, y+h); - nvgLineTo(ctx, x+w, y); - nvgStrokeColor(ctx, bndTransparent( - bndOffsetColor(bnd_theme.backgroundColor, -BND_BEVEL_SHADE))); - nvgStroke(ctx); - - nvgBeginPath(ctx); - nvgMoveTo(ctx, x, y+h); - nvgLineTo(ctx, x, y); - nvgLineTo(ctx, x+w, y); - nvgStrokeColor(ctx, bndTransparent( - bndOffsetColor(bnd_theme.backgroundColor, BND_BEVEL_SHADE))); - nvgStroke(ctx); -} - -void bndBevelInset(NVGcontext *ctx, float x, float y, float w, float h, - float cr2, float cr3) { - float d; - - y -= 0.5f; - d = bnd_fminf(w, h); - cr2 = bnd_fminf(cr2, d/2); - cr3 = bnd_fminf(cr3, d/2); - - nvgBeginPath(ctx); - nvgMoveTo(ctx, x+w,y+h-cr2); - nvgArcTo(ctx, x+w,y+h, x,y+h, cr2); - nvgArcTo(ctx, x,y+h, x,y, cr3); - - NVGcolor bevelColor = bndOffsetColor(bnd_theme.backgroundColor, - BND_INSET_BEVEL_SHADE); - - nvgStrokeWidth(ctx, 1); - nvgStrokePaint(ctx, - nvgLinearGradient(ctx, - x,y+h-bnd_fmaxf(cr2,cr3)-1, - x,y+h-1, - nvgRGBAf(bevelColor.r, bevelColor.g, bevelColor.b, 0), - bevelColor)); - nvgStroke(ctx); -} - -void bndBackground(NVGcontext *ctx, float x, float y, float w, float h) { - nvgBeginPath(ctx); - nvgRect(ctx, x, y, w, h); - nvgFillColor(ctx, bnd_theme.backgroundColor); - nvgFill(ctx); -} - -void bndIcon(NVGcontext *ctx, float x, float y, int iconid) { - int ix, iy, u, v; - if (bnd_icon_image < 0) return; // no icons loaded - - ix = iconid & 0xff; - iy = (iconid>>8) & 0xff; - u = BND_ICON_SHEET_OFFSET_X + ix*BND_ICON_SHEET_GRID; - v = BND_ICON_SHEET_OFFSET_Y + iy*BND_ICON_SHEET_GRID; - - nvgBeginPath(ctx); - nvgRect(ctx,x,y,BND_ICON_SHEET_RES,BND_ICON_SHEET_RES); - nvgFillPaint(ctx, - nvgImagePattern(ctx,x-u,y-v, - BND_ICON_SHEET_WIDTH, - BND_ICON_SHEET_HEIGHT, - 0,bnd_icon_image,1)); - nvgFill(ctx); -} - -void bndDropShadow(NVGcontext *ctx, float x, float y, float w, float h, - float r, float feather, float alpha) { - - nvgBeginPath(ctx); - y += feather; - h -= feather; - - nvgMoveTo(ctx, x-feather, y-feather); - nvgLineTo(ctx, x, y-feather); - nvgLineTo(ctx, x, y+h-feather); - nvgArcTo(ctx, x,y+h,x+r,y+h,r); - nvgArcTo(ctx, x+w,y+h,x+w,y+h-r,r); - nvgLineTo(ctx, x+w, y-feather); - nvgLineTo(ctx, x+w+feather, y-feather); - nvgLineTo(ctx, x+w+feather, y+h+feather); - nvgLineTo(ctx, x-feather, y+h+feather); - nvgClosePath(ctx); - - nvgFillPaint(ctx, nvgBoxGradient(ctx, - x - feather*0.5f,y - feather*0.5f, - w + feather,h+feather, - r+feather*0.5f, - feather, - nvgRGBAf(0,0,0,alpha*alpha), - nvgRGBAf(0,0,0,0))); - nvgFill(ctx); -} - -void bndInnerBox(NVGcontext *ctx, float x, float y, float w, float h, - float cr0, float cr1, float cr2, float cr3, - NVGcolor shade_top, NVGcolor shade_down) { - nvgBeginPath(ctx); - bndRoundedBox(ctx,x+1,y+1,w-2,h-3,bnd_fmaxf(0,cr0-1), - bnd_fmaxf(0,cr1-1),bnd_fmaxf(0,cr2-1),bnd_fmaxf(0,cr3-1)); - nvgFillPaint(ctx,((h-2)>w)? - nvgLinearGradient(ctx,x,y,x+w,y,shade_top,shade_down): - nvgLinearGradient(ctx,x,y,x,y+h,shade_top,shade_down)); - nvgFill(ctx); -} - -void bndOutlineBox(NVGcontext *ctx, float x, float y, float w, float h, - float cr0, float cr1, float cr2, float cr3, NVGcolor color) { - nvgBeginPath(ctx); - bndRoundedBox(ctx,x+0.5f,y+0.5f,w-1,h-2,cr0,cr1,cr2,cr3); - nvgStrokeColor(ctx,color); - nvgStrokeWidth(ctx,1); - nvgStroke(ctx); -} - -void bndSelectCorners(float *radiuses, float r, int flags) { - radiuses[0] = (flags & BND_CORNER_TOP_LEFT)?0:r; - radiuses[1] = (flags & BND_CORNER_TOP_RIGHT)?0:r; - radiuses[2] = (flags & BND_CORNER_DOWN_RIGHT)?0:r; - radiuses[3] = (flags & BND_CORNER_DOWN_LEFT)?0:r; -} - -void bndInnerColors( - NVGcolor *shade_top, NVGcolor *shade_down, - const BNDwidgetTheme *theme, BNDwidgetState state, int flipActive) { - - switch(state) { - default: - case BND_DEFAULT: { - *shade_top = bndOffsetColor(theme->innerColor, theme->shadeTop); - *shade_down = bndOffsetColor(theme->innerColor, theme->shadeDown); - } break; - case BND_HOVER: { - NVGcolor color = bndOffsetColor(theme->innerColor, BND_HOVER_SHADE); - *shade_top = bndOffsetColor(color, theme->shadeTop); - *shade_down = bndOffsetColor(color, theme->shadeDown); - } break; - case BND_ACTIVE: { - *shade_top = bndOffsetColor(theme->innerSelectedColor, - flipActive?theme->shadeDown:theme->shadeTop); - *shade_down = bndOffsetColor(theme->innerSelectedColor, - flipActive?theme->shadeTop:theme->shadeDown); - } break; - } -} - -NVGcolor bndTextColor(const BNDwidgetTheme *theme, BNDwidgetState state) { - return (state == BND_ACTIVE)?theme->textSelectedColor:theme->textColor; -} - -void bndIconLabelValue(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, int align, float fontsize, const char *label, - const char *value) { - float pleft = BND_PAD_LEFT; - if (label) { - if (iconid >= 0) { - bndIcon(ctx,x+4,y+2,iconid); - pleft += BND_ICON_SHEET_RES; - } - - if (bnd_font < 0) return; - nvgFontFaceId(ctx, bnd_font); - nvgFontSize(ctx, fontsize); - nvgBeginPath(ctx); - nvgFillColor(ctx, color); - if (value) { - float label_width = nvgTextBounds(ctx, 1, 1, label, NULL, NULL); - float sep_width = nvgTextBounds(ctx, 1, 1, - BND_LABEL_SEPARATOR, NULL, NULL); - - nvgTextAlign(ctx, NVG_ALIGN_LEFT|NVG_ALIGN_BASELINE); - x += pleft; - if (align == BND_CENTER) { - float width = label_width + sep_width - + nvgTextBounds(ctx, 1, 1, value, NULL, NULL); - x += ((w-BND_PAD_RIGHT-pleft)-width)*0.5f; - } - y += BND_WIDGET_HEIGHT-BND_TEXT_PAD_DOWN; - nvgText(ctx, x, y, label, NULL); - x += label_width; - nvgText(ctx, x, y, BND_LABEL_SEPARATOR, NULL); - x += sep_width; - nvgText(ctx, x, y, value, NULL); - } else { - nvgTextAlign(ctx, - (align==BND_LEFT)?(NVG_ALIGN_LEFT|NVG_ALIGN_BASELINE): - (NVG_ALIGN_CENTER|NVG_ALIGN_BASELINE)); - nvgTextBox(ctx,x+pleft,y+BND_WIDGET_HEIGHT-BND_TEXT_PAD_DOWN, - w-BND_PAD_RIGHT-pleft,label, NULL); - } - } else if (iconid >= 0) { - bndIcon(ctx,x+2,y+2,iconid); - } -} - -void bndNodeIconLabel(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, NVGcolor shadowColor, - int align, float fontsize, const char *label) { - if (label && (bnd_font >= 0)) { - nvgFontFaceId(ctx, bnd_font); - nvgFontSize(ctx, fontsize); - nvgBeginPath(ctx); - nvgTextAlign(ctx, NVG_ALIGN_LEFT|NVG_ALIGN_BASELINE); - nvgFillColor(ctx, shadowColor); - nvgFontBlur(ctx, BND_NODE_TITLE_FEATHER); - nvgTextBox(ctx,x+1,y+h+3-BND_TEXT_PAD_DOWN, - w,label, NULL); - nvgFillColor(ctx, color); - nvgFontBlur(ctx, 0); - nvgTextBox(ctx,x,y+h+2-BND_TEXT_PAD_DOWN, - w,label, NULL); - } - if (iconid >= 0) { - bndIcon(ctx,x+w-BND_ICON_SHEET_RES,y+3,iconid); - } -} - -int bndIconLabelTextPosition(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, float fontsize, const char *label, int px, int py) { - float bounds[4]; - float pleft = BND_TEXT_RADIUS; - if (!label) return -1; - if (iconid >= 0) - pleft += BND_ICON_SHEET_RES; - - if (bnd_font < 0) return -1; - - x += pleft; - y += BND_WIDGET_HEIGHT - BND_TEXT_PAD_DOWN; - - nvgFontFaceId(ctx, bnd_font); - nvgFontSize(ctx, fontsize); - nvgTextAlign(ctx, NVG_ALIGN_LEFT | NVG_ALIGN_BASELINE); - - w -= BND_TEXT_RADIUS + pleft; - - float asc, desc, lh; - static NVGtextRow rows[BND_MAX_ROWS]; - int nrows = nvgTextBreakLines( - ctx, label, NULL, w, rows, BND_MAX_ROWS); - if (nrows == 0) return 0; - nvgTextBoxBounds(ctx, x, y, w, label, NULL, bounds); - nvgTextMetrics(ctx, &asc, &desc, &lh); - - // calculate vertical position - int row = bnd_clamp((int)((float)(py - bounds[1]) / lh), 0, nrows - 1); - // search horizontal position - static NVGglyphPosition glyphs[BND_MAX_GLYPHS]; - int nglyphs = nvgTextGlyphPositions( - ctx, x, y, rows[row].start, rows[row].end + 1, glyphs, BND_MAX_GLYPHS); - int col, p = 0; - for (col = 0; col < nglyphs && glyphs[col].x < px; ++col) - p = glyphs[col].str - label; - // see if we should move one character further - if (col > 0 && col < nglyphs && glyphs[col].x - px < px - glyphs[col - 1].x) - p = glyphs[col].str - label; - return p; -} - -static void bndCaretPosition(NVGcontext *ctx, float x, float y, - float desc, float lineHeight, const char *caret, NVGtextRow *rows,int nrows, - int *cr, float *cx, float *cy) { - static NVGglyphPosition glyphs[BND_MAX_GLYPHS]; - int i,r,nglyphs; - for (r=0; r < nrows && rows[r].end < caret; ++r); - *cr = r; - *cx = x; - *cy = y-lineHeight-desc + r*lineHeight; - if (nrows == 0) return; - *cx = rows[r].minx; - nglyphs = nvgTextGlyphPositions( - ctx, x, y, rows[r].start, rows[r].end+1, glyphs, BND_MAX_GLYPHS); - for (i=0; i < nglyphs; ++i) { - *cx=glyphs[i].x; - if (glyphs[i].str == caret) break; - } -} - -void bndIconLabelCaret(NVGcontext *ctx, float x, float y, float w, float h, - int iconid, NVGcolor color, float fontsize, const char *label, - NVGcolor caretcolor, int cbegin, int cend) { - float pleft = BND_TEXT_RADIUS; - if (!label) return; - if (iconid >= 0) { - bndIcon(ctx,x+4,y+2,iconid); - pleft += BND_ICON_SHEET_RES; - } - - if (bnd_font < 0) return; - - x+=pleft; - y+=BND_WIDGET_HEIGHT-BND_TEXT_PAD_DOWN; - - nvgFontFaceId(ctx, bnd_font); - nvgFontSize(ctx, fontsize); - nvgTextAlign(ctx, NVG_ALIGN_LEFT|NVG_ALIGN_BASELINE); - - w -= BND_TEXT_RADIUS+pleft; - - if (cend >= cbegin) { - int c0r,c1r; - float c0x,c0y,c1x,c1y; - float desc,lh; - static NVGtextRow rows[BND_MAX_ROWS]; - int nrows = nvgTextBreakLines( - ctx, label, label+cend+1, w, rows, BND_MAX_ROWS); - nvgTextMetrics(ctx, NULL, &desc, &lh); - - bndCaretPosition(ctx, x, y, desc, lh, label+cbegin, - rows, nrows, &c0r, &c0x, &c0y); - bndCaretPosition(ctx, x, y, desc, lh, label+cend, - rows, nrows, &c1r, &c1x, &c1y); - - nvgBeginPath(ctx); - if (cbegin == cend) { - nvgFillColor(ctx, nvgRGBf(0.337,0.502,0.761)); - nvgRect(ctx, c0x-1, c0y, 2, lh+1); - } else { - nvgFillColor(ctx, caretcolor); - if (c0r == c1r) { - nvgRect(ctx, c0x-1, c0y, c1x-c0x+1, lh+1); - } else { - int blk=c1r-c0r-1; - nvgRect(ctx, c0x-1, c0y, x+w-c0x+1, lh+1); - nvgRect(ctx, x, c1y, c1x-x+1, lh+1); - - if (blk) - nvgRect(ctx, x, c0y+lh, w, blk*lh+1); - } - } - nvgFill(ctx); - } - - nvgBeginPath(ctx); - nvgFillColor(ctx, color); - nvgTextBox(ctx,x,y,w,label, NULL); -} - -void bndCheck(NVGcontext *ctx, float ox, float oy, NVGcolor color) { - nvgBeginPath(ctx); - nvgStrokeWidth(ctx,2); - nvgStrokeColor(ctx,color); - nvgLineCap(ctx,NVG_BUTT); - nvgLineJoin(ctx,NVG_MITER); - nvgMoveTo(ctx,ox+4,oy+5); - nvgLineTo(ctx,ox+7,oy+8); - nvgLineTo(ctx,ox+14,oy+1); - nvgStroke(ctx); -} - -void bndArrow(NVGcontext *ctx, float x, float y, float s, NVGcolor color) { - nvgBeginPath(ctx); - nvgMoveTo(ctx,x,y); - nvgLineTo(ctx,x-s,y+s); - nvgLineTo(ctx,x-s,y-s); - nvgClosePath(ctx); - nvgFillColor(ctx,color); - nvgFill(ctx); -} - -void bndUpDownArrow(NVGcontext *ctx, float x, float y, float s, NVGcolor color) { - float w; - - nvgBeginPath(ctx); - w = 1.1f*s; - nvgMoveTo(ctx,x,y-1); - nvgLineTo(ctx,x+0.5*w,y-s-1); - nvgLineTo(ctx,x+w,y-1); - nvgClosePath(ctx); - nvgMoveTo(ctx,x,y+1); - nvgLineTo(ctx,x+0.5*w,y+s+1); - nvgLineTo(ctx,x+w,y+1); - nvgClosePath(ctx); - nvgFillColor(ctx,color); - nvgFill(ctx); -} - -void bndNodeArrowDown(NVGcontext *ctx, float x, float y, float s, NVGcolor color) { - float w; - nvgBeginPath(ctx); - w = 1.0f*s; - nvgMoveTo(ctx,x,y); - nvgLineTo(ctx,x+0.5*w,y-s); - nvgLineTo(ctx,x-0.5*w,y-s); - nvgClosePath(ctx); - nvgFillColor(ctx,color); - nvgFill(ctx); -} - -void bndScrollHandleRect(float *x, float *y, float *w, float *h, - float offset, float size) { - size = bnd_clamp(size,0,1); - offset = bnd_clamp(offset,0,1); - if ((*h) > (*w)) { - float hs = bnd_fmaxf(size*(*h), (*w)+1); - *y = (*y) + ((*h)-hs)*offset; - *h = hs; - } else { - float ws = bnd_fmaxf(size*(*w), (*h)-1); - *x = (*x) + ((*w)-ws)*offset; - *w = ws; - } -} - -NVGcolor bndNodeWireColor(const BNDnodeTheme *theme, BNDwidgetState state) { - switch(state) { - default: - case BND_DEFAULT: return nvgRGBf(0.5f,0.5f,0.5f); - case BND_HOVER: return theme->wireSelectColor; - case BND_ACTIVE: return theme->activeNodeColor; - } -} - -//////////////////////////////////////////////////////////////////////////////// - -#ifdef BND_INLINE -#undef BND_INLINE -#endif - -#endif // BLENDISH_IMPLEMENTATION diff --git a/dpf/dgl/src/oui-blendish/oui.h b/dpf/dgl/src/oui-blendish/oui.h deleted file mode 100644 index b6807f9..0000000 --- a/dpf/dgl/src/oui-blendish/oui.h +++ /dev/null @@ -1,2025 +0,0 @@ -/* -OUI - A minimal semi-immediate GUI handling & layouting library - -Copyright (c) 2014 Leonard Ritter - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - */ - -#ifndef _OUI_H_ -#define _OUI_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -Revision 4 (2014-12-17) - -OUI (short for "Open UI", spoken like the french "oui" for "yes") is a -platform agnostic single-header C library for layouting GUI elements and -handling related user input. Together with a set of widget drawing and logic -routines it can be used to build complex user interfaces. - -OUI is a semi-immediate GUI. Widget declarations are persistent for the duration -of the setup and evaluation, but do not need to be kept around longer than one -frame. - -OUI has no widget types; instead, it provides only one kind of element, "Items", -which can be tailored to the application by the user and expanded with custom -buffers and event handlers to behave as containers, buttons, sliders, radio -buttons, and so on. - -OUI also does not draw anything; Instead it provides a set of functions to -iterate and query the layouted items in order to allow client code to render -each widget with its current state using a preferred graphics library. - -See example.cpp in the repository for a full usage example. - -A basic setup for OUI usage in C looks like this: -================================================= - -// a header for each widget -typedef struct Data { - int type; - UIhandler handler; -} Data; - -/// global event dispatch -void ui_handler(int item, UIevent event) { - Data *data = (Data *)uiGetHandle(item); - if (data && data->handler) { - data->handler(item, event); - } -} - -void app_main(...) { - UIcontext *context = uiCreateContext(4096, 1<<20); - uiMakeCurrent(context); - uiSetHandler(ui_handler); - - while (app_running()) { - // update position of mouse cursor; the ui can also be updated - // from received events. - uiSetCursor(app_get_mouse_x(), app_get_mouse_y()); - - // update button state - for (int i = 0; i < 3; ++i) - uiSetButton(i, app_get_button_state(i)); - - // you can also send keys and scroll events; see example.cpp for more - - // -------------- - // this section does not have to be regenerated on frame; a good - // policy is to invalidate it on events, as this usually alters - // structure and layout. - - // begin new UI declarations - uiBeginLayout(); - - // - UI setup code goes here - - app_setup_ui(); - - // layout UI - uiEndLayout(); - - // -------------- - - // draw UI, starting with the first item, index 0 - app_draw_ui(render_context,0); - - // update states and fire handlers - uiProcess(get_time_ms()); - } - - uiDestroyContext(context); -} - -Here's an example setup for a checkbox control: -=============================================== - -typedef struct CheckBoxData { - Data head; - const char *label; - bool *checked; -} CheckBoxData; - -// called when the item is clicked (see checkbox()) -void app_checkbox_handler(int item, UIevent event) { - // retrieve custom data (see checkbox()) - CheckBoxData *data = (CheckBoxData *)uiGetHandle(item); - - switch(event) { - default: break; - case UI_BUTTON0_DOWN: { - // toggle value - *data->checked = !(*data->checked); - } break; - } -} - -// creates a checkbox control for a pointer to a boolean -int checkbox(const char *label, bool *checked) { - - // create new ui item - int item = uiItem(); - - // set minimum size of wiget; horizontal size is dynamic, vertical is fixed - uiSetSize(item, 0, APP_WIDGET_HEIGHT); - - // store some custom data with the checkbox that we use for rendering - // and value changes. - CheckBoxData *data = (CheckBoxData *)uiAllocHandle(item, sizeof(CheckBoxData)); - - // assign a custom typeid to the data so the renderer knows how to - // render this control, and our event handler - data->head.type = APP_WIDGET_CHECKBOX; - data->head.handler = app_checkbox_handler; - data->label = label; - data->checked = checked; - - // set to fire as soon as the left button is - // pressed; UI_BUTTON0_HOT_UP is also a popular alternative. - uiSetEvents(item, UI_BUTTON0_DOWN); - - return item; -} - -A simple recursive drawing routine can look like this: -====================================================== - -void app_draw_ui(AppRenderContext *ctx, int item) { - // retrieve custom data and cast it to Data; we assume the first member - // of every widget data item to be a Data field. - Data *head = (Data *)uiGetHandle(item); - - // if a handle is set, this is a specialized widget - if (head) { - // get the widgets absolute rectangle - UIrect rect = uiGetRect(item); - - switch(head->type) { - default: break; - case APP_WIDGET_LABEL: { - // ... - } break; - case APP_WIDGET_BUTTON: { - // ... - } break; - case APP_WIDGET_CHECKBOX: { - // cast to the full data type - CheckBoxData *data = (CheckBoxData*)head; - - // get the widgets current state - int state = uiGetState(item); - - // if the value is set, the state is always active - if (*data->checked) - state = UI_ACTIVE; - - // draw the checkbox - app_draw_checkbox(ctx, rect, state, data->label); - } break; - } - } - - // iterate through all children and draw - int kid = uiFirstChild(item); - while (kid != -1) { - app_draw_ui(ctx, kid); - kid = uiNextSibling(kid); - } -} - -Layouting items works like this: -================================ - -void layout_window(int w, int h) { - // create root item; the first item always has index 0 - int parent = uiItem(); - // assign fixed size - uiSetSize(parent, w, h); - - // create column box and use as new parent - parent = uiInsert(parent, uiItem()); - // configure as column - uiSetBox(parent, UI_COLUMN); - // span horizontally, attach to top - uiSetLayout(parent, UI_HFILL | UI_TOP); - - // add a label - we're assuming custom control functions to exist - int item = uiInsert(parent, label("Hello World")); - // set a fixed height for the label - uiSetSize(item, 0, APP_WIDGET_HEIGHT); - // span the label horizontally - uiSetLayout(item, UI_HFILL); - - static bool checked = false; - - // add a checkbox to the same parent as item; this is faster than - // calling uiInsert on the same parent repeatedly. - item = uiAppend(item, checkbox("Checked:", &checked)); - // set a fixed height for the checkbox - uiSetSize(item, 0, APP_WIDGET_HEIGHT); - // span the checkbox in the same way as the label - uiSetLayout(item, UI_HFILL); -} - - - - */ - -// you can override this from the outside to pick -// the export level you need -#ifndef OUI_EXPORT -#define OUI_EXPORT -#endif - -// limits - -enum { - // maximum size in bytes of a single data buffer passed to uiAllocData(). - UI_MAX_DATASIZE = 4096, - // maximum depth of nested containers - UI_MAX_DEPTH = 64, - // maximum number of buffered input events - UI_MAX_INPUT_EVENTS = 64, - // consecutive click threshold in ms - UI_CLICK_THRESHOLD = 250, -}; - -typedef unsigned int UIuint; - -// opaque UI context -typedef struct UIcontext UIcontext; - -// item states as returned by uiGetState() - -typedef enum UIitemState { - // the item is inactive - UI_COLD = 0, - // the item is inactive, but the cursor is hovering over this item - UI_HOT = 1, - // the item is toggled, activated, focused (depends on item kind) - UI_ACTIVE = 2, - // the item is unresponsive - UI_FROZEN = 3, -} UIitemState; - -// container flags to pass to uiSetBox() -typedef enum UIboxFlags { - // flex-direction (bit 0+1) - - // left to right - UI_ROW = 0x002, - // top to bottom - UI_COLUMN = 0x003, - - // model (bit 1) - - // free layout - UI_LAYOUT = 0x000, - // flex model - UI_FLEX = 0x002, - - // flex-wrap (bit 2) - - // single-line - UI_NOWRAP = 0x000, - // multi-line, wrap left to right - UI_WRAP = 0x004, - - - // justify-content (start, end, center, space-between) - // at start of row/column - UI_START = 0x008, - // at center of row/column - UI_MIDDLE = 0x000, - // at end of row/column - UI_END = 0x010, - // insert spacing to stretch across whole row/column - UI_JUSTIFY = 0x018, - - // align-items - // can be implemented by putting a flex container in a layout container, - // then using UI_TOP, UI_DOWN, UI_VFILL, UI_VCENTER, etc. - // FILL is equivalent to stretch/grow - - // align-content (start, end, center, stretch) - // can be implemented by putting a flex container in a layout container, - // then using UI_TOP, UI_DOWN, UI_VFILL, UI_VCENTER, etc. - // FILL is equivalent to stretch; space-between is not supported. -} UIboxFlags; - -// child layout flags to pass to uiSetLayout() -typedef enum UIlayoutFlags { - // attachments (bit 5-8) - // fully valid when parent uses UI_LAYOUT model - // partially valid when in UI_FLEX model - - // anchor to left item or left side of parent - UI_LEFT = 0x020, - // anchor to top item or top side of parent - UI_TOP = 0x040, - // anchor to right item or right side of parent - UI_RIGHT = 0x080, - // anchor to bottom item or bottom side of parent - UI_DOWN = 0x100, - // anchor to both left and right item or parent borders - UI_HFILL = 0x0a0, - // anchor to both top and bottom item or parent borders - UI_VFILL = 0x140, - // center horizontally, with left margin as offset - UI_HCENTER = 0x000, - // center vertically, with top margin as offset - UI_VCENTER = 0x000, - // center in both directions, with left/top margin as offset - UI_CENTER = 0x000, - // anchor to all four directions - UI_FILL = 0x1e0, - // when wrapping, put this element on a new line - // wrapping layout code auto-inserts UI_BREAK flags, - // drawing routines can read them with uiGetLayout() - UI_BREAK = 0x200 -} UIlayoutFlags; - -// event flags -typedef enum UIevent { - // on button 0 down - UI_BUTTON0_DOWN = 0x0400, - // on button 0 up - // when this event has a handler, uiGetState() will return UI_ACTIVE as - // long as button 0 is down. - UI_BUTTON0_UP = 0x0800, - // on button 0 up while item is hovered - // when this event has a handler, uiGetState() will return UI_ACTIVE - // when the cursor is hovering the items rectangle; this is the - // behavior expected for buttons. - UI_BUTTON0_HOT_UP = 0x1000, - // item is being captured (button 0 constantly pressed); - // when this event has a handler, uiGetState() will return UI_ACTIVE as - // long as button 0 is down. - UI_BUTTON0_CAPTURE = 0x2000, - // on button 2 down (right mouse button, usually triggers context menu) - UI_BUTTON2_DOWN = 0x4000, - // item has received a scrollwheel event - // the accumulated wheel offset can be queried with uiGetScroll() - UI_SCROLL = 0x8000, - // item is focused and has received a key-down event - // the respective key can be queried using uiGetKey() and uiGetModifier() - UI_KEY_DOWN = 0x10000, - // item is focused and has received a key-up event - // the respective key can be queried using uiGetKey() and uiGetModifier() - UI_KEY_UP = 0x20000, - // item is focused and has received a character event - // the respective character can be queried using uiGetKey() - UI_CHAR = 0x40000, -} UIevent; - -enum { - // these bits, starting at bit 24, can be safely assigned by the - // application, e.g. as item types, other event types, drop targets, etc. - // they can be set and queried using uiSetFlags() and uiGetFlags() - UI_USERMASK = 0xff000000, - - // a special mask passed to uiFindItem() - UI_ANY = 0xffffffff, -}; - -// handler callback; event is one of UI_EVENT_* -typedef void (*UIhandler)(UIcontext* ui_context, int item, UIevent event); - -// for cursor positions, mainly -typedef struct UIvec2 { - union { - int v[2]; - struct { int x, y; }; - }; -} UIvec2; - -// layout rectangle -typedef struct UIrect { - union { - int v[4]; - struct { int x, y, w, h; }; - }; -} UIrect; - -// unless declared otherwise, all operations have the complexity O(1). - -// Context Management -// ------------------ - -// create a new UI context; call uiMakeCurrent() to make this context the -// current context. The context is managed by the client and must be released -// using uiDestroyContext() -// item_capacity is the maximum of number of items that can be declared. -// buffer_capacity is the maximum total size of bytes that can be allocated -// using uiAllocHandle(); you may pass 0 if you don't need to allocate -// handles. -// 4096 and (1<<20) are good starting values. -OUI_EXPORT UIcontext *uiCreateContext( - unsigned int item_capacity, - unsigned int buffer_capacity); - -// release the memory of an UI context created with uiCreateContext(); if the -// context is the current context, the current context will be set to NULL -OUI_EXPORT void uiDestroyContext(UIcontext *ctx); - -// User Data -OUI_EXPORT void uiSetContextHandle(UIcontext *ui_context, void *handle); -OUI_EXPORT void *uiGetContextHandle(UIcontext *ui_context); - -// Input Control -// ------------- - -// sets the current cursor position (usually belonging to a mouse) to the -// screen coordinates at (x,y) -OUI_EXPORT void uiSetCursor(UIcontext *ui_context, int x, int y); - -// returns the current cursor position in screen coordinates as set by -// uiSetCursor() -OUI_EXPORT UIvec2 uiGetCursor(UIcontext *ui_context); - -// returns the offset of the cursor relative to the last call to uiProcess() -OUI_EXPORT UIvec2 uiGetCursorDelta(UIcontext *ui_context); - -// returns the beginning point of a drag operation. -OUI_EXPORT UIvec2 uiGetCursorStart(UIcontext *ui_context); - -// returns the offset of the cursor relative to the beginning point of a drag -// operation. -OUI_EXPORT UIvec2 uiGetCursorStartDelta(UIcontext *ui_context); - -// sets a mouse or gamepad button as pressed/released -// button is in the range 0..63 and maps to an application defined input -// source. -// mod is an application defined set of flags for modifier keys -// enabled is 1 for pressed, 0 for released -OUI_EXPORT void uiSetButton(UIcontext *ui_context, unsigned int button, unsigned int mod, bool enabled); - -// returns the current state of an application dependent input button -// as set by uiSetButton(). -// the function returns 1 if the button has been set to pressed, 0 for released. -OUI_EXPORT int uiGetButton(UIcontext *ui_context, unsigned int button); - -// returns the number of chained clicks; 1 is a single click, -// 2 is a double click, etc. -OUI_EXPORT int uiGetClicks(UIcontext *ui_context); - -// sets a key as down/up; the key can be any application defined keycode -// mod is an application defined set of flags for modifier keys -// enabled is 1 for key down, 0 for key up -// all key events are being buffered until the next call to uiProcess() -OUI_EXPORT void uiSetKey(UIcontext *ui_context, unsigned int key, unsigned int mod, bool enabled); - -// sends a single character for text input; the character is usually in the -// unicode range, but can be application defined. -// all char events are being buffered until the next call to uiProcess() -OUI_EXPORT void uiSetChar(UIcontext *ui_context, unsigned int value); - -// accumulates scroll wheel offsets for the current frame -// all offsets are being accumulated until the next call to uiProcess() -OUI_EXPORT void uiSetScroll(UIcontext *ui_context, int x, int y); - -// returns the currently accumulated scroll wheel offsets for this frame -OUI_EXPORT UIvec2 uiGetScroll(UIcontext *ui_context); - - - - - -// Stages -// ------ - -// clear the item buffer; uiBeginLayout() should be called before the first -// UI declaration for this frame to avoid concatenation of the same UI multiple -// times. -// After the call, all previously declared item IDs are invalid, and all -// application dependent context data has been freed. -// uiBeginLayout() must be followed by uiEndLayout(). -OUI_EXPORT void uiBeginLayout(UIcontext *ui_context); - -// layout all added items starting from the root item 0. -// after calling uiEndLayout(), no further modifications to the item tree should -// be done until the next call to uiBeginLayout(). -// It is safe to immediately draw the items after a call to uiEndLayout(). -// this is an O(N) operation for N = number of declared items. -OUI_EXPORT void uiEndLayout(UIcontext *ui_context); - -// update the current hot item; this only needs to be called if items are kept -// for more than one frame and uiEndLayout() is not called -OUI_EXPORT void uiUpdateHotItem(UIcontext *ui_context); - -// update the internal state according to the current cursor position and -// button states, and call all registered handlers. -// timestamp is the time in milliseconds relative to the last call to uiProcess() -// and is used to estimate the threshold for double-clicks -// after calling uiProcess(), no further modifications to the item tree should -// be done until the next call to uiBeginLayout(). -// Items should be drawn before a call to uiProcess() -// this is an O(N) operation for N = number of declared items. -OUI_EXPORT void uiProcess(UIcontext *ui_context, int timestamp); - -// reset the currently stored hot/active etc. handles; this should be called when -// a re-declaration of the UI changes the item indices, to avoid state -// related glitches because item identities have changed. -OUI_EXPORT void uiClearState(UIcontext *ui_context); - -// UI Declaration -// -------------- - -// create a new UI item and return the new items ID. -OUI_EXPORT int uiItem(UIcontext *ui_context); - -// set an items state to frozen; the UI will not recurse into frozen items -// when searching for hot or active items; subsequently, frozen items and -// their child items will not cause mouse event notifications. -// The frozen state is not applied recursively; uiGetState() will report -// UI_COLD for child items. Upon encountering a frozen item, the drawing -// routine needs to handle rendering of child items appropriately. -// see example.cpp for a demonstration. -OUI_EXPORT void uiSetFrozen(UIcontext *ui_context, int item, bool enable); - -// set the application-dependent handle of an item. -// handle is an application defined 64-bit handle. If handle is NULL, the item -// will not be interactive. -OUI_EXPORT void uiSetHandle(UIcontext *ui_context, int item, void *handle); - -// allocate space for application-dependent context data and assign it -// as the handle to the item. -// The memory of the pointer is managed by the UI context and released -// upon the next call to uiBeginLayout() -OUI_EXPORT void *uiAllocHandle(UIcontext *ui_context, int item, unsigned int size); - -// set the global handler callback for interactive items. -// the handler will be called for each item whose event flags are set using -// uiSetEvents. -OUI_EXPORT void uiSetHandler(UIcontext *ui_context, UIhandler handler); - -// flags is a combination of UI_EVENT_* and designates for which events the -// handler should be called. -OUI_EXPORT void uiSetEvents(UIcontext *ui_context, int item, unsigned int flags); - -// flags is a user-defined set of flags defined by UI_USERMASK. -OUI_EXPORT void uiSetFlags(UIcontext *ui_context, int item, unsigned int flags); - -// assign an item to a container. -// an item ID of 0 refers to the root item. -// the function returns the child item ID -// if the container has already added items, the function searches -// for the last item and calls uiAppend() on it, which is an -// O(N) operation for N siblings. -// it is usually more efficient to call uiInsert() for the first child, -// then chain additional siblings using uiAppend(). -OUI_EXPORT int uiInsert(UIcontext *ui_context, int item, int child); - -// assign an item to the same container as another item -// sibling is inserted after item. -OUI_EXPORT int uiAppend(UIcontext *ui_context, int item, int sibling); - -// insert child into container item like uiInsert(), but prepend -// it to the first child item, effectively putting it in -// the background. -// it is efficient to call uiInsertBack() repeatedly -// in cases where drawing or layout order doesn't matter. -OUI_EXPORT int uiInsertBack(UIcontext *ui_context, int item, int child); - -// same as uiInsert() -OUI_EXPORT int uiInsertFront(UIcontext *ui_context, int item, int child); - -// set the size of the item; a size of 0 indicates the dimension to be -// dynamic; if the size is set, the item can not expand beyond that size. -OUI_EXPORT void uiSetSize(UIcontext *ui_context, int item, int w, int h); - -// set the anchoring behavior of the item to one or multiple UIlayoutFlags -OUI_EXPORT void uiSetLayout(UIcontext *ui_context, int item, unsigned int flags); - -// set the box model behavior of the item to one or multiple UIboxFlags -OUI_EXPORT void uiSetBox(UIcontext *ui_context, int item, unsigned int flags); - -// set the left, top, right and bottom margins of an item; when the item is -// anchored to the parent or another item, the margin controls the distance -// from the neighboring element. -OUI_EXPORT void uiSetMargins(UIcontext *ui_context, int item, short l, short t, short r, short b); - -// set item as recipient of all keyboard events; if item is -1, no item will -// be focused. -OUI_EXPORT void uiFocus(UIcontext *ui_context, int item); - -// Iteration -// --------- - -// returns the first child item of a container item. If the item is not -// a container or does not contain any items, -1 is returned. -// if item is 0, the first child item of the root item will be returned. -OUI_EXPORT int uiFirstChild(UIcontext *ui_context, int item); - -// returns an items next sibling in the list of the parent containers children. -// if item is 0 or the item is the last child item, -1 will be returned. -OUI_EXPORT int uiNextSibling(UIcontext *ui_context, int item); - -// Querying -// -------- - -// return the total number of allocated items -OUI_EXPORT int uiGetItemCount(UIcontext *ui_context); - -// return the total bytes that have been allocated by uiAllocHandle() -OUI_EXPORT unsigned int uiGetAllocSize(UIcontext *ui_context); - -// return the current state of the item. This state is only valid after -// a call to uiProcess(). -// The returned value is one of UI_COLD, UI_HOT, UI_ACTIVE, UI_FROZEN. -OUI_EXPORT UIitemState uiGetState(UIcontext *ui_context, int item); - -// return the application-dependent handle of the item as passed to uiSetHandle() -// or uiAllocHandle(). -OUI_EXPORT void *uiGetHandle(UIcontext *ui_context, int item); - -// return the item that is currently under the cursor or -1 for none -OUI_EXPORT int uiGetHotItem(UIcontext *ui_context); - -// return the item that is currently focused or -1 for none -OUI_EXPORT int uiGetFocusedItem(UIcontext *ui_context); - -// returns the topmost item containing absolute location (x,y), starting with -// item as parent, using a set of flags and masks as filter: -// if both flags and mask are UI_ANY, the first topmost item is returned. -// if mask is UI_ANY, the first topmost item matching *any* of flags is returned. -// otherwise the first item matching (item.flags & flags) == mask is returned. -// you may combine box, layout, event and user flags. -// frozen items will always be ignored. -OUI_EXPORT int uiFindItem(UIcontext *ui_context, int item, int x, int y, - unsigned int flags, unsigned int mask); - -// return the handler callback as passed to uiSetHandler() -OUI_EXPORT UIhandler uiGetHandler(UIcontext *ui_context); -// return the event flags for an item as passed to uiSetEvents() -OUI_EXPORT unsigned int uiGetEvents(UIcontext *ui_context, int item); -// return the user-defined flags for an item as passed to uiSetFlags() -OUI_EXPORT unsigned int uiGetFlags(UIcontext *ui_context, int item); - -// when handling a KEY_DOWN/KEY_UP event: the key that triggered this event -OUI_EXPORT unsigned int uiGetKey(UIcontext *ui_context); -// when handling a keyboard or mouse event: the active modifier keys -OUI_EXPORT unsigned int uiGetModifier(UIcontext *ui_context); - -// returns the items layout rectangle in absolute coordinates. If -// uiGetRect() is called before uiEndLayout(), the values of the returned -// rectangle are undefined. -OUI_EXPORT UIrect uiGetRect(UIcontext *ui_context, int item); - -// returns 1 if an items absolute rectangle contains a given coordinate -// otherwise 0 -OUI_EXPORT int uiContains(UIcontext *ui_context, int item, int x, int y); - -// return the width of the item as set by uiSetSize() -OUI_EXPORT int uiGetWidth(UIcontext *ui_context, int item); -// return the height of the item as set by uiSetSize() -OUI_EXPORT int uiGetHeight(UIcontext *ui_context, int item); - -// return the anchoring behavior as set by uiSetLayout() -OUI_EXPORT unsigned int uiGetLayout(UIcontext *ui_context, int item); -// return the box model as set by uiSetBox() -OUI_EXPORT unsigned int uiGetBox(UIcontext *ui_context, int item); - -// return the left margin of the item as set with uiSetMargins() -OUI_EXPORT short uiGetMarginLeft(UIcontext *ui_context, int item); -// return the top margin of the item as set with uiSetMargins() -OUI_EXPORT short uiGetMarginTop(UIcontext *ui_context, int item); -// return the right margin of the item as set with uiSetMargins() -OUI_EXPORT short uiGetMarginRight(UIcontext *ui_context, int item); -// return the bottom margin of the item as set with uiSetMargins() -OUI_EXPORT short uiGetMarginDown(UIcontext *ui_context, int item); - -// when uiBeginLayout() is called, the most recently declared items are retained. -// when uiEndLayout() completes, it matches the old item hierarchy to the new one -// and attempts to map old items to new items as well as possible. -// when passed an item Id from the previous frame, uiRecoverItem() returns the -// items new assumed Id, or -1 if the item could not be mapped. -// it is valid to pass -1 as item. -OUI_EXPORT int uiRecoverItem(UIcontext *ui_context, int olditem); - -// in cases where it is important to recover old state over changes in -// the view, and the built-in remapping fails, the UI declaration can manually -// remap old items to new IDs in cases where e.g. the previous item ID has been -// temporarily saved; uiRemapItem() would then be called after creating the -// new item using uiItem(). -OUI_EXPORT void uiRemapItem(UIcontext *ui_context, int olditem, int newitem); - -// returns the number if items that have been allocated in the last frame -OUI_EXPORT int uiGetLastItemCount(UIcontext *ui_context); - -#ifdef __cplusplus -}; -#endif - -#endif // _OUI_H_ - -#ifdef OUI_IMPLEMENTATION - -#include - -#ifdef _MSC_VER - #pragma warning (disable: 4996) // Switch off security warnings - #pragma warning (disable: 4100) // Switch off unreferenced formal parameter warnings - #pragma warning (disable: 4244) - #pragma warning (disable: 4305) - - #ifdef __cplusplus - #define UI_INLINE inline - #else - #define UI_INLINE - #endif -#else - #ifdef __clang__ - #define UI_INLINE static inline - #else - #define UI_INLINE inline - #endif -#endif - -#define UI_MAX_KIND 16 - -#define UI_ANY_BUTTON0_INPUT (UI_BUTTON0_DOWN \ - |UI_BUTTON0_UP \ - |UI_BUTTON0_HOT_UP \ - |UI_BUTTON0_CAPTURE) - -#define UI_ANY_BUTTON2_INPUT (UI_BUTTON2_DOWN) - -#define UI_ANY_MOUSE_INPUT (UI_ANY_BUTTON0_INPUT \ - |UI_ANY_BUTTON2_INPUT) - -#define UI_ANY_KEY_INPUT (UI_KEY_DOWN \ - |UI_KEY_UP \ - |UI_CHAR) - -#define UI_ANY_INPUT (UI_ANY_MOUSE_INPUT \ - |UI_ANY_KEY_INPUT) - -enum { - // extra item flags - - // bit 0-2 - UI_ITEM_BOX_MODEL_MASK = 0x000007, - // bit 0-4 - UI_ITEM_BOX_MASK = 0x00001F, - // bit 5-8 - UI_ITEM_LAYOUT_MASK = 0x0003E0, - // bit 9-18 - UI_ITEM_EVENT_MASK = 0x07FC00, - // item is frozen (bit 19) - UI_ITEM_FROZEN = 0x080000, - // item handle is pointer to data (bit 20) - UI_ITEM_DATA = 0x100000, - // item has been inserted (bit 21) - UI_ITEM_INSERTED = 0x200000, - // horizontal size has been explicitly set (bit 22) - UI_ITEM_HFIXED = 0x400000, - // vertical size has been explicitly set (bit 23) - UI_ITEM_VFIXED = 0x800000, - // bit 22-23 - UI_ITEM_FIXED_MASK = 0xC00000, - - // which flag bits will be compared - UI_ITEM_COMPARE_MASK = UI_ITEM_BOX_MODEL_MASK - | (UI_ITEM_LAYOUT_MASK & ~UI_BREAK) - | UI_ITEM_EVENT_MASK - | UI_USERMASK, -}; - -typedef struct UIitem { - // data handle - void *handle; - - // about 27 bits worth of flags - unsigned int flags; - - // index of first kid - // if old item: index of equivalent new item - int firstkid; - // index of next sibling with same parent - int nextitem; - - // margin offsets, interpretation depends on flags - // after layouting, the first two components are absolute coordinates - short margins[4]; - // size - short size[2]; -} UIitem; - -typedef enum UIstate { - UI_STATE_IDLE = 0, - UI_STATE_CAPTURE, -} UIstate; - -typedef enum UIstage { - UI_STAGE_LAYOUT = 0, - UI_STAGE_POST_LAYOUT, - UI_STAGE_PROCESS, -} UIstage; - -typedef struct UIhandleEntry { - unsigned int key; - int item; -} UIhandleEntry; - -typedef struct UIinputEvent { - unsigned int key; - unsigned int mod; - UIevent event; -} UIinputEvent; - -struct UIcontext { - unsigned int item_capacity; - unsigned int buffer_capacity; - - // handler - UIhandler handler; - // User data - void *handle; - - // button state in this frame - unsigned long long buttons; - // button state in the previous frame - unsigned long long last_buttons; - - // where the cursor was at the beginning of the active state - UIvec2 start_cursor; - // where the cursor was last frame - UIvec2 last_cursor; - // where the cursor is currently - UIvec2 cursor; - // accumulated scroll wheel offsets - UIvec2 scroll; - - int active_item; - int focus_item; - int last_hot_item; - int last_click_item; - int hot_item; - - UIstate state; - UIstage stage; - unsigned int active_key; - unsigned int active_modifier; - unsigned int active_button_modifier; - int last_timestamp; - int last_click_timestamp; - int clicks; - - int count; - int last_count; - int eventcount; - unsigned int datasize; - - UIitem *items; - unsigned char *data; - UIitem *last_items; - int *item_map; - UIinputEvent events[UI_MAX_INPUT_EVENTS]; -}; - -UI_INLINE int ui_max(int a, int b) { - return (a>b)?a:b; -} - -UI_INLINE int ui_min(int a, int b) { - return (ab)?a:b; -} - -UI_INLINE float ui_minf(float a, float b) { - return (alast_count = ui_context->count; - ui_context->count = 0; - ui_context->datasize = 0; - ui_context->hot_item = -1; - // swap buffers - UIitem *items = ui_context->items; - ui_context->items = ui_context->last_items; - ui_context->last_items = items; - for (i = 0; i < ui_context->last_count; ++i) { - ui_context->item_map[i] = -1; - } -} - -static UIcontext *uiInitializeContext( - UIcontext *ctx, - unsigned int item_capacity, - unsigned int buffer_capacity) { - memset(ctx, 0, sizeof(UIcontext)); - ctx->item_capacity = item_capacity; - ctx->buffer_capacity = buffer_capacity; - ctx->stage = UI_STAGE_PROCESS; - ctx->items = (UIitem *)malloc(sizeof(UIitem) * item_capacity); - ctx->last_items = (UIitem *)malloc(sizeof(UIitem) * item_capacity); - ctx->item_map = (int *)malloc(sizeof(int) * item_capacity); - if (buffer_capacity) { - ctx->data = (unsigned char *)malloc(buffer_capacity); - } - return ctx; -} - -UIcontext *uiCreateContext( - unsigned int item_capacity, - unsigned int buffer_capacity) { - assert(item_capacity); - UIcontext *ctx = (UIcontext *)malloc(sizeof(UIcontext)); - uiInitializeContext(ctx, item_capacity, buffer_capacity); - uiClear(ctx); - uiClearState(ctx); - return ctx; -} - -void uiDestroyContext(UIcontext *ctx) { - free(ctx->items); - free(ctx->last_items); - free(ctx->item_map); - free(ctx->data); - free(ctx); -} - -void uiSetContextHandle(UIcontext *ui_context, void *handle) { - assert(ui_context); - ui_context->handle = handle; -} - -void *uiGetContextHandle(UIcontext *ui_context) { - assert(ui_context); - return ui_context->handle; -} - - -void uiSetButton(UIcontext *ui_context, unsigned int button, unsigned int mod, bool enabled) { - assert(ui_context); - unsigned long long mask = 1ull<buttons = (enabled)? - (ui_context->buttons | mask): - (ui_context->buttons & ~mask); - ui_context->active_button_modifier = mod; -} - -static void uiAddInputEvent(UIcontext *ui_context, UIinputEvent event) { - assert(ui_context); - if (ui_context->eventcount == UI_MAX_INPUT_EVENTS) return; - ui_context->events[ui_context->eventcount++] = event; -} - -static void uiClearInputEvents(UIcontext *ui_context) { - assert(ui_context); - ui_context->eventcount = 0; - ui_context->scroll.x = 0; - ui_context->scroll.y = 0; -} - -void uiSetKey(UIcontext *ui_context, unsigned int key, unsigned int mod, bool enabled) { - assert(ui_context); - UIinputEvent event = { key, mod, enabled?UI_KEY_DOWN:UI_KEY_UP }; - uiAddInputEvent(ui_context, event); -} - -void uiSetChar(UIcontext *ui_context, unsigned int value) { - assert(ui_context); - UIinputEvent event = { value, 0, UI_CHAR }; - uiAddInputEvent(ui_context, event); -} - -void uiSetScroll(UIcontext *ui_context, int x, int y) { - assert(ui_context); - ui_context->scroll.x += x; - ui_context->scroll.y += y; -} - -UIvec2 uiGetScroll(UIcontext *ui_context) { - assert(ui_context); - return ui_context->scroll; -} - -int uiGetLastButton(UIcontext *ui_context, unsigned int button) { - assert(ui_context); - return (ui_context->last_buttons & (1ull<buttons & (1ull<cursor.x = x; - ui_context->cursor.y = y; -} - -UIvec2 uiGetCursor(UIcontext *ui_context) { - assert(ui_context); - return ui_context->cursor; -} - -UIvec2 uiGetCursorStart(UIcontext *ui_context) { - assert(ui_context); - return ui_context->start_cursor; -} - -UIvec2 uiGetCursorDelta(UIcontext *ui_context) { - assert(ui_context); - UIvec2 result = {{{ - ui_context->cursor.x - ui_context->last_cursor.x, - ui_context->cursor.y - ui_context->last_cursor.y - }}}; - return result; -} - -UIvec2 uiGetCursorStartDelta(UIcontext *ui_context) { - assert(ui_context); - UIvec2 result = {{{ - ui_context->cursor.x - ui_context->start_cursor.x, - ui_context->cursor.y - ui_context->start_cursor.y - }}}; - return result; -} - -unsigned int uiGetKey(UIcontext *ui_context) { - assert(ui_context); - return ui_context->active_key; -} - -unsigned int uiGetModifier(UIcontext *ui_context) { - assert(ui_context); - return ui_context->active_modifier; -} - -int uiGetItemCount(UIcontext *ui_context) { - assert(ui_context); - return ui_context->count; -} - -int uiGetLastItemCount(UIcontext *ui_context) { - assert(ui_context); - return ui_context->last_count; -} - -unsigned int uiGetAllocSize(UIcontext *ui_context) { - assert(ui_context); - return ui_context->datasize; -} - -UIitem *uiItemPtr(UIcontext *ui_context, int item) { - assert(ui_context && (item >= 0) && (item < ui_context->count)); - return ui_context->items + item; -} - -UIitem *uiLastItemPtr(UIcontext *ui_context, int item) { - assert(ui_context && (item >= 0) && (item < ui_context->last_count)); - return ui_context->last_items + item; -} - -int uiGetHotItem(UIcontext *ui_context) { - assert(ui_context); - return ui_context->hot_item; -} - -void uiFocus(UIcontext *ui_context, int item) { - assert(ui_context && (item >= -1) && (item < ui_context->count)); - assert(ui_context->stage != UI_STAGE_LAYOUT); - ui_context->focus_item = item; -} - -static void uiValidateStateItems(UIcontext *ui_context) { - assert(ui_context); - ui_context->last_hot_item = uiRecoverItem(ui_context, ui_context->last_hot_item); - ui_context->active_item = uiRecoverItem(ui_context, ui_context->active_item); - ui_context->focus_item = uiRecoverItem(ui_context, ui_context->focus_item); - ui_context->last_click_item = uiRecoverItem(ui_context, ui_context->last_click_item); -} - -int uiGetFocusedItem(UIcontext *ui_context) { - assert(ui_context); - return ui_context->focus_item; -} - - -void uiBeginLayout(UIcontext *ui_context) { - assert(ui_context); - assert(ui_context->stage == UI_STAGE_PROCESS); // must run uiEndLayout(), uiProcess() first - uiClear(ui_context); - ui_context->stage = UI_STAGE_LAYOUT; -} - -void uiClearState(UIcontext *ui_context) { - assert(ui_context); - ui_context->last_hot_item = -1; - ui_context->active_item = -1; - ui_context->focus_item = -1; - ui_context->last_click_item = -1; -} - -int uiItem(UIcontext *ui_context) { - assert(ui_context); - assert(ui_context->stage == UI_STAGE_LAYOUT); // must run between uiBeginLayout() and uiEndLayout() - assert(ui_context->count < (int)ui_context->item_capacity); - int idx = ui_context->count++; - UIitem *item = uiItemPtr(ui_context, idx); - memset(item, 0, sizeof(UIitem)); - item->firstkid = -1; - item->nextitem = -1; - return idx; -} - -void uiNotifyItem(UIcontext *ui_context, int item, UIevent event) { - assert(ui_context); - if (!ui_context->handler) - return; - assert((event & UI_ITEM_EVENT_MASK) == event); - UIitem *pitem = uiItemPtr(ui_context, item); - if (pitem->flags & event) { - ui_context->handler(ui_context, item, event); - } -} - -UI_INLINE int uiLastChild(UIcontext *ui_context, int item) { - item = uiFirstChild(ui_context, item); - if (item < 0) - return -1; - while (true) { - int nextitem = uiNextSibling(ui_context, item); - if (nextitem < 0) - return item; - item = nextitem; - } -} - -int uiAppend(UIcontext *ui_context, int item, int sibling) { - assert(sibling > 0); - UIitem *pitem = uiItemPtr(ui_context, item); - UIitem *psibling = uiItemPtr(ui_context, sibling); - assert(!(psibling->flags & UI_ITEM_INSERTED)); - psibling->nextitem = pitem->nextitem; - psibling->flags |= UI_ITEM_INSERTED; - pitem->nextitem = sibling; - return sibling; -} - -int uiInsert(UIcontext *ui_context, int item, int child) { - assert(child > 0); - UIitem *pparent = uiItemPtr(ui_context, item); - UIitem *pchild = uiItemPtr(ui_context, child); - assert(!(pchild->flags & UI_ITEM_INSERTED)); - if (pparent->firstkid < 0) { - pparent->firstkid = child; - pchild->flags |= UI_ITEM_INSERTED; - } else { - uiAppend(ui_context, uiLastChild(ui_context, item), child); - } - return child; -} - -int uiInsertFront(UIcontext *ui_context, int item, int child) { - return uiInsert(ui_context, item, child); -} - -int uiInsertBack(UIcontext *ui_context, int item, int child) { - assert(child > 0); - UIitem *pparent = uiItemPtr(ui_context, item); - UIitem *pchild = uiItemPtr(ui_context, child); - assert(!(pchild->flags & UI_ITEM_INSERTED)); - pchild->nextitem = pparent->firstkid; - pparent->firstkid = child; - pchild->flags |= UI_ITEM_INSERTED; - return child; -} - -void uiSetFrozen(UIcontext *ui_context, int item, bool enable) { - UIitem *pitem = uiItemPtr(ui_context, item); - if (enable) - pitem->flags |= UI_ITEM_FROZEN; - else - pitem->flags &= ~UI_ITEM_FROZEN; -} - -void uiSetSize(UIcontext *ui_context, int item, int w, int h) { - UIitem *pitem = uiItemPtr(ui_context, item); - pitem->size[0] = w; - pitem->size[1] = h; - if (!w) - pitem->flags &= ~UI_ITEM_HFIXED; - else - pitem->flags |= UI_ITEM_HFIXED; - if (!h) - pitem->flags &= ~UI_ITEM_VFIXED; - else - pitem->flags |= UI_ITEM_VFIXED; -} - -int uiGetWidth(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->size[0]; -} - -int uiGetHeight(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->size[1]; -} - -void uiSetLayout(UIcontext *ui_context, int item, unsigned int flags) { - UIitem *pitem = uiItemPtr(ui_context, item); - assert((flags & UI_ITEM_LAYOUT_MASK) == (unsigned int)flags); - pitem->flags &= ~UI_ITEM_LAYOUT_MASK; - pitem->flags |= flags & UI_ITEM_LAYOUT_MASK; -} - -unsigned int uiGetLayout(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->flags & UI_ITEM_LAYOUT_MASK; -} - -void uiSetBox(UIcontext *ui_context, int item, unsigned int flags) { - UIitem *pitem = uiItemPtr(ui_context, item); - assert((flags & UI_ITEM_BOX_MASK) == (unsigned int)flags); - pitem->flags &= ~UI_ITEM_BOX_MASK; - pitem->flags |= flags & UI_ITEM_BOX_MASK; -} - -unsigned int uiGetBox(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->flags & UI_ITEM_BOX_MASK; -} - -void uiSetMargins(UIcontext *ui_context, int item, short l, short t, short r, short b) { - UIitem *pitem = uiItemPtr(ui_context, item); - pitem->margins[0] = l; - pitem->margins[1] = t; - pitem->margins[2] = r; - pitem->margins[3] = b; -} - -short uiGetMarginLeft(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->margins[0]; -} -short uiGetMarginTop(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->margins[1]; -} -short uiGetMarginRight(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->margins[2]; -} -short uiGetMarginDown(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->margins[3]; -} - -// compute bounding box of all items super-imposed -UI_INLINE void uiComputeImposedSize(UIcontext *ui_context, UIitem *pitem, int dim) { - int wdim = dim+2; - // largest size is required size - short need_size = 0; - int kid = pitem->firstkid; - while (kid >= 0) { - UIitem *pkid = uiItemPtr(ui_context, kid); - - // width = start margin + calculated width + end margin - int kidsize = pkid->margins[dim] + pkid->size[dim] + pkid->margins[wdim]; - need_size = ui_max(need_size, kidsize); - kid = uiNextSibling(ui_context, kid); - } - pitem->size[dim] = need_size; -} - -// compute bounding box of all items stacked -UI_INLINE void uiComputeStackedSize(UIcontext *ui_context, UIitem *pitem, int dim) { - int wdim = dim+2; - short need_size = 0; - int kid = pitem->firstkid; - while (kid >= 0) { - UIitem *pkid = uiItemPtr(ui_context, kid); - // width += start margin + calculated width + end margin - need_size += pkid->margins[dim] + pkid->size[dim] + pkid->margins[wdim]; - kid = uiNextSibling(ui_context, kid); - } - pitem->size[dim] = need_size; -} - -// compute bounding box of all items stacked, repeating when breaking -UI_INLINE void uiComputeWrappedStackedSize(UIcontext *ui_context, UIitem *pitem, int dim) { - int wdim = dim+2; - - short need_size = 0; - short need_size2 = 0; - int kid = pitem->firstkid; - while (kid >= 0) { - UIitem *pkid = uiItemPtr(ui_context, kid); - - // if next position moved back, we assume a new line - if (pkid->flags & UI_BREAK) { - need_size2 = ui_max(need_size2, need_size); - // newline - need_size = 0; - } - - // width = start margin + calculated width + end margin - need_size += pkid->margins[dim] + pkid->size[dim] + pkid->margins[wdim]; - kid = uiNextSibling(ui_context, kid); - } - pitem->size[dim] = ui_max(need_size2, need_size); -} - -// compute bounding box of all items stacked + wrapped -UI_INLINE void uiComputeWrappedSize(UIcontext *ui_context, UIitem *pitem, int dim) { - int wdim = dim+2; - - short need_size = 0; - short need_size2 = 0; - int kid = pitem->firstkid; - while (kid >= 0) { - UIitem *pkid = uiItemPtr(ui_context, kid); - - // if next position moved back, we assume a new line - if (pkid->flags & UI_BREAK) { - need_size2 += need_size; - // newline - need_size = 0; - } - - // width = start margin + calculated width + end margin - int kidsize = pkid->margins[dim] + pkid->size[dim] + pkid->margins[wdim]; - need_size = ui_max(need_size, kidsize); - kid = uiNextSibling(ui_context, kid); - } - pitem->size[dim] = need_size2 + need_size; -} - -static void uiComputeSize(UIcontext *ui_context, int item, int dim) { - UIitem *pitem = uiItemPtr(ui_context, item); - - // children expand the size - int kid = pitem->firstkid; - while (kid >= 0) { - uiComputeSize(ui_context, kid, dim); - kid = uiNextSibling(ui_context, kid); - } - - if (pitem->size[dim]) - return; - switch(pitem->flags & UI_ITEM_BOX_MODEL_MASK) { - case UI_COLUMN|UI_WRAP: { - // flex model - if (dim) // direction - uiComputeStackedSize(ui_context, pitem, 1); - else - uiComputeImposedSize(ui_context, pitem, 0); - } break; - case UI_ROW|UI_WRAP: { - // flex model - if (!dim) // direction - uiComputeWrappedStackedSize(ui_context, pitem, 0); - else - uiComputeWrappedSize(ui_context, pitem, 1); - } break; - case UI_COLUMN: - case UI_ROW: { - // flex model - if ((pitem->flags & 1) == (unsigned int)dim) // direction - uiComputeStackedSize(ui_context, pitem, dim); - else - uiComputeImposedSize(ui_context, pitem, dim); - } break; - default: { - // layout model - uiComputeImposedSize(ui_context, pitem, dim); - } break; - } -} - -// stack all items according to their alignment -UI_INLINE void uiArrangeStacked(UIcontext *ui_context, UIitem *pitem, int dim, bool wrap) { - int wdim = dim+2; - - short space = pitem->size[dim]; - float max_x2 = (float)pitem->margins[dim] + (float)space; - - int start_kid = pitem->firstkid; - while (start_kid >= 0) { - short used = 0; - - int count = 0; // count of fillers - int squeezed_count = 0; // count of squeezable elements - int total = 0; - bool hardbreak = false; - // first pass: count items that need to be expanded, - // and the space that is used - int kid = start_kid; - int end_kid = -1; - while (kid >= 0) { - UIitem *pkid = uiItemPtr(ui_context, kid); - int flags = (pkid->flags & UI_ITEM_LAYOUT_MASK) >> dim; - int fflags = (pkid->flags & UI_ITEM_FIXED_MASK) >> dim; - short extend = used; - if ((flags & UI_HFILL) == UI_HFILL) { // grow - count++; - extend += pkid->margins[dim] + pkid->margins[wdim]; - } else { - if ((fflags & UI_ITEM_HFIXED) != UI_ITEM_HFIXED) - squeezed_count++; - extend += pkid->margins[dim] + pkid->size[dim] + pkid->margins[wdim]; - } - // wrap on end of line or manual flag - if (wrap && (total && ((extend > space) || (pkid->flags & UI_BREAK)))) { - end_kid = kid; - hardbreak = ((pkid->flags & UI_BREAK) == UI_BREAK); - // add marker for subsequent queries - pkid->flags |= UI_BREAK; - break; - } else { - used = extend; - kid = uiNextSibling(ui_context, kid); - } - total++; - } - - int extra_space = space - used; - float filler = 0.0f; - float spacer = 0.0f; - float extra_margin = 0.0f; - float eater = 0.0f; - - if (extra_space > 0) { - if (count) { - filler = (float)extra_space / (float)count; - } else if (total) { - switch(pitem->flags & UI_JUSTIFY) { - default: { - extra_margin = extra_space / 2.0f; - } break; - case UI_JUSTIFY: { - // justify when not wrapping or not in last line, - // or not manually breaking - if (!wrap || ((end_kid != -1) && !hardbreak)) - spacer = (float)extra_space / (float)(total-1); - } break; - case UI_START: { - } break; - case UI_END: { - extra_margin = extra_space; - } break; - } - } - } else if (!wrap && (extra_space < 0)) { - eater = (float)extra_space / (float)squeezed_count; - } - - // distribute width among items - float x = (float)pitem->margins[dim]; - float x1; - // second pass: distribute and rescale - kid = start_kid; - while (kid != end_kid) { - short ix0,ix1; - UIitem *pkid = uiItemPtr(ui_context, kid); - int flags = (pkid->flags & UI_ITEM_LAYOUT_MASK) >> dim; - int fflags = (pkid->flags & UI_ITEM_FIXED_MASK) >> dim; - - x += (float)pkid->margins[dim] + extra_margin; - if ((flags & UI_HFILL) == UI_HFILL) { // grow - x1 = x+filler; - } else if ((fflags & UI_ITEM_HFIXED) == UI_ITEM_HFIXED) { - x1 = x+(float)pkid->size[dim]; - } else { - // squeeze - x1 = x+ui_maxf(0.0f,(float)pkid->size[dim]+eater); - } - ix0 = (short)x; - if (wrap) - ix1 = (short)ui_minf(max_x2-(float)pkid->margins[wdim], x1); - else - ix1 = (short)x1; - pkid->margins[dim] = ix0; - pkid->size[dim] = ix1-ix0; - x = x1 + (float)pkid->margins[wdim]; - - kid = uiNextSibling(ui_context, kid); - extra_margin = spacer; - } - - start_kid = end_kid; - } -} - -// superimpose all items according to their alignment -UI_INLINE void uiArrangeImposedRange(UIcontext *ui_context, UIitem *pitem, int dim, - int start_kid, int end_kid, short offset, short space) { - int wdim = dim+2; - - int kid = start_kid; - while (kid != end_kid) { - UIitem *pkid = uiItemPtr(ui_context, kid); - - int flags = (pkid->flags & UI_ITEM_LAYOUT_MASK) >> dim; - - switch(flags & UI_HFILL) { - default: break; - case UI_HCENTER: { - pkid->margins[dim] += (space-pkid->size[dim])/2 - pkid->margins[wdim]; - } break; - case UI_RIGHT: { - pkid->margins[dim] = space-pkid->size[dim]-pkid->margins[wdim]; - } break; - case UI_HFILL: { - pkid->size[dim] = ui_max(0,space-pkid->margins[dim]-pkid->margins[wdim]); - } break; - } - pkid->margins[dim] += offset; - - kid = uiNextSibling(ui_context, kid); - } -} - -UI_INLINE void uiArrangeImposed(UIcontext *ui_context, UIitem *pitem, int dim) { - uiArrangeImposedRange(ui_context, pitem, dim, pitem->firstkid, -1, pitem->margins[dim], pitem->size[dim]); -} - -// superimpose all items according to their alignment, -// squeeze items that expand the available space -UI_INLINE void uiArrangeImposedSqueezedRange(UIcontext *ui_context, UIitem *pitem, int dim, - int start_kid, int end_kid, short offset, short space) { - int wdim = dim+2; - - int kid = start_kid; - while (kid != end_kid) { - UIitem *pkid = uiItemPtr(ui_context, kid); - - int flags = (pkid->flags & UI_ITEM_LAYOUT_MASK) >> dim; - - short min_size = ui_max(0,space-pkid->margins[dim]-pkid->margins[wdim]); - switch(flags & UI_HFILL) { - default: { - pkid->size[dim] = ui_min(pkid->size[dim], min_size); - } break; - case UI_HCENTER: { - pkid->size[dim] = ui_min(pkid->size[dim], min_size); - pkid->margins[dim] += (space-pkid->size[dim])/2 - pkid->margins[wdim]; - } break; - case UI_RIGHT: { - pkid->size[dim] = ui_min(pkid->size[dim], min_size); - pkid->margins[dim] = space-pkid->size[dim]-pkid->margins[wdim]; - } break; - case UI_HFILL: { - pkid->size[dim] = min_size; - } break; - } - pkid->margins[dim] += offset; - - kid = uiNextSibling(ui_context, kid); - } -} - -UI_INLINE void uiArrangeImposedSqueezed(UIcontext *ui_context, UIitem *pitem, int dim) { - uiArrangeImposedSqueezedRange(ui_context, pitem, dim, pitem->firstkid, -1, pitem->margins[dim], pitem->size[dim]); -} - -// superimpose all items according to their alignment -UI_INLINE short uiArrangeWrappedImposedSqueezed(UIcontext *ui_context, UIitem *pitem, int dim) { - int wdim = dim+2; - - short offset = pitem->margins[dim]; - - short need_size = 0; - int kid = pitem->firstkid; - int start_kid = kid; - while (kid >= 0) { - UIitem *pkid = uiItemPtr(ui_context, kid); - - if (pkid->flags & UI_BREAK) { - uiArrangeImposedSqueezedRange(ui_context, pitem, dim, start_kid, kid, offset, need_size); - offset += need_size; - start_kid = kid; - // newline - need_size = 0; - } - - // width = start margin + calculated width + end margin - int kidsize = pkid->margins[dim] + pkid->size[dim] + pkid->margins[wdim]; - need_size = ui_max(need_size, kidsize); - kid = uiNextSibling(ui_context, kid); - } - - uiArrangeImposedSqueezedRange(ui_context, pitem, dim, start_kid, -1, offset, need_size); - offset += need_size; - return offset; -} - -static void uiArrange(UIcontext *ui_context, int item, int dim) { - UIitem *pitem = uiItemPtr(ui_context, item); - - switch(pitem->flags & UI_ITEM_BOX_MODEL_MASK) { - case UI_COLUMN|UI_WRAP: { - // flex model, wrapping - if (dim) { // direction - uiArrangeStacked(ui_context, pitem, 1, true); - // this retroactive resize will not effect parent widths - short offset = uiArrangeWrappedImposedSqueezed(ui_context, pitem, 0); - pitem->size[0] = offset - pitem->margins[0]; - } - } break; - case UI_ROW|UI_WRAP: { - // flex model, wrapping - if (!dim) { // direction - uiArrangeStacked(ui_context, pitem, 0, true); - } else { - uiArrangeWrappedImposedSqueezed(ui_context, pitem, 1); - } - } break; - case UI_COLUMN: - case UI_ROW: { - // flex model - if ((pitem->flags & 1) == (unsigned int)dim) // direction - uiArrangeStacked(ui_context, pitem, dim, false); - else - uiArrangeImposedSqueezed(ui_context, pitem, dim); - } break; - default: { - // layout model - uiArrangeImposed(ui_context, pitem, dim); - } break; - } - - int kid = uiFirstChild(ui_context, item); - while (kid >= 0) { - uiArrange(ui_context, kid, dim); - kid = uiNextSibling(ui_context, kid); - } -} - -UI_INLINE bool uiCompareItems(UIcontext *ui_context, UIitem *item1, UIitem *item2) { - return ((item1->flags & UI_ITEM_COMPARE_MASK) == (item2->flags & UI_ITEM_COMPARE_MASK)); - -} - -static bool uiMapItems(UIcontext *ui_context, int item1, int item2) { - UIitem *pitem1 = uiLastItemPtr(ui_context, item1); - if (item2 == -1) { - return false; - } - - UIitem *pitem2 = uiItemPtr(ui_context, item2); - if (!uiCompareItems(ui_context, pitem1, pitem2)) { - return false; - } - - int count = 0; - int failed = 0; - int kid1 = pitem1->firstkid; - int kid2 = pitem2->firstkid; - while (kid1 != -1) { - UIitem *pkid1 = uiLastItemPtr(ui_context, kid1); - count++; - if (!uiMapItems(ui_context, kid1, kid2)) { - failed = count; - break; - } - kid1 = pkid1->nextitem; - if (kid2 != -1) { - kid2 = uiItemPtr(ui_context, kid2)->nextitem; - } - } - - if (count && (failed == 1)) { - return false; - } - - ui_context->item_map[item1] = item2; - return true; -} - -int uiRecoverItem(UIcontext *ui_context, int olditem) { - assert(ui_context); - assert((olditem >= -1) && (olditem < ui_context->last_count)); - if (olditem == -1) return -1; - return ui_context->item_map[olditem]; -} - -void uiRemapItem(UIcontext *ui_context, int olditem, int newitem) { - assert(ui_context); - assert((olditem >= 0) && (olditem < ui_context->last_count)); - assert((newitem >= -1) && (newitem < ui_context->count)); - ui_context->item_map[olditem] = newitem; -} - -void uiEndLayout(UIcontext *ui_context) { - assert(ui_context); - assert(ui_context->stage == UI_STAGE_LAYOUT); // must run uiBeginLayout() first - - if (ui_context->count) { - uiComputeSize(ui_context, 0, 0); - uiArrange(ui_context, 0, 0); - uiComputeSize(ui_context, 0, 1); - uiArrange(ui_context, 0, 1); - - if (ui_context->last_count) { - // map old item id to new item id - uiMapItems(ui_context, 0, 0); - } - } - - uiValidateStateItems(ui_context); - if (ui_context->count) { - // drawing routines may require this to be set already - uiUpdateHotItem(ui_context); - } - - ui_context->stage = UI_STAGE_POST_LAYOUT; -} - -UIrect uiGetRect(UIcontext *ui_context, int item) { - UIitem *pitem = uiItemPtr(ui_context, item); - UIrect rc = {{{ - pitem->margins[0], pitem->margins[1], - pitem->size[0], pitem->size[1] - }}}; - return rc; -} - -int uiFirstChild(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->firstkid; -} - -int uiNextSibling(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->nextitem; -} - -void *uiAllocHandle(UIcontext *ui_context, int item, unsigned int size) { - assert((size > 0) && (size < UI_MAX_DATASIZE)); - UIitem *pitem = uiItemPtr(ui_context, item); - assert(pitem->handle == NULL); - assert((ui_context->datasize+size) <= ui_context->buffer_capacity); - pitem->handle = ui_context->data + ui_context->datasize; - pitem->flags |= UI_ITEM_DATA; - ui_context->datasize += size; - return pitem->handle; -} - -void uiSetHandle(UIcontext *ui_context, int item, void *handle) { - UIitem *pitem = uiItemPtr(ui_context, item); - assert(pitem->handle == NULL); - pitem->handle = handle; -} - -void *uiGetHandle(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->handle; -} - -void uiSetHandler(UIcontext *ui_context, UIhandler handler) { - assert(ui_context); - ui_context->handler = handler; -} - -UIhandler uiGetHandler(UIcontext *ui_context) { - assert(ui_context); - return ui_context->handler; -} - -void uiSetEvents(UIcontext *ui_context, int item, unsigned int flags) { - UIitem *pitem = uiItemPtr(ui_context, item); - pitem->flags &= ~UI_ITEM_EVENT_MASK; - pitem->flags |= flags & UI_ITEM_EVENT_MASK; -} - -unsigned int uiGetEvents(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->flags & UI_ITEM_EVENT_MASK; -} - -void uiSetFlags(UIcontext *ui_context, int item, unsigned int flags) { - UIitem *pitem = uiItemPtr(ui_context, item); - pitem->flags &= ~UI_USERMASK; - pitem->flags |= flags & UI_USERMASK; -} - -unsigned int uiGetFlags(UIcontext *ui_context, int item) { - return uiItemPtr(ui_context, item)->flags & UI_USERMASK; -} - -int uiContains(UIcontext *ui_context, int item, int x, int y) { - UIrect rect = uiGetRect(ui_context, item); - x -= rect.x; - y -= rect.y; - if ((x>=0) - && (y>=0) - && (xflags & UI_ITEM_FROZEN) return -1; - if (uiContains(ui_context, item, x, y)) { - int best_hit = -1; - int kid = uiFirstChild(ui_context, item); - while (kid >= 0) { - int hit = uiFindItem(ui_context, kid, x, y, flags, mask); - if (hit >= 0) { - best_hit = hit; - } - kid = uiNextSibling(ui_context, kid); - } - if (best_hit >= 0) { - return best_hit; - } - if (((mask == UI_ANY) && ((flags == UI_ANY) - || (pitem->flags & flags))) - || ((pitem->flags & flags) == mask)) { - return item; - } - } - return -1; -} - -void uiUpdateHotItem(UIcontext *ui_context) { - assert(ui_context); - if (!ui_context->count) return; - ui_context->hot_item = uiFindItem(ui_context, 0, - ui_context->cursor.x, ui_context->cursor.y, - UI_ANY_MOUSE_INPUT, UI_ANY); -} - -int uiGetClicks(UIcontext *ui_context) { - return ui_context->clicks; -} - -void uiProcess(UIcontext *ui_context, int timestamp) { - assert(ui_context); - - assert(ui_context->stage != UI_STAGE_LAYOUT); // must run uiBeginLayout(), uiEndLayout() first - - if (ui_context->stage == UI_STAGE_PROCESS) { - uiUpdateHotItem(ui_context); - } - ui_context->stage = UI_STAGE_PROCESS; - - if (!ui_context->count) { - uiClearInputEvents(ui_context); - return; - } - - int hot_item = ui_context->last_hot_item; - int active_item = ui_context->active_item; - int focus_item = ui_context->focus_item; - - // send all keyboard events - if (focus_item >= 0) { - int i; - for (i = 0; i < ui_context->eventcount; ++i) { - ui_context->active_key = ui_context->events[i].key; - ui_context->active_modifier = ui_context->events[i].mod; - uiNotifyItem(ui_context, focus_item, ui_context->events[i].event); - } - } else { - ui_context->focus_item = -1; - } - if (ui_context->scroll.x || ui_context->scroll.y) { - int scroll_item = uiFindItem(ui_context, 0, - ui_context->cursor.x, ui_context->cursor.y, - UI_SCROLL, UI_ANY); - if (scroll_item >= 0) { - uiNotifyItem(ui_context, scroll_item, UI_SCROLL); - } - } - - uiClearInputEvents(ui_context); - - int hot = ui_context->hot_item; - - switch(ui_context->state) { - default: - case UI_STATE_IDLE: { - ui_context->start_cursor = ui_context->cursor; - if (uiGetButton(ui_context, 0)) { - hot_item = -1; - active_item = hot; - - if (active_item != focus_item) { - focus_item = -1; - ui_context->focus_item = -1; - } - - if (active_item >= 0) { - if ( - ((timestamp - ui_context->last_click_timestamp) > UI_CLICK_THRESHOLD) - || (ui_context->last_click_item != active_item)) { - ui_context->clicks = 0; - } - ui_context->clicks++; - - ui_context->last_click_timestamp = timestamp; - ui_context->last_click_item = active_item; - ui_context->active_modifier = ui_context->active_button_modifier; - uiNotifyItem(ui_context, active_item, UI_BUTTON0_DOWN); - } - ui_context->state = UI_STATE_CAPTURE; - } else if (uiGetButton(ui_context, 2) && !uiGetLastButton(ui_context, 2)) { - hot_item = -1; - hot = uiFindItem(ui_context, 0, ui_context->cursor.x, ui_context->cursor.y, - UI_BUTTON2_DOWN, UI_ANY); - if (hot >= 0) { - ui_context->active_modifier = ui_context->active_button_modifier; - uiNotifyItem(ui_context, hot, UI_BUTTON2_DOWN); - } - } else { - hot_item = hot; - } - } break; - case UI_STATE_CAPTURE: { - if (!uiGetButton(ui_context, 0)) { - if (active_item >= 0) { - ui_context->active_modifier = ui_context->active_button_modifier; - uiNotifyItem(ui_context, active_item, UI_BUTTON0_UP); - if (active_item == hot) { - uiNotifyItem(ui_context, active_item, UI_BUTTON0_HOT_UP); - } - } - active_item = -1; - ui_context->state = UI_STATE_IDLE; - } else { - if (active_item >= 0) { - ui_context->active_modifier = ui_context->active_button_modifier; - uiNotifyItem(ui_context, active_item, UI_BUTTON0_CAPTURE); - } - if (hot == active_item) - hot_item = hot; - else - hot_item = -1; - } - } break; - } - - ui_context->last_cursor = ui_context->cursor; - ui_context->last_hot_item = hot_item; - ui_context->active_item = active_item; - - ui_context->last_timestamp = timestamp; - ui_context->last_buttons = ui_context->buttons; -} - -static int uiIsActive(UIcontext *ui_context, int item) { - assert(ui_context); - return ui_context->active_item == item; -} - -static int uiIsHot(UIcontext *ui_context, int item) { - assert(ui_context); - return ui_context->last_hot_item == item; -} - -static int uiIsFocused(UIcontext *ui_context, int item) { - assert(ui_context); - return ui_context->focus_item == item; -} - -UIitemState uiGetState(UIcontext *ui_context, int item) { - UIitem *pitem = uiItemPtr(ui_context, item); - if (pitem->flags & UI_ITEM_FROZEN) return UI_FROZEN; - if (uiIsFocused(ui_context, item)) { - if (pitem->flags & (UI_KEY_DOWN|UI_CHAR|UI_KEY_UP)) return UI_ACTIVE; - } - if (uiIsActive(ui_context, item)) { - if (pitem->flags & (UI_BUTTON0_CAPTURE|UI_BUTTON0_UP)) return UI_ACTIVE; - if ((pitem->flags & UI_BUTTON0_HOT_UP) - && uiIsHot(ui_context, item)) return UI_ACTIVE; - return UI_COLD; - } else if (uiIsHot(ui_context, item)) { - return UI_HOT; - } - return UI_COLD; -} - -#endif // OUI_IMPLEMENTATION diff --git a/dpf/dgl/src/resources/LICENSE-blender_icons.svg.txt b/dpf/dgl/src/resources/LICENSE-blender_icons.svg.txt deleted file mode 100644 index 72b6484..0000000 --- a/dpf/dgl/src/resources/LICENSE-blender_icons.svg.txt +++ /dev/null @@ -1,280 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS diff --git a/dpf/dgl/src/resources/blender_icons.svg b/dpf/dgl/src/resources/blender_icons.svg deleted file mode 100644 index 4a1e2cd..0000000 --- a/dpf/dgl/src/resources/blender_icons.svg +++ /dev/null @@ -1,88974 +0,0 @@ - - - - - Blender icons v. 2.5.08 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Blender icons v. 2.5.08 - 21.05.2012 - - - Andrzej Ambroż - - - - - Andrzej Ambroż - - - - - Andrzej Ambroż - - - - - This content is under CC Attribution-NonCommercial ShareAlike licence 3.0 as long as it's used for Blender 3D GUI. Any other uses are not allowed. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/dpf/dgl/src/resources/blender_icons16.png b/dpf/dgl/src/resources/blender_icons16.png deleted file mode 100644 index 8d00905ed5128b130e521bee915f857cb5a23374..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 250706 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

8V!MQ?Et=0>(n$*Jj{r1uU3v-o+mJTl2EI7WW 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 InqAoc0rcd1F#rGn diff --git a/dpf/distrho/DistrhoInfo.hpp b/dpf/distrho/DistrhoInfo.hpp index 4105292..835969e 100644 --- a/dpf/distrho/DistrhoInfo.hpp +++ b/dpf/distrho/DistrhoInfo.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/DistrhoPlugin.hpp b/dpf/distrho/DistrhoPlugin.hpp index 7a75157..76dcdd3 100644 --- a/dpf/distrho/DistrhoPlugin.hpp +++ b/dpf/distrho/DistrhoPlugin.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/DistrhoPluginMain.cpp b/dpf/distrho/DistrhoPluginMain.cpp index 76dea76..d4dd13f 100644 --- a/dpf/distrho/DistrhoPluginMain.cpp +++ b/dpf/distrho/DistrhoPluginMain.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/DistrhoUIMain.cpp b/dpf/distrho/DistrhoUIMain.cpp index ee4a6e5..bd9454d 100644 --- a/dpf/distrho/DistrhoUIMain.cpp +++ b/dpf/distrho/DistrhoUIMain.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/DistrhoUtils.hpp b/dpf/distrho/DistrhoUtils.hpp index 02a61a7..0a285b8 100644 --- a/dpf/distrho/DistrhoUtils.hpp +++ b/dpf/distrho/DistrhoUtils.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/extra/LeakDetector.hpp b/dpf/distrho/extra/LeakDetector.hpp index 45be347..b146efc 100644 --- a/dpf/distrho/extra/LeakDetector.hpp +++ b/dpf/distrho/extra/LeakDetector.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/extra/Mutex.hpp b/dpf/distrho/extra/Mutex.hpp index 8badcc3..3abd478 100644 --- a/dpf/distrho/extra/Mutex.hpp +++ b/dpf/distrho/extra/Mutex.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/extra/ScopedPointer.hpp b/dpf/distrho/extra/ScopedPointer.hpp index 12e6ba0..b8efbf0 100644 --- a/dpf/distrho/extra/ScopedPointer.hpp +++ b/dpf/distrho/extra/ScopedPointer.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/extra/Sleep.hpp b/dpf/distrho/extra/Sleep.hpp index 4953a12..af54ba5 100644 --- a/dpf/distrho/extra/Sleep.hpp +++ b/dpf/distrho/extra/Sleep.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/extra/String.hpp b/dpf/distrho/extra/String.hpp index 8f824f3..90586a3 100644 --- a/dpf/distrho/extra/String.hpp +++ b/dpf/distrho/extra/String.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/extra/Thread.hpp b/dpf/distrho/extra/Thread.hpp index efb2862..f2abb76 100644 --- a/dpf/distrho/extra/Thread.hpp +++ b/dpf/distrho/extra/Thread.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoDefines.h b/dpf/distrho/src/DistrhoDefines.h index 2e8f845..2fceafa 100644 --- a/dpf/distrho/src/DistrhoDefines.h +++ b/dpf/distrho/src/DistrhoDefines.h @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoPlugin.cpp b/dpf/distrho/src/DistrhoPlugin.cpp index aed9784..20cdfcb 100644 --- a/dpf/distrho/src/DistrhoPlugin.cpp +++ b/dpf/distrho/src/DistrhoPlugin.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoPluginCarla.cpp b/dpf/distrho/src/DistrhoPluginCarla.cpp index e16436b..4c931ce 100644 --- a/dpf/distrho/src/DistrhoPluginCarla.cpp +++ b/dpf/distrho/src/DistrhoPluginCarla.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/dpf/distrho/src/DistrhoPluginChecks.h b/dpf/distrho/src/DistrhoPluginChecks.h index 608cf6b..a3690b0 100644 --- a/dpf/distrho/src/DistrhoPluginChecks.h +++ b/dpf/distrho/src/DistrhoPluginChecks.h @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoPluginInternal.hpp b/dpf/distrho/src/DistrhoPluginInternal.hpp index 6d57b24..d857d6e 100644 --- a/dpf/distrho/src/DistrhoPluginInternal.hpp +++ b/dpf/distrho/src/DistrhoPluginInternal.hpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoPluginJack.cpp b/dpf/distrho/src/DistrhoPluginJack.cpp index ff92f3b..93e5d41 100644 --- a/dpf/distrho/src/DistrhoPluginJack.cpp +++ b/dpf/distrho/src/DistrhoPluginJack.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public diff --git a/dpf/distrho/src/DistrhoPluginLADSPA+DSSI.cpp b/dpf/distrho/src/DistrhoPluginLADSPA+DSSI.cpp index 82399fc..455f9a8 100644 --- a/dpf/distrho/src/DistrhoPluginLADSPA+DSSI.cpp +++ b/dpf/distrho/src/DistrhoPluginLADSPA+DSSI.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoPluginLV2.cpp b/dpf/distrho/src/DistrhoPluginLV2.cpp index 3e6df15..8801fb9 100644 --- a/dpf/distrho/src/DistrhoPluginLV2.cpp +++ b/dpf/distrho/src/DistrhoPluginLV2.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoPluginLV2export.cpp b/dpf/distrho/src/DistrhoPluginLV2export.cpp index d8d0fbc..aa92bf7 100644 --- a/dpf/distrho/src/DistrhoPluginLV2export.cpp +++ b/dpf/distrho/src/DistrhoPluginLV2export.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoUIDSSI.cpp b/dpf/distrho/src/DistrhoUIDSSI.cpp index d2868fd..acb43bf 100644 --- a/dpf/distrho/src/DistrhoUIDSSI.cpp +++ b/dpf/distrho/src/DistrhoUIDSSI.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/distrho/src/DistrhoUILV2.cpp b/dpf/distrho/src/DistrhoUILV2.cpp index 14c8b30..eda57ca 100644 --- a/dpf/distrho/src/DistrhoUILV2.cpp +++ b/dpf/distrho/src/DistrhoUILV2.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Plugin Framework (DPF) - * Copyright (C) 2012-2015 Filipe Coelho + * Copyright (C) 2012-2016 Filipe Coelho * * Permission to use, copy, modify, and/or distribute this software for any purpose with * or without fee is hereby granted, provided that the above copyright notice and this diff --git a/dpf/dpf.doxygen b/dpf/dpf.doxygen index 2dfa18d..9c05ec0 100644 --- a/dpf/dpf.doxygen +++ b/dpf/dpf.doxygen @@ -242,11 +242,14 @@ SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = PREDEFINED = DOXYGEN \ + HAVE_DGL=1 \ DISTRHO_PLUGIN_NAME="Plugin Name" \ DISTRHO_PLUGIN_NUM_INPUTS=2 \ DISTRHO_PLUGIN_NUM_OUTPUTS=2 \ DISTRHO_PLUGIN_URI="urn:distrho:name" \ DISTRHO_PLUGIN_HAS_UI=1 \ + DISTRHO_PLUGIN_HAS_EMBED_UI=1 \ + DISTRHO_PLUGIN_HAS_EXTERNAL_UI=1 \ DISTRHO_PLUGIN_IS_RT_SAFE=1 \ DISTRHO_PLUGIN_IS_SYNTH=1 \ DISTRHO_PLUGIN_WANT_DIRECT_ACCESS=1 \ @@ -256,6 +259,7 @@ PREDEFINED = DOXYGEN \ DISTRHO_PLUGIN_WANT_PROGRAMS=1 \ DISTRHO_PLUGIN_WANT_STATE=1 \ DISTRHO_PLUGIN_WANT_TIMEPOS=1 \ + DISTRHO_PLUGIN_WANT_FULL_STATE=1 \ DISTRHO_UI_USE_NANOVG=1 EXPAND_AS_DEFINED = YES SKIP_FUNCTION_MACROS = YES diff --git a/dpf/utils/lv2-ttl-generator/lv2_ttl_generator.c b/dpf/utils/lv2-ttl-generator/lv2_ttl_generator.c index 5ef2b14..f52d41b 100644 --- a/dpf/utils/lv2-ttl-generator/lv2_ttl_generator.c +++ b/dpf/utils/lv2-ttl-generator/lv2_ttl_generator.c @@ -1,5 +1,17 @@ /* - * DPF LV2 *.ttl generator + * DISTRHO Plugin Framework (DPF) + * Copyright (C) 2012-2016 Filipe Coelho + * + * Permission to use, copy, modify, and/or distribute this software for any purpose with + * or without fee is hereby granted, provided that the above copyright notice and this + * permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD + * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN + * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include diff --git a/dpf/utils/png2rgba.py b/dpf/utils/png2rgba.py index 7d992b4..acd52e5 100755 --- a/dpf/utils/png2rgba.py +++ b/dpf/utils/png2rgba.py @@ -1,4 +1,19 @@ #!/usr/bin/env python +# -*- coding: utf-8 -*- + +# DISTRHO Plugin Framework (DPF) +# Copyright (C) 2012-2016 Filipe Coelho +# +# Permission to use, copy, modify, and/or distribute this software for any purpose with +# or without fee is hereby granted, provided that the above copyright notice and this +# permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD +# TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN +# NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL +# DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER +# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN +# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. import os, numpy, sys import Image diff --git a/get-plugins.sh b/get-plugins.sh index dd12121..8dd903d 100755 --- a/get-plugins.sh +++ b/get-plugins.sh @@ -2,7 +2,7 @@ set -e -PLUGINS=("Kars" "Mini-Series" "MVerb" "Nekobi" "ProM" "ndc-Plugs" "DPF-Max-Gen") +PLUGINS=("glBars" "Kars" "Mini-Series" "MVerb" "Nekobi" "ProM" "ndc-Plugs" "DPF-Max-Gen") if [ ! -f Makefile ]; then echo "Makefile not found, please run this script from DPF-Plugins root source dir" diff --git a/plugins/Makefile.glBars.mk b/plugins/Makefile.glBars.mk new file mode 100644 index 0000000..0c2913d --- /dev/null +++ b/plugins/Makefile.glBars.mk @@ -0,0 +1,88 @@ +#!/usr/bin/make -f +# Makefile for DISTRHO Plugins # +# ---------------------------- # +# Created by falkTX +# + +# NAME, OBJS_DSP and OBJS_UI have been defined before + +include ../../Makefile.mk + +# -------------------------------------------------------------- +# Basic setup + +TARGET_DIR = ../../bin + +BUILD_C_FLAGS += -I. +BUILD_CXX_FLAGS += -I. -I../../dpf/distrho -I../../dpf/dgl + +BASE_FLAGS += -DHAVE_DGL + +ifeq ($(HAVE_JACK),true) +BASE_FLAGS += -DHAVE_JACK +endif + +# -------------------------------------------------------------- +# Set plugin binary file targets + +jack = $(TARGET_DIR)/$(NAME)$(APP_EXT) +lv2 = $(TARGET_DIR)/$(NAME).lv2/$(NAME)$(LIB_EXT) +vst = $(TARGET_DIR)/$(NAME)-vst$(LIB_EXT) + +# -------------------------------------------------------------- +# Set distrho code files + +DISTRHO_PLUGIN_FILES = ../../dpf/distrho/DistrhoPluginMain.cpp +DISTRHO_UI_FILES = ../../dpf/distrho/DistrhoUIMain.cpp ../../dpf/libdgl.a + +# -------------------------------------------------------------- +# all needs to be first + +all: + +# -------------------------------------------------------------- +# Common + +%.c.o: %.c + $(CC) $< $(BUILD_C_FLAGS) -MD -MP -c -o $@ + +%.cpp.o: %.cpp + $(CXX) $< $(BUILD_CXX_FLAGS) -MD -MP -c -o $@ + +clean: + rm -f *.d *.o + rm -rf $(TARGET_DIR)/$(NAME) $(TARGET_DIR)/$(NAME)-* $(TARGET_DIR)/$(NAME).lv2/ + +# -------------------------------------------------------------- +# JACK + +jack: $(jack) + +$(jack): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) + mkdir -p $(shell dirname $@) + $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) $(shell pkg-config --cflags --libs jack) -lpthread -DDISTRHO_PLUGIN_TARGET_JACK -o $@ + +# -------------------------------------------------------------- +# LV2 + +lv2: $(lv2) + +$(lv2): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) + mkdir -p $(shell dirname $@) + $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_LV2 -o $@ + +# -------------------------------------------------------------- +# VST + +vst: $(vst) + +$(vst): $(OBJS_DSP) $(OBJS_UI) $(DISTRHO_PLUGIN_FILES) $(DISTRHO_UI_FILES) + mkdir -p $(shell dirname $@) + $(CXX) $^ $(BUILD_CXX_FLAGS) $(LINK_FLAGS) $(DGL_LIBS) -lpthread $(SHARED) -DDISTRHO_PLUGIN_TARGET_VST -o $@ + +# -------------------------------------------------------------- + +-include $(OBJS_DSP:%.o=%.d) +-include $(OBJS_UI:%.o=%.d) + +# -------------------------------------------------------------- diff --git a/plugins/ProM/DistrhoPluginProM.hpp b/plugins/ProM/DistrhoPluginProM.hpp index 1cb7ddc..4ba16e8 100644 --- a/plugins/ProM/DistrhoPluginProM.hpp +++ b/plugins/ProM/DistrhoPluginProM.hpp @@ -14,8 +14,8 @@ * For a full copy of the license see the LICENSE file. */ -#ifndef DISTRHO_PLUGIN_3BANDEQ_HPP_INCLUDED -#define DISTRHO_PLUGIN_3BANDEQ_HPP_INCLUDED +#ifndef DISTRHO_PLUGIN_PROM_HPP_INCLUDED +#define DISTRHO_PLUGIN_PROM_HPP_INCLUDED #include "DistrhoPlugin.hpp" @@ -103,4 +103,4 @@ private: END_NAMESPACE_DISTRHO -#endif // DISTRHO_PLUGIN_3BANDEQ_HPP_INCLUDED +#endif // DISTRHO_PLUGIN_PROM_HPP_INCLUDED diff --git a/plugins/ProM/DistrhoUIProM.hpp b/plugins/ProM/DistrhoUIProM.hpp index 2ce702b..a3c3405 100644 --- a/plugins/ProM/DistrhoUIProM.hpp +++ b/plugins/ProM/DistrhoUIProM.hpp @@ -14,8 +14,8 @@ * For a full copy of the license see the LICENSE file. */ -#ifndef DISTRHO_UI_3BANDEQ_HPP_INCLUDED -#define DISTRHO_UI_3BANDEQ_HPP_INCLUDED +#ifndef DISTRHO_UI_PROM_HPP_INCLUDED +#define DISTRHO_UI_PROM_HPP_INCLUDED #include "DistrhoUI.hpp" @@ -60,4 +60,4 @@ private: END_NAMESPACE_DISTRHO -#endif // DISTRHO_UI_3BANDEQ_HPP_INCLUDED +#endif // DISTRHO_UI_PROM_HPP_INCLUDED diff --git a/plugins/glBars/DistrhoPluginGLBars.cpp b/plugins/glBars/DistrhoPluginGLBars.cpp new file mode 100644 index 0000000..cc9e746 --- /dev/null +++ b/plugins/glBars/DistrhoPluginGLBars.cpp @@ -0,0 +1,149 @@ +/* + * DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" + * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies + * Copyright (C) 2000 Christian Zander + * Copyright (C) 2015 Nedko Arnaudov + * Copyright (C) 2016 Filipe Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * For a full copy of the license see the LICENSE file. + */ + +#include "DistrhoPluginGLBars.hpp" + +#include "glBars.hpp" + +START_NAMESPACE_DISTRHO + +// ----------------------------------------------------------------------- + +DistrhoPluginGLBars::DistrhoPluginGLBars() + : Plugin(kParameterCount, 0, 0), + fState(nullptr) +{ + fParameters[kParameterScale] = 1.f / log(256.f); + fParameters[kParameterSpeed] = 0.025f; + fParameters[kParameterX] = 0.0f; + fParameters[kParameterY] = 0.5f; + fParameters[kParameterZ] = 0.0f; +} + +DistrhoPluginGLBars::~DistrhoPluginGLBars() +{ + DISTRHO_SAFE_ASSERT(fState == nullptr); +} + +// ----------------------------------------------------------------------- +// Init + +void DistrhoPluginGLBars::initParameter(uint32_t index, Parameter& parameter) +{ + switch (index) + { + case kParameterScale: + parameter.hints = kParameterIsAutomable|kParameterIsLogarithmic; + parameter.name = "Scale"; + parameter.symbol = "scale"; + parameter.unit = ""; + parameter.ranges.def = 1.0f / log(256.f); + parameter.ranges.min = 0.5f / log(256.f); + parameter.ranges.max = 3.0f / log(256.f); + break; + + case kParameterSpeed: + parameter.hints = kParameterIsAutomable|kParameterIsLogarithmic; + parameter.name = "Speed"; + parameter.symbol = "speed"; + parameter.unit = ""; + parameter.ranges.def = 0.025f; + parameter.ranges.min = 0.0125f; + parameter.ranges.max = 0.1f; + break; + + case kParameterX: + parameter.hints = kParameterIsAutomable; + parameter.name = "X"; + parameter.symbol = "x"; + parameter.unit = ""; + parameter.ranges.def = -4.0f; + parameter.ranges.min = 0.0f; + parameter.ranges.max = 4.0f; + break; + + case kParameterY: + parameter.hints = kParameterIsAutomable; + parameter.name = "Y"; + parameter.symbol = "y"; + parameter.unit = ""; + parameter.ranges.def = 0.5f; + parameter.ranges.min = -4.0f; + parameter.ranges.max = 4.0f; + break; + + case kParameterZ: + parameter.hints = kParameterIsAutomable; + parameter.name = "Z"; + parameter.symbol = "z"; + parameter.unit = ""; + parameter.ranges.def = 0.0f; + parameter.ranges.min = -4.0f; + parameter.ranges.max = 4.0f; + break; + } +} + +// ----------------------------------------------------------------------- +// Internal data + +float DistrhoPluginGLBars::getParameterValue(uint32_t index) const +{ + if (index >= kParameterCount) + return 0.0f; + + return fParameters[index]; +} + +void DistrhoPluginGLBars::setParameterValue(uint32_t index, float value) +{ + if (index >= kParameterCount) + return; + + fParameters[index] = value; +} + +// ----------------------------------------------------------------------- +// Process + +void DistrhoPluginGLBars::run(const float** inputs, float** outputs, uint32_t frames) +{ + const float* in = inputs[0]; + float* out = outputs[0]; + + if (out != in) + std::memcpy(out, in, sizeof(float)*frames); + + const MutexLocker csm(fMutex); + + if (fState != nullptr) + fState->AudioData(in, frames); +} + +// ----------------------------------------------------------------------- + +Plugin* createPlugin() +{ + return new DistrhoPluginGLBars(); +} + +// ----------------------------------------------------------------------- + +END_NAMESPACE_DISTRHO diff --git a/plugins/glBars/DistrhoPluginGLBars.hpp b/plugins/glBars/DistrhoPluginGLBars.hpp new file mode 100644 index 0000000..eb2517c --- /dev/null +++ b/plugins/glBars/DistrhoPluginGLBars.hpp @@ -0,0 +1,110 @@ +/* + * DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" + * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies + * Copyright (C) 2000 Christian Zander + * Copyright (C) 2015 Nedko Arnaudov + * Copyright (C) 2016 Filipe Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * For a full copy of the license see the LICENSE file. + */ + +#ifndef DISTRHO_PLUGIN_GLBARS_HPP_INCLUDED +#define DISTRHO_PLUGIN_GLBARS_HPP_INCLUDED + +#include "DistrhoPlugin.hpp" +#include "extra/Mutex.hpp" + +class DistrhoUIGLBars; +struct glBarsState; + +START_NAMESPACE_DISTRHO + +// ----------------------------------------------------------------------- + +class DistrhoPluginGLBars : public Plugin +{ +public: + DistrhoPluginGLBars(); + ~DistrhoPluginGLBars() override; + +protected: + // ------------------------------------------------------------------- + // Information + + const char* getLabel() const noexcept override + { + return "glBars"; + } + + const char* getDescription() const override + { + return "OpenGL Bars"; + } + + const char* getMaker() const noexcept override + { + return "DISTRHO"; + } + + const char* getHomePage() const override + { + return "https://github.com/DISTRHO/GLBars"; + } + + const char* getLicense() const noexcept override + { + return "LGPL"; + } + + uint32_t getVersion() const noexcept override + { + return d_version(1, 0, 0); + } + + int64_t getUniqueId() const noexcept override + { + return d_cconst('D', 'g', 'l', 'B'); + } + + // ------------------------------------------------------------------- + // Init + + void initParameter(uint32_t, Parameter&) override; + + // ------------------------------------------------------------------- + // Internal data + + float getParameterValue(uint32_t) const override; + void setParameterValue(uint32_t, float) override; + + // ------------------------------------------------------------------- + // Process + + void run(const float** inputs, float** outputs, uint32_t frames) override; + + // ------------------------------------------------------------------- + +private: + Mutex fMutex; + glBarsState* fState; + float fParameters[kParameterCount]; + friend class DistrhoUIGLBars; + + DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoPluginGLBars) +}; + +// ----------------------------------------------------------------------- + +END_NAMESPACE_DISTRHO + +#endif // DISTRHO_PLUGIN_GLBARS_HPP_INCLUDED diff --git a/plugins/glBars/DistrhoPluginInfo.h b/plugins/glBars/DistrhoPluginInfo.h new file mode 100644 index 0000000..7367a41 --- /dev/null +++ b/plugins/glBars/DistrhoPluginInfo.h @@ -0,0 +1,43 @@ +/* + * DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" + * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies + * Copyright (C) 2000 Christian Zander + * Copyright (C) 2015 Nedko Arnaudov + * Copyright (C) 2016 Filipe Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * For a full copy of the license see the LICENSE file. + */ + +#ifndef DISTRHO_PLUGIN_INFO_H_INCLUDED +#define DISTRHO_PLUGIN_INFO_H_INCLUDED + +#define DISTRHO_PLUGIN_BRAND "DISTRHO" +#define DISTRHO_PLUGIN_NAME "glBars" +#define DISTRHO_PLUGIN_URI "http://distrho.sf.net/plugins/glBars" + +#define DISTRHO_PLUGIN_HAS_UI 1 +#define DISTRHO_PLUGIN_NUM_INPUTS 1 +#define DISTRHO_PLUGIN_NUM_OUTPUTS 1 +#define DISTRHO_PLUGIN_WANT_DIRECT_ACCESS 1 +#define DISTRHO_PLUGIN_LV2_CATEGORY "lv2:AnalyserPlugin" + +enum Parameters { + kParameterScale = 0, + kParameterSpeed, + kParameterX, + kParameterY, + kParameterZ, + kParameterCount +}; + +#endif // DISTRHO_PLUGIN_INFO_H_INCLUDED diff --git a/plugins/glBars/DistrhoUIGLBars.cpp b/plugins/glBars/DistrhoUIGLBars.cpp new file mode 100644 index 0000000..ef1421e --- /dev/null +++ b/plugins/glBars/DistrhoUIGLBars.cpp @@ -0,0 +1,133 @@ +/* + * DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" + * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies + * Copyright (C) 2000 Christian Zander + * Copyright (C) 2015 Nedko Arnaudov + * Copyright (C) 2016 Filipe Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * For a full copy of the license see the LICENSE file. + */ + +#include "DistrhoPluginGLBars.hpp" +#include "DistrhoUIGLBars.hpp" + +START_NAMESPACE_DISTRHO + +// ----------------------------------------------------------------------- + +DistrhoUIGLBars::DistrhoUIGLBars() + : UI(512, 512) {} + +DistrhoUIGLBars::~DistrhoUIGLBars() +{ + if (DistrhoPluginGLBars* const dspPtr = (DistrhoPluginGLBars*)getPluginInstancePointer()) + { + const MutexLocker csm(dspPtr->fMutex); + dspPtr->fState = nullptr; + } +} + +// ----------------------------------------------------------------------- +// DSP Callbacks + +void DistrhoUIGLBars::parameterChanged(uint32_t index, float value) +{ + switch (index) + { + case kParameterScale: + fState.scale = value; + break; + + case kParameterSpeed: + fState.hSpeed = value; + break; + + case kParameterX: + fState.x_speed = value; + break; + + case kParameterY: + fState.y_speed = value; + break; + + case kParameterZ: + fState.z_speed = value; + break; + } +} + +// ----------------------------------------------------------------------- +// UI Callbacks + +void DistrhoUIGLBars::uiIdle() +{ + repaint(); + + if (DistrhoPluginGLBars* const dspPtr = (DistrhoPluginGLBars*)getPluginInstancePointer()) + { + if (dspPtr->fState != nullptr) + return; + + const MutexLocker csm(dspPtr->fMutex); + dspPtr->fState = &fState; + } +} + +// ----------------------------------------------------------------------- +// Widget Callbacks + +void DistrhoUIGLBars::onDisplay() +{ + fState.Render(); +} + +bool DistrhoUIGLBars::onKeyboard(const KeyboardEvent& ev) +{ + if (ev.press && (ev.key == '1' || ev.key == '+' || ev.key == '-')) + { + if (ev.key == '1') + { + if (getWidth() != 512 || getHeight() != 512) + setSize(512, 512); + } + else if (ev.key == '+') + { + /**/ if (getWidth() < 1100 && getHeight() < 1100) + setSize(getWidth()+100, getHeight()+100); + else if (getWidth() != 1100 || getHeight() != 1100) + setSize(1100, 1100); + } + else if (ev.key == '-') + { + /**/ if (getWidth() >= 200 && getHeight() >= 200) + setSize(getWidth()-100, getHeight()-100); + else if (getWidth() != 100 || getHeight() != 100) + setSize(100, 100); + } + + return true; + } + + return true; +} + +// ----------------------------------------------------------------------- + +UI* createUI() +{ + return new DistrhoUIGLBars(); +} + +// ----------------------------------------------------------------------- + +END_NAMESPACE_DISTRHO diff --git a/plugins/glBars/DistrhoUIGLBars.hpp b/plugins/glBars/DistrhoUIGLBars.hpp new file mode 100644 index 0000000..72139bd --- /dev/null +++ b/plugins/glBars/DistrhoUIGLBars.hpp @@ -0,0 +1,66 @@ +/* + * DISTRHO glBars Plugin based on XMMS/XBMC "GL Bars" + * Copyright (C) 1998-2000 Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front Technologies + * Copyright (C) 2000 Christian Zander + * Copyright (C) 2015 Nedko Arnaudov + * Copyright (C) 2016 Filipe Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * For a full copy of the license see the LICENSE file. + */ + +#ifndef DISTRHO_UI_GLBARS_HPP_INCLUDED +#define DISTRHO_UI_GLBARS_HPP_INCLUDED + +#include "DistrhoUI.hpp" + +#include "glBars.hpp" + +START_NAMESPACE_DISTRHO + +// ----------------------------------------------------------------------- + +class DistrhoUIGLBars : public UI +{ +public: + DistrhoUIGLBars(); + ~DistrhoUIGLBars() override; + +protected: + // ------------------------------------------------------------------- + // DSP Callbacks + + void parameterChanged(uint32_t, float) override; + + // ------------------------------------------------------------------- + // UI Callbacks + + void uiIdle() override; +// void uiReshape(uint width, uint height) override; + + // ------------------------------------------------------------------- + // Widget Callbacks + + void onDisplay() override; + bool onKeyboard(const KeyboardEvent&) override; + +private: + glBarsState fState; + + DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(DistrhoUIGLBars) +}; + +// ----------------------------------------------------------------------- + +END_NAMESPACE_DISTRHO + +#endif // DISTRHO_UI_GLBARS_HPP_INCLUDED diff --git a/plugins/glBars/Makefile b/plugins/glBars/Makefile new file mode 100644 index 0000000..64b34a6 --- /dev/null +++ b/plugins/glBars/Makefile @@ -0,0 +1,37 @@ +#!/usr/bin/make -f +# Makefile for DISTRHO Plugins # +# ---------------------------- # +# Created by falkTX +# + +# -------------------------------------------------------------- +# Project name, used for binaries + +NAME = glBars + +# -------------------------------------------------------------- +# Files to build + +OBJS_DSP = \ + DistrhoPluginGLBars.cpp.o + +OBJS_UI = \ + DistrhoUIGLBars.cpp.o + +# -------------------------------------------------------------- +# Do some magic + +include ../Makefile.glBars.mk + +# -------------------------------------------------------------- +# Enable all possible plugin types + +ifeq ($(HAVE_JACK),true) +TARGETS += jack +endif +TARGETS += lv2 +TARGETS += vst + +all: $(TARGETS) + +# -------------------------------------------------------------- diff --git a/plugins/glBars/Screenshot.png b/plugins/glBars/Screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..189b43519b9a5d3bca4030ab2a913698f232b1ed GIT binary patch literal 37348 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

_^hRcGk5os%&1ZHjM-8L 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 + * Copyright (C) 2015 Nedko Arnaudov + * Copyright (C) 2016 Filipe Coelho + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * For a full copy of the license see the LICENSE file. + */ + +#ifndef GLBARS_STATE_HPP_INCLUDED +#define GLBARS_STATE_HPP_INCLUDED + +#include "Base.hpp" + +static inline +void draw_rectangle(GLfloat x1, GLfloat y1, GLfloat z1, GLfloat x2, GLfloat y2, GLfloat z2) +{ + if (y1 == y2) + { + glVertex3f(x1, y1, z1); + glVertex3f(x2, y1, z1); + glVertex3f(x2, y2, z2); + + glVertex3f(x2, y2, z2); + glVertex3f(x1, y2, z2); + glVertex3f(x1, y1, z1); + } + else + { + glVertex3f(x1, y1, z1); + glVertex3f(x2, y1, z2); + glVertex3f(x2, y2, z2); + + glVertex3f(x2, y2, z2); + glVertex3f(x1, y2, z1); + glVertex3f(x1, y1, z1); + } +} + +static inline +void draw_bar(GLenum mode, GLfloat x_offset, GLfloat z_offset, GLfloat height, GLfloat red, GLfloat green, GLfloat blue) +{ + const GLfloat width = 0.1; + + if (mode == GL_POINT) + glColor3f(0.2, 1.0, 0.2); + + if (mode != GL_POINT) + { + glColor3f(red,green,blue); + draw_rectangle(x_offset, height, z_offset, x_offset + width, height, z_offset + 0.1); + } + draw_rectangle(x_offset, 0, z_offset, x_offset + width, 0, z_offset + 0.1); + + if (mode != GL_POINT) + { + glColor3f(0.5 * red, 0.5 * green, 0.5 * blue); + draw_rectangle(x_offset, 0.0, z_offset + 0.1, x_offset + width, height, z_offset + 0.1); + } + draw_rectangle(x_offset, 0.0, z_offset, x_offset + width, height, z_offset ); + + if (mode != GL_POINT) + { + glColor3f(0.25 * red, 0.25 * green, 0.25 * blue); + draw_rectangle(x_offset, 0.0, z_offset , x_offset, height, z_offset + 0.1); + } + draw_rectangle(x_offset + width, 0.0, z_offset , x_offset + width, height, z_offset + 0.1); +} + +struct glBarsState { + GLenum g_mode; + GLfloat x_angle, x_speed; + GLfloat y_angle, y_speed; + GLfloat z_angle, z_speed; + GLfloat heights[16][16], cHeights[16][16], scale; + GLfloat hSpeed; + + glBarsState() + { + g_mode = GL_FILL; + x_angle = 20.0; + x_speed = 0.0; + y_angle = 15.0; // was 45 + y_speed = 0.5; + z_angle = 0.0; + z_speed = 0.0; + + // Set "Bar Height" + scale = 1.f / log(256.f); // "Default" / standard + //scale = 2.f / log(256.f); // "Big" + //scale = 3.f / log(256.f); // "Very Big" / real big + //scale = 0.33f / log(256.f); // unused + //scale = 0.5f / log(256.f); // "Small" + + // Set "Speed" + //hSpeed = 0.025f; // "Slow" + hSpeed = 0.0125f; // "Default" + //hSpeed = 0.1f; // "Fast" + //hSpeed = 0.2f; // "Very Fast" + //hSpeed = 0.05f; // "Very Slow" + + for (int x = 0; x < 16; x++) + { + for (int y = 0; y < 16; y++) + cHeights[y][x] = heights[y][x] = 0; + } + } + + void drawBars() + { + GLfloat x_offset, z_offset, r_base, b_base; + + glClear(GL_DEPTH_BUFFER_BIT); + glPushMatrix(); + glTranslatef(0.0,-0.5,-5.0); + glRotatef(x_angle,1.0,0.0,0.0); + glRotatef(y_angle,0.0,1.0,0.0); + glRotatef(z_angle,0.0,0.0,1.0); + + glPolygonMode(GL_FRONT_AND_BACK, g_mode); + glBegin(GL_TRIANGLES); + + for (int y = 0; y < 16; y++) + { + z_offset = -1.6 + ((15 - y) * 0.2); + + b_base = y * (1.0 / 15); + r_base = 1.0 - b_base; + + for (int x = 0; x < 16; x++) + { + x_offset = -1.6 + ((float)x * 0.2); + if (::fabs(cHeights[y][x]-heights[y][x])>hSpeed) + { + if (cHeights[y][x]= 360.0) + x_angle -= 360.0; + + y_angle += y_speed; + if (y_angle >= 360.0) + y_angle -= 360.0; + + z_angle += z_speed; + if (z_angle >= 360.0) + z_angle -= 360.0; + + drawBars(); + + glPopMatrix(); + glMatrixMode(GL_PROJECTION); + glPopMatrix(); + glDisable(GL_DEPTH_TEST); + glEnable(GL_BLEND); + } + + void AudioData(const float* pAudioData, int iAudioDataLength) + { + const int xscale[] = {0, 1, 2, 3, 5, 7, 10, 14, 20, 28, 40, 54, 74, 101, 137, 187, 255}; + + GLfloat val; + + for (int y = 15; y > 0; y--) + { + for (int i = 0; i < 16; i++) + heights[y][i] = heights[y - 1][i]; + } + + for (int i = 0; i < 16; i++) + { + int y = 0; + for (int c = xscale[i]; c < xscale[i + 1]; c++) + { + if (c y) + y = (int)(pAudioData[c] * (INT16_MAX)); + } + else + { + continue; + } + } + y >>= 7; + if (y > 0) + val = (logf(y) * scale); + else + val = 0; + heights[0][i] = val; + } + } +}; + +#endif // GLBARS_STATE_HPP_INCLUDED