diff --git a/Crawler/Crawler.cpp b/Crawler/Crawler.cpp index a9533a81..d2321dde 100644 --- a/Crawler/Crawler.cpp +++ b/Crawler/Crawler.cpp @@ -6,6 +6,7 @@ #include "Ability.h" #include "Class.h" #include "Version.h" +#include "TMXParser.h" #include "DEFINES.h" //192x192 @@ -25,6 +26,8 @@ Crawler::Crawler() } bool Crawler::OnUserCreate(){ + TMXParser("assets/maps/Level1.tmx"); + //Initialize Camera. camera=Camera2D{WINDOW_SIZE}; camera.SetMode(olc::utils::Camera2D::Mode::LazyFollow); diff --git a/Crawler/Crawler.vcxproj b/Crawler/Crawler.vcxproj index 88829222..364e6471 100644 --- a/Crawler/Crawler.vcxproj +++ b/Crawler/Crawler.vcxproj @@ -181,6 +181,7 @@ + diff --git a/Crawler/Crawler.vcxproj.filters b/Crawler/Crawler.vcxproj.filters index d916e1c0..067fd35e 100644 --- a/Crawler/Crawler.vcxproj.filters +++ b/Crawler/Crawler.vcxproj.filters @@ -78,6 +78,9 @@ Header Files + + Header Files + diff --git a/Crawler/TMXParser.h b/Crawler/TMXParser.h new file mode 100644 index 00000000..444d31ed --- /dev/null +++ b/Crawler/TMXParser.h @@ -0,0 +1,171 @@ +#pragma once +#include "olcPixelGameEngine.h" +#include + +using namespace olc; + +struct XMLTag{ + std::string tag; + std::map data; + const std::string FormatTagData(std::maptiles) { + std::string displayStr=""; + for (std::map::iterator it=data.begin();it!=data.end();it++) { + displayStr+=" "+it->first+": "+it->second+"\n"; + } + return displayStr; + } + friend std::ostream& operator << (std::ostream& os, XMLTag& rhs) { + os << + rhs.tag <<"\n"<< + rhs.FormatTagData(rhs.data) <<"\n"; + + return os; } + + int GetInteger(std::string dataTag) { + return std::stoi(data[dataTag]); + } + double GetDouble(std::string dataTag) { + return std::stod(data[dataTag]); + } + bool GetBool(std::string dataTag) { + if (data[dataTag]=="0") { + return false; + } else { + return true; + } + + } +}; + +struct LayerTag{ + XMLTag tag; + std::vector> tiles; + std::string str() { + std::string displayStr=tag.tag+"\n"+tag.FormatTagData(tag.data); + displayStr+=" DATA ("+std::to_string(tiles[0].size())+"x"+std::to_string(tiles.size())+")\n"; + return displayStr; + } +}; + +struct Map{ + XMLTag MapData; + XMLTag TilesetData; + std::vector LayerData; + std::string FormatLayerData(std::ostream& os, std::vectortiles) { + std::string displayStr; + for (int i=0;i>data; + if (data.empty()) continue; + + if (accumulator.length()>0) { + accumulator+=" "+data; + //Check if it ends with '>' + if (data[data.length()-1]=='>') { + ParseTag(accumulator); + accumulator=""; + } + } else + if (data[0]=='<') { + //Beginning of XML tag. + accumulator=data; + } else { + //Start reading in data for this layer. + std::vectorrowData; + while (data.find(",")!=std::string::npos) { + std::string datapiece = data.substr(0,data.find(",")); + data = data.substr(data.find(",")+1,std::string::npos); + rowData.push_back(stoi(datapiece)); + } + if (data.length()) { + rowData.push_back(stoi(data)); + } + parsedMapInfo.LayerData[parsedMapInfo.LayerData.size()-1].tiles.push_back(rowData); + } + } + + std::cout<<"Parsed Map Data:\n"< - + - + - -172,173,173,172,172,173,173,172,173,173,173,172,173,172,172,172, -173,127,129,1,2,2,2,2,2,2,2,2,2,2,2,3, -172,148,151,65,65,65,65,65,65,65,66,46,4,5,64,67, -172,169,170,170,131,86,149,110,86,109,87,46,25,26,85,88, -173,172,127,128,152,67,68,67,107,107,108,23,47,23,106,68, -172,127,152,86,67,108,106,108,23,64,66,46,64,65,66,106, -172,148,86,67,108,64,66,4,5,85,88,66,85,110,87,23, -172,148,67,108,23,106,108,25,26,106,68,87,85,67,108,23, -172,148,87,47,64,66,47,46,47,23,106,108,106,108,47,23, -172,148,87,64,89,87,64,66,64,65,65,65,65,66,64,65, -172,148,87,85,67,108,106,108,85,86,110,86,86,87,85,109, -173,148,88,89,87,64,66,23,106,68,86,67,107,108,85,86, -172,169,131,109,88,89,87,23,23,85,86,88,65,65,89,67, -173,1,64,86,110,67,108,23,64,89,67,107,68,67,107,108, -172,22,106,107,107,108,64,66,85,67,108,64,89,87,23,64, -173,22,64,66,23,47,106,108,106,108,64,89,109,87,23,85 - - -172,173,172,172,172,173,172,173,173,172,173,172,172,172,173,173, -1,2,2,3,127,128,128,128,128,129,1,2,2,2,2,2, -26,46,64,86,152,67,68,86,109,151,23,64,65,66,23,23, -66,47,106,107,107,108,106,107,107,107,108,106,107,108,64,66, -87,23,23,23,23,23,64,66,23,23,23,46,4,5,85,88, -108,46,23,23,64,66,85,87,64,66,23,23,25,26,85,86, -23,23,23,46,106,108,85,87,106,108,23,64,65,65,89,110, -46,23,4,5,4,5,85,87,46,64,65,89,67,107,68,67, -23,46,24,22,25,26,85,87,64,89,86,149,88,65,89,87, -65,66,25,26,47,47,85,87,106,107,107,68,67,107,68,88, -86,88,65,65,66,64,89,88,65,65,66,85,88,65,89,86, -67,107,107,107,108,106,107,68,67,68,87,106,107,107,68,149, -108,23,64,65,66,23,64,89,87,106,108,23,46,23,106,68, -64,66,85,67,108,47,85,67,108,47,64,65,65,66,64,89, -89,87,85,87,64,66,85,88,66,23,106,68,86,87,85,109, -67,108,106,108,85,88,89,67,108,23,47,106,107,108,106,68 - - -173,172,172,173,173,172,172,172,172,173,172,172,172,173,173,172, -2,2,2,2,2,2,2,2,3,127,128,128,128,128,129,173, -23,46,64,65,65,65,65,66,25,67,68,67,68,67,24,173, -46,64,89,110,67,107,107,108,47,23,106,108,85,87,24,173, -66,85,130,131,88,66,64,66,47,46,23,23,106,108,24,172, -87,85,150,148,67,108,106,108,64,65,65,66,64,66,24,173, -88,89,151,152,88,65,66,46,85,130,131,87,85,130,45,172, -68,86,110,67,68,86,87,23,85,151,152,87,85,151,129,172, -106,68,86,87,85,110,87,64,89,109,86,87,85,86,150,172, -65,89,110,88,89,86,87,85,110,109,67,108,85,149,150,172, -149,110,86,86,86,67,108,85,109,86,87,23,106,68,150,173, -67,68,67,68,67,108,64,89,86,86,87,46,64,89,150,172, -87,106,108,106,108,23,106,68,109,67,108,23,85,109,150,172, -87,64,66,23,46,64,65,89,67,108,23,23,106,68,150,172, -87,85,87,47,23,85,67,68,87,64,66,23,47,85,150,173, -87,106,108,46,64,89,87,85,87,106,108,64,66,85,150,173 - - -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173 - - -173,22,85,87,46,47,64,66,23,23,106,107,68,87,47,106, -173,22,106,108,23,23,85,87,23,23,46,23,106,108,23,47, -173,22,23,64,65,65,89,88,66,23,46,46,23,46,64,65, -172,22,64,89,67,68,67,107,108,64,65,66,47,23,106,107, -172,22,85,67,108,106,108,23,23,85,149,88,66,47,23,47, -172,22,106,108,46,64,66,23,46,85,86,110,87,64,65,66, -173,22,47,47,23,106,108,47,64,89,67,107,108,85,86,88, -173,22,64,66,64,66,23,23,85,109,87,64,65,89,110,109, -172,22,106,108,85,87,64,65,89,67,108,106,68,86,86,110, -172,22,23,64,89,87,85,86,67,108,64,66,106,107,107,68, -172,22,23,106,107,108,85,67,108,64,89,87,46,23,64,89, -173,22,23,23,47,46,106,108,64,89,110,88,65,65,89,67, -172,22,23,64,66,64,65,66,106,107,107,107,68,67,68,87, -172,22,23,106,108,106,107,108,64,66,47,64,89,88,89,87, -172,22,23,23,23,46,23,64,89,87,47,106,68,67,107,108, -172,22,64,66,23,23,47,85,86,87,23,23,106,108,23,23 - - -108,47,23,46,85,130,131,87,23,23,47,64,66,46,64,89, -23,64,65,66,85,151,152,88,65,65,65,89,88,65,89,67, -65,89,86,88,89,67,107,68,67,107,107,107,107,68,109,87, -107,107,107,68,67,108,23,106,108,64,66,23,23,106,107,108, -47,23,23,106,108,23,64,66,23,85,87,64,65,66,23,23, -64,66,64,66,47,64,89,87,23,106,108,85,67,108,47,4, -89,88,89,88,66,85,67,108,23,4,5,85,88,65,66,25, -86,67,107,68,88,89,87,23,47,25,26,106,107,107,108,23, -67,108,23,85,149,86,87,46,23,64,66,64,66,23,23,64, -88,66,23,85,67,68,87,64,66,106,108,106,108,23,47,85, -149,88,65,89,87,106,108,85,88,65,65,65,66,64,66,106, -68,86,86,67,108,4,5,106,107,68,67,68,87,106,108,23, -106,107,68,88,66,24,22,4,5,85,87,106,108,23,64,66, -23,46,106,107,108,25,26,25,26,106,108,23,64,66,106,108, -46,64,66,64,66,46,23,46,23,47,23,23,85,87,23,64, -64,89,88,89,88,66,47,64,66,46,64,65,89,88,65,89 - - -87,47,23,64,89,149,88,89,87,64,66,106,108,85,150,172, -108,23,46,106,68,67,107,107,108,85,87,23,23,85,150,172, -23,23,23,47,85,87,64,66,47,106,108,64,66,85,150,172, -46,46,46,23,106,108,85,88,66,64,66,85,87,85,150,173, -4,5,23,23,23,46,106,68,87,85,88,89,87,4,171,173, -45,22,46,46,64,66,23,85,87,106,107,107,108,25,3,173, -2,26,23,23,106,108,23,106,108,46,23,46,23,23,24,172, -64,66,64,66,64,66,47,64,65,65,66,23,46,23,24,172, -89,88,89,88,89,87,64,89,149,86,87,46,23,46,24,172, -110,149,86,86,67,108,85,109,130,131,87,64,65,66,24,173, -107,107,68,149,88,66,85,109,151,152,87,106,68,87,24,172, -46,46,106,107,107,108,85,109,149,67,108,64,89,87,24,172, -23,23,64,65,65,66,106,68,110,87,46,85,67,108,24,173, -64,66,106,107,107,108,64,89,110,87,23,85,87,23,24,172, -89,87,47,47,23,23,85,109,67,108,23,85,88,66,24,172, -67,108,23,46,64,65,89,86,87,23,23,106,68,87,24,172 - - -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173 - - -172,22,106,108,23,4,5,106,107,108,46,64,65,66,23,64, -173,22,46,64,66,24,22,47,46,23,64,89,109,88,66,85, -173,22,23,106,108,25,26,47,23,47,85,110,86,67,108,106, -172,22,46,64,66,23,23,64,66,46,106,107,107,108,64,65, -172,22,64,89,88,66,23,106,108,64,66,64,65,65,89,67, -172,22,106,107,68,87,23,47,64,89,88,89,69,70,109,87, -172,22,23,64,89,88,65,66,106,107,68,86,90,91,67,108, -173,22,23,85,109,110,149,88,66,23,106,68,130,131,87,23, -173,22,64,89,67,107,107,107,108,64,65,89,151,152,87,64, -172,22,106,107,108,23,64,66,23,106,107,107,68,67,108,85, -173,22,23,64,66,47,106,108,4,5,4,5,85,88,65,89, -172,22,64,89,87,64,66,46,24,22,25,26,106,107,107,107, -172,22,106,107,108,106,108,23,25,26,64,65,65,66,23,46, -172,22,23,46,46,47,47,23,23,23,106,107,107,108,23,46, -172,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44, -172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,173 - - -89,109,130,131,109,88,65,89,87,23,85,67,107,68,109,67, -67,68,151,152,86,149,86,86,87,64,89,87,23,106,107,108, -108,106,107,107,68,149,149,110,87,106,107,108,47,23,64,66, -66,23,23,23,106,68,86,86,88,65,66,64,66,23,85,87, -108,64,66,23,23,106,68,67,107,107,108,85,87,64,89,87, -64,89,87,47,23,47,85,88,65,66,47,106,108,106,68,88, -85,67,108,64,66,46,106,107,107,108,23,23,23,64,89,67, -106,108,23,106,108,64,66,23,23,64,66,64,66,106,68,88, -65,66,23,23,46,106,108,23,64,89,87,85,87,23,85,109, -86,87,64,66,23,64,66,23,106,68,87,85,87,23,106,68, -86,87,85,87,23,85,88,66,64,89,87,106,108,47,64,89, -107,108,106,108,23,106,68,87,85,110,87,23,23,23,85,67, -64,66,47,23,47,23,85,87,106,68,87,4,5,23,106,108, -106,108,4,5,46,23,106,108,23,106,108,25,26,23,23,47, -44,44,45,43,44,44,44,44,44,44,44,44,44,44,44,44, -172,172,172,173,173,173,173,173,172,172,173,172,172,172,173,172 - - -108,64,65,66,106,68,86,67,108,64,66,64,89,87,24,172, -23,85,86,87,47,106,68,87,47,106,108,106,107,108,24,172, -64,89,86,87,64,66,106,108,64,66,23,23,64,66,24,172, -106,68,67,108,85,87,64,66,85,87,64,65,89,87,24,172, -23,106,108,64,89,87,106,108,106,108,106,107,68,87,24,172, -66,23,23,85,86,88,66,23,64,65,65,65,89,87,24,173, -108,23,47,106,107,68,87,64,89,86,67,68,86,87,24,172, -66,23,23,23,23,85,87,85,149,67,108,106,107,108,24,173, -87,23,47,23,64,89,88,89,67,108,64,65,65,66,24,173, -87,46,23,64,89,110,149,86,88,66,106,68,67,108,24,173, -87,64,65,89,109,110,86,86,110,88,65,89,88,66,24,173, -108,85,67,68,67,107,107,107,68,67,68,130,131,87,24,173, -47,85,88,89,87,46,64,66,106,108,85,151,152,87,24,173, -46,106,107,107,108,46,106,108,47,23,106,107,107,108,24,172, -44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,173, -173,172,172,172,173,172,172,172,173,173,172,172,172,172,173,172 - - -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, -172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173 - - +172,173,173,172,172,173,173,172,173,173,173,172,173,172,172,172,172,173,172,172,172,173,172,173,173,172,173,172,172,172,173,173,173,172,172,173,173,172,172,172,172,173,172,172,172,173,173,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,127,129,1,2,2,2,2,2,2,2,2,2,2,2,3,1,2,2,3,127,128,128,128,128,129,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,127,128,128,128,128,129,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,148,151,65,65,65,65,65,65,65,66,46,4,5,64,67,26,46,64,86,152,67,68,86,109,151,23,64,65,66,23,23,23,46,64,65,65,65,65,66,25,67,68,67,68,67,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,169,170,170,131,86,149,110,86,109,87,46,25,26,85,88,66,47,106,107,107,108,106,107,107,107,108,106,107,108,64,66,46,64,89,110,67,107,107,108,47,23,106,108,85,87,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,172,127,128,152,67,68,67,107,107,108,23,47,23,106,68,87,23,23,23,23,23,64,66,23,23,23,46,4,5,85,88,66,85,130,131,88,66,64,66,47,46,23,23,106,108,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,127,152,86,67,108,106,108,23,64,66,46,64,65,66,106,108,46,23,23,64,66,85,87,64,66,23,23,25,26,85,86,87,85,150,148,67,108,106,108,64,65,65,66,64,66,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,148,86,67,108,64,66,4,5,85,88,66,85,110,87,23,23,23,23,46,106,108,85,87,106,108,23,64,65,65,89,110,88,89,151,152,88,65,66,46,85,130,131,87,85,130,45,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,148,67,108,23,106,108,25,26,106,68,87,85,67,108,23,46,23,4,5,4,5,85,87,46,64,65,89,67,107,68,67,68,86,110,67,68,86,87,23,85,151,152,87,85,151,129,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,148,87,47,64,66,47,46,47,23,106,108,106,108,47,23,23,46,24,22,25,26,85,87,64,89,86,149,88,65,89,87,106,68,86,87,85,110,87,64,89,109,86,87,85,86,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,148,87,64,89,87,64,66,64,65,65,65,65,66,64,65,65,66,25,26,47,47,85,87,106,107,107,68,67,107,68,88,65,89,110,88,89,86,87,85,110,109,67,108,85,149,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,148,87,85,67,108,106,108,85,86,110,86,86,87,85,109,86,88,65,65,66,64,89,88,65,65,66,85,88,65,89,86,149,110,86,86,86,67,108,85,109,86,87,23,106,68,150,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,148,88,89,87,64,66,23,106,68,86,67,107,108,85,86,67,107,107,107,108,106,107,68,67,68,87,106,107,107,68,149,67,68,67,68,67,108,64,89,86,86,87,46,64,89,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,169,131,109,88,89,87,23,23,85,86,88,65,65,89,67,108,23,64,65,66,23,64,89,87,106,108,23,46,23,106,68,87,106,108,106,108,23,106,68,109,67,108,23,85,109,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,1,64,86,110,67,108,23,64,89,67,107,68,67,107,108,64,66,85,67,108,47,85,67,108,47,64,65,65,66,64,89,87,64,66,23,46,64,65,89,67,108,23,23,106,68,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,107,107,108,64,66,85,67,108,64,89,87,23,64,89,87,85,87,64,66,85,88,66,23,106,68,86,87,85,109,87,85,87,47,23,85,67,68,87,64,66,23,47,85,150,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,64,66,23,47,106,108,106,108,64,89,109,87,23,85,67,108,106,108,85,88,89,67,108,23,47,106,107,108,106,68,87,106,108,46,64,89,87,85,87,106,108,64,66,85,150,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,85,87,46,47,64,66,23,23,106,107,68,87,47,106,108,47,23,46,85,130,131,87,23,23,47,64,66,46,64,89,87,47,23,64,89,149,88,89,87,64,66,106,108,85,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,106,108,23,23,85,87,23,23,46,23,106,108,23,47,23,64,65,66,85,151,152,88,65,65,65,89,88,65,89,67,108,23,46,106,68,67,107,107,108,85,87,23,23,85,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,23,64,65,65,89,88,66,23,46,46,23,46,64,65,65,89,86,88,89,67,107,68,67,107,107,107,107,68,109,87,23,23,23,47,85,87,64,66,47,106,108,64,66,85,150,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,64,89,67,68,67,107,108,64,65,66,47,23,106,107,107,107,107,68,67,108,23,106,108,64,66,23,23,106,107,108,46,46,46,23,106,108,85,88,66,64,66,85,87,85,150,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,85,67,108,106,108,23,23,85,149,88,66,47,23,47,47,23,23,106,108,23,64,66,23,85,87,64,65,66,23,23,4,5,23,23,23,46,106,68,87,85,88,89,87,4,171,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,108,46,64,66,23,46,85,86,110,87,64,65,66,64,66,64,66,47,64,89,87,23,106,108,85,67,108,47,4,45,22,46,46,64,66,23,85,87,106,107,107,108,25,3,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,47,47,23,106,108,47,64,89,67,107,108,85,86,88,89,88,89,88,66,85,67,108,23,4,5,85,88,65,66,25,2,26,23,23,106,108,23,106,108,46,23,46,23,23,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,64,66,64,66,23,23,85,109,87,64,65,89,110,109,86,67,107,68,88,89,87,23,47,25,26,106,107,107,108,23,64,66,64,66,64,66,47,64,65,65,66,23,46,23,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,108,85,87,64,65,89,67,108,106,68,86,86,110,67,108,23,85,149,86,87,46,23,64,66,64,66,23,23,64,89,88,89,88,89,87,64,89,149,86,87,46,23,46,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,64,89,87,85,86,67,108,64,66,106,107,107,68,88,66,23,85,67,68,87,64,66,106,108,106,108,23,47,85,110,149,86,86,67,108,85,109,130,131,87,64,65,66,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,106,107,108,85,67,108,64,89,87,46,23,64,89,149,88,65,89,87,106,108,85,88,65,65,65,66,64,66,106,107,107,68,149,88,66,85,109,151,152,87,106,68,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,23,23,47,46,106,108,64,89,110,88,65,65,89,67,68,86,86,67,108,4,5,106,107,68,67,68,87,106,108,23,46,46,106,107,107,108,85,109,149,67,108,64,89,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,64,66,64,65,66,106,107,107,107,68,67,68,87,106,107,68,88,66,24,22,4,5,85,87,106,108,23,64,66,23,23,64,65,65,66,106,68,110,87,46,85,67,108,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,106,108,106,107,108,64,66,47,64,89,88,89,87,23,46,106,107,108,25,26,25,26,106,108,23,64,66,106,108,64,66,106,107,107,108,64,89,110,87,23,85,87,23,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,23,23,46,23,64,89,87,47,106,68,67,107,108,46,64,66,64,66,46,23,46,23,47,23,23,85,87,23,64,89,87,47,47,23,23,85,109,67,108,23,85,88,66,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,64,66,23,23,47,85,86,87,23,23,106,108,23,23,64,89,88,89,88,66,47,64,66,46,64,65,89,88,65,89,67,108,23,46,64,65,89,86,87,23,23,106,68,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,108,23,4,5,106,107,108,46,64,65,66,23,64,89,109,130,131,109,88,65,89,87,23,85,67,107,68,109,67,108,64,65,66,106,68,86,67,108,64,66,64,89,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,46,64,66,24,22,47,46,23,64,89,109,88,66,85,67,68,151,152,86,149,86,86,87,64,89,87,23,106,107,108,23,85,86,87,47,106,68,87,47,106,108,106,107,108,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,23,106,108,25,26,47,23,47,85,110,86,67,108,106,108,106,107,107,68,149,149,110,87,106,107,108,47,23,64,66,64,89,86,87,64,66,106,108,64,66,23,23,64,66,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,46,64,66,23,23,64,66,46,106,107,107,108,64,65,66,23,23,23,106,68,86,86,88,65,66,64,66,23,85,87,106,68,67,108,85,87,64,66,85,87,64,65,89,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,64,89,88,66,23,106,108,64,66,64,65,65,89,67,108,64,66,23,23,106,68,67,107,107,108,85,87,64,89,87,23,106,108,64,89,87,106,108,106,108,106,107,68,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,107,68,87,23,47,64,89,88,89,69,70,109,87,64,89,87,47,23,47,85,88,65,66,47,106,108,106,68,88,66,23,23,85,86,88,66,23,64,65,65,65,89,87,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,64,89,88,65,66,106,107,68,86,90,91,67,108,85,67,108,64,66,46,106,107,107,108,23,23,23,64,89,67,108,23,47,106,107,68,87,64,89,86,67,68,86,87,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,23,85,109,110,149,88,66,23,106,68,130,131,87,23,106,108,23,106,108,64,66,23,23,64,66,64,66,106,68,88,66,23,23,23,23,85,87,85,149,67,108,106,107,108,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,64,89,67,107,107,107,108,64,65,89,151,152,87,64,65,66,23,23,46,106,108,23,64,89,87,85,87,23,85,109,87,23,47,23,64,89,88,89,67,108,64,65,65,66,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,107,108,23,64,66,23,106,107,107,68,67,108,85,86,87,64,66,23,64,66,23,106,68,87,85,87,23,106,68,87,46,23,64,89,110,149,86,88,66,106,68,67,108,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +173,22,23,64,66,47,106,108,4,5,4,5,85,88,65,89,86,87,85,87,23,85,88,66,64,89,87,106,108,47,64,89,87,64,65,89,109,110,86,86,110,88,65,89,88,66,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,64,89,87,64,66,46,24,22,25,26,106,107,107,107,107,108,106,108,23,106,68,87,85,110,87,23,23,23,85,67,108,85,67,68,67,107,107,107,68,67,68,130,131,87,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,106,107,108,106,108,23,25,26,64,65,65,66,23,46,64,66,47,23,47,23,85,87,106,68,87,4,5,23,106,108,47,85,88,89,87,46,64,66,106,108,85,151,152,87,24,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,22,23,46,46,47,47,23,23,23,106,107,107,108,23,46,106,108,4,5,46,23,106,108,23,106,108,25,26,23,23,47,46,106,107,107,108,46,106,108,47,23,106,107,107,108,24,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,45,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173, +172,172,172,172,172,172,172,172,172,172,172,173,172,173,172,173,172,172,172,173,173,173,173,173,172,172,173,172,172,172,173,172,173,172,172,172,173,172,172,172,173,173,172,172,172,172,173,172,172,173,173,173,173,173,173,173,173,173,173,173,173,173,173,173 + - + - -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,134,135,136,0,0, -0,0,0,0,0,0,0,0,0,134,135,133,175,132,135,136, -0,0,0,0,0,0,0,0,134,133,153,156,175,156,154,157, -0,0,0,0,0,0,0,134,133,153,175,174,156,154,156,157, -0,0,0,0,0,0,0,155,174,154,175,175,175,154,154,157, -0,0,0,0,0,0,0,155,156,175,175,175,154,156,154,157, -0,0,0,0,0,0,0,155,174,156,174,156,175,174,111,178, -0,0,0,0,0,0,0,155,156,154,156,153,156,175,157,0, -0,0,0,0,0,0,0,155,175,153,175,175,153,153,157,0, -0,0,0,0,0,0,0,155,156,174,154,154,154,175,157,0, -0,53,55,56,0,0,0,155,153,156,153,156,174,154,157,0, -0,158,76,77,0,0,0,176,177,112,154,174,156,156,157,0, -0,179,181,182,0,0,0,0,0,155,174,153,154,153,157,0, -0,0,0,0,0,0,0,0,0,176,177,112,174,111,178,0, -0,0,0,0,0,0,0,0,0,0,0,176,177,178,0,0 - - -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,134,135,135,136,0,0,0,0,0,0,0,0,0,0, -0,134,133,175,175,157,0,0,0,0,0,0,0,0,0,0, -0,155,174,156,175,157,0,0,0,0,0,0,0,0,0,0, -0,155,174,154,111,178,0,0,0,0,0,0,0,0,0,0, -0,176,177,177,178,0,0,0,0,53,54,54,55,54,54,56, -0,0,0,0,0,0,0,0,53,115,96,118,96,159,76,140, -0,0,0,0,0,0,0,0,158,96,159,118,96,97,97,98, -0,0,0,0,0,0,0,0,179,94,139,139,160,75,139,161, -0,0,0,0,0,0,0,0,0,116,75,117,139,97,75,161, -0,0,0,0,0,0,0,0,0,179,94,96,118,117,117,77, -0,0,0,0,0,0,0,0,0,0,116,118,118,75,139,140, -0,0,0,0,0,0,0,0,0,0,179,94,139,159,97,161 - - -0,0,0,0,0,0,0,0,0,0,0,158,97,160,93,182, -0,0,0,0,0,0,0,0,0,0,0,179,94,97,98,0, -0,0,0,0,0,0,0,0,0,0,0,0,179,181,182,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,53,54,54,55, -0,0,0,0,0,0,53,55,55,55,54,55,115,96,139,139, -0,0,0,0,53,54,115,96,159,75,76,75,97,117,75,118, -0,0,0,0,179,180,180,180,180,181,180,180,180,180,180,180, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - - -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,53,55,54,54,56,0,0,0,0,0,0,0,0,0,0, -54,115,93,181,94,77,0,0,0,0,0,0,0,0,0,0, -139,139,114,54,115,161,0,0,0,0,0,0,0,0,0,0, -159,96,118,96,97,140,0,0,0,0,0,0,0,0,0,0, -180,181,181,181,180,182,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 - - +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,134,135,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,134,135,133,175,132,135,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,134,133,153,156,175,156,154,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,134,133,153,175,174,156,154,156,157,0,0,134,135,135,136,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,155,174,154,175,175,175,154,154,157,0,134,133,175,175,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,155,156,175,175,175,154,156,154,157,0,155,174,156,175,157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,155,174,156,174,156,175,174,111,178,0,155,174,154,111,178,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,155,156,154,156,153,156,175,157,0,0,176,177,177,178,0,0,0,0,53,54,54,55,54,54,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,155,175,153,175,175,153,153,157,0,0,0,0,0,0,0,0,0,53,115,96,118,96,159,76,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,155,156,174,154,154,154,175,157,0,0,0,0,0,0,0,0,0,158,96,159,118,96,97,97,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,53,55,56,0,0,0,155,153,156,153,156,174,154,157,0,0,0,0,0,0,0,0,0,179,94,139,139,160,75,139,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,158,76,77,0,0,0,176,177,112,154,174,156,156,157,0,0,0,0,0,0,0,0,0,0,116,75,117,139,97,75,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,179,181,182,0,0,0,0,0,155,174,153,154,153,157,0,0,0,0,0,0,0,0,0,0,179,94,96,118,117,117,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,176,177,112,174,111,178,0,0,0,0,0,0,0,0,0,0,0,116,118,118,75,139,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,176,177,178,0,0,0,0,0,0,0,0,0,0,0,0,179,94,139,159,97,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,158,97,160,93,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,179,94,97,98,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,179,181,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,55,54,54,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,54,54,55,54,115,93,181,94,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,55,55,55,54,55,115,96,139,139,139,139,114,54,115,161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,54,115,96,159,75,76,75,97,117,75,118,159,96,118,96,97,140,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,179,180,180,180,180,181,180,180,180,180,180,180,180,181,181,181,180,182,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 + - + @@ -309,7 +117,7 @@ - +