================================================================================
README
- PAL/SALOME Installation Wizard
+ SALOME Installation Wizard
================================================================================
Contents of this file:
3.3. Testing of the installed SALOME platform
4. How to build SALOME modules from sources
+ 4.1. General procedure
+ 4.2. Automatic build procedure: build.csh script
================================================================================
source salome.csh
where <KERNEL_ROOT_DIR> is KERNEL binaries directory, e.g.
- KERNEL_2.1.0 for the 2.1.0 version.
+ KERNEL_2.2.0 for the 2.2.0 version.
2.2. Launching of SALOME
After you set environment you can start SALOME. Go to the KERNEL
- module's binaries directory (KERNEL_2.1.0/bin/salome for the version
- 2.1.0) by using of cd command and then type:
+ module's binaries directory (KERNEL_2.2.0/bin/salome for the version
+ 2.2.0) by using of cd command and then type:
runSalome [<parameters>]
This will start SALOME according to the configuration parameters which
are described into salome.launch file, located in your home directory
( $HOME/.salome_<version-number>/salome.launch ),
- where <version_number> is number of PAL/SALOME version.
+ where <version_number> is number of SALOME version.
If this file does not exists, it is created on the first launch of
SALOME from <KERNEL_ROOT_DIR>/bin/salome/salome.launch.
--killall
Kill SALOME, running on all ports
--modules=<module>,<module>,...,<module>
- Use module(s), possible values are GEOM, SMESH, VISU, MED, SUPERV
+ Use module(s), possible values are GEOM,SMESH,VISU,MED,SUPERV
--embedded=<container>,<container>,...<container>
Start specified container(s) embedded in SALOME Session server
- (i.e. running in the same process), possible values are registry, study,
- moduleCatalog, cppContainer, pyContainer, supervContainer
+ (i.e. running in the same process), possible values are registry,
+ study, moduleCatalog, cppContainer, pyContainer, supervContainer
--standalone=<container>,<container>,...<container>
- Start standalone container(s), possible values are registry, study,
- moduleCatalog, cppContainer, pyContainer, supervContainer
+ Start standalone container(s), possible values are registry,
+ study, moduleCatalog, cppContainer, pyContainer, supervContainer
Note that there is no key which corresponds to the <plugin> tag.
This tag can be used currently only for SMESH module to point external
4. How to build SALOME modules from sources
- If you want to build SALOME modules from sources, install all products
- necessary for the platform and then follow the scenario described below.
- In the sample scenario it is supposed that you have installed SALOME
- modules sources in the /home/salome directory. The name of each module's
- sources directory depends on the version of the platform, for example,
- KERNEL_SRC_2.1.0 for KERNEL module of PAL/SALOME version 2.1.0.
+ This section describes the way how to build SALOME modules manually from
+ sources packages provided with Installation Wizard.
+ 4.1. General procedure
- The order of compilation and installation should be performed in accordance
- with modules dependancies:
+ If you want to build SALOME modules from sources, install all products
+ necessary for the platform and SALOME modules sources.
+ Then follow the scenario described below.
+ In the scenario below it is supposed that you have installed SALOME
+ modules sources in the /home/salome directory. The name of each module
+ sources directory depends on the version of the platform, for example,
+ KERNEL_SRC_2.2.0 for KERNEL module of SALOME version 2.2.0.
+
+ The order of compilation and installation should be performed according
+ to the dependancies between modules:
* KERNEL -> no dependancies
* GEOM -> KERNEL
* NETGENPLUGIN -> KERNEL, SMESH
* GHS3DPLUGIN -> KERNEL, SMESH
- Note: NETGENPLUGIN, GHS3DPLUGIN are optional components. You may skip compiling them if
- you do not plan to use NETGEN and/or GHS3D mesher algorithms.
- In general, each module (except KERNEL, of course) is optional for SALOME.
- If you do not need any module, just do not compile or install it.
+ Note: NETGENPLUGIN, GHS3DPLUGIN are optional components. You may skip
+ compiling them if you do not plan to use NETGEN and/or GHS3D mesher
+ algorithms.
+ In general, each module (except KERNEL, of course) is optional for
+ SALOME. If you do not need any module, just do not compile or install
+ it. But remember that some modules require other ones to be built first
+ (see dependancies table above).
+
+ - go to KERNEL module's sources directory:
+
+ cd /home/salome/KERNEL_SRC_2.2.0
+
+ - set environment variables (use bash or csh script, depending on
+ your shell):
+
+ source salome.csh
+ or
+ source salome.sh
- - go to KERNEL module's sources directory:
+ - create a configuration script by typing
- cd /home/salome/KERNEL_SRC_2.1.0
+ ./build_configure
- - set environment variables (use bash or csh script, depending on
- your shell):
+ - go to the parent directory and create build directory:
- source salome.c[s]h
+ cd ..
+ mkdir KERNEL_build
- - create a configuration script by typing
+ - run configure script which will check the environment and create
+ Makefile files:
- ./build_configure
+ cd KERNEL_build
+ ../KERNEL_SRC_2.2.0/configure --prefix=/home/salome/KERNEL_install
- - go to the parent directory and create build directory:
+ Note, that --prefix option defines the directory where you want to
+ install KERNEL module after 'make install' procedure.
+ More about certain module's configure options you can learn by using
+ --help (-h) parameter.
- cd ..
- mkdir KERNEL_build
+ - build and install KERNEL module:
- - configure the sources and create Makefile files:
+ make
+ make install
- cd KERNEL_build
- ../KERNEL_SRC_2.1.0/configure --prefix=/home/salome/KERNEL_install
+ After you have completed this scenario, KERNEL module is built and
+ installed into /home/salome/KERNEL_install directory.
- Note, that --prefix option defines the directory where you want to install
- KERNEL module after make install procedure.
- More about certain module's configure options you can learn by typing
- --help (-h) parameter.
+ - set environment:
- - build and install KERNEL module:
+ * for bash:
- make
- make install
+ export KERNEL_ROOT_DIR=/home/salome/KERNEL_install
+ or
+ export KERNEL_ROOT_DIR=/home/salome/KERNEL_build
+ (if make install step was not performed).
- After you have completed this scenario, KERNEL module is built and
- installed into /home/salome/KERNEL_install directory.
+ * for csh:
- - set environment:
+ setenv KERNEL_ROOT_DIR /home/salome/KERNEL_install
+ or
+ setenv KERNEL_ROOT_DIR /home/salome/KERNEL_build
+ (if make install step was not performed).
- * for bash:
- export KERNEL_ROOT_DIR=/home/salome/KERNEL_install
- or
- export KERNEL_ROOT_DIR=/home/salome/KERNEL_build
- (if make install step was not performed).
+ - then repeat this scenario for other modules you want to build taking
+ into account the dependancies between modules (see dependancies table
+ above).
- * for csh:
- setenv KERNEL_ROOT_DIR /home/salome/KERNEL_install
- or
- setenv KERNEL_ROOT_DIR /home/salome/KERNEL_build
- (if make install step was not performed).
+ Note: if the compilation fails it may be caused by bad environment.
+ In this case you should check that environment script you use
+ (salome.csh or salome.sh) contains the following lines for each module:
- - then repeat this scenario for other modules you want to build in accordance
- with modules dependancies.
+ * for bash:
- Note: if the compilation fails it may be caused by poor environment.
- In this case you should check that environment script you use (salome.csh
- or salome.sh) contains the following lines for each module:
+ export PATH=${<module>_ROOT_DIR}/bin/salome:${PATH}
+ export LD_LIBRARY_PATH=${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
+ export PYTHONPATH=${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
+ export PYTHONPATH=${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
+ export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
+ export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
- * for bash:
- export PATH=${<module>_ROOT_DIR}/bin/salome:${PATH}
- export LD_LIBRARY_PATH=${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
- export PYTHONPATH=${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
- export PYTHONPATH=${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
- export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
- export PYTHONPATH=${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
+ * for csh:
- * for csh:
- setenv PATH ${<module>_ROOT_DIR}/bin/salome:${PATH}
- setenv LD_LIBRARY_PATH ${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
- setenv PYTHONPATH ${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
- setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
- setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
- setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
+ setenv PATH ${<module>_ROOT_DIR}/bin/salome:${PATH}
+ setenv LD_LIBRARY_PATH ${<module>_ROOT_DIR}/lib/salome:${LD_LIBRARY_PATH}
+ setenv PYTHONPATH ${<module>_ROOT_DIR}/bin/salome:${PYTHONPATH}
+ setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/salome:${PYTHONPATH}
+ setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome:${PYTHONPATH}
+ setenv PYTHONPATH ${<module>_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:${PYTHONPATH}
+ 4.2. Automatic build procedure: build.csh script
+
+ From version 2.2.0 SALOME Installation Wizard provides the script
+ for automatic building of SALOME modules from sources packages:
+ build.csh. It is installed into the top-level target directory
+ (the same directory where env_products.[c]sh files are generated.
+
+ To use this script just install SALOME sources packages with
+ Installation Wizard, then cd to the SALOME isntallation directory
+ and type:
+
+ ./build.csh
+
+ and that's all.
+
+ By default, build.csh only compiles the modules but not installs them,
+ i.e. does not perform 'make install' step.
+ To do this, use -i option or -p <prefix> where <prefix> is target
+ directory.
+
+ If you want to build only some SALOME modules, just pass them as
+ parameters, e.g.:
+
+ ./build.csh -i KERNEL MED GEOM
+
+ The script also provides some other options which specify compiling
+ and installation parameters. You can learn about options by using
+ -h key:
+
+ ./build.csh -h
+
+ When you run build.csh at first time it is not necessary to pass
+ -b, -c parameters. The script detects if build procedure has not yet
+ been performed and runs build_configure, configure procedures
+ in this case.
+
+ Note: for avoiding of collisions it is recommended not to install
+ SALOME binaries packages with Installation Wizard if you plan to build
+ SALOME modules from sources packages or to edit/comment all rows
+ in env_products.csh file concerning binaries packages.
+
+ Note: use -d option carefully because in this case the script removes
+ existing (previously installed) SALOME modules.
+
================================================================================
<document>
- <config version="2.1.0"
- caption="PAL/SALOME v%1"
- copyright="Copyright (C) 2004 CEA"
- license="All right reserved"
+ <config version="2.2.0"
+ caption="SALOME v%1"
+ copyright="<h5>Copyright (C) 2003-2005 OPEN CASCADE,<br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D,<br>LEG, PRINCIPIA R&D, BUREAU VERITAS</h5>"
+ license="<h5>GNU LGPL</h5>"
os="RedHat8.0"/>
<path targetdir="/tmp/salome"
tempdir="/tmp"/>
script="SWIG-1.3.17.sh"/>
<product name="OpenCascade"
version="5.2"
- description="Open CASCADE version 5.2 with patch for PAL/SALOME 2.1.0"
+ description="Open CASCADE version 5.2 with patch for SALOME 2.2.0"
install="install binaries"
supported="install binaries"
disable="false"
description="MED format interface library"
install="install binaries"
supported="install sources,install binaries"
- disable="false"
+ disable="true"
dependancies="gcc,Hdf"
installdiskspace="1067"
temporarydiskspace="7971"
script="med-2.1.6.sh"/>
+ <product name="Med"
+ version="2.2.2"
+ description="MED format interface library"
+ install="install binaries"
+ supported="install sources,install binaries"
+ disable="false"
+ dependancies="gcc,Hdf"
+ installdiskspace="18215"
+ temporarydiskspace="38100"
+ script="med-2.2.2.sh"/>
<product name="Vtk"
version="4.2"
description="Image processing, 3D graphics and visualization software system"
temporarydiskspace="61528"
script="graphviz-1.9.sh"/>
<product name="KERNEL-Src"
- version="2.1.0"
- description="PAL/SALOME platform KERNEL module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform KERNEL module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
- installdiskspace="28107"
+ installdiskspace="28814"
temporarydiskspace="0"
pickupenv="true"
- script="KERNEL_SRC_2.1.0.sh"/>
+ script="KERNEL_SRC_2.2.0.sh"/>
<product name="KERNEL-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform KERNEL module"
+ version="2.2.0"
+ description="Precompiled SALOME platform KERNEL module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
- installdiskspace="51202"
+ installdiskspace="58465"
temporarydiskspace="0"
pickupenv="true"
- script="KERNEL_BIN_2.1.0.sh"/>
+ script="KERNEL_BIN_2.2.0.sh"/>
<product name="GEOM-Src"
- version="2.1.0"
- description="PAL/SALOME platform GEOM modules sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform GEOM modules sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="7569"
+ installdiskspace="10619"
temporarydiskspace="0"
- script="GEOM_SRC_2.1.0.sh"/>
+ script="GEOM_SRC_2.2.0.sh"/>
<product name="GEOM-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform GEOM module"
+ version="2.2.0"
+ description="Precompiled SALOME platform GEOM module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="24695"
+ installdiskspace="31703"
temporarydiskspace="0"
- script="GEOM_BIN_2.1.0.sh"/>
+ script="GEOM_BIN_2.2.0.sh"/>
<product name="MED-Src"
- version="2.1.0"
- description="PAL/SALOME platform MED module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform MED module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="11463"
+ installdiskspace="17744"
temporarydiskspace="0"
- script="MED_SRC_2.1.0.sh"/>
+ script="MED_SRC_2.2.0.sh"/>
<product name="MED-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform MED module"
+ version="2.2.0"
+ description="Precompiled SALOME platform MED module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="27964"
+ installdiskspace="38484"
temporarydiskspace="0"
- script="MED_BIN_2.1.0.sh"/>
+ script="MED_BIN_2.2.0.sh"/>
<product name="SMESH-Src"
- version="2.1.0"
- description="PAL/SALOME platform SMESH module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform SMESH module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,GEOM-Src,MED-Src"
- installdiskspace="8943"
+ installdiskspace="10907"
temporarydiskspace="0"
- script="SMESH_SRC_2.1.0.sh"/>
+ script="SMESH_SRC_2.2.0.sh"/>
<product name="SMESH-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform SMEHS module"
+ version="2.2.0"
+ description="Precompiled SALOME platform SMEHS module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,GEOM-Bin,MED-Bin"
- installdiskspace="30631"
+ installdiskspace="36662"
temporarydiskspace="0"
- script="SMESH_BIN_2.1.0.sh"/>
+ script="SMESH_BIN_2.2.0.sh"/>
<product name="VISU-Src"
- version="2.1.0"
- description="PAL/SALOME platform VISU module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform VISU module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,MED-Src"
- installdiskspace="6572"
+ installdiskspace="6558"
temporarydiskspace="0"
- script="VISU_SRC_2.1.0.sh"/>
+ script="VISU_SRC_2.2.0.sh"/>
<product name="VISU-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform VISU module"
+ version="2.2.0"
+ description="Precompiled SALOME platform VISU module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,MED-Bin"
- installdiskspace="19116"
+ installdiskspace="20372"
temporarydiskspace="0"
- script="VISU_BIN_2.1.0.sh"/>
+ script="VISU_BIN_2.2.0.sh"/>
<product name="SUPERV-Src"
- version="2.1.0"
- description="PAL/SALOME platform SUPERV module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform SUPERV module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="6300"
+ installdiskspace="7476"
temporarydiskspace="0"
- script="SUPERV_SRC_2.1.0.sh"/>
+ script="SUPERV_SRC_2.2.0.sh"/>
<product name="SUPERV-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform SUPERV module"
+ version="2.2.0"
+ description="Precompiled SALOME platform SUPERV module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="52344"
+ installdiskspace="53744"
temporarydiskspace="0"
- script="SUPERV_BIN_2.1.0.sh"/>
+ script="SUPERV_BIN_2.2.0.sh"/>
<product name="COMPONENT-Src"
- version="2.1.0"
- description="PAL/SALOME platform COMPONENT module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform COMPONENT module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="278"
+ installdiskspace="323"
temporarydiskspace="0"
- script="COMPONENT_SRC_2.1.0.sh"/>
+ script="COMPONENT_SRC_2.2.0.sh"/>
<product name="COMPONENT-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform COMPONENT module"
+ version="2.2.0"
+ description="Precompiled SALOME platform COMPONENT module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="13576"
+ installdiskspace="14000"
temporarydiskspace="0"
- script="COMPONENT_BIN_2.1.0.sh"/>
+ script="COMPONENT_BIN_2.2.0.sh"/>
<product name="PYCALCULATOR-Src"
- version="2.1.0"
- description="PAL/SALOME platform PYCALCULATOR module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform PYCALCULATOR module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="28"
+ installdiskspace="147"
temporarydiskspace="0"
- script="PYCALCULATOR_SRC_2.1.0.sh"/>
+ script="PYCALCULATOR_SRC_2.2.0.sh"/>
<product name="PYCALCULATOR-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform PYCALCULATOR module"
+ version="2.2.0"
+ description="Precompiled SALOME platform PYCALCULATOR module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
installdiskspace="27"
temporarydiskspace="0"
- script="PYCALCULATOR_BIN_2.1.0.sh"/>
+ script="PYCALCULATOR_BIN_2.2.0.sh"/>
<product name="NETGENplugin-Src"
- version="2.1.0"
- description="PAL/SALOME platform NETGEN meshing algorithm plugin sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform NETGEN meshing algorithm plugin sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,netgen,KERNEL-Src,SMESH-Src"
installdiskspace="91"
temporarydiskspace="0"
- script="NETGENPLUGIN_SRC_2.1.0.sh"/>
+ script="NETGENPLUGIN_SRC_2.2.0.sh"/>
<product name="NETGENplugin-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform NETGEN meshing algorithm plugin"
+ version="2.2.0"
+ description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,netgen,KERNEL-Bin,SMESH-Bin"
installdiskspace="2467"
temporarydiskspace="0"
- script="NETGENPLUGIN_BIN_2.1.0.sh"/>
+ script="NETGENPLUGIN_BIN_2.2.0.sh"/>
<product name="GHS3Dplugin-Src"
- version="2.1.0"
- description="PAL/SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,KERNEL-Src,SMESH-Src"
- installdiskspace="54"
+ installdiskspace="55"
temporarydiskspace="0"
- script="GHS3DPLUGIN_SRC_2.1.0.sh"/>
+ script="GHS3DPLUGIN_SRC_2.2.0.sh"/>
<product name="GHS3Dplugin-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+ version="2.2.0"
+ description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,KERNEL-Bin,SMESH-Bin"
installdiskspace="142"
temporarydiskspace="0"
- script="GHS3DPLUGIN_BIN_2.1.0.sh"/>
+ script="GHS3DPLUGIN_BIN_2.2.0.sh"/>
+ <product name="Hello-Src"
+ version="2.2.0"
+ description="Example SALOME C++ module: Hello."
+ install="not install"
+ supported="install sources"
+ disable="false"
+ dependancies="gcc,KERNEL-Src"
+ installdiskspace="118"
+ temporarydiskspace="0"
+ script="HELLO1_SRC_2.2.0.sh"/>
+ <product name="PyHello-Src"
+ version="2.2.0"
+ description="Example SALOME Python module: Hello."
+ install="not install"
+ supported="install sources"
+ disable="false"
+ dependancies="gcc,KERNEL-Src"
+ installdiskspace="182"
+ temporarydiskspace="0"
+ script="PYHELLO1_SRC_2.2.0.sh"/>
</document>
<document>
- <config version="2.1.0"
- caption="PAL/SALOME v%1"
- copyright="Copyright (C) 2004 CEA"
- license="All right reserved"
+ <config version="2.2.0"
+ caption="SALOME v%1"
+ copyright="<h5>Copyright (C) 2003-2005 OPEN CASCADE,<br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D,<br>LEG, PRINCIPIA R&D, BUREAU VERITAS</h5>"
+ license="<h5>GNU LGPL</h5>"
os="RedHat8.0"/>
<path targetdir="/tmp/salome"
tempdir="/tmp"/>
script="SWIG-1.3.17.sh"/>
<product name="OpenCascade"
version="5.2"
- description="Open CASCADE version 5.2 with patch for PAL/SALOME 2.1.0"
+ description="Open CASCADE version 5.2 with patch for SALOME 2.2.0"
install="install binaries"
supported="install binaries"
disable="false"
description="MED format interface library"
install="install binaries"
supported="install sources,install binaries"
- disable="false"
+ disable="true"
dependancies="gcc,Hdf"
installdiskspace="1067"
temporarydiskspace="7971"
script="med-2.1.6.sh"/>
+ <product name="Med"
+ version="2.2.2"
+ description="MED format interface library"
+ install="install binaries"
+ supported="install sources,install binaries"
+ disable="false"
+ dependancies="gcc,Hdf"
+ installdiskspace="18215"
+ temporarydiskspace="38100"
+ script="med-2.2.2.sh"/>
<product name="Vtk"
version="4.2"
description="Image processing, 3D graphics and visualization software system"
temporarydiskspace="61528"
script="graphviz-1.9.sh"/>
<product name="KERNEL-Src"
- version="2.1.0"
- description="PAL/SALOME platform KERNEL module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform KERNEL module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
- installdiskspace="28107"
+ installdiskspace="28814"
temporarydiskspace="0"
pickupenv="true"
- script="KERNEL_SRC_2.1.0.sh"/>
+ script="KERNEL_SRC_2.2.0.sh"/>
<product name="KERNEL-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform KERNEL module"
+ version="2.2.0"
+ description="Precompiled SALOME platform KERNEL module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
- installdiskspace="51202"
+ installdiskspace="58465"
temporarydiskspace="0"
pickupenv="true"
- script="KERNEL_BIN_2.1.0.sh"/>
+ script="KERNEL_BIN_2.2.0.sh"/>
<product name="GEOM-Src"
- version="2.1.0"
- description="PAL/SALOME platform GEOM modules sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform GEOM modules sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="7569"
+ installdiskspace="10619"
temporarydiskspace="0"
- script="GEOM_SRC_2.1.0.sh"/>
+ script="GEOM_SRC_2.2.0.sh"/>
<product name="GEOM-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform GEOM module"
+ version="2.2.0"
+ description="Precompiled SALOME platform GEOM module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="24695"
+ installdiskspace="31703"
temporarydiskspace="0"
- script="GEOM_BIN_2.1.0.sh"/>
+ script="GEOM_BIN_2.2.0.sh"/>
<product name="MED-Src"
- version="2.1.0"
- description="PAL/SALOME platform MED module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform MED module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="11463"
+ installdiskspace="17744"
temporarydiskspace="0"
- script="MED_SRC_2.1.0.sh"/>
+ script="MED_SRC_2.2.0.sh"/>
<product name="MED-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform MED module"
+ version="2.2.0"
+ description="Precompiled SALOME platform MED module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="27964"
+ installdiskspace="38484"
temporarydiskspace="0"
- script="MED_BIN_2.1.0.sh"/>
+ script="MED_BIN_2.2.0.sh"/>
<product name="SMESH-Src"
- version="2.1.0"
- description="PAL/SALOME platform SMESH module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform SMESH module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,GEOM-Src,MED-Src"
- installdiskspace="8943"
+ installdiskspace="10907"
temporarydiskspace="0"
- script="SMESH_SRC_2.1.0.sh"/>
+ script="SMESH_SRC_2.2.0.sh"/>
<product name="SMESH-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform SMEHS module"
+ version="2.2.0"
+ description="Precompiled SALOME platform SMEHS module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,GEOM-Bin,MED-Bin"
- installdiskspace="30631"
+ installdiskspace="36662"
temporarydiskspace="0"
- script="SMESH_BIN_2.1.0.sh"/>
+ script="SMESH_BIN_2.2.0.sh"/>
<product name="VISU-Src"
- version="2.1.0"
- description="PAL/SALOME platform VISU module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform VISU module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,MED-Src"
- installdiskspace="6572"
+ installdiskspace="6558"
temporarydiskspace="0"
- script="VISU_SRC_2.1.0.sh"/>
+ script="VISU_SRC_2.2.0.sh"/>
<product name="VISU-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform VISU module"
+ version="2.2.0"
+ description="Precompiled SALOME platform VISU module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,MED-Bin"
- installdiskspace="19116"
+ installdiskspace="20372"
temporarydiskspace="0"
- script="VISU_BIN_2.1.0.sh"/>
+ script="VISU_BIN_2.2.0.sh"/>
<product name="SUPERV-Src"
- version="2.1.0"
- description="PAL/SALOME platform SUPERV module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform SUPERV module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="6300"
+ installdiskspace="7476"
temporarydiskspace="0"
- script="SUPERV_SRC_2.1.0.sh"/>
+ script="SUPERV_SRC_2.2.0.sh"/>
<product name="SUPERV-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform SUPERV module"
+ version="2.2.0"
+ description="Precompiled SALOME platform SUPERV module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="52344"
+ installdiskspace="53744"
temporarydiskspace="0"
- script="SUPERV_BIN_2.1.0.sh"/>
+ script="SUPERV_BIN_2.2.0.sh"/>
<product name="COMPONENT-Src"
- version="2.1.0"
- description="PAL/SALOME platform COMPONENT module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform COMPONENT module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="278"
+ installdiskspace="323"
temporarydiskspace="0"
- script="COMPONENT_SRC_2.1.0.sh"/>
+ script="COMPONENT_SRC_2.2.0.sh"/>
<product name="COMPONENT-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform COMPONENT module"
+ version="2.2.0"
+ description="Precompiled SALOME platform COMPONENT module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="13576"
+ installdiskspace="14000"
temporarydiskspace="0"
- script="COMPONENT_BIN_2.1.0.sh"/>
+ script="COMPONENT_BIN_2.2.0.sh"/>
<product name="PYCALCULATOR-Src"
- version="2.1.0"
- description="PAL/SALOME platform PYCALCULATOR module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform PYCALCULATOR module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="28"
+ installdiskspace="147"
temporarydiskspace="0"
- script="PYCALCULATOR_SRC_2.1.0.sh"/>
+ script="PYCALCULATOR_SRC_2.2.0.sh"/>
<product name="PYCALCULATOR-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform PYCALCULATOR module"
+ version="2.2.0"
+ description="Precompiled SALOME platform PYCALCULATOR module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
installdiskspace="27"
temporarydiskspace="0"
- script="PYCALCULATOR_BIN_2.1.0.sh"/>
+ script="PYCALCULATOR_BIN_2.2.0.sh"/>
<product name="NETGENplugin-Src"
- version="2.1.0"
- description="PAL/SALOME platform NETGEN meshing algorithm plugin sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform NETGEN meshing algorithm plugin sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,netgen,KERNEL-Src,SMESH-Src"
installdiskspace="91"
temporarydiskspace="0"
- script="NETGENPLUGIN_SRC_2.1.0.sh"/>
+ script="NETGENPLUGIN_SRC_2.2.0.sh"/>
<product name="NETGENplugin-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform NETGEN meshing algorithm plugin"
+ version="2.2.0"
+ description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,netgen,KERNEL-Bin,SMESH-Bin"
installdiskspace="2467"
temporarydiskspace="0"
- script="NETGENPLUGIN_BIN_2.1.0.sh"/>
+ script="NETGENPLUGIN_BIN_2.2.0.sh"/>
<product name="GHS3Dplugin-Src"
- version="2.1.0"
- description="PAL/SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,KERNEL-Src,SMESH-Src"
- installdiskspace="54"
+ installdiskspace="55"
temporarydiskspace="0"
- script="GHS3DPLUGIN_SRC_2.1.0.sh"/>
+ script="GHS3DPLUGIN_SRC_2.2.0.sh"/>
<product name="GHS3Dplugin-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+ version="2.2.0"
+ description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,KERNEL-Bin,SMESH-Bin"
installdiskspace="142"
temporarydiskspace="0"
- script="GHS3DPLUGIN_BIN_2.1.0.sh"/>
+ script="GHS3DPLUGIN_BIN_2.2.0.sh"/>
+ <product name="Hello-Src"
+ version="2.2.0"
+ description="Example SALOME C++ module: Hello."
+ install="not install"
+ supported="install sources"
+ disable="false"
+ dependancies="gcc,KERNEL-Src"
+ installdiskspace="118"
+ temporarydiskspace="0"
+ script="HELLO1_SRC_2.2.0.sh"/>
+ <product name="PyHello-Src"
+ version="2.2.0"
+ description="Example SALOME Python module: Hello."
+ install="not install"
+ supported="install sources"
+ disable="false"
+ dependancies="gcc,KERNEL-Src"
+ installdiskspace="182"
+ temporarydiskspace="0"
+ script="PYHELLO1_SRC_2.2.0.sh"/>
</document>
<document>
- <config version="2.1.0"
- caption="PAL/SALOME v%1"
- copyright="Copyright (C) 2004 CEA"
- license="All right reserved"
+ <config version="2.2.0"
+ caption="SALOME v%1"
+ copyright="<h5>Copyright (C) 2003-2005 OPEN CASCADE,<br>EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D,<br>LEG, PRINCIPIA R&D, BUREAU VERITAS</h5>"
+ license="<h5>GNU LGPL</h5>"
os="RedHat8.0"/>
<path targetdir="/tmp/salome"
tempdir="/tmp"/>
script="SWIG-1.3.17.sh"/>
<product name="OpenCascade"
version="5.2"
- description="Open CASCADE version 5.2 with patch for PAL/SALOME 2.1.0"
+ description="Open CASCADE version 5.2 with patch for SALOME 2.2.0"
install="install binaries"
supported="install binaries"
disable="false"
description="MED format interface library"
install="install binaries"
supported="install sources,install binaries"
- disable="false"
+ disable="true"
dependancies="gcc,Hdf"
installdiskspace="1067"
temporarydiskspace="7971"
script="med-2.1.6.sh"/>
+ <product name="Med"
+ version="2.2.2"
+ description="MED format interface library"
+ install="install binaries"
+ supported="install sources,install binaries"
+ disable="false"
+ dependancies="gcc,Hdf"
+ installdiskspace="18215"
+ temporarydiskspace="38100"
+ script="med-2.2.2.sh"/>
<product name="Vtk"
version="4.2"
description="Image processing, 3D graphics and visualization software system"
temporarydiskspace="61528"
script="graphviz-1.9.sh"/>
<product name="KERNEL-Src"
- version="2.1.0"
- description="PAL/SALOME platform KERNEL module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform KERNEL module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
- installdiskspace="28107"
+ installdiskspace="28814"
temporarydiskspace="0"
pickupenv="true"
- script="KERNEL_SRC_2.1.0.sh"/>
+ script="KERNEL_SRC_2.2.0.sh"/>
<product name="KERNEL-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform KERNEL module"
+ version="2.2.0"
+ description="Precompiled SALOME platform KERNEL module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Sip,PyQt,Doxygen,Graphviz,HappyDoc"
- installdiskspace="51202"
+ installdiskspace="58465"
temporarydiskspace="0"
pickupenv="true"
- script="KERNEL_BIN_2.1.0.sh"/>
+ script="KERNEL_BIN_2.2.0.sh"/>
<product name="GEOM-Src"
- version="2.1.0"
- description="PAL/SALOME platform GEOM modules sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform GEOM modules sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="7569"
+ installdiskspace="10619"
temporarydiskspace="0"
- script="GEOM_SRC_2.1.0.sh"/>
+ script="GEOM_SRC_2.2.0.sh"/>
<product name="GEOM-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform GEOM module"
+ version="2.2.0"
+ description="Precompiled SALOME platform GEOM module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="24695"
+ installdiskspace="31703"
temporarydiskspace="0"
- script="GEOM_BIN_2.1.0.sh"/>
+ script="GEOM_BIN_2.2.0.sh"/>
<product name="MED-Src"
- version="2.1.0"
- description="PAL/SALOME platform MED module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform MED module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="11463"
+ installdiskspace="17744"
temporarydiskspace="0"
- script="MED_SRC_2.1.0.sh"/>
+ script="MED_SRC_2.2.0.sh"/>
<product name="MED-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform MED module"
+ version="2.2.0"
+ description="Precompiled SALOME platform MED module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="27964"
+ installdiskspace="38484"
temporarydiskspace="0"
- script="MED_BIN_2.1.0.sh"/>
+ script="MED_BIN_2.2.0.sh"/>
<product name="SMESH-Src"
- version="2.1.0"
- description="PAL/SALOME platform SMESH module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform SMESH module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,GEOM-Src,MED-Src"
- installdiskspace="8943"
+ installdiskspace="10907"
temporarydiskspace="0"
- script="SMESH_SRC_2.1.0.sh"/>
+ script="SMESH_SRC_2.2.0.sh"/>
<product name="SMESH-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform SMEHS module"
+ version="2.2.0"
+ description="Precompiled SALOME platform SMEHS module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,boost,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,GEOM-Bin,MED-Bin"
- installdiskspace="30631"
+ installdiskspace="36662"
temporarydiskspace="0"
- script="SMESH_BIN_2.1.0.sh"/>
+ script="SMESH_BIN_2.2.0.sh"/>
<product name="VISU-Src"
- version="2.1.0"
- description="PAL/SALOME platform VISU module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform VISU module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src,MED-Src"
- installdiskspace="6572"
+ installdiskspace="6558"
temporarydiskspace="0"
- script="VISU_SRC_2.1.0.sh"/>
+ script="VISU_SRC_2.2.0.sh"/>
<product name="VISU-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform VISU module"
+ version="2.2.0"
+ description="Precompiled SALOME platform VISU module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Qwt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin,MED-Bin"
- installdiskspace="19116"
+ installdiskspace="20372"
temporarydiskspace="0"
- script="VISU_BIN_2.1.0.sh"/>
+ script="VISU_BIN_2.2.0.sh"/>
<product name="SUPERV-Src"
- version="2.1.0"
- description="PAL/SALOME platform SUPERV module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform SUPERV module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="6300"
+ installdiskspace="7476"
temporarydiskspace="0"
- script="SUPERV_SRC_2.1.0.sh"/>
+ script="SUPERV_SRC_2.2.0.sh"/>
<product name="SUPERV-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform SUPERV module"
+ version="2.2.0"
+ description="Precompiled SALOME platform SUPERV module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="52344"
+ installdiskspace="53744"
temporarydiskspace="0"
- script="SUPERV_BIN_2.1.0.sh"/>
+ script="SUPERV_BIN_2.2.0.sh"/>
<product name="COMPONENT-Src"
- version="2.1.0"
- description="PAL/SALOME platform COMPONENT module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform COMPONENT module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="278"
+ installdiskspace="323"
temporarydiskspace="0"
- script="COMPONENT_SRC_2.1.0.sh"/>
+ script="COMPONENT_SRC_2.2.0.sh"/>
<product name="COMPONENT-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform COMPONENT module"
+ version="2.2.0"
+ description="Precompiled SALOME platform COMPONENT module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
- installdiskspace="13576"
+ installdiskspace="14000"
temporarydiskspace="0"
- script="COMPONENT_BIN_2.1.0.sh"/>
+ script="COMPONENT_BIN_2.2.0.sh"/>
<product name="PYCALCULATOR-Src"
- version="2.1.0"
- description="PAL/SALOME platform PYCALCULATOR module sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform PYCALCULATOR module sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Src"
- installdiskspace="28"
+ installdiskspace="147"
temporarydiskspace="0"
- script="PYCALCULATOR_SRC_2.1.0.sh"/>
+ script="PYCALCULATOR_SRC_2.2.0.sh"/>
<product name="PYCALCULATOR-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform PYCALCULATOR module"
+ version="2.2.0"
+ description="Precompiled SALOME platform PYCALCULATOR module"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,tcltk,OpenCascade,Python,Numeric,Swig,Qt,Hdf,Med,Vtk,OmniORB,Doxygen,Graphviz,HappyDoc,KERNEL-Bin"
installdiskspace="27"
temporarydiskspace="0"
- script="PYCALCULATOR_BIN_2.1.0.sh"/>
+ script="PYCALCULATOR_BIN_2.2.0.sh"/>
<product name="NETGENplugin-Src"
- version="2.1.0"
- description="PAL/SALOME platform NETGEN meshing algorithm plugin sources"
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform NETGEN meshing algorithm plugin sources"
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,netgen,KERNEL-Src,SMESH-Src"
installdiskspace="91"
temporarydiskspace="0"
- script="NETGENPLUGIN_SRC_2.1.0.sh"/>
+ script="NETGENPLUGIN_SRC_2.2.0.sh"/>
<product name="NETGENplugin-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform NETGEN meshing algorithm plugin"
+ version="2.2.0"
+ description="Precompiled SALOME platform NETGEN meshing algorithm plugin"
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,netgen,KERNEL-Bin,SMESH-Bin"
installdiskspace="2467"
temporarydiskspace="0"
- script="NETGENPLUGIN_BIN_2.1.0.sh"/>
+ script="NETGENPLUGIN_BIN_2.2.0.sh"/>
<product name="GHS3Dplugin-Src"
- version="2.1.0"
- description="PAL/SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
- install="install sources"
+ version="2.2.0"
+ description="SALOME platform GHS3D meshing algorithm plugin sources. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+ install="not install"
supported="install sources"
disable="false"
dependancies="gcc,KERNEL-Src,SMESH-Src"
- installdiskspace="54"
+ installdiskspace="55"
temporarydiskspace="0"
- script="GHS3DPLUGIN_SRC_2.1.0.sh"/>
+ script="GHS3DPLUGIN_SRC_2.2.0.sh"/>
<product name="GHS3Dplugin-Bin"
- version="2.1.0"
- description="Precompiled PAL/SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
+ version="2.2.0"
+ description="Precompiled SALOME platform GHS3D meshing algorithm plugin. For use this plugin you should add the path to ghs3d to your PATH environment variable."
install="install binaries"
supported="install binaries"
disable="false"
dependancies="gcc,KERNEL-Bin,SMESH-Bin"
installdiskspace="142"
temporarydiskspace="0"
- script="GHS3DPLUGIN_BIN_2.1.0.sh"/>
+ script="GHS3DPLUGIN_BIN_2.2.0.sh"/>
+ <product name="Hello-Src"
+ version="2.2.0"
+ description="Example SALOME C++ module: Hello."
+ install="not install"
+ supported="install sources"
+ disable="false"
+ dependancies="gcc,KERNEL-Src"
+ installdiskspace="118"
+ temporarydiskspace="0"
+ script="HELLO1_SRC_2.2.0.sh"/>
+ <product name="PyHello-Src"
+ version="2.2.0"
+ description="Example SALOME Python module: Hello."
+ install="not install"
+ supported="install sources"
+ disable="false"
+ dependancies="gcc,KERNEL-Src"
+ installdiskspace="182"
+ temporarydiskspace="0"
+ script="PYHELLO1_SRC_2.2.0.sh"/>
</document>
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${COMPONENT_ROOT_DIR}" ]; then
- check_lib_version VERSION ${COMPONENT_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${COMPONENT_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/COMPONENTbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentBin" ; fi
-export PRODUCT="COMPONENT_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${COMPONENT_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${COMPONENT_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${COMPONENT_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${COMPONENT_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${COMPONENT_ROOT_DIR}/bin/salome:\${COMPONENT_ROOT_DIR}/lib/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome:\${COMPONENT_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/COMPONENTbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentBin" ; fi
+export PRODUCT="COMPONENT_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${COMPONENT_SRC_DIR}" ]; then
- check_lib_version VERSION ${COMPONENT_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${COMPONENT_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export COMPONENT_SRC_DIR=${COMPONENT_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/COMPONENTsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentSrc" ; fi
-export PRODUCT="COMPONENT_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${COMPONENT_SRC_DIR}" ]; then
+ check_lib_version VERSION ${COMPONENT_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${COMPONENT_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export COMPONENT_SRC_DIR=${COMPONENT_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/COMPONENTsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="ComponentSrc" ; fi
+export PRODUCT="COMPONENT_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${GEOM_ROOT_DIR}" ]; then
- check_lib_version VERSION ${GEOM_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${GEOM_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GEOMbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomBin" ; fi
-export PRODUCT="GEOM_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${GEOM_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${GEOM_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${GEOM_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${GEOM_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${GEOM_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GEOM_ROOT_DIR}/bin/salome:\${GEOM_ROOT_DIR}/lib/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome:\${GEOM_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GEOMbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomBin" ; fi
+export PRODUCT="GEOM_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${GEOM_SRC_DIR}" ]; then
- check_lib_version VERSION ${GEOM_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${GEOM_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GEOM_SRC_DIR=${GEOM_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GEOMsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomSrc" ; fi
-export PRODUCT="GEOM_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${GEOM_SRC_DIR}" ]; then
+ check_lib_version VERSION ${GEOM_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${GEOM_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GEOM_SRC_DIR=${GEOM_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GEOMsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GeomSrc" ; fi
+export PRODUCT="GEOM_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${GHS3DPLUGIN_ROOT_DIR}" ]; then
- check_lib_version VERSION ${GHS3DPLUGIN_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${GHS3DPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
- return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINBin" ; fi
-export PRODUCT="GHS3DPLUGIN_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${GHS3DPLUGIN_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${GHS3DPLUGIN_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${GHS3DPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+ return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${GHS3DPLUGIN_ROOT_DIR}/lib/salome:\${GHS3DPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINBin" ; fi
+export PRODUCT="GHS3DPLUGIN_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${GHS3DPLUGIN_SRC_DIR}" ]; then
- check_lib_version VERSION ${GHS3DPLUGIN_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${GHS3DPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
- return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export GHS3DPLUGIN_SRC_DIR=${GHS3DPLUGIN_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINSrc" ; fi
-export PRODUCT="GHS3DPLUGIN_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${GHS3DPLUGIN_SRC_DIR}" ]; then
+ check_lib_version VERSION ${GHS3DPLUGIN_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${GHS3DPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+ return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export GHS3DPLUGIN_SRC_DIR=${GHS3DPLUGIN_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/GHS3DPLUGINsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="GHS3DPLUGINSrc" ; fi
+export PRODUCT="GHS3DPLUGIN_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+#we don't know anything about version
+return 0
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export HELLO1_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export HELLO1_SRC_DIR=${HELLO1_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/HELLO1sourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="Hello1Src" ; fi
+export PRODUCT="HELLO1_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${KERNEL_ROOT_DIR}" ]; then
- check_lib_version VERSION ${KERNEL_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${KERNEL_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/KERNELbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-pickup_env()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelBin" ; fi
-export PRODUCT="KERNEL_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${KERNEL_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${KERNEL_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${KERNEL_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${KERNEL_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${KERNEL_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${KERNEL_ROOT_DIR}/bin/salome:\${KERNEL_ROOT_DIR}/lib/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome:\${KERNEL_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/KERNELbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+pickup_env()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelBin" ; fi
+export PRODUCT="KERNEL_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${KERNEL_SRC_DIR}" ]; then
- check_lib_version VERSION ${KERNEL_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${KERNEL_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export KERNEL_SRC_DIR=${KERNEL_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/KERNELsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-pickup_env()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelSrc" ; fi
-export PRODUCT="KERNEL_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${KERNEL_SRC_DIR}" ]; then
+ check_lib_version VERSION ${KERNEL_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${KERNEL_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export KERNEL_SRC_DIR=${KERNEL_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/KERNELsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+pickup_env()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE} ${PRODUCT_DIR}
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="KernelSrc" ; fi
+export PRODUCT="KERNEL_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${MED_ROOT_DIR}" ]; then
- check_lib_version VERSION ${MED_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${MED_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/MEDbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedBin" ; fi
-export PRODUCT="MED_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${MED_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${MED_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${MED_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${MED_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${MED_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${MED_ROOT_DIR}/bin/salome:\${MED_ROOT_DIR}/lib/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome:\${MED_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/MEDbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedBin" ; fi
+export PRODUCT="MED_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${MED_SRC_DIR}" ]; then
- check_lib_version VERSION ${MED_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${MED_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export MED_SRC_DIR=${MED_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/MEDsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedSrc" ; fi
-export PRODUCT="MED_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${MED_SRC_DIR}" ]; then
+ check_lib_version VERSION ${MED_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${MED_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED_SRC_DIR=${MED_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/MEDsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="MedSrc" ; fi
+export PRODUCT="MED_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${NETGENPLUGIN_ROOT_DIR}" ]; then
- check_lib_version VERSION ${NETGENPLUGIN_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${NETGENPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
- return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINBin" ; fi
-export PRODUCT="NETGENPLUGIN_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${NETGENPLUGIN_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${NETGENPLUGIN_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${NETGENPLUGIN_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+ return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export LD_LIBRARY_PATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${NETGENPLUGIN_ROOT_DIR}/lib/salome:\${NETGENPLUGIN_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINBin" ; fi
+export PRODUCT="NETGENPLUGIN_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${NETGENPLUGIN_SRC_DIR}" ]; then
- check_lib_version VERSION ${NETGENPLUGIN_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${NETGENPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
- return 0
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENPLUGIN_SRC_DIR=${NETGENPLUGIN_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINSrc" ; fi
-export PRODUCT="NETGENPLUGIN_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${NETGENPLUGIN_SRC_DIR}" ]; then
+ check_lib_version VERSION ${NETGENPLUGIN_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${NETGENPLUGIN_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+ return 0
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export NETGENPLUGIN_SRC_DIR=${NETGENPLUGIN_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/NETGENPLUGINsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="NETGENPLUGINSrc" ; fi
+export PRODUCT="NETGENPLUGIN_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${PYCALCULATOR_ROOT_DIR}" ]; then
- check_lib_version VERSION ${PYCALCULATOR_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${PYCALCULATOR_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
-export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
-export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorBin" ; fi
-export PRODUCT="PYCALCULATOR_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${PYCALCULATOR_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${PYCALCULATOR_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${PYCALCULATOR_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
+export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PATH}
+export PYTHONPATH=\${PYCALCULATOR_ROOT_DIR}/bin/salome:\${PYCALCULATOR_ROOT_DIR}/lib/python2.2/site-packages/salome:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorBin" ; fi
+export PRODUCT="PYCALCULATOR_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${PYCALCULATOR_SRC_DIR}" ]; then
- check_lib_version VERSION ${PYCALCULATOR_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${PYCALCULATOR_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export PYCALCULATOR_SRC_DIR=${PYCALCULATOR_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorSrc" ; fi
-export PRODUCT="PYCALCULATOR_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${PYCALCULATOR_SRC_DIR}" ]; then
+ check_lib_version VERSION ${PYCALCULATOR_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${PYCALCULATOR_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYCALCULATOR_SRC_DIR=${PYCALCULATOR_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/PYCALCULATORsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="PyCalculatorSrc" ; fi
+export PRODUCT="PYCALCULATOR_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+#we don't know anything about version
+return 0
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYHELLO1_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export PYHELLO1_SRC_DIR=${PYHELLO1_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/PYHELLO1sourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="Hello1Src" ; fi
+export PRODUCT="PYHELLO1_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${SMESH_ROOT_DIR}" ]; then
- check_lib_version VERSION ${SMESH_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${SMESH_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SMESHbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshBin" ; fi
-export PRODUCT="SMESH_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${SMESH_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${SMESH_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${SMESH_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SMESH_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SMESH_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SMESH_ROOT_DIR}/bin/salome:\${SMESH_ROOT_DIR}/lib/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SMESH_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SMESHbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshBin" ; fi
+export PRODUCT="SMESH_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${SMESH_SRC_DIR}" ]; then
- check_lib_version VERSION ${SMESH_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${SMESH_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SMESH_SRC_DIR=${SMESH_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SMESHsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshSrc" ; fi
-export PRODUCT="SMESH_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${SMESH_SRC_DIR}" ]; then
+ check_lib_version VERSION ${SMESH_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${SMESH_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SMESH_SRC_DIR=${SMESH_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SMESHsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SmeshSrc" ; fi
+export PRODUCT="SMESH_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${SUPERV_ROOT_DIR=}" ]; then
- check_lib_version VERSION ${SUPERV_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${SUPERV_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SUPERVbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervBin" ; fi
-export PRODUCT="SUPERV_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${SUPERV_ROOT_DIR=}" ]; then
+ check_lib_version VERSION ${SUPERV_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${SUPERV_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${SUPERV_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${SUPERV_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${SUPERV_ROOT_DIR}/bin/salome:\${SUPERV_ROOT_DIR}/lib/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome:\${SUPERV_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SUPERVbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervBin" ; fi
+export PRODUCT="SUPERV_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${SUPERV_SRC_DIR}" ]; then
- check_lib_version VERSION ${SUPERV_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${SUPERV_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export SUPERV_SRC_DIR=${SUPERV_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/SUPERVsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervSrc" ; fi
-export PRODUCT="SUPERV_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${SUPERV_SRC_DIR}" ]; then
+ check_lib_version VERSION ${SUPERV_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${SUPERV_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export SUPERV_SRC_DIR=${SUPERV_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/SUPERVsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="SupervSrc" ; fi
+export PRODUCT="SUPERV_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${VISU_ROOT_DIR}" ]; then
- check_lib_version VERSION ${VISU_ROOT_DIR}/bin/salome
- if [ "$?" -eq "0" ]; then
- ver=`cat ${VISU_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
-export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
-export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
-export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-return 1
-}
-
-install_binary()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/VISUbinariesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuBin" ; fi
-export PRODUCT="VISU_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${VISU_ROOT_DIR}" ]; then
+ check_lib_version VERSION ${VISU_ROOT_DIR}/bin/salome
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${VISU_ROOT_DIR}/bin/salome/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_ROOT_DIR=\${INSTALL_ROOT}/${PRODUCT}
+export PATH=\${VISU_ROOT_DIR}/bin/salome:\${PATH}
+export LD_LIBRARY_PATH=\${VISU_ROOT_DIR}/lib/salome:\${LD_LIBRARY_PATH}
+export PYTHONPATH=\${VISU_ROOT_DIR}/bin/salome:\${VISU_ROOT_DIR}/lib/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome:\${VISU_ROOT_DIR}/lib/python2.2/site-packages/salome/shared_modules:\${PYTHONPATH}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+return 1
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/VISUbinariesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuBin" ; fi
+export PRODUCT="VISU_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
+++ /dev/null
-#!/bin/sh
-
-check_version(){
-if [ -n "${VISU_SRC_DIR}" ]; then
- check_lib_version VERSION ${VISU_SRC_DIR}/bin
- if [ "$?" -eq "0" ]; then
- ver=`cat ${VISU_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
- if [ "$ver" = "2.1.0" ]; then
- return 0
- fi
- fi
-fi
-return 1
-}
-
-print_env(){
-cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
-##
-EOF
-(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
-}
-
-# looks for the native product and collects it's environment (used by make_env())
-try_native(){
-check_version
-if [ $? -eq 0 ] ; then
- cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
-#$DELIM ${PRODUCT_TYPE} $DELIM
-export VISU_SRC_DIR=${VISU_SRC_DIR}
-##
-EOF
- make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
- return 0
-fi
-return 1;
-}
-
-try_preinstalled(){
-try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-return $?
-}
-
-install_source()
-{
-make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
-source ${INSTALL_WORK}/$SHRC
-
-check_jb tar xfz ${SOURCE_DIR}/VISUsourcesV2.1.0.tar.gz -C ${INSTALL_ROOT}
-
-print_env
-}
-
-install_binary()
-{
-return 1
-}
-
-export PROCEDURE=$1;
-export INSTALL_WORK=$2;
-export SOURCE_DIR=$3;
-export INSTALL_ROOT=$4;
-export PRODUCT_SEQUENCE=$5;
-if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuSrc" ; fi
-export PRODUCT="VISU_SRC_2.1.0"
-export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
-export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
-source ./common.sh
-$PROCEDURE
--- /dev/null
+#!/bin/sh
+
+check_version(){
+if [ -n "${VISU_SRC_DIR}" ]; then
+ check_lib_version VERSION ${VISU_SRC_DIR}/bin
+ if [ "$?" -eq "0" ]; then
+ ver=`cat ${VISU_SRC_DIR}/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]' `
+ if [ "$ver" = "2.2.0" ]; then
+ return 0
+ fi
+ fi
+fi
+return 1
+}
+
+print_env(){
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_SRC_DIR=\${INSTALL_ROOT}/${PRODUCT}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export VISU_SRC_DIR=${VISU_SRC_DIR}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/VISUsourcesV2.2.0.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+install_binary()
+{
+return 1
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="VisuSrc" ; fi
+export PRODUCT="VISU_SRC_2.2.0"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/${PRODUCT}
+source ./common.sh
+$PROCEDURE
export PATH=\${VTKHOME}/bin:\${PATH}
export LD_LIBRARY_PATH=\${VTKHOME}/lib/vtk:\${LD_LIBRARY_PATH}
export PYTHONPATH=\${VTKHOME}/lib/vtk:\${VTKHOME}/lib/python2.2/site-packages/vtk_python:\${PYTHONPATH}
+export TCLLIBPATH="\${VTKHOME}/lib/vtk/tcl \${TCLLIBPATH}"
##
EOF
(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
export PATH=${path}
export LD_LIBRARY_PATH=${ld_library_path}
export PYTHONPATH=${python_path}
+export TCLLIBPATH="\${VTKHOME}/lib/vtk/tcl \${TCLLIBPATH}"
##
EOF
make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
--- /dev/null
+#! /bin/csh -f
+##################################################################################################
+# Name : build.csh
+# Description: Build and install SALOME2 modules from sources
+# Author : Vadim SANDLER (VSR), Open CASCADE S.A.
+# Created : 27.01.2005
+##################################################################################################
+
+set is_build_configure=0
+set is_configure=0
+set is_delete=0
+set verbose_level=2
+set params=""
+set b_params=""
+set modules=(KERNEL GEOM MED SMESH VISU SUPERV NETGENPLUGIN GHS3DPLUGIN COMPONENT PYCALCULATOR)
+set optim=""
+set is_install=0
+set is_help=0
+set prefix=""
+
+#########################################################
+# parse parameters
+#########################################################
+while ( ${%1} > 0 )
+ if ( "$1" == "-b" ) then
+ set is_build_configure=1
+ set is_configure=1
+ else if ( "$1" == "-c" ) then
+ set is_configure=1
+ else if ( "$1" == "-d" ) then
+ set is_delete=1
+ else if ( "$1" == "-o" ) then
+ set optim="--enable-production=yes --disable-debug"
+ else if ( "$1" == "-i" ) then
+ set is_install=1
+ else if ( "$1" == "-v" ) then
+ shift
+ set verbose_level=$1
+ else if ( "$1" == "-p" ) then
+ shift
+ set is_install=1
+ set prefix=$1
+ else if ( "$1" == "-h" ) then
+ set is_help=1
+ else
+ set ckt=`echo ${modules} | grep $1`
+ if ( "$ckt" != "" ) then
+ set params="$params $1"
+ else
+ set b_params="$b_params $1"
+ echo "Warning: Unknown module: $1. Skipping."
+ endif
+ endif
+ shift
+end
+
+#########################################################
+# if -h option is given - print help info and exit
+#########################################################
+if ( $is_help == 1 ) then
+echo ""
+echo ""
+echo "Description:"
+echo " Builds given SALOME2 modules by performing make and (optionally) make install commands"
+echo ""
+echo "Usage:"
+echo " build.csh [ <option> ] ... [ <module> [ <module> ... ] ]"
+echo ""
+echo "<module> Modules to build, separated by space(s)."
+echo " If no modules are given - all SALOME2 modules are assumed."
+echo " Note, that modules given in command lines are automatically sorted in such order"
+echo " to support correct modules dependencies."
+echo ""
+echo "Options:"
+echo "-b Perform build_configure command for all given modules."
+echo " This option forces configure (-c) key to be set. Default is off."
+echo ""
+echo "-c Perform configure command for all given modules. Default is off."
+echo ""
+echo "-d Delete build directories before calling configure, to enforce full rebuild"
+echo " (and reinstall if -i or -p option is used) of module."
+echo " Use this option carefully."
+echo ""
+echo "-o Build sources in optimized mode. Default is off that means debug mode."
+echo " Use this option together with -c or -b."
+echo " This option can require -d option to be set (to ensure that previously"
+echo " created build directories are removed to enforce rebuild in optimized mode)."
+echo ""
+echo "-i Performs make install step. Default is off that means only make step."
+echo ""
+echo "-p <prefix> Define the directory where to install modules after compilation."
+echo " By default the directory where compilation is performed is used."
+echo ""
+echo "-v <level> Verbose level (0-2, default 2): print information on build status:"
+echo " 0: only 'make' errors"
+echo " 1: 0 + compiler and other errors (including build_configure, configure)"
+echo " 2: 1 + compiler and other warnings "
+echo ""
+echo "-h Prints this help information."
+echo ""
+echo "Note: If no keys are given script just performs make step."
+echo ""
+echo "Example:"
+echo " ./build.csh -o -i -b KERNEL MED GEOM"
+echo ""
+echo " This will make KERNEL, GEOM and MED modules: build_configure, configure, make"
+echo " and install procedures will be performed for all specified modules."
+echo " The modules will be built in the optimized mode"
+echo ""
+exit
+endif
+
+#########################################################
+# sort modules in proper order according to the dependancies
+#########################################################
+if ( "${params}" != "" ) then
+ set xparams=""
+ foreach module (${modules})
+ set ckt=`echo ${params} | grep ${module}`
+ if ( "$ckt" != "" ) then
+ set xparams="$xparams $module"
+ endif
+ end
+ set modules=($xparams)
+else
+ if ( "${b_params}" != "" ) then
+ echo "Nothing to be built. Exiting."
+ exit
+ endif
+endif
+
+echo "The following SALOME packages will be built:"
+echo $modules
+
+#########################################################
+# set environment
+#########################################################
+set env_script=`dirname $0`/env_products.csh
+if ( -e $env_script ) then
+ echo "Setting environment"
+ source $env_script
+else
+ echo "Warning! Environment is not set: file env_products.csh is not found."
+endif
+
+set BUILD_DIR=${PWD}
+set LOG_DIR=${BUILD_DIR}/LOGS
+
+#########################################################
+# create log directory
+#########################################################
+if ( ! -e ${LOG_DIR} ) then
+ mkdir -p ${LOG_DIR}
+endif
+
+echo "==========================================================================="
+echo "Starting SALOME build at `date`"
+
+#########################################################
+# loop for all given modules
+#########################################################
+foreach module (${modules})
+ echo "==========================================================================="
+ echo "Processing ${module} module"
+
+ set module_src=`printenv ${module}_SRC_DIR`
+ set module_build=${BUILD_DIR}/${module}_BUILD
+
+ if ( ${module_src} != "" ) then
+ set add_keys=""
+ cd ${BUILD_DIR}
+ #########################################################
+ # check if sources directory exists
+ #########################################################
+ if ( ! -e ${module_src} ) then
+ echo "Error! Can't find sources directory: ${module_src} does not exist."
+ continue
+ endif
+ #########################################################
+ # check if configure script exists
+ #########################################################
+ set cfg_exist=0
+ if ( -e ${module_src}/configure ) then
+ set cfg_exist=1
+ endif
+ #########################################################
+ # perform build_configure if -b flag is given or if
+ # configure script does not exist (first compilation?)
+ #########################################################
+ if ( $is_build_configure == 1 || $cfg_exist == 0 ) then
+ echo "------- Build configure ---------"
+ #########################################################
+ # if build_configure script is not found, omit the module
+ #########################################################
+ if ( ! -e ${module_src}/build_configure ) then
+ echo "Error! Nothing to build in ${module_src}. Skipping module."
+ continue
+ endif
+ #########################################################
+ # call build_configure
+ #########################################################
+ cd ${module_src}
+ ./build_configure >& ${LOG_DIR}/build_configure_${module}.log
+ #########################################################
+ # echo possible errors
+ #########################################################
+ if ( $verbose_level > 0 ) then
+ cat ${LOG_DIR}/build_configure_${module}.log | grep ": error:"
+ endif
+ endif
+ #########################################################
+ # deleting build directory if -d flag is given
+ #########################################################
+ if ( -e ${module_build} && $is_delete == 1 ) then
+ echo "Deleting ${module_build}"
+ rm -rf ${module_build}
+ endif
+ #########################################################
+ # creating build directory if it does not exist
+ #########################################################
+ if ( ! -e ${module_build} ) then
+ mkdir -p ${module_build}
+ endif
+ cd ${module_build}
+ #########################################################
+ # check if top Makefile exists in build directory, i.e.
+ # is it necessary to run configure script
+ #########################################################
+ set mkfile_exist=0
+ if ( -e ${module_build}/Makefile ) then
+ set mkfile_exist=1
+ endif
+ #########################################################
+ # define installation directory (by using module's version
+ # number); default is a build directory
+ #########################################################
+ set vx=""
+ if ( -e ${module_src}/bin/VERSION ) then
+ set vx=`awk -F: '{split ( $2,x," " ) ; print x[1];}' ${module_src}/bin/VERSION`
+ endif
+ set px=${BUILD_DIR}/${module}
+ if ( "$prefix" != "" ) then
+ set px=$prefix/${module}
+ endif
+ if ( "$vx" != "" ) then
+ set px="$px"_"$vx"
+ endif
+ #########################################################
+ # perform configure if -c flag is given or if
+ # Makefile does not exist (first compilation?)
+ #########################################################
+ if ( $is_configure == 1 || $mkfile_exist == 0) then
+ echo "------- Configure ---------------"
+ if ( "${module}" == "NETGENPLUGIN" && ($?NETGENHOME) ) then
+ set add_keys="--with-netgen=${NETGENHOME}"
+ endif
+ ${module_src}/configure --prefix=$px ${optim} ${add_keys} >& ${LOG_DIR}/configure_${module}.log
+ #########################################################
+ # echo possible errors
+ #########################################################
+ if ( $verbose_level > 0 ) then
+ cat ${LOG_DIR}/configure_${module}.log | grep ": error:"
+ endif
+ if ( $verbose_level > 1 ) then
+ cat ${LOG_DIR}/configure_${module}.log | grep ": WARNING:"
+ endif
+ endif
+ #########################################################
+ # perform make
+ #########################################################
+ echo "------- Make --------------------"
+ #########################################################
+ # first clear dependencies
+ #########################################################
+ find . -name ".dep*" -exec rm -rf {} \; >& /dev/null
+ make >& ${LOG_DIR}/make_${module}.log
+ set sts=$status
+ #########################################################
+ # if make step is successful set the ${module}_ROOT_DIR
+ # environment variable
+ #########################################################
+ if ( $sts == 0 ) then
+ setenv ${module}_ROOT_DIR ${module_build}
+ endif
+ #########################################################
+ # print make errors
+ #########################################################
+ cat ${LOG_DIR}/make_${module}.log | grep '[*][*][*]'
+ #########################################################
+ # print compiler errors and warnings
+ # Note: here awk is used to concatenate together several lines of single
+ # error or warning message produced by stupid gnu compiler
+ # Actually, instead of that we could use 'fmessage length=n' option of g++...
+ #########################################################
+ if ( $verbose_level > 0 ) then
+ ###cat ${LOG_DIR}/make_${module}.log | grep ": error"
+ cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {printf $0} END {print ""}' | grep "${module_src}/[A-Za-z_0-9./]*:" | sed s@"^${module_src}/src/"@@
+ endif
+ if ( $verbose_level > 1 ) then
+ cat ${LOG_DIR}/make_${module}.log | awk 'substr($0,0,1)!=" " {print ""} {printf $0} END {print ""}' | grep ": warning" | sed s@"^${module_src}/src/"@@
+ endif
+ #########################################################
+ # perform make if -i or -p flags are given
+ #########################################################
+ if ( $is_install == 1 && $sts == 0 ) then
+ echo "------- Make install ------------"
+ #########################################################
+ # deleting build directory if -d flag is given
+ #########################################################
+ if ( -e $px && $is_delete == 1 ) then
+ echo "Deleting $px"
+ rm -rf $px
+ endif
+ make install >& ${LOG_DIR}/make_install_${module}.log
+ set sts=$status
+ #########################################################
+ # if make install step is successful set the
+ # ${module}_ROOT_DIR environment variable
+ #########################################################
+ if ( $sts == 0 ) then
+ setenv ${module}_ROOT_DIR $px
+ endif
+ endif
+ echo ""
+ else
+ echo "Error! Can't find module sources. ${module}_SRC_DIR environment variable is not set."
+ endif
+end
+#########################################################
+# finalize
+#########################################################
+cd ${BUILD_DIR}
+
+echo "==========================================================================="
+echo "SALOME build finished at `date`"
+echo "==========================================================================="
#$DELIM globals $DELIM
setenvp() {
xenv=\$2:\`printenv \$1\`
- out_var=\`echo \$xenv | awk -F: '{n=0 ; for(i=1;i<=NF;i++){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=0;j<n;j++){printf "%s",keys[j];if(j<n-1) printf ":"} ; printf "\n"}'\`
+ out_var=\`echo \$xenv | awk -F: '{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; if( r ) printf "%s",s; if( x ) printf ":"; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; printf "\n"; }'\`
export \$1=\$out_var
}
setenva() {
- xenv=\`printenv \$1\`:\$2
- out_var=\`echo \$xenv | awk -F: '{n=0 ; for(i=NF;i>=1;i--){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=n-1;j>=0;j--){printf "%s",keys[j];if(j>0) printf ":"} ; printf "\n"}'\`
+ xenv=\$2:\`printenv \$1\`
+ out_var=\`echo \$xenv | awk -F: '{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; if( r ) { if( x ) printf ":"; printf "%s",s; }; printf "\n"; }'\`
export \$1=\$out_var
}
EOF
cat >> ${install_work}/$CSHRC <<EOF
setenv INSTALL_ROOT ${install_root}
#$DELIM globals $DELIM
-alias cleandup "echo \!:1 | awk -F: '"'{n=0 ; for(i=1;i<=NF;i++){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=0;j<n;j++){printf "%s",keys[j];if(j<n-1) printf ":"} ; printf "\n"}'"'"
-alias cleandupr "echo \!:1 | awk -F: '"'{n=0 ; for(i=NF;i>=1;i--){v=\$i;t=1;for(j=0;j<=n;j++){if(keys[j]==v){t=0;break;}};if(t)keys[n++]=v} ; for(j=n-1;j>=0;j--){printf "%s",keys[j];if(j>0) printf ":"} ; printf "\n"}'"'"
+alias cleandup "echo \!:1 | awk -F: '"'{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; if( r ) printf "%s",s; if( x ) printf ":"; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; printf "\n"; }'"'"
+alias cleandupr "echo \!:1 | awk -F: '"'{ n=0; r=1; s=\$1; x=0; for( i=2; i<=NF; i++ ){ v=\$i; t=1; if( v==s ) r=0; for( j=0; j<=n; j++ ){ if( keys[j]==v ){ t=0; break; } }; if( t ) keys[n++]=v; x=1; }; for( j=0; j<n; j++ ) { printf "%s",keys[j]; if( j<n-1 ) printf ":"; }; if( r ) { if( x ) printf ":"; printf "%s",s; }; printf "\n"; }'"'"
-alias setenva 'set a="\!:1" ; set b=\`printenv \$a\`:"'\!:2'" ; set b=\`cleandupr \$b\` ; setenv \$a \$b ; unset a, b'
-alias setenvp 'set a="\!:1" ; set b="'\!:2'":\`printenv \$a\` ; set b=\`cleandup \$b\` ; setenv \$a \$b ; unset a, b'
+alias setenva 'set a="\!:1" ; set b="'\!:2'":\`printenv \$a\` ; set b=\`cleandupr \$b\` ; setenv \$a \$b ; unset a, b'
+alias setenvp 'set a="\!:1" ; set b="'\!:2'":\`printenv \$a\` ; set b=\`cleandup \$b\` ; setenv \$a \$b ; unset a, b'
EOF
### !!! writing salome.csh file !!! -> set inital variables
-pre_vars="PATH LD_LIBRARY_PATH LD_RUN_PATH PYTHONPATH"
+pre_vars="PATH LD_LIBRARY_PATH LD_RUN_PATH PYTHONPATH TCLLIBPATH"
for i in $pre_vars ; do
cat >> ${install_work}/$CSHRC <<EOF
-#$DELIM initial settings $DELIM
+#$DELIM $i : initial settings $DELIM
if (! (\$?${i}) ) then
setenv $i
endif
EOF
done
-### !!! writing salome.(c)sh files !!! -> dump products environment files, changing 'export' by 'setenv(a|b)' where necessary
+### !!! writing salome.(c)sh files !!! -> dump products environment files, changing 'export' by 'setenv(a|p)' where necessary
product_sequence="$2"
for i in $product_sequence ; do
sed -e 's%^export\([[:blank:]]*\)PATH=\$[{]\?PATH[}]\?:\(.*\)%setenva\1PATH \2%g' -e 's%^export\([[:blank:]]*\)PATH=\(.*\):\$[{]\?PATH[}]\?%setenvp\1PATH \2%g' ${install_work}/env_${i}.sh > ${INSTALL_WORK}/_tmp1 2>/dev/null
fi
cp -f ${install_work}/$CSHRC ${install_root}/env_products.csh
cp -f ${install_work}/$SHRC ${install_root}/env_products.sh
+### !!! copying build.csh script
+if [ -e ./build.csh ]; then
+ cp -f ./build.csh ${install_root}
+fi
}
#try use already existing product
#!/bin/sh
check_version(){
-gcc_ver=`gcc -dumpversion`
-gcc_ver_number=`echo $gcc_ver | cut -d . -f 1`
-gcc_ver_subnumber=`echo $gcc_ver | cut -d . -f 2`
-gcc_ver=$(($gcc_ver_number*1000+$gcc_ver_subnumber))
-#if [ `gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13` == "3.2" ] ; then
+gcc_ver=`gcc -dumpversion | awk -F. '{ print $1 * 1000 + $2 }'`
if [ $gcc_ver -eq 3002 ] ; then
return 0
fi
fi
if [ -n "${gcc_root}" ] ; then
gcc_root=`cd ${gcc_root}/..; pwd`
- gcc_ver=`gcc -dumpversion`
- gcc_ver_number=`echo $gcc_ver | cut -d . -f 1`
- gcc_ver_subnumber=`echo $gcc_ver | cut -d . -f 2`
- gcc_ver=$(($gcc_ver_number*1000+$gcc_ver_subnumber))
- #if [ "`${gcc_root}/bin/gcc --version | grep 'gcc (GCC) .*' | cut -b 11-13`" = "3.2" ] ; then
+ gcc_ver=`gcc -dumpversion | awk -F. '{ print $1 * 1000 + $2 }'`
if [ $gcc_ver -ge 3002 ] ; then
tmp="\${GCC_ROOT}/bin ${gcc_root}/bin \${PATH} ${PATH}";
path=`sort_path ${tmp}`
--- /dev/null
+#!/bin/sh
+
+check_version()
+{
+if [ -z "$MED2HOME" ]; then
+ #echo "MED2HOME doesn't set"
+ return 1
+fi
+check_lib_version libmed.so.1.0.1 ${MED2HOME}/lib
+if [ "$?" -eq "0" ]; then
+ #echo "The product ${PRODUCT} has been already installed on yours system"
+ return 0
+fi
+return 1
+}
+
+print_env()
+{
+cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED2HOME=\${INSTALL_ROOT}/med-2.2.2
+export PATH=\${MED2HOME}/bin:\${PATH}
+export LD_LIBRARY_PATH=\${MED2HOME}/lib:\${LD_LIBRARY_PATH}
+##
+EOF
+(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+}
+
+# looks for the native product and collects it's environment (used by make_env())
+try_native(){
+check_version
+if [ $? -eq 0 ] ; then
+ tmp="\${MED2HOME}/bin ${MED2HOME}/bin \${PATH} ${PATH}";
+ path=`sort_path ${tmp}`
+ tmp="\${MED2HOME}/lib ${MED2HOME}/lib \${LD_LIBRARY_PATH} ${LD_LIBRARY_PATH}";
+ ld_library_path=`sort_path ${tmp}`
+ cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
+#$DELIM ${PRODUCT_TYPE} $DELIM
+export MED2HOME=${MED2HOME}
+export PATH=${path}
+export LD_LIBRARY_PATH=${ld_library_path}
+##
+EOF
+ make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
+ return 0
+fi
+return 1;
+}
+
+try_preinstalled(){
+try_existing ${PRODUCT_DIR} ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+return $?
+}
+
+install_source()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/med_fichier2.2.2.src.tar.gz -C ${INSTALL_WORK}
+
+cd ${PRODUCT_WORK}
+makedir ${PRODUCT_DIR}
+
+check_job ${PRODUCT_DIR}/CONFIGURE.LOG ./configure --prefix=${PRODUCT_DIR}
+
+GCC=`which gcc`
+cat >> ${PRODUCT_DIR}/MAKE.LOG <<EOF
+used gcc=$GCC
+EOF
+
+check_job ${PRODUCT_DIR}/MAKE.LOG make
+check_job ${PRODUCT_DIR}/MAKEINSTALL.LOG make install
+
+rm -fr ${PRODUCT_WORK}
+print_env
+}
+
+install_binary()
+{
+make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}" ${PRODUCT_TYPE}
+source ${INSTALL_WORK}/$SHRC
+
+check_jb tar xfz ${SOURCE_DIR}/med-2.2.2.tar.gz -C ${INSTALL_ROOT}
+
+print_env
+}
+
+export PROCEDURE=$1;
+export INSTALL_WORK=$2;
+export SOURCE_DIR=$3;
+export INSTALL_ROOT=$4;
+export PRODUCT_SEQUENCE=$5;
+if [ $# == 6 ] ; then export PRODUCT_TYPE=$6 ; else export PRODUCT_TYPE="med" ; fi
+export PRODUCT="med-2.2.2"
+export PRODUCT_DIR=${INSTALL_ROOT}/${PRODUCT}
+export PRODUCT_WORK=${INSTALL_WORK}/med_fichier2.2.2.src
+source ./common.sh
+$PROCEDURE
{
cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENROOT=\${INSTALL_ROOT}/${PRODUCT}
+export NETGENHOME=\${INSTALL_ROOT}/${PRODUCT}
##
EOF
(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
if [ $? -eq 0 ] ; then
cat > ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh <<EOF
#$DELIM ${PRODUCT_TYPE} $DELIM
-export NETGENROOT=\${NETGENROOT}
+export NETGENHOME=\${NETGENROOT}
##
EOF
make_env ${INSTALL_ROOT} ${INSTALL_WORK} "${PRODUCT_SEQUENCE}"
export TCLHOME=\${INSTALL_ROOT}/${PRODUCT}
export PATH=\${TCLHOME}/bin:\${PATH}
export LD_LIBRARY_PATH=\${TCLHOME}/lib:\${LD_LIBRARY_PATH}
+export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl8.3 \${TCLHOME}/lib/tk8.3 \${TCLLIBPATH}"
##
EOF
(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
export TCLHOME=${tclhome}
export PATH=${path}
export LD_LIBRARY_PATH=${ld_library_path}
+export TCLLIBPATH="\${TCLHOME}/lib \${TCLHOME}/lib/tcl8.3 \${TCLHOME}/lib/tk8.3 \${TCLLIBPATH}"
##
EOF
(test -w ${PRODUCT_DIR} && cp ${INSTALL_WORK}/env_${PRODUCT_TYPE}.sh ${PRODUCT_DIR})
<meta name="Author"
content="Vadim SANDLER (v-sandler@opencascade.com)">
- <title>PAL/SALOME v2.1.0 Installation Wizard Help</title>
+ <title>SALOME v2.2.0 Installation Wizard Help</title>
</head>
<body style="color: rgb(0,0,0); background-color: rgb(255,255,229);"
link="#0000ee" vlink="#551a8b" alink="#ff0000">
</td>
<td>
<center>
- <h1><font size="+4"><font color="#000099">PAL/SALOME Installation Wizard
+ <h1><font size="+4"><font color="#000099">SALOME Installation Wizard
Help</font> </font></h1>
</center>
</td>
<td>
<div align="right"><a href="http://www.opencascade.org/SALOME/"><img
- src="application.png" border="0" height="45" width="104">
+ src="application.png" border="0" height="47" width="109">
</a></div>
</td>
</tr>
</table>
</center>
-<div align="right"><b><font color="#000099">updated for the version 2.1.0</font></b></div>
+<div align="right"><b><font color="#000099">updated for the version 2.2.0</font></b></div>
<hr>
<ul>
</p>
<center><a name="ProductPage"></a><br>
- <img src="productpage.png" height="525" width="565" alt="">
+ <img src="productpage.png" height="558" width="599" alt="">
<p><b>Figure 1:</b> "Installation settings" page in the advanced mode</p>
</center>
<center>
<p><a name="ChoicePage"></a><br>
- <img src="choicepage.png" height="525" width="565" alt="">
+ <img src="choicepage.png" height="558" width="599" alt="">
</p>
<p><b>Figure 2:</b> "Check your choice" page</p>
follow to the <a href="#ProgressPage">next page</a>. </p>
<center><a name="ProgressPage"></a><br>
- <img src="progresspage.png" height="525" width="565" alt="">
+ <img src="progresspage.png" height="558" width="599" alt="">
<p><b>Figure 3:</b> "Installation progress" page</p>
</center>
<center>
<p><a name="readmepage"></a><br>
- <img src="readmepage.png" height="525" width="565" alt="">
+ <img src="readmepage.png" height="558" width="599" alt="">
</p>
<p><b>Figure 4:</b> "Finish installation" page</p>
<td></td>
<td></td>
<td>Open CASCADE 5.2 provided with the Installation Wizard already includes the patch,
-necessary for PAL/SALOME 2.1.0. In addition the Installation Wizard provides the sources of a Open CASCADE patch
+necessary for SALOME 2.2.0. In addition the Installation Wizard provides the sources of a Open CASCADE patch
which can be applied to original Open CASCADE 5.2. sources before compilation.</td>
</tr>
<tr>
HDF5 Version: 1.4.4</td>
</tr>
<tr>
- <td>Med 2.1.6</td>
+ <td>Med 2.2.2</td>
<td>existence of MED2HOME <br>
- existence of libmed.so.0.0.0</td>
+ existence of libmed.so.1.0.1</td>
<td>set MED2HOME if you have preinstalled version of med</td>
<td>Unfortunately we can't check version number. <br>
- We try to find libmed.so.0.0.0 in ${MED2HOME}/lib folder. <br>
+ We try to find libmed.so.1.0.1 in ${MED2HOME}/lib folder. <br>
If you have problem with preinstalled version of med reinstall it.</td>
</tr>
<tr>
ver=`cat $MODULE_ROOT_DIR/bin/salome/VERSION | awk -F: '{print $2}' | tr
-d '[:space:]'`</td>
<td>set MODULE_ROOT_DIR if you have preinstalled binaries of MODULE
- version 2.1.0</td>
- <td>MODULE binaries should exist and ver should be equal to 2.1.0</td>
+ version 2.2.0</td>
+ <td>MODULE binaries should exist and ver should be equal to 2.2.0</td>
</tr>
<tr>
<td>MODULE sources<br>
existence of VERSION file <br>
ver=`cat $MODULE_SRC/bin/VERSION | awk -F: '{print $2}' | tr -d '[:space:]'`</td>
<td>set MODULE_SRC_DIR if you have preinstalled sources of MODULE
-version 2.1.0</td>
- <td>MODULE sources should exist and ver should be equal to 2.1.0</td>
+version 2.2.0</td>
+ <td>MODULE sources should exist and ver should be equal to 2.2.0</td>
</tr>
</tbody>
<font color="#000000">
[license=<install_wizard_license_info>]</font> <br>
<font color="#000000">
- [os=<target_paltform>]</font><b><font color="#000099">/></font></b><font
+ [os=<target_platform>]</font><b><font color="#000099">/></font></b><font
color="#000000">]</font> <br>
<font color="#000000"><b> </b>[</font><b><font
color="#000099"><path</font></b><font color="#000000"> [targetdir=<target_directory>]</font>
</p>
<p><font color="#000000">Example:</font> <br>
- <i><font color="#000000">med-2.1.6.sh install_binary /tmp/work ./Products/BINARIES/RedHat8.0
+ <i><font color="#000000">med-2.2.2.sh install_binary /tmp/work ./Products/BINARIES/RedHat8.0
/usr/salome 'gcc Hdf' med</font></i> </p>
<p><font color="#000000">Copy created script into the <i><Install_Wizard_root_directory>/config_files</i>
# get_help_info
#==============================================================
def get_help_info() :
- str = "\nPAL/SALOME Installation Wizard\n\n"
+ str = "\nSALOME2 Installation Wizard\n\n"
str = str + "\tUsage : \n\tInstall [-g|b] [-f <xml-file>] [-t <target-dir>] [-tmp <tmp-dir>]\n"
str = str + "\n"
str = str + " -g Runs the Installation Wizard in the GUI mode.\n"
str = str + " In this case only <xmlfile> is taken into account \n"
- str = str + " from the parameters list. This key is default.\n"
+ str = str + " from the parameters list. This key is used by default.\n"
str = str + "\n"
str = str + " -b Runs the Installation Wizard in the batch mode.\n"
str = str + " All the found parameters are taken in to account.\n"
str = str + " This parameter overloads the temporary directory described in the\n"
str = str + " configuration file.\n"
str = str + "\n"
- str = str + " -h Prints help information.\n"
+ str = str + " -h Prints this help information.\n"
return str
+#==============================================================
+# message finction
+#==============================================================
+def message(msg):
+ print ">>>", msg
+
#==============================================================
# error_exit
#==============================================================
return [xmlfile, target_dir, tmp_dir, is_gui]
+#=================================================================
+# Checks boolean value: yes/no, true/false, 1/0
+#=================================================================
+def check_bool(val):
+ return str(val).strip() in ["yes","true", "1"]
+
#=================================================================
# The first algorithm to create the dependencies list by their level
#=================================================================
return deps
+#=================================================================
+# The third algorithm (same as SALOME_InstallWizard.cxx uses)
+#=================================================================
+def get_dependencies(prods) :
+ list = []
+ for product in prods:
+ if check_bool(product.disable): continue
+
+ deps = product.dependencies.split(",")
+ for dep in deps:
+ if dep and not dep in list:
+ list.append( dep )
+
+ if product and not product in list:
+ list.append( product.name )
+
+ return " ".join( list )
+
#==============================================================
# Creates dir, returns the part of path that existed early.
# Access may be defined.
def start_path (self, attrs):
self.path = Path(attrs['targetdir'],
attrs['tempdir'])
- print self.path.tmpdir
def end_path(self):
pass
if (os.path.islink(dir)) :
native_dir = os.readlink(dir)
if not os.path.exists(native_dir) :
- print "Bad link " + native_dir + " to directory " + native_dir + ". The last does not exist."
+ print "Invalid link " + dir + ". The directory " + native_dir + " a link points to does not exist."
return 0 # problem
else :
if not os.path.exists(dir):
product.install = re.sub(r'^\s+', "", product.install)
product.install = re.sub(r'\s+$', "", product.install)
- if product.disable == "true" or product.install == "use native":
+ if check_bool(product.disable) or product.install == "use native" or product.install == "not install":
continue
spaces = string.split( product.installdiskspace,',')
prod_space = spaces[0]
return 1
-
+#===============================================================
+# Removes temporary directory
+#===============================================================
+def remove_dir( rem_path = "" ):
+ if len( rem_path ) and os.path.exists( rem_path ):
+ os.system( "rm -rf " + rem_path )
+ pass
+
#================================================================
# main
#================================================================
xml_file = cur_dir + xml_file_name
if xml_file is None or not os.path.exists(xml_file):
- error_exit("No xml file is found try to run with options -f <xmlfile>")
+ error_exit("No xml file is found, try to run with options -f <xmlfile>")
if not os.access(xml_file, os.R_OK):
- print "There is no acceess to read "+ xml_file
+ print "There is no read access for "+ xml_file
sys.exit(1)
#---- GUI ----------------
#----- TUI ---------------------
#print xml_file, target_dir, tmp_dir, is_gui
-
+
+ message("Parsing xml config file: " + xml_file)
filehandle = open(xml_file)
data = filehandle.read()
filehandle.close()
# definitions :
# map
- what_to_do = { "install sources":"install_source",
- "install binaries":"install_binary",
- "use native":"try_native"}
+ what_to_do = { "install sources" : "install_source",
+ "install binaries" : "install_binary",
+ "use native" : "try_native",
+ "not install" : "try_preinstalled"}
# define tmp dir -----------
if tmp_dir is None:
tmp_dir = parser.path.tmpdir
+ if tmp_dir is None or tmp_dir == "":
+ tmp_dir = "/tmp"
+ import random
+ tmp_dir = tmp_dir + "/INSTALLWORK" + str(random.randint(10000,100000))
root_path = ""
if not os.path.exists(tmp_dir):
- print "Creating " + tmp_dir; root_path = create_dir(tmp_dir) ;
- import random
- tmp_dir = tmp_dir + "/INSTALLWORK" + str(random.randint(10000,100000))
- create_dir(tmp_dir,0755)
- if not os.path.exists(tmp_dir):
- error_exit("There is no tmp directory " + tmp_dir + ". Use -tmp key to set directory or correct xml file\n\n")
+ message("Creating temporary directory: " + tmp_dir); root_path = create_dir(tmp_dir, 0755) ;
+ if not os.path.exists(tmp_dir):
+ error_exit("Invalid temporary directory " + tmp_dir + ". Use -tmp key to set directory or correct xml file\n\n")
if not os.access(tmp_dir, os.W_OK) :
- str = "We have no write permissions for directory " + tmp_dir + ". Use -tmp key to set directory or correct xml file"
+ str = "There is no write permissions for directory " + tmp_dir + ". Use -tmp key to set temporary directory or correct xml file"
error_exit(str)
# define target dir --------
target_dir = parser.path.targetdir
if not os.path.exists(target_dir):
- print "Creating " + target_dir; create_dir(target_dir, 0755)
- if not os.path.exists(target_dir):
- error_exit("There is no target directory " + target_dir + ". Use -t key to set directory or correct xml file\n\n")
+ message("Creating target directory: " + target_dir); create_dir(target_dir, 0755)
+ if not os.path.exists(target_dir):
+ error_exit("Invalid target directory " + target_dir + ". Use -t key to set directory or correct xml file\n\n")
if not os.access(target_dir, os.W_OK) :
- str = "We have no write permissions for directory " + target_dir + ". Use -t key to set directory or correct xml file"
+ str = "There is no write permissions for directory " + target_dir + ". Use -t key to set target directory or correct xml file."
error_exit(str)
-
# define products dir ------------
source_dir = cur_dir + "Products" ;
if not check_dir(source_dir):
- if len(root_path) and os.path.exists(root_path):
- os.system("rm -r -f "+ root_path)
+ remove_dir(root_path)
sys.exit(1)
subdir = {"install sources" : "SOURCES",
"install binaries" : "BINARIES/"+parser.config.os,
- "use native": ""}
+ "use native" : "",
+ "not install" : ""}
# define scripts dir ------------
scripts_dir = cur_dir + "config_files/"
if not check_dir(scripts_dir):
- if len(root_path) and os.path.exists(root_path):
- os.system("rm -r -f "+ root_path)
+ remove_dir(root_path)
sys.exit(1)
os.chdir(scripts_dir)
- list_of_dep = create_levels(parser.products)
+ #list_of_dep = create_levels(parser.products)
#list_of_dep = get_dependencies_set(parser.products)
+ list_of_dep = get_dependencies(parser.products)
+ message("Checking available disk space")
if check_disk_space(parser.products, scripts_dir, target_dir, tmp_dir) :
+ message("Starting...")
# install products
for product in parser.products :
- if product.disable == "true": continue
+ if check_bool(product.disable): continue
+ message("Processing " + product.name + "...")
cmd = scripts_dir + product.script + " " + \
what_to_do[product.install]+ " " + \
tmp_dir + " " + \
product.name
res = os.system(cmd)
- if res : break;
+ #if res : break; # try_preinstalled can return 1
# pickup environment
+ message("Creating environment files")
for product in parser.products :
- if product.disable == "true": continue
+ if check_bool(product.disable): continue
- if product.pickupEnv == "true":
+ if check_bool(product.pickupEnv):
cmd = scripts_dir + product.script + " " + \
"pickup_env " + \
tmp_dir + " " + \
res = os.system(cmd)
- if len(root_path) and os.path.exists(root_path):
- os.system("rm -r -f "+ root_path)
+ message("Cleaning temporary directory")
+ remove_dir(root_path)
+ message("Finished!")
-// File : InstallWizard.cpp
-// Created : Thu Mar 27 12:01:00 2003
-// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+/****************************************************************************
+** $Id$
+**
+** Definition of the QWizard class.
+**
+** Created : 990101
+**
+** Copyright (C) 1999 by Trolltech AS. All rights reserved.
+**
+** This file is part of the dialogs module of the Qt GUI Toolkit.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+** information about Qt Commercial License Agreements.
+** See http://www.trolltech.com/qpl/ for QPL licensing information.
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
#include "InstallWizard.h"
-#include "qlayout.h"
-#include "qpushbutton.h"
-#include "qcursor.h"
-#include "qlabel.h"
-#include "qwidgetstack.h"
-#include "qapplication.h"
-#include "qptrlist.h"
-#include "qpainter.h"
-#include "qaccel.h"
-#include "qhbox.h"
-#include "qobjectlist.h"
+#include <qlayout.h>
+#include <qpushbutton.h>
+#include <qcursor.h>
+#include <qlabel.h>
+#include <qwidgetstack.h>
+#include <qapplication.h>
+#include <qptrlist.h>
+#include <qpainter.h>
+#include <qaccel.h>
+#include <qhbox.h>
+#include <qobjectlist.h>
+#include <qthread.h>
+
+#define PROCESS_EVENT QEvent::User+100
+
+class ProcessEvent : public QCustomEvent
+{
+public:
+ ProcessEvent( int retValue = 0, void* data = 0 ): QCustomEvent( PROCESS_EVENT ), myReturnValue( retValue ), myData( data ) {}
+ const int returnValue() const { return myReturnValue; }
+ void* data() const { return myData; }
+private:
+ int myReturnValue;
+ void* myData;
+};
class InstallWizardPrivate
{
public:
- struct Page {
+ struct Page {
Page( QWidget * widget, const QString & title ):
w( widget ), t( title ),
backEnabled( TRUE ), nextEnabled( TRUE ), finishEnabled( FALSE ),
while ( i > 0 && (i >= (int)d->pages.count() || !d->pages.at( i ) ) )
i--;
if ( d->pages.at( i ) ) {
- if ( d->current && !acceptData( d->current->t ) )
- return;
- showPage( d->pages.at( i )->w );
+ if ( d->current ) {
+ nextButton()->setEnabled( false );
+ backButton()->setEnabled( false );
+ if ( !acceptData( d->current->t ) ) {
+ nextButton()->setEnabled( true );
+ backButton()->setEnabled( true );
+ return;
+ }
+ }
+ // VSR : commented 10/02/05 --->
+ // Next page will be shown later in processValidateEvent() method
+ // this allows custom validation, for instance by using external processing threads.
+ // See SALOME_InstallWizard.cxx for details where it is used.
+ //showPage( d->pages.at( i )->w );
+ // VSR : commented 10/02/05 <---
}
}
*/
bool InstallWizard::acceptData( const QString& )
{
+ postValidateEvent( this );
return TRUE;
}
}
delete children;
}
+
+/*!
+Posts validation event
+*/
+void InstallWizard::postValidateEvent( InstallWizard* iw, const int val, void* data )
+{
+ QThread::postEvent( iw, new ProcessEvent( val, data ) );
+}
+
+/*!
+Processes validation event: default implementation just to show next page
+*/
+void InstallWizard::processValidateEvent( const int /* val */, void* /* data */ )
+{
+ int i = 0;
+ while( i < (int)d->pages.count() && d->pages.at( i ) &&
+ d->current && d->pages.at( i )->w != d->current->w )
+ i++;
+ i++;
+ while( i <= (int)d->pages.count()-1 &&
+ ( !d->pages.at( i ) || !appropriate( d->pages.at( i )->w ) ) )
+ i++;
+ // if we fell of the end of the world, step back
+ while ( i > 0 && (i >= (int)d->pages.count() || !d->pages.at( i ) ) )
+ i--;
+ if ( d->pages.at( i ) ) {
+ showPage( d->pages.at( i )->w );
+ }
+ nextButton()->setEnabled( true );
+ backButton()->setEnabled( true );
+}
+
+/*!
+Process events received
+*/
+bool InstallWizard::event ( QEvent* e )
+{
+ if ( e->type() == PROCESS_EVENT ) {
+ ProcessEvent* pe = (ProcessEvent*)e;
+ processValidateEvent( pe->returnValue(), pe->data() );
+ }
+ return QDialog::event( e );
+}
-// File : InstallWizard.h
-// Created : Thu Mar 27 12:01:00 2003
-// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+/****************************************************************************
+** $Id$
+**
+** Definition of the QWizard class.
+**
+** Created : 990101
+**
+** Copyright (C) 1999 by Trolltech AS. All rights reserved.
+**
+** This file is part of the dialogs module of the Qt GUI Toolkit.
+**
+** This file may be distributed under the terms of the Q Public License
+** as defined by Trolltech AS of Norway and appearing in the file
+** LICENSE.QPL included in the packaging of this file.
+**
+** This file may be distributed and/or modified under the terms of the
+** GNU General Public License version 2 as published by the Free Software
+** Foundation and appearing in the file LICENSE.GPL included in the
+** packaging of this file.
+**
+** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
+** licenses may use this file in accordance with the Qt Commercial License
+** Agreement provided with the Software.
+**
+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+**
+** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
+** information about Qt Commercial License Agreements.
+** See http://www.trolltech.com/qpl/ for QPL licensing information.
+** See http://www.trolltech.com/gpl/ for GPL licensing information.
+**
+** Contact info@trolltech.com if any conditions of this licensing are
+** not clear to you.
+**
+**********************************************************************/
#ifndef InstallWizard_h
#define InstallWizard_h
-#include "qdialog.h"
+#include <qdialog.h>
/*!
- This is the patched QWizard class
+ This is the patched Qt 3.0.5 QWizard class
*/
class QHBoxLayout;
class InstallWizardPrivate;
public:
InstallWizard( QWidget* parent=0, const char* name=0, bool modal=FALSE, WFlags f=0 );
~InstallWizard();
+
+ static void postValidateEvent( InstallWizard* iw, const int val = 0, void* data = 0 );
+ virtual void processValidateEvent( const int val, void* data );
+
+ bool event ( QEvent * e );
+
void show();
void setFont( const QFont & font );
--- /dev/null
+ THE Q PUBLIC LICENSE
+ version 1.0
+
+ Copyright (C) 1999-2000 Trolltech AS, Norway.
+ Everyone is permitted to copy and
+ distribute this license document.
+
+The intent of this license is to establish freedom to share and change the
+software regulated by this license under the open source model.
+
+This license applies to any software containing a notice placed by the
+copyright holder saying that it may be distributed under the terms of
+the Q Public License version 1.0. Such software is herein referred to as
+the Software. This license covers modification and distribution of the
+Software, use of third-party application programs based on the Software,
+and development of free software which uses the Software.
+
+ Granted Rights
+
+1. You are granted the non-exclusive rights set forth in this license
+ provided you agree to and comply with any and all conditions in this
+ license. Whole or partial distribution of the Software, or software
+ items that link with the Software, in any form signifies acceptance of
+ this license.
+
+2. You may copy and distribute the Software in unmodified form provided
+ that the entire package, including - but not restricted to - copyright,
+ trademark notices and disclaimers, as released by the initial developer
+ of the Software, is distributed.
+
+3. You may make modifications to the Software and distribute your
+ modifications, in a form that is separate from the Software, such as
+ patches. The following restrictions apply to modifications:
+
+ a. Modifications must not alter or remove any copyright notices in
+ the Software.
+
+ b. When modifications to the Software are released under this
+ license, a non-exclusive royalty-free right is granted to the
+ initial developer of the Software to distribute your modification
+ in future versions of the Software provided such versions remain
+ available under these terms in addition to any other license(s) of
+ the initial developer.
+
+4. You may distribute machine-executable forms of the Software or
+ machine-executable forms of modified versions of the Software, provided
+ that you meet these restrictions:
+
+ a. You must include this license document in the distribution.
+
+ b. You must ensure that all recipients of the machine-executable forms
+ are also able to receive the complete machine-readable source code
+ to the distributed Software, including all modifications, without
+ any charge beyond the costs of data transfer, and place prominent
+ notices in the distribution explaining this.
+
+ c. You must ensure that all modifications included in the
+ machine-executable forms are available under the terms of this
+ license.
+
+5. You may use the original or modified versions of the Software to
+ compile, link and run application programs legally developed by you
+ or by others.
+
+6. You may develop application programs, reusable components and other
+ software items that link with the original or modified versions of the
+ Software. These items, when distributed, are subject to the following
+ requirements:
+
+ a. You must ensure that all recipients of machine-executable forms of
+ these items are also able to receive and use the complete
+ machine-readable source code to the items without any charge
+ beyond the costs of data transfer.
+
+ b. You must explicitly license all recipients of your items to use
+ and re-distribute original and modified versions of the items in
+ both machine-executable and source code forms. The recipients must
+ be able to do so without any charges whatsoever, and they must be
+ able to re-distribute to anyone they choose.
+
+
+ c. If the items are not available to the general public, and the
+ initial developer of the Software requests a copy of the items,
+ then you must supply one.
+
+ Limitations of Liability
+
+In no event shall the initial developers or copyright holders be liable
+for any damages whatsoever, including - but not restricted to - lost
+revenue or profits or other direct, indirect, special, incidental or
+consequential damages, even if they have been advised of the possibility
+of such damages, except to the extent invariable law, if any, provides
+otherwise.
+
+ No Warranty
+
+The Software and this license document are provided AS IS with NO WARRANTY
+OF ANY KIND, INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
+FOR A PARTICULAR PURPOSE.
+ Choice of Law
+
+This license is governed by the Laws of Norway. Disputes shall be settled
+by Oslo City Court.
#############################################################################
# Makefile for building: ../bin/SALOME_InstallWizard
-# Generated by qmake (1.03a) on: Wed Nov 10 19:38:39 2004
+# Generated by qmake (1.03a) on: Wed Feb 9 18:40:38 2005
# Project: SALOME_INSTALL.pro
# Template: app
# Command: $(QMAKE) SALOME_INSTALL.pro
CXX = g++
LEX = flex
YACC = yacc
-CFLAGS = -pipe -Wall -W -O2 -DQT_NO_DEBUG
-CXXFLAGS = -pipe -Wall -W -O2 -DQT_NO_DEBUG
+CFLAGS = -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
+CXXFLAGS = -pipe -Wall -W -O2 -D_REENTRANT -DQT_NO_DEBUG -DQT_THREAD_SUPPORT
LEXFLAGS =
YACCFLAGS= -d
INCPATH = -I$(QTDIR)/include -I$(QTDIR)/mkspecs/default
LINK = g++
LFLAGS =
-LIBS = $(SUBLIBS) -Wl,-rpath,$(QTDIR)/lib -L$(QTDIR)/lib -L/usr/X11R6/lib -ldl -lXinerama -lSM -lqt-mt -lXext -lX11 -lm -lpthread -lXrender -lXinerama -lGL -lpng -lmng -ljpeg
+LIBS = $(SUBLIBS) -Wl,-rpath,$(QTDIR)/lib -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -ldl -lSM -lXrender -lpng -lmng -ljpeg -lGL -lXinerama -lqt-mt -lpthread -lXext -lX11 -lm
AR = ar cqs
RANLIB =
MOC = $(QTDIR)/bin/moc
SALOME_XmlHandler.hxx \
SALOME_HelpWindow.hxx \
icons.h \
- InstallWizard.h
+ InstallWizard.h \
+ globals.h
SOURCES = main.cxx \
SALOME_InstallWizard.cxx \
SALOME_ProductsView.cxx \
####### Compile
-main.o: main.cxx SALOME_InstallWizard.hxx \
+main.o: main.cxx globals.h \
+ SALOME_InstallWizard.hxx \
InstallWizard.h
-SALOME_InstallWizard.o: SALOME_InstallWizard.cxx SALOME_InstallWizard.hxx \
+SALOME_InstallWizard.o: SALOME_InstallWizard.cxx globals.h \
+ SALOME_InstallWizard.hxx \
SALOME_ProductsView.hxx \
SALOME_ProgressView.hxx \
SALOME_XmlHandler.hxx \
SALOME_ProgressView.o: SALOME_ProgressView.cxx SALOME_ProgressView.hxx
-SALOME_XmlHandler.o: SALOME_XmlHandler.cxx SALOME_XmlHandler.hxx \
+SALOME_XmlHandler.o: SALOME_XmlHandler.cxx globals.h \
+ SALOME_XmlHandler.hxx \
SALOME_ProductsView.hxx \
SALOME_InstallWizard.hxx \
InstallWizard.h
Notes on building SALOME Installation Wizard.
---------------------------------------------------------
-You must have precompiled gcc and qt static libraries.
-Then set STATIC_ROOT properlly in Env.csh file.
-(We used gcc 2.95.3 and qt 3.0.5.)
+SALOME Installation Wizard needs gcc 2.95.3 or newer and qt 3.0.5 or newer.
+We use statically compiled gcc and qt in order to minimize external dependencies
+of Installation Wizard (see env.csh for details)
To build InstalWizard :
- go to sources direcory;
-- run "source Env.csh"
+- run "source env.csh"
- run "make"
You can rebuild Makefile by using qmake utility when necessary:
qmake -o Makefile SALOMEPRO_INSTALL.pro
+
+---------------------------------------------------------
+Using Qt files
+---------------------------------------------------------
+
+SALOME Installation Wizard uses modified Qt's QWizard class.
+This class is patched and and it's functionality is extended
+to provide needed behaviour.
+The QWizard class is renamed in order to avoid compilation problems.
+The Qt's files (originally qwizard.*) are used under terms of the
+GNU General Public License version 2 as published by the Free Software
+Foundation and appearing in the file LICENSE.GPL included in the
+packaging of the Installation Wizard sources.
+
// File : SALOME_HelpWindow.cxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#include "SALOME_HelpWindow.hxx"
#include "SALOME_InstallWizard.hxx"
// File : SALOME_HelpWindow.hxx
// Created : Thu Dec 18 12:01:00 2002
-// Author : Vadin SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Author : Vadim SANDLER
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#ifndef __SALOME_HelpWindow
#define __SALOME_HelpWindow
# File : SALOME_INSTALL.pro
# Created : Thu Dec 18 12:01:00 2002
# Author : Vadim SANDLER
-# Project : PAL/SALOME
-# Module : InstallWizard
-# Copyright : 2004 CEA
-# $Header$
+# Project : SALOME
+# Module : Installation Wizard
+# Copyright : 2004-2005 CEA
TEMPLATE = app
-CONFIG += qt warn_on release
+CONFIG += qt warn_on release thread
HEADERS = SALOME_InstallWizard.hxx
HEADERS += SALOME_ProductsView.hxx
HEADERS += SALOME_ProgressView.hxx
HEADERS += SALOME_HelpWindow.hxx
HEADERS += icons.h
HEADERS += InstallWizard.h
+HEADERS += globals.h
SOURCES = main.cxx
SOURCES += SALOME_InstallWizard.cxx
SOURCES += SALOME_ProductsView.cxx
SOURCES += SALOME_HelpWindow.cxx
SOURCES += InstallWizard.cpp
TARGET = ../bin/SALOME_InstallWizard
-unix:LIBS += -lqt -ldl -lXinerama -lXft -lSM
+unix:LIBS += -lqt-mt -ldl -lSM -lXrender -lpng -lmng -ljpeg -lGL -lXinerama
// File : SALOME_InstallWizard.cxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
+
+#include "globals.h"
#include "SALOME_InstallWizard.hxx"
#include "SALOME_ProductsView.hxx"
#include <qwhatsthis.h>
#include <qtooltip.h>
#include <qfile.h>
+#include <qthread.h>
+#include <qwaitcondition.h>
#ifdef WNT
#include <iostream.h>
QString tmpDirName() { return QString( "/INSTALLWORK" ) + QString::number( getpid() ); }
#define TEMPDIRNAME tmpDirName()
+// ================================================================
+/*!
+ * QProcessThread
+ * Class for executing systen commands
+ */
+// ================================================================
+QWaitCondition myWC;
+class QProcessThread: public QThread
+{
+ typedef QPtrList<QCheckListItem> ItemList;
+public:
+ QProcessThread( SALOME_InstallWizard* iw ) : QThread(), myWizard( iw ) { myItems.setAutoDelete( false ); }
+
+ void addCommand( QCheckListItem* item, const QString& cmd ) {
+ myItems.append( item );
+ myCommands.push_back( cmd );
+ }
+
+ bool hasCommands() const { return myCommands.count() > 0; }
+ void clearCommands() { myCommands.clear(); myItems.clear(); }
+
+ virtual void run() {
+ while ( hasCommands() ) {
+ ___MESSAGE___( "QProcessThread::run - Processing command : " << myCommands[ 0 ].latin1() );
+ int result = system( myCommands[ 0 ] ) / 256; // return code is <errno> * 256
+ ___MESSAGE___( "QProcessThread::run - Result : " << result );
+ QCheckListItem* item = myItems.first();
+ myCommands.pop_front();
+ myItems.removeFirst();
+ SALOME_InstallWizard::postValidateEvent( myWizard, result, (void*)item );
+ if ( hasCommands() )
+ myWC.wait();
+ };
+ }
+
+private:
+ QStringList myCommands;
+ ItemList myItems;
+ SALOME_InstallWizard* myWizard;
+};
+
+// ================================================================
+/*!
+ * WarnDialog
+ * Warning dialog box
+ */
+// ================================================================
+class WarnDialog: public QDialog
+{
+ static WarnDialog* myDlg;
+ bool myCloseFlag;
+
+ WarnDialog( QWidget* parent )
+ : QDialog( parent, "WarnDialog", true, WDestructiveClose ) {
+ setCaption( tr( "Information" ) );
+ myCloseFlag = false;
+ QLabel* lab = new QLabel( tr( "Please, wait while checking native products configuration ..." ), this );
+ lab->setAlignment( AlignCenter );
+ lab->setFrameStyle( QFrame::Box | QFrame::Plain );
+ QVBoxLayout* l = new QVBoxLayout( this );
+ l->setMargin( 0 );
+ l->add( lab );
+ this->setFixedSize( lab->sizeHint().width() + 50,
+ lab->sizeHint().height() * 5 );
+ }
+ void accept() { return; }
+ void reject() { return; }
+ void closeEvent( QCloseEvent* e) { if ( !myCloseFlag ) return; QDialog::closeEvent( e ); }
+
+ ~WarnDialog() { myDlg = 0; }
+public:
+ static void showWarnDlg( QWidget* parent, bool show ) {
+ if ( show ) {
+ if ( !myDlg ) {
+ myDlg = new WarnDialog( parent );
+ QSize sh = myDlg->size();
+ myDlg->move( parent->x() + (parent->width()-sh.width())/2,
+ parent->y() + (parent->height()-sh.height())/2 );
+ myDlg->show();
+ }
+ myDlg->raise();
+ myDlg->setFocus();
+ }
+ else {
+ if ( myDlg ) {
+ myDlg->myCloseFlag = true;
+ myDlg->close();
+ }
+ }
+ }
+ static bool isWarnDlgShown() { return myDlg != 0; }
+};
+WarnDialog* WarnDialog::myDlg = 0;
+
// ================================================================
/*!
* DefineDependeces [ static ]
* Defines list of dependancies as string separated by space symbols
*/
// ================================================================
-static QString DefineDependeces(MapProducts& theProductsMap) {
+static QString DefineDependeces(MapProducts& theProductsMap)
+{
QStringList aProducts;
for ( MapProducts::Iterator mapIter = theProductsMap.begin(); mapIter != theProductsMap.end(); ++mapIter ) {
QCheckListItem* item = mapIter.key();
setLicense( tr( "All right reserved" ) );
setOS( "" );
-#ifdef DEBUG
- cout << "Config. file : " << xmlFileName << endl;
-#endif
+ ___MESSAGE___( "Config. file : " << xmlFileName );
// xml reader
QFile xmlfile(xmlFileName);
connect(shellProcess, SIGNAL( readyReadStderr() ), this, SLOT( readFromStderr() ) );
connect(shellProcess, SIGNAL( processExited() ), this, SLOT( productInstalled() ) );
connect(shellProcess, SIGNAL( wroteToStdin() ), this, SLOT( wroteToStdin() ) );
+
+ // create validation thread
+ myThread = new QProcessThread( this );
}
// ================================================================
/*!
if ( PID > 0 ) {
script += QString::number( PID );
script += " > /dev/null";
-#ifdef DEBUG
- cout << "script: "<< script.latin1() << endl;
-#endif
+ ___MESSAGE___( "script: " << script.latin1() );
if ( system( script.latin1() ) ) {
}
}
+ delete myThread;
}
// ================================================================
/*!
// ================================================================
void SALOME_InstallWizard::closeEvent( QCloseEvent* ce )
{
+ if ( WarnDialog::isWarnDlgShown() ) {
+ ce->ignore();
+ return;
+ }
if ( !exitConfirmed ) {
if ( QMessageBox::information( this,
tr( "Exit" ),
script += fi.absFilePath();
script += "' ";
script += QString( "%1" ).arg( totSize );
-#ifdef DEBUG
- cout << "script = " << script << endl;
-#endif
+ ___MESSAGE___( "script = " << script );
if ( system( script ) ) {
QMessageBox::critical( this,
tr( "Out of space" ),
tscript += fit.absFilePath();
tscript += "' ";
tscript += QString( "%1" ).arg( tempSize );
-#ifdef DEBUG
- cout << "script = " << tscript << endl;
-#endif
+ ___MESSAGE___( "script = " << tscript );
if ( system( tscript ) ) {
QMessageBox::critical( this,
tr( "Out of space" ),
}
QString tmpFolder = QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME;
QString tgtFolder = QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() );
+ myThread->clearCommands();
for ( unsigned i = 0; i < natives.count(); i++ ) {
item = findItem( natives[ i ] );
if ( item ) {
+ QString dependOn = productsMap[ item ].getDependancies().join(" ");
QString script = "cd ./config_files/;" + item->text(2) + " try_native " +
QFileInfo( tmpFolder ).absFilePath() + " " + QDir::currentDirPath() + "/Products " + QFileInfo( tgtFolder ).absFilePath() + " " +
- QUOTE(DefineDependeces(productsMap)) + " " + item->text(0);
+ QUOTE(dependOn) + " " + item->text(0);
-#ifdef DEBUG
- cout << "1. Script : " << script << endl;
-#endif
- int res = system( script ) / 256; // return code is <errno> * 256
-#ifdef DEBUG
- cout << "try_native() : res = " << res << endl;
-#endif
- if ( res > 0 ) {
- if ( res == 2 ) {
- // when try_native returns 2 it means that native product version is higher than that is prerequisited
- if ( QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "You have newer version of %1 installed on your computer than that is required (%2).\nContinue?").arg(item->text(0)).arg(item->text(1)),
- QMessageBox::Yes,
- QMessageBox::No,
- QMessageBox::NoButton ) == QMessageBox::No )
- return false;
- }
- else {
- QMessageBox::warning( this,
- tr( "Warning" ),
- tr( "You don't have native %1 %2 installed").arg(item->text(0)).arg(item->text(1)),
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton );
- productsView->setNone( item );
- return false;
- }
- }
+ myThread->addCommand( item, script );
}
else {
QMessageBox::warning( this,
return false;
}
}
+ WarnDialog::showWarnDlg( this, true );
+ myThread->start();
+ return true; // return in order to avoid default postValidateEvent() action
}
return InstallWizard::acceptData( pageTitle );
}
// try to find product being processed now
QString prodProc = progressView->findStatus( Processing );
if ( !prodProc.isNull() ) {
-#ifdef DEBUG
- cout << "Found <Processing>: " << prodProc.latin1() << endl;
-#endif
+ ___MESSAGE___( "Found <Processing>: " );
// if found - set status to "completed"
progressView->setStatus( prodProc, Completed );
// else try to find next product which is not processed yet
prodProc = progressView->findStatus( Waiting );
if ( !prodProc.isNull() ) {
-#ifdef DEBUG
- cout << "Found <Waiting>: " << prodProc.latin1() << endl;
-#endif
+ ___MESSAGE___( "Found <Waiting>: " << prodProc.latin1() );
// if found - set status to "processed" and run script
progressView->setStatus( prodProc, Processing );
progressView->ensureVisible( prodProc );
QCheckListItem* item = findItem( prodProc );
- Dependancies dep = productsMap[ item ];
// fill in script parameters
shellProcess->clearArguments();
// ... script name
QString depproducts = DefineDependeces(productsMap);
-#ifdef DEBUG
- cout << "Dependancies"<< depproducts.latin1() << endl;
-#endif
+ ___MESSAGE___( "Dependancies"<< depproducts.latin1() );
shellProcess->addArgument( depproducts );
// ... product name - currently instaled product
// run script
if ( !shellProcess->start() ) {
// error handling can be here
-#ifdef DEBUG
- cout << "error" << endl;
-#endif
+ ___MESSAGE___( "error" );
}
return;
}
-#ifdef DEBUG
- cout << "All products have been installed successfully" << endl;
-#endif
+ ___MESSAGE___( "All products have been installed successfully" );
// all products are installed successfully
QString workDir = QDir::cleanDirPath( QFileInfo( "./config_files/" ).absFilePath() );
MapProducts::Iterator mapIter;
-#ifdef DEBUG
- cout << "starting pick-up environment" << endl;
-#endif
+ ___MESSAGE___( "starting pick-up environment" );
for ( mapIter = productsMap.begin(); mapIter != productsMap.end(); ++mapIter ) {
QCheckListItem* item = mapIter.key();
Dependancies dep = mapIter.data();
QString depproducts = QUOTE( DefineDependeces(productsMap) );
if ( dep.pickUpEnvironment() ) {
-#ifdef DEBUG
- cout << "... for " << dep.getName() << endl;
-#endif
+ ___MESSAGE___( "... for " << dep.getName() );
QString script;
script += "cd " + QUOTE( QFileInfo( QDir::cleanDirPath( "./config_files/" ) ).absFilePath() ) + "; ";
script += item->text(2) + " ";
script += QUOTE( QFileInfo( QDir::cleanDirPath( targetFolder->text().stripWhiteSpace() ) ).absFilePath() ) + " ";
script += depproducts + " ";
script += item->text(0);
-#ifdef DEBUG
- cout << "... --> " << script.latin1() << endl;
-#endif
+ ___MESSAGE___( "... --> " << script.latin1() );
if ( system( script.latin1() ) ) {
-#ifdef DEBUG
- cout << "ERROR" << endl;
-#endif
+ ___MESSAGE___( "ERROR" );
}
}
}
script += "cd bin/salome; ";
script += "runSalome > /dev/null";
script = "(csh -c '" + script + "')";
-#ifdef DEBUG
- cout << script.latin1() << endl;
-#endif
+ ___MESSAGE___( "script: " << script.latin1() );
if ( !system( script.latin1() ) )
return;
else
// ================================================================
void SALOME_InstallWizard::reject()
{
-#ifdef DEBUG
- cout << "REJECTED" << endl;
-#endif
+ ___MESSAGE___( "REJECTED" );
if ( !exitConfirmed ) {
if ( QMessageBox::information( this,
tr( "Exit" ),
}
exitConfirmed = true;
}
- clean();
+ clean(true);
InstallWizard::reject();
}
// ================================================================
// ================================================================
void SALOME_InstallWizard::accept()
{
-#ifdef DEBUG
- cout << "ACCEPTED" << endl;
-#endif
- clean();
+ ___MESSAGE___( "ACCEPTED" );
+ clean(true);
InstallWizard::accept();
}
// ================================================================
/*!
* SALOME_InstallWizard::clean
- * Clears and removes temporary directory
+ * Clears and (optionally) removes temporary directory
*/
// ================================================================
-void SALOME_InstallWizard::clean()
+void SALOME_InstallWizard::clean(bool rmDir)
{
+ WarnDialog::showWarnDlg( 0, false );
+ myThread->clearCommands();
+ myWC.wakeAll();
+ while ( myThread->running() );
// VSR: first remove temporary files
QString script = "cd ./config_files/; remove_tmp.sh '";
script += tempFolder->text().stripWhiteSpace() + TEMPDIRNAME;
script += "' ";
script += QUOTE(DefineDependeces(productsMap));
script += " > /dev/null";
-#ifdef DEBUG
- cout << "script = " << script << endl;
-#endif
+ ___MESSAGE___( "script = " << script );
if ( system( script.latin1() ) ) {
}
// VSR: then try to remove created temporary directory
//script = "rm -rf " + QDir::cleanDirPath( tempFolder->text().stripWhiteSpace() ) + TEMPDIRNAME;
- if ( !tmpCreated.isNull() ) {
+ if ( rmDir && !tmpCreated.isNull() ) {
script = "rm -rf " + tmpCreated;
script += " > /dev/null";
if ( system( script.latin1() ) ) {
}
-#ifdef DEBUG
- cout << "script = " << script << endl;
-#endif
+ ___MESSAGE___( "script = " << script );
}
}
// ================================================================
finishButton()->setEnabled( true );
}
previousPage = aPage;
-#ifdef DEBUG
- cout << "previousPage = " << previousPage << endl;
-#endif
+ ___MESSAGE___( "previousPage = " << previousPage );
}
// ================================================================
/*!
}
// if something at all is selected
if ( !toInstall.isEmpty() ) {
+ clean(false); // VSR 07/02/05 - bug fix: first we should clear temporary directory
// disable <Next> button
nextButton()->setEnabled( false );
// disable <Back> button
*/
void SALOME_InstallWizard::productInstalled( )
{
-#ifdef DEBUG
- cout << "process exited" << endl;
-#endif
+ ___MESSAGE___( "process exited" );
if ( shellProcess->normalExit() ) {
-#ifdef DEBUG
- cout << "...normal exit" << endl;
-#endif
+ ___MESSAGE___( "...normal exit" );
// normal exit - try to proceed installation further
launchScript();
}
else {
-#ifdef DEBUG
- cout << "...abnormal exit" << endl;
-#endif
+ ___MESSAGE___( "...abnormal exit" );
// installation aborted
abort();
// clear script passed parameters lineedit
// ================================================================
void SALOME_InstallWizard::wroteToStdin( )
{
-#ifdef DEBUG
- cout << "Something was sent to stdin" << endl;
-#endif
+ ___MESSAGE___( "Something was sent to stdin" );
}
// ================================================================
/*!
// ================================================================
void SALOME_InstallWizard::readFromStdout( )
{
-#ifdef DEBUG
- cout << "Something was sent to stdout" << endl;
-#endif
+ ___MESSAGE___( "Something was sent to stdout" );
while ( shellProcess->canReadLineStdout() ) {
installInfo->append( QString( shellProcess->readLineStdout() ) );
installInfo->scrollToBottom();
// ================================================================
void SALOME_InstallWizard::readFromStderr( )
{
-#ifdef DEBUG
- cout << "Something was sent to stderr" << endl;
-#endif
+ ___MESSAGE___( "Something was sent to stderr" );
while ( shellProcess->canReadLineStderr() ) {
installInfo->append( QString( shellProcess->readLineStderr() ) );
installInfo->scrollToBottom();
tr( getIWName() ) + " - " +
tr( "Step %1 of %2").arg( QString::number( this->indexOf( aPage )+1 ) ).arg( QString::number( this->pageCount() ) ) );
}
+
+// ================================================================
+/*!
+ * SALOME_InstallWizard::processValidateEvent
+ * Processes validation event (<val> is validation code)
+ */
+// ================================================================
+void SALOME_InstallWizard::processValidateEvent( const int val, void* data )
+{
+ QWidget* aPage = InstallWizard::currentPage();
+ if ( aPage != productsPage ) {
+ InstallWizard::processValidateEvent( val, data );
+ return;
+ }
+ QCheckListItem* item = (QCheckListItem*)data;
+ if ( val > 0 ) {
+ if ( val == 2 ) {
+ WarnDialog::showWarnDlg( 0, false );
+ // when try_native returns 2 it means that native product version is higher than that is prerequisited
+ if ( QMessageBox::warning( this,
+ tr( "Warning" ),
+ tr( "You have newer version of %1 installed on your computer than that is required (%2).\nContinue?").arg(item->text(0)).arg(item->text(1)),
+ QMessageBox::Yes,
+ QMessageBox::No,
+ QMessageBox::NoButton ) == QMessageBox::No ) {
+ myThread->clearCommands();
+ myWC.wakeAll();
+ return;
+ }
+ }
+ else {
+ WarnDialog::showWarnDlg( 0, false );
+ QMessageBox::warning( this,
+ tr( "Warning" ),
+ tr( "You don't have native %1 %2 installed").arg(item->text(0)).arg(item->text(1)),
+ QMessageBox::Ok,
+ QMessageBox::NoButton,
+ QMessageBox::NoButton );
+ productsView->setNone( item );
+ myThread->clearCommands();
+ myWC.wakeAll();
+ return;
+ }
+ }
+ if ( myThread->hasCommands() )
+ myWC.wakeAll();
+ else {
+ WarnDialog::showWarnDlg( 0, false );
+ InstallWizard::processValidateEvent( val, data );
+ }
+}
// File : SALOME_InstallWizard.hxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#ifndef __SALOME_InstallWizard
#define __SALOME_InstallWizard
class QCheckBox;
class QSplitter;
+class QProcessThread;
class ProductsView;
class ProgressView;
class HelpWindow;
// set dependancies
void setDependancies( QCheckListItem* item, Dependancies dep);
+ // process validation event (<val> is validation code)
+ void processValidateEvent( const int val, void* data );
+
public slots:
// polishing of the widget
void polish();
QCheckListItem* findItem( const QString& sName );
// sets progress state to Aborted
void abort();
- // clears and removes temporary directory
- void clean();
+ // clears and (optionally) removes temporary directory
+ void clean(bool rmDir = false);
protected slots:
// reject slot
QWidget* readmePage; // page itself
QTextEdit* readme; // Readme information window
QPushButton* runSalomeBtn; // <Launch Salome> buttnon
+
+ QProcessThread* myThread; // validation thread
};
#endif
// File : SALOME_ProductsView.cxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#include "SALOME_ProductsView.hxx"
#include <qstringlist.h>
// File : SALOME_ProductsView.hxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2005 CEA
#ifndef __SALOME_ProductsView
#define __SALOME_ProductsView
// File : SALOME_ProgressView.cxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#include "SALOME_ProgressView.hxx"
// File : SALOME_ProgressView.hxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#ifndef __SALOME_ProgressView
#define __SALOME_ProgressView
// File : SALOME_XmlHandler.cxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
+
+#include "globals.h"
#include "SALOME_XmlHandler.hxx"
#include "SALOME_ProductsView.hxx"
const QString& qName,
const QXmlAttributes& attributes)
{
-#ifdef DEBUG
- cout << qName << endl;
- cout << attributes.length() << endl;
-#endif
+ ___MESSAGE___( qName );
+ ___MESSAGE___( attributes.length() );
QCheckListItem* element;
if (( qName == "config" ) && ( attributes.length() > 0 ) ) {
QString myVersion, myCaption, myCopyright, myLicense, myOS;
// File : SALOME_XmlHandler.hxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
#ifndef __SALOME_XmlHandler
#define __SALOME_XmlHandler
################################################################################
-### For giving possibility run the app under RedHat7.1-8.0 it is nessary ###
-### to set GCC_ROOT and QTDIR to static compiled products, accordingly ###
+### Setting the environment to build SALOME Installation Wizard.
+### We use statically compiled gcc and qt in order to minimize
+### external dependencies of Installation Wizard.
+### But it is also possible to use Linux native products.
+### In this case set GCC_ROOT and QTDIR correspondingly:
+### setenv GCC_ROOT /usr
+### setenv QTDIR /usr/lib/qt-3.0.5
################################################################################
setenv LD_LIBRARY_PATH /usr/X11R6/lib:/usr/lib:/lib
+setenv PRODUCTS_DIR /tmp/static
### ------ gcc ------ ###
-### gcc 3.2 (native for RH8.0)
-# setenv GCC_ROOT /usr
-### gcc 2.95.3 (for RH7.1)
-setenv GCC_ROOT /vsr/static/RedHat7.1/gcc-2.95.3
+### gcc 2.95.3
+setenv GCC_ROOT ${PRODUCTS_DIR}/gcc-2.95.3
setenv CXX ${GCC_ROOT}/bin/g++
setenv CC ${GCC_ROOT}/bin/gcc
setenv PATH ${GCC_ROOT}/bin:${PATH}
setenv LD_LIBRARY_PATH ${GCC_ROOT}/lib:${LD_LIBRARY_PATH}
+##
### ------ qt ------ ###
-### qt 3.0.5 compiled on gcc 3.2 (native for RH8.0)
-#setenv QTDIR /vsr/static/RedHat8.0/qt_gcc3.2
-### qt 3.0.5 compiled on gcc 2.95.3 (for RH7.1)
-setenv QTDIR /vsr/static/RedHat7.1/qt-x11-free-3.0.5
-setenv PATH $QTDIR/bin:$PATH
-setenv LD_LIBRARY_PATH $QTDIR/lib:$LD_LIBRARY_PATH
+### qt 3.0.5
+setenv QTDIR ${PRODUCTS_DIR}/qt-x11-free-3.0.5
+setenv PATH ${QTDIR}/bin:${PATH}
+setenv LD_LIBRARY_PATH ${QTDIR}/lib:${LD_LIBRARY_PATH}
##
--- /dev/null
+#if !defined( ___GLOBALS )
+#define ___GLOBALS
+
+// ========================
+// process debug messages
+// ========================
+
+#include <qglobal.h>
+
+#ifdef QT_DEBUG
+
+#define ___MESSAGE___( x ) cout << x << endl;
+
+#else
+
+#define ___MESSAGE___( x )
+
+#endif
+
+#define ___DEBUG___( x ) ___MESSAGE___( "DEBUG: " << x )
+#define ___WARNING___( x ) ___MESSAGE___( "WARNING: " << x )
+#define ___FATAL___( x ) ___MESSAGE___( "FATAL: " << x )
+
+#endif // ___GLOBALS
#define ICONS_SALOME_INSTALL_H
static const char* const SALOME_Logo_xpm[] = {
-"279 120 61 1",
-" c None",
-". c #0A0704",
-"+ c #024E8E",
-"@ c #0E5695",
-"# c #5A84B5",
-"$ c #F3BA26",
-"% c #FED884",
-"& c #FEDF99",
-"* c #FEE6AE",
-"= c #F0BC3D",
-"- c #856822",
-"; c #F2F1F2",
-"> c #AD8623",
-", c #99B1D1",
-"' c #A68C4F",
-") c #675935",
-"! c #EBC062",
-"~ c #F7F6F7",
-"{ c #EBC677",
-"] c #544622",
-"^ c #7B8DA0",
-"/ c #4274AA",
-"( c #654E13",
-"_ c #BCBBBC",
-": c #C2C5CC",
-"< c #493C1B",
-"[ c #C6A96A",
-"} c #5E4E29",
-"| c #5377B5",
-"1 c #2C67A1",
-"2 c #FDFAFD",
-"3 c #587AAE",
-"4 c #F0CD86",
-"5 c #3F3414",
-"6 c #FCD992",
-"7 c #7A756D",
-"8 c #809FC9",
-"9 c #564E3E",
-"0 c #D0A027",
-"a c #2C2207",
-"b c #FDE1A4",
-"c c #524E44",
-"d c #272322",
-"e c #9BA2AB",
-"f c #626B79",
-"g c #CBC9CA",
-"h c #FDE8BA",
-"i c #D4D7DB",
-"j c #E1E0E2",
-"k c #21609C",
-"l c #80714D",
-"m c #FEFEFE",
-"n c #C0CFE5",
-"o c #939093",
-"p c #9BA8BE",
-"q c #CBA54E",
-"r c #D2D1D2",
-"s c #EAE8EB",
-"t c #ABB7CB",
-"u c #6E94C1",
-"v c #DAD8DA",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmm~sjiinniij;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmsjinnnij~mmmmmmmmmmmmmmmmmmmmm2~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmm~in8u#//1///#8:i~mmmmmmmmmmmmmmmmmmmmmmmmm~jint,nmmmmmmmmmmmmmmmmmmsninnini~mmmmmmmmmmmmmmmmmmmmmmmmmmm;ntu|/111|#8ni~mmmmmmmmmmmmmmm~it,,,nsmmmmmmmmmmmmmmmmmmmmmm2jnninsmmmmmmmm;ininninninninninninnin2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmm;,k@+++++++++++++@1jmmmmmmmmmmmmmmmmmmmmmmmnk@@+++kimmmmmmmmmmmmmmmmm#@@@@+@@#mmmmmmmmmmmmmmmmmmmmmmmmm;uk@+++++++++++@18~mmmmmmmmmmmmm8@+++++@,mmmmmmmmmmmmmmmmmmmmm,@@@+@/:mmmmmms1@@@@@@@@@@@@@@@@@@@@+@n2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm~81@+++++++++++++++++usmmmmmmmmmmmmmmmmmmmmmsu++++++@#mmmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmmmmju1@+++++++++++++++@/pjmmmmmmmmmms/+++++++@i2222mmmmmmmmmmmmmmm:1+++++ktmmmmm;u++++++++++++++++++++++kjmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm~p@+++++++++++++++++++#smmmmmmmmmmmmmmmmmmmmmtk+++++++1smmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmmm;#@+++++++++++++++++++@u;mmmm22222s1++++++++p;2~~~~~~~~~~2mmmmm~#++++++1,m2mm2;3++++++++++++++++++++++/~mmmm22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm,+++++++++++++++++++++#smmmmmmmmmmmmmmmmmmmmm#+++++++++nmmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmmi1++++++++k8s~~j81+++++++1s22mmmm22s1++++++++1:~~~~~~~~~~~~~2mm~,+++++++ktm22m2s#+++++++++++++++++++++1tm222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm,k++++++++1u_njjjint8|k8smmmmmmmmmmmmmmmmmmmmjk+++++++++|jmmmmmmmmmmmmmmm/+++++++|mmmmmmmmmmmmmmmmmmmmn/+++++++1t;m2m22m2t/@+++++#v2~~~~2~j/+++++++++#~~~~;~;~;~;;~~;~n@+++++++kt222~;;3+++++++++/8:rssssssss~m2mm22222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm#++++++++/:~mmmmmmmm~ntj~mmmmmmmmmmmmmmmmmmmm8++++++++++@nmmmmmmmmmmmmmmm/+++++++|2222mmmmmmmmmmmmmmmmu@++++++@t~m22mm22m2n/+++++@8~~~~;~~j1+++++++++kj;;~;;;~;~~;;~~ju++++++++kt2~~~;s3+++++++1un~m2mmmmmmmm2m2222222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2k+++++++kjmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;@+++++++++++ummmmmmmmmmmmmmm/+++++++|22222222mmmmmmmmmmm;1+++++++#mm222~;~~~~2t@+++++k;~~~~~~j1++++++++++#;;;;;;sss;;;;;u@++++++++k,~;;;;s|++++++kn22222222222222222m2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2++++++++#mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2t++++++++++++1nmmmmmmmmmmmmmm/+++++++/~~~;~~~;~~~2mmmmmm2n+++++++k,22m2~~~~;~;~i/++++++i;;~;~;j1++++++++++@rssss;s;sss;sn@+++++++++k,~;;;;s3+++++@n~~22m22222222m2222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm;++++++++ummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmj#++++++++++++@ummmmmmmmmmmmmm/+++++++|;~~~~~~~~~~2~~~~~2~:+++++++k,22~~~~;~~~~~j3++++++t;;;;;;j1+++++++++++pj;;;s;s;;;ss3++++++++++1,s;s;sj3+++++/s;~~2~222~222~~~22~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2++++++++#mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmt@+++++++++++++1;mmmmmmmmmmmmm/+++++++|;~~;;;~;~~;~~~~~;;;,+++++++k,~2~;~~;~;~;;i#++++++,;;;sssn1+++++++++++1_ss;s;sss;s,+++++++++++kpsssssj|+++++/;;;;;;;;;;;;;~;;;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm2@+++++++@n2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm#+++++++++++++++n2mmmmmmmmmmmm/+++++++|;;;~~~;~;;~~~~~~~~;,+++++++k,~;~~;;;;;;;;i|++++++psss;s;nk++++++++++++us;sss;s;s,k+++++++++++kpsjjssv3+++++1j;;;;;;s;ss;s;ss;;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm|++++++++/tsmmmmmmmmmmmmmmmmmm22mmmmmmmmmmnk+++++++++++++++#smmmmmmmmmmmm/+++++++/;~;;;;;~;;;;;;;;;;;,+++++++kp~;;;;;;;;;;;i|++++++p;;ssss:1++++++++++++1n;;s;;;;s/++++++++++++kpsjjjjv3+++++@tjsssssssssssssssss;;;22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm,@++++++++@un;mmmmmmmmmmmmmm22m2222mm2222;#+++++@11+++++++++nmmmmmmmmmmmm/+++++++|;;;;;;;;;;;;~;~;~;;p+++++++k,;;;;;;s;ssssn|++++++pssssss:k++++++++++++@#ss;;;;;p+++++++++++++kpjjjjjv|++++++k:jjjjjjssjsjjsjjjsjs;;~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm;8++++++++++@1#:~mmmmmmm222m22m22~~~2~;;~j@+++++v;j#++++++++8mmmmmmmmmmmm/+++++++f;;;;;;;;;;;;;;~;;;;,+++++++kp;ssss;s;s;;sr3++++++pjssjjj:k++++++k8|++++kiss;s;n@+++++++++++++kejjjjji|+++++++@#tjsjjjjjjjjjjsvjjjjs;~~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmsu+++++++++++@k/#8tns~2m22~2~~~2~~~;~~~s,+++++|;;;r++++++++/nmmmmmmmmmmm/+++++++|;;;;;;;;;~;;;;;;;;sp+++++++k,ss;;ssssssssn|++++++pjjjjjj_k+++++|tv:3++++#:jji,/++++@1/+++++++kpjjjjjv|++++++++@k3upttttt:vjjvjvvvjjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm~#k+++++++++++++++/u:s~22~~~~;~;;~;~~~i/++++@8;~;;1+++++++@8mmmmmmmmmmm/+++++++|;;;;;;;~~~~~~~~~;~s,+++++++kpssssssssssssr|++++++pjjjjjj:k+++++#jjjp+++++1u8#k+++++#gs/++++++kpjjjjjv|++++++++++++++@@k@|prvvvvvvjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2~i#+++++++++++++++++k8s~~~;~~~~~~~;;;,+++++|r~;;~u++++++++1;mmmmmmmm2~/+++++++|~;~~~~;~;~~~~~~~~~;p+++++++k,sjjsssssjjjjn3++++++pjjjjjjtk+++++uvvvg1+++++++++++++@vsj/++++++kpsssjjv|+++++++++++++++++++k:vrgrrvs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmm2m222;np#1k+++++++++++++@1t;~;~;;;;;;;;j|+++++ps;s;~n/+++++++@:~222222m22/+++++++|;~~;~~~~2~2m22~~~;;,+++++++kpjsjjjjjjsjjj:|++++++8jjjvvv_k+++++#iiirp+++++++++++++tjsj/++++++k,sssssj3+++++++++++++++++++/:rrgrjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm22m2222;n8u/1@+++++++++++1:;;;;;~;;;;;tk+++++nss~;~;u++++++++#~2222222221+++++++|;~~~~~222mmmmmm2;~sp+++++++kpjjsjjsjjjjjjg|++++++pjjjjvv_k+++++#rvvv:k+++++++++++/jjjv/++++++kpsssssj|+++++++++@1/11/11/#pg:grjs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2222~~~~~2~;sp@++++++++++1:s;ss;s;sss/+++++3sss;;~~i/++++++++immmmm2m2m/+++++++|;~;~~2m22mmmm222;~s,+++++++kpjjjsjjjjjjjj:|++++++8jjjjsj:k+++++#grvvr3++++++++++kpvvvr1++++++kpjjsjjv3+++++++@urvvvrrvrgrr:_gvs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm22m2~~;;~~~~~2~s_#+++++++++|ss;;s;s;sn@++++@:ss;s;~;;u++++++++8;222222m~/+++++++/~~~~~222mmmmmm2~~;sp+++++++kejjjjjjjjjjjj:|++++++pssssss:k+++++#rvvvvt/+++++++++8rvivg1++++++kpjjjjjv|+++++++/_jvvvvvvrrg:_grs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm22m2~~~;;;~;~~m2i/++++++++kjsssssssjp+++++kvss;;;~~~t++++++++3immmmm2mm/+++++++|;;~~22mmm2222~;;;ssp+++++++k8jsjjjjjjjjjjn|++++++ps;s;s;n1+++++#vvvvvr#++++++++k_rrrrg1++++++kevjjjjv3+++++++/_jvvrrrrrggg_gj;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2m22~~;;;;;;;~~~;j@++++++++nsssssjjn@+++++/jsss;;~~~i@+++++++@8mmmmmmmm1+++++++|~;;~~2222m2~~~;;ssjp+++++++kpsjjsjsjsjjssr|++++++,~~~;~;nk+++++#isjvvvt++++++++trrrrr:k++++++kervvvvr|+++++++/:vrrgg:::ggrvs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmm2222~~~~~;;;;;;;~s3++++++++,jjjjssj8+++++++#,__::n:,#+++++++++1mmmmmmmm/+++++++|;2;~222m222~;;;sssjp+++++++kps;ssss;;;;;;v3++++++t~2m2~~r1+++++3ijjvvig^++++++|rvivrr:k++++++k8rrvvvr|+++++++1tg___:rvjs;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmm222~~;;;;sssss;s;u++++++++,jsjjjjg|+++++++@11////11++++++++++@jmmmmm221+++++++|;~2mm2m22m~~~~;;;sjp+++++++k,;;;~~;;~~~~~j|++++++tmm22~~nk+++++3njjjvirt+++++/pvvrvvv:@++++++kervvvjr|+++++++1e___gjs;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmm2;;~2~~~;;;;;;ss;ssu++++++++,vjjjvj8@+++++++++++++++++++++++++++#mm2~~;;/+++++++/~222mm222m~~~~;;;~;n+++++++k,~~222222222~j|++++++i~22m~~r1+++++|nvivrvir3k1#pgvvvvvvvg@++++++kejjjjjv|+++++++1epgj;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmj8k1uj2~~;;;sssssjjv/+++++++@rjjvvvv1++++++++13u,,tt,,#k++++++++++i2;;ssv1+++++++/~~22mmmmmmm22~~22~~sk++++++@u~m2m222~~;;;t@+++++1;2mm22~n1+++++/:vvrrvvvvrvvvrvvvvvvv:+++++++kpjjjvvg|+++++++1trs~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmu@++@|:s~~s;ssssssjt@+++++++1vjjvjvn@++++++k#t:gvss~~;jn|+++++++++,;;jjjv1+++++++@s~2mmmmmmmm2mm22222~3+++++++/;222~~;ssjjj8++++++#~~222~;r1+++++/:rvvvvrvvvrvvvvvvvjvjg@++++++kevvvrr:|+++++++1_v;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmm,@+++++1#,njjsjsvn:81+++++++k8jvvvvr^++++++|pgrrrvjs;2mm2v#++++++++#rjjvvv1++++++++#tininiiiniiij;2mmm~n1++++++@uis;ssjjjv:8k+++++3n~~~~~~~n1+++++/_vvrvvvrvvvvvvvvjjjjj:+++++++kpvrgg:tf+++++++@3tiijjjjjjjjjjsmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmm22k+++++++++k#8:tt83k+++++++++^rjjjivgk+++++1grirrrrjs;2mmmmi/+++++++kpjvvvv1++++++++++k@k@k@k@k@k/8v~~2~~t@+++++++3,rvvvg:t|@+++++@n;~~~~~~;n1+++++/tvvvvrvvvvvvvvjvjjjjj:+++++++k8rg____/++++++++++11/1111111/1#;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmm2mmj#@+++++++++++++++++++++++@prvvivvv8+++++1_vvrrggrij;~mmmm2_++++++++|vvrrr1+++++++++++++++++++++++/sssjsjtk+++++++@k11/1k+++++++1i;~~~~~;~~n1+++++/tvvrvvvvvvvvjjvjjjjjjt+++++++ko_et_rg|+++++++++++++++@+@+++++u;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmsnu1k++++++++++++++++++k3prvvvivv_|+++++uvvirrrgrrvs~mmmmms1+++++++k_rrrr|+++++++++++++++++++++++1jvjjvvvt3k+++++++++++++++++18n2~~~~;~~2~r1+++++/trvvrvvvvvjvvjjjjjjsj,+++++++@^p_gjss#+++++++++++++++++++++++kimmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmn8/@++++++++++++++k|prvvvriviv8k++++/tvvvrrrrgrvj;~mmmmmpk++++++@8rrrro@+++++++++++++++++++++kuvvrvrrrr:e/@+++++++++++++k3:;~;~;~~2222;r1+++++/_vrvvvvvvjvjjjjjvjjjjp+++++++1ogj;~m~p++++++++++++++++++++++++:mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmm2;stu1++++++@138_:rrrrrvvvvrv:tppp_grrrrvrrrrgrvs;2mmm~;j:tt,,pt:rrrrr:teeeppp,tttntntttttt:nvjjvvvvivvvvgt#1++++++@|pns;~~~;22222222~s:ttppp_rvvvrvvvvjjjjjvrrvjssjtp^3^^o:j;22mmm2jn:::n:nnnnnnnnnnnnnnnnn~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmm2;si:ttt_:ggrrrrirrrrrrvrvvrrrrrrrrrrrrrrrrrvjj;;222;ssjvvrrrrrrrrrrrngg:ggrijs;;~22~~;;~;;;;ss;sss;;s;sjjin::nijs;~2~~22222mm2m~;;sjvvvrvrvrvvvvvjjjjjjjjjvjvggg__p__gjss;;22mmmmm~m~m~~~~~~~~~~~~~~~~~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmm~;sjjvvvvvvvvrrvrrrrrvvrviiivirrrrrrrrrrrrivjs;;;;sjjvvvrrrrrrrnrrrrgrrrrrijs;;~2mm22m22~22~~~~~~~~~2~22~2~~;~~m2mmmmmmmm22~~;ssjjirvvvvrvrvvjvvjjjjsjsjvg_ett_grvjssssjs;;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;sjvvvvvrvvvivvrrrrvvrvvvvvvvvviiirrrrrrrivjsssjjjvvvrrrrrrrrrrrrrrrrrrriivjs;~2mmmmmmmmmmmmmmmmmmmm2m22;ss;;2mmmmmmm2~~;sjjvvvvvvrvvvg::gvjjjjsjjjvg_ep[_vjss;ssjvvvvjs;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22;sjjvvvvvvrvvrvvrrvvrvvrvvrvvvvviiiirrrrrrvjjjvvvrrirgrnrrrrrrrrrnrrrrrrgrjs;;~~~;;;;~2222mmmmmmmmm2;;sjvjs~2mm22~;;sjjjvvivrvvvvvvvr:_t_grrrrgg:____grvjss;~;;ssjjjss;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;ssjjjvvvvvvvvvvvvvrvvrvvvrvivvvvvvvvvirrivrvvvrvrirrrrrgrrrnrrrrrrrrgg::rjs;;;sssssss;;;;~2222~~;;sjjrrrss;;~;;;sjjjvvvvrvvvrvvvvvr:_t_grrvrr::::ggrvvvs;;~~~~s;sss;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~~sssjjvvvjvvvvvvvvvvvvvvrvvivvvvvvvvvvrrvvvvvrrriirrrrrrrrrrrririrvrg:_:rjjjjsjjjjvvvvvvjjs;s;sjjvirgrrjjsssjjvjvvvvvrvvvvvvrrrrrrrgrrvjjrg:grrrrrvvvjj;~2mmm22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;sjjjjjjjjvjjjjjvjjvjvvvvvvvivvvirrgrgrrvrvvrigirriririrrivriiivvvrrrivjvjvvvvvvvvvvvvvjjjvirirrrrrvvjvviivvrvrvrvvvvrgrggrrvvjjjjrgg:ggrrrrrrvvrvvs;~mmmm22222~~;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~;sjjjjjjsjjjjjjjjjjjvjvjvvvvvrvrg:ggrgrrriririrgrrivvvvrvvvvrvrvrrvvvjvivvvrvvvvviiiiiiirirrrrrirvrvvrvrvvvvvvvrrrgggggrrvvjvrg___:grvvrrrrrvvrvvs;~~~~;;;;;;s;ss;;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~sjjvjjsjjsjjjsjjjsjsjjjjjjjvvr__:grrrrrrrgrrrrrrrrvrvvvvvvrvvvvrrrgrrvrvvvrvvvrvrvrrrrrrrrrirrvvvvvvvrvvrvvvr__:grrrrgg:g___ggrvjjjvvvvvvvvvvjssssssssssjjsjs;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~~ssjjjsjsjsssssssjjjjjjjjjjjr__:grrrrrrrrrrrrrrrrrrrrvvvvrvrrgggrvjjvvvvvvrvvvvrrvviviiirvvvrvvvvvvvvvvrg_::ggrrgrrvrvrvjjjjjjvrrrrrgrrrvvjjssss;;;;;~2~m22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~~;sjjjvvvvvvvvjjssssssssssjjg:_ggrgrrrrirrrrrrrrrrrrrrrrrrg:_:grvjjjjvjvvvvvvvvvrvvrvvrrrrvvvrvvvvvvrgg:::ggrrvvvvjvjvvvrrrrgrrrrvvjjjsss;;~~2222mmm2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;jvvrggggggggrjs;sssssssjsssgg:rrrrrrrnigirrrrrrrrrrrrrgggggrvjjjvjjvjjvvvvvvvvvvvvvvvvvvvvvvvvrrg:_:g:grvvvjssjjrg:__g:rvjsss;;~~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~~~s;sssssjsjjjvj;;;sss;ssssjjirirrrrrrigigrrrrrrrrrrrrgrrrrvvvvvvvjjjjjjvirgrrvvivvvvvvvvrgg_:__:ggrvvjjjvrg:g_ggvjsh~~~~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m222222m222~~~ssss;;;;s;ssssssjjjvjiiviiirrrrrrrrrrrrrrrrrvvvvvvvjjjjjjjvrgrrrvvjjjvjvvrg::_:ggrvvvvvvvrrrvvjjs;;~~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;jjss;;;s;;ss;;sssjsjjjjvviirrrrrrrrvvrrrrvvrrrvjsssjsjjjjvrrriivvvvvvvvrrrgrrrrrrvvvjs;;;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~svvvvvjsss;;;;;;;ss;ssssssjjvvirrvrrgggvjsssss;ssssssssjvrgriiivvvvvvr:___rvss;~22222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22~;sjjjiiirivvjjsss;;;;~s;;s;;sssjjjvrggrrvj;;;;;;;;ssssjjvirivjjvr:_t__gjs~~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;ssjvvrrrrriijjss;;;~;;;~;;;;sssjvrg:_grjssss;;~;;;;ssjjjvi:_[t_gs;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;;;sjvvrrggrvjs;;~~~;~~~~~;;;j:[t____:grrrgg:___et__:vjs~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm222m2~;;;ssjvvvvjs;;2~;~22~~~~s:t[tgrvvvvrrrrrvjjs;~~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~2;;;sjjj;;22;;;~~22~sto_vjjs;;;;;;;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2;;;;2~svv;mm2;:e[jjrrs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2;;;~m~v:_rs2;r_gvvg:rs~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;;;m;j_p_rs;vgrvvg:gj;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;ss;~~;jg:rjjg:rvig_gj~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmssj;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~sjvvvjs;;ssjjrrivg__rj;2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmme}9<<:mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;sjjjjs;s;;ssjsjvrrrvjss;;;;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm7>>-demmmmmmmmmmmmmmmmmmmmmmmmmmmsv:eeeegsmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2sjvvvjj;;;~;;;sjvjvvvvvvjjjsssjss;;;;~22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm7'>-5emmmmmmmmmmmmmmmmmmmmmmmmmsr79)>'0l<7rmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~;sjrrrgg:ijs;;~~~;;;ss;s;ssjjjjjjjvjjjjss;s;;;;;~222mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm70>-aemmmmmmmmmmmmmmmmmmmmmmmse7l0$$lfllq>c:2mmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22;ssjjvvvvrrrvjvjsjjjjjs;;s;;;s;ssjsjjjssssjsjjsssss;;22mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmj_teeeeeeeee)0>><feeeeoeoooe_smmmmmm~sv_ol->0$>lo___'''9rmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~;sjvirg:g:_____grrggrjjss;;~;;;;;;;ssjjjvjvijjs;;2mmmmmmmiggiriririrrrivvijsss;;s;s_7->>'>'>'>'''[qq0>>-)]5aa.a..7rs;sr:e7cd<)->00cemmmmjo0lommmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm22m2~~;;s;;;ssjvrrrrgggg::ggggggrrrrjjsjjjvivvvs;~mm2rl'''''''''''7l7llflff)7)f)9[!!!!=!!!!{{4444{![[q'l--))))]<cc5dd<<<<<(->0}e~mmmmmgl=7jmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m22222m22~;;;ssvvrrrgggggg::ggrvjjjjjvirj;2m2:0q=$$=$=$=$$$$$0$0$0$0$0$q=====!!{{%%%&&*bbhbb&444{![=0'>-)]55aaaaa<](>>drmmmmmmjo0l_mmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m2m22~~;;;;;ssssssjjvvvrvrrrvs~m~_0000000q000$0$$$$$$$$$$$$$$===={=%4%%6b*hhh;hh*&644{=q00>-(]5aaaaaa<<(->.smmmmmm;pqlpmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~~;ssjvvjs;2m2_>>>>0>000>000000$$$$$==$$%===$%=4{4%%bbhh;~hhh*&%%4![q'>-(]55aaaaaa<<(->.jmmmmmmhe0ltmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2m22m2mmmmj9]}(}]]())(--->>>>00$$$$$$$%$$$%$%4%%b*h;h~~h;*b64!=q'>-(<<aaaa.aaa55(--]pmmmmmmrl$7jmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2s:pe[et'77l)(<<((-->>00$$$$$%$$%$4%%&*hhh~h~;hh66!!q>l-(]55aaaaaaa5a5](--<emmmmj7'>e2mmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;jgp7}55<<(-->00$$$$$%$%4%%&**h~h~h~*bv4_[q>-)(<5aaa.aaaa5a5](--]]pvj:7lq]gmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmms7aaa5<](->00$$$%$44%%&*hhh~hh*b4{[''-)(55aaaaa.aaaaa5<<](--955)0q)r2mmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmjtlaaa5<]->00$$=%=%%&**hhhhh64_[q>l((<5aaaaaaaaaaaaa5a55<()-lllo_mmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2v^5aaa5<(->0$$={%%%&&**bj6r{!''l)(<55aaaaaaa5aaa5]})fl77^7oepvmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2:)daaa5<(->'=[!{{%%664{g[[''-)(<55aaaa.addd9ors2mmmmmm2m~mmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;e5aaaa5]()>>'q[[[[_[[['7l)}]<555aaaa.57:smmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2pfaaaa5<<(--l>''''''7>l))]<<5a5aaadf:smmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm;e5aaaa55<]}))--l-)))}(]<5555aa.9gmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2st)da5a55<<]9]9}}}]]<<<55..<ov2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~re7c55a5<<<<]]]<]55a5597er;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~sef<5<)}]]]<<5d<co:;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2~s^)ll}<5d5v;~2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmv70>)5dcg2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm~e0>(5.fmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmjo$-(aa<;mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmg'$>(5advmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm_'0>(aadtmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmme>$>-5aafmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm[0$0-<aaasmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmj'$$0>]aadgmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmoq$$0>(aaafsmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmiq$$$$>-5aaaemmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmje$$$$$0-5aa.)jmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2_[$$$$$0-<aaaaf~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmms_$$$%$$$0>(5aaaafvmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2;sr[q$$$$$$$0>(aaaaaa)ejs2mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmsr_[q=$=%$$$$$0>-<aa.aaaa<7pgmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm2'0$$$$$$$$$$$00>(<aaaaaaaaaaa_mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmtooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooeoeoc)-----l-l--)(]5aa...........ceeoeooooooooooooooooooooojmmmmm",
-"mmmmmmm)ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddadadadadaddddddddddddddddddddddddddddddddddddddddgmmmmm",
-"mmmmmmm~;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;~;~~~~;;;;;;;;;;~;;~;;;;;~;;;;;s;;;;;s;;;;;~~~;;;;;;;;;;;;;;;;;;;2mmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm",
-"mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"};
+"279 120 2903 2",
+"a# c #004565",
+"#5 c #004566",
+"fn c #004567",
+"l# c #004667",
+"au c #004668",
+"aG c #004669",
+"j7 c #00466a",
+"lX c #00466b",
+"rL c #00476a",
+"dM c #00476b",
+"h6 c #00476c",
+"bn c #00476d",
+"dk c #00476e",
+"av c #00486e",
+"at c #00486f",
+"aH c #004870",
+"hA c #004871",
+"bf c #004972",
+"d0 c #004973",
+"aw c #004974",
+"l3 c #004975",
+"a. c #004a75",
+"dT c #004a76",
+"cG c #004a77",
+"#8 c #004a78",
+"gk c #004b79",
+"gp c #004b7a",
+"a0 c #004b7b",
+"eF c #004b7c",
+"hs c #004c7c",
+"ax c #004c7d",
+"a8 c #004c7e",
+"ky c #004c7f",
+"aI c #004d80",
+"a9 c #004d81",
+"ai c #004d82",
+"g8 c #004d83",
+"eG c #004e83",
+"ad c #004e84",
+"fK c #004e85",
+"le c #004e86",
+"bv c #004f86",
+"dh c #004f87",
+"ay c #004f88",
+"dZ c #004f89",
+"cO c #00508a",
+"#4 c #00508b",
+"as c #00508c",
+"ak c #00508d",
+"fh c #00518d",
+"bz c #00518e",
+"fm c #00518f",
+"aV c #005190",
+"ep c #005290",
+"aM c #005291",
+"kq c #005292",
+"fl c #005293",
+"az c #005394",
+"be c #005395",
+"dr c #005396",
+"aJ c #005397",
+"aU c #005497",
+"b# c #005498",
+"aF c #005499",
+"aA c #00549a",
+"mq c #00559a",
+"#3 c #00559b",
+".C c #00559c",
+"m# c #014565",
+"sz c #014665",
+"la c #014666",
+"a7 c #014667",
+"jd c #01486e",
+"km c #014973",
+"bj c #01508b",
+"hn c #015498",
+"bk c #01559a",
+".D c #01559c",
+"#M c #01569c",
+"kp c #01569d",
+"ht c #024666",
+"qT c #024766",
+"hK c #025088",
+"qt c #02518c",
+"mW c #025599",
+"gR c #02569c",
+"#D c #02569d",
+"fV c #02579d",
+"qn c #034766",
+"fL c #034767",
+"fi c #034869",
+"qJ c #03496e",
+"ba c #034a71",
+"kn c #034e80",
+"h2 c #035188",
+"b0 c #035492",
+"#k c #03579d",
+"py c #044867",
+"g5 c #044868",
+"oQ c #044869",
+"rH c #045391",
+"rc c #045491",
+".W c #04579d",
+"kB c #04589d",
+"a1 c #054968",
+"cP c #054969",
+"r7 c #05496c",
+"eu c #054b6f",
+"jJ c #05579a",
+"e3 c #05589d",
+"ho c #05589e",
+"or c #064968",
+"cw c #064a69",
+"k0 c #064a6e",
+"m2 c #064e78",
+"ip c #064f7a",
+"h# c #06589c",
+".E c #06599e",
+"iM c #06599f",
+"g4 c #07599c",
+"o1 c #07599e",
+".B c #075a9f",
+"pT c #084a69",
+"a6 c #084b6a",
+"i9 c #084c6e",
+"qS c #08558e",
+"q6 c #085896",
+".F c #085a9f",
+"aB c #085b9f",
+"iQ c #094b6a",
+"bg c #094c6a",
+"kl c #094c6b",
+"es c #094c6d",
+"g3 c #094e74",
+".X c #095b9f",
+"fO c #095ba0",
+"iq c #0a4c6a",
+"fd c #0a4c6b",
+".A c #0a5ca0",
+"bA c #0b4d6c",
+"bi c #0b4e70",
+"hx c #0b4f71",
+"mV c #0b4f74",
+"cM c #0b5381",
+"oi c #0b5995",
+"#y c #0b5ca0",
+".V c #0b5da0",
+"mU c #0c4d6b",
+"kz c #0c4d6c",
+"mT c #0c4e6c",
+"kr c #0c4f6f",
+"qf c #0c5995",
+"qb c #0c5c9f",
+"#d c #0c5da1",
+"mF c #0d4e6c",
+"a2 c #0d4e6d",
+"a5 c #0d4f6d",
+"ha c #0d5da0",
+"pw c #0d5da1",
+"pS c #0d5ea1",
+"rW c #0e4f6c",
+"dU c #0e4f6d",
+"mX c #0e506f",
+"qx c #0e5993",
+"hb c #0e5da0",
+".G c #0e5ea1",
+"ia c #0e5ea2",
+"rM c #0f506d",
+"bK c #0f506e",
+"o2 c #0f5e9f",
+"o# c #0f5fa1",
+"mp c #0f5fa2",
+"sr c #10506f",
+"rz c #105c97",
+"#N c #1060a2",
+"j# c #11516f",
+"jh c #11526f",
+"#E c #115f9e",
+".z c #1160a2",
+".Y c #1160a3",
+"a3 c #125270",
+"jI c #125371",
+".H c #1261a3",
+"sA c #13526f",
+"bh c #135371",
+"ix c #13557a",
+"ij c #135c92",
+"ls c #135e99",
+"qZ c #145270",
+"mS c #145471",
+"rm c #14567d",
+"oh c #1461a2",
+"a4 c #155471",
+"bS c #155472",
+"hF c #155573",
+"hN c #1562a2",
+"b5 c #1563a3",
+"sy c #165471",
+"rr c #165472",
+"ae c #165572",
+"cD c #165676",
+"mf c #1662a2",
+"nX c #1662a3",
+"gn c #1663a3",
+"#n c #1663a4",
+"op c #175572",
+"nR c #175573",
+"ie c #175673",
+"#z c #176199",
+"gu c #1763a3",
+"nd c #1764a5",
+".U c #1765a5",
+"f3 c #1864a4",
+"bu c #1865a5",
+"pk c #19619a",
+"#Y c #19639c",
+"j3 c #1964a4",
+"aT c #1965a5",
+"#t c #1965a6",
+"pd c #1a5773",
+"hG c #1a649f",
+"qc c #1b5773",
+"lf c #1b5874",
+"jg c #1b66a6",
+"eH c #1c5976",
+"bZ c #1c649b",
+"pP c #1c67a5",
+"bM c #1c68a7",
+"iN c #1d5875",
+"qF c #1d5974",
+"s5 c #1d5975",
+"ii c #1d68a7",
+"s4 c #1e5975",
+"b8 c #1e5a76",
+"fP c #1e5b79",
+"dS c #1e68a7",
+"#j c #1e69a7",
+"Rh c #1f1b0e",
+"lD c #1f5b77",
+"g2 c #1f5c78",
+"rg c #1f669f",
+"r# c #1f68a1",
+"dX c #1f69a8",
+"jM c #1f6aa8",
+"Nf c #201d10",
+"hw c #206aa8",
+"q7 c #215b76",
+"gf c #215d79",
+"rK c #215e7c",
+"pR c #216aa7",
+"pZ c #216aa8",
+".I c #216ba9",
+"cL c #226ba8",
+"ar c #226ba9",
+"iE c #235f7b",
+"oP c #236aa5",
+"mr c #245f7b",
+"et c #246da9",
+"px c #256eaa",
+"np c #265f7b",
+"pQ c #266da9",
+"fF c #266eab",
+"Rf c #271f0c",
+"Re c #271f0d",
+"d2 c #276fab",
+"Rg c #281f0c",
+"my c #28617c",
+"p. c #286eaa",
+"bd c #286fab",
+"mt c #2870ab",
+"nP c #29627c",
+"#V c #296b9b",
+"rG c #296ba3",
+"rq c #296ea7",
+"jm c #296ea9",
+"oA c #2970ac",
+"l6 c #2a6fa9",
+"e9 c #2a71ac",
+"zR c #2b2414",
+"DN c #2b2d2a",
+"ne c #2b627c",
+"rV c #2b627e",
+"p# c #2b637e",
+"aC c #2b657f",
+"kD c #2b6583",
+"g1 c #2b71ac",
+"LN c #2c2610",
+"#U c #2c72ac",
+"dg c #2c72ad",
+"Rd c #2d250d",
+"qg c #2d6580",
+"bJ c #2d6680",
+"lu c #2d6681",
+"iR c #2d6fa1",
+"pB c #2d71aa",
+"lH c #2d73ad",
+"ET c #2e2f2b",
+"qy c #2e647e",
+"dn c #2e6680",
+"kZ c #2e6681",
+".y c #2e73ae",
+"js c #2f6680",
+"fS c #2f6781",
+"rb c #2f71a8",
+"n# c #2f73ac",
+"oS c #3073a9",
+"j9 c #3173ab",
+"iI c #3173ac",
+".Z c #3176af",
+"Ne c #322d17",
+"cH c #326983",
+"#L c #3276af",
+"zQ c #332f18",
+"MQ c #332f2c",
+"zS c #333124",
+"p8 c #336880",
+"po c #3371a5",
+"rf c #3374aa",
+"hp c #3377b0",
+"zP c #342f18",
+"eD c #346b84",
+"pn c #3472a6",
+"qI c #3474aa",
+"ga c #3477b0",
+"sx c #356a83",
+"pp c #3573a7",
+"cv c #3578b0",
+"Pp c #363224",
+"Lb c #36342c",
+"tk c #36677f",
+"n9 c #366b84",
+"b2 c #366c85",
+"pm c #3673a8",
+"jZ c #3678b0",
+"#7 c #3679b1",
+"MU c #372f20",
+"od c #376b83",
+"dq c #376e8a",
+"pl c #3774a9",
+"pJ c #3777ad",
+"Pz c #382f0e",
+"pq c #3877ab",
+"Oh c #392f0f",
+"Rc c #392f12",
+"Qs c #393016",
+"Bd c #393729",
+"sW c #396a81",
+"sX c #396a82",
+"sV c #396b82",
+"#a c #397bb2",
+"zO c #3a3019",
+"tr c #3a6b83",
+"sU c #3a6c83",
+"dP c #3a6f88",
+"pr c #3a78ac",
+"pt c #3a79ad",
+"rp c #3a7ab0",
+"Pd c #3b2f0b",
+"r1 c #3b6c83",
+"tj c #3b6c84",
+"sQ c #3b6d84",
+"ps c #3b79ad",
+"gj c #3b7bb2",
+"OW c #3c2f09",
+"H0 c #3c331e",
+"L# c #3c3524",
+"Rs c #3c3c3c",
+"rh c #3c6d84",
+"sP c #3c6d85",
+"sR c #3c6e85",
+"oX c #3c7aae",
+"oW c #3c7aaf",
+"Mk c #3d331a",
+"Rr c #3d3d3d",
+"qL c #3d6e85",
+"sO c #3d6e86",
+"ts c #3d6f86",
+"gq c #3d7189",
+"h3 c #3d7db4",
+"jc c #3d7eb4",
+"L. c #3e3110",
+"Rt c #3e3d3e",
+"sI c #3e6f86",
+"sM c #3e6f88",
+"sN c #3e7087",
+"oV c #3e7cb0",
+"oU c #3e7cb1",
+"fZ c #3e7eb4",
+"Qr c #3f320c",
+"zN c #3f371e",
+"IR c #3f3925",
+"CB c #3f3d34",
+"Ro c #3f3e3f",
+"Rq c #3f3f3f",
+"ti c #3f7088",
+"rR c #3f718a",
+"qs c #3f7caf",
+"oT c #3f7db1",
+"eo c #3f7fb5",
+"O5 c #403207",
+"QP c #403306",
+"Lg c #40371b",
+"QR c #40381f",
+"O6 c #403828",
+"Bc c #403f34",
+"Rp c #403f40",
+"t# c #407189",
+"h7 c #40728a",
+"#H c #40789c",
+"nB c #407cad",
+"p5 c #407cae",
+"Po c #413006",
+"QQ c #413106",
+"PT c #413307",
+"LM c #41340e",
+"Oo c #41340f",
+"MP c #413419",
+"Oa c #41381a",
+"zX c #413c28",
+"rd c #417187",
+"lI c #417188",
+"sB c #417288",
+"r8 c #417289",
+"t. c #41728a",
+"b9 c #41738a",
+"c. c #41738b",
+"rF c #417bac",
+"bq c #417fb4",
+"EM c #423008",
+"Py c #423107",
+"DG c #423108",
+"OM c #423203",
+"Jp c #423208",
+"QO c #423302",
+"P9 c #423307",
+"EL c #423308",
+"QN c #423405",
+"OE c #423406",
+"Q. c #423407",
+"GQ c #423408",
+"Kh c #423409",
+"Ow c #42350b",
+"JK c #423613",
+"MV c #423618",
+"PU c #423713",
+"ON c #42371b",
+"Km c #423919",
+"KC c #423923",
+"N5 c #423b26",
+"OX c #423e38",
+"sk c #427289",
+"ce c #42748c",
+"Jt c #433305",
+"DH c #43330d",
+"K9 c #433407",
+"P8 c #433408",
+"Mj c #43340b",
+"KE c #433508",
+"LT c #433510",
+"Kn c #433920",
+"xT c #433a23",
+"tt c #43748c",
+"cd c #43758c",
+"cf c #43758d",
+"nT c #4381b6",
+"Jq c #44320b",
+"QM c #443308",
+"HH c #44330c",
+"Li c #443506",
+"DF c #443508",
+"Ki c #44350c",
+"Mp c #443a26",
+"LS c #443c25",
+"c# c #44768d",
+"cc c #44768e",
+"Pc c #453308",
+"KD c #453509",
+"Ix c #453608",
+"EN c #453611",
+"IS c #45370d",
+"PJ c #453a1c",
+"pC c #45758c",
+"cg c #45768f",
+"cb c #45778e",
+"ca c #45778f",
+"e4 c #4583b7",
+"Pn c #463507",
+"OV c #463508",
+"JL c #463606",
+"FR c #463608",
+"LU c #46360c",
+"Lh c #463807",
+"OF c #463f2b",
+"Ml c #464135",
+"HZ c #46423b",
+"l7 c #46778e",
+"tv c #46778f",
+"GR c #47350e",
+"Kl c #473b17",
+"tu c #47788f",
+"gW c #477990",
+"#u c #4784b7",
+"dj c #4784b8",
+"EK c #483708",
+"Jo c #48370a",
+"Js c #483910",
+"Cu c #483a0f",
+"Q# c #483c1c",
+"Mo c #484441",
+"NU c #484841",
+"p0 c #48758c",
+"q5 c #4885b7",
+"Mq c #49370b",
+"GP c #493808",
+"O4 c #493908",
+"Ct c #493b0f",
+"Cs c #493b10",
+"Rb c #493c18",
+"Kj c #493c19",
+"La c #494534",
+"#P c #497fa0",
+".J c #4985b8",
+"MO c #4a370e",
+"LL c #4a3808",
+"K8 c #4a380f",
+"IT c #4a3908",
+"On c #4a3a07",
+"Iw c #4a3a0c",
+"Kg c #4a3c10",
+"Iy c #4a3d1d",
+"Ox c #4a4537",
+"sH c #4a778d",
+"r6 c #4a788e",
+"go c #4a7b91",
+"Mr c #4b390a",
+"Mi c #4b390d",
+"HG c #4b3a0b",
+"Ju c #4b3a0d",
+"Cr c #4b3a0e",
+"Lf c #4b493d",
+"tq c #4b788e",
+"gS c #4b87b9",
+"Iz c #4c3b08",
+"Lj c #4c3b0b",
+"HJ c #4c3d14",
+"Kk c #4c411a",
+"N6 c #4c4a43",
+"di c #4c7d93",
+"HK c #4d3c09",
+"No c #4d3f1a",
+"Jr c #4d401e",
+"yq c #4d421e",
+"JJ c #4d4634",
+"LO c #4d4d4a",
+"ta c #4d798f",
+".T c #4d88ba",
+"JM c #4e3a0a",
+"DE c #4e3b08",
+"LV c #4e3b0c",
+"LK c #4e3b10",
+"Jn c #4e3c10",
+"H1 c #4e3c12",
+"PI c #4e3d0b",
+"K7 c #4e3e10",
+"Jv c #4e3e12",
+"HI c #4e3e1c",
+"Cv c #4e3f19",
+"Ko c #4e4631",
+"nK c #4e7c96",
+"nJ c #4e86b5",
+"no c #4e88b8",
+"#b c #4e89ba",
+"Ov c #4f3b08",
+"GT c #4f3e0c",
+"Jy c #4f4015",
+"Nd c #4f421e",
+"NB c #4f4324",
+"FS c #4f4422",
+"lV c #4f7e94",
+"jt c #4f88b5",
+"gg c #4f89ba",
+"j6 c #4f8abb",
+"Mh c #503c0e",
+"OD c #503d08",
+"Ms c #503d0d",
+"Og c #503e07",
+"Pb c #503e0b",
+"Jx c #503f15",
+"Np c #50421a",
+"II c #504b44",
+"ru c #507b90",
+"rv c #507b91",
+"Jw c #514115",
+"x8 c #514222",
+"G9 c #514314",
+"Nn c #514527",
+"Nm c #514c37",
+"aW c #517e95",
+"al c #518095",
+"jV c #518096",
+"r. c #518abb",
+"oB c #518bbc",
+"FQ c #523c09",
+"EJ c #523d0a",
+"GO c #523f0c",
+"LJ c #523f10",
+"IU c #52400c",
+"MN c #52410d",
+"Mg c #52410f",
+"HF c #524110",
+"K6 c #524310",
+"Iv c #524510",
+"zM c #524622",
+"NC c #524931",
+"NL c #524e47",
+"NV c #52514e",
+"f. c #528096",
+"oJ c #528bbb",
+"Kf c #534010",
+"H2 c #534108",
+"MX c #534110",
+"MM c #534211",
+"NA c #534321",
+"Bb c #534f46",
+"kH c #537e92",
+"jN c #53829d",
+"gv c #53829e",
+"by c #538cbc",
+"LW c #543f0f",
+"Cq c #54410f",
+"MW c #544116",
+"ND c #544e3f",
+"bN c #548298",
+"mI c #5488b4",
+"mc c #5488b5",
+"PS c #55400b",
+"IA c #554308",
+"LI c #554313",
+"HL c #55440b",
+"Mf c #554513",
+"GS c #554620",
+"N4 c #55492a",
+"G8 c #554d34",
+"ig c #557e93",
+"qv c #5588b5",
+"ot c #5589b5",
+"lK c #5589b6",
+"pf c #558ab5",
+"ge c #558ebd",
+"MY c #564412",
+"FT c #564415",
+"KF c #56450d",
+"NT c #564c31",
+"sw c #568398",
+"if c #568cb5",
+"#l c #568ebd",
+"JN c #57430c",
+"OL c #57430f",
+"Lk c #574310",
+"GU c #57440b",
+"O# c #574713",
+"IJ c #57534a",
+"NK c #575651",
+"q3 c #578599",
+"hm c #578cb3",
+"qE c #578db9",
+"kx c #578ebc",
+"Pm c #58440b",
+"Jm c #584512",
+"Nc c #584819",
+"Nz c #584921",
+"Op c #58534a",
+"ra c #588193",
+"#6 c #58859a",
+"gQ c #588fbd",
+"DD c #59440c",
+"FU c #59460b",
+"Mt c #594715",
+"ML c #594717",
+"xL c #595651",
+"#W c #59859a",
+"#Z c #59869c",
+"h1 c #5988a4",
+"lh c #598db9",
+"n5 c #5990be",
+"Ke c #5a4714",
+"LH c #5a4718",
+"Jz c #5a4819",
+"Ra c #5a491f",
+"EO c #5a4a1e",
+"B. c #5a5547",
+"l4 c #5a8599",
+"GN c #5b4710",
+"MZ c #5b4715",
+"K5 c #5b4918",
+"Nb c #5b4a13",
+"MK c #5b4b19",
+"Be c #5b5132",
+"yf c #5b533c",
+"GZ c #5b5851",
+"sJ c #5b8396",
+"s6 c #5b8498",
+"#I c #5b879c",
+"Me c #5c4b1a",
+"xK c #5c4d2d",
+"M0 c #5d4b1b",
+"DI c #5d4c20",
+"Nq c #5d4c21",
+"NW c #5d5f5d",
+"lC c #5d8fb9",
+"EI c #5e4710",
+"FP c #5e480f",
+"Cp c #5e4915",
+"HE c #5e4b10",
+"Iu c #5e4d14",
+"Gd c #5e4d24",
+"NS c #5e4d2b",
+"Bf c #5e522f",
+"FY c #5e5547",
+"HR c #5e5b53",
+"Ng c #5e5d5a",
+"qh c #5e8497",
+"s3 c #5e8598",
+"ex c #5e899d",
+"#F c #5e8ba2",
+"o3 c #5e8eb6",
+"mx c #5e91bc",
+"eC c #5e91be",
+"k# c #5e92be",
+"hJ c #5e93c0",
+"LX c #5f4912",
+"H3 c #5f4b10",
+"NR c #5f4f2b",
+"Bg c #5f502a",
+"Kp c #5f5a48",
+"Ri c #5f615f",
+"tE c #5f8697",
+"eq c #5f8ead",
+"Px c #604b0b",
+"EP c #604b0e",
+"H. c #604b11",
+"Cw c #604e1e",
+"N3 c #60522e",
+"EZ c #605435",
+"NM c #60543b",
+"ox c #608597",
+"rN c #608798",
+"bB c #608b9f",
+"pF c #608db6",
+"fR c #6092bf",
+"du c #6095c1",
+"Jl c #614b16",
+"Na c #614d19",
+"Bh c #614f25",
+"Nr c #615023",
+"zY c #615028",
+"Ob c #615e56",
+"nU c #618699",
+"oK c #618a9c",
+"IB c #62490f",
+"MJ c #625021",
+"NE c #626057",
+"rw c #62879a",
+"gl c #628da0",
+"Bi c #634c11",
+"Qq c #634d0f",
+"K4 c #634d19",
+"Mu c #634e1b",
+"LG c #634f21",
+"Md c #635121",
+".. c #635d4f",
+"sY c #638697",
+"nY c #63889a",
+"t8 c #63889b",
+"OU c #644e0f",
+"M1 c #645122",
+"Ny c #645326",
+"Q0 c #645b47",
+"yE c #645d49",
+"t9 c #64899b",
+"u. c #648a9c",
+"k. c #648b9e",
+"oY c #6492ba",
+"IV c #654c0e",
+"DJ c #654e10",
+"N# c #655022",
+"Ge c #655119",
+"Ns c #655123",
+"Nx c #655328",
+"Nw c #655429",
+"yU c #655734",
+"mg c #65899b",
+"ll c #658a9c",
+"om c #6595be",
+"HM c #664f10",
+"JA c #66531d",
+"Nt c #665428",
+"NQ c #66552f",
+"Ba c #665e53",
+"Nl c #666055",
+"B# c #666153",
+"qU c #668da0",
+"i8 c #668fa3",
+"#q c #6697c3",
+"KG c #675011",
+"IC c #675110",
+"Kd c #67511d",
+"PH c #675210",
+"M2 c #675427",
+"Nu c #675529",
+"Nv c #675629",
+"zj c #676155",
+"tF c #678b9b",
+"bI c #6790a3",
+"b. c #679ac4",
+"QL c #68500a",
+"Ll c #685112",
+"LY c #685215",
+"N. c #685527",
+"MI c #685628",
+"EY c #686159",
+"z4 c #686257",
+"zW c #686357",
+"pG c #688c9d",
+"ng c #688c9e",
+"mu c #6891a4",
+"lr c #6892a6",
+"DC c #695010",
+"Mv c #695422",
+"R# c #695526",
+"HQ c #695731",
+"HW c #69604c",
+"Kq c #696457",
+"jr c #6994bb",
+"pu c #6995b9",
+"nO c #6998bf",
+".3 c #699ac5",
+".x c #699bc5",
+"JO c #6a5110",
+"zL c #6a572d",
+"E0 c #6a592e",
+"NP c #6a5930",
+"xJ c #6a5c36",
+"ft c #6a90a1",
+"fa c #6a92a5",
+"H# c #6b510c",
+"FO c #6b5110",
+"Cx c #6b5210",
+"GV c #6b5310",
+"A9 c #6b5d38",
+"y# c #6b624c",
+"AG c #6b644f",
+"d5 c #6b8fa1",
+"f4 c #6b91a2",
+"qo c #6b91a3",
+"GM c #6c5214",
+"H4 c #6c5410",
+"EH c #6c5512",
+"O3 c #6c560f",
+"It c #6c581d",
+"LF c #6c582a",
+"NO c #6c5a32",
+"G7 c #6c685b",
+"Lc c #6c6c66",
+"MT c #6c6c67",
+"eM c #6c91a3",
+"Mc c #6d582c",
+"M3 c #6d592b",
+"M9 c #6d5b2b",
+"xI c #6d6147",
+"dw c #6d91a4",
+"cU c #6d93a4",
+"#A c #6d95a7",
+"m. c #6d9dc6",
+".O c #6d9ec6",
+"E3 c #6e5b2e",
+"M8 c #6e5c2e",
+"MR c #6e6b6b",
+"ID c #6f5710",
+"Kc c #6f5925",
+"K3 c #6f5b2a",
+"MH c #6f5b2e",
+"M4 c #6f5c30",
+"Gc c #6f6247",
+"IH c #6f6249",
+"KB c #6f6f6e",
+"qm c #6f95b3",
+"bT c #6f96a8",
+"e2 c #6f9fc7",
+"Co c #705916",
+"Jk c #705922",
+"Mw c #705b27",
+"E1 c #705c2e",
+"M5 c #705d33",
+"M7 c #705e33",
+"M6 c #705f33",
+"fG c #70a0c8",
+"HD c #715a1a",
+"E2 c #715d2e",
+"th c #7191a2",
+"JB c #725c20",
+"E4 c #725e2e",
+"kF c #7292a1",
+"li c #7292a2",
+"oa c #7294a5",
+"Bj c #73550f",
+"FV c #735810",
+"Gf c #735a16",
+"IN c #736b57",
+"qz c #7397a8",
+"ry c #739bbc",
+"#e c #73a1c9",
+"PR c #745812",
+"IW c #745a12",
+"R. c #745f29",
+"MG c #746133",
+"NZ c #74674a",
+"Bn c #746a4e",
+"Rn c #747374",
+"lL c #7493a4",
+"j8 c #7494a5",
+"bR c #74a0c9",
+"h9 c #74a2c9",
+"Mb c #756233",
+"PA c #757268",
+"md c #7594a5",
+"sl c #7595a5",
+"tD c #7695a3",
+"p1 c #7695a6",
+"ka c #7696a5",
+"pO c #769ab9",
+"dm c #76a2c7",
+"er c #76a4ca",
+"Ha c #775b10",
+"Mx c #776332",
+"A8 c #776334",
+"IK c #776b4e",
+"qR c #7798ad",
+"jH c #779bac",
+"aK c #77a3c7",
+"lW c #77a4ca",
+"LE c #786336",
+"N2 c #786339",
+"AF c #787161",
+"PK c #787670",
+"rt c #7896a7",
+"t7 c #7897a6",
+"ju c #7899a8",
+"i. c #789cad",
+"nm c #78a4c9",
+"#r c #78a4ca",
+".9 c #78a5cb",
+"HN c #795d10",
+"Om c #795d13",
+"LZ c #795f21",
+"Kr c #79766a",
+"Oi c #79766f",
+"NJ c #797a77",
+"qw c #7997a8",
+".K c #79a6cb",
+"EQ c #7a5e10",
+"Lm c #7a5f1b",
+"zK c #7a6734",
+"MF c #7a6738",
+"A6 c #7a6834",
+"yQ c #7a7465",
+"Qa c #7a7565",
+"q1 c #7a99a9",
+"iS c #7a9aaa",
+"hO c #7aa0bd",
+"Ou c #7b5f13",
+"A7 c #7b6435",
+"ya c #7b6b45",
+"Gb c #7b7360",
+"Mm c #7b7a79",
+"tl c #7b929d",
+"u# c #7b98a7",
+"sC c #7b99a6",
+"r0 c #7b9aa8",
+"rA c #7b9aab",
+"#9 c #7b9faf",
+"bl c #7ba3bf",
+"jU c #7ba7cc",
+"P7 c #7c6013",
+"IE c #7c6110",
+"EG c #7c6216",
+"FN c #7c6218",
+"KH c #7c6219",
+"LR c #7c7971",
+"Ks c #7c7b71",
+"gU c #7c9fb0",
+"oL c #7ca4c5",
+"ab c #7ca7cc",
+"Gg c #7d6011",
+"DB c #7d6113",
+"Jj c #7d642e",
+"My c #7d6837",
+"NN c #7d693a",
+"yV c #7d7b6f",
+"fY c #7da0b0",
+"dN c #7da0b1",
+"qr c #7ea5c6",
+"q4 c #7ea8cd",
+"Pa c #7f6210",
+"Of c #7f6213",
+"zZ c #7f6422",
+"GL c #7f651d",
+"K2 c #7f6737",
+"JC c #7f6923",
+"AC c #7f776b",
+"AD c #7f796b",
+"AE c #7f7a6b",
+"OO c #7f7b79",
+"ma c #7f9baa",
+".0 c #7faacd",
+"DK c #806310",
+"OC c #806313",
+"E6 c #806622",
+"E5 c #80682a",
+"A5 c #80693a",
+"Ma c #806a3b",
+"ME c #806c3e",
+"ik c #80a0b0",
+"ch c #80a0b2",
+"gs c #80a1b0",
+"mC c #80a2b1",
+"k8 c #80a7cb",
+"E7 c #816517",
+"HC c #816622",
+"PV c #817b72",
+"f0 c #81a1b1",
+"n6 c #81abce",
+"Q9 c #826a2d",
+"F0 c #827a6d",
+"tG c #829eaa",
+"eK c #82a1b1",
+"fq c #82a2b1",
+"AB c #837a68",
+"Ga c #837c6f",
+"Kt c #838077",
+"Pe c #838280",
+"IQ c #838380",
+"zT c #838381",
+"qu c #839dac",
+"tC c #839eaa",
+"aj c #83a3b3",
+"f# c #83accf",
+"GW c #846412",
+"Cn c #84691a",
+"O. c #84691f",
+"Kb c #846a36",
+"Q1 c #846c35",
+"yg c #84807c",
+"g9 c #84a5b4",
+"gb c #84abcf",
+"H5 c #856211",
+"JP c #856516",
+"Is c #85662a",
+"MD c #857040",
+"A4 c #85723f",
+"Az c #857a64",
+"dv c #85a5b5",
+"aR c #85a6b5",
+"aQ c #85abcd",
+"fp c #85adcf",
+"oC c #85add0",
+"QK c #86660d",
+"HO c #866610",
+"y8 c #867549",
+"Nk c #86837e",
+"hL c #86a6b5",
+"tw c #86a7b6",
+"o9 c #86abcb",
+"yz c #87764d",
+"AA c #877c67",
+"Ak c #877e62",
+"br c #87a7b6",
+"b1 c #87a8bb",
+"#x c #87afd0",
+"Qp c #886813",
+"L0 c #886c2b",
+"Mz c #886e3f",
+"JD c #88703c",
+"LD c #88703f",
+"MA c #887240",
+"Ay c #887a60",
+"Bp c #88816b",
+"bY c #88a8b8",
+"E8 c #89670c",
+"Gh c #896a15",
+"Q8 c #897031",
+"MB c #897244",
+"MC c #897246",
+"zw c #897850",
+"DQ c #897e5e",
+"y7 c #89816e",
+"G6 c #898785",
+"HT c #898786",
+"rl c #89a3b1",
+"fW c #89a9b8",
+"M# c #8a7544",
+"CE c #8a7e5f",
+"EW c #8a7f5d",
+"xP c #8a8783",
+"LP c #8a8b8a",
+"#i c #8ab1d1",
+"Pl c #8b6b17",
+"yA c #8b7951",
+"y. c #8b8681",
+"HY c #8b8c8b",
+"lt c #8ba9b7",
+"o0 c #8ba9c3",
+"cB c #8baab8",
+"sv c #8baab9",
+"#Q c #8babb9",
+"iw c #8babba",
+"hr c #8bb2d2",
+"Cy c #8c6911",
+"Ln c #8c6e21",
+"Q2 c #8c712f",
+"Q7 c #8c7131",
+"Q3 c #8c7331",
+"zJ c #8c763c",
+"Ku c #8c867e",
+"on c #8ca7b5",
+"fc c #8cafd0",
+"Hb c #8d6c14",
+"Q4 c #8d7231",
+"Br c #8d836f",
+"yt c #8d8575",
+"G# c #8d877d",
+"yn c #8d8d87",
+"x4 c #8d8d88",
+"pI c #8daac2",
+"dl c #8dacba",
+"oq c #8db3d3",
+"E9 c #8e6c0a",
+"Q5 c #8e7231",
+"Q6 c #8e7431",
+"N1 c #8e7442",
+"JG c #8e7e58",
+"zV c #8e8a86",
+"NF c #8e8f8b",
+"sL c #8ea6b3",
+"oR c #8eabc3",
+"oc c #8eabc4",
+"FW c #8f6e14",
+"GK c #8f7428",
+"A3 c #8f7843",
+"zb c #8f7f5a",
+"Ax c #8f8261",
+"Kv c #8f8a81",
+"N7 c #8f8a85",
+"Qu c #8f8b81",
+"G. c #8f8b85",
+"q# c #8fa7b4",
+"#0 c #8fadbb",
+".4 c #8fb4d4",
+"DA c #907019",
+"zv c #908a7b",
+"qK c #90a7b1",
+"lA c #90adba",
+"gY c #90aebb",
+".N c #90b4d4",
+"OK c #916d13",
+"IX c #916f15",
+"Kx c #918c82",
+"Kw c #918d82",
+"NY c #918e87",
+"t6 c #91a8b3",
+"#C c #91b5d4",
+"L1 c #927634",
+"F2 c #928a6f",
+"hH c #92aab4",
+"xS c #93711c",
+"F. c #93720c",
+"IG c #93742a",
+"K1 c #937743",
+"JE c #937942",
+"cA c #93b0be",
+"#. c #93b7d5",
+"Bk c #946d17",
+"GX c #947113",
+"z8 c #947b49",
+"nC c #94acb9",
+"oe c #94b1c9",
+"IF c #957011",
+"Pw c #957317",
+"EF c #95741d",
+"FM c #957625",
+"LC c #957e49",
+"Aw c #958661",
+"Ir c #967733",
+"HB c #967932",
+"Ji c #96793f",
+"JI c #969696",
+"ua c #96aab5",
+"oj c #96afc1",
+"iL c #96b7ce",
+"kC c #96b9d6",
+"Ka c #977c44",
+"ye c #97824e",
+"G1 c #979185",
+"Ky c #979188",
+"O7 c #979895",
+"NX c #979997",
+"sS c #97acb5",
+"jK c #97b1bf",
+"#O c #97b9d6",
+"aZ c #97b9d7",
+"Gi c #987415",
+"Cm c #987823",
+"GY c #987a31",
+"M. c #98814f",
+"Nh c #98969a",
+"sT c #98adb5",
+"bH c #98b4c1",
+"HP c #997511",
+"HU c #99824c",
+"fg c #99b7d1",
+"x7 c #9a7311",
+"Au c #9a895e",
+"QZ c #9a9b9a",
+".h c #9abcd8",
+"KI c #9b7b20",
+"Av c #9b8961",
+"os c #9baeb9",
+"dp c #9bbcd8",
+".q c #9bbdd8",
+"ER c #9c7614",
+"JQ c #9c781c",
+"zI c #9c8442",
+"yb c #9c844f",
+"yB c #9c854c",
+"iB c #9cb4bf",
+"l. c #9cb6cd",
+"nD c #9cb7d0",
+".i c #9cbdd9",
+"L2 c #9d8043",
+"A2 c #9d8449",
+"JH c #9d988f",
+"j. c #9db9d0",
+"cC c #9dbdd9",
+"H6 c #9e7b18",
+"yy c #9e8546",
+"F9 c #9e9b98",
+"QT c #9e9c9e",
+"QU c #9e9d9e",
+"Ld c #9e9e9e",
+"re c #9eb5c7",
+"#2 c #9ebed9",
+"F# c #9f7a17",
+"L9 c #9f8a56",
+"oI c #9fbdd7",
+"iy c #9fbed9",
+".S c #9fbfda",
+"zg c #a09578",
+"z6 c #a09888",
+"y6 c #a09c94",
+"CC c #a09c96",
+"lU c #a0bfd9",
+"z0 c #a17a13",
+"PG c #a17e17",
+"Lo c #a18031",
+"N0 c #a1894c",
+"Rm c #a1a0a1",
+"kc c #a1b2bb",
+"gh c #a1bac6",
+"mB c #a1bbd4",
+"e5 c #a1c0da",
+"OT c #a27b1b",
+"JF c #a28337",
+"yu c #a28951",
+"LB c #a28c57",
+"At c #a28d60",
+"zc c #a29f9a",
+"y3 c #a2a09e",
+"QV c #a2a0a2",
+"ys c #a2a1a2",
+"Rl c #a2a2a2",
+"mZ c #a2bed6",
+"g7 c #a2c1db",
+"Hc c #a37d18",
+"rS c #a3b4bb",
+"m3 c #a3b5bd",
+"kE c #a3b8c2",
+"dY c #a3bcc7",
+"mv c #a3c0d8",
+"DL c #a47d14",
+"G3 c #a4894b",
+"y2 c #a4a09e",
+"z9 c #a4a29d",
+"pU c #a4b9c4",
+"sa c #a4b9c7",
+"ds c #a4bdc8",
+"k3 c #a4c1d9",
+"ES c #a58128",
+"y1 c #a5a29f",
+"Rk c #a5a4a5",
+"jz c #a5b6bf",
+"hc c #a5bed4",
+"kt c #a5c2da",
+"yT c #a6822d",
+"K0 c #a68c54",
+"QW c #a6a4a6",
+"QX c #a6a6a6",
+"sq c #a6b2bd",
+"tB c #a6b6bc",
+"FX c #a77d19",
+"FL c #a7872e",
+"Or c #a7997a",
+"Oj c #a7a08e",
+"Rj c #a7a7a7",
+"pz c #a7b9c2",
+"GJ c #a88737",
+"zx c #a88b4b",
+"L3 c #a88b4c",
+"Am c #a89056",
+"L8 c #a8925b",
+"Kz c #a8a39c",
+"y0 c #a8a5a0",
+"QY c #a8a8a8",
+"yr c #a8aaa6",
+"kS c #a8b3ba",
+"iY c #a8b9c2",
+"qa c #a8bacb",
+"o4 c #a8bccc",
+"kk c #a8beca",
+"q. c #a8bed0",
+"cR c #a8c4dd",
+"Gj c #a98118",
+"Fa c #a98119",
+"DM c #a9852c",
+"Jh c #a98c4d",
+"yZ c #a9a7a0",
+"Mn c #a9a9a8",
+"ko c #a9bbc6",
+"iP c #a9bcd0",
+"jX c #a9c3dd",
+"hz c #a9c3de",
+"#g c #a9c5de",
+"Ol c #aa821b",
+"Dz c #aa8322",
+"HA c #aa8a3f",
+"Al c #aa9058",
+"EU c #aaa7a5",
+"z5 c #aaa9aa",
+"x9 c #aaaaa8",
+"xz c #aaacaa",
+"kR c #aab5bb",
+"nz c #aab7c0",
+".r c #aac6de",
+"zH c #ab8f49",
+"G4 c #aba7a1",
+"xx c #aba9ab",
+"yY c #abaaa2",
+"xU c #abaaaa",
+"G0 c #abaaab",
+"ny c #abb8c0",
+"gV c #abc7de",
+"Cz c #ac8315",
+"Ot c #ac851c",
+"Qb c #acaaa4",
+"NG c #acacac",
+"kT c #acb7be",
+"nx c #acb9c1",
+"nA c #acbac3",
+"s7 c #acbbc5",
+"ir c #acbdc5",
+"fM c #acc2cd",
+"PQ c #ad871d",
+"K# c #ad9154",
+"L4 c #ad9254",
+"Ao c #ad975f",
+"Ap c #ad9763",
+"Aq c #ad9766",
+"An c #ad985f",
+"Oc c #ada8a1",
+"y4 c #adabaa",
+"nw c #adbac3",
+"QJ c #ae8412",
+"O2 c #ae841b",
+"EE c #ae892a",
+"As c #ae9563",
+"Ar c #ae9766",
+"Pq c #aeaead",
+"xH c #aeafad",
+"kQ c #aeb8bf",
+"r9 c #aebdc5",
+"cx c #aec4ce",
+"DU c #af872a",
+"Iq c #af904c",
+"xY c #afaca3",
+"yX c #afaca4",
+"Bo c #afaeae",
+"ur c #afafb1",
+"kP c #afb9c0",
+"kO c #afb9c1",
+"mG c #afbbc4",
+"q8 c #afbcc1",
+"nv c #afbcc5",
+"s2 c #afbdc5",
+"mw c #afbfc7",
+"fJ c #afcae0",
+"Oe c #b08618",
+"IY c #b08722",
+"xQ c #b08c36",
+"Oz c #b09966",
+"xZ c #b0afa9",
+"kN c #b0bac1",
+"nu c #b0bdc6",
+"m0 c #b0bfc8",
+"nq c #b0c0c9",
+".7 c #b0cae0",
+"N9 c #b18927",
+"zB c #b19248",
+"zA c #b1924a",
+"zz c #b1924b",
+"zy c #b1934b",
+"G2 c #b1934c",
+"L7 c #b19761",
+"yP c #b1ada3",
+"yN c #b1aea4",
+"xW c #b1afaa",
+"zU c #b1b0af",
+"Le c #b1b0b0",
+"iK c #b1c3d5",
+"bb c #b1c6d0",
+"Bl c #b28a19",
+"H7 c #b28b1d",
+"xR c #b28b24",
+"KJ c #b28e2e",
+"xX c #b2afa5",
+"yW c #b2afa6",
+"Nj c #b2b0b0",
+"NI c #b2b3b2",
+"kM c #b2bcc3",
+"q0 c #b2bec6",
+"lZ c #b2c2ca",
+"gA c #b2c3d2",
+"#X c #b2c4d0",
+"Fb c #b38819",
+"Hd c #b3891d",
+"OB c #b38a1c",
+"OG c #b3ada4",
+"yO c #b3afa5",
+"DO c #b3b0af",
+"HS c #b3b1b3",
+"F5 c #b3b3af",
+"us c #b3b3b4",
+"kL c #b3bdc4",
+"jq c #b3bec7",
+"qC c #b3bfc4",
+"nt c #b3c0c9",
+"hP c #b3c4cc",
+"bC c #b3c7d1",
+"mE c #b3cce2",
+"Lp c #b49042",
+"A1 c #b49655",
+"L5 c #b4995d",
+"L6 c #b49961",
+"gz c #b4c5d4",
+"k9 c #b4c8d1",
+".p c #b4cde2",
+"y9 c #b59032",
+"LA c #b59c67",
+"OP c #b5a37c",
+"Qv c #b5b2af",
+"F7 c #b5b4b1",
+"G5 c #b5b5b4",
+"kK c #b5bfc6",
+"tH c #b5c0c4",
+"nE c #b5c4cc",
+"gy c #b5c5d5",
+"gw c #b5c6d5",
+"hB c #b5c9d2",
+"pW c #b5c9d9",
+".j c #b5cde2",
+"F6 c #b6b4af",
+"FZ c #b6b5b6",
+"xA c #b6b6b6",
+"LQ c #b6b7b6",
+"kJ c #b6c0c7",
+"kI c #b6c1c8",
+"ns c #b6c4cc",
+"gx c #b6c6d6",
+"lz c #b6c9db",
+"je c #b6cad3",
+"oD c #b6cee3",
+"P6 c #b78e20",
+"MS c #b7b7ba",
+"of c #b7c7ce",
+"qq c #b7c9db",
+"JR c #b88d26",
+"Cl c #b88e2d",
+"yd c #b89b5c",
+"zC c #b89c4f",
+"Qx c #b8a481",
+"Pr c #b8b0a1",
+"yM c #b8b5ad",
+"F8 c #b8b5b3",
+"xu c #b8b5b8",
+"KA c #b8b6b7",
+"xr c #b8b6b8",
+"F4 c #b8b7b4",
+"xC c #b8b7b8",
+"EX c #b8bab8",
+"nr c #b8c6ce",
+"dV c #b8cad2",
+"id c #b8cadc",
+"GI c #b99748",
+"KZ c #b99d63",
+"xl c #b9b6b9",
+"xt c #b9b7b9",
+"QS c #b9b8b9",
+"xq c #b9bab9",
+"jo c #b9cbdd",
+"pb c #b9ccdc",
+".g c #b9d0e4",
+"DV c #ba8c1f",
+"za c #ba953b",
+"zh c #ba9b4f",
+"xj c #bab9ba",
+"xw c #bababa",
+"IP c #babbba",
+"rX c #bac4c7",
+"gD c #bacada",
+"gB c #bacbda",
+"qW c #baccdd",
+"lc c #bacdde",
+".w c #bad1e4",
+"P# c #bb8f1b",
+"DW c #bb8f21",
+"zi c #bb973b",
+"yc c #bb9c5a",
+"uq c #bbbabd",
+"tm c #bbbbbb",
+"u9 c #bbbcbb",
+"t5 c #bbc5cb",
+"iX c #bbc6cf",
+"cN c #bbced6",
+"mD c #bbcede",
+".k c #bbd2e5",
+"OH c #bc973f",
+"OZ c #bc9d58",
+"n1 c #bcbabc",
+"xs c #bcbbbc",
+"s9 c #bcc9d1",
+"gC c #bccddc",
+"#B c #bcced7",
+"l9 c #bccfdf",
+"j5 c #bccfe0",
+"iA c #bcd2e5",
+"yp c #bd8f15",
+"x6 c #bd8f17",
+"Gk c #bd901e",
+"yD c #bd973b",
+"zf c #bdbab6",
+"xk c #bdbabd",
+"w9 c #bdbcbd",
+"tn c #bdbdbd",
+"xp c #bdbebd",
+"hE c #bdcfe1",
+"lF c #bdd0e0",
+"fX c #bdd0e1",
+"mR c #bdd1e3",
+"CA c #be9226",
+"DZ c #be941e",
+"Qf c #bead81",
+"PL c #bebab1",
+"y5 c #bebebc",
+"ub c #bec7cd",
+"kG c #bec7d2",
+"io c #bec9d2",
+"og c #becad5",
+"lw c #beced6",
+"bG c #bed0d8",
+"Fc c #bf901f",
+"Qo c #bf921e",
+"OJ c #bf941c",
+"DY c #bf941e",
+"Lq c #bf9c4f",
+"Jg c #bfa061",
+"Pg c #bfa671",
+"xy c #bfbdbf",
+"n2 c #bfbebf",
+"lk c #bfc8d3",
+"hM c #bfc9d2",
+"na c #bfced5",
+"m1 c #bfcedd",
+"iF c #bfcfd7",
+"jf c #bfd0d7",
+"nb c #bfd2e2",
+".L c #bfd4e6",
+"ED c #c09834",
+"FK c #c09c43",
+"K. c #c0a66a",
+"Lz c #c0a76f",
+"x. c #c0bec0",
+"xv c #c0bfc0",
+"xB c #c0c1c0",
+"lO c #c0c9d4",
+"kA c #c0ccda",
+"lY c #c0d0d7",
+"fe c #c0d1d8",
+"oo c #c0d2e4",
+"Ip c #c1a05e",
+"n0 c #c1bfc1",
+"xi c #c1c0c1",
+"xo c #c1c1c1",
+"sD c #c1c8cb",
+"jn c #c1d0d7",
+"o8 c #c1d1de",
+"ev c #c1d2da",
+"fH c #c1d5e7",
+"z1 c #c2931c",
+"Dy c #c2972e",
+"yS c #c29834",
+"z7 c #c29d4e",
+"Hz c #c2a058",
+"w# c #c2bfc2",
+"w0 c #c2c0c2",
+"ut c #c2c1c1",
+"mN c #c2c1c2",
+"zd c #c2c2bf",
+"uR c #c2c3c2",
+"tp c #c2c9ce",
+"rE c #c2cad3",
+"me c #c2cad6",
+"oM c #c2cdd3",
+"aN c #c2d2da",
+"fU c #c2d2df",
+"nQ c #c2d4e5",
+".s c #c2d6e7",
+"DX c #c3941e",
+"yo c #c3962b",
+"x5 c #c3962e",
+"uS c #c3c1c3",
+"mM c #c3c2c3",
+"zo c #c3c3c2",
+"to c #c3c3c3",
+"qG c #c3c9cd",
+"tA c #c3cacc",
+"nW c #c3cbd6",
+"jY c #c3d3da",
+"aa c #c3d3db",
+"jp c #c3d5e0",
+"ah c #c3d5e4",
+"h4 c #c3d6e6",
+"fk c #c3d6e7",
+"zG c #c49f50",
+"v. c #c4c2c4",
+"oy c #c4c3c4",
+"zn c #c4c4c4",
+"xG c #c4c5c4",
+"#m c #c4d8e8",
+"IZ c #c59826",
+"Pk c #c59920",
+"A0 c #c5a55d",
+"xm c #c5c2c5",
+"uT c #c5c3c4",
+"lR c #c5c3c5",
+"mk c #c5c4c5",
+"vN c #c5c5c5",
+"oO c #c5cad2",
+"rO c #c5cbcd",
+"o5 c #c5cfd7",
+"j4 c #c5d3da",
+"ib c #c5d4db",
+"bU c #c5d5dc",
+"n7 c #c5d8e8",
+"D0 c #c6961e",
+"D1 c #c6971e",
+"KY c #c6ab74",
+"DT c #c6bfba",
+"n3 c #c6c4c6",
+"mL c #c6c5c6",
+"sn c #c6c5c7",
+"wI c #c6c7c6",
+"sp c #c6c7cc",
+"pe c #c6cbd1",
+"ow c #c6cdda",
+"h. c #c6cfda",
+"iJ c #c6d5dc",
+"ew c #c6d5e5",
+".f c #c6d9e9",
+"He c #c7991d",
+"Ck c #c79d36",
+"KK c #c79f3a",
+"yR c #c79f42",
+"xn c #c7c5c7",
+"xV c #c7c6c3",
+"nh c #c7c6c7",
+"ml c #c7c7c7",
+"tZ c #c7c7c9",
+"w1 c #c7c8c7",
+"t0 c #c7c8c9",
+"ro c #c7d4e2",
+"D2 c #c89b1e",
+"PY c #c8b892",
+"PB c #c8c1b2",
+"v1 c #c8c5c8",
+"zm c #c8c6c4",
+"ze c #c8c6c6",
+"mj c #c8c6c8",
+"lS c #c8c7c8",
+"sm c #c8c7c9",
+"vX c #c8c8c8",
+"tY c #c8c8c9",
+"xc c #c8c9c8",
+"jO c #c8d6e1",
+"aE c #c8dae9",
+"Lr c #c9a65b",
+"Qe c #c9bead",
+"v2 c #c9c6c9",
+"yL c #c9c7c5",
+"mK c #c9c7c9",
+"lQ c #c9c8c9",
+"so c #c9c8cb",
+"vY c #c9c9c9",
+"kU c #c9cbce",
+"lg c #c9d1d6",
+"sb c #c9d2d8",
+"o. c #c9d6e1",
+"mo c #c9dae8",
+"eJ c #c9dbea",
+"Bm c #ca9a1c",
+"Ly c #cab178",
+"Oy c #cac5c4",
+"v3 c #cac7ca",
+"lP c #cac8ca",
+"jG c #cac9ca",
+"jF c #cacaca",
+"wc c #cacbca",
+"sj c #cacdd1",
+"tI c #cacfd0",
+"tb c #cacfd5",
+"fo c #cad8df",
+"oH c #cad9e6",
+"Fd c #cb9a21",
+"Qg c #cba852",
+"wH c #cbc8cb",
+"mi c #cbc9cb",
+"F3 c #cbcac9",
+"i3 c #cbcacb",
+"sZ c #cbcbcb",
+"xD c #cbcccb",
+"up c #cbcdce",
+".6 c #cbd9eb",
+"CK c #ccc6bf",
+"mJ c #ccc9cc",
+"zl c #cccac9",
+"uF c #cccacb",
+"nZ c #cccacc",
+"i4 c #cccbcc",
+"t1 c #cccccc",
+"tX c #cccdce",
+"ux c #cccecf",
+"sG c #cccfd4",
+"jP c #ccd8e5",
+"Gl c #cd9e20",
+"Af c #cdc6c7",
+"uU c #cdcaca",
+"wB c #cdcacd",
+"xb c #cdcbcc",
+"jE c #cdcbcd",
+"uG c #cdcccc",
+"iu c #cdcccd",
+"ri c #cdccce",
+"uk c #cdcdcd",
+"r2 c #cdcdce",
+"uy c #cdcfd0",
+"sK c #cdd1d2",
+"rZ c #cdd1d3",
+"j2 c #cdd3df",
+"gt c #cdd7e1",
+"ji c #cdd9df",
+"bX c #cddae0",
+"fj c #cddae1",
+".o c #cdddeb",
+"iD c #cddeec",
+"JS c #cea232",
+"IM c #cea43b",
+"Ag c #cecaca",
+"wC c #cecbce",
+"By c #ceccca",
+"ke c #ceccce",
+"Bw c #cecdcc",
+"uH c #cecdcd",
+"kV c #cecdce",
+"u4 c #cececd",
+"vg c #cecece",
+"ql c #cececf",
+"vh c #cecfce",
+"uw c #ced0d1",
+"rQ c #ced3d7",
+"rs c #ced7dc",
+"pj c #ced7e2",
+"iG c #cedae0",
+"QI c #cf9a17",
+"D3 c #cf9f1e",
+"H8 c #cf9f22",
+"GH c #cfab5e",
+"Lx c #cfb77d",
+"v0 c #cfcccf",
+"Ae c #cfcdcb",
+"Qw c #cfcdcc",
+"uu c #cfcdce",
+"iv c #cfcdcf",
+"kd c #cfcecf",
+"Bx c #cfcfce",
+"kf c #cfcfcf",
+"Ac c #cfd0ce",
+"vZ c #cfd0cf",
+"tW c #cfd1d2",
+"si c #cfd1d3",
+"qd c #cfd3d4",
+"jQ c #cfdae8",
+"jR c #cfdde8",
+"OS c #d09d21",
+"CL c #d0a12b",
+"FJ c #d0a84c",
+"J9 c #d0b67a",
+"Bz c #d0cccb",
+"mh c #d0cdd0",
+"x0 c #d0cecf",
+"hW c #d0ced0",
+"uI c #d0cfcf",
+"i2 c #d0cfd0",
+"jD c #d0cfd1",
+"vD c #d0d0d0",
+"qM c #d0d0d2",
+"wl c #d0d1d0",
+"tV c #d0d1d3",
+"cI c #d0dce2",
+"gc c #d0dded",
+"jS c #d0dee9",
+"dO c #d0dfed",
+"Dx c #d1a438",
+"PC c #d1ad5c",
+"Ls c #d1b067",
+"Io c #d1b46e",
+"wr c #d1ced1",
+"qk c #d1cfd0",
+"hV c #d1cfd1",
+"zk c #d1d0cf",
+"qN c #d1d0d0",
+"i5 c #d1d0d1",
+"Ad c #d1d1cf",
+"ul c #d1d1d1",
+"qQ c #d1d1d2",
+"pN c #d1d1d3",
+"wa c #d1d2cf",
+"vU c #d1d2d1",
+"tS c #d1d3d3",
+"tU c #d1d3d5",
+"rU c #d1d3d8",
+"tR c #d1d4d3",
+"uv c #d1d4d4",
+"tz c #d1d4d7",
+"ld c #d1e0ed",
+"BB c #d2a636",
+"Cj c #d2a842",
+"Jf c #d2b477",
+"xF c #d2cfd2",
+"yi c #d2d0d0",
+"wv c #d2d0d1",
+"jB c #d2d0d2",
+"s0 c #d2d1d1",
+"jC c #d2d1d2",
+"Oq c #d2d2d1",
+"uW c #d2d2d2",
+"ww c #d2d3d1",
+"vE c #d2d3d2",
+"tT c #d2d3d4",
+"tJ c #d2d4d4",
+"t4 c #d2d4d7",
+"mz c #d2d6d8",
+"hu c #d2dae2",
+"o7 c #d2dae3",
+"gm c #d2dae5",
+"cz c #d2dee4",
+"#K c #d2e1ee",
+"D4 c #d3a421",
+"N8 c #d3a636",
+"EC c #d3a843",
+"KX c #d3be86",
+"BA c #d3cdca",
+"vW c #d3d0d3",
+"qj c #d3d1d2",
+"i1 c #d3d1d3",
+"qO c #d3d2d2",
+"n4 c #d3d2d3",
+"wV c #d3d3d2",
+"tg c #d3d3d3",
+"qH c #d3d3d6",
+"vc c #d3d4d3",
+"tM c #d3d4d5",
+"rY c #d3d5d5",
+"o6 c #d3d9e0",
+".Q c #d3e2ee",
+"Fe c #d4a322",
+"z. c #d4a326",
+"Hy c #d4af68",
+"AZ c #d4b266",
+"wJ c #d4d1d4",
+"r3 c #d4d2d3",
+"it c #d4d2d4",
+"qP c #d4d3d3",
+"i0 c #d4d3d4",
+"tf c #d4d4d4",
+"nf c #d4d4d8",
+"uV c #d4d5d4",
+"tN c #d4d5d6",
+"sE c #d4d6d5",
+"pK c #d4d6d9",
+"q2 c #d4dee8",
+"z2 c #d5a21f",
+"PF c #d5a421",
+"Lt c #d5b671",
+"hX c #d5d2d5",
+"u3 c #d5d3d3",
+"qi c #d5d3d4",
+"iZ c #d5d3d5",
+"rj c #d5d4d4",
+"mO c #d5d4d5",
+"tL c #d5d4d7",
+"sh c #d5d5d5",
+"vb c #d5d6d5",
+"pH c #d5d6d6",
+"qX c #d5dee3",
+"hy c #d5e0e6",
+"cK c #d5e2eb",
+"jT c #d5e3ee",
+"Hf c #d6a723",
+"IL c #d6a837",
+"uM c #d6d3d5",
+"oN c #d6d3d6",
+"hh c #d6d4d6",
+"pE c #d6d4d7",
+"vf c #d6d5d4",
+"r4 c #d6d5d5",
+"jA c #d6d5d6",
+"tK c #d6d5d9",
+"wF c #d6d6d5",
+"ni c #d6d6d6",
+"jy c #d6d7d6",
+"qe c #d6d7d7",
+"jl c #d6d9e1",
+"l5 c #d6dbe1",
+"do c #d6e0e5",
+".l c #d6e4ef",
+"O1 c #d7a421",
+"Gm c #d7a624",
+"yv c #d7a72c",
+"Qy c #d7a838",
+"HV c #d7ac3b",
+"Lw c #d7bb7f",
+"Ah c #d7d1d1",
+"Qd c #d7d2c9",
+"Aj c #d7d3d7",
+"hi c #d7d4d6",
+"ob c #d7d4d7",
+"pM c #d7d5d6",
+"gO c #d7d5d7",
+"zq c #d7d6d5",
+"r5 c #d7d6d6",
+"is c #d7d6d7",
+"rx c #d7d6da",
+"vu c #d7d7d6",
+"jx c #d7d7d7",
+"wN c #d7d7d8",
+"pv c #d7d7d9",
+"tQ c #d7d7da",
+"sF c #d7d8d7",
+"nL c #d7d8d9",
+"rP c #d7d8de",
+"oZ c #d7d9db",
+"g6 c #d7d9dd",
+"gE c #d7dce2",
+"nS c #d7e0e5",
+"cE c #d7e2e7",
+"f2 c #d7e2eb",
+".P c #d7e4ef",
+"yC c #d8ad4d",
+"zF c #d8af51",
+"Lu c #d8ba75",
+"Lv c #d8bb7f",
+"u2 c #d8d5d6",
+"vB c #d8d5d8",
+"yh c #d8d6d5",
+"te c #d8d6d6",
+"rk c #d8d6d7",
+"hU c #d8d6d8",
+"uQ c #d8d7d6",
+"hS c #d8d7d8",
+"wR c #d8d8d6",
+"wM c #d8d8d7",
+"iW c #d8d8d8",
+"p6 c #d8d8da",
+"wL c #d8d9d8",
+"s1 c #d8d9db",
+"hQ c #d8dcdf",
+"ol c #d8dee5",
+"bD c #d8e3e7",
+"b7 c #d8e3ec",
+".1 c #d8e5f0",
+"KL c #d9ae4e",
+"AH c #d9b766",
+"IO c #d9d6d7",
+"uO c #d9d6d9",
+"hg c #d9d7d8",
+"f7 c #d9d7d9",
+"wn c #d9d8d7",
+"pL c #d9d8d8",
+"he c #d9d8d9",
+"ui c #d9d8db",
+"uE c #d9d9d9",
+"ok c #d9d9da",
+"wb c #d9dad9",
+"p9 c #d9dadb",
+"tP c #d9dadc",
+"pA c #d9dde1",
+"n. c #d9e0e6",
+"pc c #d9e3e7",
+"#J c #d9e3e8",
+"fs c #d9e3ec",
+"d4 c #d9e3ed",
+"bt c #d9e4ed",
+"oE c #d9e5f0",
+"PX c #dad3c7",
+"wx c #dad6d8",
+"ve c #dad7d5",
+"u1 c #dad7d7",
+"zp c #dad7d8",
+"hT c #dad7d9",
+"uY c #dad7da",
+"u0 c #dad8d8",
+"sf c #dad8d9",
+"fy c #dad8da",
+"t2 c #dad9d9",
+"hR c #dad9da",
+"sg c #dad9db",
+"vF c #dadad9",
+"kb c #dadada",
+"uo c #dadadc",
+"s8 c #dadadd",
+"uc c #dadbde",
+"pX c #dae3e8",
+"i7 c #dae4e8",
+"b4 c #dae5ee",
+"z3 c #dba932",
+"zE c #dbb359",
+"w5 c #dbd7d8",
+"Ai c #dbd7d9",
+"vt c #dbd8d8",
+"lj c #dbd8db",
+"td c #dbd9d6",
+"gN c #dbd9da",
+"fz c #dbd9db",
+"mH c #dbd9dc",
+"m4 c #dbdada",
+"gK c #dbdadb",
+"t3 c #dbdadc",
+"um c #dbdadd",
+"vG c #dbdbda",
+"oz c #dbdbdb",
+"uh c #dbdbdd",
+"vH c #dbdcdb",
+"#G c #dbe4e9",
+"ic c #dbe5e9",
+"fN c #dbe7f1",
+"PP c #dca924",
+"I0 c #dcaa2e",
+"Ff c #dcab22",
+"O8 c #dcb13d",
+"PZ c #dcb44c",
+"EB c #dcb454",
+"zD c #dcb458",
+"v# c #dcd7d7",
+"vv c #dcd9db",
+"uZ c #dcd9dc",
+"wQ c #dcdad6",
+"vi c #dcdada",
+"hf c #dcdadb",
+"f6 c #dcdadc",
+"mb c #dcdadd",
+"rT c #dcdade",
+"uP c #dcdbda",
+"vI c #dcdbdb",
+"gJ c #dcdbdc",
+"vK c #dcdbdd",
+"lJ c #dcdbde",
+"jw c #dcdcdc",
+"vL c #dcdddc",
+"qD c #dcddde",
+"rn c #dcdee0",
+"iH c #dcdee5",
+"p4 c #dce6f0",
+"D5 c #dda821",
+"Ci c #ddb14f",
+"Bv c #dddad9",
+"se c #dddada",
+"uJ c #dddadb",
+"lM c #dddadc",
+"lN c #dddadd",
+"ud c #dddbdc",
+"gH c #dddbdd",
+"uj c #dddbde",
+"nM c #dddcdc",
+"gI c #dddcdd",
+"un c #dddcdf",
+"iV c #dddddd",
+"rD c #dddddf",
+"vV c #dddedd",
+"kY c #dde5e9",
+"aS c #dde8f1",
+".2 c #dde8f2",
+"DP c #deaf39",
+"Dw c #deb246",
+"vJ c #dedbda",
+"sd c #dedbdb",
+"sc c #dedbdc",
+"hY c #dedbdd",
+"iO c #dedbde",
+"wO c #dedcdc",
+"gM c #dedcdd",
+"gG c #dedcde",
+"tO c #dedce0",
+"vy c #dedddc",
+"vx c #dedddd",
+"fx c #deddde",
+"f5 c #dedddf",
+"m5 c #dedede",
+"wm c #dededf",
+"ug c #dedee0",
+"vd c #dedfde",
+"pD c #dee0e2",
+"pa c #dee3e6",
+"#s c #dee9f2",
+"CM c #dfab25",
+"JT c #dfaf3d",
+"PM c #dfb64c",
+"GG c #dfb96d",
+"Je c #dfc38a",
+"J8 c #dfc58d",
+"va c #dfdbda",
+"vM c #dfdbdf",
+"vl c #dfdcdc",
+"uK c #dfdcdd",
+"f9 c #dfdcde",
+"nV c #dfdcdf",
+"u7 c #dfdddd",
+"gL c #dfddde",
+"fC c #dfdddf",
+"nF c #dfdede",
+"eX c #dfdedf",
+"fw c #dfdee0",
+"vn c #dfdfde",
+"lT c #dfdfdf",
+"p7 c #dfdfe0",
+"vS c #dfe0df",
+"Od c #e0ab21",
+"D6 c #e0ab25",
+"CN c #e0ac28",
+"EV c #e0b133",
+"u5 c #e0ddde",
+"hj c #e0dddf",
+"pg c #e0dde0",
+"u8 c #e0dedf",
+"eY c #e0dee0",
+"Qc c #e0dfde",
+"vo c #e0dfdf",
+"hd c #e0dfe0",
+"eW c #e0dfe1",
+"wG c #e0e0df",
+"mQ c #e0e0e0",
+"mP c #e0e0e1",
+"zs c #e0e1e0",
+"wA c #e0e1e3",
+"q9 c #e0e3e7",
+"jL c #e0eaf3",
+"QH c #e1a81a",
+"Qn c #e1aa23",
+"P. c #e1aa25",
+"H9 c #e1ab29",
+"P5 c #e1ac24",
+"CQ c #e1ae23",
+"CP c #e1ae24",
+"OQ c #e1b036",
+"FI c #e1ba65",
+"CJ c #e1dcdb",
+"Bu c #e1dcdf",
+"u6 c #e1dddf",
+"wd c #e1dde1",
+"wo c #e1dedd",
+"uL c #e1dedf",
+"hZ c #e1dee0",
+"tc c #e1dee1",
+"yH c #e1dfdd",
+"wk c #e1dfde",
+"f8 c #e1dfe0",
+"e0 c #e1dfe1",
+"wq c #e1e0dd",
+"eU c #e1e0e1",
+"eZ c #e1e0e2",
+"lB c #e1e1e1",
+"zu c #e1e2e1",
+"uf c #e1e2e4",
+"k1 c #e1e2e7",
+"ja c #e1e5e7",
+"cF c #e1e8f2",
+"yx c #e2b13a",
+"KW c #e2c993",
+"w4 c #e2dede",
+"g. c #e2dfe1",
+"ou c #e2dfe2",
+"wj c #e2e0df",
+"fA c #e2e0e1",
+"fB c #e2e0e2",
+"w. c #e2e1e0",
+"nG c #e2e1e1",
+"eV c #e2e1e2",
+"fv c #e2e1e3",
+"kW c #e2e2e2",
+"qY c #e2e2e4",
+"vz c #e2e3e2",
+"g0 c #e2e6ee",
+"#o c #e2ecf4",
+"BQ c #e3ac2a",
+"BR c #e3ad2a",
+"BS c #e3ad2e",
+"Hg c #e3ae27",
+"BT c #e3af30",
+"Bq c #e3b641",
+"KM c #e3ba5e",
+"AY c #e3bf71",
+"ov c #e3dfe3",
+"vw c #e3e0e1",
+"gP c #e3e0e2",
+"vs c #e3e0e3",
+"vp c #e3e1e1",
+"vj c #e3e1e2",
+"gF c #e3e1e3",
+"ei c #e3e2e3",
+"rC c #e3e2e4",
+"mm c #e3e3e3",
+"mn c #e3e3e4",
+"ty c #e3e4e6",
+"dW c #e3e8f1",
+"ks c #e3eaee",
+"cQ c #e3ebee",
+"rJ c #e3ebef",
+"aq c #e3ecf4",
+"Hx c #e4c17a",
+"In c #e4c487",
+"p2 c #e4e0e4",
+"ph c #e4e1e4",
+"w3 c #e4e2e2",
+"vq c #e4e2e3",
+"ej c #e4e2e4",
+"vr c #e4e3e3",
+"eh c #e4e3e4",
+"jv c #e4e4e4",
+"lm c #e4e4e5",
+"yk c #e4e5e4",
+"#T c #e4ebf0",
+"oG c #e4ecf2",
+".e c #e4edf4",
+"CO c #e5ae25",
+"BP c #e5ae26",
+"D7 c #e5af26",
+"Gn c #e5b026",
+"BU c #e5b332",
+"Ch c #e5b958",
+"AJ c #e5bb5b",
+"AK c #e5bd5d",
+"vk c #e5e0e1",
+"pi c #e5e1e5",
+"wi c #e5e2e2",
+"ue c #e5e2e5",
+"Ab c #e5e3e3",
+"vC c #e5e3e4",
+"eQ c #e5e3e5",
+"v9 c #e5e4e3",
+"nH c #e5e4e4",
+"eR c #e5e4e5",
+"el c #e5e4e6",
+"in c #e5e5e5",
+"ln c #e5e5e6",
+"nN c #e5e7e9",
+"s# c #e5e7eb",
+"ms c #e5ecf2",
+".t c #e5edf5",
+"Ok c #e6ad19",
+"BO c #e6af23",
+"Pj c #e6b225",
+"vm c #e6e1de",
+"wz c #e6e2e5",
+"wK c #e6e2e6",
+"Bt c #e6e3e5",
+"e# c #e6e3e6",
+"e. c #e6e4e6",
+"v7 c #e6e5e4",
+"eg c #e6e5e5",
+"eT c #e6e5e6",
+"em c #e6e5e7",
+"vT c #e6e6e5",
+"iU c #e6e6e6",
+"kX c #e6e6e7",
+"qV c #e6e9eb",
+"l2 c #e6e9ed",
+"fQ c #e6edf0",
+"e6 c #e6eef5",
+"CR c #e7ae23",
+"CS c #e7b023",
+"BN c #e7b024",
+"CT c #e7b223",
+"CD c #e7b22e",
+"BK c #e7b425",
+"BJ c #e7b525",
+"Dv c #e7bb54",
+"AL c #e7be61",
+"wy c #e7e3e6",
+"jk c #e7e3e7",
+"vA c #e7e4e7",
+"yI c #e7e5e5",
+"eS c #e7e5e7",
+"w2 c #e7e6e4",
+"m6 c #e7e6e6",
+"eP c #e7e6e7",
+"v8 c #e7e7e6",
+"iT c #e7e7e7",
+"mY c #e7ebed",
+"nc c #e7eff5",
+"D8 c #e8b326",
+"Fg c #e8b329",
+"Ps c #e8b437",
+"KN c #e8c36d",
+"KV c #e8cf9a",
+"J7 c #e8d2a0",
+"j1 c #e8e4e8",
+"uN c #e8e5e8",
+"dG c #e8e6e7",
+"dH c #e8e6e8",
+"rB c #e8e6e9",
+"d6 c #e8e7e8",
+"eO c #e8e8e8",
+"nI c #e8e8e9",
+"lb c #e8ebed",
+"hv c #e8eff6",
+".m c #e8f0f6",
+"BM c #e9b125",
+"CU c #e9b423",
+"Pv c #e9b425",
+"F1 c #e9ba38",
+"AI c #e9bd60",
+"AX c #e9c675",
+"wT c #e9e5e7",
+"wE c #e9e5e9",
+"wP c #e9e6e9",
+"wZ c #e9e7e5",
+"wS c #e9e7e7",
+"ef c #e9e7e8",
+"ek c #e9e7e9",
+"mA c #e9e8e8",
+"ea c #e9e8e9",
+"fu c #e9e9e9",
+"Pf c #e9eae9",
+"lE c #e9ebec",
+"#c c #e9f0f6",
+"BI c #eab625",
+"AW c #eaca7a",
+"vR c #eae6ea",
+"dJ c #eae7e9",
+"dK c #eae7ea",
+"Aa c #eae8e7",
+"yK c #eae8e8",
+"dF c #eae8e9",
+"d7 c #eae8ea",
+"eN c #eae9ea",
+"s. c #eae9ec",
+"im c #eaeaea",
+"oF c #eaf1f7",
+"BL c #ebb325",
+"I1 c #ebb63a",
+"JU c #ebb949",
+"EA c #ebc268",
+"j0 c #ebe8eb",
+"ee c #ebe9ea",
+"dB c #ebe9eb",
+"ed c #ebeaea",
+"i6 c #ebeaeb",
+"lo c #ebebeb",
+"OY c #ebeceb",
+"nn c #ebedef",
+"d1 c #ebf2f7",
+"Qz c #ecb522",
+"I. c #ecb52e",
+"CV c #ecb623",
+"BF c #ecb925",
+"BG c #ecb926",
+"AM c #ecbe61",
+"AN c #ecc163",
+"Cg c #ecc16a",
+"AO c #ecc267",
+"AP c #ecc565",
+"AQ c #ecc66c",
+"AR c #ecc86f",
+"GF c #ecc97f",
+"wD c #ece8ec",
+"dd c #ece9eb",
+"gr c #ece9ec",
+"xM c #eceaea",
+"hk c #eceaeb",
+"e1 c #eceaec",
+"m7 c #ecebeb",
+"ec c #ecebec",
+"lp c #ececec",
+"qp c #ecedee",
+"aD c #ecf1f3",
+"af c #ecf1f4",
+".8 c #ecf2f8",
+"Os c #edb118",
+"Go c #edb727",
+"BH c #edb826",
+"Cf c #edc472",
+"FH c #edc573",
+"KO c #edc979",
+"Jd c #edd19b",
+"KU c #edd59b",
+"wY c #ede9eb",
+"wU c #ede9ed",
+"yJ c #edeaec",
+"p3 c #edeaed",
+"dE c #edebec",
+"d9 c #edebed",
+"m8 c #edecec",
+"kg c #edeced",
+"l0 c #ededed",
+"xd c #edeeee",
+".R c #edf3f8",
+"OA c #eeb11c",
+"OI c #eeb521",
+"PE c #eeb625",
+"Hw c #eed293",
+"DS c #eeeaeb",
+"wu c #eeeaee",
+"dx c #eeebee",
+"CI c #eeeceb",
+"m9 c #eeeced",
+"d8 c #eeecee",
+"zr c #eeedec",
+"eb c #eeedee",
+"il c #eeeeee",
+"xe c #eeeff0",
+"bL c #eef3f8",
+"BC c #efb828",
+"OR c #efb829",
+"Im c #efd29a",
+"wW c #efeaee",
+"wX c #efebee",
+"dy c #efebef",
+"PW c #efeceb",
+"wh c #efecec",
+"CH c #efeced",
+"w8 c #efecee",
+"dI c #efecef",
+"A# c #efedeb",
+"xN c #efedee",
+"dC c #efedef",
+"cV c #efeeef",
+"A. c #efefee",
+"ff c #efefef",
+"uz c #efeff1",
+"yj c #eff0ef",
+"h0 c #eff3f6",
+"ih c #eff4f8",
+"e8 c #eff5f9",
+"z# c #f0b41f",
+"Hh c #f0b529",
+"D9 c #f0b727",
+"Fh c #f0b829",
+"Qh c #f0ba2c",
+"AV c #f0cb7b",
+"Ce c #f0cb7e",
+"HX c #f0ecef",
+"wt c #f0ecf0",
+"de c #f0edef",
+"l1 c #f0edf0",
+"c8 c #f0eeef",
+"en c #f0eef0",
+"cZ c #f0eff0",
+"bp c #f0eff4",
+"hI c #f0f0f0",
+"zt c #f0f1f0",
+"kj c #f0f3f5",
+"bF c #f0f4f6",
+"Qm c #f1b527",
+"QG c #f1b71c",
+"CW c #f1b723",
+"PO c #f1b929",
+"BD c #f1bd32",
+"I# c #f1be33",
+"JV c #f1c45b",
+"AT c #f1cd7c",
+"AU c #f1ce7c",
+"FG c #f1ce85",
+"xa c #f1eded",
+"yl c #f1edee",
+"x# c #f1edf1",
+"c9 c #f1eef0",
+"vQ c #f1eef1",
+"dD c #f1eff0",
+"gZ c #f1eff1",
+"yG c #f1f0f0",
+"jj c #f1f0f1",
+"fT c #f1f1f1",
+"dQ c #f1f5f6",
+"hq c #f1f5f8",
+"hC c #f1f5f9",
+"BE c #f2b92c",
+"CX c #f2ba26",
+"E. c #f2ba29",
+"I2 c #f2be46",
+"BX c #f2c144",
+"BY c #f2c14f",
+"BZ c #f2c453",
+"AS c #f2cb73",
+"GE c #f2d797",
+"J6 c #f2daab",
+"w7 c #f2eeef",
+"v6 c #f2eef2",
+"w6 c #f2eff1",
+"dc c #f2eff2",
+"c7 c #f2f0f1",
+"df c #f2f0f2",
+"k5 c #f2f1f1",
+"cY c #f2f1f2",
+"NH c #f2f1f3",
+"dA c #f2f2f2",
+"tx c #f2f2f3",
+"uC c #f2f3f4",
+"dR c #f2f4f5",
+"bV c #f2f4f7",
+"gT c #f2f4fa",
+"hD c #f2f6f7",
+"hl c #f2f7fa",
+"yw c #f3b924",
+"P4 c #f3b929",
+"Fi c #f3ba29",
+"Hi c #f3bb2e",
+"BV c #f3c23f",
+"B0 c #f3c65d",
+"Du c #f3c767",
+"Ez c #f3ca73",
+"Cd c #f3d08a",
+"Jc c #f3ddae",
+"ws c #f3eff3",
+"xf c #f3f0f3",
+"wg c #f3f1f1",
+"iC c #f3f1f3",
+"eB c #f3f1f4",
+"k4 c #f3f2f2",
+"c0 c #f3f2f3",
+"kh c #f3f3f3",
+"pV c #f3f3f4",
+"l8 c #f3f4f5",
+"bE c #f3f6f7",
+"cu c #f3f7fa",
+"E# c #f4bc29",
+"BW c #f4c242",
+"I3 c #f4c452",
+"B1 c #f4c96b",
+"ym c #f4eff1",
+"h8 c #f4f1f4",
+"fD c #f4f2f4",
+"dz c #f4f3f4",
+"x2 c #f4f4f3",
+"f1 c #f4f4f4",
+"CG c #f4f5f4",
+"lv c #f4f6f6",
+"h5 c #f4f7fb",
+"jb c #f4f8fb",
+"CY c #f5bb26",
+"QA c #f5bc1b",
+"CZ c #f5bc26",
+"KP c #f5cf82",
+"KT c #f5d79e",
+"Hv c #f5dba4",
+"wp c #f5f0f2",
+"k6 c #f5f1f3",
+"vO c #f5f1f5",
+"xg c #f5f2f3",
+"c6 c #f5f2f4",
+"eA c #f5f2f5",
+"DR c #f5f3f1",
+"g# c #f5f3f5",
+"eL c #f5f4f5",
+"cW c #f5f5f5",
+"fI c #f5f5fb",
+"Ru c #f5f6f5",
+"pY c #f5f6f8",
+"n8 c #f5f7f9",
+"eE c #f5f8f9",
+".n c #f5f8fb",
+"#h c #f5f9fb",
+"B2 c #f6cd75",
+"KQ c #f6d387",
+"KR c #f6d693",
+"Cc c #f6d694",
+"KS c #f6d89b",
+"vP c #f6f2f6",
+"c5 c #f6f3f5",
+"da c #f6f3f6",
+"iz c #f6f3f7",
+"yF c #f6f4f5",
+"c4 c #f6f4f6",
+"fr c #f6f5f6",
+"cX c #f6f6f6",
+"ey c #f6f7f8",
+"ss c #f6f7f9",
+"eI c #f6f8f9",
+"gX c #f6f8fa",
+"nk c #f6f9fb",
+"O0 c #f7bb29",
+"Ea c #f7bc29",
+"Ql c #f7bd29",
+"O9 c #f7be21",
+"Fj c #f7be29",
+"Hj c #f7c032",
+"Ia c #f7c240",
+"JW c #f7cc6d",
+"Dt c #f7ce73",
+"Il c #f7dda9",
+"GD c #f7dea6",
+"J5 c #f7dfb1",
+"Jb c #f7e3b9",
+"xh c #f7f1f2",
+"db c #f7f3f7",
+"c3 c #f7f4f6",
+"d# c #f7f4f7",
+"v5 c #f7f5f4",
+"aP c #f7f5f7",
+"c1 c #f7f6f7",
+"#S c #f7f7f7",
+"uX c #f7f7f8",
+"jW c #f7f7fb",
+"Ni c #f7f8f8",
+"uD c #f7f8f9",
+"b3 c #f7f9fa",
+"i# c #f7f9fb",
+"lG c #f7f9fc",
+"Gp c #f8bd2a",
+"P0 c #f8be28",
+"Fk c #f8c129",
+"Ey c #f8d285",
+"FF c #f8dc97",
+"Cb c #f8dc9f",
+"d. c #f8f4f8",
+"ez c #f8f5f8",
+"cs c #f8f6f8",
+"d3 c #f8f7f8",
+"b6 c #f8f8f8",
+"nl c #f8f8f9",
+"st c #f8f8fa",
+"rI c #f8f9f9",
+"uA c #f8f9fa",
+".a c #f8f9fd",
+"bm c #f8fafb",
+"k2 c #f8fafc",
+"C0 c #f9be26",
+"Ib c #f9c74a",
+"Hu c #f9e3b4",
+"x3 c #f9f3f4",
+"ku c #f9f5f6",
+"x1 c #f9f5f9",
+"ly c #f9f6f6",
+"bo c #f9f6f9",
+"c2 c #f9f7f9",
+"bP c #f9f8f9",
+"ag c #f9f9f9",
+"bW c #f9f9fb",
+"su c #f9fafb",
+"uB c #f9fbfb",
+"aL c #f9fbfc",
+"#v c #f9fbfd",
+"QF c #fabd1c",
+"Ph c #fabe25",
+"Qk c #fac029",
+"Gq c #fac130",
+"Ed c #fac331",
+"Ee c #fac333",
+"Ef c #fac440",
+"I4 c #facc65",
+"JX c #facf77",
+"B3 c #fad17e",
+"Ds c #fad482",
+"B4 c #fad488",
+"JY c #fad786",
+"B5 c #fad994",
+"B6 c #fadd9c",
+"Ca c #fae1ab",
+"J4 c #fae2b3",
+"C# c #fae4b3",
+"C. c #fae6b5",
+"cm c #faf6f9",
+"cr c #faf6fa",
+"cl c #faf7fa",
+"CF c #faf8f8",
+"aO c #faf8fa",
+"bQ c #faf9fa",
+"cT c #fafafa",
+"ki c #fafafb",
+"lq c #fafbfc",
+".5 c #fafbfd",
+"ac c #fafcfd",
+"Pi c #fbbf27",
+"P3 c #fbc129",
+"C8 c #fbc330",
+"C9 c #fbc332",
+"D. c #fbc334",
+"Hk c #fbc336",
+"D# c #fbc33e",
+"Hl c #fbc640",
+"lx c #fbf6f9",
+"cq c #fbf7fa",
+"cp c #fbf7fb",
+"cn c #fbf8fb",
+"kw c #fbf9f7",
+"v4 c #fbf9f9",
+"#p c #fbf9fb",
+"gd c #fbf9fd",
+"ct c #fbfafb",
+"qB c #fbfafe",
+"#R c #fbfbfb",
+"cy c #fbfcfc",
+".v c #fbfcfd",
+".b c #fbfcfe",
+"nj c #fbfdfe",
+"QB c #fcbe19",
+"C3 c #fcbe24",
+"PN c #fcbf23",
+"C2 c #fcbf25",
+"C1 c #fcc026",
+"Eb c #fcc129",
+"Gr c #fcc232",
+"Fl c #fcc329",
+"I5 c #fcd073",
+"B7 c #fcdfa7",
+"J3 c #fce4b3",
+"B8 c #fce5b2",
+"B9 c #fce6b5",
+"GC c #fce7b7",
+"Ja c #fce8bf",
+"kv c #fcf8fa",
+"co c #fcf8fc",
+"k7 c #fcf9f8",
+"ck c #fcf9fc",
+"gi c #fcfafc",
+"dL c #fcfbfc",
+"bs c #fcfcfc",
+"#f c #fcfcfe",
+"bO c #fcfdfd",
+".c c #fcfdfe",
+"QE c #fdbe1c",
+"Pt c #fdc126",
+"Pu c #fdc229",
+"Da c #fdc647",
+"FE c #fde1a6",
+"Ik c #fde6bb",
+"cj c #fdf9fd",
+"bw c #fdfafc",
+"fE c #fdfafd",
+"xE c #fdfbfd",
+"Bs c #fdfcfc",
+"bx c #fdfcfd",
+"cS c #fdfdfd",
+"fb c #fdfdfe",
+"dt c #fdfefe",
+".d c #fdfeff",
+"Qi c #febf22",
+"PD c #febf23",
+"P2 c #fec329",
+"C7 c #fec32a",
+"Eg c #fec84a",
+"Db c #fec952",
+"Dc c #fece65",
+"Dd c #fed174",
+"JZ c #feda92",
+"Ex c #feda94",
+"J0 c #fede9b",
+"J1 c #fee0a8",
+"J2 c #fee4b1",
+"aX c #fefafe",
+"wf c #fefbfc",
+"bc c #fefbfe",
+"e7 c #fefcfe",
+"qA c #fefcff",
+"cJ c #fefdfe",
+"am c #fefefe",
+".M c #fefeff",
+"#1 c #feffff",
+"QC c #ffbe1b",
+"QD c #ffbf1c",
+"C4 c #ffc024",
+"C5 c #ffc128",
+"P1 c #ffc226",
+"Qj c #ffc228",
+"C6 c #ffc229",
+"Ec c #ffc329",
+"Fm c #ffc32a",
+"Fn c #ffc331",
+"Fo c #ffc333",
+"Gs c #ffc339",
+"Fp c #ffc640",
+"Fq c #ffc84a",
+"Ic c #ffcb55",
+"Eh c #ffcb56",
+"Fr c #ffcc57",
+"Id c #ffce68",
+"Ei c #ffce69",
+"Fs c #ffcf6a",
+"Hm c #ffcf6d",
+"Gt c #ffcf70",
+"Ej c #ffd275",
+"Ft c #ffd278",
+"Hn c #ffd37b",
+"I6 c #ffd47c",
+"Gu c #ffd47d",
+"De c #ffd57f",
+"Ek c #ffd580",
+"Ie c #ffd582",
+"Fu c #ffd687",
+"Gv c #ffd887",
+"Df c #ffd88b",
+"Dr c #ffda92",
+"I7 c #ffdb8b",
+"El c #ffdb8e",
+"Fv c #ffdb93",
+"Ho c #ffdd93",
+"Gw c #ffde93",
+"Dg c #ffde9a",
+"I8 c #ffdf99",
+"Dq c #ffdf9e",
+"If c #ffe1a0",
+"Em c #ffe1a1",
+"Ew c #ffe1a3",
+"Dh c #ffe2a3",
+"I9 c #ffe2a5",
+"Hp c #ffe4a6",
+"Gx c #ffe4a7",
+"Dp c #ffe5aa",
+"En c #ffe5ac",
+"Ig c #ffe5ad",
+"Fw c #ffe5b1",
+"Di c #ffe6b0",
+"Ev c #ffe7b0",
+"Gy c #ffe7b1",
+"Do c #ffe8b6",
+"FD c #ffe8b7",
+"Eo c #ffe9b8",
+"J. c #ffe9bd",
+"J# c #ffe9c1",
+"Eu c #ffeabf",
+"Dj c #ffebbc",
+"Ih c #ffebbd",
+"Fx c #ffebbe",
+"Dn c #ffebc0",
+"Hq c #ffebc2",
+"Ht c #ffebc4",
+"Gz c #ffebc6",
+"Dk c #ffecc2",
+"Dm c #ffecc5",
+"Dl c #ffecc7",
+"GB c #ffedc4",
+"Ii c #ffedc6",
+"Et c #ffedc9",
+"FC c #ffeec4",
+"Ep c #ffeec5",
+"Ij c #ffefcb",
+"Eq c #ffefcc",
+"Fy c #ffefce",
+"Hs c #ffefcf",
+"Es c #fff0cf",
+"Er c #fff1d1",
+"Fz c #fff1d2",
+"GA c #fff1d3",
+"Hr c #fff2d6",
+"FB c #fff3d5",
+"FA c #fff3d6",
+"ap c #fffbf7",
+"ao c #fffbfb",
+"an c #fffbfc",
+"ci c #fffbfd",
+"aY c #fffbfe",
+".u c #fffbff",
+"#w c #fffcff",
+"we c #fffdfe",
+"## c #fffdff",
+"xO c #fffefe",
+".# c #fffeff",
+"Qt c #ffffff",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.a.bQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.c.dQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.e.f.g.h.h.h.h.i.j.k.l.mQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.n.o.p.q.h.h.r.s.tQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.u.u.u.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.v.w.x.y.z.A.B.C.C.C.C.D.E.F.G.H.I.J.K.L.MQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.N.x.x.x.x.x.O.PQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.o.x.x.x.x.x.x.QQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.R.S.T.U.V.E.C.C.C.W.X.Y.Z.0.1QtQtQtQtQtQtQtQtQtQtQtQtQt.2.x.x.x.x.3.x.x.x.4.5QtQtQtQtQtQt.#.u.u.u.u.6.3.3.3.3.3.3.x.7QtQtQtQt.#Qt.8.9.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x#..cQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#####QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.w#a.E.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#b.cQtQtQtQtQtQtQtQtQtQtQtQtQtQt#c#d.C.C.C.C.C.C#e#f.bQtQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.C.pQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#h#i#j#k.C.C.C.C.C.C.C.C.C.C.C.D#d#l.lQtQtQtQtQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C#n#oQtQtQtQtQtQtQt.u#p#p#p#q.C.C.C.C.C.C.C#r##QtQtQtQtQt#s#t.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#u#vQtQtQtQtQtQtQtQtQtQtQtQtQtQt.####w.u.u.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.v#x#y.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#z#A#BQtQtQtQtQtQtQtQtQtQtQtQtQt#C#D.C.C.C.C.C.C#E#F#GQtQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.C#H#I#JQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#K#L#M.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#N#O.cQtQtQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C#P#Q.vQtQtQtQtQt#R#S#S#T#U.C.C.C.C.C.C.C#V#W#X.uQtQtQt#s#t.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C#Y#Z#0#1QtQtQtQtQtQtQtQtQtQtQtQt##.u.u.u.u.u##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#2.X.C.C.C.C.C.C.C#3#3#3#3#3#3#3#3.C.C.C.C.C#4#5#6QtQtQtQtQtQtQtQtQtQtQtQt.M#7.C.C.C.C.C.C.C#3#8#9QtQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQt.#########QtQtQtQtQtQtQtQtQtQtQtQtQt.L.Y.C.C.C.C.C.C.C#3#3#3#3#3.C.C.C.C.C.C.C.WabacQtQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.CadaeafQtQtQtQtQtQtag#Sah.F.C.C.C.C.C.C.Caia#aj.#QtQtQt#s#t.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cak#5alamQtQtQtQtQtQtQtQtQt.##wanaoap.u.u.u#w.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaqar.C.C.C.C.C#3as#8ataua#a#a#auavawaxayazaA.C#4#5#6QtQtQtQtQtQtQtQtQtQtQtQt.saB.C.C.C.C.C.C.C.CasaCaDQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQt##.u.u.u######.#QtQtQtQtQtQtQtQtaE.z.C.C.C.C.C.CaFayawaGa##5aHaIaJ.C.C.C.C.C.C#MaKaLQtQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.CaMauaNQtQtQtQtQtQtaOaPaQ.C.C.C.C.C.C.C.Caia#aRQtQtQtQtaSaT.C.C.C.C.CaUaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVaVad#5aWaX.u.u.u.u.u###w.u#w#w.u.uaYao.u.u.u.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtaZ.C.C.C.C.C#3a0a#a#a#a1a2a3a4a4a4a3a5a6a7ata8a9#5#6QtQtQtQtQtQtQtQtQtQtQtQtb..C.C.C.C.C.C.C.C.Cb#babbQtQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtbcbcbcbcbcbcbc.u.u.u#wQtQtQtQt.8bd.C.C.C.C.C.Cbebfa#a#a#bga3a4bhbibj.C.C.C.C.C.CbkblbmQtQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C#3bn#9QtQtQtQtQt.#bobpbq.C.C.C.C.C.C.C.Caia#brQtQtQtbsbtbu.C.C.C.C.Cbva#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#aWaX.u.u.u.u.u.u.u.uaXaXaXaXaXaX.u.ubcbwbx.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtby.C.C.C.C.Cbz#5a#bAbBbCbDbEQtQtQtbF#JbGbHbIbJbKa##6QtQtQtQtQtQtQtQtQtQtQtbLbM.C.C.C#3.C.C.C.C.C.CaIbNbOQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtag#S#S#S#S#S#S#SbPbQbQbc.u.u.u.ubR.C.C.C.C.C.CbeaHa#a#bSbTbUbV.ubWbXbYbZ.C.C.C.C.C.Cb0b1bOQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C.Ca0b2b3QtQtQtQtQtQtb4b5.C.C.C.C.C.C.C.Caia#brQtam#Rb6b7bu.C.C.C.C.Cbva#b8b9b9c.c#cacacacacbcccdcececfc#cgchaXciaXcjckclcmcmcncjcocpcocqcrcoboaPcsctamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcucv.C.C.C.C.Cada#cwcxQtQtQtQtQtQtQtQtQtQtQtQtcyczcAcBQtQtQtQtQtQtQtQtQtQtQtcC#k.C.C.CayaF.C.C.C.C.CaMcDcEQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtbsag#S#S#S#S#S#S#S#S#SaObQbQckcF.A.C.C.C.C.CaAcGa#a#cHcIamcJamQtQtQtQtcKcL.C.C.C.C.C.CcMcNQtQtQtQtQt#m.C.C.C.C.C.C.C.C.C.CcOcPcQQtQtQtQtQtQtcR.C.C.C.C.C.C.C.C.Caia#brcScT#Sb6b4bu.C.C.C.C.Cbva#cUcVcVcVcWQtamcSbsbs#RcXcYcZc0c1bPc2csc3c4c5c6c7c8c9c6d.d#dadbdcdddedfc4agcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.8dg.C.C.C.C.Cdha#diQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.cdj.C.C.C#3dkay.C.C.C.C.C#3awdlQtQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtcT#S#S#S#S#S#S#S#S#S#S#S#S#Sdm.C.C.C.C.C.C#4#5a#dndo#RcT#RbsQtamcScTQtdp.C.C.C.C.C.CaMdqbFQtQtQtQt#m.C.C.C.CaFaJ.C.C.C.CdraGdsQtQtQtQtQtdtdu.C.C#3dr.C.C.C.C.Caia#dvb6b6agcTbtbu.C.C.C.C.Cbva#dwdxdydycs#RdzcVcVdAcWcWcZdBdBdCcZdfdfc7c7dDc8dEdFdGdHdddCdCdIdJdKdIdadLQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.8dg.C.C.C.C.CbedMdNQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##w#wQtQtQtQtQtQtQtQtQtQtdO#N.C.C.Cbza#aw.C.C.C.C.C.CdhdPdQQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtd#d#d#d#d#d#d#d#d#d##S#S#SdRdS.C.C.C.C.C#3dTa#dUdVb6b6b6ag#RcScsd#d#cldWdX.C.C.C.C.C#3bfdYQtQtQtQt#m.C.C.C.Cb#dZ.C.C.C.C.Cd0#IdtQtQtQtQtd1d2.C.Cbeak.C.C.C.C.Caia#aj#S#Sd3b6d4bu.C.C.C.C.Cbva#d5d6d7d7d8d9dHe.e#e.eacVebeae.dHecebcVdEedeeeeefegeheieje.d7ekelemdKend3cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#veo.C.C.C.C.C.Cepeq#vQtQtQtQtQtQtQtQtQt.#.####w#w.u.u#w#w.#.####w.#QtQtQter.C.C.C.Ca0a#eset.C.C.C.C.CdreuevQtQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQt.#dbdbdbdbdbdbdbdbdbdbd#d#d#ew.W.C.C.C.C.CbeaGa#exey#RcTb6agbPezdbeAdaeAeBeC.C.C.C.C.C.Ca9eDeEQtQtQt#m.C.C.C.Cb#eFaA.C.C.C.CeGeHeIQtQtQtQteJ#k.C.CcOdh.C.C.C.C.Caia#eKeLeLeLcWb7aT.C.C.C.C.Cbva#eMeNeOePe.e#e.eQeRehejeSeaeae.eQeTePd6d7ePe.eieUeUeVeWeXeYejeQeZe0eZe#e1aPcS.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQte2.C.C.C.C.C.C.Ce3e4e5e6QtQt.#.#.#.###.u.u.u.u.u.u.u.u.u.u.u.ue7QtQtQte8e9.C.C.CaUaua#f.f#.C.C.C.C.C.Ca0fafbQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtcldbdbdbdbdbdbdbdbdbdbdbdbfc.D.C.C.C.C.C#4a#fdfeQtcSagb6bPd3eAeAffdffffffg.C.C.C.C.C.CfhfifjQtQtQtfk.C.C.C.Cb#d0fl.C.C.C.CfmfnfoQtQtQtQtfp.C.C.Ca0dh.C.C.C.C.Caia#fqeLcWfrcWfsbu.C.C.C.C.Cbva#ftfud6eTeQe.ePeRd6eSejejejeTeTeQejeheReTe.ehfvfwfwfxfyfzfAeUfBeYfCfwfBdHfDfE.uamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.s#d.C.C.C.C.C.C.C.C#MfFfGfHfI.u.u.u.u.u.u.u.u.u.u.ubPbPbPbPbPcSQtQtQtfJ.B.C.C.CfKa#fLfMfNfO.C.C.C.C.CbzfPfQQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtQtcldbdbdbdbdbdbdbdbdbdbdbdbfR.C.C.C.C.C.Ca9a#fSbFbsagagbQagfTfffffffffffffUfV.C.C.C.C.CdraGfWQtQtQtfX.C.C.C.Cb#atay.C.C.C.C#3dMfYQtQtQt.nfZ.C.Cb#avdh.C.C.C.C.Caia#f0f1b6cScTf2f3.C.C.C.C.Cbva#f4eOeTeQeQd6eiejeheNePeReQejeQehejejejejeifBeUeWf5f6f7f6e0eWf8f9fyf9g.dHg##pfEbQ#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#vb.#D.C.C.C.C.C.C.C.C.C.C.Agagbgcgd#w.ufEfEbPbPbPbP#S#S#S#Sb6QtQtQtfbge.C.C.C.Cbfa#gfb3#vgg.C.C.C.C.CaFaHghQtQtQtQtQtQtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtgidbdbdbdbdbdbdbdbd#d#d#aPaPgj.C.C.C.C.C.Cgka#glQtbscT#RcSQtcWcYcVcVcVdIdIgmgn.C.C.C.C.C#3dMgocyQtQtfX.C.C.C.Cb#atgk.C.C.C.C.CgpgqgrfrQt.2#d.C.CaVfndh.C.C.C.C.Caia#gs#Sam#Rc0gtgu.C.C.C.C.C#4aHgvgwgxgygxgygzgzgAgBgCgBgDgEejejejgFeVeVeUgGgHgIgJgKf7f6gLgHgMgNgOf9gPdJeLagbQb6#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.RgQgR.C.C.C.C.C.C.C.C.C.C.C.C.HgS#ggTbQ#S#S#S#S#S#S#S#S#SbsQtQtQt.1.U.C.C.CaV#5a#gUdLcTgV.C.C.C.C.C.CadgWgX.#.#.#.#QtQtQtQt#g.C.C.C.C.C.Ca.a#aaQtQtdLc2dbd#d#aPaPc1c1c1#S#S#S#ScL.C.C.C.C.C#3awa#gYQtamcSQtQtQtQtcJdydydydygZg0g1.C.C.C.C.C.Catg2eIQtQtfX.C.C.C.Cb#atg3g4.C.C.C.CdZg5g6c0Qtg7.C.C.Cg8a#dh.C.C.C.C.Caia#g9am#RdAekh.gn.C.C.C.C.C#3aFh#hahbhahbhahahahaha.G.G.GhceNeQejfBe0hdhdfCgKhehehehfgHhghhhhhifzhjejhkfrb6ag#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt###w.#QtQtQtQtQthlhmhn.C.C.C.C.C.C.C.C.C.C.C.C.Chohp.Shq#S#S#S#S#S#S#Sb6QtQtQtQthr#M.C.C.Chsa#hthud#Qthvhw.C.C.C.C.Cbehxhy##.u#w#w#w#w#w#whz.C.C.C.C.C.Ca.a#aaQtQtamcSbQb6#S#S#S#S#S#S#SfEaXaX.G.C.C.C.C.CaFhAa#hBQtQtQtQtQtQtQtQtbxbxbxbsamhC#7.C.C.C.C.C.CawhthDQtQthE.C.C.C.Cb#athFhG.C.C.C.Cdr#5hHhI.chJ.C.C#3awa#hK.C.C.C.C.Caia#hLcTfTeNfBhMhN.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.ChOhPhQejeUeYfCfxgIhRhShShTfzhUhVhWhXf6hYhZePebc1b6bsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.u##QtQtQtQtQtQth0h1h2aA.C.C.C.C.C.C.C.C.C.C.C.C.Choh3h4d3dbdbdbdbdbgiQtQtQth5cv.C.C.CaFh6a#h7h8d.Qtamh9.C.C.C.C.C.CcGi.i#.#QtQt.u.u.u.uhz.C.C.C.C.C.Ca.a#aNcSbscTagb6#S#Sd3bQfEbcbce7######ia.C.C.C.C.CaFhAfdibamQtQtQtQtQtQtQtQtQtQtQtQthC#7.C.C.C.C.C.Cawa#icQtQtid.C.C.C.Cb#atieif.C.C.C.C.ChAigd7ihii.C.CazaGa#ij.C.C.C.C.Caia#ikilimineXiohN.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CipiqirejhdgIfzhRhRhSisgOhiithWiuivfyeYe0dHcVcVc1bsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.uQtQtQtQtQtQtQtQtb3iwixeGb#.C.C.C.C.C.C.C.C.C.C.C.C.C.YiyizdbdbdbfDbxamcSQtiAfO.C.C.Cay#5a#iBiCd.QtQtiD.F.C.C.C.C.CasiEbFQtQt##.u.u.u.uhz.C.C.C.C.C.Ca.a#iFcTagagag#S#Sd3#p.u.u.u#wQtQtQtQtia.C.C.C.C.CaFhAa3iGcSQtQtQtQtctcWcWcWcWilfueaiHiI.C.C.C.C.C.Cawa#iJbscSiK.C.C.C.Cb#atieiLiM.C.C.C.CaIiNiOiP#M.C.CdZa#iQiR.C.C.C.C.Caia#iSiTiUiViWiXhN.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CdTa#iYeVfxhRhhiZhhiZi0i1i2iui3i4i5fCe.i6cYdAcYb6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.u.u.ubcd3cT#RcSQtcSami7i8i9gkbz#3.C.C.C.C.C.C.C.C.C.C.Choj.ffcZfffTQtQtQtQt.x.C.C.C.Cd0a#j#jaiCdbcTamjbjc.C.C.C.C.CaFjdjeQt##.u.u.u.u.uhz.C.C.C.C.C.Ca.a#jfbscS#R#S#S#Sb6.u.u.u#wQtQtQt.#.ujg.C.C.C.C.CaAd0jhjicSQtQtQtQtagcYcYdAjjjkjkjkjljm.C.C.C.C.C.ChAa#jn#ScTjo.C.C.C.Cb#atiejphw.C.C.C.CfmfLjqjr.C.C.Cgpa#jsjt.C.C.C.C.Caia#jujvjwjxjyiXhN.C.C.C.C.C#4hAhAhAhAhAhAhAhAhAhAhAhAhAhAaGa#jzhdgJjAjBi5jChVjDivjEjFjGi2gKeTebfTcXdAc0#RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.ubcbQ#S#S#S#S#ScTQtQtdticjHjIbna9az.C.C.C.C.C.C.C.C.C.CjJjKcVfff1Qtd3QtjLjM.C.C.CbehAdkjNjOjPjQjRjSjTjU.C.C.C.C.C.CaIjVcyjW.u.u.u.u.ujX.C.C.C.C.C.Ca.a#jYQtQt#R#S#S#SbPcocncjam.###.u.uanjZ.C.C.C.C.C.CcGjhbXamQtQtQtQtQtQtQtQtamj0j1jkj2j3.C.C.C.C.C.CdMa#j4agb6j5.C.C.C.Cb#atieicj6.C.C.C.C.Cj7j8j9.C.CaUdka#k.k#.C.C.C.C.Caia#kakbjyjyjyiXhN.C.C.C.C.Cbva#a#a#a#a#a#a#a#a#a#a#a#a#a#a#a#kcgJhUi2kdhVjBivkejEi3jGkfjwinkgjjkh#SfTcWcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.u.u.ufE#S#S#S#SaPaPcn#R#RagkikjkkgWklkmdhaF.C.C.C.C.C.C.C.CknkodCc2amdLQtdp.C.C.C.C.C.C.C.D#M#M#M#M#Mkp#M.C.C.C.C.C.CkqkrksjW####e7bxdLkt.C.C.C.C.C.Ca.a#aaQtQt#R#S#S#Scsc3kukve7#w.uciaokwkx.C.C.C.C.C.CkykziJbsamQtQtQtQtcSagkhebeNeSe.kAkB.C.C.C.C.CdraGa#do#R#SfX.C.C.C.Cb#atieickC.C.C.C.C.CcGkD.C.C.CaV#5a#kEk#.C.C.C.C.Caia#kFjyjxhSf7kGhN.C.C.C.C.Cbva#kHkIkJkKkLkMkNkOkPkQkRkSkSkRkTkUi0i5kei5iZi1kekekVhVhekWkXimilhIcX#SkhagQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.u.u.ufE#S#Sc1dbdbdbdbdbdbdzc0g#aPbPkYdvkZk0cO.C.C.C.C.C.C.CfheHk1Qtbs#Sk2e4.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Caw#QamcSbscTagb6k3.C.C.C.C.C.Ca.a#aaQtQtcSd3cXf1k4k5k6kv.u.u.uk7#ScXk8.C.C.C.C.C.CdZa#k9#RcSQtQtQtb6hIebeceaiUjveil..C.C.C.C.C.Cfml#lalbc0cYlc.C.C.C.Cb#atieicld.H.C.C.C.CleeF.C.C.CaIa#lflglh.C.C.C.C.Caia#lihSljljfzlkhN.C.C.C.C.Cbva#llgJgKfyhUhhi1jBhVhWi3i3i3i4iukVkdiukdivkejEkVjCfylmlnkXiTlolpkhcT#ScXbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##.u.ufE#S#S#SdbdbeAcYcYcYgZdAkhkhcW#RamlqjYlrls.C.C.C.C.C.CaJlaltQtQtQteJ#y.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cdhlulvagagagagagkt.C.C.C.C.C.Ca.a#lwcTageLcYhIffcVc9c6d.cmlxlydzjjenlz#k.C.C.C.C.CazaGlAag#RbscTb6khlpiUjvkWkWkWlBlC.C.C.C.C.C.CeGa#lDlEdAf1lF.C.C.C.Cb#atieiclGlH.C.C.C.CaJ#4.C.CaAd0a#lIlJlK.C.C.C.C.Caia#lLlMiOlNlNlOhN.C.C.C.C.Cbva#llf6hRhShhitjBhWkei3jGjGlPlPjGi3i3lQlRlSjEkdjAlTjvlmiTininfuhIcTcScXb6amQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt####bcb6#S#Sd#dbfDfffffffffT#Sag#RcSamamamamlU#D.C.C.C.C.C#3a#lVamcScSlW.C.C.C.CaAaAaAaAaAaAaAaAaAaAaAaAaA#3.C.C.C.C.CaFlXlY#RbscScSagk3.C.C.C.C.C.Ca.a#lZd7d9ebl0kgkgdCengZendCenl1cVcVcZl2.z.C.C.C.C.C#3l3l4lofuiTeTeReRjviniUePd6d6l5l6.C.C.C.C.C.Cl3a#l7l8cTagl9.C.C.C.Cb#atieicQtm..C.C.C.C.C#3.C.Cazaum#mambmc.C.C.C.C.Caia#mdiOiOiOiOmemf.C.C.C.C.Cbva#mghShhi1mhjEmilPlPlPjGmii3i3jGmjlSmkmlkdjCiWkWmmmnkXehmmiUilcTamcTb6#RQtQtQtambscSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcTb6d#dbfDffffcVcVl1#Sb6#Rbsbsbs#R#Rmomp.C.C.C.C.Cmqa#mrbscTmsmt.C.C.CbedTd0d0d0d0d0d0d0d0d0d0d0d0eG.C.C.C.C.C.Ca0muambQc2c2bPmv.C.C.C.C.C.Ca.a#mwjveTd6eai6dCcVcVebi6i6d9enjjcZdCebmx.C.C.C.C.C.CcOmymzlTeXlBeRmAeNe1d9dCdCdCmB.C.C.C.C.C.Cbej7a#mCd3cWdAmD.C.C.C.Cb#atieicQtmE.E.C.C.C.C.C.C.Caya#mFmGmHmI.C.C.C.C.Caia#mdiOiOiOiOmemf.C.C.C.C.Cbva#llf7iZivmJlPjGmii3i3i3i4jGmKmLmMmNmkkdmOkbjvmmmPlBmQeUiTffcXcT#RagcTamQtambsagagbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSd#eAjjffdIdydye1f1agagagagagagagmR.A.C.C.C.C.Cfla#mSb6cXmv.C.C.C.CfKa#htkzmFmFmTmTkzkzkzmUmUmUmVmW.C.C.C.C.CaVmXmYjji6d7g#mZ.C.C.C.C.C.Ca.a#m0eReheVeUeVeRd6fuiUeRehd6kgcVebd9ecm1kB.C.C.C.C.CaFm2m3kbm4m5m6edm7m8kgkgm9n.n#.C.C.C.C.C.CaIa#htnaf1f1cWnb.C.C.C.Cb#atiei7Qtncnd.C.C.C.C.C.C#3gka#nenfmHmI.C.C.C.C.Caia#mdiOiOiOiOmemf.C.C.C.C.Cbva#nggKhVmilPi3i3i3jGlQlSmLmkmMmNmMnhjCnikbeUmQm5gIjwmQiTfT#Sb6b6cTagcTagagb6b6agbsamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtnjnkcSboc2cTcTbQeAd7eOf1bsagb6cTcTagnlnm.C.C.C.C.C.CdZa#aekhnnno.C.C.C#3bfa#npnqnrnsntnunvnwnxnynznznAnB.C.C.C.C.C.CaHnCeReXeVeanD.C.C.C.C.C.Ca.a#nEeNd6eReVhdeXlTlTeXnFeXnGeginnHehiTnInJ.C.C.C.C.C.CaMnKnLnMmQjviUeOi6ecm7nNnO.C.C.C.C.C.Cbeh6a#nPlb#Sd3bPnQ.C.C.C.Cb#atnRnSbsQtnT.C.C.C.C.C.Cb#h6a#nUmHmHmc.C.C.C.C.Caia#mdiOgGgGnVnWnX.C.C.C.C.Cbva#nYi1kenZi3lQlSmLn0n1n2n3jGi4kVn4iWhShefxjwgJgJgJhdeOdAcX#Sb6b6agb6#S#S#SagcTcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQt.#.#Qt.#QtQtQtQtQtQtQtQtQte6n5n6n7.mdtQtQtbxb6b6bsQtbsagb6#Rn8k3.z.C.C.C.C.C.CcGa#n9ffo.o#.C.C.Cfmaua#oad6eUgKfyhUgOobhhobgOisheoc#k.C.C.C.C.CadodfxeYeUeVoe.C.C.C.C.C.Ca.a#ofebeaeReimQlTlTlTlTlTlTnFnFnFfxfxm5eXogoh.C.C.C.C.C.Coiojokjwm5lBinfukgolom#k.C.C.C.C.C#3a0a#a#onebcYdzc1oo.C.C.C.Cb#atopnScSQtoq#M.C.C.C.C.Cbza#orosmHf6ot.C.C.C.C.Caia#mdgGeYouovownX.C.C.C.C.Cbva#oxivjElSoymkmjmLi3jCjxhRkbkbkbozgKiWozjwgJjwlTjvlofffTkhcWcX#Sb6b6cTbsamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQt###w.##w##QtQtQtQtQtQtQtQt.8dg.C.BoAoBoCoDiDoEoFoFoFoFoGoHoIoJ.X.C.C.C.C.C.Cflfna#oKfuoL.C.C.C.Caxa#iQoMeTgHhUhhoNoNoNobhhoNoNoNoOoP.C.C.C.C.CaJoQkIhdhdozoR.C.C.C.C.C.CkqfhoSoToUoVoWoXoXoXoXoXoXoXoXoXoYoZjwiViVgJo0o1.C.C.C.C.C.Co2o3o4o5o6o7o8o9p..C.C.C.C.C.C.Cayl#a#p#pacZffffcZpb.C.C.C.Cb#atoppcQtQteJ#y.C.C.C.C.Ckya#pdpemHgIpf.C.C.C.C.Caia#mdpgphpijkpjf3.C.C.C.C.CdrfhpkplpmpnpopppqprpspsprprprprptpspupvozgJhdjvful0hIf1cW#ScTb6cX#SbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQt.####w.#QtQtQtQtQtQtQtQt.8dg.C.C.C.C.C.CpwbuoAoAoAoApx#N.C.C.C.C.C.C.C.CaUbfa#pypzpApB.C.C.CaJbna#pCpDeYhRgOoNoNoNoNoNoNoNoNhhpEpF.C.C.C.C.C.C#8pGlBjwpHpI.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CpJpKpLhRhepMpNpOe3.C.C.C.C.C.C.C.EpPpQpRpS.C.C.C.C.C.C.C.CdZaGa#pTpUpVf1l0m7lppW.C.C.C.Cb#atiepXQtampYpZ.C.C.C.CaAhAa#p0mHf6gGot.C.C.C.C.Caia#p1p2jkp3eLp4aT.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cp5p6p7jvlohIeLagcTbsamamcS#S#ScTQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQt.#QtQtQtQtQtQtQtQtQt.8dg.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cbed0a#a#p8p9q.#D.C.C.CdZ#5a#q#gHhejxhhoNoNoNhhhhhhhhjAjAhUqaqb.C.C.C.C.CfhqcqdqepHpI.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cqfqgqhn4qiqjqkqlqmjJ.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CmqfKaGa#qnqoqpf1i6e.e.e1qq.C.C.C.Cb#atnRpcamd3c0qrqsqt#4#4ayfnlaqumHgJiOqv.C.C.C.C.Caia#qwe#ecbsbsb4bu.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cqxqyqz#S#RcSamQtQtQtQtQtbsb6agamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtqAqBQtQt.8dg.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.CaFdhbna#a#pdqCqDqE.C.C.C#3dTa#qFqGfzfyf7oNoNoNoNhUisjAjAjxhef7qHqI.C.C.C.C.CaAqJqKpHpHpI.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cbzl#qLqMjBqNqOqPqQqRqS#3.C.C.C.C.C.C.C.C.C.C.C.C.C#3fmdTfna#qTqUqVjjece.eQeRd9qW.C.C.C.Cb#ataeqXeLecd6ePqYqZa#a#a#a#dUq0mHgHgHqv.C.C.C.C.Caia#q1ec#S#Sf1q2f3.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.C.Cas#5q3QtQtQtQtQtQtQtQtQtcTb6cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamamamam#vq4q5q6aJ.C.C.C.C.C.C.C.C.C.C.C.C.Cb#bzaIav#5a#a#q7q8iWq9r.jcr#fmdZaGa#raiWlNhRjxjAjAoNjAhSninijxhSisjAjAocrbrcfmfmfmfmcGrdpHpHrerfrgfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmadfnrhriqNrjrkpLm4okrlrmbvbe#3.C.C.C.C.C.C.C.CaJcOcGaua#a#iqoarndGeSe.eQe.eaebrorprqfmfmash6rrrsi6eieSeQgFrtrurvrvrurwrxmHgKhRryrfrzfmfmfma0a#rAp3rBrCrDrErFrGrHfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmfmai#5q3QtQtQtQtQtQtQtQtfbrInlamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambs#RcT#RbsQtfbrJrKj7bnawaxaIdhdhdhdhdhfKaxgkhArLl#a#a#a#rMrNrOjxf6pgrPrQrRl#fna#a1rSjyjxjyjyjyjyjyjyniniisjAjAjAisf6rTrUrVl#l#l#l##5rWrXjyrYrZr0l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#fna#r1r2r3r4r5hehfgLgJkIr6r7aHgpa9dhdhdha9gphAj7#5a#a#pyr8r9p7eVeheQekd8ecdBd7s.s#sal#l#l#a#a4sbdHejfBpgnVscsdsesfsgfzhRhSnishsisjskl#l#l##5a#slhUhWsmsnsospsqsrl#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#l#fna#q3QtQtQtQtQtQtQtQtbsssst.MQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambscTagagcSQtQtsusvswsxsysza#a#a#a#a#a#a#a#a#a#a#a#sAsBsCsDsEsFlNiOiOiOsGsHsIsIsIsJsKjyjyjyjyjyjyjyninijAjAjAnifyiOnVfCfCsLsMsNsOsPsQsRsSjyjyjysTsQsQsQsQsQsQsRsRsQsQsQsQsQsUsVsWsWsXsVsWsWsWsYsZqNs0qPr4ishSgKgIs1s2s3s4hta#a#a#a#a#a#a#las5s6s7s8eXgLgLeYg.eQdHekekekeke1s9b9t.t#sNtatbtctceYgGiOiOtdten4i0nitftgtgi0gOf7thtisksNtjtktltmtntokVhhfytptqsIqLsQsQsQsUsUtrsQtstttugWgWgWgWgWcbc#tvgWgWgWtwQtQtQtQtQtQtQtQtsupYbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambscTb6cTcSamambstxtytztAtBtCtDtEtEtEtEtEtFtGsStHtItJjyjyjyhSf6f6f6f6mHtKtLtMtMtNjxsFiWiWiWiWiWiWjxjyjAjAnifyiOnVpgphphnVtOtPtQtMtRtRrYjyjyjysEtRtRtRtRtRtStTtUtSpNtVtVtWtXtYtZtZtZt0tZtZtYt1jCr5t2gJnMgJgKgKozgIgIt3t4t5t6t7t8t9u.u#uaubuceUf8nFudgKfyf7f7f7fzeYuedHdHeNekufuguhuiuiujiOiOiOiOiOiOfyhhukkfuli0iZgOfyiOgGumunuoupuqurusutuuhefCeXeXjwpvrYuvtSuwuxtXuytMuguzuAuBuBuBuBuBbml8uCb3uBuBuB.vQtQtQtQtQtQtQtcSuDuDamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcS#Rag#S#ScWf1khjjd7e0gKiWjxjyjyjyjyjyjyjxjxjxjxjxjxjxjxhShSf7f7fyfyfyfzf6f6f6f6lNiOiOiOiOiOiOf6jxjxishSheuEhRiOpgeYgGfxgGiOhehejyjyjyjyjyjyjyjyjyjyjyjynipHjxnishshrji2uFuFnZi4uGuHuIqPhShehehehRhRhRhRhRhRhRhRhRhRhRhRhRgNhfhfuJuKuLf8nFgMhfrkhiiZuMobfzfBuNdHd6dHe.eVfCiOiOiOiOiOiOiOiOiOiOiOljhhsZmliuuOlMuPuQhUhSiti4mKuRuSuTuUgOgJgIgKiWsFjyjyjyuVuWultfhReQi6g#aO##QtQtQtQtQtcSb6cTQtQtQtQtQtQtQtQtQtQtQtQtbsuXkiQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamcScTb6#S#Sb6bQc2aPh8dIekejhdgIgHgJgKkbozgKhRhRkbhRfyhehehShShShShShShSf7f7uYfzuZlNgGiVgKhehShehefyfzf6fzgKiOiOgGiOiOf6f6gKf6hSnijyjyjyjyjyjyjyjyjyjyjyiWjxu0u1sfu2u3s0hWkeu4qOrkgNudu5u6u5scuKhjhjf9hYhYhYgMgMgMf9f9f9gLgLu7gLu8hjhYhRisiZiZoNgOlNfBeRe.e.jkkWeVpgiOiOiOiOiOiOiOiOgGfxfxfxgJfyitnhu9v.qNv#vasehetgkemijGkVi2i0uYgIhRjxjyjyjyvbvcuWjCi0hRePiCdfkh#pbxQtQtQtQtQtQt#Rb6bsQtQtQtQtQtQtQtQtQtQtQtQtbscTamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamamamQtQtQtQtQt.u.u#paPffdCeNePjkmQvdvdvdm5jwgKhRfyf7hSjxjxjxjxjxhShShShSf7fyhRhShShehehef7uYfyljhefziOiOiOiOiOhRhRjyhUhXtfnijyjyjyjyjyjyjyjyjyhRiOjxhRhRhYvevfn4vgvhr5vinFvjvjvjvkuKgNvlvmvngLgGgGm5vovpvqvrjvjve0fxfCgIfzhehUgOjAjAisfygGtcvsgFhdvdfxiOiOiOiOiOiOiOiOm5vdiOlNhRjyjyjAobiZobgOf6eYe#e#hSvgkViZjAjyjyuQvtfyhgvujyjyvbtfuli5iZf6ejdCcsbxQtQtQtQtQtQtQtQtQtbsb6cTamQtQtQtQtQtQtQtQtQtQtQtQtamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##RfriCdCeaiTeSjveReioupglNljuYuYhUisisisgOgOgOgOgOgOgOishShShShUgOgOobhhhhhhi0tfjxhShUisisjAn4i1tghSjyjxhRsFgKf6gKhRf6iOiOiOiOlJlJvvhghUgOmOhUudhZpivwvnvdm5f6hRf6fxvxvyiOiOgGfxfCkWvzeVgHhejxheuQjyjyjyjxhShSfzlNnVgGgGiOiOiOiOiOiOiOiOgGfxgIfyhhitjCjCi0hReXeVvAeSdHlBvBkft1iuhViZuYhRhRfyhSjyqejxvujyvbtgululmOgHejp3h8daaPcTctcpbodzkheLez#pbxagagcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbx#pezcVeceOdHeSiUvCeheVhdfxgIgKf7vBgOgOgOgOgOgOgOgOgOgOobobhhobhUgOi1i5kfkVkVkViut1kVvgkfvDvEvbhejyjyjxhRfziOiOiOiOiOiOiOiOiOlNuYisisishUhgt2t2t2vFvGvHvIm4uEfzf6f6vigNhfvJvKujgIgIgJjxjyjyjyjyjyjyiWf6iOgKlNiOiOiOiOiOiOiOiOiOiOiOlNuEshjChVhVi1tguOfzvLhdeUvMobhWvNuSlRjEtgfyf6nVgGf6hRhRheiWnishtfululmOfzejd7l1vOeAvPc4dAfTvQdCececdfc4bPbQagbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#wbQcXl1vReQvSeliUePvTmmlBvxm4hSisisishUhShShShefyfyhRgKgHgGfxisi5i4lSnhlSmikVvDvUvcuVvbjyjyjyjyjyjyiWlNlNlNlNiOiOiOiOiOiOfzuYuOhiiti0hhhUljhfvIm4m4m4vFvFvFvFvFkbf6f6hRiOsFjxsFsFsFsFjyhRsFsFsFiWiOiOiOiOiOiOiOiOiOiOgGgGvVgJvWvXnhvYithhninihhn4vZv0nZv1v2v3hWhhhefCeQjkueeUeXgIfzhSmOuWululn4isgHouePlpdxdydydydydyeOeOfufud9cYd3gicTb6#RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbxv4v5v6fuv7jkiTiTv8vTv9w.nFfxfxfCeXe0e0eUfBehinePePePeSjveUjAmLw#mJi1mOjyjyjyjyjyjyjynijyjyjyjyjyjyjyjyhehegKiOiOiOiOgGgHsFwaivhWjBhRe0oueYgGiOiOiOiOiOiOiOiOiOiOiOf6iOiOiOiOiOgKiOf6iOiOiOiOiOiOiOiOiOiOgGm5m5m5wbvZwcmlsZhVitnijyninihSljljozgGwdkWehjveSe.lBfxf6uZljtfvUululuWvEhSf6tcejdKd9lpendfdzdzdzdzf1c2c2dLbsbs.#.##Rb6cTamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtwewfc2wgwheSwiwjlTvdm5wkfAgLgNf7lNe#dBkgdxe1e1e1greOeOeOiTehhSmimKivjCnijyjyjyjysFuEjyjxjyjyjyjyjyjyjyjyjysFhehehef6hegOwlukjFkeulkbphvAjkeVhdhdeXwmm5m5fxfxfxgGgGiOiOiOgGiOiOiOfyhefziOfxgGgGfxfxm5m5fxiVgHwnituki3i3i4kfi0gOsFgJgGeXlBueeiw.eUwogJhRshgOhhhhhhjAhUfygJhdeQeTdBimdceLeLeLcrclaOgidLbsbsbsbsbs.#.#QtQtQtQtbsb6agcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#wlywpvRwqviuOvUqkhWwrwrmhmhjChhoup3wsjjvQwtdIdydywueap3p3eSoNkVhWiZjAjyjyjyuEjyjyuEjyjyjyjyjyjyjyjyjyjyjyjyjyjyhhwvvgkeuIwwwxm5uewyjkuewzjkgFwAmQmQmQvdvdvdiVuZgHfxvdm5gGgGgGgGgGm5vdvdvdvdvdm5iVozhSi1wBjGwCv0i2ulvBhReYeVeSeawDwEpiiWvZi4vXv3sZvhhegGeidKd8dfdAezbPct#w##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSagagcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJbxbPezcYhIdedxdxdxdxfueOd6uNphp2eRebiCcWgZcVcVdCdydydyp3uNfBjwuZf6f6hejyjyjyjyjyjyjyjyjyjyjyjyjyjyjyjyjyjynir4ituVwFvuu0gGvSwGpgfxvneUjkvAjkjkjkuemQgJhhvDjAkbgGvdvdvdvdvdvdvdvdm5gGfyjCiuwHmjlSwIi4i2wJljgJvseReTe#fxhSi1uklPlPivtgozwKp3gZbo#pbscSam.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamcTagbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#cScSbxbxbxbxbx#R#R#R#pc2c4ffdCdxlocZjjc0fDjjgZgZdId8l0dBekePvAe#gFmQfxfxgGgGkbwLiWiWsFjyjynijynijyjyjyjxuZviwMjywNujwOgIf6f6gJm5e.d6ekdHeSvAkWfCfygOgOgOhSgIm5vdvSvSvdvdvdgIfyitiulPmjjGkeithUgKgJeYeYm5gIgJhRuEiWfzfxuedHkgcYfrcnbscS.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamcTb6#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#d3ild7d6lohIdAh8iCffjjjjjjjjjjjjdIdId8fufuwPwEeQmme0tcnVozkbiWiWisjyjyjyjxhfwQwRshi0fyscgJwLiWiWgGjvgrdIdBeaeawSwTvAkWfxiWoNf7uZm5eUeUvdvdvdhdgGkbwListgi0hhf7f7fygKkboziVeUe.e1dcdzcWage7##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcS#R#RamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcS#ReLlokWeXozeYeVe.eNd9enjjvPvPvPvPfDhIgZcVcVilebebebwUwDineQphvsgHlNlNuJwRjAjCivwVgIindBeclpebd8ffdCdIdywWwXwuwuwYwZgHjAoNgOsFwLgGgGgGvSvdvdjwvbt1oyw0w1gOnVdKeng#codLcSam.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambs#Sdzl1dHgFe0gKhRfzuYf6gHe0eRePdBd9cZc0eAdac4c4fDcYfTdfvQl1dIdydBdHw2w3w4w5r3i5oNhRhdePdCdfeAcYcYcYdfdfw6w7c9w8eaeRhdjwf6jwhdvsfBiVjAkVoyw9x.jGmOkWcVeLgibxam.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.##Rd3eLx#d7inovgIf7obtfvbisuEgIeVwPdBdCfTdzcW#SaPaPaPaPaPc4dAdAc7xap3ePeUhUi2xbxcn4f6dHecxdxec9xfxgxhc6cYcYdcd8imeSineQvshei4xixjw9vNvBwPcYcl##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amamcSbxckc1dzdcgreTfBgHisi0ulvUmOeYind9jjc1#S#S#S#S#S#S#Sc1cXcWeLiCkWi3xkxlxmxnxoxojFjBhUuOuOtgjCkVv3xpxqxrxsuSwIulnVekffckcJQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamamambxgiagc1dzhIeceOeRhdgInVm5ejgrilfraObP#S#Sb6bcbP#SaOezp3mhxtxuxvhXfzgGtcfxgHhef7hShSuEgImmj0l1fDd3gicJamQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbx#R#paPdzvQeNd6dKeadfbo#p#pfriCdb#p#p#pfEbcdCxwxxxyfBePdHwufDaPaPd#d#d##SbP#Rbx##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#fEc1jjjjd#aXcox#wLfBvPQt##bccWt1xzxAeVeRhevbeNcrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbseLiCc4ck##cse0jExiheec#Rh8ljxBvUeXeXi2iujAfud3cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtdLboc0fDc1bccseStoxCmNfycVgZlBjChhfxnVn4xDuleRcZxE.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#bPjjp3wugZd.cjc4e.xFjFhhvAeOiswcuYeUvHhWjGwJinboe7QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamd9wPwEdzcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJcnx#eStcgIeUeOgZkhfDd8fudKueuOsFozfxi5nhxGiWeReAb6bx##QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamxHxIxJxKxLlQQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#dLcsiCeciUjveReOecebcZdfvOebimead6ehfCjAjAiWeYjvxMxNc7cYg#c4cX#p#p#RbsbxbxbxbxcSamamamxO.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamxPxQxRxSxTxUQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbsl0ozxVxWxXxYxZx0i6amQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJb6iliUtcgGhduefudCc0x1c3x2frc0lpmmvsovfBeUtcpgfCvdehiUePwUwuwuwUe1kgcYdzdzx3lxcndLbsbxcJamam.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamx4x5x6x7x8x9QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcVvfy.y#yaybycydyeyfygfyamQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#dLd3fDkgeiwOyhtgyiuIt1fzvAlpfTg#c1cWbod#fTyjdCx#v6cYdfv6loeajvykeTePvAeQlBvseijviUeOdEebylymh8h8dzf1csagagct#wQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamynyoypx7yqyrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#jjysytyuyvywyxyyyzyAyByCyDyEi3dLQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambsagyFyGimeae.yHvyhdhdheljwLiVoueVineadGyIeRinePj0l0gZgZgZenilgZgZdCece1imd7dKekdBddyJp3ekiUineTyKdBimlodCgZeLbQdLcSamQtQtQtQtQtQtQtQtQt.#.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSeUyLyMyNyNyNyNyNyNyNyOyPyQyRySyTyUyVyWyXyYyZy0y1y2y3y3y4utloQtQtQtQtQt.##SimuPy5y6y7y8y9z.z#zazbzczdzezfzgzhzizjisQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#wagc2khd9vAlTgKisjBzkqjzlzmznzozolSrjzpzqtfvczqoueSe1zrcYc4d.dzeLcWcWcWc1c0eneaj1vAeQzszseXgGoue.p3ztaP#pbx.#QtQtQtQtbsozhWkVwbhRhRhRhRhRhRiWwMu0ozgJgJkbzuimeccZcZcZcZcZiTxGzvzwzxzyzzzzzzzzzAzBzBzBzCzDzEzFzGzHzIzJzKzLzMzNzOzPzQzRzSzTtflocYiTwLmlzUzVzWzXzYzZz0z1z2z3z4z5QtQtQtQtinz6z7z8z9cJQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amcScSbsctclcsc6cZcZA.A.ilA#AaAbiVf6vvhUmOjCAcAdAeAfAgkfvZivkdulAhAifzjAkboueSe1d7ingFe0m5gGtcvswDcYd3##Qt##AjAkAlAmAnAoAoAoApAqArAsAtAuAvAwAxAyAzAAABACADAEAEAEAFAGAHAIAJAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA0A1A2A3A4A5A6A7A8A9B.B#BaBbBcBdBeBfBgBhBiBjBkBlBmBnBoagQtQtQtQtQtvEBpBqBrgFQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#.#amcScScScScScSBsbscTaOclbodahIdCdFBtBuBvuEvcvWvWjBBwBxi2ByBzuWu3AigHeijke#uepigGhRkbe#cVbQ.#bxBABBBCBDBEBFBFBFBFBGBGBHBIBJBJBKBLBMBNBOBPBQBRBRBRBSBTBUBVBWBXBYBZB0B1B2B3B4B5B6B7B8B9B9C.C#CaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzCACBshQtQtQtQtQtQtfuCCCDCExBQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#Qt.#amcJbxbs#pCFCFCGdzdzfDiCjjffxNCHCIhkekeQeUCJnMgJgKshvcf7phd8bo.#cTCKCLCMCNCOCPCQCRCSCSCSCTCUCVCWCXCYCZC0C1C2C3C4C4C4C5C6C7C8C9D.D#DaDbDcDdDeDfDgDhDiDjDkDlDmDnDoDpDqDrDsDtDuDvDwDxDyDzDADBDCDDDEDFDGDGDGDHDIDJDKDLDMDNecQtQtQtQtQtQtdzDODPDQxAQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.########pd3DRDSeavAmQmQe#kgc0#p.#bPDTDUDVDWDXDYDZD0D1D0D0D2D3D4D5D6D7D8D9E.E#EaEbEbEbEcEcC7EdEdEeEfEgEhEiEjEkElEmEnEoEpEqErEsEtEuEvEwExEyEzEAEBECEDEEEFEGEHEIEJEKELEMEMEMENEOEPEQERESETeQQtQtQtQtQtQtcVEUEVEWEXQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#amcScScSam.#QtQt.#vCEYEZE0E1E2E3E4E5E6E7E8E9F.F#FaFbFcFdFeFfFgFhFiFjFkFlFmFnFnFoFpFqFrFsFtFuFvDhFwFxFyFzFAFBEsFCFDFEFFFGFHFIFJFKFLFMFNFOFPFQFRELEMEMEMEMFSFTFUFVFWFXFYFZ.#QtQtQtQtQthSF0F1F2vzQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSdEF3F4F5F6F7F8F9G.G#GaGbGcGdGeGfGgGhGiGjGkGlGmGnGoFiGpGqGrGsFpFqFrGtGuGvGwGxGyGzFyGAFAFAEsGBGCGDGEGFGGGHGIGJGKGLGMGNGOGPGQELEMEMEMGRGSGTGUGVGWGXGYGZG0##QtQtQteXG1G2G3G4bxQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##gig#eRi5G5G6G7G8G9H.H#HaHbHcHdHeHfHgHhHiHjHkHlEgFrHmHnGvHoHpGyHqEqGAFAHrHsHtHuHvHwHxHyHzHAHBHCHDHEHFHGFRGQELEMEMHHHIHJHKHLHMHNHOHPHQHRHSfxeijFHTHUHVHWAdQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtambxHXHYHZH0H1H2H3H4H5H6H7H8H9I.I#IaIbIcIdEjIeFvIfIgIhIiIjFyFyDlIkIlImInIoIpIqIrIsItIuIvIwIxGQGQELEMEMIyyqGQIzIAIBICIDIEIFIGIHIIIJIKILIMINIOcSQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteaIPIQIRISITIUIVIWIXIYIZI0I1I2I3I4I5I6I7I8I9FwJ.J#J#JaJbJcJdJeJfJgJhJiJjJkJlJmJnJoDFGQGQJpJqJrJsJtFRJuJvJwJxJyJzJAJBJCJDJEJFJGJHjFamQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbsinJIJJJKJLJMJNJOJPJQJRJSJTJUJVJWJXJYJZJ0J1J2J3J4J5J6J7J8J9K.K#KaKbKcKdKeKfKgIxGQGQKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzKAmQQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtwrKBKCKDKEITKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK0K1K2K3K4K5K6K7K8IxGQK9L.L#LaLbLcLdshcZ#RQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtfrLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzLALBLCLDLELFLGLHLILJLKLLFRLMLNLOLPi3hIbxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcSLQLRLSLTLULVLWLXLYLZL0L1L2L3L4L5L6L6L7L8L9M.M#MaMbMcMdMeMfMgMhMiMjMkMlMmvYffQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtc1MnMoMpMqMrMsCqMtMuMvMwMxMyMzMAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRjEQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#eNMSMTMUMVMWMXMYMZM0M1M2M3M4M5M6M7M8M9N.N#NaNbNcNdNeNfNgNhozbsQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtNim5NjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzNANBNCNDNENFNGheNHQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbxd8NINJNKNLNMNNM7NONPNQNRNSNTNUNVNWNXkddzQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcJagl0NYNZN0N1N2N3N4N5N6iVcWbxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteXN7N8N9O.O#OaObqOcSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtc1OcOdOeOfOgOhOi.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtiUOjOkOlOmOnOoOpcrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtOqOrOsOtOuOvOwOxpgQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtOyOzOAOBOCODOEOFxCQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtOGOHOIOJOKOLOMONOO.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt##OPOQOROSOTOUOVOWOXOYQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtwPOZO0FiO1O2O3O4O5O6i2cSQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtamO7O8O9FjP.P#PaPbPcPdPePfQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#gHPgPhPiFjPjPkPlPmPnPoPpPqQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtyKPrPsPtPuFjPvGlPwPxO4PyPzPAeVQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcTPBPCPDEcEcFjPEPFPGPHPIELOMPJPKfrQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#enPLPMPNEcEcEcFjPOPPPQPRPSELJpPTPUPVwOQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.#cTdzPWPXPYPZP0P1EcP2P3FjP4P5P6P7FUP8DGP9Q.Q#QaQbQczrb6bxQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtCHQdQeQfQgQhQiQjEcEcQkFjQlQmQnQoQpQqLLDGELGQDGQrQs..QuQvQw.#QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcWQxQyQzQAQBQCQDQDQDQDQEQFQGQHQIQJQKQLODQMELGQGQGQQNQOQPQQQRvNQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQSQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQULdQVQVysQWQXQYQZQ0Q1Q2Q3Q4Q5Q5Q6Q6Q5Q7Q8Q9R.R#RaRbRcRdReReReReReReRfRfRgRhRiz5RjRkRlysRmLdQUQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTQTdHamQtQtQtQt",
+"QtQtQtQtQtQtQtRnRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRpRqRoRoRoRoRoRoRoRrRoRsRtRoRoRsRsRtRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRoRtkdbxQtQtQtQt",
+"QtQtQtQtQtQtQtb6cWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcXRucWcWcWcWcWcWcWeLcWf1cWcWcWf1f1cWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWcWbxQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt"};
static const char* const back[]={
"16 16 5 1",
"................"};
static const char* const image1_data[] = {
-"54 20 459 2",
-" c None",
-". c #929292",
-"+ c #C1C1C1",
-"@ c #C2BFBE",
-"# c #97A3AE",
-"$ c #4C7890",
-"% c #3A6A88",
-"& c #678599",
-"* c #B8B8B9",
-"= c #BCBCBC",
-"- c #BBBBBB",
-"; c #BDBCBC",
-"> c #B5B8B9",
-", c #6E8A9D",
-"' c #9AA6AE",
-") c #C1BFBD",
-"! c #BCBCBB",
-"~ c #B7B8BA",
-"{ c #718D9F",
-"] c #8F9DAA",
-"^ c #BFBDBC",
-"/ c #BABBBB",
-"( c #B7B6BA",
-"_ c #5F8196",
-": c #336585",
-"< c #5D7F95",
-"[ c #B8B8BB",
-"} c #C2C0BE",
-"| c #B8B9BA",
-"1 c #6B899B",
-"2 c #8297A4",
-"3 c #C0BEBD",
-"4 c #BDBDBC",
-"5 c #BABABA",
-"6 c #738D9F",
-"7 c #9EA7AF",
-"8 c #B5B7B9",
-"9 c #758FA0",
-"0 c #68889B",
-"a c #628499",
-"b c #5E8197",
-"c c #8999A7",
-"d c #BEBDBC",
-"e c #C4C4C4",
-"f c #9D9D9D",
-"g c #BEBEBE",
-"h c #FFFFFF",
-"i c #C0DBE9",
-"j c #1274A7",
-"k c #3587B4",
-"l c #599EC3",
-"m c #5F9EC3",
-"n c #ECF0F8",
-"o c #ACCCE3",
-"p c #00629B",
-"q c #77AFCF",
-"r c #F0F6FA",
-"s c #0770A2",
-"t c #6A9FC9",
-"u c #F0F7FC",
-"v c #4D95BF",
-"w c #2F82B3",
-"x c #79AFD0",
-"y c #5297C0",
-"z c #F1F8FD",
-"A c #F2F6F7",
-"B c #0E71A3",
-"C c #1877A9",
-"D c #E6F0F8",
-"E c #ABCEE2",
-"F c #00669E",
-"G c #9AC3DA",
-"H c #D7E6F1",
-"I c #076DA2",
-"J c #2881B1",
-"K c #64A6C8",
-"L c #5EA2C6",
-"M c #BFD7E9",
-"N c #D2D2D2",
-"O c #7CABC7",
-"P c #00568F",
-"Q c #C1D8E6",
-"R c #FBFCFE",
-"S c #4089B2",
-"T c #005A90",
-"U c #106C9F",
-"V c #D7E6F0",
-"W c #F0F6F9",
-"X c #016798",
-"Y c #6296C0",
-"Z c #FFFDFE",
-"` c #FBFBFA",
-" . c #85B3CD",
-".. c #00558F",
-"+. c #ADCADE",
-"@. c #DDE6EF",
-"#. c #005E94",
-"$. c #7BABC8",
-"%. c #EBEEF1",
-"&. c #0C6C9D",
-"*. c #00578F",
-"=. c #6AA1C0",
-"-. c #FFFFFC",
-";. c #D5E1E8",
-">. c #1F72A2",
-",. c #005991",
-"'. c #91B9D0",
-"). c #C5D7E2",
-"!. c #05679A",
-"~. c #C2D6E3",
-"{. c #FFFFFE",
-"]. c #FDFDFC",
-"^. c #FDFDFD",
-"/. c #D1D1D1",
-"(. c #C5DCE9",
-"_. c #1B74A3",
-":. c #126FA2",
-"<. c #619EC1",
-"[. c #B5D2E2",
-"}. c #EDF3F8",
-"|. c #FFFEFE",
-"1. c #AECADB",
-"2. c #2D7CA8",
-"3. c #7AABC8",
-"4. c #005B92",
-"5. c #7EADCA",
-"6. c #016899",
-"7. c #6297C0",
-"8. c #FFFCFD",
-"9. c #F9F9F9",
-"0. c #7AADC7",
-"a. c #005A92",
-"b. c #ADC9DB",
-"c. c #FFFAF6",
-"d. c #D9DEE7",
-"e. c #006398",
-"f. c #6B9DBD",
-"g. c #DADFE1",
-"h. c #086A9B",
-"i. c #488DB0",
-"j. c #347EAB",
-"k. c #A5C4D6",
-"l. c #3E86AF",
-"m. c #2278A4",
-"n. c #006297",
-"o. c #8DB5CC",
-"p. c #C3D3DE",
-"q. c #00659A",
-"r. c #8CB1C8",
-"s. c #AEC4D4",
-"t. c #E2E2E2",
-"u. c #F0F0EF",
-"v. c #F1F5F9",
-"w. c #AECADD",
-"x. c #609BC0",
-"y. c #006599",
-"z. c #2D7FAB",
-"A. c #EBEDEF",
-"B. c #FAF6F6",
-"C. c #3782AD",
-"D. c #6DA2C0",
-"E. c #FBF7FA",
-"F. c #2175A6",
-"G. c #2378A6",
-"H. c #FAFBFD",
-"I. c #F3F8FA",
-"J. c #006799",
-"K. c #6398C1",
-"L. c #78ABC5",
-"M. c #A8C4D5",
-"N. c #FAF4EF",
-"O. c #D3DBE2",
-"P. c #6A9DBE",
-"Q. c #DADEE1",
-"R. c #05689A",
-"S. c #9FBCCB",
-"T. c #87A9C2",
-"U. c #00558E",
-"V. c #3A80AA",
-"W. c #B1C6D2",
-"X. c #8BB4CC",
-"Y. c #C4D5DF",
-"Z. c #2D7CA7",
-"`. c #7EA4BE",
-" + c #96AFC3",
-".+ c #DFDFDE",
-"++ c #FCFCFC",
-"@+ c #E0ECF4",
-"#+ c #DDE9F1",
-"$+ c #FFFEFB",
-"%+ c #FEFBF9",
-"&+ c #4689B1",
-"*+ c #00588F",
-"=+ c #C0CED7",
-"-+ c #B1C5D6",
-";+ c #005F96",
-">+ c #5992B7",
-",+ c #A5BFD5",
-"'+ c #3884B0",
-")+ c #005D94",
-"!+ c #AECCDF",
-"~+ c #F5F6F7",
-"{+ c #016698",
-"]+ c #5B94BE",
-"^+ c #FFFCFE",
-"/+ c #FAFBFB",
-"(+ c #FFFFFD",
-"_+ c #86B2CC",
-":+ c #005892",
-"<+ c #A7C4D8",
-"[+ c #D9E0EA",
-"}+ c #005C93",
-"|+ c #82B2CC",
-"1+ c #E6F0F9",
-"2+ c #02669A",
-"3+ c #90B4C6",
-"4+ c #CAD3D7",
-"5+ c #4588AE",
-"6+ c #BDCBD3",
-"7+ c #AFC1D0",
-"8+ c #85ADC5",
-"9+ c #B8C9D4",
-"0+ c #005E95",
-"a+ c #6294B1",
-"b+ c #F8EBE8",
-"c+ c #F7F2F3",
-"d+ c #FBFAFC",
-"e+ c #A4C6DB",
-"f+ c #1C72A4",
-"g+ c #438BB1",
-"h+ c #4B8FB1",
-"i+ c #156DA1",
-"j+ c #6397B7",
-"k+ c #DBDCDE",
-"l+ c #3D82AC",
-"m+ c #528CB1",
-"n+ c #C9CED3",
-"o+ c #DBE2E4",
-"p+ c #E4EFF8",
-"q+ c #247AAB",
-"r+ c #317EA9",
-"s+ c #D0D5D9",
-"t+ c #1A72A1",
-"u+ c #0B6B9D",
-"v+ c #3F88B0",
-"w+ c #3A85AF",
-"x+ c #84ADC9",
-"y+ c #E9E9EC",
-"z+ c #4E8DB1",
-"A+ c #287AA8",
-"B+ c #78A6C2",
-"C+ c #478AB3",
-"D+ c #5997BE",
-"E+ c #F4F7F8",
-"F+ c #E0EAF2",
-"G+ c #06689C",
-"H+ c #82A8C1",
-"I+ c #ECE6E2",
-"J+ c #E5E2E2",
-"K+ c #F6F0ED",
-"L+ c #A5C2D0",
-"M+ c #005E93",
-"N+ c #81A7BE",
-"O+ c #BBCAD4",
-"P+ c #056A9C",
-"Q+ c #136F9F",
-"R+ c #4989B8",
-"S+ c #4286B7",
-"T+ c #89B6D3",
-"U+ c #DFEAF2",
-"V+ c #B8D4E0",
-"W+ c #A7C4D2",
-"X+ c #BCC8D3",
-"Y+ c #E2DDDC",
-"Z+ c #D9D9DA",
-"`+ c #AFC3CE",
-" @ c #D4D7D8",
-".@ c #DFDBDA",
-"+@ c #DEDDDC",
-"@@ c #F4F2F0",
-"#@ c #CEDBE3",
-"$@ c #AFC2CD",
-"%@ c #D4D4D5",
-"&@ c #B9C5CE",
-"*@ c #A6BDC9",
-"=@ c #ABC4D1",
-"-@ c #B7D2DF",
-";@ c #D3E0EA",
-">@ c #F7F4F3",
-",@ c #F5F4F5",
-"'@ c #C5DBE7",
-")@ c #ABCADA",
-"!@ c #BFD6E2",
-"~@ c #FDFDFF",
-"{@ c #FEFCFC",
-"]@ c #EAECEC",
-"^@ c #B1C6D0",
-"/@ c #C7D0D4",
-"(@ c #DCDBDA",
-"_@ c #E7E6E5",
-":@ c #DDDCDB",
-"<@ c #C6CDD0",
-"[@ c #B4C9D5",
-"}@ c #D9E0E5",
-"|@ c #F6F7F9",
-"1@ c #CDE1EC",
-"2@ c #C6DDE9",
-"3@ c #BFDAE5",
-"4@ c #BCD8E4",
-"5@ c #D2E5EE",
-"6@ c #F9F7F6",
-"7@ c #EAEAEA",
-"8@ c #E4E4E4",
-"9@ c #EAE6E4",
-"0@ c #E4E3E2",
-"a@ c #E1E1E1",
-"b@ c #E0E0E0",
-"c@ c #D7D7D7",
-"d@ c #DCDAD9",
-"e@ c #DFDCDA",
-"f@ c #DFDDDB",
-"g@ c #E2DFDD",
-"h@ c #DFDBD9",
-"i@ c #E7E3E1",
-"j@ c #ECEAE9",
-"k@ c #EBEAEA",
-"l@ c #F1EEEC",
-"m@ c #E9E4E3",
-"n@ c #E9E6E4",
-"o@ c #EAEAE9",
-"p@ c #DEDEDE",
-"q@ c #D8D7D7",
-"r@ c #DBDAD9",
-"s@ c #D6D6D6",
-"t@ c #D3D3D3",
-"u@ c #E5E4E3",
-"v@ c #F9F8F7",
-"w@ c #F9F9F8",
-"x@ c #FBFBFB",
-"y@ c #F2F2F2",
-"z@ c #F0F0F0",
-"A@ c #F1F1F1",
-"B@ c #DDDDDD",
-"C@ c #DBDBDB",
-"D@ c #DADADA",
-"E@ c #D5D5D5",
-"F@ c #E7E7E7",
-"G@ c #D9D9D9",
-"H@ c #CECECE",
-"I@ c #DCDCDC",
-"J@ c #E9E9E9",
-"K@ c #F4F4F4",
-"L@ c #FAFAFA",
-"M@ c #FEFEFE",
-"N@ c #F5F5F5",
-"O@ c #ECECEC",
-"P@ c #E8E8E8",
-"Q@ c #D8D8D8",
-"R@ c #F7F7F7",
-"S@ c #DFDFDF",
-"T@ c #E5E5E5",
-"U@ c #F3F3F3",
-"V@ c #F3F2F0",
-"W@ c #E7E6E2",
-"X@ c #F9F8FB",
-"Y@ c #FFFDFD",
-"Z@ c #D0D0D0",
-"`@ c #F6F6F6",
-" # c #EBEBEB",
-".# c #FCFDFD",
-"+# c #FEFDFD",
-"@# c #FBF9F5",
-"## c #FCF9F5",
-"$# c #F9F9F6",
-"%# c #F8F8FA",
-"&# c #F8F9FD",
-"*# c #E7E4E0",
-"=# c #E1E0D2",
-"-# c #D6C699",
-";# c #B29960",
-"># c #CCCBC7",
-",# c #CDCCCB",
-"'# c #F4F4F5",
-")# c #EFF0F2",
-"!# c #D6CBB9",
-"~# c #C3B089",
-"{# c #D2C2A7",
-"]# c #B1ACA2",
-"^# c #EDEEEF",
-"/# c #E9E7E0",
-"(# c #B69B5C",
-"_# c #B99954",
-":# c #BD9A47",
-"<# c #C7A446",
-"[# c #DDBB56",
-"}# c #EFC546",
-"|# c #F7C756",
-"1# c #FADA8A",
-"2# c #F9EAA5",
-"3# c #DEBF7F",
-"4# c #AB8B3E",
-"5# c #715C2A",
-"6# c #3F3E1C",
-"7# c #5D4700",
-"8# c #C3B58D",
-"9# c #FFFCF1",
-"0# c #8C8262",
-"a# c #FCFDFB",
-"b# c #EDEBE3",
-"c# c #E4E1D9",
-"d# c #D9D0C0",
-"e# c #C3B38A",
-"f# c #8F7323",
-"g# c #B98A0E",
-"h# c #F6C353",
-"i# c #FFE4A7",
-"j# c #FFF2CB",
-"k# c #E4C288",
-"l# c #896721",
-"m# c #302400",
-"n# c #3C3715",
-"o# c #695D37",
-"p# c #978D6E",
-"q# c #C5C0AE",
-"r# c #B6B1A4",
-"s# c #D5D7DA",
-"t# c #776F58",
-"u# c #79571D",
-"v# c #977E45",
-"w# c #948856",
-"x# c #745E2E",
-"y# c #614A2B",
-"z# c #9B9B8F",
-"A# c #E6E5E6",
-"B# c #FBFCFF",
-"C# c #F6F7FA",
-"D# c #D1D0D0",
-"E# c #E7E5EA",
-"F# c #A0967A",
-"G# c #615930",
-"H# c #CBC9C9",
-"I# c #DAC388",
-"J# c #6C5B19",
-"K# c #E3E5E8",
-"L# c #FCF0CA",
-"M# c #FDCF3E",
-"N# c #7F6104",
-"O# c #7D7F6B",
-"P# c #9C9C9C",
-"Q# c #D4D4D4",
-"R# c #C4C4C7",
-"S# c #97917D",
-"T# c #9A842F",
-"U# c #A68827",
-"V# c #63501B",
-"W# c #24240C",
-"X# c #54554C",
-"Y# c #B3B3B4",
-"Z# c #ABABAB",
-". + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ - / ) ( _ : < [ } | 1 2 3 - 4 5 6 7 8 9 0 a b c d - - - - - - - e f ",
-"g h i j k l m n h h h o p q h h r s t h h h u v w x y v z A B C D h h E F G H I J K L M h h h h h h h h h N ",
-"g h O P Q h h h h h R S T U V h W X Y Z ` h ...+.h @.#.$.%.&.*.=.-.;.>.,.'.).!.~.h {.].^.h h h h h h h h /.",
-"g h (._.:.<.[.}.|.h 1.2.3.4.5.h W 6.7.8.9.h 0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.l.r.s.t.u.h h h h h h h h /.",
-"g h h v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.h h h L.a.M.N.O.e.P.Q.R.S.T.U.V.W.e.X.Y.e.Z.`. +.+++h h h h h h h h /.",
-"g h @+#+$+%+&+*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+h [+}+|+1+2+3+4+5+6+7+;+8+9+0+a+b+c+d+h h h h h h h h h /.",
-"g h e+f+g+h+i+j+k+l+m+n+o+p+q+r+s+t+u+v+w+x+y+z+A+B+C+D+E+F+G+H+I+J+K+L+M+N+O+P+Q+R+S+T+h h h h h h h h h /.",
-"g h h U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@^@/@(@_@:@<@[@}@|@1@2@3@4@5@h h h h h h h h h /.",
-"g h h h h {.6@7@8@9@0@a@b@c@d@e@c@f@g@h@i@j@8@k@l@m@n@o@p@q@e@r@N s@t@u@(+v@w@h h h h h h h h h h h h h h /.",
-"g h h h h h h h x@y@z@A@A@7@p@p@B@C@D@c@E@p@F@a@D@C@G@H@E@I@b@J@z@z@K@L@M@h M@h h h h h h h h h h h h h h /.",
-"g h h h h h h h h h h h h 9.A@N@y@O@P@J@P@7@t.t.t.Q@C@t.R@M@M@h h h h h h h h h h h h h h h h h h h h h h /.",
-"g h h h h h h h h h h h h h h h M@^.++++++y@S@s@T@U@++h h h h h h h h h h h h h h h h h V@W@h h h h h X@Y@Z@",
-"g h h h h h h h h h h h h h h h h h h h h ++`@z@O@ #F@F@O@z@`@R@`@K@R@.#+#@###$#%#&#*#=#-#;#>#,#'#)#!#~#{#]#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h x@`@U@z@z@U@K@y@P@^#/#(#_#:#<#[#}#|#1#2#3#4#5#6#7#8#9#0#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h M@M@a#b#c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h s#t#u#v#w#x#y#z#A#B#C#].D#",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h R E#F#G#H#,@h h h h h /.",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h I#J#K#h h h h h h /.",
-"g h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h h L#M#N#O#` h h h h h /.",
-"P#G@N N N N t@t@t@N N t@t@t@t@N t@t@t@N N t@t@t@N N t@t@t@t@N N N N N N N N N N Q#R#S#T#U#V#W#X#Y#t@N N c@Z#"};
+"54 20 415 2",
+"bH c #004f87",
+"a1 c #005089",
+"bo c #00508a",
+"ac c #00518e",
+".S c #005292",
+"#I c #005395",
+".H c #005396",
+".0 c #005497",
+"#f c #005498",
+"#i c #005499",
+"a6 c #00559a",
+"a. c #00559b",
+".y c #00559c",
+".T c #01508a",
+".U c #01508b",
+"#Q c #015393",
+"#T c #015395",
+"bm c #024f82",
+".t c #025088",
+"as c #02579d",
+"#S c #045490",
+"#B c #045698",
+"aP c #04589d",
+"#P c #05538b",
+"bs c #055695",
+"ay c #05589d",
+"b# c #05589e",
+".4 c #06548d",
+".R c #06599e",
+"#w c #06599f",
+"bL c #095999",
+".I c #0a5589",
+".s c #0a5c9f",
+"bl c #0c5da0",
+"au c #0d5585",
+"az c #0d578c",
+".J c #0d5a97",
+".v c #0e5990",
+"bu c #0e5c9b",
+"bA c #0f5e9f",
+"#W c #125e98",
+"aM c #135a8a",
+"#v c #1462a2",
+"aL c #1563a3",
+".u c #185f90",
+"#9 c #186199",
+"av c #1864a3",
+".z c #1c659e",
+"a8 c #1c66a4",
+"aq c #1d67a6",
+"#O c #1d68a6",
+"a3 c #1d68a7",
+".M c #1f69a8",
+"#D c #206aa8",
+"#d c #21689e",
+"a0 c #216aa7",
+"aO c #226391",
+"a9 c #236490",
+"aN c #236492",
+"aw c #246490",
+"bJ c #246491",
+".K c #256eaa",
+"ba c #276691",
+"#l c #276792",
+"#c c #276faa",
+"#U c #286894",
+"#j c #286994",
+"at c #2c6c9a",
+"bC c #2c71ab",
+"#g c #2e6f9e",
+"#E c #2e70a0",
+".w c #327099",
+"bM c #3372a7",
+"bN c #3574a9",
+"aS c #367198",
+"## c #38708f",
+"bO c #3877ac",
+"a5 c #387ab2",
+"bw c #3978ad",
+"ah c #3a759b",
+".6 c #3a759c",
+"bv c #3b7aaf",
+".P c #3d78a2",
+"#h c #3e7eb3",
+"ar c #3f789e",
+"a# c #437fb1",
+"aB c #447798",
+"bx c #457fae",
+"d4 c #46350e",
+"bD c #467894",
+"bU c #467999",
+"aA c #46799b",
+"bz c #467eac",
+"ae c #4683b7",
+"bi c #4784b7",
+"d3 c #483809",
+"bT c #4a7c9d",
+"aC c #4b7994",
+"a7 c #4c7a95",
+"#x c #4c87b9",
+"ee c #4f3f14",
+"cb c #4f7e9b",
+"ca c #4f7fa0",
+"br c #4f84b2",
+".C c #4f85a9",
+".3 c #508abb",
+"eA c #523f0c",
+"aQ c #5488ad",
+".G c #548dbd",
+"bF c #5586a5",
+"a4 c #5687a6",
+"bB c #588cb7",
+"aJ c #598fbb",
+"dM c #5a4e2f",
+"bV c #5c859c",
+"#H c #5c91be",
+"bk c #5c92bf",
+"al c #5e93c0",
+"ao c #5f90bb",
+"d5 c #604b10",
+"bn c #628fb0",
+"b8 c #63889d",
+"b7 c #64899f",
+"ev c #655a3b",
+"co c #668ca2",
+"#X c #6694bd",
+"#Y c #6695bd",
+"#M c #6697c1",
+"bj c #6698c3",
+"b6 c #678da3",
+"e. c #6b5f3b",
+"b3 c #6b90a7",
+"bS c #6b94ae",
+"eB c #6c6349",
+"#8 c #6e9ab9",
+"cl c #718fa0",
+"bY c #7293a5",
+"cp c #7297ae",
+"ed c #77612f",
+"em c #79632f",
+"cr c #799fb5",
+"ab c #79a5cb",
+"ef c #7a735f",
+"#C c #7a9eb0",
+"cq c #7aa1b7",
+"d2 c #7d6322",
+"en c #7d735c",
+"ad c #7ea5c4",
+".Z c #7faacd",
+"dL c #82744d",
+"dN c #836517",
+"e# c #846820",
+"cc c #849fad",
+"b5 c #84a2b3",
+"aX c #84a4b9",
+"bh c #87afd0",
+"cn c #8aa5b6",
+"c# c #8aa5b7",
+".N c #8aadc5",
+".O c #8aafcf",
+"bI c #91a7b4",
+"d6 c #928259",
+"#Z c #92afc7",
+"cg c #94aab8",
+"bG c #94b5d0",
+"aW c #95b4cf",
+"bP c #96b0c2",
+"ck c #97adbc",
+".5 c #97b6c9",
+"dK c #997d38",
+"#. c #99b8d5",
+"el c #9c9584",
+"er c #9e7a1d",
+"dV c #9e7b1c",
+"dU c #9e8a55",
+"aK c #9eb8c5",
+".1 c #9fbaca",
+"ap c #a0b8c4",
+".V c #a0b9c7",
+"cf c #a2b8c7",
+"bW c #a5b5bc",
+"#J c #a5bdc8",
+"cs c #a7bfcc",
+"b4 c #a8b8bf",
+"bp c #a8b8c0",
+"dk c #a9935c",
+"es c #a9a499",
+"#y c #a9c3dd",
+".b c #aac6de",
+".k c #abc7de",
+"ec c #af9864",
+".a c #b5cee2",
+"eo c #b6b2a8",
+"ea c #b79851",
+"b9 c #b7bfc4",
+"#N c #b9ccd5",
+"bt c #bac5cc",
+"am c #baccd5",
+"dJ c #bb9c5b",
+"eC c #bbb8af",
+".c c #bbd1e5",
+".x c #bbd2e5",
+"dT c #beb49a",
+"dQ c #bfb291",
+"d7 c #bfb5a0",
+"bX c #bfc8d2",
+"dq c #c0b59b",
+"eg c #c0beb7",
+"ci c #c0c6ca",
+"af c #c0d1dc",
+".l c #c0d5e7",
+"by c #c1c8cd",
+"#R c #c2d2dd",
+"a2 c #c3d1d8",
+"dO c #c4bba7",
+".r c #c5d8e8",
+"dl c #c6c5c1",
+"eb c #c8ae76",
+"bd c #c9c8c9",
+"eu c #ca9b20",
+"bc c #cac8ca",
+"dp c #ccbb94",
+"ek c #cccac6",
+"d9 c #cdcac5",
+"b2 c #cdd1d8",
+"be c #cecdce",
+"d1 c #d0af6a",
+"dA c #d1af59",
+"dS c #d1cbbe",
+"bb c #d1cfd1",
+".p c #d1e0ed",
+".h c #d1e1ed",
+"d8 c #d2c9b5",
+"aE c #d2d0d2",
+".f c #d2e1ee",
+"cm c #d3d3d4",
+"cj c #d3d3d5",
+".j c #d3e1ee",
+"cA c #d4d2d4",
+"#u c #d4e2ee",
+"ez c #d5a425",
+"dB c #d5b35a",
+"dR c #d5d1c8",
+"c3 c #d5d3d5",
+"cZ c #d5d4d4",
+"aD c #d5d4d6",
+"cE c #d6d4d5",
+"cN c #d6d4d6",
+"aF c #d6d5d6",
+"cB c #d6d6d6",
+"ax c #d6d8d9",
+"bq c #d7d4d7",
+"b1 c #d7d6d7",
+"cY c #d7d7d7",
+".n c #d7e4ef",
+"dW c #d8a726",
+"cy c #d8d6d8",
+"b0 c #d8d7d8",
+"bZ c #d8d8d8",
+"c. c #d8d8d9",
+"cd c #d8d8db",
+"cX c #d8d9d8",
+".L c #d8e5ee",
+"dE c #d9b456",
+"dC c #d9b65d",
+"cz c #d9d7d9",
+"#2 c #d9d8d9",
+"cM c #dad8da",
+"b. c #dad8dd",
+"cJ c #dad9d9",
+"c0 c #dad9da",
+"cF c #dbd9da",
+"cC c #dbd9db",
+"cx c #dbdadb",
+"cW c #dbdbdb",
+"dD c #dcb963",
+"cD c #dcdadc",
+"cH c #dddbdc",
+"#3 c #dddbdd",
+"cG c #dddcdc",
+"#1 c #dddcdd",
+"cK c #dedbde",
+"cI c #dedcdd",
+"c4 c #dedcde",
+"c2 c #deddde",
+"cL c #dfdddf",
+"ch c #dfdde0",
+"#o c #dfe2e5",
+"#7 c #dfe6ec",
+"dI c #e0c78c",
+"cw c #e0dee0",
+"dc c #e0dfe0",
+"#m c #e0e3e6",
+".2 c #e0e7ec",
+"#A c #e0eaf3",
+"c5 c #e1dfe0",
+"cV c #e1dfe1",
+"#n c #e1e4e7",
+"de c #e2e0e1",
+"#0 c #e2e1e2",
+"eh c #e3e2df",
+"c1 c #e3e2e3",
+"aZ c #e3e5e7",
+"dF c #e4b750",
+"do c #e4e0d9",
+"dd c #e4e2e4",
+"db c #e4e3e4",
+"bR c #e4ebf1",
+"ex c #e5cb8a",
+"dy c #e5e3e4",
+"ep c #e5e5e5",
+"da c #e6e4e5",
+"dG c #e7c373",
+"dx c #e7e5e6",
+"ce c #e7e5e7",
+"cv c #e7e6e7",
+"et c #e8d29f",
+"cT c #e8e6e8",
+"d. c #e8e7e8",
+"bK c #e8e8eb",
+".g c #e8eff6",
+"dw c #e9e8e9",
+"aY c #e9e9e9",
+"#p c #e9e9ec",
+"aR c #e9ecf0",
+"dr c #eae8e3",
+"#r c #eae8ea",
+"aT c #eae9ea",
+"bf c #eaeaea",
+".# c #eaf1f7",
+"#s c #ebe8eb",
+"d# c #ebe9ea",
+"aU c #ebeaeb",
+"ei c #ebebe9",
+".d c #ebf2f7",
+"dz c #ece7df",
+"#q c #eceaec",
+"cS c #ecebeb",
+"cU c #ecebec",
+"bE c #ececed",
+"#V c #eceeef",
+"c9 c #edebed",
+"dv c #edecec",
+"c6 c #edeced",
+"eq c #eeeceb",
+"aV c #eeecee",
+"dh c #eeedee",
+"dt c #eeeeee",
+"aa c #eef0f2",
+"#a c #eef2f3",
+"aG c #efeeef",
+"df c #efefef",
+".i c #eff4f9",
+"dH c #f0d496",
+"ew c #f0ece2",
+"cO c #f0eef0",
+"du c #f0efef",
+"an c #f0eff0",
+"c7 c #f1f0f1",
+"ej c #f1f1f0",
+"ey c #f2bc31",
+"aH c #f2f1f2",
+"bQ c #f2f2f2",
+"ag c #f2f3f9",
+"#b c #f2f4f7",
+"ds c #f3f2f2",
+"cu c #f3f2f3",
+"dg c #f3f3f3",
+"#k c #f3f4f6",
+".A c #f3f6f8",
+".o c #f3f6fa",
+".B c #f3f7fa",
+"#4 c #f4f2f4",
+"dm c #f4f3f3",
+"#L c #f4f3f4",
+"dj c #f4f4f3",
+"cP c #f5f4f5",
+"c8 c #f6f5f6",
+".8 c #f7f5f7",
+".9 c #f7f6f7",
+"#z c #f7f6f9",
+"aI c #f7f8f9",
+"#e c #f7f9fa",
+"#G c #f8f6f8",
+"dP c #f8f7f7",
+"cR c #f8f7f8",
+"dn c #f8f8f8",
+"aj c #f9f7f9",
+"di c #f9f8f8",
+"#t c #f9f8f9",
+"bg c #f9f9f9",
+".Q c #f9fbfc",
+".m c #f9fbfd",
+"dX c #fac549",
+"d0 c #fae6bb",
+"ai c #fafafa",
+".F c #fafbfd",
+"#6 c #fbfafb",
+".7 c #fbfbfb",
+"ct c #fbfcfc",
+"#F c #fcfbfc",
+"#K c #fcfcfc",
+"cQ c #fdfdfd",
+".e c #fdfefe",
+".Y c #fefcfe",
+".E c #fefdfe",
+"#5 c #fefefe",
+".q c #fefeff",
+"dY c #ffda8c",
+"dZ c #ffedc6",
+".X c #fffbfe",
+"ak c #fffcfe",
+".W c #fffdff",
+".D c #fffeff",
+"Qt c #ffffff",
+"Qt.#.a.b.c.dQtQt.e.f.gQtQt.e.h.iQtQtQtQtQt.j.k.l.mQtQt.n.h.eQt.o.p.d.q.j.h.h.h.h.eQtQtQtQtQtQtQtQtQtQtQtQtQt",
+".r.s.t.u.v.wQtQt.x.y.z.AQt.B.y.C.D.E.D.F.G.H.I.J.K.LQt.M.y.NQt.O.y.P.Q.R.S.T.U.T.V.W.W.X.YQtQtQtQtQtQtQtQtQt",
+".Z.0.1Qt.q.2.DQt.3.4.y.5Qt.B.y.6.7.8.9#..y###a#b#c#d#e.M#f#gQt#h#i#j#k.R#l#m#n#o#p#q#r#s#tQtQtQtQtQtQtQtQtQt",
+"#u#v#w#x#y#z#t#A#B#C#D#E.E.o.y.6#F.8#G#H#I#J#K#L#M#f#N#O#P#Q#R#S#T#U#V.R#W#X#Y#Z#0#1#2#3#4#5QtQtQtQtQtQtQtQt",
+"#6#7#8#9a.a#aaabacadae#iafag.yahaiajakal.Ham#Kanao.0apaqarasatauavawaxayazaAaBaCaDaEaFaG.7QtQtQtQtQtQtQtQtQt",
+"#6#4aHaIaJ#iaKaLaMaNaOaPaQaR.yaSaTaUaVaW.yaXaYaZa0a1a2a3a4a5a6a7a8a9b.b#babbbcbdbe#1bfbg#K#5QtQtQtQtQtQtQtQt",
+"bhbibjbkblbmbnbobpbqbqbrbsbt.ybubvbwbxbybzbAbBbC.SbDbE#ObFbGbHbIa8bJbK.RbLbMbNbObPbQai.7QtQtQtQtQtQtQtQtQtQt",
+"bRbSbTbUbVbWbXbYbZb0b1b2b3b4b5b6b6b7b8b9c.c#cacbcccdcecfcgchcicjckclcmcncocpcqcrcsQtctQtQtQtQtQtQtQtQtQtQtQt",
+"#5#5.7cucvcwcxcycz#2cycAaFcBbZcCcDcEcFcGcHcI#1cJ#2cKcLcMb1b0cNcyczcBb1cwcOcP#6cQQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtcRcScTaTaVcUcV#1cWcXcYbZcZc0cwc1cLcDc2#1cNc3b1c4c5cec6c7c8aicQ#5#5cQQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtaicuaGc9aUd.d.d#dadbdcdddeb1b0cDdf#6#5QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt#FcR#Gc6cL#2cv#6QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.DcRdgc6c1dcdhaHcPcPc8c8dibg#K#5QtQtQtQtQtQtQtcQdjdgdkdldmdnQtcQdodpdqdr",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQt.EcRdsdtduaGdvdwdxcvdyaTdzdAdBdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQ",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtbgdRdSdTdUdVdWdXdYdZd0d1d2d3d4d5d6d7d8",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtd9e.e#eaebecedeeefegeheiejQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtcQekelemeneoepQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteqeresQtQtQtQtQtQtQtQt",
+"QtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQtQteteuevaiQtQtQtQtQtQtQt",
+"aiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiaiai.7ewexeyezeAeBeC#Kaiaiaiai#5"};
static const char* const image0_data[] = {
"16 16 14 1",
// File : main.cxx
// Created : Thu Dec 18 12:01:00 2002
// Author : Vadim SANDLER
-// Project : PAL/SALOME
-// Module : InstallWizard
-// Copyright : 2004 CEA
-// $Header$
+// Project : SALOME
+// Module : Installation Wizard
+// Copyright : 2004-2005 CEA
+
+#include "globals.h"
#include "SALOME_InstallWizard.hxx"
#include <qapplication.h>
#include <qfile.h>
#include <qmessagebox.h>
+// ================================================================
+/*!
+ * MessageOutput
+ * Qt's messages handler funcion
+ */
+// ================================================================
+void MessageOutput( QtMsgType type, const char *msg )
+{
+ switch ( type ) {
+ case QtDebugMsg:
+ ___DEBUG___( msg );
+ break;
+ case QtWarningMsg:
+ ___WARNING___( msg );
+ break;
+ case QtFatalMsg:
+ ___FATAL___( msg );
+ break;
+ }
+}
+
// ================================================================
/*!
* main
// ================================================================
int main( int argc, char **argv )
{
+ qInstallMsgHandler( MessageOutput );
QApplication a( argc, argv );
QString xmlFileName( argc == 2 ? argv[1] : "config.xml" );