forgot this commit.
--- a/.hgtags Sat Sep 28 16:49:18 2019 +0300
+++ b/.hgtags Wed Oct 23 17:45:28 2019 -0400
@@ -89,3 +89,4 @@
afc089c39556bdd895892fa36ed47aaec83c3825 0.9.24.1-release
195208deff1dd3e22d303d4a92c2ba14be3b6623 Hedgewars-iOS-2.1
5e28098fb59379357a145b73380a1cd3839f643f 0.9.25-release
+3102d95a870e61385ee6951e30dc3be739210093 1.0.0-release
--- a/.travis.yml Sat Sep 28 16:49:18 2019 +0300
+++ b/.travis.yml Wed Oct 23 17:45:28 2019 -0400
@@ -52,6 +52,7 @@
before_install: |
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
+ sudo add-apt-repository ppa:costamagnagianfranco/hedgewars-nightly -y
sudo apt-get update -qq
elif [ "$TRAVIS_OS_NAME" == "osx" ]; then
brew update
@@ -65,18 +66,7 @@
install: |
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
- sudo apt-get install -y debhelper cmake dpkg-dev qtbase5-dev qtbase5-private-dev qttools5-dev-tools qttools5-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev libsdl2-net-dev bzip2 ghc libghc-mtl-dev libghc-vector-dev libghc-zlib-dev libghc-random-dev libghc-network-dev libghc-sandi-dev libghc-hslogger-dev libghc-utf8-string-dev libghc-sha-dev libghc-entropy-dev libghc-regex-tdfa-dev libghc-aeson-dev libghc-yaml-dev libghc-text-dev liblua5.1-0-dev fpc fp-compiler fp-units-misc libpng-dev fp-units-gfx libavcodec-dev libavformat-dev libglew1.6-dev
-
- # for xenial last availible version of libphysfs is 2.0.x, but we need >= 3.0
- # so... building from sources!
- wget https://icculus.org/physfs/downloads/physfs-3.0.1.tar.bz2
- tar -xjf physfs-3.0.1.tar.bz2
- mkdir physfs-3.0.1-build
- pushd physfs-3.0.1-build
- cmake ../physfs-3.0.1
- make
- sudo make install
- popd
+ sudo apt-get install -y cmake debhelper dpkg-dev fp-compiler fp-units-gfx fp-units-misc ghc libavcodec-dev libavformat-dev libghc-aeson-dev libghc-entropy-dev libghc-hslogger-dev libghc-mtl-dev libghc-network-dev libghc-parsec3-dev libghc-random-dev libghc-regex-tdfa-dev libghc-sandi-dev libghc-sha-dev libghc-text-dev libghc-utf8-string-dev libghc-vector-dev libghc-yaml-dev libghc-zlib-dev liblua5.1-dev libphysfs-dev libpng-dev libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev qtbase5-dev qtbase5-private-dev qttools5-dev qttools5-dev-tools
elif [ "$TRAVIS_OS_NAME" == "osx" ]; then
brew install qt5
brew install fpc glew physfs lua51 sdl2 sdl2_image sdl2_net sdl2_ttf ffmpeg ghc cabal-install
@@ -84,11 +74,11 @@
# use cabal install haskell deps, pas2c ones are covered by server
if [[ "$BUILD_ARGS" != *"NOSERVER"* ]]; then
cabal update
- cabal install --only-dependencies gameServer/hedgewars-server.cabal
+ cabal install --only-dependencies --cabal-file=gameServer/hedgewars-server.cabal
fi
if [[ "$BUILD_ARGS" == *"BUILD_ENGINE_C"* ]]; then
cabal update
- cabal install --only-dependencies tools/pas2c/pas2c.cabal
+ cabal install --only-dependencies --cabal-file=tools/pas2c/pas2c.cabal
fi
# avoid installing Sparkle, add default unit path
export BUILD_ARGS="$BUILD_ARGS -DNOAUTOUPDATE=1"
--- a/CMakeLists.txt Sat Sep 28 16:49:18 2019 +0300
+++ b/CMakeLists.txt Wed Oct 23 17:45:28 2019 -0400
@@ -54,7 +54,7 @@
if(BUILD_ENGINE_C AND NOT NOVIDEOREC)
- if((CMAKE_BUILD_TYPE MATCHES "RELEASE") OR (CMAKE_BUILD_TYPE MATCHES "RELWITHDEBUGINFO"))
+ if((CMAKE_BUILD_TYPE STREQUAL "Release") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
message("NOTE: Video recorder support disabled. It's incompatible with BUILD_ENGINE_C")
set(BUILD_ENGINE_C ON CACHE STRING "Required for BUILD_ENGINE_JS" FORCE)
else()
@@ -91,9 +91,9 @@
#versioning
set(CPACK_PACKAGE_VERSION_MAJOR 1)
set(CPACK_PACKAGE_VERSION_MINOR 0)
-set(CPACK_PACKAGE_VERSION_PATCH 0)
-set(HEDGEWARS_PROTO_VER 58)
-if((CMAKE_BUILD_TYPE MATCHES "RELEASE") OR (CMAKE_BUILD_TYPE MATCHES "RELWITHDEBUGINFO"))
+set(CPACK_PACKAGE_VERSION_PATCH 1)
+set(HEDGEWARS_PROTO_VER 60)
+if((CMAKE_BUILD_TYPE STREQUAL "Release") OR (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
else()
set(HEDGEWARS_VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-dev")
@@ -112,10 +112,9 @@
#when build type is not specified, assume Debug/Release according to build version information
if(CMAKE_BUILD_TYPE)
- string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE)
- if(NOT((CMAKE_BUILD_TYPE MATCHES "RELEASE") OR
- (CMAKE_BUILD_TYPE MATCHES "DEBUG") OR
- (CMAKE_BUILD_TYPE MATCHES "RELWITHDEBINFO")))
+ if(NOT((CMAKE_BUILD_TYPE STREQUAL "Release") OR
+ (CMAKE_BUILD_TYPE STREQUAL "Debug") OR
+ (CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")))
set(CMAKE_BUILD_TYPE ${default_build_type} CACHE STRING "Build type (Debug/Release/RelWithDebInfo)" FORCE)
message(STATUS "Unknown build type ${CMAKE_BUILD_TYPE}, using default (${default_build_type})")
endif()
@@ -168,7 +167,7 @@
#get BUILD_TYPE and enable/disable optimisation
message(STATUS "Using ${CMAKE_BUILD_TYPE} configuration")
-if(CMAKE_BUILD_TYPE MATCHES "DEBUG")
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
list(APPEND haskell_flags "-Wall" # all warnings
"-debug" # debug mode
"-fno-warn-unused-do-bind"
--- a/CREDITS Sat Sep 28 16:49:18 2019 +0300
+++ b/CREDITS Wed Oct 23 17:45:28 2019 -0400
@@ -83,6 +83,8 @@
https://www.freesound.org/people/rombart/sounds/197800/
- Flamethrower sound originally by AslakHostaker (CC-0), adapted from
https://freesound.org/people/AslakHostaker/sounds/395039/
+- Dynamite fuse: Based off sound by apolloaiello (CC BY 3.0)
+ https://freesound.org/people/apolloaiello/sounds/329045/
- Landspray sound originally by Benboncan (CC BY 3.0), remixed from
https://freesound.org/people/Benboncan/sounds/82390/
- Portable Portal Device color switching sound by Wuzzy (CC-0)
--- a/ChangeLog.txt Sat Sep 28 16:49:18 2019 +0300
+++ b/ChangeLog.txt Wed Oct 23 17:45:28 2019 -0400
@@ -1,6 +1,6 @@
+ features
* bugfixes
-============== 1.0.0-dev (unreleased) ==============
+====================== 1.0.0 =======================
Highlights:
+ Campaigns now respect your team identity instead of overwriting it
+ Single missions now support team selection and track your progress
@@ -58,6 +58,8 @@
* Space Invasion: No longer allow to set start shield above shield limit
* Battalion, WxW: Crates drop between turns, when appropriate
* Battalion: Sudden Death effects are now like in the base game
+ * Battalion: Fix incorrect health boost in Highland mode
+ * Battalion: Fix points display not updating properly
* King Mode: Fix team sometimes not being killed properly if king drowned
* King Mode: Kill resurrected minions if king is not alive
* King Mode: Fix whole clan being killed if a king died
@@ -135,6 +137,7 @@
+ Show contour of flying saucer and air mines when in highly opaque water
+ Remove visual clutter in cut scenes
+ Add setting to set default/initial zoom
+ + Render arrow pointing to hog only one if playing with wrapped map
* Black clan color can now be used without visual problems
* Fix last 2 characters in demo chat being missing
* Hide most HUD elements in cinematic mode
@@ -169,6 +172,7 @@
* Fix force-locked schemes getting unlocked when changing map types
* Fix possible to select background-only or hidden themes indirectly by changing map type
* Disallow slash, backslash and colon characters in team and scheme names
+ * Increase user name length from 20 to 40
Sounds and voicepacks:
+ sndYoohoo has been split to sndYoohoo and sndKiss
@@ -395,7 +399,7 @@
Translations:
+ Translations kept up-to-date: German, Polish
- + Major translation updates: Russian, Japanese, Scottish Gaelic, Ukrainian
+ + Major translation updates: Russian, Japanese, Scottish Gaelic, Ukrainian, Italian
Lua API:
* Deprecation: Setting TurnTimeLeft/ReadyTimeLeft directly is deprecated and will become useless in future. Use the setter functions below
--- a/QTfrontend/CMakeLists.txt Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/CMakeLists.txt Wed Oct 23 17:45:28 2019 -0400
@@ -213,9 +213,9 @@
#when debugging, always prompt a console to see fronted messages
#TODO: check it doesn't interfere on UNIX
-if(CMAKE_BUILD_TYPE MATCHES "RELEASE" OR CMAKE_BUILD_TYPE MATCHES "RELWITHDEBINFO")
+if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
set(console_access "WIN32")
-endif(CMAKE_BUILD_TYPE MATCHES "RELEASE" OR CMAKE_BUILD_TYPE MATCHES "RELWITHDEBINFO")
+endif(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
add_executable(hedgewars ${console_access}
${hwfr_src}
--- a/QTfrontend/binds.cpp Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/binds.cpp Wed Oct 23 17:45:28 2019 -0400
@@ -84,7 +84,7 @@
{"!MULTI", QT_TRANSLATE_NOOP("binds (combination)", "precise + toggle hedgehog tags"), QT_TRANSLATE_NOOP("binds", "change hedgehog tag types"), NULL, NULL},
{"!MULTI", QT_TRANSLATE_NOOP("binds (combination)", "switch + toggle hedgehog tags"), QT_TRANSLATE_NOOP("binds", "toggle hedgehog tag translucency"), NULL, NULL},
- {"!MULTI", QT_TRANSLATE_NOOP("binds (combination)", "precise + switch + toggle hedgehog tags"), QT_TRANSLATE_NOOP("binds", "toggle HUD"), NULL, NULL},
+ {"!MULTI", QT_TRANSLATE_NOOP("binds (combination)", "precise + switch + toggle team bars"), QT_TRANSLATE_NOOP("binds", "toggle HUD"), NULL, NULL},
#ifdef VIDEOREC
{"record", "r", QT_TRANSLATE_NOOP("binds", "record"), NULL, QT_TRANSLATE_NOOP("binds (descriptions)", "Record video:")}
#endif
Binary file QTfrontend/hedgewars.ico has changed
--- a/QTfrontend/hwform.cpp Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/hwform.cpp Wed Oct 23 17:45:28 2019 -0400
@@ -1250,7 +1250,7 @@
noRegMsg.setIcon(QMessageBox::Information);
noRegMsg.setWindowTitle(QMessageBox::tr("Hedgewars - Nick not registered"));
noRegMsg.setWindowModality(Qt::WindowModal);
- noRegMsg.setText(tr("Your nickname is not registered.\nTo prevent someone else from using it,\nplease register it at www.hedgewars.org"));
+ noRegMsg.setText(tr("Your nickname is not registered.\nTo be able to rejoin games in progress and\nprevent someone else from using your nickname,\nplease register it at www.hedgewars.org."));
if (!config->passwordHash().isEmpty())
{
--- a/QTfrontend/res/credits.csv Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/res/credits.csv Wed Oct 23 17:45:28 2019 -0400
@@ -153,6 +153,7 @@
E,"Italian","Marco Bresciani","m.bresciani@email.it",
E,"Italian","Gianfranco Costamagna","costamagnagianfranco@yahoo.it",
E,"Italian",,"enricobe@hotmail.com","Enrico"
+E,"Italian","Pacella Marco Ernesto","pacella389@gmail.com","KIRA"
E,"Japanese","ADAM Etienne","etienne.adam@gmail.com",
E,"Japanese","Marco Bresciani","m.bresciani@email.it",
E,"Korean","Anthony Bellew","anthonyreflected@gmail.com",
--- a/QTfrontend/ui/page/pagegamestats.cpp Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/ui/page/pagegamestats.cpp Wed Oct 23 17:45:28 2019 -0400
@@ -121,7 +121,7 @@
btnRestart->setFixedHeight(81);
btnRestart->setStyleSheet("QPushButton{margin-top:24px}");
btnSave = addButton(":/res/Save.png", bottomLayout, 2, true);
- btnSave->setWhatsThis(tr("Save"));
+ saveDemoBtnEnabled(true);
btnSave->setStyleSheet("QPushButton{margin: 24px 0 0 0;}");
return bottomLayout;
@@ -174,6 +174,10 @@
void PageGameStats::saveDemoBtnEnabled(bool enabled)
{
btnSave->setEnabled(enabled);
+ if (enabled)
+ btnSave->setWhatsThis(tr("Save demo"));
+ else
+ btnSave->setWhatsThis(tr("Save demo (unavailable because the /lua command was used)"));
}
void PageGameStats::renderStats()
--- a/QTfrontend/ui/page/pageoptions.cpp Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/ui/page/pageoptions.cpp Wed Oct 23 17:45:28 2019 -0400
@@ -573,7 +573,7 @@
groupAccount->layout()->addWidget(labelNN, 0, 0);
editNetNick = new QLineEdit(groupAccount);
- editNetNick->setMaxLength(20);
+ editNetNick->setMaxLength(40);
editNetNick->setText(QLineEdit::tr("anonymous"));
groupAccount->layout()->addWidget(editNetNick, 0, 1);
--- a/QTfrontend/ui/widget/keybinder.cpp Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/ui/widget/keybinder.cpp Wed Oct 23 17:45:28 2019 -0400
@@ -209,12 +209,7 @@
curTable->insertRow(row);
curTable->setItem(row, 0, nameCell);
QTableWidgetItem * bindCell;
- // Check if the bind text is bad. This was discovered after the 1.0.0,
- // so we need a little workaround.
- bool is_broken_strbind = cbinds[i].strbind == "precise + switch + toggle hedgehog tags";
- // ^ should be "precise + switch + toggle team bars"
- // TODO: Remove is_broken_strbind after 1.0.0 release.
- if (cbinds[i].action != "!MULTI" && (!is_broken_strbind))
+ if (cbinds[i].action != "!MULTI")
{
bindCell = new QTableWidgetItem(comboBox->currentText());
nameCell->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
@@ -223,19 +218,7 @@
}
else
{
- // Apply workaround for the broken 1.0.0 strbind
- // TODO: Remove the workaround after 1.0.0 release and fix binds.cpp accordingly.
- if (is_broken_strbind)
- {
- // We simply construct the string from other strings we *do* have. :-)
- QString cellText =
- HWApplication::translate("binds", "precise aim") + " + " +
- HWApplication::translate("binds", "switch") + " + " +
- HWApplication::translate("binds", "toggle team bars");
- bindCell = new QTableWidgetItem(cellText);
- }
- else
- bindCell = new QTableWidgetItem(HWApplication::translate("binds (combination)", cbinds[i].strbind.toUtf8().constData()));
+ bindCell = new QTableWidgetItem(HWApplication::translate("binds (combination)", cbinds[i].strbind.toUtf8().constData()));
nameCell->setFlags(Qt::NoItemFlags);
bindCell->setFlags(Qt::NoItemFlags);
bindCell->setIcon(emptyIcon);
--- a/QTfrontend/util/DataManager.cpp Sat Sep 28 16:49:18 2019 +0300
+++ b/QTfrontend/util/DataManager.cpp Wed Oct 23 17:45:28 2019 -0400
@@ -28,7 +28,7 @@
#include <QSettings>
#include <QColor>
-#include <SDL2/SDL.h>
+#include <SDL.h>
#include "hwconsts.h"
#include "HWApplication.h"
--- a/cmake_modules/compilerchecks.cmake Sat Sep 28 16:49:18 2019 +0300
+++ b/cmake_modules/compilerchecks.cmake Wed Oct 23 17:45:28 2019 -0400
@@ -62,7 +62,7 @@
endif()
endif()
- if(CMAKE_BUILD_TYPE MATCHES "RELEASE" OR CMAKE_BUILD_TYPE MATCHES "RELWITHDEBINFO")
+ if(CMAKE_BUILD_TYPE STREQUAL "Release" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
set(CMAKE_REQUIRED_FLAGS "-Wl,--as-needed")
check_c_compiler_flag("" HAVE_ASNEEDED)
if(HAVE_ASNEEDED)
--- a/cmake_modules/cpackvars.cmake Sat Sep 28 16:49:18 2019 +0300
+++ b/cmake_modules/cpackvars.cmake Wed Oct 23 17:45:28 2019 -0400
@@ -1,6 +1,6 @@
# revision information in cpack-generated names
-if(CMAKE_BUILD_TYPE MATCHES DEBUG)
+if(CMAKE_BUILD_TYPE STREQUAL "Debug")
set(full_suffix "${HEDGEWARS_VERSION}-r${HEDGEWARS_REVISION}")
else()
set(full_suffix "${HEDGEWARS_VERSION}")
@@ -106,6 +106,13 @@
"^${CMAKE_CURRENT_SOURCE_DIR}/gameServer2"
"^${CMAKE_CURRENT_SOURCE_DIR}/rust"
"^${CMAKE_CURRENT_SOURCE_DIR}/qmlfrontend"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/hedgewars"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/hwengine"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/hedgewars-server"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/link\\\\.res"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/ppas\\\\.sh"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/libavwrapper\\\\.*"
+ "^${CMAKE_CURRENT_SOURCE_DIR}/bin/libphyslayer\\\\.*"
)
include(CPack)
--- a/cmake_modules/revinfo.cmake Sat Sep 28 16:49:18 2019 +0300
+++ b/cmake_modules/revinfo.cmake Wed Oct 23 17:45:28 2019 -0400
@@ -17,7 +17,7 @@
endif()
#let's assume that if you have hg you might be interested in debugging
- set(default_build_type "DEBUG")
+ set(default_build_type "Debug")
#write down hash and rev for easy picking should hg be missing
file(WRITE "${CMAKE_SOURCE_DIR}/share/version_info.txt" "Hedgewars versioning information, do not modify\nrev ${HEDGEWARS_REVISION}\nhash ${HEDGEWARS_HASH}\n")
@@ -30,12 +30,12 @@
set(HEDGEWARS_REVISION "GIT")
#let's assume that if you have git you might be interested in debugging
- set(default_build_type "DEBUG")
+ set(default_build_type "Debug")
#write down hash and rev for easy picking should hg be missing
file(WRITE "${CMAKE_SOURCE_DIR}/share/version_info.txt" "Hedgewars versioning information, do not modify\nrev ${HEDGEWARS_REVISION}\nhash ${HEDGEWARS_HASH}\n")
else()
- set(default_build_type "RELEASE")
+ set(default_build_type "Release")
# when compiling outside rev control, fetch revision and hash information from version_info.txt
find_file(version_info version_info.txt PATH ${CMAKE_SOURCE_DIR}/share)
if(version_info)
--- a/gameServer/CoreTypes.hs Sat Sep 28 16:49:18 2019 +0300
+++ b/gameServer/CoreTypes.hs Wed Oct 23 17:45:28 2019 -0400
@@ -313,8 +313,8 @@
True
False
"<h2><p align=center><a href=\"https://www.hedgewars.org/\">https://www.hedgewars.org/</a></p></h2>"
- "<font color=yellow><h3 align=center>Hedgewars 0.9.25 is out! Please update.</h3><p align=center><a href=https://hedgewars.org/download.html>Download page here</a></font>"
- 57 -- latestReleaseVersion
+ "<font color=yellow><h3 align=center>Hedgewars 1.0.0 is out! Please update.</h3><p align=center><a href=https://hedgewars.org/download.html>Download page here</a></font>"
+ 59 -- latestReleaseVersion
41 -- earliestCompatibleVersion
46631
""
--- a/gameServer/Utils.hs Sat Sep 28 16:49:18 2019 +0300
+++ b/gameServer/Utils.hs Wed Oct 23 17:45:28 2019 -0400
@@ -127,6 +127,8 @@
, (56, "0.9.25-dev")
, (57, "0.9.25")
, (58, "1.0.0-dev")
+ , (59, "1.0.0")
+ , (60, "1.0.1-dev")
]
askFromConsole :: B.ByteString -> IO B.ByteString
--- a/hedgewars/uAI.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uAI.pas Wed Oct 23 17:45:28 2019 -0400
@@ -107,6 +107,7 @@
BotLevel:= Me^.Hedgehog^.BotLevel;
windSpeed:= hwFloat2Float(cWindSpeed);
useThisActions:= false;
+Me^.AIHints:= Me^.AIHints and (not aihAmmosChanged);
for i:= 0 to Pred(Targets.Count) do
if (Targets.ar[i].Score >= 0) and (not StopThinking) then
@@ -432,7 +433,7 @@
switchCount:= HHHasAmmo(PGear(Me)^.Hedgehog^, amSwitch)
else switchCount:= 0;
-if ((Me^.State and gstAttacked) = 0) or isInMultiShoot or bonuses.activity then
+if ((Me^.State and gstAttacked) = 0) or isInMultiShoot or bonuses.activity or ((Me^.AIHints and aihAmmosChanged) <> 0) then
if Targets.Count > 0 then
begin
// iterate over current team hedgehogs
@@ -478,7 +479,7 @@
FillBonuses(false);
// Hog has no idea what to do. Use tardis or skip
- if not bonuses.activity then
+ if (not bonuses.activity) and ((Me^.AIHints and aihAmmosChanged) = 0) then
if (((GameFlags and gfInfAttack) <> 0) or (CurrentHedgehog^.MultiShootAttacks = 0)) and (HHHasAmmo(Me^.Hedgehog^, amTardis) > 0) and (CanUseTardis(Me^.Hedgehog^.Gear)) and (random(4) < 3) then
// Tardis brings hog to a random place. Perfect for clueless AI
begin
@@ -488,6 +489,7 @@
end
else
AddAction(BestActions, aia_Skip, 0, 250, 0, 0);
+ Me^.AIHints := ME^.AIHints and (not aihAmmosChanged);
end;
end else SDL_Delay(100)
--- a/hedgewars/uAmmos.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uAmmos.pas Wed Oct 23 17:45:28 2019 -0400
@@ -265,7 +265,9 @@
begin
PackAmmo(Ammo, Ammoz[AmmoType].Slot);
CurAmmoType:= amNothing
- end
+ end;
+if Hedgehog.BotLevel <> 0 then
+ Hedgehog.Gear^.AIHints := Hedgehog.Gear^.AIHints or aihAmmosChanged;
end;
procedure PackAmmo(Ammo: PHHAmmo; Slot: LongInt);
--- a/hedgewars/uConsts.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uConsts.pas Wed Oct 23 17:45:28 2019 -0400
@@ -321,6 +321,7 @@
// AI hints to be set for any gear
aihUsualProcessing = $00000000; // treat gear as usual
aihDoesntMatter = $00000001; // ignore gear in attack calculations and don't intentionally attack it
+ aihAmmosChanged = $00000002; // set when ammos were changed within this turn but not processed yet
// ammo properties
ammoprop_Timerable = $00000001; // can set timer
--- a/hedgewars/uGears.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uGears.pas Wed Oct 23 17:45:28 2019 -0400
@@ -43,6 +43,7 @@
procedure EndTurnCleanup;
procedure DrawGears;
procedure DrawGearsGui;
+procedure DrawFinger;
procedure FreeGearsList;
procedure AddMiscGears;
procedure AssignHHCoords;
@@ -728,6 +729,19 @@
end;
end;
+procedure DrawFinger;
+var Gear: PGear;
+ x, y: LongInt;
+begin
+if ((CurrentHedgehog <> nil) and (CurrentHedgehog^.Gear <> nil)) then
+ begin
+ Gear:= CurrentHedgehog^.Gear;
+ x:= hwRound(Gear^.X) + WorldDx;
+ y:= hwRound(Gear^.Y) + WorldDy;
+ RenderFinger(Gear, x, y);
+ end;
+end;
+
procedure FreeGearsList;
var t, tt: PGear;
begin
--- a/hedgewars/uGearsHandlersMess.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uGearsHandlersMess.pas Wed Oct 23 17:45:28 2019 -0400
@@ -2348,12 +2348,22 @@
doStepFallingGear(Gear);
AllInactive := false;
+ if (Gear^.SoundChannel <> -1) and ((Gear^.State and gstDrowning) <> 0) then
+ begin
+ StopSoundChan(Gear^.SoundChannel);
+ Gear^.SoundChannel:= -1;
+ end
+ else if Gear^.SoundChannel = -1 then
+ Gear^.SoundChannel := LoopSound(sndDynamiteFuse);
+ if (Gear^.State and gstDrowning) <> 0 then
+ exit;
if Gear^.Timer mod 166 = 0 then
inc(Gear^.Tag);
if Gear^.Timer = 1000 then // might need better timing
makeHogsWorry(Gear^.X, Gear^.Y, 75, Gear^.Kind);
if Gear^.Timer = 0 then
begin
+ StopSoundChan(Gear^.SoundChannel);
doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), Gear^.Boom, Gear^.Hedgehog, EXPLAutoSound);
DeleteGear(Gear);
exit
--- a/hedgewars/uGearsRender.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uGearsRender.pas Wed Oct 23 17:45:28 2019 -0400
@@ -38,6 +38,7 @@
procedure RenderGear(Gear: PGear; x, y: LongInt);
procedure RenderGearTimer(Gear: PGear; x, y: LongInt);
procedure RenderGearHealth(Gear: PGear; x, y: LongInt);
+procedure RenderFinger(Gear: PGear; ox, oy: LongInt);
procedure RenderHHGuiExtras(Gear: PGear; ox, oy: LongInt);
procedure RenderAirMineGuiExtras(Gear: PGear; ox, oy: LongInt);
procedure DrawHHOrder();
@@ -238,15 +239,12 @@
end;
-// Render some informational GUI next to hedgehog, like fuel and alternate weapon
-procedure RenderHHGuiExtras(Gear: PGear; ox, oy: LongInt);
+procedure RenderFinger(Gear: PGear; ox, oy: LongInt);
var HH: PHedgehog;
- sx, sy, tx, ty, t, hogLR: LongInt;
+ tx, ty, t: LongInt;
dAngle: real;
begin
HH:= Gear^.Hedgehog;
- sx:= ox + 1; // this offset is very common
- sy:= oy - 3;
if HH^.Unplaced then
exit;
if (Gear^.State and gstHHDeath) <> 0 then
@@ -256,7 +254,7 @@
if (CinematicScript) then
exit;
- // render finger (pointing arrow)
+ // render finger (arrow pointing to hog)
if bShowFinger and ((Gear^.State and gstHHDriven) <> 0) then
begin
ty := oy - 32;
@@ -294,6 +292,25 @@
DrawSpriteRotatedF(sprFinger, tx, ty, RealTicks div 32 mod 16, 1, dAngle);
untint;
end;
+end;
+
+
+// Render some informational GUI next to hedgehog, like fuel and alternate weapon
+procedure RenderHHGuiExtras(Gear: PGear; ox, oy: LongInt);
+var HH: PHedgehog;
+ sx, sy, hogLR: LongInt;
+begin
+ HH:= Gear^.Hedgehog;
+ sx:= ox + 1; // this offset is very common
+ sy:= oy - 3;
+ if HH^.Unplaced then
+ exit;
+ if (Gear^.State and gstHHDeath) <> 0 then
+ exit;
+ if (Gear^.State and gstHHGone) <> 0 then
+ exit;
+ if (CinematicScript) then
+ exit;
// render crosshair
if (CrosshairGear <> nil) and (Gear = CrosshairGear) then
@@ -1493,7 +1510,10 @@
DrawSpriteRotatedF(sprExplosivesRoll, x, y + 4, 1, 0, Gear^.DirAngle)
end;
gtDynamite: begin
- DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1);
+ if ((Gear^.State and gstDrowning) = 0) then
+ DrawSprite(sprDynamite, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1)
+ else
+ DrawSprite(sprDynamiteDefused, x - 16, y - 25, Gear^.Tag and 1, Gear^.Tag shr 1);
if (random(3) = 0) and ((Gear^.State and gstDrowning) = 0) then
begin
vg:= AddVisualGear(hwRound(Gear^.X)+12-(Gear^.Tag shr 1), hwRound(Gear^.Y)-16, vgtStraightShot);
--- a/hedgewars/uSound.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uSound.pas Wed Oct 23 17:45:28 2019 -0400
@@ -332,7 +332,8 @@
(FileName: 'Hmm.ogg'; Path: ptVoices; AltPath: ptNone),// sndHmm
(FileName: 'Kiss.ogg'; Path: ptSounds; AltPath: ptNone),// sndKiss
(FileName: 'Flyaway.ogg'; Path: ptVoices; AltPath: ptNone),// sndFlyAway
- (FileName: 'planewater.ogg'; Path: ptSounds; AltPath: ptNone) // sndPlaneWater
+ (FileName: 'planewater.ogg'; Path: ptSounds; AltPath: ptNone),// sndPlaneWater
+ (FileName: 'dynamitefuse.ogg'; Path: ptSounds; AltPath: ptNone) // sndDynamiteFuse
);
@@ -345,11 +346,11 @@
{ Adjust for language suffix: Voicepacks can have an optional language suffix.
It's an underscore followed by an ISO 639-1 or ISO 639-2 language code.
- The suffix “_qau” is special, it will enable automatic language selection
+ The suffix "_qau" is special, it will enable automatic language selection
of this voicepack. For example, if team has set Default_qau as voicepack,
and the player language is Russian, the actual voicepack will be Default_ru,
provided it can be found on the disk.
- “qau” is a valid ISO 639-2 language code reserved for local use. }
+ "qau" is a valid ISO 639-2 language code reserved for local use. }
tmp:= Copy(name, Length(name) - 3, 4);
if (tmp = '_qau') then
name:= Copy(name, 1, Length(name) - 4);
--- a/hedgewars/uStats.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uStats.pas Wed Oct 23 17:45:28 2019 -0400
@@ -71,9 +71,9 @@
HitTargets : LongWord = 0; // Target (gtTarget) hits in turn
AmmoUsedCount : Longword = 0; // Number of times an ammo has been used this turn
AmmoDamagingUsed : boolean = false; // true if damaging ammo was used in turn
- FirstBlood : boolean = false; // true if the “First blood” taunt has been used in this game
- StepFirstBlood : boolean = false; // true if the “First blood” taunt is to be used this turn
- LeaveMeAlone : boolean = false; // true if the “Leave me alone” taunt is to be used this turn
+ FirstBlood : boolean = false; // true if the "First blood" taunt has been used in this game
+ StepFirstBlood : boolean = false; // true if the "First blood" taunt is to be used this turn
+ LeaveMeAlone : boolean = false; // true if the "Leave me alone" taunt is to be used this turn
SkippedTurns: LongWord = 0; // number of skipped turns in game
isTurnSkipped: boolean = false; // true if this turn was skipped
vpHurtSameClan: PVoicepack = nil; // voicepack of current clan (used for taunts)
--- a/hedgewars/uTeams.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uTeams.pas Wed Oct 23 17:45:28 2019 -0400
@@ -393,6 +393,8 @@
CurWeapon:= GetCurAmmoEntry(CurrentHedgehog^);
if CurWeapon^.Count = 0 then
CurrentHedgehog^.CurAmmoType:= amNothing;
+if CurrentHedgehog^.BotLevel <> 0 then
+ CurrentHedgehog^.Gear^.AIHints:= (CurrentHedgehog^.Gear^.AIHints and (not aihAmmosChanged));
with CurrentHedgehog^ do
begin
--- a/hedgewars/uTypes.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uTypes.pas Wed Oct 23 17:45:28 2019 -0400
@@ -94,8 +94,8 @@
sprFlakeL, sprSDFlakeL, sprCloudL, sprSDCloudL, sprCreeper, sprHandCreeper, sprMinigun,
sprSliderInverted, sprFingerBack, sprFingerBackInv, sprTargetPBack, sprTargetPBackInv,
sprHealthHud, sprHealthPoisonHud, sprVampHud, sprKarmaHud, sprMedicHud, sprMedicPoisonHud,
- sprHaloHud, sprInvulnHUD, sprAmPiano, sprHandLandGun, sprFirePunch, sprThroughWrap
- );
+ sprHaloHud, sprInvulnHUD, sprAmPiano, sprHandLandGun, sprFirePunch, sprThroughWrap,
+ sprDynamiteDefused);
// Gears that interact with other Gears and/or Land
// first row of gears (<gtExplosives) should be avoided when searching a spawn place
@@ -158,7 +158,7 @@
sndLandGun, sndCaseImpact, sndExtraDamage, sndFirePunchHit, sndGrenade, sndThisOneIsMine,
sndWhatThe, sndSoLong, sndOhDear, sndGonnaGetYou, sndDrat, sndBugger, sndAmazing,
sndBrilliant, sndExcellent, sndFire, sndWatchThis, sndRunAway, sndRevenge, sndCutItOut,
- sndLeaveMeAlone, sndOuch, sndHmm, sndKiss, sndFlyAway, sndPlaneWater);
+ sndLeaveMeAlone, sndOuch, sndHmm, sndKiss, sndFlyAway, sndPlaneWater, sndDynamiteFuse);
// Available ammo types to be used by hedgehogs
TAmmoType = (amNothing, amGrenade, amClusterBomb, amBazooka, amBee, amShotgun, amPickHammer, // 6
@@ -515,7 +515,8 @@
sidWinner2, sidWinner3, sidWinner4, sidWinner5, sidWinner6,
sidWinner7, sidWinnerAll, sidTeamGone, sidTeamBack, sidAutoSkip,
sidFPS, sidLuaParsingOff, sidLuaParsingOn, sidLuaParsingDenied,
- sidAmmoCount, sidChat, sidChatTeam, sidChatHog, sidUnknownGearValue);
+ sidAmmoCount, sidChat, sidChatTeam, sidChatHog, sidUnknownGearValue,
+ sidVideoRecLuaFail);
TCmdHelpStrId = (
sidCmdHeaderBasic, sidCmdTogglechat, sidCmdTeam, sidCmdMe,
--- a/hedgewars/uVariables.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uVariables.pas Wed Oct 23 17:45:28 2019 -0400
@@ -852,7 +852,10 @@
(FileName: 'amShoryuken'; Path: ptHedgehog; AltPath: ptNone; Texture: nil; Surface: nil;
Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; critical: true; checkSum: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprFirePunch
(FileName: 'throughWrap'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
- Width: 16; Height: 13; imageWidth: 0; imageHeight: 0; saveSurf: false; critical: true; checkSum: false; priority: tpMedium; getDimensions: false; getImageDimensions: true) // sprTroughWrap
+ Width: 16; Height: 13; imageWidth: 0; imageHeight: 0; saveSurf: false; critical: true; checkSum: false; priority: tpMedium; getDimensions: false; getImageDimensions: true),// sprTroughWrap
+ (FileName: 'dynamiteDefused'; Path: ptGraphics; AltPath: ptNone; Texture: nil; Surface: nil;
+ Width: 32; Height: 32; imageWidth: 0; imageHeight: 0; saveSurf: false; critical: true; checkSum: false; priority: tpMedium; getDimensions: false; getImageDimensions: true) // sprDynamiteDefused
+
);
--- a/hedgewars/uVideoRec.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uVideoRec.pas Wed Oct 23 17:45:28 2019 -0400
@@ -48,7 +48,7 @@
procedure freeModule;
implementation
-uses uVariables, GLunit, SDLh, SysUtils, uUtils, uSound, uIO, uMisc, uTypes, uDebug;
+uses uVariables, GLunit, SDLh, SysUtils, uUtils, uSound, uChat, uIO, uMisc, uTypes, uDebug;
type TAddFileLogRaw = procedure (s: pchar); cdecl;
const AvwrapperLibName = {$IFDEF WIN32_VCPKG}'avwrapper'{$ELSE}'libavwrapper'{$ENDIF};
@@ -289,8 +289,8 @@
// Videos don't work if /lua command was used, so we forbid them
if luaCmdUsed then
begin
- // TODO: Show message to player
PlaySound(sndDenied);
+ AddChatString(#0 + shortstring(trmsg[sidVideoRecLuaFail]));
AddFileLog('Pre-recording prevented; /lua command was used before');
exit;
end;
--- a/hedgewars/uWorld.pas Sat Sep 28 16:49:18 2019 +0300
+++ b/hedgewars/uWorld.pas Wed Oct 23 17:45:28 2019 -0400
@@ -1299,6 +1299,10 @@
DrawGearsGui();
+// Finger (arrow pointing to hedgehog).
+// NOT wrapped like the other stuff because it might be confusing.
+DrawFinger();
+
// everything after this ChangeDepth will be drawn outside the screen
// note: negative parallax gears should last very little for a smooth stereo effect
ChangeDepth(RM, cStereo_Outside);
@@ -1546,9 +1550,13 @@
end;
end
// in gfInvulnerable mode ...
- else if (CurrentHedgehog^.Effects[heResurrectable] <> 0) then
- // show halo for resurrectable hog
- DrawSprite(sprHaloHud, (cScreenWidth div 2 - CurrentHedgehog^.HealthTagTex^.w - t - 2), i, 0);
+ else
+ begin
+ DrawSprite(sprInvulnHud, cScreenWidth div 2 - 28, i, 0);
+ if (CurrentHedgehog^.Effects[heResurrectable] <> 0) then
+ // show halo for resurrectable hog
+ DrawSprite(sprHaloHud, cScreenWidth div 2 - 30, i - SpritesData[sprHaloHud].Height + 1, 0);
+ end;
end
else
cDemoClockFPSOffsetY:= 0;
--- a/rust/hedgewars-server/src/core/indexslab.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/core/indexslab.rs Wed Oct 23 17:45:28 2019 -0400
@@ -19,6 +19,14 @@
}
}
+ pub fn get(&self, index: usize) -> Option<&T> {
+ self.data[index].as_ref()
+ }
+
+ pub fn get_mut(&mut self, index: usize) -> Option<&mut T> {
+ self.data[index].as_mut()
+ }
+
pub fn insert(&mut self, index: usize, value: T) {
if index >= self.data.len() {
self.data.reserve(index - self.data.len() + 1);
@@ -41,7 +49,7 @@
}
}
- pub fn iter(&self) -> impl Iterator<Item = (usize, &T)> {
+ pub fn iter(&self) -> impl Iterator<Item = (usize, &T)> + Clone {
self.data
.iter()
.enumerate()
--- a/rust/hedgewars-server/src/core/server.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/core/server.rs Wed Oct 23 17:45:28 2019 -0400
@@ -2,23 +2,46 @@
client::HwClient,
indexslab::IndexSlab,
room::HwRoom,
- types::{ClientId, RoomId},
+ types::{ClientId, RoomId, ServerVar},
};
use crate::{protocol::messages::HwProtocolMessage::Greeting, utils};
+use crate::core::server::JoinRoomError::WrongProtocol;
use bitflags::*;
use log::*;
use slab;
-use std::{borrow::BorrowMut, iter, num::NonZeroU16};
+use std::{borrow::BorrowMut, collections::HashSet, iter, num::NonZeroU16};
type Slab<T> = slab::Slab<T>;
+#[derive(Debug)]
+pub enum CreateRoomError {
+ InvalidName,
+ AlreadyExists,
+}
+
+#[derive(Debug)]
+pub enum JoinRoomError {
+ DoesntExist,
+ WrongProtocol,
+ Full,
+ Restricted,
+}
+
+#[derive(Debug)]
+pub struct UninitializedError();
+#[derive(Debug)]
+pub struct AccessError();
+
pub struct HwAnteClient {
pub nick: Option<String>,
pub protocol_number: Option<NonZeroU16>,
pub server_salt: String,
pub is_checker: bool,
pub is_local_admin: bool,
+ pub is_registered: bool,
+ pub is_admin: bool,
+ pub is_contributor: bool,
}
pub struct HwAnteroom {
@@ -38,12 +61,15 @@
server_salt: salt,
is_checker: false,
is_local_admin,
+ is_registered: false,
+ is_admin: false,
+ is_contributor: false,
};
self.clients.insert(client_id, client);
}
pub fn remove_client(&mut self, client_id: ClientId) -> Option<HwAnteClient> {
- let mut client = self.clients.remove(client_id);
+ let client = self.clients.remove(client_id);
client
}
}
@@ -91,6 +117,34 @@
}
}
+ #[inline]
+ pub fn client(&self, client_id: ClientId) -> &HwClient {
+ &self.clients[client_id]
+ }
+
+ #[inline]
+ pub fn client_mut(&mut self, client_id: ClientId) -> &mut HwClient {
+ &mut self.clients[client_id]
+ }
+
+ #[inline]
+ pub fn room(&self, room_id: RoomId) -> &HwRoom {
+ &self.rooms[room_id]
+ }
+
+ #[inline]
+ pub fn room_mut(&mut self, room_id: RoomId) -> &mut HwRoom {
+ &mut self.rooms[room_id]
+ }
+
+ #[inline]
+ pub fn is_admin(&self, client_id: ClientId) -> bool {
+ self.clients
+ .get(client_id)
+ .map(|c| c.is_admin())
+ .unwrap_or(false)
+ }
+
pub fn add_client(&mut self, client_id: ClientId, data: HwAnteClient) {
if let (Some(protocol), Some(nick)) = (data.protocol_number, data.nick) {
let mut client = HwClient::new(client_id, protocol.get(), nick);
@@ -98,6 +152,13 @@
#[cfg(not(feature = "official-server"))]
client.set_is_admin(data.is_local_admin);
+ #[cfg(feature = "official-server")]
+ {
+ client.set_is_registered(info.is_registered);
+ client.set_is_admin(info.is_admin);
+ client.set_is_contributor(info.is_contributor);
+ }
+
self.clients.insert(client_id, client);
}
}
@@ -106,8 +167,8 @@
self.clients.remove(client_id);
}
- pub fn get_greetings(&self, client_id: ClientId) -> &str {
- if self.clients[client_id].protocol_number < self.latest_protocol {
+ pub fn get_greetings(&self, client: &HwClient) -> &str {
+ if client.protocol_number < self.latest_protocol {
&self.greetings.for_old_protocols
} else {
&self.greetings.for_latest_protocol
@@ -115,29 +176,123 @@
}
#[inline]
+ pub fn get_client_nick(&self, client_id: ClientId) -> &str {
+ &self.clients[client_id].nick
+ }
+
+ #[inline]
pub fn create_room(
&mut self,
creator_id: ClientId,
name: String,
password: Option<String>,
- ) -> RoomId {
- create_room(
- &mut self.clients[creator_id],
- &mut self.rooms,
- name,
- password,
- )
+ ) -> Result<(&HwClient, &HwRoom), CreateRoomError> {
+ use CreateRoomError::*;
+ if utils::is_name_illegal(&name) {
+ Err(InvalidName)
+ } else if self.has_room(&name) {
+ Err(AlreadyExists)
+ } else {
+ Ok(create_room(
+ &mut self.clients[creator_id],
+ &mut self.rooms,
+ name,
+ password,
+ ))
+ }
+ }
+
+ pub fn join_room(
+ &mut self,
+ client_id: ClientId,
+ room_id: RoomId,
+ ) -> Result<(&HwClient, &HwRoom, impl Iterator<Item = &HwClient> + Clone), JoinRoomError> {
+ use JoinRoomError::*;
+ let room = &mut self.rooms[room_id];
+ let client = &mut self.clients[client_id];
+
+ if client.protocol_number != room.protocol_number {
+ Err(WrongProtocol)
+ } else if room.is_join_restricted() {
+ Err(Restricted)
+ } else if room.players_number == u8::max_value() {
+ Err(Full)
+ } else {
+ move_to_room(client, room);
+ let room_id = room.id;
+ Ok((
+ &self.clients[client_id],
+ &self.rooms[room_id],
+ self.clients.iter().map(|(_, c)| c),
+ ))
+ }
}
#[inline]
- pub fn move_to_room(&mut self, client_id: ClientId, room_id: RoomId) {
- move_to_room(&mut self.clients[client_id], &mut self.rooms[room_id])
+ pub fn join_room_by_name(
+ &mut self,
+ client_id: ClientId,
+ room_name: &str,
+ ) -> Result<(&HwClient, &HwRoom, impl Iterator<Item = &HwClient> + Clone), JoinRoomError> {
+ use JoinRoomError::*;
+ let room = self.rooms.iter().find(|(_, r)| r.name == room_name);
+ if let Some((_, room)) = room {
+ let room_id = room.id;
+ self.join_room(client_id, room_id)
+ } else {
+ Err(DoesntExist)
+ }
+ }
+
+ #[inline]
+ pub fn set_var(&mut self, client_id: ClientId, var: ServerVar) -> Result<(), AccessError> {
+ if self.clients[client_id].is_admin() {
+ match var {
+ ServerVar::MOTDNew(msg) => self.greetings.for_latest_protocol = msg,
+ ServerVar::MOTDOld(msg) => self.greetings.for_old_protocols = msg,
+ ServerVar::LatestProto(n) => self.latest_protocol = n,
+ }
+ Ok(())
+ } else {
+ Err(AccessError())
+ }
}
+ #[inline]
+ pub fn get_vars(&self, client_id: ClientId) -> Result<[ServerVar; 3], AccessError> {
+ if self.clients[client_id].is_admin() {
+ Ok([
+ ServerVar::MOTDNew(self.greetings.for_latest_protocol.clone()),
+ ServerVar::MOTDOld(self.greetings.for_old_protocols.clone()),
+ ServerVar::LatestProto(self.latest_protocol),
+ ])
+ } else {
+ Err(AccessError())
+ }
+ }
+
+ pub fn get_used_protocols(&self, client_id: ClientId) -> Result<Vec<u16>, AccessError> {
+ if self.clients[client_id].is_admin() {
+ let mut protocols: HashSet<_> = self
+ .clients
+ .iter()
+ .map(|(_, c)| c.protocol_number)
+ .chain(self.rooms.iter().map(|(_, r)| r.protocol_number))
+ .collect();
+ let mut protocols: Vec<_> = protocols.drain().collect();
+ protocols.sort();
+ Ok(protocols)
+ } else {
+ Err(AccessError())
+ }
+ }
+
+ #[inline]
pub fn has_room(&self, name: &str) -> bool {
self.find_room(name).is_some()
}
+ #[inline]
pub fn find_room(&self, name: &str) -> Option<&HwRoom> {
self.rooms
.iter()
@@ -234,12 +389,12 @@
entry.insert(room)
}
-fn create_room(
- client: &mut HwClient,
- rooms: &mut Slab<HwRoom>,
+fn create_room<'a, 'b>(
+ client: &'a mut HwClient,
+ rooms: &'b mut Slab<HwRoom>,
name: String,
password: Option<String>,
-) -> RoomId {
+) -> (&'a HwClient, &'b HwRoom) {
let room = allocate_room(rooms);
room.master_id = Some(client.id);
@@ -255,7 +410,7 @@
client.set_is_ready(true);
client.set_is_joined_mid_game(false);
- room.id
+ (client, room)
}
fn move_to_room(client: &mut HwClient, room: &mut HwRoom) {
--- a/rust/hedgewars-server/src/handlers.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/handlers.rs Wed Oct 23 17:45:28 2019 -0400
@@ -9,6 +9,7 @@
use self::{
actions::{Destination, DestinationGroup, PendingMessage},
inanteroom::LoginResult,
+ strings::*,
};
use crate::{
core::{
@@ -32,6 +33,7 @@
mod inanteroom;
mod inlobby;
mod inroom;
+mod strings;
#[derive(PartialEq, Debug)]
pub struct Sha1Digest([u8; 20]);
@@ -160,6 +162,16 @@
}
#[inline]
+ pub fn warn(&mut self, message: &str) {
+ self.add(Warning(message.to_string()).send_self());
+ }
+
+ #[inline]
+ pub fn error(&mut self, message: &str) {
+ self.add(Error(message.to_string()).send_self());
+ }
+
+ #[inline]
pub fn request_io(&mut self, task: IoTask) {
self.io_tasks.push(task)
}
@@ -240,7 +252,7 @@
LoginResult::Complete => {
if let Some(client) = server.anteroom.remove_client(client_id) {
server.add_client(client_id, client);
- common::join_lobby(server, response);
+ common::get_lobby_join_data(server, response);
}
}
LoginResult::Exit => {
@@ -262,7 +274,7 @@
let master_sign = if client.is_master() { "+" } else { "" };
let room_info = match client.room_id {
Some(room_id) => {
- let room = &server.rooms[room_id];
+ let room = server.room(room_id);
let status = match room.game_info {
Some(_) if client.teams_in_game == 0 => "(spectating)",
Some(_) => "(playing)",
@@ -284,37 +296,36 @@
];
response.add(Info(info).send_self())
} else {
- response
- .add(server_chat("Player is not online.".to_string()).send_self())
+ response.add(server_chat(USER_OFFLINE.to_string()).send_self())
}
}
HwProtocolMessage::ToggleServerRegisteredOnly => {
- if !server.clients[client_id].is_admin() {
- response.add(Warning("Access denied.".to_string()).send_self());
+ if !server.is_admin(client_id) {
+ response.warn(ACCESS_DENIED);
} else {
- server.set_is_registered_only(server.is_registered_only());
+ server.set_is_registered_only(!server.is_registered_only());
let msg = if server.is_registered_only() {
- "This server no longer allows unregistered players to join."
+ REGISTERED_ONLY_ENABLED
} else {
- "This server now allows unregistered players to join."
+ REGISTERED_ONLY_DISABLED
};
response.add(server_chat(msg.to_string()).send_all());
}
}
HwProtocolMessage::Global(msg) => {
- if !server.clients[client_id].is_admin() {
- response.add(Warning("Access denied.".to_string()).send_self());
+ if !server.is_admin(client_id) {
+ response.warn(ACCESS_DENIED);
} else {
response.add(global_chat(msg).send_all())
}
}
HwProtocolMessage::SuperPower => {
- if !server.clients[client_id].is_admin() {
- response.add(Warning("Access denied.".to_string()).send_self());
+ let client = server.client_mut(client_id);
+ if !client.is_admin() {
+ response.warn(ACCESS_DENIED);
} else {
- server.clients[client_id].set_has_super_power(true);
- response
- .add(server_chat("Super power activated.".to_string()).send_self())
+ client.set_has_super_power(true);
+ response.add(server_chat(SUPER_POWER.to_string()).send_self())
}
}
HwProtocolMessage::Watch(id) => {
@@ -325,13 +336,10 @@
#[cfg(not(feature = "official-server"))]
{
- response.add(
- Warning("This server does not support replays!".to_string())
- .send_self(),
- );
+ response.warn(REPLAY_NOT_SUPPORTED);
}
}
- _ => match server.clients[client_id].room_id {
+ _ => match server.client(client_id).room_id {
None => inlobby::handle(server, client_id, response, message),
Some(room_id) => {
inroom::handle(server, client_id, response, room_id, message)
@@ -374,38 +382,35 @@
match io_result {
IoResult::AccountRegistered(is_registered) => {
if !is_registered && server.is_registered_only() {
- response.add(
- Bye("This server only allows registered users to join.".to_string())
- .send_self(),
- );
+ response.add(Bye(REGISTRATION_REQUIRED.to_string()).send_self());
response.remove_client(client_id);
} else if is_registered {
let salt = server.anteroom.clients[client_id].server_salt.clone();
response.add(AskPassword(salt).send_self());
} else if let Some(client) = server.anteroom.remove_client(client_id) {
server.add_client(client_id, client);
- common::join_lobby(server, response);
+ common::get_lobby_join_data(server, response);
}
}
IoResult::Account(Some(info)) => {
response.add(ServerAuth(format!("{:x}", info.server_hash)).send_self());
- if let Some(client) = server.anteroom.remove_client(client_id) {
+ if let Some(mut client) = server.anteroom.remove_client(client_id) {
+ client.is_registered = info.is_registered;
+ client.is_admin = info.is_admin;
+ client.is_contributor = info.is_contributor;
server.add_client(client_id, client);
- let client = &mut server.clients[client_id];
- client.set_is_registered(info.is_registered);
- client.set_is_admin(info.is_admin);
- client.set_is_contributor(info.is_contributor);
- common::join_lobby(server, response);
+ common::get_lobby_join_data(server, response);
}
}
IoResult::Account(None) => {
- response.add(Error("Authentication failed.".to_string()).send_self());
+ response.error(AUTHENTICATION_FAILED);
response.remove_client(client_id);
}
IoResult::Replay(Some(replay)) => {
- let protocol = server.clients[client_id].protocol_number;
+ let client = server.client(client_id);
+ let protocol = client.protocol_number;
let start_msg = if protocol < 58 {
- RoomJoined(vec![server.clients[client_id].nick.clone()])
+ RoomJoined(vec![client.nick.clone()])
} else {
ReplayStart
};
@@ -421,32 +426,27 @@
}
}
IoResult::Replay(None) => {
- response.add(Warning("Could't load the replay".to_string()).send_self())
+ response.warn(REPLAY_LOAD_FAILED);
}
IoResult::SaveRoom(_, true) => {
- response.add(server_chat("Room configs saved successfully.".to_string()).send_self());
+ response.add(server_chat(ROOM_CONFIG_SAVED.to_string()).send_self());
}
IoResult::SaveRoom(_, false) => {
- response.add(Warning("Unable to save the room configs.".to_string()).send_self());
+ response.warn(ROOM_CONFIG_SAVE_FAILED);
}
IoResult::LoadRoom(room_id, Some(contents)) => {
if let Some(ref mut room) = server.rooms.get_mut(room_id) {
match room.set_saves(&contents) {
- Ok(_) => response.add(
- server_chat("Room configs loaded successfully.".to_string()).send_self(),
- ),
+ Ok(_) => response.add(server_chat(ROOM_CONFIG_LOADED.to_string()).send_self()),
Err(e) => {
warn!("Error while deserializing the room configs: {}", e);
- response.add(
- Warning("Unable to deserialize the room configs.".to_string())
- .send_self(),
- );
+ response.warn(ROOM_CONFIG_DESERIALIZE_FAILED);
}
}
}
}
IoResult::LoadRoom(_, None) => {
- response.add(Warning("Unable to load the room configs.".to_string()).send_self());
+ response.warn(ROOM_CONFIG_LOAD_FAILED);
}
}
}
--- a/rust/hedgewars-server/src/handlers/common.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/handlers/common.rs Wed Oct 23 17:45:28 2019 -0400
@@ -2,7 +2,7 @@
core::{
client::HwClient,
room::HwRoom,
- server::HwServer,
+ server::{HwServer, JoinRoomError},
types::{ClientId, GameCfg, RoomId, TeamInfo, Vote, VoteType},
},
protocol::messages::{
@@ -35,10 +35,10 @@
}
}
-pub fn join_lobby(server: &mut HwServer, response: &mut Response) {
+pub fn get_lobby_join_data(server: &HwServer, response: &mut Response) {
let client_id = response.client_id();
- let client = &server.clients[client_id];
+ let client = server.client(client_id);
let nick = vec![client.nick.clone()];
let mut flags = vec![];
if client.is_registered() {
@@ -69,7 +69,7 @@
),
];
- let server_msg = ServerMessage(server.get_greetings(client_id).to_string());
+ let server_msg = ServerMessage(server.get_greetings(client).to_string());
let rooms_msg = Rooms(
server
@@ -227,32 +227,43 @@
);
}
-pub fn enter_room(
- server: &mut HwServer,
- client_id: ClientId,
- room_id: RoomId,
+pub fn get_room_join_data<'a, I: Iterator<Item = &'a HwClient> + Clone>(
+ client: &HwClient,
+ room: &HwRoom,
+ room_clients: I,
response: &mut Response,
) {
- let nick = server.clients[client_id].nick.clone();
- server.move_to_room(client_id, room_id);
+ #[inline]
+ fn collect_nicks<'a, I, F>(clients: I, f: F) -> Vec<String>
+ where
+ I: Iterator<Item = &'a HwClient>,
+ F: Fn(&&'a HwClient) -> bool,
+ {
+ clients.filter(f).map(|c| &c.nick).cloned().collect()
+ }
- response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room_id));
+ let nick = client.nick.clone();
+ response.add(RoomJoined(vec![nick.clone()]).send_all().in_room(room.id));
response.add(ClientFlags(add_flags(&[Flags::InRoom]), vec![nick]).send_all());
- let nicks = server.collect_nicks(|(_, c)| c.room_id == Some(room_id));
+ let nicks = collect_nicks(room_clients.clone(), |c| c.room_id == Some(room.id));
response.add(RoomJoined(nicks).send_self());
- get_room_teams(server, room_id, client_id, response);
-
- let room = &server.rooms[room_id];
- get_room_config(room, client_id, response);
+ get_room_teams(room, client.id, response);
+ get_room_config(room, client.id, response);
let mut flag_selectors = [
(
Flags::RoomMaster,
- server.collect_nicks(|(_, c)| c.is_master()),
+ collect_nicks(room_clients.clone(), |c| c.is_master()),
),
- (Flags::Ready, server.collect_nicks(|(_, c)| c.is_ready())),
- (Flags::InGame, server.collect_nicks(|(_, c)| c.is_in_game())),
+ (
+ Flags::Ready,
+ collect_nicks(room_clients.clone(), |c| c.is_ready()),
+ ),
+ (
+ Flags::InGame,
+ collect_nicks(room_clients.clone(), |c| c.is_in_game()),
+ ),
];
for (flag, nicks) in &mut flag_selectors {
@@ -270,6 +281,16 @@
}
}
+pub fn get_room_join_error(error: JoinRoomError, response: &mut Response) {
+ use super::strings::*;
+ match error {
+ JoinRoomError::DoesntExist => response.warn(NO_ROOM),
+ JoinRoomError::WrongProtocol => response.warn(WRONG_PROTOCOL),
+ JoinRoomError::Full => response.warn(ROOM_FULL),
+ JoinRoomError::Restricted => response.warn(ROOM_JOIN_RESTRICTED),
+ }
+}
+
pub fn exit_room(server: &mut HwServer, client_id: ClientId, response: &mut Response, msg: &str) {
let client = &mut server.clients[client_id];
@@ -317,8 +338,8 @@
server.remove_client(client_id);
- response.add(LobbyLeft(nick, msg.to_string()).send_all());
- response.add(Bye("User quit: ".to_string() + &msg).send_self());
+ response.add(LobbyLeft(nick, msg.clone()).send_all());
+ response.add(Bye(msg).send_self());
response.remove_client(client_id);
}
@@ -354,13 +375,7 @@
}
}
-pub fn get_room_teams(
- server: &HwServer,
- room_id: RoomId,
- to_client: ClientId,
- response: &mut Response,
-) {
- let room = &server.rooms[room_id];
+pub fn get_room_teams(room: &HwRoom, to_client: ClientId, response: &mut Response) {
let current_teams = match room.game_info {
Some(ref info) => &info.teams_at_start,
None => &room.teams,
--- a/rust/hedgewars-server/src/handlers/inlobby.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/handlers/inlobby.rs Wed Oct 23 17:45:28 2019 -0400
@@ -1,10 +1,10 @@
use mio;
-use super::common::rnd_reply;
+use super::{common::rnd_reply, strings::*};
use crate::{
core::{
client::HwClient,
- server::HwServer,
+ server::{AccessError, CreateRoomError, HwServer, JoinRoomError},
types::{ClientId, ServerVar},
},
protocol::messages::{
@@ -23,41 +23,34 @@
message: HwProtocolMessage,
) {
use crate::protocol::messages::HwProtocolMessage::*;
+
match message {
- CreateRoom(name, password) => {
- if is_name_illegal(&name) {
- response.add(Warning("Illegal room name! A room name must be between 1-40 characters long, must not have a trailing or leading space and must not have any of these characters: $()*+?[]^{|}".to_string()).send_self());
- } else if server.has_room(&name) {
- response.add(
- Warning("A room with the same name already exists.".to_string()).send_self(),
- );
- } else {
- let flags_msg = ClientFlags(
- add_flags(&[Flags::RoomMaster, Flags::Ready]),
- vec![server.clients[client_id].nick.clone()],
- );
-
- let room_id = server.create_room(client_id, name, password);
- let room = &server.rooms[room_id];
- let client = &server.clients[client_id];
-
+ CreateRoom(name, password) => match server.create_room(client_id, name, password) {
+ Err(CreateRoomError::InvalidName) => response.warn(ILLEGAL_ROOM_NAME),
+ Err(CreateRoomError::AlreadyExists) => response.warn(ROOM_EXISTS),
+ Ok((client, room)) => {
response.add(
RoomAdd(room.info(Some(&client)))
.send_all()
.with_protocol(room.protocol_number),
);
response.add(RoomJoined(vec![client.nick.clone()]).send_self());
- response.add(flags_msg.send_self());
-
+ response.add(
+ ClientFlags(
+ add_flags(&[Flags::RoomMaster, Flags::Ready]),
+ vec![client.nick.clone()],
+ )
+ .send_self(),
+ );
response.add(
ClientFlags(add_flags(&[Flags::InRoom]), vec![client.nick.clone()]).send_self(),
);
- };
- }
+ }
+ },
Chat(msg) => {
response.add(
ChatMsg {
- nick: server.clients[client_id].nick.clone(),
+ nick: server.get_client_nick(client_id).to_string(),
msg,
}
.send_all()
@@ -65,99 +58,62 @@
.but_self(),
);
}
- JoinRoom(name, _password) => {
- let room = server.rooms.iter().find(|(_, r)| r.name == name);
- let room_id = room.map(|(_, r)| r.id);
-
- let client = &mut server.clients[client_id];
-
- if let Some((_, room)) = room {
- if client.protocol_number != room.protocol_number {
- response.add(
- Warning("Room version incompatible to your Hedgewars version!".to_string())
- .send_self(),
- );
- } else if room.is_join_restricted() {
- response.add(
- Warning(
- "Access denied. This room currently doesn't allow joining.".to_string(),
- )
- .send_self(),
- );
- } else if room.players_number == u8::max_value() {
- response.add(Warning("This room is already full".to_string()).send_self());
- } else if let Some(room_id) = room_id {
- super::common::enter_room(server, client_id, room_id, response);
+ JoinRoom(name, _password) => match server.join_room_by_name(client_id, &name) {
+ Err(error) => super::common::get_room_join_error(error, response),
+ Ok((client, room, room_clients)) => {
+ super::common::get_room_join_data(client, room, room_clients, response)
+ }
+ },
+ Follow(nick) => {
+ if let Some(client) = server.find_client(&nick) {
+ if let Some(room_id) = client.room_id {
+ match server.join_room(client_id, room_id) {
+ Err(error) => super::common::get_room_join_error(error, response),
+ Ok((client, room, room_clients)) => {
+ super::common::get_room_join_data(client, room, room_clients, response)
+ }
+ }
+ } else {
+ response.warn(NO_ROOM);
}
} else {
- response.add(Warning("No such room.".to_string()).send_self());
+ response.warn(NO_USER);
}
}
- Follow(nick) => {
- if let Some(HwClient {
- room_id: Some(room_id),
- ..
- }) = server.find_client(&nick)
- {
- let room = &server.rooms[*room_id];
- response.add(Joining(room.name.clone()).send_self());
- super::common::enter_room(server, client_id, *room_id, response);
+ SetServerVar(var) => match server.set_var(client_id, var) {
+ Err(AccessError()) => response.warn(ACCESS_DENIED),
+ Ok(()) => response.add(server_chat(VARIABLE_UPDATED.to_string()).send_self()),
+ },
+ GetServerVar => match server.get_vars(client_id) {
+ Err(AccessError()) => response.warn(ACCESS_DENIED),
+ Ok(vars) => {
+ response.add(
+ ServerVars(vars.iter().flat_map(|v| v.to_protocol()).collect()).send_self(),
+ );
}
- }
- SetServerVar(var) => {
- if !server.clients[client_id].is_admin() {
- response.add(Warning("Access denied.".to_string()).send_self());
- } else {
- match var {
- ServerVar::MOTDNew(msg) => server.greetings.for_latest_protocol = msg,
- ServerVar::MOTDOld(msg) => server.greetings.for_old_protocols = msg,
- ServerVar::LatestProto(n) => server.latest_protocol = n,
- }
- }
- }
- GetServerVar => {
- if !server.clients[client_id].is_admin() {
- response.add(Warning("Access denied.".to_string()).send_self());
- } else {
- let vars: Vec<_> = [
- ServerVar::MOTDNew(server.greetings.for_latest_protocol.clone()),
- ServerVar::MOTDOld(server.greetings.for_old_protocols.clone()),
- ServerVar::LatestProto(server.latest_protocol),
- ]
- .iter()
- .flat_map(|v| v.to_protocol())
- .collect();
- response.add(ServerVars(vars).send_self());
- }
- }
+ },
Rnd(v) => {
response.add(rnd_reply(&v).send_self());
}
- Stats => {
- let mut protocols: HashSet<_> = server
- .clients
- .iter()
- .map(|(_, c)| c.protocol_number)
- .chain(server.rooms.iter().map(|(_, r)| r.protocol_number))
- .collect();
- let mut protocols: Vec<_> = protocols.drain().collect();
- protocols.sort();
-
- let mut html = Vec::with_capacity(protocols.len() + 2);
+ Stats => match server.get_used_protocols(client_id) {
+ Err(AccessError()) => response.warn(ACCESS_DENIED),
+ Ok(protocols) => {
+ let mut html = Vec::with_capacity(protocols.len() + 2);
- html.push("<table>".to_string());
- for protocol in protocols {
- html.push(format!(
- "<tr><td>{}</td><td>{}</td><td>{}</td></tr>",
- super::utils::protocol_version_string(protocol),
- server.protocol_clients(protocol).count(),
- server.protocol_rooms(protocol).count()
- ));
+ html.push("<table>".to_string());
+ for protocol in protocols {
+ html.push(format!(
+ "<tr><td>{}</td><td>{}</td><td>{}</td></tr>",
+ super::utils::protocol_version_string(protocol),
+ server.protocol_clients(protocol).count(),
+ server.protocol_rooms(protocol).count()
+ ));
+ }
+ html.push("</table>".to_string());
+
+ response.add(Warning(html.join("")).send_self());
}
- html.push("</table>".to_string());
-
- response.add(Warning(html.join("")).send_self());
- }
+ },
List => warn!("Deprecated LIST message received"),
_ => warn!("Incorrect command in lobby state"),
}
--- a/rust/hedgewars-server/src/handlers/inroom.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/handlers/inroom.rs Wed Oct 23 17:45:28 2019 -0400
@@ -52,7 +52,7 @@
[size, typ, body..MAX] => {
VALID_MESSAGES.contains(typ)
&& match body {
- [1...MAX_HEDGEHOGS_PER_TEAM, team, ..] if *typ == b'h' => {
+ [1..=MAX_HEDGEHOGS_PER_TEAM, team, ..] if *typ == b'h' => {
team_indices.contains(team)
}
_ => *typ != b'h',
@@ -272,12 +272,8 @@
Some((_, name)) => {
client.teams_in_game -= 1;
client.clan = room.find_team_color(client.id);
- super::common::remove_teams(
- room,
- vec![name.to_string()],
- client.is_in_game(),
- response,
- );
+ let names = vec![name.to_string()];
+ super::common::remove_teams(room, names, client.is_in_game(), response);
match room.game_info {
Some(ref info) if info.teams_in_game == 0 => {
@@ -438,7 +434,7 @@
}
VoteType::NewSeed => None,
VoteType::HedgehogsPerTeam(number) => match number {
- 1...MAX_HEDGEHOGS_PER_TEAM => None,
+ 1..=MAX_HEDGEHOGS_PER_TEAM => None,
_ => Some("/callvote hedgehogs: Specify number from 1 to 8.".to_string()),
},
};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rust/hedgewars-server/src/handlers/strings.rs Wed Oct 23 17:45:28 2019 -0400
@@ -0,0 +1,23 @@
+pub const ACCESS_DENIED: &str = "Access denied.";
+pub const AUTHENTICATION_FAILED: &str = "Authentication failed.";
+pub const ILLEGAL_ROOM_NAME: &str = "Illegal room name! A room name must be between 1-40 characters long, must not have a trailing or leading space and must not have any of these characters: $()*+?[]^{|}";
+pub const NO_ROOM: &str = "No such room.";
+pub const NO_USER: &str = "No such user.";
+pub const REPLAY_LOAD_FAILED: &str = "Could't load the replay";
+pub const REPLAY_NOT_SUPPORTED: &str = "This server does not support replays!";
+pub const REGISTRATION_REQUIRED: &str = "This server only allows registered users to join.";
+pub const REGISTERED_ONLY_ENABLED: &str =
+ "This server no longer allows unregistered players to join.";
+pub const REGISTERED_ONLY_DISABLED: &str = "This server now allows unregistered players to join.";
+pub const ROOM_CONFIG_SAVE_FAILED: &str = "Unable to save the room configs.";
+pub const ROOM_CONFIG_LOAD_FAILED: &str = "Unable to load the room configs.";
+pub const ROOM_CONFIG_DESERIALIZE_FAILED: &str = "Unable to deserialize the room configs.";
+pub const ROOM_CONFIG_LOADED: &str = "Room configs loaded successfully.";
+pub const ROOM_CONFIG_SAVED: &str = "Room configs saved successfully.";
+pub const ROOM_EXISTS: &str = "A room with the same name already exists.";
+pub const ROOM_FULL: &str = "This room is already full.";
+pub const ROOM_JOIN_RESTRICTED: &str = "Access denied. This room currently doesn't allow joining.";
+pub const SUPER_POWER: &str = "Super power activated.";
+pub const USER_OFFLINE: &str = "Player is not online.";
+pub const VARIABLE_UPDATED: &str = "Server variable has been updated.";
+pub const WRONG_PROTOCOL: &str = "Room version incompatible to your Hedgewars version!";
--- a/rust/hedgewars-server/src/protocol.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/protocol.rs Wed Oct 23 17:45:28 2019 -0400
@@ -24,7 +24,8 @@
fn recover(&mut self) -> bool {
self.is_recovering = match parser::malformed_message(&self.buf[..]) {
Ok((tail, ())) => {
- self.buf.consume(self.buf.len() - tail.len());
+ let length = tail.len();
+ self.buf.consume(self.buf.len() - length);
false
}
_ => {
@@ -50,7 +51,8 @@
match parser::message(&self.buf[..]) {
Ok((tail, message)) => {
messages.push(message);
- self.buf.consume(self.buf.len() - tail.len());
+ let length = tail.len();
+ self.buf.consume(self.buf.len() - length);
}
Err(nom::Err::Incomplete(_)) => break,
Err(nom::Err::Failure(e)) | Err(nom::Err::Error(e)) => {
--- a/rust/hedgewars-server/src/utils.rs Sat Sep 28 16:49:18 2019 +0300
+++ b/rust/hedgewars-server/src/utils.rs Wed Oct 23 17:45:28 2019 -0400
@@ -69,6 +69,8 @@
56 => "0.9.25-dev",
57 => "0.9.25",
58 => "1.0.0-dev",
+ 59 => "1.0.0",
+ 60 => "1.0.1-dev",
_ => "Unknown",
}
}
Binary file share/hedgewars/Data/Graphics/AmmoMenu/TurnsLeft.png has changed
Binary file share/hedgewars/Data/Graphics/dynamiteDefused.png has changed
--- a/share/hedgewars/Data/Locale/de.txt Sat Sep 28 16:49:18 2019 +0300
+++ b/share/hedgewars/Data/Locale/de.txt Wed Oct 23 17:45:28 2019 -0400
@@ -111,6 +111,7 @@
01:46=[Klan] %1: %2
01:47=[%1]: %2
01:48=?
+01:49=Videos können nicht aufgenommen werden, nachdem der /lua-Befehl benutzt wurde.
; Event messages
; Hog (%1) died
--- a/share/hedgewars/Data/Locale/en.txt Sat Sep 28 16:49:18 2019 +0300
+++ b/share/hedgewars/Data/Locale/en.txt Wed Oct 23 17:45:28 2019 -0400
@@ -121,6 +121,7 @@
01:47=[%1]: %2
; Symbol for unknown mine timer
01:48=?
+01:49=Videos can't be recorded after the /lua command was used.
; Event messages
; Normal hog (%1) died (0 health)
--- a/share/hedgewars/Data/Locale/hedgewars_it.ts Sat Sep 28 16:49:18 2019 +0300
+++ b/share/hedgewars/Data/Locale/hedgewars_it.ts Wed Oct 23 17:45:28 2019 -0400
@@ -32,51 +32,51 @@
<message>
<source>Dependency versions:</source>
<extracomment>For the version numbers of Hedgewars' software dependencies</extracomment>
- <translation type="unfinished"></translation>
+ <translation>Versioni di riferimento:</translation>
</message>
<message>
<source><a href="https://gcc.gnu.org">GCC</a>: %1</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://gcc.gnu.org">GCC</a>: %1</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_mixer</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_mixer</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_net</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_net</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_image</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_image</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.libsdl.org/">SDL2_ttf</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.libsdl.org/">SDL2_ttf</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://www.qt.io/developers/">Qt</a>: %1</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://www.qt.io/developers/">Qt</a>: %1</translation>
</message>
<message>
<source><a href="https://libav.org">libavcodec</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://libav.org">libavcodec</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://libav.org">libavformat</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://libav.org">libavformat</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://libav.org">libavutil</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://libav.org">libavutil</a>: %1.%2.%3</translation>
</message>
<message>
<source><a href="https://icculus.org/physfs/">PhysFS</a>: %1.%2.%3</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://icculus.org/physfs/">PhysFS</a>: %1.%2.%3</translation>
</message>
<message>
<source>Credits</source>
@@ -88,22 +88,22 @@
</message>
<message>
<source>%1 (alias %2)</source>
- <translation type="unfinished"></translation>
+ <translation>%1 (alias %2)</translation>
</message>
<message>
<source>%1 &lt;%2&gt;</source>
<extracomment>Part of credits. %1: Contributor name. %2: E-mail address</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1 &lt;%2&gt;</translation>
</message>
<message>
<source>%1: %2</source>
<extracomment>Part of credits. %1: Description of contribution. %2: Contributor name</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1: %2</translation>
</message>
<message>
<source>%1: %2 &lt;%3&gt;</source>
<extracomment>Part of credits. %1: Description of contribution. %2: Contributor name. %3: E-mail address</extracomment>
- <translation type="unfinished"></translation>
+ <translation>%1: %2 &lt;%3&gt;</translation>
</message>
<message>
<source>Extended Credits</source>
@@ -115,7 +115,7 @@
</message>
<message>
<source><a href="https://visualstudio.microsoft.com">VC++</a>: %1</source>
- <translation type="unfinished"></translation>
+ <translation><a href="https://visualstudio.microsoft.com">VC++</a>: %1</translation>
</message>
<message>
<source>Unknown Compiler: %1</source>
@@ -1449,15 +1449,15 @@
<message numerus="yes">
<source>The best killer is <b>%1</b> with <b>%2</b> kills in a turn.</source>
<translation>
- <numerusform><p>Il miglior killer è <b>%1</b> con <b>%2</b> uccisione in un turno.</p></numerusform>
- <numerusform><p>Il miglior killer è <b>%1</b> con <b>%2</b> uccisioni in un turno.</p></numerusform>
+ <numerusform>Il miglior killer è <b>%1</b> con <b>%2</b> uccisione in un turno.</numerusform>
+ <numerusform>Il miglior killer è <b>%1</b> con <b>%2</b> uccisioni in un turno.</numerusform>
</translation>
</message>
<message numerus="yes">
<source>A total of <b>%1</b> hedgehog(s) were killed during this round.</source>
<translation>
- <numerusform><p>Durante questo round è stato ucciso <b>%1</b> riccio in totale.</p></numerusform>
- <numerusform><p>Durante questo round sono stati uccisi <b>%1</b> ricci in totale.</p></numerusform>
+ <numerusform>Durante questo round è stato ucciso <b>%1</b> riccio in totale.</numerusform>
+ <numerusform>Durante questo round sono stati uccisi <b>%1</b> ricci in totale.</numerusform>
</translation>
</message>
<message numerus="yes">
@@ -3846,7 +3846,7 @@
</message>
<message>
<source>switch backwards</source>
- <translation type="unfinished"></translation>
+ <translation>Girati indietro</translation>
</message>
<message>
<source>change bounciness</source>
@@ -4027,7 +4027,7 @@
</message>
<message>
<source>Heads-up display:</source>
- <translation type="unfinished"></translation>
+ <translation>HUD:</translation>
</message>
<message>
<source>Talk to your clan or all participants:</source>
@@ -4516,7 +4516,7 @@
<name>credits</name>
<message>
<source>Programming</source>
- <translation type="unfinished"></translation>
+ <translation>Programmatori</translation>
</message>
<message>
<source>Game engine</source>
@@ -4536,7 +4536,7 @@
</message>
<message>
<source>Campaign support</source>
- <translation type="unfinished"></translation>
+ <translation>Curatori della campagna</translation>
</message>
<message>
<source>Theme customization improvements</source>
@@ -4560,11 +4560,11 @@
</message>
<message>
<source>Core map generators</source>
- <translation type="unfinished"></translation>
+ <translation>Curatori del generatore centrale delle mappe</translation>
</message>
<message>
<source>Perlin maps and other improvements</source>
- <translation type="unfinished"></translation>
+ <translation>Curatori delle mappe perlin e altri miglioramenti</translation>
</message>
<message>
<source>Maze maps</source>
@@ -4576,7 +4576,7 @@
</message>
<message>
<source>Most core weapons</source>
- <translation type="unfinished"></translation>
+ <translation>Curatori della maggior parte delle armi principali</translation>
</message>
<message>
<source>Air mine, rubber, others</source>
@@ -4672,7 +4672,7 @@
</message>
<message>
<source>Android netplay, portability abstraction</source>
- <translation type="unfinished"></translation>
+ <translation>Curatori del gioco su network Android, Portabilità</translation>
</message>
<message>
<source>WebGL port</source>
@@ -5203,7 +5203,7 @@
</message>
<message>
<source>Empty config entry.</source>
- <translation type="unfinished"></translation>
+ <translation>Ingresso di configurazione vuoto.</translation>
</message>
<message>
<source>Access denied.</source>
@@ -5247,7 +5247,7 @@
</message>
<message>
<source>Illegal room name! The room name must be between 1-40 characters long, must not have a trailing or leading space and must not have any of these characters: $()*+?[]^{|}</source>
- <translation type="unfinished"></translation>
+ <translation>Nome stanza invalido! Il nome della stanza deve contenere tra gli 1 e i 40 caratteri,non deve iniziare con uno spazio e non può contenere spazi prolungati,inoltre non può contenere questi caratteri: $()*+?[]^{|}</translation>
</message>
<message>
<source>A room with the same name already exists.</source>
@@ -5275,7 +5275,7 @@
</message>
<message>
<source>Illegal room name! A room name must be between 1-40 characters long, must not have a trailing or leading space and must not have any of these characters: $()*+?[]^{|}</source>
- <translation type="unfinished"></translation>
+ <translation>Nome stanza invalido! Il nome della stanza deve contenere tra gli 1 e i 40 caratteri,non deve iniziare con uno spazio e non può contenere spazi prolungati,inoltre non può contenere questi caratteri: $()*+?[]^{|}</translation>
</message>
<message>
<source>No such room.</source>
@@ -5299,11 +5299,11 @@
</message>
<message>
<source>Nickname already provided.</source>
- <translation type="unfinished"></translation>
+ <translation>Nickname già fornito.</translation>
</message>
<message>
<source>Illegal nickname! Nicknames must be between 1-40 characters long, must not have a trailing or leading space and must not have any of these characters: $()*+?[]^{|}</source>
- <translation type="unfinished"></translation>
+ <translation>Nickname invalido! Il nickname deve contenere tra gli 1 e i 40 caratteri,non deve iniziare con uno spazio e non può contenere spazi prolungati,inoltre non può contenere questi caratteri: $()*+?[]^{|}</translation>
</message>
<message>
<source>Protocol already known.</source>
@@ -5351,27 +5351,27 @@
</message>
<message>
<source>/rnd: Flip a virtual coin and reply with 'heads' or 'tails'</source>
- <translation type="unfinished"></translation>
+ <translation>/rnd: Tira una moneta virtuale e rispone con testa o croce</translation>
</message>
<message>
<source>/rnd [A] [B] [C] [...]: Reply with a random word from the given list</source>
- <translation type="unfinished"></translation>
+ <translation>/rnd [A] [B] [C] [...]: Risponde con una delle parole nella lista in modo casuale</translation>
</message>
<message>
<source>/watch <id>: Watch a demo stored on the server with the given ID</source>
- <translation type="unfinished"></translation>
+ <translation>/watch <id>: Guarda un filmato presente nel server con questo ID</translation>
</message>
<message>
<source>/help: Show chat command help</source>
- <translation type="unfinished"></translation>
+ <translation>/help: Mostra un aiuto per i comandi di chat</translation>
</message>
<message>
<source>/callvote [arguments]: Start a vote</source>
- <translation type="unfinished"></translation>
+ <translation>/callvote [arguments]: Inizia una votazione</translation>
</message>
<message>
<source>/vote <yes/no>: Vote 'yes' or 'no' for active vote</source>
- <translation type="unfinished"></translation>
+ <translation>/vote <yes/no>: Vota 'si' o 'no' per la votazione corrente</translation>
</message>
<message>
<source>/delegate <player>: Surrender room control to player</source>
@@ -5379,7 +5379,7 @@
</message>
<message>
<source>/maxteams <N>: Limit maximum number of teams to N</source>
- <translation type="unfinished"></translation>
+ <translation>/maxteams <N>: Imposta il limite massimo di squadre a N</translation>
</message>
<message>
<source>/global <message>: Send global chat message which can be seen by everyone on the server</source>
@@ -5387,39 +5387,39 @@
</message>
<message>
<source>/registered_only: Toggle 'registered only' state. If enabled, only registered players can join server</source>
- <translation type="unfinished"></translation>
+ <translation>/registered_only: Abilita l'opzione solo iscritti. Se attivato, solo i giocatori registrati potranno partcipare al server</translation>
</message>
<message>
<source>/super_power: Activate your super power. With it you can enter any room and are protected from kicking. Expires when you leave server</source>
- <translation type="unfinished"></translation>
+ <translation>/super_power: Attiva il tuo superpoter. Con esso puoi entrare in ogni stanza e sei protetto dall'essere cacciato. L'effetto termina quando ti disconnetti</translation>
</message>
<message>
<source>/stats: Query server stats</source>
- <translation type="unfinished"></translation>
+ <translation>/stats: Richiedi le statistiche del server</translation>
</message>
<message>
<source>/force <yes/no>: Force vote result for active vote</source>
- <translation type="unfinished"></translation>
+ <translation>/force <yes/no>: Forza il risultato della votazione in corso</translation>
</message>
<message>
<source>/fix: Force this room to stay open when it is empty</source>
- <translation type="unfinished"></translation>
+ <translation>/fix: Imponi a questa stanza di rimanere aperta anche quando è vuota</translation>
</message>
<message>
<source>/unfix: Undo the /fix command</source>
- <translation type="unfinished"></translation>
+ <translation>/unfix: Annulla il comando /fix</translation>
</message>
<message>
<source>List of lobby chat commands:</source>
- <translation type="unfinished"></translation>
+ <translation>Lista dei comandi di chat per la lobby:</translation>
</message>
<message>
<source>List of room chat commands:</source>
- <translation type="unfinished"></translation>
+ <translation>Lista dei comandi di chat per la stanza:</translation>
</message>
<message>
<source>Commands for server admins only:</source>
- <translation type="unfinished"></translation>
+ <translation>Comandi per gli admins:</translation>
</message>
<message>
<source>room</source>
@@ -5443,11 +5443,11 @@
</message>
<message>
<source>/force: Please use 'yes' or 'no'.</source>
- <translation type="unfinished"></translation>
+ <translation>/force: Perfavore usa 'yes' o 'no'.</translation>
</message>
<message>
<source>/vote: Please use 'yes' or 'no'.</source>
- <translation type="unfinished"></translation>
+ <translation>/vote: Perfavore usa 'yes' or 'no'.</translation>
</message>
<message>
<source>Kicked</source>
@@ -5471,23 +5471,23 @@
</message>
<message>
<source>/greeting [message]: Set or clear greeting message to be shown to players who join the room</source>
- <translation type="unfinished"></translation>
+ <translation>/greeting [message]: Imposta il messaggio di benvenuto che verrà mostrato ai giocatori che entrano in stanza</translation>
</message>
<message>
<source>/save <config ID> <config name>: Add current room configuration as votable choice for /callvote map</source>
- <translation type="unfinished"></translation>
+ <translation>/save <config ID> <config name>: Aggiunge a questa stanza l'opzione votabile di configurazione con /callvote map</translation>
</message>
<message>
<source>/delete <config ID>: Delete a votable room configuration</source>
- <translation type="unfinished"></translation>
+ <translation>/delete <config ID>: Elimina l'opzione votabile di configurazione</translation>
</message>
<message>
<source>/saveroom <file name>: Save all votable room configurations (and the greeting) of this room into a file</source>
- <translation type="unfinished"></translation>
+ <translation>/saveroom <file name>: Salva tutte le opzioni di configurazione della mappa e i messaggi di benvenuto per questa stanza in un file</translation>
</message>
<message>
<source>/loadroom <file name>: Load votable room configurations (and greeting) from a file</source>
- <translation type="unfinished"></translation>
+ <translation>/loadroom <file name>: Carica l'opzione di configurazione della mappa e il messaggio di benvenuto dal file</translation>
</message>
<message>
<source>Super power activated.</source>
@@ -5495,7 +5495,7 @@
</message>
<message>
<source>Unknown command or invalid parameters. Say '/help' in chat for a list of commands.</source>
- <translation type="unfinished"></translation>
+ <translation>Comando sconosciuto o parametri illegali. Scrivi '/help' nella chat per la lista dei comandi di chat.</translation>
</message>
<message>
<source>You can't kick yourself!</source>
@@ -5531,11 +5531,11 @@
</message>
<message>
<source>/callvote kick: This is only allowed in rooms without a room master.</source>
- <translation type="unfinished"></translation>
+ <translation>/callvote kick: Questa opzione è valida solo nelle stanze senza un capostanza.</translation>
</message>
<message>
<source>/callvote map: No maps available.</source>
- <translation type="unfinished"></translation>
+ <translation>/callvote map: Nessuna mappa disponibile.</translation>
</message>
<message>
<source>You're the new room master!</source>
@@ -5543,7 +5543,7 @@
</message>
<message>
<source>/quit: Quit the server</source>
- <translation type="unfinished"></translation>
+ <translation>/quit: Esci dal server</translation>
</message>
<message>
<source>This command is only available in the lobby.</source>
@@ -5563,15 +5563,15 @@
</message>
<message>
<source>Available callvote commands: hedgehogs <number>, pause, newseed, map <name>, kick <player></source>
- <translation type="unfinished"></translation>
+ <translation>Comandi di votazione disponibili:: hedgehogs <number>, pause, newseed, map <name>, kick <player></translation>
</message>
<message>
<source>Please confirm server restart with '/restart_server yes'.</source>
- <translation type="unfinished"></translation>
+ <translation>Perfavore conferma il riavvio del server con '/restart_server yes'.</translation>
</message>
<message>
<source>Warning! Room name change flood protection activated</source>
- <translation type="unfinished"></translation>
+ <translation>Attenzione! Attivata la protezione per l'inondazione di messagi</translation>
</message>
</context>
</TS>
--- a/share/hedgewars/Data/Scripts/Multiplayer/HedgeEditor.lua Sat Sep 28 16:49:18 2019 +0300
+++ b/share/hedgewars/Data/Scripts/Multiplayer/HedgeEditor.lua Wed Oct 23 17:45:28 2019 -0400
@@ -3342,7 +3342,7 @@
reducedSpriteIDArrayFrames = {
1, 8, 4, 1, 1,
- AmmoTypeMax, AmmoTypeMax, 3, 4, 8, 1,
+ AmmoTypeMax, AmmoTypeMax, 3, 4, 9, 1,
1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1,
}
--- a/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua Sat Sep 28 16:49:18 2019 +0300
+++ b/share/hedgewars/Data/Scripts/Multiplayer/Mutant.lua Wed Oct 23 17:45:28 2019 -0400
@@ -59,6 +59,7 @@
local teamsDead = {}
local teamsDeleted = {}
local hogLimitHit = false
+local teamLimitHit = false
local cnthhs
local circles = {}
@@ -157,7 +158,7 @@
end
function limitHogsClan(gear)
- hogLimitHit = true
+ teamLimitHit = true
SetEffect(gear, heResurrectable, 0)
setGearValue(gear, "excess", true)
DeleteGear(gear)
@@ -197,8 +198,10 @@
cnthhs = 0
runOnHogsInTeam(limitHogsTeam, GetTeamName(i))
end
+ if teamLimitHit then
+ WriteLnToChat(loc("Only one team per clan allowed! Excess teams will be removed."))
+ end
if hogLimitHit then
- -- TODO: Update warning message to include excess teams as well
WriteLnToChat(loc("Only one hog per team allowed! Excess hogs will be removed."))
end
trackTeams()
Binary file share/hedgewars/Data/Sounds/dynamitefuse.ogg has changed
Binary file share/hedgewars/Data/misc/hedgewars.png has changed
--- a/share/hedgewars/Data/misc/hedgewars.xpm Sat Sep 28 16:49:18 2019 +0300
+++ b/share/hedgewars/Data/misc/hedgewars.xpm Wed Oct 23 17:45:28 2019 -0400
@@ -1,239 +1,516 @@
/* XPM */
-static char *Icon___x__x__[] = {
+static char *hedgehog[] = {
/* columns rows colors chars-per-pixel */
-"32 32 201 2",
-" c #010101",
-". c #0A0709",
-"X c #1A1A1A",
-"o c #454545",
-"O c #94005E",
-"+ c #AE005D",
-"@ c #970063",
-"# c #9B0064",
-"$ c #94066D",
-"% c #9D036A",
-"& c #9E086E",
-"* c #880873",
-"= c #960E74",
-"- c #980D73",
-"; c #8C1578",
-": c #8C1A7D",
-"> c #9D1075",
-", c #9D177C",
-"< c #91187D",
-"1 c #9B1C7D",
-"2 c #A20065",
-"3 c #AA0067",
-"4 c #A3046B",
-"5 c #A0096F",
-"6 c #A20C73",
-"7 c #AD0B72",
-"8 c #A41276",
-"9 c #AD1074",
-"0 c #A61479",
-"q c #A81C7B",
-"w c #7B2083",
-"e c #772E8F",
-"r c #7D2C8E",
-"t c #732F91",
-"y c #6B3596",
-"u c #653B9B",
-"i c #6D3A9B",
-"p c #743294",
-"a c #783092",
-"s c #713899",
-"d c #5641A1",
-"f c #504BA9",
-"g c #5A4EAD",
-"h c #4D5AB6",
-"j c #5652B0",
-"k c #5058B5",
-"l c #6444A3",
-"z c #7C4CA8",
-"x c #7654B2",
-"c c #4363BF",
-"v c #3D67C3",
-"b c #3A69C5",
-"n c #3C73CE",
-"m c #2C77D1",
-"M c #237CD6",
-"N c #2C78D2",
-"B c #2F7ED8",
-"V c #3E7BD5",
-"C c #5F71CC",
-"Z c #6F6ECA",
-"A c #627FD6",
-"S c #6C7ED6",
-"D c #617ED9",
-"F c #6F7ED9",
-"G c #881F82",
-"H c #A11F83",
-"J c #AC1D82",
-"K c #872386",
-"L c #8A2387",
-"P c #8D2689",
-"I c #8A2C8F",
-"U c #952388",
-"Y c #812F91",
-"T c #873595",
-"R c #8D3192",
-"E c #8A3799",
-"W c #84399A",
-"Q c #AE2285",
-"! c #A32488",
-"~ c #A92D8D",
-"^ c #B1258A",
-"/ c #B32C8C",
-"( c #BD298E",
-") c #B5308E",
-"_ c #B72E91",
-"` c #BE2C91",
-"' c #BA3495",
-"] c #BA3895",
-"[ c #BC3C9A",
-"{ c #BF3BA0",
-"} c #C32E93",
-"| c #C23391",
-" . c #CF3D9D",
-".. c #C13DA2",
-"X. c #CA3BA0",
-"o. c #BE419C",
-"O. c #8148A4",
-"+. c #8152B0",
-"@. c #C0439E",
-"#. c #C345A3",
-"$. c #C54EA5",
-"%. c #CE4AA3",
-"&. c #C645AA",
-"*. c #C74EA9",
-"=. c #C94AAE",
-"-. c #D045AA",
-";. c #D04BAF",
-":. c #C750A8",
-">. c #CC59AB",
-",. c #CB4DB1",
-"<. c #CC51B4",
-"1. c #CD5AB0",
-"2. c #D45CBF",
-"3. c #D363BA",
-"4. c #D65FC3",
-"5. c #D769C0",
-"6. c #DB6CC3",
-"7. c #DE66C9",
-"8. c #DE6BCE",
-"9. c #DB74C5",
-"0. c #DE76CB",
-"q. c #DF6DD0",
-"w. c #E068CC",
-"e. c #EA7FCF",
-"r. c #E06FD1",
-"t. c #E274D5",
-"y. c #E47BD6",
-"u. c #E376D8",
-"i. c #E479D9",
-"p. c #E87FDE",
-"a. c #1E83DC",
-"s. c #2482DB",
-"d. c #2B80DA",
-"f. c #3682DC",
-"g. c #1B8BE3",
-"h. c #3187E0",
-"j. c #3D8BE4",
-"k. c #2790E8",
-"l. c #3594EC",
-"z. c #3D94EC",
-"x. c #4C90EA",
-"c. c #5494EB",
-"v. c #469CF4",
-"b. c #4C98F1",
-"n. c #5A97F1",
-"m. c #529AF2",
-"M. c #5A9FF8",
-"N. c #6B87E1",
-"B. c #49A1F9",
-"V. c #59A3F6",
-"C. c #52A6FE",
-"Z. c #5DA7FE",
-"A. c #56AFFF",
-"S. c #5CABFF",
-"D. c #56B4FF",
-"F. c #58B5FF",
-"G. c #54BBFF",
-"H. c #898989",
-"J. c #8A918D",
-"K. c #949394",
-"L. c #9C9B9C",
-"P. c #B5B4B5",
-"I. c #E483D2",
-"U. c #E789D6",
-"Y. c #E781DA",
-"T. c #E985DC",
-"R. c #EA89DC",
-"E. c #EC91DE",
-"W. c #EE9BDA",
-"Q. c #EC87E2",
-"!. c #EC8CE2",
-"~. c #EE93E1",
-"^. c #F195E6",
-"/. c #F29BE7",
-"(. c #F49EE9",
-"). c #F4A6E5",
-"_. c #F5A2EB",
-"`. c #F9A6EF",
-"'. c #F6AAED",
-"]. c #F5B2EC",
-"[. c #F6A2F0",
-"{. c #FAA6F1",
-"}. c #FAAAF3",
-"|. c #FBB7F5",
-" X c #FEB1F8",
-".X c #C8C7C8",
-"XX c #CBCBCC",
-"oX c #CDD1CF",
-"OX c #F3D2EB",
-"+X c #F7C6F0",
-"@X c #F8C1F1",
-"#X c #F8CAF2",
-"$X c #FFD1FC",
-"%X c #FDDBFB",
-"&X c #F9E6F7",
-"*X c #FDE5FA",
-"=X c #FDEDFB",
-"-X c #F3FCF5",
-";X c #FCF3FA",
-":X c #FEFEFE",
-">X c None",
+"254 256 254 2 ",
+" c #002100210021",
+". c #0B970B970B97",
+"X c #122212221222",
+"o c #18FF18FF18FF",
+"O c #228422842284",
+"+ c #2A582A582A58",
+"@ c #33AD33AD33AD",
+"# c #3DF33DF33DF3",
+"$ c #433943394339",
+"% c #4B824B824B82",
+"& c #54FB54FB54FB",
+"* c #5BDF5BDF5BDF",
+"= c #644064406440",
+"- c #6A5E6A5E6A5E",
+"; c #755B755B755B",
+": c #7D447D447D44",
+"> c #9F9F080C6E72",
+", c #98040F827521",
+"< c #9C450C147214",
+"1 c #8FBC17977C4B",
+"2 c #8DBA197A7E00",
+"3 c #964D111E768C",
+"4 c #9B13111D76AA",
+"5 c #927F14CA79DB",
+"6 c #993215387A6B",
+"7 c #9718198D7E60",
+"8 c #A05909856F8C",
+"9 c #A1BF0C3C71C5",
+"0 c #A45A124875AF",
+"q c #A5D717F877BB",
+"w c #A6C114D079B7",
+"e c #A83C174C7BF3",
+"r c #A72E1B7B79D8",
+"t c #A9891B1D7DA0",
+"y c #A9DC225F7DE4",
+"u c #7FAF27178A56",
+"i c #7C112AB08D5F",
+"p c #775E2F299164",
+"a c #78282E7390B1",
+"s c #6FDB366897F0",
+"d c #6F543714987A",
+"f c #671B3F0A9F87",
+"g c #6B4C3B1B9C07",
+"h c #72FB33769543",
+"j c #5F3546BAA66A",
+"k c #5DA64848A7D1",
+"l c #56F94EB7AD90",
+"z c #5A5D4B93AABE",
+"x c #54EC50D0AF6F",
+"c c #4ECC56BCB4BB",
+"v c #4C5A592AB6E2",
+"b c #468F5EB6BBD4",
+"n c #49EE5C2FB998",
+"m c #52155390B1DF",
+"M c #509F5E00BBA6",
+"N c #62F44321A32F",
+"B c #750A4345A3C7",
+"V c #7EB34BA4ABE0",
+"C c #7A4454C4B42F",
+"Z c #769558E9B7E9",
+"A c #76485CEFBB90",
+"S c #439761A5BE71",
+"D c #746360BCBF22",
+"F c #3E5B66B1C2F2",
+"G c #3AFC6A0BC5F3",
+"H c #368A6E63C9D7",
+"J c #38026CF8C88D",
+"K c #2F62755BD00F",
+"L c #320272C8CDBD",
+"P c #2DB176F9D17D",
+"I c #2C357880D2D9",
+"U c #30D67D58D777",
+"Y c #405D64BDC137",
+"T c #56A0753ED102",
+"R c #6DC26DC5CAE5",
+"E c #7237652BC32A",
+"W c #707668F7C69E",
+"Q c #6C0871E6CEB6",
+"! c #6A487553D1CE",
+"~ c #67957B00D6F3",
+"^ c #684D79A6D5B1",
+"/ c #661B7E31D9EE",
+"( c #87F01F4F831C",
+") c #89AD1D6D8189",
+"_ c #952C1D7B8204",
+"` c #AB5D1D1A81A2",
+"' c #84CE222185C0",
+"] c #80DD2606892D",
+"[ c #8EDA2A638DAC",
+"{ c #9339218D85A7",
+"} c #915325608924",
+"| c #8CDA2E889166",
+" . c #8A83335D95D5",
+".. c #8867378599CA",
+"X. c #86583BEF9DA2",
+"o. c #ADFB227D8466",
+"O. c #AD892BD68377",
+"+. c #AF6324668957",
+"@. c #B09B26548736",
+"#. c #B0AD26AE8AB3",
+"$. c #B2D52A7D8CEE",
+"%. c #AF9D31338698",
+"&. c #B069333E87C9",
+"*. c #B27F34798AA8",
+"=. c #B3C93BE28CDF",
+"-. c #B45D2D5A91D5",
+";. c #B6FC31FC942E",
+":. c #B918357393AE",
+">. c #BB7339A19743",
+",. c #B7F133FA982E",
+"<. c #B93D360C9A28",
+"1. c #BC213B289CB9",
+"2. c #84B23F49A0CC",
+"3. c #BD843DC8A171",
+"4. c #B59C40A58FA0",
+"5. c #B70E445A91D5",
+"6. c #B9C84B5895F4",
+"7. c #B9E54BA6961E",
+"8. c #BF8640E79CEF",
+"9. c #BCD7532D9A88",
+"0. c #BFA95A729ED1",
+"q. c #830542C9A3D2",
+"w. c #809A47B2A845",
+"e. c #803E486EA91A",
+"r. c #BF3940DCA46F",
+"t. c #C11743C49F34",
+"y. c #C0615C629FEA",
+"u. c #C1A044E6A3FC",
+"i. c #C5754B88A59B",
+"p. c #C26546A7A9E1",
+"a. c #C4F04B2AAD15",
+"s. c #C12D5E56A11E",
+"d. c #C8265063A992",
+"f. c #C9FB53A0AC71",
+"g. c #CC6357FBAFB6",
+"h. c #C6C54E93B167",
+"j. c #C7EC509EB34C",
+"k. c #C9D25400B66A",
+"l. c #CE8D5BB4B2D6",
+"z. c #CB4A5698B909",
+"x. c #CD825AA8BCD7",
+"c. c #D05D5F0DB58C",
+"v. c #C3856467A4AA",
+"b. c #C5556936A770",
+"n. c #C7216DBAAA21",
+"m. c #C9CB7487AE1F",
+"M. c #D1346084B6BA",
+"N. c #D3A864D2BA52",
+"B. c #D68B6A04BE86",
+"V. c #CD177D15B327",
+"C. c #CFDB5ED9C0D5",
+"Z. c #D2B56400C5B8",
+"A. c #D7E16C67C08B",
+"S. c #D9216E83C23A",
+"D. c #D48B674BC8E2",
+"F. c #D6D46B68CCC7",
+"G. c #D8C96EDBCEB1",
+"H. c #DBA77316C5F6",
+"J. c #DB51730ACD4B",
+"K. c #DF6B79BBCB64",
+"L. c #DC2574BFD1ED",
+"P. c #DF547A53D4F6",
+"I. c #E1C27DEFCED5",
+"U. c #E1C27E72D681",
+"Y. c #351781DBDBBE",
+"T. c #38B1858ADF4D",
+"R. c #3A9E87A5E146",
+"E. c #3D6B8A80E403",
+"W. c #637E8369DEA6",
+"Q. c #40DE8E2DE77B",
+"!. c #42218F90E8D3",
+"~. c #5F2A8C65E6CA",
+"^. c #5DF68ED2E908",
+"/. c #456392EFEC01",
+"(. c #48B6967BEF58",
+"). c #532494C7EE2D",
+"_. c #5BDB9325ECEB",
+"`. c #49E497AEF09D",
+"'. c #4D009AEEF39F",
+"]. c #59AF978FF0FB",
+"[. c #53FC9E6AF712",
+"{. c #58729A3BF351",
+"}. c #5468A007F88F",
+"|. c #61E086A2E196",
+" X c #605E89F3E48C",
+".X c #5450A297FAF0",
+"XX c #841A841A841A",
+"oX c #8C3C8C3C8C3C",
+"OX c #941294129412",
+"+X c #9A049A049A04",
+"@X c #A3A8A3A8A3A8",
+"#X c #ACA1ACA1ACA1",
+"$X c #B62DB62DB62D",
+"%X c #BD03BD03BD03",
+"&X c #CF28824CB63A",
+"*X c #D06D8591B80A",
+"=X c #D0E086CBB8D2",
+"-X c #D3148C68BC24",
+";X c #D5079183BF22",
+":X c #D6D29611C1D3",
+">X c #D8029900C383",
+",X c #D9CA9DB6C64B",
+"<X c #E4EB83A0D3DF",
+"1X c #E7D988D5D7BD",
+"2X c #E4E58407DA5F",
+"3X c #E7E1893ADC8F",
+"4X c #E9FD8CCEDD2C",
+"5X c #ECE291C7DF11",
+"6X c #DAE5A06EC7FE",
+"7X c #DC67A464CA3A",
+"8X c #DEEDAAE2CE09",
+"9X c #E09BAF24D097",
+"0X c #E25CB3BBD33C",
+"qX c #E4E8BA4ED715",
+"wX c #E671BE50D96F",
+"eX c #EB598F5FE0A3",
+"rX c #EEA39509E309",
+"tX c #F0509821E56E",
+"yX c #F2EF9C98E7E4",
+"uX c #F34F9F58E892",
+"iX c #F3DFA3AEE99E",
+"pX c #F51EACFEEBE2",
+"aX c #F612B486EDB3",
+"sX c #F704BBBAEF70",
+"dX c #F791C01BF08C",
+"fX c #C4D5C4D5C4D5",
+"gX c #CCA1CCA1CCA1",
+"hX c #D474D474D474",
+"jX c #DAAEDAAEDAAE",
+"kX c #E7DCC1F0DB90",
+"lX c #E984C61BDDFD",
+"zX c #EABEC945DFE4",
+"xX c #EC2CCD03E211",
+"cX c #EEF9D433E64B",
+"vX c #F07ED816E895",
+"bX c #F202DC09EAE4",
+"nX c #F819C3EAF16F",
+"mX c #F89AC751F24D",
+"MX c #F91DCBD6F35C",
+"NX c #FA4CD4C8F588",
+"BX c #FB6CDD24F78D",
+"VX c #E3EFE3EFE3EF",
+"CX c #EAF4EAF4EAF4",
+"ZX c #F4ADE2E3EEEB",
+"AX c #F61BE690F114",
+"SX c #FBCFE09FF868",
+"DX c #F7B7EAB0F37C",
+"FX c #F944EEADF5D3",
+"GX c #FC60E464F948",
+"HX c #FD84ED20FB6D",
+"JX c #F48BF48BF48B",
+"KX c #FA8AF1F1F7C0",
+"LX c #FD29F5C4FB82",
+"PX c #FFFCFFF8FFFB",
/* pixels */
-">X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>X= & >X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>Xp v : >X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>Xr k.f.u 4 >X>X>X>X>X>X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>Xt z.Z.l.c : 3 >X>X>X>X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>Xy l.Z.Z.B.h.l > >X>X>X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X>X4 >X>X>X>X>X>Xt j.Z.A.S.n.C f * % >X>X>X>X>X>X>X>X>X>X>X",
-">X>X>X4 l g l i p r K : T P L R ~ ] [ ] ^ 8 O >X>X>X>X>X>X>X>X>X",
-">X>X>X>Xs g.s.s.s.M M s.d 8 %.I.(._.{.`._.E.3.Q # >X>X>X>X>X>X>X",
-">X>X>X>X4 D C.m.m.b.v.p ' E.}._.(././.(./._.`._.1.& >X>X>X>X>X>X",
-">X>X>X>X>XT A.Z.D.D.W .}._././.(._.(.(././.^./.}.6.6 >X>X>X>X>X",
-">X>X>X>X>X2 A D.N.W ( _._./.(.(.(.(.(./.'.+X@X_.].$X9.# >X>X>X>X",
-">X>X>X>X>X>X1 E ; 7 i._.(.(.(.(.(._./.].:X:X:X;X:X:X:X$.>X>X>X>X",
-">X>X>X>X4 < i b y -.!.(.(.(._.(.(.(./.*X:X:X:X:X:X:X-XOX6 >X>X>X",
-">X>X6 r k m a.m ! 7.!._.(.(.(.(.(./._.:X:X:XL.P.:XH. XX>.>X>X>X",
-">X* n a.M B z.C ( t.R._.(.(.(.(.(./.'.;X:X.X X :Xo J.W.# >X>X",
-">X# a V v.V.G.z X.t.R._./._.(./.(.(.(.=X:X.X X :XK.. oX).% >X>X",
-">X>X>X0 F G.S 2 ,.t.Y._./.(.(._.(._.^.#X:X:XK.P.:X:X-X=X~.8 >X>X",
-">X>X>X>X4 x I w ,.u.y.(.(._.(.(._.(.(./.&X:X:X:X=X+X%X'.U.) ] >X",
-">X>X>X>X>X+ h f .t.7.~.(./.(.(./.(.(.(._.#X&X*X|.{.3.U.U.] ^.q ",
-">X>X>X>X>Xp g.h ` i.t.Q.}._./.(.(.(.(.(./.(.~.6.3.@.$.}.3.#. X) ",
-">X>X>X>X: m d.c.! 7.,...3.E.`./.(._.(.(./._./.| @.r._.}.' 3.U.q ",
-">X>X>X4 c M x.F.O.7 [ :.o.Q 3.{./.(.(._.(./._.{. X_._.R.^ r.J >X",
-">X>X4 j g.z.F.V.U 6.}.}.}.E.Q 9.`./.(./.(.(.(././.).[.] 8 6 >X>X",
-">X>X- l g Z N.x } [.(././.}.9._ (.(.(._._.(.(.(.^.^.,.% >X>X>X>X",
-">X>X>X>X>X4 4 2 &.Q.(.(./._.T.Q t.y.R.~.~.~.Q.Q.Y.=.- >X>X>X>X>X",
-">X>X>X>X>X>X>X>X^ u.R./.(.{.*.[ i.q.8.8.q.r.i.q.' & >X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X% _ 4.r.8.#.& ,.q.t.t.t.q.4.| J | 0 >X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X6 0 6 - &.' Q ^ ^ ^ Q / *.U. X[ >X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>X>X>X6 q.!.~.I.U.*.] }.}._.}.@.>X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>X>X>X>X' u.Q.^.~.Q &.Q.~.(.r.8 >X>X>X>X>X>X",
-">X>X>X>X>X>X>X>X>X>X>X>X>X>X% ^ ,.&.J % 0 ..,...6 >X>X>X>X>X>X>X"
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXzXs.y > q 5.;XFXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXm.< > > > > > > r >XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXm.> > > > > > > > > > 5.cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXwX8 > > > > > > > > > > > q ;XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX9.> > > > > > > > > > > > > > =.xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXFXr > > > > > > > > > > > > > > > 0 &XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcX> > > > > > > > > > > > > > > > > > =.zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXwX> > > > > > , s < > > > > > > > > > > q V.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqX> > > > > > 5 L b ( > > > > > > > > > > > &.kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX8X> > > > > > 2 K P L f < > > > > > > > > > > 0 m.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX8X> > > > > > 2 K I I I S ' > > > > > > > > > > > %.qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX7X> > > > > > 2 P I I I P K N , > > > > > > > > > > 9 n.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX,X> > > > > > ( I I I I I I I Y ' > > > > > > > > > > > O.9XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX>X> > > > > > ( I I I I I I I I K k < > > > > > > > > > > 9 v.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX:X> > > > > > ' P I I I I I I I I I F u > > > > > > > > > > > y 8XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX;X> > > > > > ' I I I I I I I I I I I K z 3 > > > > > > > > > > 9 0.AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX*X> > > > > > u I I I I I I I I I I I I I F i 8 > > > > > > > > > > r 8XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&X> > > > > > i I I I I I I I I I I I I I I P l , > > > > > > > > > > > 9.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXV.> > > > > > i I I I I I I I I I I I I I I I I J a > > > > > > > > > > > q 6XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXm.> > > > > > p I I I I I I I I I I I I I I I I I I x 5 > > > > > > > > > > > 6.bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXn.> > > > > > p I I I I I I I Y.Q.U I I I I I I I I I H a < > > > > > > > > > > q >XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXn.> > > > > > s I I I I I I I Q..X.XE.I I I I I I I I I I m 1 > > > > > > > > > > > 6.cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXv.> > > > > > d I I I I I I I /..X.X.X(.Y.I I I I I I I I I H h > > > > > > > > > > > q ;XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXs.> > > > > > s I I I I I I I /..X.X.X.X.XE.I I I I I I I I I P c 1 > > > > > > > > > > > 4.cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX0.> > > > > > g I I I I I I I /..X.X.X.X.X.X'.Y.I I I I I I I I I L s < > > > > > > > > > > 0 -XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX9.> > > > > > g I I I I I I I /..X.X.X.X.X.X.X.XQ.I I I I I I I I I K n 2 > > > > > > > > > > > =.lXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX6.> > > > > > f I I I I I I I /..X.X.X.X.X.X.X.X.X'.Y.I I I I I I I I I L g < > > > > > > > > > > 0 &XKXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX6.> > > > > > j I I I I I I I (..X.X.X.X.X.X.X.X.X.X.XQ.I I I I I I I I I I b 2 > > > > > > > > > > > *.kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX5.> > > > > > j I I I I I I I (..X.X.X.X.X.X.X.X.X.X.X.X'.T.I I I I I I I I I L g < > > > > > > > > > > 0 m.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX5.> > > > > > k I I I I I I I (..X.X.X.X.X.X.X.X.X.X.X.X.X.X!.I I I I I I I I I I S ' > > > > > > > > > > > %.kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX=.> > > > > > z I I I I I I I (..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.T.I I I I I I I I I L f , > > > > > > > > > > 9 n.FXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX%.> > > > > > l I I I I I I I '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.!.U I I I I I I I I I S ' > > > > > > > > > > > O.qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX%.> > > > > > l I I I I I I I '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'.T.I I I I I I I I I K j , > > > > > > > > > > > b.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXO.> > > > > > m I I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X/.U I I I I I I I I I S ] > > > > > > > > > > > y 0XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXO.> > > > > > c I I I I I I I '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.R.I I I I I I I I I I k , > > > > > > > > > > 9 v.AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXy > > > > > > v I I I I I I U '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X(.I I I I I I I I I I F u > > > > > > > > > > > y 8XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXr > > > > > > n P I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.R.I I I I I I I I I K z , > > > > > > > > > > > 0.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKXr > > > > > > b I I I I I I I '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X(.U I I I I I I I I P H i > > > > > > > > > > > r 7XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX0 > > > > > > b I I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XE.I I I I I I I I I P l 3 > > > > > > > > > > > 9.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX0 > > > > > > F I I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X(.Y.I I I I I I I I I H p > > > > > > > > > > > q ,XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX> > > > > > > F I I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.E.I I I I I I I I I I m 5 > > > > > > > > > > > 6.bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXFX> > > > > > > F I I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X(.Y.I I I I I I I I I H h > > > > > > > > > > > q ;XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDX> > > > > > > G I I I I I I I .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XE.I I I I I I I I I P m 1 > > > > > > > > > > > 6.cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXAX> > > > > > < G I I I I I I U .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X(.Y.P I I I I I I I I H s < > > > > > > > > > > 0 -XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbX> > > > > > < H I I I I I I U .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XQ.I I I I I I I I I I c 1 > > > > > > > > > > > =.zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX7X0.*.%.%.=.9.v.m.&X:X7XqXzXcXbXAXKXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcX> > > > > > , J I I I I I I U .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X`.T.I I I I I I I I I H g < > > > > > > > > > > q *XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqXO.> > > > > > > > > > > > > > > 0 q y O.*.6.0.n.V.;X,X9XkXcXcXZXDXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcX> > > > > > , H P I I I I I Y..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XE.I I I I I I I I I I n 2 > > > > > > > > > > > *.zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX7X9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 9 q r y %.=.6.v.n.=X:X8XqXzXcXbXAXKXPXPXPXPXPXPXPXPXPXxX> > > > > > 3 H I I I I I I U .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[._.~./ b m x z z z z z l x l ' > > > > > > > > > > > q V.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbXq > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > < r r O.=.6.0.n.&X-X,X0X:X> > > > > > 5 H I I I I I P Y..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.~.! Z V .{ 6 4 < > > > > > > > > > > > > > > > > > > > > > > > > > > &.kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXn.> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > i h g f k l c Y |.^.].]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[. XR w.| 7 > > > > > > > > 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > 0 m.FXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXy 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 4 4 6 _ [ ..q.V V A W Q ~ W.~._.]..X.X.X.X.X.X~.W X._ > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > O.8XFXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX8 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 > > > > > > > > > > > > 9 4 4 w } | X.q.} < 8 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 q 6.:XbXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX> > > > > > > s l j f s a u ' 2 5 < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 9 =.-XZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXy > > > > > > ' K I I I I I P P P K L G S v x z j g h a ' 2 5 , > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 8 > 9 5.8XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX0.> > > > > > > m P I I I I I I I I I I I I I I I I I I I P P P K J F n m l j f s a u ' 2 3 < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 8 > 8 0 r o.o.@.@.@.@.o.` w 9 8 > 8 8 > > > 8 > > > > > > > > > > > > > > > > > > > r m.bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXwX> > > > > > > 2 K I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I P H G b v m j f g h i ' 2 5 < < > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > o.:.i.c.S.I.4XyXyXyXyXyXyXyXyXyXyXyXyXuXrX3XI.B.g.t.-.e > > > > > > > > > > > > > > > > > > 8 8 8 8 9.kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX5.> > > > > > > z P I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I L G S n m l j g s a ] 2 2 , < < < > > > > > > > > > > > > > > > > > > > > > > > > > > > 9 @.t.N.<X5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5XH.l.>.r 9 8 8 8 8 > > > > > > > > > > > > > 8 4.0XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXkX> > > > > > > 2 L I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I K H F S n x k s 3 > > > > > > > > > > > > > > > > > 9 @.i.K.rXyXiXuXtXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4XB.1.r 8 > > > > > > > > > > > > > > 8 8 4.0XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX9.> > > > > > > j I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I K j 5 > > > > > > > > > > > > > > > 0 :.N.4XyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.f.@.9 8 > 8 > > > > > > > > > > 8 8 5.kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcX> > > > > > > 3 J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I K n 2 > > > > > > > > > > > > > > 0 :.N.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<Xg.o.8 > > > > > > > > > > > 8 8 8 y.bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXs.> > > > > > > g I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I F a > > > > > > > > > > > > > > t g.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.t.q 8 > > > > > > > > > > > > 0 =XKXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbX4 > > > > > > 3 G I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I P I I I I I I I I I I I I I I I I I I I I I I I I I I I I K j , > > > > > > > > > > > > 9 :.H.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4Xc.o.8 > > > > > > > > > > > > %.wXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXm.> > > > > > > s I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I S ' > > > > > > > > > 8 > > 0 t.<XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXB.$.8 8 > > > > > > > > > > 9 n.FXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZXr > > > > > > < Y I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I K f < > > > > > > > > > > < 0 u.<XyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXK.;.8 > > > > > > > > > > > O.qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&X> > > > > > > p I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I F ' > > > > > > > > > > > 9 8.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXH.$.8 > > > > > > > > > > 8 V.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDXy > > > > > > > T R.T.T.Y.Y.U U I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I P m 3 > > > > > > > > > > 8 :.I.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXB.t > > > > > > > > > > 8 =.bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX;X> > > > > > > ..}..X.X.X.X.X[.'.'.'.`.(.!.!.E.E.T.T.T.U Y.I I U I I I I I U I I I I I I I I I I I I I I I I I I I I I I I L g > > > > > > > > > > > ` S.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXf.9 8 8 > > > > > > > > r 9XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX%.> > > > > > > ^ .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'.[.'.`.(./.!.E.E.T.T.Y.Y.U U I I I I I I I I I I I I I I I I H ] > > > > > > > > > > 9 d.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX1X:.8 > > > > > > > > > 9 &XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX6X> > > > > > > [ .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X.X[.'.'.`././.!.E.R.R.T.Y.U I I S 2 > > > > > > > > > > @.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXM.0 8 8 > > > > > > > > 0.FXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX*.> > > > > > > Q .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XQ 3 > > > > > > > > > 9 h.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyX1X;.8 8 > > > > > > > > =.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX8X> > > > > > > { .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XD < > > > > > > > > > +.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXl.9 > > > > > > > > > O.xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX5.> > > > > > > W .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XZ > > > > > > > > > > >.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.t 8 > > > > > > > > r lXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXwX> > > > > > > 7 ]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.Xe.> > > > > > > > > < g.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5X:.> > > > > > > > > q qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX9.> > > > > > > A .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X].V > > > > > > > > > q H.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXd.8 > > > > > > > > 0 0XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXzX9 > > > > > > 6 ]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XV > > > > > > > > > o.<XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXN.9 8 > > > > > > > 0 0XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXs.> > > > > > > C .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.e.< > > > > > > > > $.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXK.q > > > > > > > > 0 qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcXq > > > > > > 4 _..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XZ 8 > > > > > > > > :.rXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<Xt > > > > > > > > 0 lXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXn.> > > > > > > V .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XD > 8 8 > > > > > > -.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX1Xo.> > > > > > > > r cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZXq > > > > > 8 < ~..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XQ > > > > > > > > > -.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4Xo.> > > > > > > > y ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXV.> > > > > > 8 q..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XW.3 > > > > > > > < ,.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4Xo.> > > > > 8 8 8 =.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDXr > > > > > > < W..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[..X^._ > > > > > > > 8 -.D.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX1Xo.8 > > > > > > > y.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX-X> > > > > > > ...X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.[.[ > > > > > > > > -.D.G.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtX1X` > > > > > > > > =XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKXO.> > > > > > < / .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X2.< > > > > > > > +.D.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.e 8 > > > > > > 8 qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX>X> > > > > 8 8 | .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XW > > > > > > > > ` Z.F.G.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXH.9 > > > > > > > y bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX%.> > > > > > > Q .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.Q 4 > > > > > > > 0 x.F.F.L.yXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXM.8 8 > > > > > > 5.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX8X> > > > > > > } {..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X~.A { 9 > > > > > > > 8 k.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXuXyXyXyXuXuXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXyXyXyXyXyXyXyXtXf.8 > > > > > > 8 &XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX=.> > > > > > > W .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.! X.4 > > > > > > > > > > p.F.F.F.G.tXiXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXsXMXGXHXLXLXLXLXGXNXnXpXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXtXyXiXpXpXpXpXiXyXyXyXyXyXyXyXtX:.> > > > > > 8 9 kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXwX> > > > > > > { ]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X^.Z _ 8 > > > > > > > > > > > -.F.F.F.F.U.yXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXsXBXLXPXPXPXPXPXPXPXPXPXPXPXPXHXMXpXyXuXtXyXyXyXyXyXyXyXyXyXyXiXnXGXLXLXPXPXPXLXGXnXpXyXyXyXyXtX5Xt > > > > > 8 8 O.FXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX5.> > > > > > > A .X.X.X.X.X.X.X.X.X.X.X.X.X[.Q ..9 8 > > > > > > > > > > > > ` Z.F.F.F.G.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXuXuXyXaXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXGXaXuXyXyXyXyXyXyXtXuXuXMXLXPXPXPXPXPXPXPXPXPXPXLXGXpXyXyXyXyXI.8 8 > > > > > 8 m.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX> > > > > > > 7 ]..X.X.X.X.X.X.X.X.X.X^.C _ > > > 8 > > > > > > > > > > 8 8 C.F.F.F.F.L.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXuXiXSXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXBXiXyXyXyXyXuXuXaXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXNXiXyXyXyXf.> > > > > > 8 8 kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXy.> > > > > > > Z .X.X.X.X.X.X.X[.Q .> > > > > > > > > > > > > > > 8 8 > 3.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXsXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXmXyXyXyXyXdXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXaXyXyXyX-.8 > > > > > > =.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXvX8 > > > > > > 6 _..X.X.X.X XC 5 > > > > > > > > > > > > > > > > > > 8 +.D.F.F.F.F.G.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXnXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXBXiXyXsXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXdXyXyX1X9 > > > > > 8 8 ;XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXb.> > > > > > < V .X].R | 8 8 > > > > > > > > > > > > > > > > > > > 9 C.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXmXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXsXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXnXyXyXc.> > > > > > > q ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZX0 > > > > > > 4 e.6 > > 8 8 > > > > > > > > > > > > > > > > > > > 3.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXdXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXnXyXyX$.> > > > > > > v.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXm.> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ` D.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXaXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXsXuX<X9 8 8 > > > > 0 zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDXr > > > > > > > > > > > > > > > > > > > , p l 4 > > > > > > 8 z.F.F.F.F.F.F.F.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXaXtXi.8 8 > > > > > 6.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXFX6Xy 8 > > > > > > > > > > > > > > > > 2 k J P s > > > > > > > -.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXiX5Xr > > > > > > 9 kXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXzXn.r > > > > > > > > > > > > > > > > , h b P I I G 3 > > > > > > > C.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXsXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXNXyXM.> > > > > > > 6.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDX,X4.8 > > > > > > > > > > > > > > > > ( k H I I I I I s > > > > > > > <.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXuXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXaXrX@.> > > > > > 9 wXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXlXb.r > > > > > > > > > > > > > > > > 3 s b P I I I I I I G , > > > > > > w Z.F.F.F.F.F.F.F.G.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXsXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXiXB.> > > > > > > 9.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXAX:X*.8 > > > > > > > > > > > > > > > < ' z H I I I I I I I I P f > > > > > > > 3.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXmXyX@.8 8 8 > > > > zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXkXv.r > > > > > > > > > > > > > > > > 3 s b P I I I I I I I I I I L 3 > > > > > > w Z.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXyXS.8 8 8 > > > > v.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZX;X&.8 > > > > > > > > > > > > > > > < ' l H I I I I I I I I I I I I I z > > > > > > < 1.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXNXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXmXtX@.> 8 > > > > 0 ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXwX0.q > > > > > > > > > > > > > > > > 5 d S I I I I I I I I I I I I I I I P ( > > > > > > 9 C.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXuXN.> 8 > > > > > &XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZX-X%.> > > > > > > > > > > > > > > > > ] l L I I I I I I I I I I I I I I I I I b > > > > > > > -.F.F.F.F.F.F.F.F.F.G.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXaXrXt 8 > > > > > O.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXqX9.0 > > > > > > > > > > > > > > > > 5 g F I I I I I I I I I I I I I I I I I I I I h > > > > > > 8 C.F.F.F.F.F.F.F.F.F.G.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXMXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXSXyXf.> > > > > > > qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZX&XO.> > > > > > > > > > > > > > > > > u x L I I I I I I I I I I I I I I I I I I I I I L , > > > > > > +.F.F.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXuXyXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXJX#X& + + $ XXVXPXPXPXPXPXPXPXPXLXiX4X0 > > > > > > 0.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXLX9X9.< > > > > > > > > > > > > > > > > 5 N F K I I I I I I I I I I I I I I I I I I I I I I I l > > > > > > > a.F.F.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXuXiXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXfX+ X oXPXPXPXPXPXPXPXPXnXyX>.> > > > > > 0 DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXZX&Xo.> > > > > > > > > > > > > > > > > i m K I I I I I I I I I I I I I I I I I I I I I I I I I P ] > > > > > > w D.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXpXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX#X. = PXPXPXPXPXPXPXBXyXH.> > > > > > > ,XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXLX8X6.> > > > > > > > > > > > > > > > > 1 f G I I I I I I I I I I I I I I I I I I I I I I I I I I I I H < > > > > > > ,.F.F.F.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXsXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXgXOX; : @XCXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXgX. ; PXPXPXPXPXPXLXiXrXy > > > > > > 6.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXbXV.y > > > > > > > > > > > > > > > > < i c I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I l > > > > > > > k.F.F.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXMXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXfX@ . = VXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXJX@ %XPXPXPXPXPXPXaXyXi.> > > > > > 0 DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXwX6.> > > > > > > > > > > > > > > > > 1 f G I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I i > > > > > > ` D.F.F.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXNXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXXX o %XPXPXPXPXPXPXPXPXPXPXPXPXPXPX+X @ PXPXPXPXPXPXnXyXI.8 > > > > > > 7XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXDX0.> > > > > > > > > > > > > > > > < i c K I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I P < > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX: X %XPXPXPXPXPXPXPXPXPXPXPXPXLX@ $XPXPXPXPXPXBXyXrX` > > > > > > 0.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXAX%.> > > > > > > > > > > > > > > 1 j J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I P v 8 > > > > > > k.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXSXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX#X o VXPXPXPXPXPXPXPXPXPXPXPXhX * PXPXPXPXPXGXyXyXi.> > > > > > r LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PX6.> > > > > > > > > > > > > , a v K I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I T.B > > > > > > w Z.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXGXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXJXO & LXPXPXPXPXPXPXPXPXPXPXOX o PXPXPXPXPXLXiXyXK.8 > > > > > > zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"qX> > > > > > > > > > > > 2 k J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I U R.'..X} > > > > > > -.D.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXGXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXoX fXPXPXPXPXPXPXPXPXPXPX= jXPXPXPXPXLXiXyX5Xq > > > > > > &XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"v.> > > > > > > > > 5 p n K I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I U T./.[..X.X].> > > > > > > p.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXGXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX+ * PXPXPXPXPXPXPXPXPXPX% %XPXPXPXPXPXpXyXyX:.> > > > > > 6.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"&.> > > > > > > 2 k J I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Y.E.'..X.X.X.X.XQ > > > > > > 9 C.F.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXgX o CXPXPXPXPXPXPXPXPXPX$ #XPXPXPXPXPXaXyXyXl.> > > > > > q LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"O.> > > > > > 2 F P I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I U T./..X.X.X.X.X.X.X.XC > > > > > > ` Z.F.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXNXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXOX $XPXPXPXPXPXPXPXPXPX% #XPXPXPXPXPXaXtXuXI.8 > > > > > > xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"7.> > > > > > > 2 n I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I Y.E.'..X.X.X.X.X.X.X.X.X.X| > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXMXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX= XXPXPXPXPXPXPXPXPXPX= %XPXPXPXPXPXsXyXuX5Xw > > > > > > >XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+";X> > > > > > > > < N L I I I I I I I I I I I I I I I I I I I I I I I I I I I I I U T.(..X.X.X.X.X.X.X.X.X.X.X.X.X6 > > > > > > 3.D.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXnXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX% = PXPXPXPXPXPXPXPXPXoX jXPXPXPXPXPXsXyXyXyX;.8 8 > > > > b.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"FXr > > > > > > > > > u G I I I I I I I I I I I I I I I I I I I I I I I I I I Y.Q.'..X.X.X.X.X.X.X.X.X.X.X.X.X.X~.> > > > > > 8 C.D.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX@ % PXPXPXPXPXPXPXPXPXfX o LXPXPXPXPXPXaXyXyXyXi.8 8 > > > > *.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PX8X< 8 > > > > > > > > 5 m I I I I I I I I I I I I I I I I I I I I I I I R.`..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XQ > > > > > > 9 Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX# % PXPXPXPXPXPXPXPXPXJXO * PXPXPXPXPXPXaXyXyXyXB.> > > > > > 0 LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPX;X9 > > > > > > > > > < g L I I I I I I I I I I I I I I I I I I Y.E.[..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XZ > > > > > > t F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXuXuXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX& & PXPXPXPXPXPXPXPXPXPX: %XPXPXPXPXPXLXpXyXyXyX<X8 > > > > > > bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPX9Xr 8 > > > > > > > > > ' F I I I I I I I I I I I I I I U R.`..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X..8 > > > > > $.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX; ; PXPXPXPXPXPXPXPXPXPXVXo @ PXPXPXPXPXPXLXiXyXyXyXrX0 > > > > > > 0XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXZX5.> > > > > > > > > > 3 x I I I I I I I I I I I Y.!.[..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XR > 8 > > > > > 1.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXnXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX@X +XPXPXPXPXPXPXPXPXPXPXPX+X . fXPXPXPXPXPXPXLXyXyXyXyXyXo.8 > > > > > ;XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXLX&X8 > > > > > > > > > > h I I I I I I I U R.`..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X^.5 > > > > > > > p.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXpXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXVX. jXPXPXPXPXPXPXPXPXPXPXPXPX= oXPXPXPXPXPXPXPXBXyXyXyXyXyX:.> > > > > > n.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXwXy > > > > > > > > > > 2 Y I I I U !.[..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.| > > > > > > > > k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX$ @ PXPXPXPXPXPXPXPXPXPXPXPXPXLX- oXPXPXPXPXPXPXPXPXMXyXyXyXyXtXi.> > > > > > 9.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXDX9.> > > > > > > > > > < z E.'..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.}.C > > > > > > > > 9 C.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXNXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX$X +XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX#X+ @ fXPXPXPXPXPXPXPXPXPXaXyXyXyXyXyXl.> > > > > > *.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXLX-X0 > > > > > > > > > > X.]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.^ < > > > > > > > > 9 D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXsXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX$ + JXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXgXOXXX+XhXPXPXPXPXPXPXPXPXPXPXLXiXyXyXyXyXyXA.> > > > > > r PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXlXO.> > > > > > > > > > { W..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.]._ < > > > > > > > > 9 F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXhX. $XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXBXyXyXyXyXyXyXK.8 > > > > 8 9 KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXDXy.> > > > > > > > > > < A }..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.X.> 8 > > > > > > > > ` F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXMXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX#X. XXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXsXyXyXyXyXyXyX<X8 > > > > 8 > 9.zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPX:Xq > > > > > > > > > > ..^..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.E 8 > > > > > > > > > > ` F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX#X. XXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXuXyXyXyXyXyXyX4X9 8 8 > > > > 8 8 v.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX*.> > > > > > > 8 8 > _ ^ .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X|.9 8 > > > > > > > > > > #.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXNXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXhX% . @ $XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXmXtXyXyXyXyXyXyX4X0 > > > > > > > > > r 6XLXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKXv.< > > > > > > > > > < Z ]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X].[ < 8 > > > > > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXpXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXhXOX- - XXfXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXiXyXyXyXyXyXyXyXrX0 > > > > > > > > > > 8 v.FXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX7Xr > > > > > > > > > > ..~..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.e.> > > > > > > > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXsXuXyXyXyXyXyXyXyXyX0 > > > > > > > > > > 8 > *.vXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcX=.> > > > > > > > > > 7 ! .X.X.X.X.X.X.X.X.X.X.X.X.X}.Q < 8 > > > > > > > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXiXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXBXuXyXyXyXyXyXyXyXyXyXw > > > > > > > > > > > > 8 y zXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXm.> > > > > > > > > > w w.[.[..X.X.X.X.X.X.X.X.X.X~.6 > 8 > > > > > > > > > > > > ,.F.F.F.F.G.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXuXmXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXiXyXyXyXyXyXyXyXyXyXyXw > > > > > > > > > > > > > > r kXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX9Xy > > > > > > > > > > | ~..X.X.X.X.X.X.X.X.X}. .8 > > > > > > , ( > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXpXyXyXyXyXyXyXyXyXyXyXyXw > > > > > > > > > > > > > > 8 r cXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbX6.> > > > > > > > > > 6 R .X.X.X.X.X.X.X.XZ 8 8 > > > > > > j h > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXpXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXpXtXyXyXyXyXyXyXyXyXyXyXyXw > > > > > > :.8 > > > > > > > 8 y AXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXV.9 > > > > > > > > > < q.]..X.X.X.X.X^ , > > > > > > > a K s > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXnXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXNXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXGXiXuXyXyXyXyXyXyXyXyXyXyXyXrXe > > > > > 8 H.H.0 8 > > > > > > > 5.KXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqXy > > > > > > > > 8 > } X.X}..X]._ > > > > > > > 1 J I g > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXMXtXpXNXLXPXPXPXPXPXPXPXPXPXPXHXdXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrX0 > > > > > 8 K.yX<Xt > > > > > > > > &XPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXAX9.> > > > > > > > > 8 4 E }..X2.8 > > > > > > < v I I f > > > > > > #.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXyXyXyXyXyXyXyXyXyXyXyXuXGXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXuXyXyXyXiXdXBXLXLXPXPXLXHXNXaXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5X0 > > > > > 8 I.yXyX<Xr > > > > > > > 0 zXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX-X9 > > > > > > > > > < q.A > > > > > > > > f I I P j > > > > > > ` F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXuXyXyXyXyXyXyXuXyXyXyXyXyXyXiXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXpXyXyXyXyXyXuXtXuXyXiXiXiXuXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX1X9 > > > > > 8 <XyXyXyXI.q > > > > > > > =.LXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXlXO.> > > > > > > > > > > > > > > > > > ' K I I I z > > > > > > t F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXnXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<X8 > > > > 8 8 5XyXyXyXyXB.8 > > > > > > > 7XPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDX0.8 > > > > > > > > > > > > > > > 5 F P I I I v > > > > > > 0 D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXuXyXyXyXyXyXyXyXyXyXyXyXyXyXuXiXGXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXNXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXK.> > > > 8 8 8 tXyXyXyXyXyXu.> > > > > > > O.LXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX>X9 8 > > > > > > > > > > > > 8 l I I I I I b > > > > > > 9 Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXiXBXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXBXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXB.> > > > > 8 e yXyXyXyXyXyX5Xt > > > > > > > 7XPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXcX%.> > > > > > > > > > > > h I I I I I I F < > > > > 8 > x.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXuXMXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXNXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXg.> > > > > 8 @.yXyXyXyXyXyXuXN.> > > > > > > =.PXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKXv.8 > > > > > > > > > 2 L I I I I I I P < > > > > > > k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXHXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXmXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXt.e <XyXyXyXyXyXyXyXyXyXyXyXyXu.> > > > > > :.yXyXyXyXyXyXyXyXo.> > > > > > 8 cXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX6X> > > > > > > > < S I I I I I I I I 5 > > > > > > p.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXiXMXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXpXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXi.> 8 f.yXyXyXyXyXyXyXyXyXyXyXyX:.> > > > > > i.yXyXyXyXyXyXyXyXM.8 > > > > > > &XPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX;X> > > > > > > > j I I I I I I I I I ' > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXuXyXiXNXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXnXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXi.8 8 8 N.yXyXyXyXyXyXyXyXyXyXyXyXy > > > > > > g.yXyXyXyXyXyXyXyX5Xe > > > > > > *.PX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX0 > > > > > > > i P I I I I I I I I I s > > > > > > +.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXnXGXLXPXPXPXPXPXPXPXPXPXPXPXLXGXdXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXt.8 > 8 q rXyXyXyXyXyXyXyXyXyXyXyX5X0 > > > > > 8 H.yXyXyXyXyXyXyXyXyX8.> > > > > > 8 DX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXFX%.> > > > > > > 5 J I I I I I I I I I I N > > > > > < w F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXiXsXMXGXHXLXLXLXHXGXNXsXiXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5X:.> > > > l.yXyXyXyXyXyXyXyXyXyXyXyXI.8 > > > > > 8 1XyXyXyXyXyXyXyXyXyXB.> > > > > > > wX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXb.> > > > > > > < m I I I I I I I I I I I v > > > > > 8 9 D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXuXyXtXuXuXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.y > > > > @.tXyXyXyXyXyXyXyXyXyXyXyXyXN.8 8 > > > > 9 yXyXyXyXyXyXyXyXyXyX1X9 > > > > > > -X",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX7X> > > > > > > > g I I I I I I I I I I I I G > > > > > > > k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXc.9 > > > > 0 I.yXyXyXyXyXyXyXyXyXyXyXyXyXi.> > > > > > $.yXyXyXyXyXyXyXyXyXyXrXt 8 > > > > > b.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXvXr > > > > > > > ' K I I I I I I I I I I I I P 5 > > > > > > r.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<X;.8 > > > > 9 B.yXyXyXyXyXyXyXyXyXyXyXyXyXyX$.> > > > > > t.yXyXyXyXyXyXyXyXyXyXyX%.> > > > > > 6.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX5.> > > > > > > 5 F I I I I I I I I I I I I I I ] 8 > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xg.0 > > > > > > l.yXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xw > > > > > > M.yXyXyXyXyXyXyXyXyXyXyX:.> > > > > > *.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXV.> > > > > > > > l I I I I I I I I I I I I I I I N > > > > > > w D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xc.t > > > > > > 9 l.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXK.8 > > > > > > <XyXyXyXyXyXyXyXyXyXyXyX8.> > > > > > O.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqX< > > > > > > > h K I I I I I I I I I I I I I I I M > > > > > > 8 x.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4XS.1.0 > > > > > > > 0 B.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXg.8 > > > > > 0 yXyXyXyXyXyXyXyXyXyXyXyXt.> > > > > > O.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXAXO.> > > > > > > 1 H I I I I I I I I I I I I I I I U ).> > > > > > 8 r.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5X1XI.H.l.t.o.9 8 8 8 > > > > > > o.I.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX-.> > > > > > :.yXyXyXyXyXyXyXyXyXyXyXyX8.> > > > > > &.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX0.> > > > > > > > S I I I I I P I I I I I I I I I I (..X[ > > > > > 8 #.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXU.c.t.:.-.@.t e w 0 9 8 > > > > > > > > > > 8 8 8 t.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xw > > > > > > l.yXyXyXyXyXyXyXyXyXyXyXyX-.> > > > > > 5.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX:X8 > > > > > > > j I I I I I I I I I I I I I I I I T..X.XC > > > > > 8 w Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXN.9 > > > > > > > > > > > > > > > > > > > > > 8 @.H.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXS.8 > > > > > 8 I.yXyXyXyXyXyXyXyXyXyXyXyX` > > > > > > y.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxXq > > > > > > > u P I I I I I I I I I I I I I I I U [..X.X/ 8 > > > > 8 8 h.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXo.> > > > > > > > > > > > > > > > > > > > > e M.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXt.> > > > > > e tXyXyXyXyXyXyXyXyXyXyXyX5Xw > > > > > > V.",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX*.> > > > > > > 5 G I I I I I I I I I I I I I I I I '..X.X.X].4 > > > > 8 > ,.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXt > > > > > > > > > > > > > > > > > > 8 t c.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXt > > > > > > 8.yXyXyXyXyXyXyXyXyXyXyXyXH.> > > > > > > 8X",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXn.> > > > > > > > c I I I I I I I I I I I I I I I I !..X.X.X.X.Xq.> > > > > > ` D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXd.> > > > > > > > > > > > > > > 8 8 :.B.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXK.8 > > > > > > A.yXyXyXyXyXyXyXyXyXyXyXyXd.> > > > > > > bX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX8X8 > > > > > > > d P I I I I I I I I I I I I I I I T..X.X.X.X.X.XQ > > > > > > > j.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrX-.> > > > > > > > > > > 8 9 -.c.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXt.> > > > > 8 9 eXyXyXyXyXyXyXyXyXyXyXyXrX` > > > > > > y LX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbXr > > > > > > > ( L I I I I I I I I I I I I I I I U [..X.X.X.X.X.X].4 > > > > > 8 -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXN.+.0 9 > 9 9 9 t :.f.H.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xe > > > > > > :.yXyXyXyXyXyXyXyXyXyXrXU.z.8 > > > > 8 8 v.PX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX6.> > > > > > > , Y I I I I I I I I I I I I I I I I `..X.X.X.X.X.X.X[.X.> > > > > 8 9 Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.Z.C.x.k.z.z.x.C.Z.F.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrX1X1X1X5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXB.> > > > > > 8 B.yXyXyXyXyXyXyXtX3XP.F.F.$.> > > > > 8 8 0XPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&X> > > > > > > > z I I I I I I I I I I I I I I I I E..X.X.X.X.X.X.X.X.XQ > > > > > > > p.F.F.F.F.F.F.F.F.F.F.D.x.u.;.` 0 8 > > > > > > > 9 ` ` >.B.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX:.> > > > > > w 5XyXyXtXeX3XU.L.G.F.F.F.z.9 > > > > > > y KXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXkX0 > > > > > > > h I I I I I I I I I I I I I I I I T..X.X.X.X.X.X.X.X.X.X].7 > > > > > > ` F.F.F.F.F.F.F.F.p.-.w > > > > 8 > > > > > > > > > > > > > > t t.K.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<X9 > > > > > > -.J.G.G.G.F.F.F.F.F.F.F.F.$.> > > > > > 8 V.PXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDXO.> > > > > > > 2 H I I I I I I I I I I I I I I I U '..X.X.X.X.X.X.X.X.X.X.XV > > > > > > > k.F.F.F.F.x.,.w > > > > > > > > > > > > > > > > > > > > > > > > > t f.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXd.> > > > > > > j.F.F.F.F.F.F.F.F.F.F.F.p.8 > > > > > > 0 ZXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX0.> > > > > > > < n I I I I I I I I I I I I I I I I !..X.X.X.X.X.X.X.X.X.X.X.X|.> > > > > > > -.F.F.z.#.8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > w t.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xe 8 > > > > > t D.F.F.F.F.F.F.F.F.F.F.x.0 > > > > > > > m.PXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX,X> > > > > > > > f I I I I I I I I I I I I I I I I R..X.X.X.X.X.X.X.X.X.X.X.X.X.X| > > > > > > 9 j.-.9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 0 i.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXc.> > > > > > > 8.F.F.F.F.F.F.F.F.F.F.D.` > > > > > > > r AXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcXq > > > > > > > ] K I I I I I I I I I I I I I I I Y..X.X.X.X.X.X.X.X.X.X.X.X.X.X.XR > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > t S.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXuXyXyXyXyXrX` > > > > > > 0 Z.F.F.F.F.F.F.F.F.F.D.$.> > > > > > > > :XPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX*.> > > > > > > 5 F I I I I I I I I I I I I I I I I `..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[._ > > > > > > > > > > > > > > > > > > > 9 t $.8.u.d.f.d.u.>.#.` > > > > > > > > > > > > > > 9 t.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXN.8 > > > > > 8 ;.F.F.F.F.F.F.F.F.F.D.-.> > > > > > > 8 5.LXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXm.> > > > > > > < x I I I I I I I I I I I I I I I I !..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XA > > > > > > > > > > > > > > > > t t.B.1XrXyXyXyXyXyXyXyXyXyXeXU.N.>.e > > > > > > > > > > > > @.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXo.8 > > > > > 8 x.F.F.F.F.F.F.F.F.Z.#.> > > > > > > > r bXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX0X> > > > > > > > s I I I I I I I I I I I I I I I I T..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.].w > > > > > > > > > > > > w 8.K.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5XS.:.8 > > > > > > > > > > e I.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXN.> > > > > > > -.F.F.F.F.F.F.F.F.z.t > > > > > > > > 0 8XPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZXy > > > > > > > 2 L I I I I I I I I I I I I I I I U [..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.X.> > > > > > > > > > 0 t.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.>.9 > > > > > > > > 8 0 K.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrX` > > > > > > > z.F.F.F.F.F.F.D.1.9 > > > > > > > > 9 ;XPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX6.> > > > > > > , S I I I I I I I I I I I I I I I I (..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}.R > 8 > > > > > > > > :.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXH.@.> > > > > > > 8 > 0 I.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXg.8 > > > > > > $.F.F.F.F.F.F.a.` > > > > > > > > > > V.LXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX-X> > > > > > > > k I I I I I I I I I I I I I I I I E..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X^ < > > > > > > > > 0 M.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xd.9 > > > > > > > 8 e 1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX3X0 8 > > > > > 9 z.F.F.F.D.p.` > > > > > > > > > > 8 V.PXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXlX0 > > > > > > > i I I I I I I I I I I I I I I I I Y..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X_._ > > > > > > > > t I.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXH.0 > > > > > > > > @.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXtX<.> > > > > > > -.D.Z.a.-.9 8 > > > > > > > > > > < :XPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXFXO.> > > > > > > 5 J I I I I I I I I I I I I I I I I '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.| > > > > > > > > @.4XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXI.e > > > > > > > 8 u.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXx.8 > > > > > > > ` ` < > > > > > > > > > > > > > o.qXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXv.> > > > > > > < n I I I I I I I I I I I I I I I I /..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XA > > > > > > > > ` 4XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<Xw > > > > > > > 8 K.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeXD.e > > > > > > > > > > > > > > > > > > > > > > > 6.ZXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPX6X8 > > > > > > > f I I I I I I I I I I I I I I I I R..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X_.4 > > > > > > > w A.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.0 > > > > > > > t tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX2XF.<.> > > > > > > > > > > > > > > > > > > > > 8 r >XPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXcXr > > > > > > > u K I I I I I I I I I I I I I I I U [..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.Xq.8 8 > > > > > 9 k.P.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXN.9 > > > > > > > l.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXuXtXL.F.z.8 > > > > > > > > > > > > > > > > > > > > 0 m.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXKX4.> > > > > > > < F I I I I I I I I I I I I I I I I '..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X^.< > 8 > > > > > 3.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX>.> > > > > > > e rXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXtXeXF.F.D.` > > > > > > > > > > > 8 8 > > > > > > r m.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPX-X> > > > > > > > l I I I I I I I I I I I I I I I I !..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.Xe.> > > > > > > ` D.D.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4X0 > > > > > > 8 M.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXP.F.F.F.,.8 > > > > > > > > > > > > 8 8 8 > 9 5.6XFXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXDXr > > > > > > > h I I I I I I I I I I I I I I I P T.[..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.[.9 > > > > > > 8 h.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXl.> > > > > > > #.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4XG.F.F.F.a.8 > > > > > > > > > 8 > > > 9 O.s.7XAXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPX7X> > > > > > > 2 L I I I I I I I I I I I I I I I U [..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.R 8 > > > > > > +.D.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xw > > > > > > 8 I.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXP.F.F.F.F.C.0 > > > > > > > O.v.v.m.-X6XlXZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXm.> > > > > > < S I I I I I I I I I I I I I I I I (..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XX.8 8 > > > > > p.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXi.> > > > > > > h.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX<XG.F.F.F.F.Z.` > > > > > > > q cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPX0.> > > > > > 5 g N z x v S F G H L I I I I I I Q..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X[.6 > > > > > > 9 Z.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.8 8 > > > > > o.P.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX1XG.F.F.F.F.F.F.-.> > > > > > > 8 :XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXv.> > > > > > > > > > > > > > < 3 5 2 2 u p s f Z E R ^ W.~._.].}..X.X.X.X.X.X.X.X.X.X.X.X.X|.< > > > > > > $.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXt > > > > > > 0 D.G.U.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX3XL.F.F.F.F.F.F.F.1.> > > > > > > > 0.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPX>X> > > > > > > > > > > > > > > > > > > > > > > > > > > > > 4 5 _ { [ .X.e.Z E R ! W. X^._.E > > > > > > > 3.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX8.> > > > > > > x.F.F.G.U.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX3XG.G.F.F.F.F.F.F.F.p.8 > > > > > > > O.AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXAXr > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 > > 8 > > 8 8 > 8 > > < 6 4 > > > > > > 8 j.F.F.F.F.G.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXl.> > > > > > > a.F.F.F.F.G.P.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX2XG.F.F.F.F.F.F.F.F.F.j.9 > > > > > > > q lXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPX;X> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 > > > > 8 > 8 C.F.F.F.F.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXH.> > > > > > > r.F.F.F.F.F.F.F.L.3XtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeXU.G.F.F.F.F.F.F.F.F.F.F.z.0 > > > > > > > 8 6XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXLXm.> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 8 9 Z.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.8 > > > > > 8 >.F.F.F.F.F.F.F.F.F.G.P.eXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX2XG.G.F.F.F.F.F.F.F.F.F.F.F.z.w > > > > > > > > m.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPX8XO.> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 9 D.F.F.F.F.F.G.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<X8 > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.L.2XeXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXU.P.G.F.G.F.F.F.F.F.F.F.F.F.F.F.x.w > > > > > > > > 9.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXLXkX-Xn.0.6.4.%.y q > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 9 D.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.9 > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.P.3XtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeXU.G.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.z.w > > > > > > > > *.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXLXLXDXbXxXqX7X:X=Xm.v.9.5.&.y q > > > > > > > > > > > > > > > > > > > > > > > 8 8 9 C.F.F.F.F.F.F.F.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXK.> > > > > > > 3.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.2X3XrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXeXU.P.G.F.F.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.k.w > > > > > > > > O.AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXPXLXKXAXcXkX9X7X;X&Xn.s.6.*.O.r 8 > > > > > > > > 8 8 8 C.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXB.> > > > > > > r.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.U.3XeXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXrX3XU.P.L.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.j.0 > > > > > > > > y bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXLXDXbXzXn.8 > > > > > > a.F.F.F.F.F.F.F.G.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXd.> > > > > > 8 j.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.P.P.U.U.3X2X3X3X3X3X3X3X2X2XU.U.P.L.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.p.9 > > > > > > > > r xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqX> > > > > > > <.F.F.F.F.F.F.F.D.G.rXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX;.> > > > > > 8 C.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.1.8 8 > > > > > > > r xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXAX8 8 > > > > > ` D.F.F.F.F.F.F.G.F.L.rXyXyXtXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeX0 > > > > > > w F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.-.> > > > > > > > > r xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&.> > > > > > 8 C.F.F.F.F.F.F.F.F.F.G.yXyXuXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXB.> > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.x.` > > > > > > > > > o.cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXV.> > > > > > > <.F.F.F.F.F.F.F.F.F.F.L.rXtXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX;.> > > > > > > p.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.h.0 > > > > > > > > > O.bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX8 > > > > > > w Z.D.F.F.F.F.F.F.F.F.F.F.eXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXP.9 > > > > > > 0 C.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.;.> > > > > > > > > > :.ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX*.> > > > > > > 1.D.F.F.F.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeX-.> > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.k.` > > > > > > > > 8 8 9.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX,X> > > > > 8 8 9 C.F.F.F.F.F.F.F.F.F.F.F.F.L.3XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXP.j.8 > > > > > > > z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.,.8 > > > > > > > > > 9 m.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXO.> > > > > > > o.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.eXyXyXyXtXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXrXU.G.C.` > > > > > > > +.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.h.` > > > > > > > > > > q 6XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX7X> > > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.2XrXyXyXyXyXtXyXyXyXuXyXyXyXyXyXyXyXyXtX3XP.G.F.D.-.> > > > > > > > k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.C.-.8 > > > > > > > > > > y zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX=.> > > > > > > 8 p.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.L.2XeXrXyXyXyXuXtXyXyXyXyXtXeX2XP.G.F.F.F.F.<.> > > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.1.w > > > > > > > > > > > > 0 qXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX0 > > > > > > > 9 a.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.D.G.G.L.L.L.U.P.P.L.L.G.F.F.F.F.F.F.F.3.> > > > > > > > w Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.r.w > > > > > > > > > > > > > > 8 y bXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX;X> > > > > > > > 9 u.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.,.> > > > > > > > > j.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.u.e > > > > > > > > > > > > > > > > > > 5.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX0.> > > > > > > > 8 ,.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.C.-.> > > > > > > > > 3.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.r.e > > > > > > > > > > > > 8 8 > > > > > > 8 >XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX=.> > > > > > > > > ` x.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.h.` > > > > > > > > > -.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.x.,.0 > > > > > > > > > > > > > ;.I.o.> > > > > > > y AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXAX*.> > > > > > > > > 8 <.Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.C.-.> > > > > > > > > > > -.k.D.F.F.F.F.F.F.F.F.F.F.F.F.F.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.h.#.8 > > > > > > > > > > > > > ` B.rXyX3X0 > > > > > > > m.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZX*.> > > > > > > > > > 9 1.Z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.C.-.9 > > > > > > > > > > > > > 8 ` <.x.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.j.-.w > > > > > > > > > > > > > > 0 d.5XyXyXyXyXN.8 8 > > > > > q ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDX6.> > > > > > > > > > > 9 $.a.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.3.+.8 > > > > > > > > > > > > > > > > > > 8 ` <.k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.h.-.w > > > > > > > > > > > > > > > 8 1.1XyXyXyXyXyXyXtX;.> > > > > > 8 =XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXm.< 8 > > > > > > > > > > 8 8 +.<.h.z.Z.F.F.F.F.F.Z.z.p.,.` 9 > > > > > > > > > > > > > > > > > > > > > > > > 8 0 #.r.C.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.k.3.` 9 8 > > > > > > > > > > > > > > > > >.<XyXyXyXyXyXyXyXyXyX<X8 8 > > > > 8 %.KXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX0Xy > > > > > > > > > > > > > > > 8 8 8 0 9 9 > > > 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 0 +.3.h.C.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.x.p.,.` 8 8 > > 8 > > > > > > > > > > > > > > 9 >.<XyXyXyXyXyXyXyXyXyXyXyXyX:.8 > > > > 8 8 zXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXDXv.9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > ` > > > > > > > > > > > > > > > > > > > > > > 9 ` -.<.3.h.z.C.D.F.F.D.F.D.F.Z.F.F.F.Z.x.k.a.3.,.+.e 8 > > > > > > > > > > > > > > > > > > > > > 0 t.1XyXyXyXyXyXyXyXyXyXyXyXyXyXyXH.8 > > > > > > V.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXlX6.9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > w D.C.,.w > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 8 8 ` w w w w 0 9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > 9 @.M.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXr > > > > > > =.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXwX9.9 8 > > > > > > > > > > > > > > > > > > > > > > > > < > > > > > > ` F.F.F.Z.h.+.9 > 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 0 t.I.yXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyX1.> > > > > > q DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcXm.#.8 > > > > > > > > > > > > > > > > > > > > > 9 w > > > > > > +.D.F.F.D.F.D.C.j.-.9 8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 w >.D.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXN.> > > > > > 8 xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXxX&X6.r 9 > > > > > > > > > > > > > 9 y 9.;XcXV.> > > > > > -.F.F.F.F.F.F.F.2XyX1XM.:.e > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 > > > > > 8 8 > 8 t t.S.5XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.> > > > > > > 9XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKXxX7X&Xv.9.5.*.*.=.5.9.b.-X8XcXLXPXPXPXV.> > > > > > -.F.F.F.F.F.F.F.G.yXyXyXyXrXH.d.$.0 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 8 > > 8 8 t >.l.<XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrX9 > > > > > > :XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&X> > > > > > $.F.F.F.F.F.F.F.F.3XyXyXyXyXyXyXyX5XL.l.1.+.0 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 9 -.u.M.<XrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5X0 > > > > > > =XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX-X> > > > > > +.F.F.F.F.F.F.F.F.L.yXyXyXyXyXyXyXyXyXtXyXyXeXU.B.g.t.;.o.t 0 0 9 > > > > > > > > > > 9 0 e 9 > > > > > > i.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXrXq > > > > > > &XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX,X> > > > > > ` D.F.F.F.F.F.F.F.F.2XyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX5X3X<XI.K.H.S.S.H.H.H.I.I.1X1XrX$.> > > > > 8 j.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX5Xq > > > > > > &XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqX> > > > > > 0 Z.F.F.F.F.F.F.F.F.G.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXe > > > > > 8 a.tXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX9 8 > > > > > ;XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbX8 > > > > > 8 C.F.F.F.F.F.F.F.F.F.G.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX4X9 > > > > > 8 z.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuX<X> > > > > > > 7XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX` > > > > > > p.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXB.> > > > > > 9 Z.F.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXB.> > > > > > > lXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX6.> > > > > > #.F.F.F.F.F.F.F.F.F.F.F.U.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXt.> > > > > > ` D.F.L.rXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXi.> > > > > > q ZXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&X> > > > > 8 9 C.F.F.F.F.F.F.F.F.F.F.F.P.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXq > > > > > > <.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX@.> > > > > > %.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX8 > > > > 8 > u.F.F.F.F.F.F.F.F.F.F.F.F.P.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXB.8 > > > > > > j.F.F.F.F.L.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX<X8 > > > > > > v.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX%.> > > > 8 8 ` D.F.F.F.F.F.F.F.F.F.F.F.F.L.eXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtX$.8 > > > > > w D.F.F.F.F.F.L.rXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXi.8 > > > > > > 9XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX&X8 > > > > > 8 p.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeXk.8 > > > > > > ;.F.F.F.F.F.F.F.G.eXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXI.9 8 > > > > > y FXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbX9 > > > > > 8 e D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.G.2XtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXeXP.D.` > > > > > > 8 z.F.F.F.F.F.F.F.F.G.U.tXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXU.<.8 8 > > > > > v.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXs.> > > > > > > <.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.P.4XtXyXyXyXyXyXyXyXyXyXyXyXyXrXU.P.F.F.3.> > > > > > > o.F.F.F.F.F.F.F.F.F.F.F.L.3XtXyXuXuXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXU.G.k.8 8 8 > > > > 9 xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxX9 > > > > > > 8 j.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.U.3XeXeXrXrXeXeX2XP.G.F.F.F.F.z.8 > > > > > > > >.F.F.F.F.F.F.F.F.F.F.F.F.F.G.2XrXtXyXuXyXyXyXyXyXyXyXyXyXyXyXyXyX5XU.G.F.D.` > > 8 > > > > 9.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXs.> > > > > > > 0 C.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.C.` > > > > > > > > 8 k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.2XeXyXtXyXyXyXtXuXtXyXtXeXU.L.F.F.F.F.-.> > > > > > > 0 xXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbXr > > > > > > > t C.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.` > > > > > > > > > > w x.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.L.L.P.P.P.P.L.F.F.F.F.F.F.F.F.1.8 > > > > > > 8 n.PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX;X> > > > > > > > t C.F.G.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.` > > > > > > > > > > > > w x.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.1.8 8 > > > > > 8 O.DXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX9.> > > > > > > > w z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.x.` > > > > > > > > > > > > > > 9 h.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.;.> > 8 > > > > > 8 qXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXZXO.> > > > > > > > 0 r.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.p.0 > > > > > > 8 8 8 8 > > > > > > 8 3.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.x.+.8 8 > > > > > > 9 &XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXzXq > > > > > > > > > +.z.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.x.$.> > > > > > > > > 0 r 8 > > > > > > > > ` k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.Z.3.9 8 > > > > > > > > v.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX0Xq > > > > > > > > > 9 ,.z.D.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.x.;.9 > > > > > > > > > 9 8XxXt > > > > > > > > > > @.k.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.F.D.Z.u.q > > > > > > > > > > 9.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX8Xq > > > > > > > > > > 9 +.p.C.D.F.F.F.F.F.F.F.F.F.F.C.p.+.9 > 8 > > > > > > > > 0 7XPXLXzXt > > > > > > > > > > > ` 3.C.D.F.F.F.F.F.F.F.F.F.F.F.Z.k.,.0 > > > > > > > > > > > s.HXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqXr > > > > > > > > > > > 8 < t -.3.p.h.j.h.p.3.-.t 9 8 > > > > > > > > > > > q 9XPXPXPXPXvX%.> > > > > > > > > > > > 4 e -.3.a.k.z.C.z.k.p.<.+.0 > > > > > > > > > > > > > m.LXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXcX*.> > > > > > > > > > 8 > > > > > > > > > > > > > 8 > > > > > > > > > > %.zXPXPXPXPXPXPXFXs.> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > r ,XPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXFXn.8 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 8 v.DXPXPXPXPXPXPXPXPXPX,Xr > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 5.cXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXqX&.> > > > > > > > > > > > > > > > > > > > > > > > > > > > > O.9XPXPXPXPXPXPXPXPXPXPXPXPXAXv.9 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > y 6XLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLX;Xr > > > > > > > > > > > > > > > > > > > > > > > > 8 r =XKXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXxXy.9 > > > > > > > > > > > > > > > > > > > > > > > > > r -XKXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKX:X&.> > > > > > > > > > > > > > > > > > > > 8 O.-XFXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXbXm.y 8 > > > > > > > > > > > > > > > > > > > > 4.,XKXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXkXm.O.> > > > > > > > > > > > 8 > 8 y n.wXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXKXqXm.&.8 > > > > > > > > > > 9 > > q 6.;XvXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX",
+"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXbX7XV.0.*.r 0 9 0 t &.9.m.7XbXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXFXqX:Xm.s.6.>.=.5.9.v.V.7XxXLXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX"
};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tools/replay2hwd.hs Wed Oct 23 17:45:28 2019 -0400
@@ -0,0 +1,237 @@
+{-# LANGUAGE ScopedTypeVariables, OverloadedStrings #-}
+
+import qualified Data.ByteString.Char8 as B
+import Control.Exception as E
+import System.Environment
+import Control.Monad
+import qualified Data.Map as Map
+import Data.Word
+import Data.Int
+import qualified Codec.Binary.Base64 as Base64
+import qualified Data.ByteString.Lazy as BL
+import qualified Data.ByteString as BW
+import qualified Codec.Compression.Zlib.Internal as ZI
+import qualified Codec.Compression.Zlib as Z
+import qualified Data.List as L
+import qualified Data.Set as Set
+import Data.Binary
+import Data.Binary.Put
+import Data.Bits
+import Control.Arrow
+import Data.Maybe
+import qualified Data.Either as Ei
+
+
+decompressWithoutExceptions :: BL.ByteString -> BL.ByteString
+decompressWithoutExceptions = BL.fromChunks . ZI.foldDecompressStreamWithInput chunk end err decomp
+ where
+ decomp = ZI.decompressST ZI.zlibFormat ZI.defaultDecompressParams
+ chunk = (:)
+ end _ = []
+ err = const $ [BW.empty]
+
+data HedgehogInfo =
+ HedgehogInfo B.ByteString B.ByteString
+ deriving (Show, Read)
+
+data TeamInfo =
+ TeamInfo
+ {
+ teamowner :: !B.ByteString,
+ teamname :: !B.ByteString,
+ teamcolor :: !B.ByteString,
+ teamgrave :: !B.ByteString,
+ teamfort :: !B.ByteString,
+ teamvoicepack :: !B.ByteString,
+ teamflag :: !B.ByteString,
+ isOwnerRegistered :: !Bool,
+ difficulty :: !Int,
+ hhnum :: !Int,
+ hedgehogs :: ![HedgehogInfo]
+ }
+ deriving (Show, Read)
+
+readInt_ :: (Num a) => B.ByteString -> a
+readInt_ str =
+ case B.readInt str of
+ Just (i, t) | B.null t -> fromIntegral i
+ _ -> 0
+
+toEngineMsg :: B.ByteString -> B.ByteString
+toEngineMsg msg = fromIntegral (BW.length msg) `BW.cons` msg
+
+em :: B.ByteString -> B.ByteString
+em = toEngineMsg
+
+eml :: [B.ByteString] -> B.ByteString
+eml = em . B.concat
+
+showB :: (Show a) => a -> B.ByteString
+showB = B.pack . show
+
+replayToDemo :: [TeamInfo]
+ -> Map.Map B.ByteString B.ByteString
+ -> Map.Map B.ByteString [B.ByteString]
+ -> [B.ByteString]
+ -> B.ByteString
+replayToDemo ti mParams prms msgs = if not sane then "" else (B.concat $ concat [
+ [em "TD"]
+ , maybeScript
+ , maybeMap
+ , [eml ["etheme ", head $ prms Map.! "THEME"]]
+ , [eml ["eseed ", mParams Map.! "SEED"]]
+ , [eml ["e$gmflags ", showB gameFlags]]
+ , schemeFlags
+ , schemeAdditional
+ , [eml ["e$template_filter ", mParams Map.! "TEMPLATE"]]
+ , [eml ["e$feature_size ", mParams Map.! "FEATURE_SIZE"]]
+ , [eml ["e$mapgen ", mapgen]]
+ , mapgenSpecific
+ , concatMap teamSetup ti
+ , map (Ei.fromRight "" . Base64.decode) $ reverse msgs
+ , [em "!"]
+ ])
+ where
+ keys1, keys2 :: Set.Set B.ByteString
+ keys1 = Set.fromList ["FEATURE_SIZE", "MAP", "MAPGEN", "MAZE_SIZE", "SEED", "TEMPLATE"]
+ keys2 = Set.fromList ["AMMO", "SCHEME", "SCRIPT", "THEME"]
+ sane = Set.null (keys1 Set.\\ Map.keysSet mParams)
+ && Set.null (keys2 Set.\\ Map.keysSet prms)
+ && (not . null . drop 41 $ scheme)
+ && (not . null . tail $ prms Map.! "AMMO")
+ && ((B.length . head . tail $ prms Map.! "AMMO") > 200)
+ mapGenTypes = ["+rnd+", "+maze+", "+drawn+", "+perlin+"]
+ scriptName = head . fromMaybe ["Normal"] $ Map.lookup "SCRIPT" prms
+ maybeScript = let s = scriptName in if s == "Normal" then [] else [eml ["escript Scripts/Multiplayer/", spaces2Underlining s, ".lua"]]
+ maybeMap = let m = mParams Map.! "MAP" in if m `elem` mapGenTypes then [] else [eml ["emap ", m]]
+ scheme = tail $ prms Map.! "SCHEME"
+ mapgen = mParams Map.! "MAPGEN"
+ mazeSizeMsg = eml ["e$maze_size ", mParams Map.! "MAZE_SIZE"]
+ mapgenSpecific = case mapgen of
+ "1" -> [mazeSizeMsg]
+ "2" -> [mazeSizeMsg]
+ "3" -> let d = head . fromMaybe [""] $ Map.lookup "DRAWNMAP" prms in if BW.length d <= 4 then [] else drawnMapData d
+ _ -> []
+ gameFlags :: Word32
+ gameFlags = foldl (\r (b, f) -> if b == "false" then r else r .|. f) 0 $ zip scheme gameFlagConsts
+ schemeFlags = map (\(v, (n, m)) -> eml [n, " ", showB $ (readInt_ v) * m])
+ $ filter (\(_, (n, _)) -> not $ B.null n)
+ $ zip (drop (length gameFlagConsts) scheme) schemeParams
+ schemeAdditional = let scriptParam = B.tail $ scheme !! 42 in [eml ["e$scriptparam ", scriptParam] | not $ B.null scriptParam]
+ ammoStr :: B.ByteString
+ ammoStr = head . tail $ prms Map.! "AMMO"
+ ammo = let l = B.length ammoStr `div` 4; ((a, b), (c, d)) = (B.splitAt l . fst &&& B.splitAt l . snd) . B.splitAt (l * 2) $ ammoStr in
+ (map (\(x, y) -> eml [x, " ", y]) $ zip ["eammloadt", "eammprob", "eammdelay", "eammreinf"] [a, b, c, d])
+ ++ [em "eammstore" | scheme !! 14 == "true" || scheme !! 20 == "false"]
+ initHealth = scheme !! 27
+ teamSetup :: TeamInfo -> [B.ByteString]
+ teamSetup t = (++) ammo $
+ eml ["eaddteam <hash> ", showB $ (1 + (readInt_ $ teamcolor t) :: Int) * 2113696, " ", teamname t]
+ : em "erdriven"
+ : eml ["efort ", teamfort t]
+ : take (2 * hhnum t) (
+ concatMap (\(HedgehogInfo hname hhat) -> [
+ eml ["eaddhh ", showB $ difficulty t, " ", initHealth, " ", hname]
+ , eml ["ehat ", hhat]
+ ])
+ $ hedgehogs t
+ )
+ infRopes = ammoStr `B.index` 7 == '9'
+ vamp = gameFlags .&. 0x00000200 /= 0
+ infattacks = gameFlags .&. 0x00100000 /= 0
+ spaces2Underlining = B.map (\c -> if c == ' ' then '_' else c)
+
+drawnMapData :: B.ByteString -> [B.ByteString]
+drawnMapData =
+ L.map (\m -> eml ["edraw ", BW.pack m])
+ . L.unfoldr by200
+ . BL.unpack
+ . unpackDrawnMap
+ where
+ by200 :: [a] -> Maybe ([a], [a])
+ by200 [] = Nothing
+ by200 m = Just $ L.splitAt 200 m
+
+unpackDrawnMap :: B.ByteString -> BL.ByteString
+unpackDrawnMap = either
+ (const BL.empty)
+ (decompressWithoutExceptions . BL.pack . drop 4 . BW.unpack)
+ . Base64.decode
+
+compressWithLength :: BL.ByteString -> BL.ByteString
+compressWithLength b = BL.drop 8 . encode . runPut $ do
+ put $ ((fromIntegral $ BL.length b)::Word32)
+ mapM_ putWord8 $ BW.unpack $ BL.toStrict $ Z.compress b
+
+packDrawnMap :: BL.ByteString -> B.ByteString
+packDrawnMap =
+ Base64.encode
+ . BL.toStrict
+ . compressWithLength
+
+prependGhostPoints :: [(Int16, Int16)] -> B.ByteString -> B.ByteString
+prependGhostPoints pts dm = packDrawnMap $ (runPut $ forM_ pts $ \(x, y) -> put x >> put y >> putWord8 99) `BL.append` unpackDrawnMap dm
+
+schemeParams :: [(B.ByteString, Int)]
+schemeParams = [
+ ("e$damagepct", 1)
+ , ("e$turntime", 1000)
+ , ("", 0)
+ , ("e$sd_turns", 1)
+ , ("e$casefreq", 1)
+ , ("e$minestime", 1000)
+ , ("e$minesnum", 1)
+ , ("e$minedudpct", 1)
+ , ("e$explosives", 1)
+ , ("e$airmines", 1)
+ , ("e$healthprob", 1)
+ , ("e$hcaseamount", 1)
+ , ("e$waterrise", 1)
+ , ("e$healthdec", 1)
+ , ("e$ropepct", 1)
+ , ("e$getawaytime", 1)
+ , ("e$worldedge", 1)
+ ]
+
+
+gameFlagConsts :: [Word32]
+gameFlagConsts = [
+ 0x00001000
+ , 0x00000010
+ , 0x00000004
+ , 0x00000008
+ , 0x00000020
+ , 0x00000040
+ , 0x00000080
+ , 0x00000100
+ , 0x00000200
+ , 0x00000400
+ , 0x00000800
+ , 0x00002000
+ , 0x00004000
+ , 0x00008000
+ , 0x00010000
+ , 0x00020000
+ , 0x00040000
+ , 0x00080000
+ , 0x00100000
+ , 0x00200000
+ , 0x00400000
+ , 0x00800000
+ , 0x01000000
+ , 0x02000000
+ , 0x04000000
+ ]
+
+loadReplay :: String -> IO (Maybe ([TeamInfo], [(B.ByteString, B.ByteString)], [(B.ByteString, [B.ByteString])], [B.ByteString]))
+loadReplay fileName = E.handle (\(e :: SomeException) -> return Nothing) $ do
+ liftM (Just . read) $ readFile fileName
+
+convert :: String -> IO ()
+convert fileName = do
+ Just (t, c1, c2, m) <- loadReplay fileName
+ B.writeFile (fileName ++ ".hwd") $ replayToDemo t (Map.fromList c1) (Map.fromList c2) m
+
+main = do
+ args <- getArgs
+ when (length args == 1) $ (convert (head args))